Regressions were some internal compiler errors related to generics, variable initializations and interfaces. They manifest with a more or less random ICE that points to a line of code unrelated to what triggers the error. It doesn't take very complex generics, DWScript code triggered a couple of them with code that compiles okay from D2009 to XE2. I know a few other open-source projects that had them as well, and then my XE3 trial ran out :)
Come to think of it, I do remember a specific case of generics code that mysteriously stopped working with XE3.
It was in a form, where I had multiple listboxes with various content, and the content was extracted from TList containers, and I made a TMyForm.Populate(const Control: TComboBox; const List: TList); and it had really strange and random errors where the list content was corrupted.
Solved it by subclassing TList and introducing TMyList.PopulateCombo(const Control:TComboBox);
Eric Grange currently I have seen only one thing you would probably call a regression (but I don't, I call ait a fix) in generics area. This was related to a typecast to TObject of the type that was passed to the genrics. it compiled with previous Delphi but not XE3 and it is XE3 which is right: the type had to contraint and so could not always be cast to a TObject.
François Piette Did you get an Internal Compiler Error at an unrelated line on this one? That's those I call regressions. If you get a proper compile error, it's different.
XE2 = XE3
ReplyDeleteXE3, without a shadow of a doubt. Especially with the forthcoming mobile additions.
ReplyDeleteXE3 of course. Strange question...
ReplyDeletethank you..but there r no platform for iOS phone in XE3 right?!
ReplyDeletehttp://forms.embarcadero.com/forms/AMUSCA1302RADMobilePreviewWebinar2-21
ReplyDeleteThnk you so much François Piette ^^ by the way you have awesome bloger thankx teacher ^^
ReplyDeleteXE. Both just introduced more bugs than features ;)
ReplyDeleteXE3 - It has it's annoyances, but it does the job for me.
ReplyDeleteXE3 introduced some nasty compiler regressions
ReplyDeleteCan't say I've been hit my them, at least not to my knowledge, and I am using quite a bit of RTTI and Generics.
ReplyDeleteAny regression you'd want to point out in particular?
Any specific compiler area worse off than others?
The one thing that I noticed in the IDE, apart from the memory leaks and deadlock on type CTRL hot links, was typing Alt-0169 (©) in the version description info and have it jump to the wrong edit box. That one was fixed in XE, I think, and came back with XE3.
ReplyDeleteRegressions were some internal compiler errors related to generics, variable initializations and interfaces. They manifest with a more or less random ICE that points to a line of code unrelated to what triggers the error.
ReplyDeleteIt doesn't take very complex generics, DWScript code triggered a couple of them with code that compiles okay from D2009 to XE2. I know a few other open-source projects that had them as well, and then my XE3 trial ran out :)
Come to think of it, I do remember a specific case of generics code that mysteriously stopped working with XE3.
ReplyDeleteIt was in a form, where I had multiple listboxes with various content, and the content was extracted from TList containers, and I made a
TMyForm.Populate(const Control: TComboBox;
const List: TList);
and it had really strange and random errors where the list content was corrupted.
Solved it by subclassing TList and introducing
TMyList.PopulateCombo(const Control:TComboBox);
Eric Grange currently I have seen only one thing you would probably call a regression (but I don't, I call ait a fix) in generics area. This was related to a typecast to TObject of the type that was passed to the genrics. it compiled with previous Delphi but not XE3 and it is XE3 which is right: the type had to contraint and so could not always be cast to a TObject.
ReplyDeleteFrançois Piette Did you get an Internal Compiler Error at an unrelated line on this one? That's those I call regressions. If you get a proper compile error, it's different.
ReplyDeleteI've got a proper compiler error.
ReplyDelete