2021-07-03
Diary近況です。
今月はenumを実装した。ようやく念願のOption型が使えるようになるぞ…と思いきや、パターンマッチがないのでメソッドが書けないことが判明。道は長い。
ちなみにクラス名はOptionじゃなくてMaybeにする予定。HaskellとRakuくらいでしか見たことないけど、コンピュータぽくなくて好きなんですよね。あとOptionという名前はCLIアプリで普通に使いそうとか、Maybeの方が(日本人にとっては?)初学者に意味がわかりやすいとか。
2021-06-04
Diary近況です。
今月は定数まわりの実装を整理した。これでenumが実装できる…と思ったんだけど、その前に「スーパークラスに型パラメータを書けるようにする」が必要であることが判明した。yak shavingだなあ。しかしまあ先に気づけてよかった。ミートアップのおかげだ。
2021-05-02
Diary近況です。
今月は分割コンパイルへの第一歩として、組み込みクラスとユーザープログラムを別々の.bcファイルとして作り、clangでリンクするようにした。PRの長さを見ればわかる通りけっこう大変だったが、これでライブラリが何をエクスポートし得るかについて整理できた。
関連して、Rustで組み込みクラスを書くための準備もした。Fileクラスとかは今までの仕組み(こういうやつ)だけでやるのは大変すぎるからね。
2021-04-04
Diary近況です。
今月はいろいろ他事をしていてあまり進められなかった。if文の型チェックを整理したくらいか。これでこういうのが書けるようになった。
次は分割コンパイルの件に手を付けたい。
2021-03-02
Diary先月の活動報告です。
Shiika
doc/guide, doc/specを追加した。一見同じものに見えるが、前者はユーザ向け、後者は仕様書なので微妙に内容が違う。例えば「メソッド名は慣習的にunder_scoredにする」という話は前者には書くが、後者には書かない。一方、普段使わないようなコーナーケースの話は後者にだけ書く。という感じ。
あとメソッドからのreturnを実装した。その勢いでブロックからのreturnも実装しようとしたのだが、思ったよりはるかに難しいことがわかり一旦ペンディングにすることにした。
BiwaScheme
2021-02-05
Diary近況です。
Shiika
今月はなんかいろいろやった。大きなのはHashクラスが入ったのと、Array#mapが入ったのと、こないだ書いたctxのリファクタリングかな。
あとは「一年の計は元旦にあり」ということで、Shiikaレベルで書けないものをどうするか検討していた。結果としては、標準ライブラリはRustで書いて、それとは別にffi機能を提供するということに落ち着きそう。Rustでライブラリ(RubyでいうRubyGemsみたいな)を書けるようにしようかなとも思ったのだけど、それだけだと例えばlibSDLを使いたいときにShiika→Rust→Cという二人羽織状態になってしまうので。
BiwaScheme
2020-12-31
Diary2020年の振り返り。
イベント
今年はほとんどのイベントがオンライン化するという未曾有の事態だった。登壇としては10月のlangsmith1件で、これもオンライン。
開発
Shiikaの開発が進み、だいぶ「本物」に近づいてきた。advent of codeとかで実際にShiikaプログラムを書いてみてるけど、体験はとてもよい。まだまだ荒削りだけど、方向性が間違っていないことが確認できたといえよう。
2020-12-03
Diary2020-11-01
Diary
自作プログラミング言語の集いで発表した。スライドはここ。
vtableの方は10月ぎりぎりで実装できた。残念ながら型システムの問題でまだ実際のメソッド(Object#inspectとか)は実装できていないが、11月中にはなんとかなるだろう。
dynamic-windがうまく動かないケースがあるという報告をもらって調べてみたら、確かにスタックがこわれていた。継続まわりのVM命令をいじったときに、「aレジスタを復元する」という処理の位置が間違っていたようだ。winderを実行するとaレジスタは破壊されるので、winderの実行が終わったあとで復元しなければならない。