stability

Ary Borenszweig ary at esperanto.org.ar
Sat Feb 23 16:13:17 PST 2008


Robert Fraser escribió:
> Denton Cockburn wrote:
>> On Sat, 23 Feb 2008 10:16:08 -0800, Walter Bright wrote:
>>
>>> Denton Cockburn wrote:
>>>> [quoted text muted]
>>> D 1.0 regularly gets bug fixes with the focus on improving its 
>>> stability.

> D needs a  community compiler, with an open frontend & backend, where a large group
> canf ocus on fixing bugs & maintaining stability. Or an expensive 
> corporate-backed compiler, I'd expect the same quality from that.

The problem is that it is currently impossible to do that well. Most of 
the D specification is in the DMD front end. For example, I see nowhere 
in the specification that you cannot change a reference to a static 
array, or how to properly determine forward references (these are just 
examples, I'm sure there a *lot* of other examples... Descent currently 
has 439 (!) distintct kind of errors, converted to IDs from DMD, for the 
curious: 
http://www.dsource.org/projects/descent/browser/trunk/descent.core/src/descent/core/compiler/IProblem.java).

If most of the specification is the DMD front end, then if the community 
makes another, clean compiler, it must be sure it works according to the 
specification. The only thing they can do is to test it against the DMD 
front end, because most of the error reporting and the logic that tells 
you how to find members in modules, when a function is covariant with 
another, etc., is in it. But it has some bugs, so... what's the *real* 
specification? Just an intuition of how things should work? Ummm... 
that's not good.

I'm thinking about something like this: 
http://java.sun.com/docs/books/jls/third_edition/html/j3TOC.html

Yeah, I know, it's huge. But it actually even tells you how to implement 
a Java compiler without having to read an implementation of it. Then 
everything is clear for everyone.

And it's huge and tells you everything because it (probably) wasn't made 
by a single person.



More information about the Digitalmars-d mailing list