digitalmars.D - Stumped
- pragma (10/10) Mar 17 2005 I have an @rsp file that I'm using to build a sizable D application (DSP...
- pragma (10/21) Mar 17 2005 Nevermind.
- Derek Parnell (13/44) Mar 17 2005 It would have been nice if DMD had have displayed the file name and line
- pragma (11/39) Mar 18 2005 I'ts definately a bug I'd say. I'll post it to d.bugs later.
I have an rsp file that I'm using to build a sizable D application (DSP core to be precise). When compiling I get this error: "kind ASM declaration must be at module level" There's no mention of this on the wiki, and searching the digitalmars site via google turns up nothing. I'm using "private import" all over the place, and I've already checked for inclusion cycles. Contrary to what the message might imply, I'm not using any "asm{}" statements in my code. Anyway, can anyone confirm what exactly this error message means? - EricAnderton at yahoo
Mar 17 2005
In article <d1dj4p$2jh8$1 digitaldaemon.com>, pragma says...I have an rsp file that I'm using to build a sizable D application (DSP core to be precise). When compiling I get this error: "kind ASM declaration must be at module level" There's no mention of this on the wiki, and searching the digitalmars site via google turns up nothing. I'm using "private import" all over the place, and I've already checked for inclusion cycles. Contrary to what the message might imply, I'm not using any "asm{}" statements in my code. Anyway, can anyone confirm what exactly this error message means? - EricAnderton at yahooNevermind. This is what happens when you don't document how to build your application, only to put it down for a few months. DSP has a dependency upon the concurrent lib from dsource. My version may be a touch dated. "concurrent\locks\queuedsync.d" Line 1786:version = ASM;Commenting out the offending line did the trick. Concurrent is too big for my purposes anyway, so I think I'll go with Ben's lib instead. ;) - EricAnderton at yahoo
Mar 17 2005
On Fri, 18 Mar 2005 04:32:32 +0000 (UTC), pragma wrote:In article <d1dj4p$2jh8$1 digitaldaemon.com>, pragma says...It would have been nice if DMD had have displayed the file name and line number of the offending statement ;-) Curiously, you get a different message depending on *where* you place the version statement. Inside a class or struct definition you get the (weird) message you reported, but if inside a free function you get ... test.d(4): (condition) expected after version test.d(4): found '=' instead of statement which would have been trivial to find. -- Derek Melbourne, Australia 18/03/2005 3:38:04 PMI have an rsp file that I'm using to build a sizable D application (DSP core to be precise). When compiling I get this error: "kind ASM declaration must be at module level" There's no mention of this on the wiki, and searching the digitalmars site via google turns up nothing. I'm using "private import" all over the place, and I've already checked for inclusion cycles. Contrary to what the message might imply, I'm not using any "asm{}" statements in my code. Anyway, can anyone confirm what exactly this error message means? - EricAnderton at yahooNevermind. This is what happens when you don't document how to build your application, only to put it down for a few months. DSP has a dependency upon the concurrent lib from dsource. My version may be a touch dated. "concurrent\locks\queuedsync.d" Line 1786:version = ASM;Commenting out the offending line did the trick. Concurrent is too big for my purposes anyway, so I think I'll go with Ben's lib instead. ;)
Mar 17 2005
In article <d7wexkgmo4c5.1xinwyect28ui$.dlg 40tude.net>, Derek Parnell says...On Fri, 18 Mar 2005 04:32:32 +0000 (UTC), pragma wrote:I'ts definately a bug I'd say. I'll post it to d.bugs later. It's worth mentioning that I used message pragmas (pragma(msg,"hello");) to track down where, during compilation, message was being generated.Nevermind. This is what happens when you don't document how to build your application, only to put it down for a few months. DSP has a dependency upon the concurrent lib from dsource. My version may be a touch dated. "concurrent\locks\queuedsync.d" Line 1786:It would have been nice if DMD had have displayed the file name and line number of the offending statement ;-)version = ASM;Commenting out the offending line did the trick. Concurrent is too big for my purposes anyway, so I think I'll go with Ben's lib instead. ;)pragma(msg,"thisfile.startinclude"); private include locks.queuedsync; pragma(msg,"thisfile.endinclude");which gives the output:thisfile.startinclude kind ASM declaration must be at module level thisfile.endinclude. which helps you narrow down which include is responsible. I had to go about 5 includes deep in my code before I found it. :)Curiously, you get a different message depending on *where* you place the version statement. Inside a class or struct definition you get the (weird) message you reported, but if inside a free function you get ... test.d(4): (condition) expected after version test.d(4): found '=' instead of statement which would have been trivial to find.And those are still *terrible* error messages, as they have nothing to do with what went wrong (well, except the line number). That's certainly one for the bugs list. - EricAnderton at yahoo
Mar 18 2005