An Anti-Big Feature Request

Dan murpsoft at hotmail.com
Fri Dec 14 18:27:44 PST 2007


Hxal Wrote:

> downs Wrote:
> 
> > I have an Anti-Big Feature request; that is, a request against new features.
> > 
> > When this const issue will finally be solved to most peoples' satisfaction,
> > kindly consider inserting a period of consolidation.
> > 
> > No more sudden, game-changing new super features for a while.
> > Maybe fix some long-standing bugs.
> > Maybe finally implement the generational GC.
> > Maybe actually get DbC inheritance to work like it's supposed to.
> > Maybe give memory back to the OS on occasion.
> > Maybe revisit some 1.0 concepts and consider if they're still needed.
> > Maybe add small things everybody can agree are good (return type deduction comes to mind).
> > Aim for low-hanging fruits, stuff we can agree on for once.
> > How about a redundancy free import syntax?
> > 
> > D's 2.0 series has been characterized by a series of fundamental changes (const, closures),
> > but what really makes a new release great is the polish. Small stuff everybody looks forward to.
> > Clean up the issues with the OMF tools? Maybe even consider switching to PE?
> > (Heresy, I know; however, it is fact that GDC has no problem with megabyte-long symbol names)
> > 
> > Oh, and please, delay the AST macros for a while. My head is still spinning with closures. :)
> >  --downs
> > 
> > PS:
> >   Personal wish list:
> >     * Struct copy semantics, lazy and ref storage types
> >     * a way to detect ref in a delegate parameter list
> >     * Improved compile-time information for enums
> >     * TRACED EXCEPTIONS ;____; yeah I wish
> >     * Allow inheriting from superclasses' nested classes
> > 
> > PPS: Representative sentiment from #d:
> > >
> > > <fundesktop> a stable, feature complete compiler without bugs and good additional tools
> > > <fundesktop> SOMETHING WHICH D WILL NEVER GET
> > >
> 
> votes++;
> 
> If I could add something to the "small things" wishlist:
> A pragma to tell the compiler to inline all occurences of a function and not generate its body in the object file separately. It could unclutter generated code from numerous useless proxy or otherwise simple functions that don't do much, but get generated in flocks for example in template expansion. Could also be used to prevent functions meant solely for CTFE from ending up in the binary.
> 

Yeah, really, "inline" should be a function attribute, never a file attribute, and it should be used.  That said, I too am pretty tired of major compiler changes.

At the moment, Walnut cannot compile with DMD 1.21 or later because of some bug or unmentioned feature implemented in that version.  It has something to do with

struct Value {
  union {
   struct {}
   int i;
   bool b;
   char[] c;
  bla bla.
}

and later doing something with b.  I'd be able to say more, but the error message is 100% ambiguous and doesn't mention a file or line number.

The exact string I get looks like:

C:\Code\walnut>make
dmd bla bla bla
Error: 'b' is not a member of 'Value'

--- errorlevel 1

Regards,
Dan



More information about the Digitalmars-d mailing list