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