Differences From Artifact [969111acf2042a22]:
- File
polemy/eval.d
- 2010-11-27 23:46:51 - part of checkin [576c494e53] on branch trunk - fixed: literal "..." is now lifted in user-defined layers (user: kinaba) [annotate]
To Artifact [f4751e4eb7df513a]:
- File
polemy/eval.d
- 2010-11-30 02:21:42 - part of checkin [3fb4d6f9ad] on branch trunk - during @userdefinedlayer function evaluation, if lift(bottom) fails, the recursion is not memoized (user: kinaba) [annotate]
417 417 {
418 418 if( ++(*p)[1] >= 2 ) // [TODO] is 2 really enough??
419 419 return (*p)[0];
420 420 }
421 421 else
422 422 {
423 423 Value v;
424 - try { v = evlay.lift(new BottomValue, ctx, pos); } catch { v = new BottomValue; }
424 + try { v = evlay.lift(new BottomValue, ctx, pos); } catch { return nonMemoizedRun(); }
425 425 memo[memokey] = tuple(v, 0);
426 426 }
427 427
428 428 Value r = nonMemoizedRun();
429 429 memo[memokey] = tuple(r, 9999);
430 430 return r;
431 431 }