www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - Pain when changing DMD version...

reply JerryR <jerryr gmail.com> writes:
A couple of months ago, I decided to upgrade my DMD to a new 
version: 2.066, and today I needed compile that project again, 
which a year ago I had compiled with DMD 2.060.

Now if you look below you will see the errors that I'm getting 
with changing from DMD 2.060 to 2.066, and all the errors are 
from GTKD, not my program.... yet!

Well I'm bit disappointed and a bit lost in what to do, I don't 
know if I go back to 2.060 or upgrade the GTKD and I cross my 
fingers for my program still working.

  - What you used to do in cases like this?


Errors when changing from DMD 2.060 to 2.066:

C:\gtkd\src\gtkc\gtktypes.d(283): Error: enum member 
gtkc.gtktypes.GtkRcTokenTyp
e.INCLUDE initialization with (GtkRcTokenType.INVALID + 1) causes 
overflow for t
ype 'int'
C:\gtkd\src\gtkc\gtktypes.d(2184): Error: cannot implicitly 
convert expression (
16) of type int to GParamFlags

C:\gtkd\src\gtk\Widget.d(239): Error: cannot modify 'this' 
reference
C:\gtkd\src\gtk\Widget.d(242): Error: an earlier return statement 
skips construc
tor
C:\gtkd\src\glib\StringG.d(101): Error: cannot modify 'this' 
reference
C:\gtkd\src\gobject\Closure.d(138): Error: cannot modify 'this' 
reference
C:\gtkd\src\gobject\ObjectG.d(171): Error: cannot modify 'this' 
reference
C:\gtkd\src\gobject\ObjectG.d(238): Error: struct 
gtkc.Loader.Linker member load
edLibraries is not accessible
C:\gtkd\src\gobject\ParamSpec.d(110): Error: cannot modify 'this' 
reference
C:\gtkd\src\gobject\Value.d(124): Error: cannot modify 'this' 
reference
C:\gtkd\src\gdk\Pixbuf.d(131): Error: cannot modify 'this' 
reference
C:\gtkd\src\gdk\Pixbuf.d(138): Error: cannot modify 'this' 
reference
C:\gtkd\src\gdk\Pixbuf.d(141): Error: an earlier return statement 
skips construc
tor
C:\gtkd\src\glib\ErrorG.d(223): Error: cannot modify 'this' 
reference
C:\gtkd\src\gdkpixbuf\PixbufFormat.d(138): Error: cannot modify 
'this' reference

C:\gtkd\src\glib\ListSG.d(122): Error: cannot modify 'this' 
reference
C:\gtkd\src\gdk\Drawable.d(160): Error: cannot modify 'this' 
reference
C:\gtkd\src\gdk\Drawable.d(167): Error: cannot modify 'this' 
reference
C:\gtkd\src\gdk\Drawable.d(170): Error: an earlier return 
statement skips constr
uctor
C:\gtkd\src\gdk\Display.d(121): Error: cannot modify 'this' 
reference
C:\gtkd\src\gdk\Display.d(128): Error: cannot modify 'this' 
reference
C:\gtkd\src\gdk\Display.d(131): Error: an earlier return 
statement skips constru
ctor
C:\gtkd\src\gdk\Screen.d(140): Error: cannot modify 'this' 
reference

Jerry.
Dec 23 2015
parent reply Israel <tl12000 live.com> writes:
On Thursday, 24 December 2015 at 04:06:40 UTC, JerryR wrote:
 A couple of months ago, I decided to upgrade my DMD to a new 
 version: 2.066, and today I needed compile that project again, 
 which a year ago I had compiled with DMD 2.060.

 [...]
Upgrading GTKD is definitely the best route. Most likely GTKD will have done some changes since the last time you used it so even if you upgrade GTKD you will still get errors but at least GTKD will now correspond to the compiler version so your errors will be fixable on your projects side and you wont have to fix anything on the library's side.
Dec 23 2015
parent reply JerryR <jerryr gmail.com> writes:
On Thursday, 24 December 2015 at 05:50:06 UTC, Israel wrote:
 On Thursday, 24 December 2015 at 04:06:40 UTC, JerryR wrote:
 A couple of months ago, I decided to upgrade my DMD to a new 
 version: 2.066, and today I needed compile that project again, 
 which a year ago I had compiled with DMD 2.060.

 [...]
Upgrading GTKD is definitely the best route... ...you wont have to fix anything on the library's side.
Yes that's a way of thinking. But the problem that I'm facing right now is that I haven't tried to compile the others projects yet, so I may get some other errors too. I usually see people on forums and reddit/hackernews complaining about Rust and the breakage along the different versions, back then they had not released the version 1.00 yet. So I wasn't expecting breakage along 2.XX in D. JerryR.
Dec 24 2015
next sibling parent reply John Colvin <john.loughran.colvin gmail.com> writes:
On Thursday, 24 December 2015 at 13:16:02 UTC, JerryR wrote:
 On Thursday, 24 December 2015 at 05:50:06 UTC, Israel wrote:
 On Thursday, 24 December 2015 at 04:06:40 UTC, JerryR wrote:
 [...]
Upgrading GTKD is definitely the best route... ...you wont have to fix anything on the library's side.
Yes that's a way of thinking. But the problem that I'm facing right now is that I haven't tried to compile the others projects yet, so I may get some other errors too. I usually see people on forums and reddit/hackernews complaining about Rust and the breakage along the different versions, back then they had not released the version 1.00 yet. So I wasn't expecting breakage along 2.XX in D. JerryR.
Often when you see breakage it's the compiler actually enforcing a pre-existing rule that the code in question broke.
Dec 24 2015
parent reply JerryR <jerry gmail.com> writes:
On Thursday, 24 December 2015 at 14:48:46 UTC, John Colvin wrote:
 Often when you see breakage it's the compiler actually 
 enforcing a pre-existing rule that the code in question broke.
So that made me think, there is any flag that I could turn on, and pass by over those errors? JerryR.
Dec 24 2015
next sibling parent Jack Stouffer <jack jackstouffer.com> writes:
On Thursday, 24 December 2015 at 17:20:02 UTC, JerryR wrote:
 On Thursday, 24 December 2015 at 14:48:46 UTC, John Colvin 
 wrote:
 Often when you see breakage it's the compiler actually 
 enforcing a pre-existing rule that the code in question broke.
So that made me think, there is any flag that I could turn on, and pass by over those errors? JerryR.
No. What John Colvin is referring to are bugs in the compiler that were fixed since 2.060.
Dec 24 2015
prev sibling parent John Colvin <john.loughran.colvin gmail.com> writes:
On Thursday, 24 December 2015 at 17:20:02 UTC, JerryR wrote:
 On Thursday, 24 December 2015 at 14:48:46 UTC, John Colvin 
 wrote:
 Often when you see breakage it's the compiler actually 
 enforcing a pre-existing rule that the code in question broke.
So that made me think, there is any flag that I could turn on, and pass by over those errors? JerryR.
No, because then we'd be stuck supporting every piece of code that used to compile, whether or not it was ever legal code. Illegal code that compiles is a bug; bugs must be fixed. There are some changes that could be handled in the way you describe, e.g. the -dip25 flag. Doing more of these risks getting in to complicated interactions between them. It's a reasonable request, but it's not going to happen except in carefully limited cases.
Dec 24 2015
prev sibling parent reply bachmeier <no spam.net> writes:
On Thursday, 24 December 2015 at 13:16:02 UTC, JerryR wrote:
 On Thursday, 24 December 2015 at 05:50:06 UTC, Israel wrote:
 On Thursday, 24 December 2015 at 04:06:40 UTC, JerryR wrote:
 A couple of months ago, I decided to upgrade my DMD to a new 
 version: 2.066, and today I needed compile that project 
 again, which a year ago I had compiled with DMD 2.060.

 [...]
Upgrading GTKD is definitely the best route... ...you wont have to fix anything on the library's side.
Yes that's a way of thinking. But the problem that I'm facing right now is that I haven't tried to compile the others projects yet, so I may get some other errors too. I usually see people on forums and reddit/hackernews complaining about Rust and the breakage along the different versions, back then they had not released the version 1.00 yet. So I wasn't expecting breakage along 2.XX in D. JerryR.
But 2.060 was released in 2012. Recent compiler releases have been much more stable, in terms of not breaking much working code.
Dec 24 2015
parent reply JerryR <jerry gmail.com> writes:
On Thursday, 24 December 2015 at 16:05:18 UTC, bachmeier wrote:
 But 2.060 was released in 2012...
Yes I know it's old but and the reason was to avoid breakage that already had happened before. I know that sometimes this (Breakage) is inevitable as the language grows, but my concern here is that the language isn't new, and it's in version +2, and again I was changing from 2.060 to 2.066... which looking now is already lagged since the new version is 2.069. JerryR.
Dec 24 2015
next sibling parent bachmeier <no spam.net> writes:
On Thursday, 24 December 2015 at 17:17:39 UTC, JerryR wrote:
 On Thursday, 24 December 2015 at 16:05:18 UTC, bachmeier wrote:
 But 2.060 was released in 2012...
Yes I know it's old but and the reason was to avoid breakage that already had happened before. I know that sometimes this (Breakage) is inevitable as the language grows, but my concern here is that the language isn't new, and it's in version +2, and again I was changing from 2.060 to 2.066... which looking now is already lagged since the new version is 2.069. JerryR.
Based on my experience you should not see much breakage going from 2.066 to 2.069. When I moved from 2.062 to 2.064 there were a lot of problems. I don't expect to see that going forward. The quality of releases AFAICT is much better today.
Dec 24 2015
prev sibling parent John Colvin <john.loughran.colvin gmail.com> writes:
On Thursday, 24 December 2015 at 17:17:39 UTC, JerryR wrote:
 On Thursday, 24 December 2015 at 16:05:18 UTC, bachmeier wrote:
 But 2.060 was released in 2012...
Yes I know it's old but and the reason was to avoid breakage that already had happened before. I know that sometimes this (Breakage) is inevitable as the language grows, but my concern here is that the language isn't new, and it's in version +2, and again I was changing from 2.060 to 2.066... which looking now is already lagged since the new version is 2.069. JerryR.
I would strongly recommend moving straight to 2.069. It will take very little extra effort compared to going to 2.066 and there's been a lot of improvements and bugfixes since then. Some of the failures to compile you're seeing might even be bugs in 2.066!
Dec 24 2015