On Fri, Mar 30, 2007 at 10:25:59PM +0000, Alek Storm wrote: > How about like this: > > $P0 = getinterp > $P0["recursionlimit"] = 2000 > $P0["recursionlimit"] = -1 > > Where the last one signifies an infinite recursion limit (unsafe, but > it should still be available to HLL implementors).
Is the value "recursionlimit" signed or unsigned? Using 0 to flag the infinite recursion limit might feel more natural. Using -1 to mean ~0 makes me edgy. In particular, because in C you can end up with integer size promotion meaning that -1 isn't -1. Or at least what you thought was -1 isn't -1 any more, because it was converted to unsigned, and then converted to a larger unsigned type, and so is now an unremarkable positive integer, rather than all bits set. Nicholas Clark