[e-lang] Fixing exceptions, try #3 (was Re: TextWriter/__printOn ...)

Kevin Reid kpreid at attglobal.net
Wed Jun 1 19:10:17 EDT 2005


On May 31, 2005, at 21:53, Mark Miller wrote:
> Kevin Reid wrote:
>> The primitive exception/ejection mechanisms  should be essentially 
>> the same mostly-trivial changes for adding  sealing that I already 
>> have in E-on-CL, except that 'throw.free()' is  renamed and gets an 
>> argument guard such that it accepts only magic  ejectoid-boxes.
>
> I don't understand throw.free. For example, the following from your 
> exception.updoc:
>
>> An exception may be explicitly thrown unsealed. This is used for 
>> mechanisms
>> using custom sealers (such as the eventual pseudo-ejectors shown 
>> below).
>> ? try { throw.free("eek") } catch p { print(p); throw(p) }
>> # stdout: eek
>> # problem: eek
>
> seems to demonstrate that throw.free leaves open the leakage bug 
> you've been working so hard to plug. I must be misunderstanding 
> something.

Somewhat: the system still prevents *accidental* leakage, while 
allowing deliberate leakage. Thus it's an improvement, but still not 
Good.

To rephrase the above, I propose to remove throw.free in favor of a 
method which allows throwing Magic Bit-Hiding Ejectoid SealedBoxes and 
nothing else.

-- 
Kevin Reid                            <http://homepage.mac.com/kpreid/>



More information about the e-lang mailing list