What goes on/what's going on:2021年04月29日分

2021/04/29(Thu)

[オレオレN6] できればgdtoa捨てたい

先日暇潰しに実装した JSON parser for CのNumber型サポート周りをきっかけに gdtoaでprintf(3)を実装するなんて記事を何本か書いて世界で0人くらいには読まれたと思うのだが、 json-cjqのNumber型の浮動小数点数サポートはワイと同じくgdtoaベースなのだけど、 Tensent rapidjson(こいつはC++実装だけど)は自前で Grisu2アルゴリズムを実装してるのだな。

さらに高速らしい Ryuアルゴリズムにでもせんと後発の車輪の再発明としても芸が無いのだが、最終的にオレオレN6に組み込むという目的からするとIEEE754でないVAXとかで困りそうなのがネックである。

以前ちらっとソース眺めた CによるRyu実装には

#define DOUBLE_MANTISSA_BITS 52
#define DOUBLE_EXPONENT_BITS 11
#define DOUBLE_BIAS 1023

とかあって現状VAXで動かんっぽい、それさえ無ければlibcのgdtoa由来のdtoaとstrtodなんぞ捨ててこいつ突っ込んじまうんだけど(まぁでもLC_NUMERICにも対応してなくてそこいらの作業もせんとならん)。

ちなみにライセンスはBoostとApache2の選択式なので前者選べばほぼgdtoaと同等(最近だと0条項BSDLというのかな、NだとHistorical Licenseと呼んでた記憶があるが)なので、そこで困ることは無い。

まぁラッパー書いてVAXだけgdtoa使うとか、いっそのことVAXサポート消すでもいいんだけどね、そもそも俺の家の押入れにはVAXは積まれてないし…

[オレオレN6] 続・gdtoa捨てたい

ふーん SwiftDtoaねぇ、 このプルリクしか情報は無いのでよく判らんけど、とりあえずのネックはApache2ライセンスなことか。

[SCM/BTS] BitBucket重いよ

ここしばらくBitBucketがクソ遅いのだが、くらしあんしんAtlassianなんかアカンのかな。 まさか先日の「タスク管理ツールTrelloから情報流出(と報道されるが単に愚者が自分で全世界に公開してるだけ)」とかいう日本人にインターネット与えるのは早過ぎた案件はさすがに関係ないとは思うが。

ワイが如何にしてGitHubをやめてBitBucketと水爆を愛するようになったかというと、まず俺のデフォルトアイコンを ソンブレロを被ってポンチョ着たオッサンが両手広げて股間を光らせてるようなアバターにするのを止めろ(被害妄想によるロールシャッハ検査症例)。

それと普通にUIの酷さに耐えられないのだよな、そもそもトップページに草生やすってのが嫌いなのと、フォローとかいいねとかSNS要素とか開発に無関係なものが多過ぎてワイには不向きちゅうとこや。 まぁBitBucketもUIが何年か前に改悪されてクッソ重くなっとるしSnippetsがリンクを知らないトップから辿れなくなったりしてだいぶ不満は溜まってるじゃんアゼルバイジャンなんで、他にいいとこあったらそっちに移住したくはある。

まぁ自分のコードを発見してもらいたい向きにはGitHub一択なのだろうけど、老いさらばえてヘイヘイマイマイ隠遁生活を送るワイにはBitBucketは静かで大変にありがたい。 タロットカードの「隠者(The Hermit)」の逆位置いいですよね、おっこいつもう一枚「愚者(The Fool)」の逆位置も引いたぞ!