[obsidian] vault backup: 2025-09-22 13:40:38[
This commit is contained in:
		@@ -65,19 +65,33 @@ delay(3)delay(1) delay(2)
 | 
			
		||||
に更新される
 | 
			
		||||
 | 
			
		||||
```rust
 | 
			
		||||
enum StateLeaf{
 | 
			
		||||
   Nested(Box<StateTree>),
 | 
			
		||||
   Delay(usize),
 | 
			
		||||
   Feedback(usize),
 | 
			
		||||
//PartialEqで中身ではなくサイズを比較するようにする
 | 
			
		||||
struct MemoryChunk(Vec<u64>>);
 | 
			
		||||
 | 
			
		||||
enum StateNode{
 | 
			
		||||
   Tree(StateTree),
 | 
			
		||||
   Delay(MemoryChunk),
 | 
			
		||||
   FeedBack(MemoryChunk),
 | 
			
		||||
   External(MemoryChunk)
 | 
			
		||||
}
 | 
			
		||||
struct StateTree{
 | 
			
		||||
  children: Vec<StateLeaf>
 | 
			
		||||
  children: Slotmap<Box<StateNode>>
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
途中でchildrenの一部が削除される可能性があって、かつiterateも行うのでSlotmapで良さそう
 | 
			
		||||
Delay、feedback、Externalを区別する意味はあるのか?→たまたまサイズが同じなDelayとExternalとかはあり得るので区別必要
 | 
			
		||||
 | 
			
		||||
クロージャの呼び出しの時は?
 | 
			
		||||
 | 
			
		||||
コンパイル時ではなく、Closure命令でクロージャが作られる際にアロケートとIDの振り分けが起きる
 | 
			
		||||
クロージャの呼び出しの時は?→コンパイル時ではなく、Closure命令でクロージャが作られる際にアロケートとIDの振り分けが起きる これは諦めて良さそう(適切にやりたければ[[多段階計算]]でコンパイル時に頑張れ)
 | 
			
		||||
 | 
			
		||||
あとはIDの振り方問題。dspから順番にnon-closure-callをトレースするのは同じとして
 | 
			
		||||
 | 
			
		||||
```rust
 | 
			
		||||
fn update_state_tree(oldtree:StateTree,newtree)->StateTree{
 | 
			
		||||
 let state_changed = oldtree.children.iter().zip(newtree.children.iter()).all(|oldc,newc|newc == oldc)
 | 
			
		||||
 
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
クロージャ
 | 
			
		||||
 
 | 
			
		||||
 Submodule content/private updated: 16aae05f00...76de0962f9
									
								
							
		Reference in New Issue
	
	Block a user