EssenMemo0002
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
* Essenの開発メモ#0002
-(by [[K]], 2017.04.24)
** 進捗: 2017.04.24
-さあ今日からEssenの開発を優先してがんばるぞー。
-今日は高速なmalloc/freeを書いた。どちらもO(1)。昨日の[[...
-なぜ高速なmalloc/freeが必要なのかといえばEssenはmallocも...
-次に作るのは変数の値を管理する部分。肝心の言語処理系は多...
-予定では、a="abcdefg...vwxyz"みたいな26文字の文字列があ...
-要するにポインタなんだろ、って言われると、まあ半分は正し...
-これができると何がうれしいか。
--変数の値をコピーするコストは非常に低いので、気軽にコピ...
--サイズの大きいオブジェクトはその内容に応じてID化される...
--a="abcdefg"; b="abcdef"; b+="g"; みたいに演算結果と...
--内容が一致したら、それらを別々にメモリにおいておく必要...
** 進捗: 2017.04.28
-高速に重複データを検出する仕組みはたぶんできた。まあ高速...
--ちなみに crit-bit tree を採用しています。
-どんな言語を作るにせよ、とにかく得意技が一つは必要だ! ...
** 進捗: 2017.05.08
-crit-bit treeはとても良いデータ構造だと思うけど、やっぱ...
-やはりskip-listを入れるしかないか・・・。
-どんな二分木でも多分木でも、結局リスト構造には勝てない要...
-たとえばプログラムの要素はリストで表現される:
a = 1 + b c = 3
element[0] = 'a'
element[1] = '='
element[2] = '1'
element[3] = '+'
element[4] = 'b'
element[5] = 'c'
element[6] = '='
element[7] = '3'
-ここで1+bを演算して25だという値になったら、element[2~4]...
-この例の場合は要素が減るのであまり問題はないけど、もし要...
-で、じゃあskip-listなら問題なくできるのかというと、問題...
-ちなみにskip-listならキーがあればキーの順番に並べること...
-でもなあ、乱数がうまくいかない場合は性能があまりよくない...
-その後、スキップリスト万歳な状況へ: [[EssenMemo0004]]
** 進捗: 2017.05.12
-まだコツコツとスキップリストを作っています。このスキップ...
** 進捗: 2017.05.17
-スキップリストは多分できあがったと思います。簡単なテスト...
-[Q]そんな下位の部分ばかり作ってどうするの?肝心の言語部...
-[A]それは一理あるのですが、しかし高速な下位を先に作れば...
** 進捗: 2017.05.20
-スキップリストのバグが見つかって、一時はデバッグの先が見...
-よしよし。
** 進捗: 2017.05.23
-任意のオブジェクトの完全ハッシュを求められるようになりま...
-これで値は4バイトで保持できるようになったので、ここから...
** 進捗: 2017.05.24
-当初は、演算子を自由に作れるとか、構文を自由に作れること...
-こういうことがあるから、下位から作るのはいいなーと思いま...
-専用か汎用か
-私は汎用を目指すと失敗するという考えを持っているものの、...
** 進捗: 2017.05.26
-今、64bit対応をどうするかで悩んでいます。
-まず、Essenが64bit対応すると、永続変数をたくさんメモリ上...
-しかし一方で、64bit版は32bit環境しかない人は動かせないの...
-まあ両方作ればいいじゃんと言われるとその通りなのですが・...
-一方で、インラインC言語とかを考えると、64bit対応するのは...
-うーん、できることならひとまず32bitだけで進めてしまいた...
** 進捗: 2017.06.08
-変数名から変数オブジェクトに到達するまでの速度を測ってい...
-消費メモリも事前に予測できるサイズくらいであることを確認...
** 進捗: 2017.06.13
-なんか50%くらいの確率で遅くなることがあって、これはやっ...
-内部のSkipListがたまたまいい感じになるときとそうでないと...
-いい感じになるかどうかはmallocがどんな番地を返してくるか...
-そんでもって、極端にばらつくのは嫌だから、速くないケース...
-もうバグも枯れたかなー。
-上位ルーチンを作ってもよさそう。
-次は構造体とかかなあ。
** 進捗: 2017.08.01
-現在はEssenRev2の開発をしています。
-今作っているのは、JITアセンブラみたいなもので、つまり仮...
-アセンブラがx86ではなくて仮想的になっているのは、このア...
-今日は、浮動小数点演算命令をいくつか追加しました。
** 進捗: 2017.08.25
-いろいろと細かいところを作り直したい。そうすれば性能はも...
** 進捗: 2017.09.11
-ここまでEssenRev2を作ってみて、JITコンパイラを小さな小さ...
* こめんと欄
-EssenはOSECPU-VMで利用できるようにする予定はありますか? ...
-遠い未来にはあり得ます。 -- [[K]] SIZE(10){2017-06-10 (...
-そうですか。お返事、ありがとうございます。 -- ''Takym'' ...
#comment
終了行:
* Essenの開発メモ#0002
-(by [[K]], 2017.04.24)
** 進捗: 2017.04.24
-さあ今日からEssenの開発を優先してがんばるぞー。
-今日は高速なmalloc/freeを書いた。どちらもO(1)。昨日の[[...
-なぜ高速なmalloc/freeが必要なのかといえばEssenはmallocも...
-次に作るのは変数の値を管理する部分。肝心の言語処理系は多...
-予定では、a="abcdefg...vwxyz"みたいな26文字の文字列があ...
-要するにポインタなんだろ、って言われると、まあ半分は正し...
-これができると何がうれしいか。
--変数の値をコピーするコストは非常に低いので、気軽にコピ...
--サイズの大きいオブジェクトはその内容に応じてID化される...
--a="abcdefg"; b="abcdef"; b+="g"; みたいに演算結果と...
--内容が一致したら、それらを別々にメモリにおいておく必要...
** 進捗: 2017.04.28
-高速に重複データを検出する仕組みはたぶんできた。まあ高速...
--ちなみに crit-bit tree を採用しています。
-どんな言語を作るにせよ、とにかく得意技が一つは必要だ! ...
** 進捗: 2017.05.08
-crit-bit treeはとても良いデータ構造だと思うけど、やっぱ...
-やはりskip-listを入れるしかないか・・・。
-どんな二分木でも多分木でも、結局リスト構造には勝てない要...
-たとえばプログラムの要素はリストで表現される:
a = 1 + b c = 3
element[0] = 'a'
element[1] = '='
element[2] = '1'
element[3] = '+'
element[4] = 'b'
element[5] = 'c'
element[6] = '='
element[7] = '3'
-ここで1+bを演算して25だという値になったら、element[2~4]...
-この例の場合は要素が減るのであまり問題はないけど、もし要...
-で、じゃあskip-listなら問題なくできるのかというと、問題...
-ちなみにskip-listならキーがあればキーの順番に並べること...
-でもなあ、乱数がうまくいかない場合は性能があまりよくない...
-その後、スキップリスト万歳な状況へ: [[EssenMemo0004]]
** 進捗: 2017.05.12
-まだコツコツとスキップリストを作っています。このスキップ...
** 進捗: 2017.05.17
-スキップリストは多分できあがったと思います。簡単なテスト...
-[Q]そんな下位の部分ばかり作ってどうするの?肝心の言語部...
-[A]それは一理あるのですが、しかし高速な下位を先に作れば...
** 進捗: 2017.05.20
-スキップリストのバグが見つかって、一時はデバッグの先が見...
-よしよし。
** 進捗: 2017.05.23
-任意のオブジェクトの完全ハッシュを求められるようになりま...
-これで値は4バイトで保持できるようになったので、ここから...
** 進捗: 2017.05.24
-当初は、演算子を自由に作れるとか、構文を自由に作れること...
-こういうことがあるから、下位から作るのはいいなーと思いま...
-専用か汎用か
-私は汎用を目指すと失敗するという考えを持っているものの、...
** 進捗: 2017.05.26
-今、64bit対応をどうするかで悩んでいます。
-まず、Essenが64bit対応すると、永続変数をたくさんメモリ上...
-しかし一方で、64bit版は32bit環境しかない人は動かせないの...
-まあ両方作ればいいじゃんと言われるとその通りなのですが・...
-一方で、インラインC言語とかを考えると、64bit対応するのは...
-うーん、できることならひとまず32bitだけで進めてしまいた...
** 進捗: 2017.06.08
-変数名から変数オブジェクトに到達するまでの速度を測ってい...
-消費メモリも事前に予測できるサイズくらいであることを確認...
** 進捗: 2017.06.13
-なんか50%くらいの確率で遅くなることがあって、これはやっ...
-内部のSkipListがたまたまいい感じになるときとそうでないと...
-いい感じになるかどうかはmallocがどんな番地を返してくるか...
-そんでもって、極端にばらつくのは嫌だから、速くないケース...
-もうバグも枯れたかなー。
-上位ルーチンを作ってもよさそう。
-次は構造体とかかなあ。
** 進捗: 2017.08.01
-現在はEssenRev2の開発をしています。
-今作っているのは、JITアセンブラみたいなもので、つまり仮...
-アセンブラがx86ではなくて仮想的になっているのは、このア...
-今日は、浮動小数点演算命令をいくつか追加しました。
** 進捗: 2017.08.25
-いろいろと細かいところを作り直したい。そうすれば性能はも...
** 進捗: 2017.09.11
-ここまでEssenRev2を作ってみて、JITコンパイラを小さな小さ...
* こめんと欄
-EssenはOSECPU-VMで利用できるようにする予定はありますか? ...
-遠い未来にはあり得ます。 -- [[K]] SIZE(10){2017-06-10 (...
-そうですか。お返事、ありがとうございます。 -- ''Takym'' ...
#comment
ページ名: