Object.factory() and exe file size bloat

bitwise via Digitalmars-d digitalmars-d at puremagic.com
Fri Aug 21 15:39:30 PDT 2015


On Friday, 21 August 2015 at 05:06:47 UTC, Walter Bright wrote:
> This function:
>
>   http://dlang.org/phobos/object.html#.Object.factory
>
> enables a program to instantiate any class defined in the 
> program. To make it work, though, every class in the program 
> has to have a TypeInfo generated for it. This leads to bloat:
>
>   https://issues.dlang.org/show_bug.cgi?id=14758
>
> and sometimes the bloat can be overwhelming.
>
> The solution seems straightforward - only have Object.factory 
> be able to instantiate classes marked as 'export'. This only 
> makes sense anyway.
>
> What do you think?

Can't this be optional?
-slim-rtti        // hold the gravy
-verbose-rtti  // more gravy!


> On Friday, 21 August 2015 at 20:26:29 UTC, Walter Bright wrote:
>[...]
> The principle often used by languages (C, C++, Rust) is you 
> only pay for what you use. With Object.factory, every program 
> pays for it with every class, despite very few actual uses of 
> it.

Object.factory() would probably get more use if D provided a full 
solution in this category.

OffsetTypeInfo was never implemented, but is still collecting 
dust:
https://github.com/D-Programming-Language/druntime/blob/master/src/object.d#L197

I would love to see OffsetTypeInfo implemented, and have the 
field name included as well so it could be used for serialization.

I don't believe there has to be a "one size fits all" solution 
for this. Some people need small binaries, some need utility.

     Bit


More information about the Digitalmars-d mailing list