Overview
SHA1 Hash: | 950fc6d3d46eff8bb919ab8c54a49aead94fb834 |
---|---|
Date: | 2010-11-27 23:28:33 |
User: | kinaba |
Comment: | no. lift _|_ for corecursion checking again. Current choices is, if it failed we instead assing _|_ itself. Maybe the better choice is to give up memoization when it failed to lift... |
Timelines: | family | ancestors | descendants | both | trunk |
Downloads: | Tarball | ZIP archive |
Other Links: | files | file ages | manifest |
Tags And Properties
- branch=trunk inherited from [f65680e1d2]
- sym-trunk inherited from [f65680e1d2]
Changes
Modified polemy/eval.d from [09f6f71388735bcb] to [271574033e4f3a71].
414 // automatic memoized co-recursive execution 414 // automatic memoized co-recursive execution 415 MemokeyType memokey = new MemokeyType(cast(void* 415 MemokeyType memokey = new MemokeyType(cast(void* 416 if(auto p = memokey in memo) 416 if(auto p = memokey in memo) 417 { 417 { 418 (*p)[1] ++; 418 (*p)[1] ++; 419 return (*p)[0]; 419 return (*p)[0]; 420 } 420 } 421 else | 421 else { > 422 Value v; > 423 try { v = evlay.lift(new BottomValue, ct 422 memo[memokey] = tuple(cast(Value)new Bot | 424 memo[memokey] = tuple(v, 0); > 425 } 423 426 424 Value r = nonMemoizedRun(); 427 Value r = nonMemoizedRun(); 425 428 426 int touched = memo[memokey][1]; 429 int touched = memo[memokey][1]; 427 memo[memokey] = tuple(r, 12345678); 430 memo[memokey] = tuple(r, 12345678); 428 return r; 431 return r; 429 } 432 }