* 第三世代OSASKに関するメモ群 [#p3809a86] -(by [[K]], 2011.07.08) *** (1) 近況(2011.07.08~) [#c2b78b66] -(by [[K]], 2011.07.08) -2011.07.08: --震災があって忙しくなって、blike開発ラッシュがとまってしまう。フォント周りを少し作ったけどまだリリースするほどにはできてない。待っている人がもしいたら正直申し訳ない。でも原則として、次期リリースは常に保証しないというのが現在のスタンスなので、あまり期待しないでほしい。 --それで(何の脈絡もないけど)、第三世代OSASKをやりたい。第三世代OSASKでできるようにしたいことはたくさんあるけど、その中に以下のようなことがある。 ---タスクセーブができる。セーブしたものを再開できる。 ---実行中のプログラムを書き換えてもOK。それでもどうにかして実行は継続され、書き換えた内容が反映される。 --そういうことを妄想していても始まらない。ということで、やりたいことを具体的に考えてみた。 int i; for (i = 0;; i++) printf("%d hello\n", i); --みたいなプログラムを考える。まずこれをセーブしたり再開できるようになりたい。 --とはいえ、僕の目指しているのは、このプログラムのままセーブできるようになるということではない。このプログラムにいろいろ小細工をして、それで同等のことを実現できればいいのだ。そんな小細工はずるいと思うかもしれないが、それは将来的にはコンパイラを改造して自動でやらせるからいいのだ。・・・そう、第三世代OSASKは言語処理系の改造も含んでいるのである。 --要するにどういうスタイルで書けばできるようになるのかを知ることが第一だ。 -2011.07.11: --C言語で実験したいと思っていたけど、C言語は勝手にいろいろやってしまうからうまくいかないということが分かった。じゃあアセンブラで実験だ。アセンブラだと分かりやすさが減ってしまうけど、まあしかたない。 --これは第三世代OSASKではC言語が使えないという意味ではなくて、コンパイラをまじめに作り直さないとダメだというだけのこと。 --ちょっとキャンプの準備がいろいろあるので、ペースダウンの予定。 --アセンブラでやっていいのなら、たぶんefg02みたいなのを使うことで、win32やLinux上でも第三世代OSASKアプリが動いて、タスクセーブとかもできるはず??? -2011.08.17: --キャンプが終わってASKAで実験中。感触としては、これならまあまあうまく行きそう。かなり機能制限しているけど、とりあえずセーブまではできた。 -2011.08.23: --9月からはまた忙しくなってしまうので、8月中にリリースしたい。今のバージョンだと見た目がいかにもしょぼいので、blikeベースでリリースしようと思う。要するに、ASKAでblikeアプリを作るとタスクセーブができるようになるということだ。今までのOSASKは「起動速度」とか「サイズ」とか「動作の軽さ」とかで他のOSでは味わえない世界を見せることに成功してきたが、今回のOSASKでは、ついにタスクセーブを体験できる。これはエミュレータOSの機能の一つであり、もし無事にリリースできれば、やっと性能以外のことを一つだけ達成できたことになる(いろいろと限定的だけど)。だからOSASK史上としては大きな出来事になると思う。 -2011.08.24: --blike01fにバグを見つけた。もう少しバグ探しした後、blike01gとしてリリースしなおそうと思う。 --タスクセーブしたあとタスクロードすると、結果的にガーベージコレクションも行われることがわかった。これはおもしろいかもしれない。 ---なにがどう面白いのかというと、メモリリークを起こしてしまうような「ダメなアプリ」でも、とりあえずタスクセーブしてロードすればリフレッシュできる。 ---また開放し忘れのオブジェクトがどういう構造体なのか簡単に突き止められるので、バグも探しやすい。
(This host) = http://osask.net