FTLLisp Rust

Timeline
Login

Timeline

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

50 most recent check-ins

2025-03-19
15:30
Context::lref()等追加 ... (Leaf check-in: 035f6f329f user: tomoki@ftl.co.jp tags: master, origin/envir_name_map, origin/master, origin/vm_operations, trunk)
2025-03-18
13:49
(len() - 1)でのパニックの回避(または受容) ... (check-in: f1f4dcce36 user: tomoki@ftl.co.jp tags: master, origin/envir_name_map, origin/master, origin/vm_operations, trunk)
2025-03-17
16:40
ByteCode周りのリファクタリング(その3) 一応ここまで。 ... (check-in: 8515e677fa user: tomoki@ftl.co.jp tags: master, origin/envir_name_map, origin/master, origin/vm_operations, trunk)
10:13
ByteCode周りのリファクタリング(その2) ... (check-in: d50dfdc6ca user: tomoki@ftl.co.jp tags: master, origin/envir_name_map, origin/master, origin/vm_operations, trunk)
08:28
ByteCode周りのリファクタリング(途中) ... (check-in: 24c8992c70 user: thasegawa@mta.biglobe.ne.jp tags: master, origin/envir_name_map, origin/master, origin/vm_operations, trunk)
2025-03-15
09:15
Operations::assemble() -> Operations::to_bytecode() ... (check-in: 1bad3b6222 user: thasegawa@mta.biglobe.ne.jp tags: master, origin/envir_name_map, origin/master, origin/vm_operations, trunk)
2025-03-14
16:53
Operation::Procedure()を復活し、ByteCode::Proc()は廃止(BytteCodeはstructに) ... (check-in: bddbd17c9d user: tomoki@ftl.co.jp tags: master, origin/envir_name_map, origin/master, origin/vm_operations, trunk)
16:19
FinishとReturnのByteCode::Proc()としての特別扱いをやめる ... (check-in: e63692db1b user: tomoki@ftl.co.jp tags: master, origin/envir_name_map, origin/master, origin/vm_operations, trunk)
14:47
ByteCodeにはラベルをアドレスには変換して保持 10%くらいループが速くなった。 ただ、ラベルフェッチより、Operation::degen() -> ByteCode::get_op()でArc::clone()が減ったせいかも。 ... (check-in: f12702acfe user: tomoki@ftl.co.jp tags: master, origin/envir_name_map, origin/master, origin/vm_operations, trunk)
13:50
byte列にシリアライズせずOperationsを実行する とりあえずシリアライズはコメントアウトしてByteCodeにOperationsをもたせる 遅くなった。ラベルのフェッチのせい? ... (check-in: 7b7c7b0b1b user: tomoki@ftl.co.jp tags: master, origin/envir_name_map, origin/master, origin/vm_operations, trunk)
11:57
closure内のByteCodeをtraitオブジェクトにして、ftllisp-objectの外に出す とりあえず、コードをbyte配列まで落とさずにOperationの配列にして実行する準備。 RFtlObjをByteCodeをとるgenericなオブジェクトにすればdynamic dispatchする必要はないはずだが、ややこしそう。 また、それならGCやread/writeも分離したくなる。 ... (check-in: 3aade9d92a user: tomoki@ftl.co.jp tags: master, origin/envir_name_map, origin/master, origin/vm_operations, trunk)
2025-03-12
13:40
strum 0.27.1 ... (Leaf check-in: 04ce69326f user: tomoki@ftl.co.jp tags: master, origin/envir_name_map, origin/master, trunk)
11:18
set!(srfi-17)が動作しなくなっていた letrecの展開で、#<unbound>に設定された|ftl syntax|のset!が参照されてしまうため、動作しなくなっていた。|ftl syntax|:set!の初期値をnull:set!として解消(あるいはletrecをletrec*にすればset!が使われない)。 ... (Leaf check-in: a4198dfba6 user: tomoki@ftl.co.jp tags: master, origin/envir_name_map, origin/master, origin/simplify_meanings, trunk)
2025-03-04
16:32
シンタックスの定義修正 なかみ(SyntaxObject, meaning_XXX)なしでモジュールに変数のみ定義 srfi-17 set!がうごかなくなってる。 ... (check-in: 2655d33cb3 user: tomoki@ftl.co.jp tags: master, origin/envir_name_map, origin/master, origin/simplify_meanings, trunk)
2025-02-28
19:07
ModulesObject::next_modules()追加 ... (check-in: 8d51e3b9a7 user: tomoki@ftl.co.jp tags: master, origin/envir_name_map, origin/master, origin/simplify_meanings, trunk)
15:13
グローバル環境を修正 - グローバル環境はモジュールで、上位はモジュール環境 - インタラクション環境もグローバル環境と同様 - グローバル環境はグローバルモジュール環境に入れる - 解釈時の変数の探索はローカル環境、グローバル環境、モジュール環境の順にたどって探索(モジュール環境については追加した逆順) - 実行時のモジュール変数はグローバルモジュール環境から探索 初期化時(多分モジュールロード時も)は、グローバル環境(解釈環境)を生成しそのモジュール環境にモジュール(エクスポートする変数を定義した環境)を追加する(defineではモジュールの変数がかき変わることになる)。解釈環境で解釈(実行)したうえで、エクスポートする変数を定義したモジュールをインタラクション環境の上位のモジュール環境に加えることで、モジュールの変数を使用できるようになる(はず)。 エクスポートしない変数はインタラクション環境からはアクセスできないが、エクスポートした関数(及びマクロ)からはアクセスできないといけないので、GRefではなくPRefにコンパイルされ、解釈環境もモジュールとしてグローバルモジュール環境に入っている必要がある。 ... (check-in: 05c7321382 user: tomoki@ftl.co.jp tags: master, origin/envir_name_map, origin/master, origin/simplify_meanings, trunk)
2025-02-26
14:28
meaning: グローバル変数の参照不可の場合があったのを修正 解釈時にまだ未定義の変数を参照するとすべてGlobalRefとしていた。init.scmの解釈時のグローバル環境は|ftl user|となっていて、実行時のグローバル環境(interaction-environment)とことなるため、未定義参照となってしまう。 グローバル環境の構成をちゃんとかんがえなおす必要がある ... (check-in: e19062eaa0 user: tomoki@ftl.co.jp tags: master, origin/envir_name_map, origin/master, origin/simplify_meanings, trunk)
2025-02-20
08:32
call/ccをインライン展開 ... (check-in: f570134e5a user: thasegawa@mta.biglobe.ne.jp tags: master, origin/envir_name_map, origin/master, origin/simplify_meanings, trunk)
2025-02-19
18:35
Mil::decode_args()等修正 ... (check-in: 0ee478b1ec user: thasegawa@mta.biglobe.ne.jp tags: master, origin/envir_name_map, origin/master, origin/simplify_meanings, trunk)
13:53
Mil::decode_local_env_closure()削除 decode_closed_app()の処理と殆どかわらないため統合 ... (check-in: a2b2663bc1 user: tomoki@ftl.co.jp tags: master, origin/envir_name_map, origin/master, origin/simplify_meanings, trunk)
10:19
Mil::decode_local_env_closed_app()呼出し位置変更 ... (check-in: c1959d3c3c user: tomoki@ftl.co.jp tags: master, origin/envir_name_map, origin/master, origin/simplify_meanings, trunk)
2025-02-18
21:31
ローカル変数(引数)の定数チェックをdecode_argsの結果で行うように変更 procedureのtypeを修正。リテラル定数を与えると(リテラル)定数を返すものをConstValuedとしてやりかけの ValueButMutを削除 ... (check-in: b7c778645a user: thasegawa@mta.biglobe.ne.jp tags: master, origin/envir_name_map, origin/master, origin/simplify_meanings, trunk)
2025-02-17
22:06
Mil::decode_call_primitiveでもう少し定数畳み込み デコード結果が定数なら…というのは他でもできそうだが… ... (check-in: f115032947 user: thasegawa@mta.biglobe.ne.jp tags: master, origin/envir_name_map, origin/master, origin/simplify_meanings, trunk)
17:44
ローカル変数の状態設定変更 - Mil生成時に変更有無(modified)を設定 - internal_defineがset!相当になる場合も - local_setのデコード時にset_constant - local_refのデコード時に!modifiedでconstantならConstant()を生成 - closed_appの場合はdecode時にcallの引数が定数ならclosureの変数にset_constant XXX: decode_closed_app()でtailコンテキストをもどしておかないと、 (+ (or #f (not (null? '())) 3) (or (zero? 1) 2)) got 3 but expected 5 となった。+の第1引数がTailになっていたため(定数伝搬の拡大で発現したらしい)。 ほかにもぬけがあるかも。 とりあえず、tailを変更したらもどすようにはしておく ... (check-in: d03d6dbaea user: tomoki@ftl.co.jp tags: master, origin/envir_name_map, origin/master, origin/simplify_meanings, trunk)
08:46
Mil::ClosureもArityで保持 ... (check-in: 8f1ec9cbcb user: thasegawa@mta.biglobe.ne.jp tags: master, origin/envir_name_map, origin/master, origin/simplify_meanings, trunk)
2025-02-16
22:08
VarStateを再びdenotationに移動 ローカル変数状態を変更するのは、Milを生成する際で、参照するのはデコードの際のため。meaningでは環境ごとの状態を保持する(meaningのコンテキスト二しか持てない) TODO: 引数の定数伝搬 ... (check-in: 3ac39fea23 user: thasegawa@mta.biglobe.ne.jp tags: master, origin/envir_name_map, origin/master, origin/simplify_meanings, trunk)
10:36
EnvironmentObject::check_var()修正 リファクタリング モジュールの保持について混乱している ... (check-in: c0c36062f8 user: thasegawa@mta.biglobe.ne.jp tags: master, origin/envir_name_map, origin/master, origin/simplify_meanings, trunk)
2025-02-15
23:26
environmentリファクタリング ... (check-in: eac708322c user: thasegawa@mta.biglobe.ne.jp tags: master, origin/envir_name_map, origin/master, origin/simplify_meanings, trunk)
22:35
モジュールの検索順修正 現状は特にかぶっていないので問題ない(なかった)。 ... (check-in: 0f0d87e811 user: thasegawa@mta.biglobe.ne.jp tags: master, origin/envir_name_map, origin/master, origin/simplify_meanings, trunk)
18:48
Merge branch 'envir_name_map' into simplify_meanings ... (check-in: d400803664 user: thasegawa@mta.biglobe.ne.jp tags: master, origin/envir_name_map, origin/master, origin/simplify_meanings, trunk)
18:36
不要コード削除 ... (check-in: d9e30eb64c user: thasegawa@mta.biglobe.ne.jp tags: master, origin/envir_name_map, origin/master, origin/simplify_meanings, trunk)
18:27
Environment::nameを名前と変数インデックスのマップにしてみる すごく遅くなる。 扇形探索するvar_name()はコンパイル時のみ使用しているので、HashMap::get()を行うlookupが遅いはず。 でもVec::position()とHashMap::get()を比較してみたら100個でもHashMapの方が速そうなんだが?。 ... (Leaf check-in: 54baeb82d9 user: thasegawa@mta.biglobe.ne.jp tags: master, origin/envir_name_map, origin/master, origin/simplify_meanings, trunk)
16:52
EnvironmentObject::set_next()廃止 とりあえず使わなくなったので、nextをいじるのはset_activation_frame_values()のみに。 ... (check-in: 1c6ce1925d user: thasegawa@mta.biglobe.ne.jp tags: master, origin/envir_name_map, origin/master, origin/simplify_meanings, trunk)
16:40
グローバル変数の取り扱い修正 - グローバル変数の生成をmeaningで行っていたのをvmで行う - c1293b9で定数チェックをdecode時に遅らせられなかった原因。これでMilの生成だけでは不要なグローバル変数は生成されず、デコード時にコードが生成されなくても齟齬は起きない - それに伴いvmではグローバル変数はすべて名前で検索(もとのCheckdGlobalRef扱い)。indexより遅いが仕方ない。 - Environment::nameを名前-indexのハッシュテーブルにするか?(そんなに聞かないと思うけど) - EnvironmentObject::check_varは変数名も返すようにした - identifierの解決もしてしまうため、varenvから値を取るには名前が必要となった - Mil::GSet(Operaton::SetGlobal)はGDef(DefGlobal)としてなければ生成、Mil::USet(SetCheckedGlobal)をGSet(SetGlobal)にしてなければエラー、Mil::URef(CheckedGlobalRef)は廃止 ... (check-in: 900ff2b81e user: thasegawa@mta.biglobe.ne.jp tags: master, origin/envir_name_map, origin/master, origin/simplify_meanings, trunk)
2025-02-14
18:41
グローバル変数を定数扱いしているのを廃止 meaningでマクロ以外の名前を追加しているのはまずい。vm側で行う必要がある。さもなくばdefineは(まだ)実行されていないのにpredefinedの変数がシャドウされてしまう場合がある。 なお、グローバルなマクロを書き換えると実行時に何を参照すべきか微妙なような。 ... (check-in: c8f509ee8a user: thasegawa@mta.biglobe.ne.jp tags: master, origin/envir_name_map, origin/master, origin/simplify_meanings, trunk)
16:35
meaning_define_syntax修正 global define-syntaxで新たな変数を作ることになっていて、再定義がうまくいかなかった。 ... (check-in: 7a6e44c632 user: thasegawa@mta.biglobe.ne.jp tags: master, origin/envir_name_map, origin/master, origin/simplify_meanings, trunk)
14:46
定数の扱いを修正 ifのtestのチェックをdecode時に遅らせる ただし、うまくいかないのでmeaning_ifでのチェックも残っている また定数引数のPrimitiveCallのエラー伝搬が誤っている ... (Leaf check-in: 00bc2fc40c user: tomoki@ftl.co.jp tags: master, origin/master, origin/simplify_meanings, trunk)
10:14
Constant/LiteralのOpcodeを修正 ... (check-in: e9284e2183 user: tomoki@ftl.co.jp tags: master, origin/master, origin/simplify_meanings, trunk)
00:05
不要なsyntactic envirのnextの書き換えを削除 DecodeCtx::removed_envirに登録してあればdepthの計算でスキップされるため必要ない ... (check-in: 230e662fb2 user: thasegawa@mta.biglobe.ne.jp tags: master, origin/master, origin/simplify_meanings, trunk)
2025-02-13
23:54
Mil::regular_callでの無理筋な書き換えをやめる ... (check-in: 26e3c0062c user: thasegawa@mta.biglobe.ne.jp tags: master, origin/master, origin/simplify_meanings, trunk)
13:24
Merge remote-tracking branch 'home/master' into simplify_meanings ... (check-in: 8c4a1f980f user: tomoki@ftl.co.jp tags: master, origin/master, origin/simplify_meanings, trunk)
13:23
Mil::LRefCallを復活 LocalEnvでloop関数のLRefが陽に(Call以外で)現れないことをチェックするために必要だった。 ... (check-in: a781c6de61 user: tomoki@ftl.co.jp tags: master, origin/master, origin/simplify_meanings, trunk)
11:53
Merge branch 'simplify_meanings' of https://mmp.dnsalias.org/kallithea/FTLLisp_rust into simplify_meanings ... (check-in: 4812901c48 user: tomoki@ftl.co.jp tags: master, origin/master, origin/simplify_meanings, trunk)
11:48
Mil::Call(PRef,)の展開が抜けていた ... (check-in: ed410e7dbe user: tomoki@ftl.co.jp tags: master, origin/master, origin/simplify_meanings, trunk)
11:47
Mil::Call(PRef,)の展開が抜けていた ... (check-in: 70e209e9c7 user: tomoki@ftl.co.jp tags: master, origin/master, origin/simplify_meanings, trunk)
11:40
LocalEnvJumpがとりあえず動く ... (check-in: daaa93be6b user: tomoki@ftl.co.jp tags: master, origin/master, origin/simplify_meanings, trunk)
2025-02-12
17:22
LocalEnvのコードを復活させたが動いていない ... (check-in: e2ace081de user: tomoki@ftl.co.jp tags: master, origin/master, origin/simplify_meanings, trunk)
16:24
Mil::ClosedAppを削除して、Mil::Callに統合 LocalEnvJumpが入っていない(ので遅くなってる) ... (check-in: 50903fdff0 user: tomoki@ftl.co.jp tags: master, origin/master, origin/simplify_meanings, trunk)
2025-02-11
16:38
Continuationオブジェクトからpcを削除 pcはcode(BytecodeObject)から取り出せるので不要(になっていた) ... (Leaf check-in: 8727cfc3e5 user: thasegawa@mta.biglobe.ne.jp tags: master, origin/master, trunk)
2025-02-10
18:15
nargs -> nvars ... (check-in: f7b22bb04e user: thasegawa@mta.biglobe.ne.jp tags: master, origin/master, trunk)