2020-03-19: 6th Streetに行きたい
やったこと
ReRE.js
TNFAの論文を読んだことにより大分まとまった。
後読みの問題は、分岐命令に優先度を付けて、優先度の高い分岐から来たものを優先するようにすればいいと思う。
通常の場合は左優先だから、命令セットを工夫すれば早いもの勝ちで上手くいくのだけど、後読みの場合はそうではないので優先度をちゃんと保持しなければいけない、という感じ。
このアイディアはTNFAに由来している。
他に面倒に感じていることとして、先読みのキャプチャの保持がある。
これには二つの場合の面倒さがあって‥‥、
/(?=([ab])).*/みたいな場合。
aaabみたいなのにマッチさせるとき、どの位置から開始した先読みなのかと、各位置からのキャプチャを保持する必要がある。/(?:(a)(?=.*(a)$)|(b)(?=.*(b)$)).*/みたいな場合。
どちらの先読みが成立するか分からないけど、各分岐でキャプチャが変わるので、先読み状態(LinkSet)毎にキャプチャを持たなければいけない。
というわけで最終的な開始位置とキャプチャはLinkSet毎に持たせて、キャプチャは開始位置毎に複数持てるようにするのが正しいっぽい。
めっちゃ効率悪そうだけど、とりあえず動かないとしんどいし、この方針でやってみたい。
参照してるLinkSetが無くなったタイミングで、その開始位置のキャプチャは削除する、とかできそうだけど、参照カウンタみたいなのが必要になりそうな気がして、それはそれでしんどいと思う。
あとRegExpCompatのテストをちゃんと書いた。
class構文を使ってると呼び出しがちゃんと動かなかったので、その辺を直したりもした。
結果型チェックがガバガバになったけどやむなし。‥‥本当にそれでいいのか?
でもカバレッジは98%を越えた。高すぎて違和感あるが‥‥。
で、publishの前にビルドするのを忘れたので一気にv0.1.3がリリースされた。
ほんまアホ。
prepackコマンドを仕込んだのでマシになると信じたい。
6th Street
今日のBingの壁紙だった。
なぜかよく分からないけれど、この風景にすごく衝撃を受けている。
この街にいつか行ってみたい。
テキサスか‥‥。
Cot Editor
Markdownのシンタックスハイライトに厳しいものを感じるので、MacVimで今日のdiaryは書いてみている。
でもCot Editor軽いのと、日本語がわりとちゃんと表示できるんだよなぁ。
3月のライオン
りゅうおうのおしごとを見終わった勢いで見始めていた。
りゅうおうのおしごとはよくも悪くもバトル漫画的なのに比べて、こっちは人間を描くなぁ、と思う。
どっちが良いのかというと難しくて、実はりゅうおうのおしごとの方が『将棋』というゲーム自体は描けているのではないか、という気もする。
難しい。
acornの脆弱性
これはRegular Expressionをパースする際に起こる問題であってREDoSではないだろう、と思わんでもない。
なんなのか。
https://www.npmjs.com/advisories/1488
シャニ
ホワイトデーのアイテムを使い切ってなかったので急いで消化した。
イルミネしかコミュ見なかったけど、まあいいか‥‥。
唐突にめぐるを引いた。
うれしい。
https://mobile.twitter.com/make_now_just/status/1240645901644730369
ミリシタ
ロイヤルスターレットマスターになった。
思ったより時間かかったな。まあそんなに全力で走ってなかったしなぁ。
しかしここ最近不具合多いけど大丈夫なのかね‥‥。
不安だ。
あとイベントは10万ptまで取った。
2500位走り切ろうかどうしようか‥‥。
面倒になりつつある。
グラブル
ガチャピンに感謝。
というか、ここ数日ガチャの調子よくない?
https://mobile.twitter.com/make_now_just/status/1240470847313207296
diary
リスト関連のスタイルがイマイチな気がしたので修正した。
list-style-positionはoutsideにした方が無難っぽいなぁ。