[obsidian] vault backup: 2025-07-04 06:05:53[
This commit is contained in:
		@@ -7,4 +7,32 @@ date: 2025-07-03 18:34
 | 
			
		||||
 | 
			
		||||
二重インクルードの問題とかもあるので、先に分割コンパイルの仕組みを整える方がいい?
 | 
			
		||||
 | 
			
		||||
型の環境の中に変数解決が必要になってくる
 | 
			
		||||
 | 
			
		||||
内部的には幽霊、Opaque、バリアントで分かれててもいいかもな
 | 
			
		||||
 | 
			
		||||
```rust
 | 
			
		||||
enum Variant{
 | 
			
		||||
	Phantom(Symbol),
 | 
			
		||||
	Opaque(Symbol,TypeNodeId),
 | 
			
		||||
	Union(Box<Self>,Box<Self>)
 | 
			
		||||
}
 | 
			
		||||
enum Type{
 | 
			
		||||
	...
 | 
			
		||||
	
 | 
			
		||||
	Variant(Variant)
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Foldでネストするくらいなら`Vec<Box<Self>>`に収められるかな?
 | 
			
		||||
 | 
			
		||||
パーサーとASTとしてはmatch節も加えないと意味ない
 | 
			
		||||
 | 
			
		||||
で、型推論に加えなきゃいけないコードは、
 | 
			
		||||
 | 
			
		||||
- 型コンストラクタを関数として使えるように型→値環境に追加し、App式の評価で使えるように
 | 
			
		||||
- match式の型推論
 | 
			
		||||
 | 
			
		||||
matchのコード生成がジャンプテーブルとか出てくるとめんどくさいんだよなあ
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -19,3 +19,6 @@ ChucKではエフェクトのテールが更新時にぶちぎれる問題があ
 | 
			
		||||
 | 
			
		||||
各トラックごとのエフェクトのライブ切り替えとかも実現しようと思えばできるかな
 | 
			
		||||
 | 
			
		||||
...これ、結局[[SuperCollider]]のJITLibと同じことかもな
 | 
			
		||||
 | 
			
		||||
[jitlib\_basic\_concepts\_01 \| SuperCollider 3.14.0-dev Help](https://doc.sccode.org/Tutorials/JITLib/jitlib_basic_concepts_01.html)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user