digitalmars.D - Is it possible that the Karmic upgrade interferes with dmd?
- Michael Mittner (12/12) Oct 29 2009 I've got a very strange problem and I wanted to ask if you guys have any...
- Walter Bright (3/16) Oct 29 2009 It could be that the C library routine strtold(), which the lexer relies...
- Michael Mittner (15/17) Oct 29 2009 Hmm. This is where dmd struggles:
- Don (3/19) Oct 30 2009 That's odd. Please try adding an 'L' to end of each of each constant.
- Michael Mittner (8/10) Oct 30 2009 Oh, I'm really sorry, I copied the wrong line (this was 640). Here's the...
I've got a very strange problem and I wanted to ask if you guys have any ideas. Yesterday I compiled my project with dmd 1.041 and Tango and it worked. Today I compiled the same code again to get started (I sometimes like to just do a full rebuild to get started) and I get this message: /usr/local/bin/../import/tango/math/IEEE.d(641): number is not representable The only thing that really has changed since the last build is that I upgraded to Karmic today. But I can't think of any connection, besides maybe the linking that could be affected by that. So I thought I'll ask here, maybe someone of you can think of anything. Thanks, Mike
Oct 29 2009
Michael Mittner wrote:I've got a very strange problem and I wanted to ask if you guys have any ideas. Yesterday I compiled my project with dmd 1.041 and Tango and it worked. Today I compiled the same code again to get started (I sometimes like to just do a full rebuild to get started) and I get this message: /usr/local/bin/../import/tango/math/IEEE.d(641): number is not representable The only thing that really has changed since the last build is that I upgraded to Karmic today. But I can't think of any connection, besides maybe the linking that could be affected by that. So I thought I'll ask here, maybe someone of you can think of anything.It could be that the C library routine strtold(), which the lexer relies on, changed. That has nothing to do with linking.
Oct 29 2009
Walter Bright wrote:It could be that the C library routine strtold(), which the lexer relies on, changed. That has nothing to do with linking.Hmm. This is where dmd struggles: 641: [0x1.a5f1c2eb3fe4efp+73, 0x1.A5F1C2EB3FE4EFp-1, 74], // normal I have no idea how the lexer works, but that sounds pretty plausible when I look at that constant in there. Anyway, after further investigation I figured out that it's a unittest, so I just commented it out and it compiles now without problems. Maybe it's just a fluke, I guess we'll see if someone else will have the same problem. I, for one, am satisfied; my code compiles, and that is all that counts. Some additional info: I tried it with dmd 1.050 too, same thing. My Tango import is a rather current checkout, I diff'd against a checkout I made about 15 minutes ago and the problematic file is the same as in Tango's trunk. And nothing compiles as soon as I import tango.math (which in turn imports IEEE.d). -Mike
Oct 29 2009
Michael Mittner wrote:Walter Bright wrote:That's odd. Please try adding an 'L' to end of each of each constant. [0x1.a5f1c2eb3fe4efp+73L, 0x1.A5F1C2EB3FE4EFp-1L, 74],It could be that the C library routine strtold(), which the lexer relies on, changed. That has nothing to do with linking.Hmm. This is where dmd struggles: 641: [0x1.a5f1c2eb3fe4efp+73, 0x1.A5F1C2EB3FE4EFp-1, 74], // normal I have no idea how the lexer works, but that sounds pretty plausible when I look at that constant in there. Anyway, after further investigation I figured out that it's a unittest, so I just commented it out and it compiles now without problems. Maybe it's just a fluke, I guess we'll see if someone else will have the same problem. I, for one, am satisfied; my code compiles, and that is all that counts.
Oct 30 2009
Don wrote:That's odd. Please try adding an 'L' to end of each of each constant. [0x1.a5f1c2eb3fe4efp+73L, 0x1.A5F1C2EB3FE4EFp-1L, 74],Oh, I'm really sorry, I copied the wrong line (this was 640). Here's the guilty line (641, this time for real): [0x1.fa01712e8f0471ap-1064, 0x1.fa01712e8f0471ap-1, -1063], Adding 'L' to the first constant works: [0x1.fa01712e8f0471ap-1064L, 0x1.fa01712e8f0471ap-1, -1063], Thanks! -Mike
Oct 30 2009