Ary Borenszweig:

>But if this can't be implemented without compiler support... then it's not of 
>much use. :-(<

There's another solution: to make D2/D3 itself flexible enough that you can 
implement your own simple "extensions" to the type system, so you can actually 
implement not-nullable references by default. This isn't impossible (there are 
many papers about this, it can be done in Scheme, etc).

Once such flexibility is present, you can quickly create such plug-ins to the 
type system. Like in Firefox, plug-ins are a very good way to experiment new 
features, that can be later added to the main software if they are good. 
(Recently GCC has gained the ability to be use plug-ins, but here I am talking 
about something in the language, not in the compiler).

Related: I think the downsides of something like the AST macros (that is 
community fragmentation, etc) can be quite mitigated if the main purpose of 
them is to allow to create experimental features that later can be refused or 
accepted into the official language :-)

Bye,
bearophile

Reply via email to