Direct access to struct construction, copying and destruction

Jonathan M Davis jmdavisProg at gmx.com
Mon Jul 9 22:13:15 PDT 2012


On Tuesday, July 10, 2012 06:53:29 Benjamin Thaut wrote:
> Am 10.07.2012 00:53, schrieb Jonathan M Davis:
> > On Monday, July 09, 2012 22:41:57 Benjamin Thaut wrote:
> >> Clear uses the TypeInfo. The proposed functions should not be library
> >> functions but directly aviable from the compiler. Something like
> >> __postblit and __dtor but properly implemented.
> > 
> > Well, since all of the necessary information is in the TypeInfo, not in
> > the
> > type itself, I don't see how you're going to do that. As I understand it,
> > it's not the compiler that deals with all of that. It's druntime. So,
> > without a major redesign, there's no way that the compiler is going to
> > generate that stuff for you. That's druntime's job.
> > 
> > - Jonathan M Davis
> 
> So who fills the TypeInfo objects, the runtime? I always assumed that
> the compiler fills the TypeInfo and therefor has all the neccessary
> information already at hand.

I don't know the details, but as I understand it, all of the logic for 
actually copying and destroying things properly is in druntime. The compiler 
doesn't do any of that. That being the case, any code which wants to use a 
type's postblit or destructor needs to use druntime. Right now, I believe that 
the compiler just uses hooks into the druntime code like it does with stuff 
like new and AAs. So, to skip using the druntime functions to properly copy or 
destroy an object, the compiler would have to duplicate the logic which 
currently resides in druntime.

- Jonathan M Davis


More information about the Digitalmars-d mailing list