confusing (buggy?) closure behaviour

BCS ao at pathlink.com
Sat Dec 13 10:58:30 PST 2008


Reply to Zoran,

> BCS Wrote:
> 
>> Reply to Zoran,
>> 
>>> I don't think it is restrictive if the compiler prevented a
>>> situation that would otherwise lead to a run-time error anyway, or
>>> worse, weird and confusing run-time behavior. In my case, if the
>>> compiler couldn't SAFELY handle a reference to the argument n
>>> outside the enclosing function, then, IMO, RETURNING it (but not
>>> otherwise using it) should be flagged a compilation error.
>>> Admittedly, detecting this is a bit more involved for the compiler,
>>> but not at all restrictive for the user.
>>> 
>> D2.0 handles it all correctly. D1.0 follows the "hear is a gun, there
>> is your foot" mentality with regards to this. In general D is *not* a
>> safe language and that is by intent.
>> 
> Oh... I've got the wrong impression from the papers about D. (But
> then, why would someone design an *unsafe* language *by intention*???
> For that, we've got C and C++, don't we?)
> 

In that (and only that) regards, D is closer to Ada than C++

http://adrianhoe.com/adrianhoe/2006/08/04/shooting-yourself-in-the-foot-a-humorous-approach-in-comparing-ada-to-other-programming-languages/

you can do it, it's just a bit had to do it on accident.

> 
> Does the "D is unsafe by intention" relate to D2.0, too?

D is intentionally not safe (vs. un-safe where the compiler requiter you 
to install a foot shooter mechine and does the shooting for you)

> 




More information about the Digitalmars-d-learn mailing list