toml11

toml11でコメントが増えるバグを修正した

ちょっと面白いバグを直したので久々にブログを書く。最近は少し状況が悪く、あまりよそ事に手を出せていなかった。今もそんなに状況は改善していないが、明らかに書けるネタがあるので書こう。 直したバグはこれだ。 github.com 背景 問題の話をする前に、…

gcc 4.8.xでの標準ライブラリのバグについて

結構昔に書いていたっぽい下書きがあったので手直しして出しておこう。まあイマドキgcc-4.8.5を使う羽目になっている人はあまりいないだろうが、少なくともIssueが立つ程度には存在するようなので。 広く知られていることっぽいが、GCC 4.8系統の標準ライブ…

tomlの複数行文字列内でのクオートの取り扱いに関するエッジケース

何が起きたのか TOML規格レポジトリにこの記事のタイトルの通りのアップデートがあった。 github.com 基本的に、toml11ではTOMLのmasterブランチに入った変更は TOML11_USE_UNRELEASED_FEATURES を define しないと有効にならないようにしている。だがこの手…

TOMLで型の異なる要素を持つ配列が許可された

起きたこと TOML v0.5.0までは、配列に異なる型の要素を混ぜるのは許可されていなかった。 array = [1, 2, 3] # OK invalid1 = [1, "foo", 2019-11-08] # error invalid2 = [1, 2, 3.14, 4, 5] # error が、混ぜたいという人がかなり多く、ずっと議論が続い…

toml11をマイナーアップデートした

しばらく前だが、アップデートした。最新バージョンはv3.1.0だ。 Added TOML11_USE_UNRELEASED_TOML_FEATURES TOML言語仕様はまだちょいちょいバージョンアップされている。なので「TOMLとしてリリースされていないがtoml-lang/toml:masterにmergeされた、お…

TOMLで浮動小数点数の指数部分でleading zeroが許可される

github.com これがTOMLの作者(Tom Preston-Werner)の手によってマージされていた。一応masterブランチにマージされてもリリースまでにrevertされる可能性はあるとはいえ、それなりの確率でTOML 1.0.0でリリースされると思われる。 この変更で、以下のよう…

toml11 v3.0.0リリース

毎回思うんだけどどういうタイミングでリリースタグ打てばいいのかよくわからない。皆どうしてるんだろう。 github.com 基本的に前回記事を書いた時からそんなに変わっていない。一応自分で使ってみて気になった細かなことがいくつかあるが(例えばカスタム…

toml11 v3ができてきた

以前「やりたいな〜」と書いた通りの変更をゴリっと入れてみた。まだマージしていないが、v3ブランチがpushされている。今まで通していたテストは全て通った。追加機能のテストも最低限は通った。しばらくテストの拡充をしてからベータ版を出すつもりでいる…

toml11をバージョンアップした

しすぎじゃない? 変更点 まずは、C++17になっていたら文字列をstd::string_viewで受け取ったり、toml::valueをstd::string_viewで初期化できるようにした。どうやらC++17で使っている人がいたっぽいので、特に要求はなかったがあったほうがいいかなと思って…

toml11を60倍高速化した話

toml11はしばらく前に開発して、最近も結構いじり続けており、それなりの数のユーザーがついてるっぽくて結構嬉しくなっているライブラリだ。そもそもが自分のために作ったものなので、自分の都合で結構改変することがある。これは、まあレポジトリのオーナ…

最強のC++実装TOMLパーサーが完成した

ここ1, 2週間費やしていた作業が完了し、めでたくtoml11のバージョン2.0.0をリリースした。 github.com このバージョンアップで、 コードが凄まじく美しくなり、 エラーメッセージが最強になり、 TOML v0.5.0 (最新) に対応した。 せっかくなのでこの記事で…

自作プロダクトにIssueが立ったのでManjaroを触った話

背景 私が作った個人プロダクトの中で、特に宣伝していない割にはそれなりに(見ず知らずの人に)スターを貰って使ってもらえているものがあるのだが、そこにIssueが立った。 internal compiler error with gcc-7.3.1 · Issue #9 · ToruNiina/toml11 · GitHu…