Consistency is important. struct S { enum x = 7; } _should_ be
different from struct S { const x = 7; }
Worst part here is not the change itself but that compiler provides no
help in finding all broken places. And that is intolerable.On Wed, May 15, 2013 at 3:52 PM, Don Clugston <[email protected]> wrote: > On 15 May 2013 13:54, Kenji Hara <[email protected]> wrote: >> >> 2013/5/15 Don Clugston <[email protected]> >>> >>> This absolutely must not be released in this form. >>> This has a silent, massive breaking change -- >>> struct S { const int x = 7; } >>> Previously, x was just a manifest constant. Now, S now has an int inside >>> every instance. >>> It's OK to turn that into an error. It's not OK to silently change the >>> meaning of existing code. >>> Especially in such a radical manner. >> >> >> It will be properly documented at the top of the language changes. >> >> https://github.com/D-Programming-Language/d-programming-language.org/pull/303/files#L0R60 >> >> Certainly it will change object layout silently. But semantic meaning >> would not be changed in most cases, > > > Sorry, but that is absolute rubbish. > (1) Any existing instance of this silently introduces a *severe* performance > bug. > (2) Any storage of this struct silently fails. > > For example, for us, we serialize objects and store them in a database. This > now fails because they are the wrong size. > > I can accept the consistency argument against the existing behaviour. > However, I cannot imagine a scenario where this new behaviour would be > desirable. Are there any use cases? > > >> So just once full-recompilation would be necessary. > > > No, this is wrong. Every existing instance must be changed. And there is no > way to find them. > > Seriously, this is one of the most breaking changes I can ever remember in > the history of D. > > _______________________________________________ > dmd-beta mailing list > [email protected] > http://lists.puremagic.com/mailman/listinfo/dmd-beta _______________________________________________ dmd-beta mailing list [email protected] http://lists.puremagic.com/mailman/listinfo/dmd-beta
