今月の進捗など
hsp3-debug-ginger
https://github.com/vain0x/hsp3-ginger/tree/main/hsp3-debug-ginger
- 前月からやっている、VSCode 対応の HSP デバッガーを作るプロジェクト
- 前回の近況では進捗を書き忘れていた
- 最小限の機能が揃った
- グローバル変数を基本型の1次元配列まで表示できる
- assert とかで止まったときに実行中の行がエディター上で強調表示される
- VSCode の一時停止ボタンやステップインボタンで実行の制御ができる
- アルファ版のプレリリースを出した
- 課題はたくさんある
- インストール手順が煩雑すぎる
- 挙動がおかしい
- 実行中の行にスクロールしてくれない
- 基本的な機能の不足
- logmes
- 2次元以上の配列の表示
milone-lang
https://github.com/vain0x/milone-lang
- セルフホストを目指している F# サブセットのコンパイラ
- リファクタリング、エラーハンドリングの強化、パーサーの微修正などの細かい作業をした
- README にプロジェクトの進捗状況やコンパイル手順などを書いた
- パターンマッチを強化した
- when パターンは、パターンに合致した後に追加の
if
文を足せばいい - as パターンは、パターンに合致するかの判定の前に変数への代入を行えばいい
- or パターンの一部
- パターンを選言標準形的なものにするとやりやすい
- 例えばパターン
Foo (A | B) :: _
をFoo A :: _ | Foo B :: _
にする - つまり
|
が一番外側に来るようにする |
の左右のパターンについてそれぞれ合致するか試して、どっちかに合致したら->
の内側にgoto
する- いまのところ or を含むパターンでは変数を束縛できない
curage-lang
https://github.com/vain0x/curage-lang
- Language Server Protocol (LSP) の練習用のプロジェクトを始めた
- LSP は Debugger Adapter Protocol と似てるけど、より複雑で難しい
- 既存のパーサーを使うのはめんどくさいので処理系を一から書いていて、いちおう自作言語という扱い
- クラゲ言語
- Rust 風の構文 (予定)
- 単純な型システム (予定)
- インタプリタ上での実行 (予定)
- いまのところ構文エラーを VSCode 上に警告として表示するやつ (textDocument/publishDiagnostics) だけできている
- Node (TypeScript) 用に LSP の実装の基盤となるフレームワーク的なものがある
- vscode-languageserver
- 何をやっているのかよく分からないので使っていない
競技プログラミング
- AtCoder に毎週参加している
- レートは青に漸近中 (1557 → 1580 → 1582)
- 競プロ参戦記 #24 「約数75」 ABC 114|ベイン|note
- 競プロ参戦記 #25 「クリスマス多次元バーガー」 ABC 115|ベイン|note
- 競プロ参戦記 #26 「和が2冪」 AGC 29 [AB]|ベイン|note
- 競プロ参戦記 #27 「ゲーム」 CADDi 2018 [CD]|ベイン|note
ウェブアプリ開発
- UI を作り込んだ
- on-the-fly で描画するには複雑なグラフを SVG 画像として生成するスクリプトを書いた
- Fabric.js でラップされた Canvas API を使って図形を描画して、SVG にエクスポートして、ローカルサーバーに送信して、ファイルに保存する、という遠回り。1回動いたら十分なのでよし
Qiita
- シクシク素数列を F# でやってみた - Qiita を投稿した
- F# で素数判定をやるサンプルコード的なもの
- Domain Modeling Made Functional まとめ - Qiita を読んだ
- 元になった F# で DDD をやる本も読んでいる
Trickle
- Trickle を始めた
- トピックごとに活動記録を書いていけるスマートフォンアプリ
- 参考 http://blog.h13i32maru.jp/entry/2018/11/12/092904
- ガルパメモの垂れ流しになってる
ガルパ (リズムゲーム)
- 難度26の精度は確実に上がってきている
- 難度27以上については、マジックアワーをフルコンボした以外に進歩がない
- アニメの 1st season 良かった