bearophile wrote:
Mike Parker:

Also, and this is a big one for me, anonymous enums generate no TypeInfo, which 
can save a lot of space in the binary over named enums.<

This is interesting. How much size differences do you see?

I haven't actually had occasion to replace any named enums with anonymous ones in my own projects, but I recall this being an issue with Tango. But what I did in Derelict some time ago, was to replace hundreds of constant values with anonymous enums (another issue first highlighted by Tango) and got a tremendous savings in binary size, particularly in DerelictGL.

I just did a couple of minor tests to see how things stand now with both D1 and D2. In one file (1) I made around 430 const declarations. Another (2) replaced them all with a single, anonymous enum. In a third (3), I divided the anonymous enum into 25 named ones.

With both DMD 1.056 and DMD 2.042, (2) was the smallest and (1) the largest, but the difference is really negligible - around 1% with D1 and less than that with D2. While (3) is larger than (2), it's less than half a percent difference.

So either this doesn't hold true anymore or the scale isn't large enough. But it *was* an issue once upon a time. So I suppose that line can be stricken from the record.

Reply via email to