www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - dub doesn't work with dmd 1:2.082.0-1.0?

reply SuperPrower <superprower somedomain.org> writes:
dub was working nice until I updated my system (I run 
ArchLinux32) just now. dmd was updated from version 1:2.081.2-1.0 
to 1:2.082.0-1.0 (according to pacman package manager). After 
that, I couldn't invoke dub for anything. Here is the attempt to 
run `dub --vverbose`:

```
Using dub registry url 'https://code.dlang.org/'
Refreshing local packages (refresh existing: true)...
Looking for local package map at 
/var/lib/dub/packages/local-packages.json
Looking for local package map at 
/home/superprower/.dub/packages/local-packages.json
Try to load local package map at 
/home/superprower/.dub/packages/local-packages.json
iterating dir /home/superprower/.dub/packages/
iterating dir /home/superprower/.dub/packages/ entry 
ncurses-master
iterating dir /home/superprower/.dub/packages/ entry 
local-packages.json
iterating dir /home/superprower/.dub/packages/ entry 
d-profile-viewer-1.1.3
No package found in current working directory.
Failed to invoke the compiler /usr/bin/dmd to determine the build 
platform: Error: missing or null command line arguments

Full exception: 
object.Exception source/dub/compilers/compiler.d(127): Failed to 
invoke the compiler /usr/bin/dmd to determine the build platform: 
Error: missing or null command line arguments

----------------
??:? pure  safe bool 
std.exception.enforce!().enforce!(bool).enforce(bool, lazy 
const(char)[], immutable(char)[], uint) [0xa744bd]
??:? dub.platform.BuildPlatform 
dub.compilers.compiler.Compiler.probePlatform(immutable(char)[], 
immutable(char)[][], immutable(char)[]) [0x80759e]
??:? dub.platform.BuildPlatform 
dub.compilers.dmd.DMDCompiler.determinePlatform(ref 
dub.compilers.buildsettings.BuildSettings, immutable(char)[], 
immutable(char)[]) [0x81323f]
??:? [0x810de2]
??:? void 
dub.commandline.PackageBuildCommand.setupPackage(dub.dub.Dub, 
immutable(char)[], immutable(char)[]) [0x910e46]
??:? int dub.commandline.GenerateCommand.execute(dub.dub.Dub, 
immutable(char)[][], immutable(char)[][]) [0x92b158]
??:? int dub.commandline.RunCommand.execute(dub.dub.Dub, 
immutable(char)[][], immutable(char)[][]) [0x92b0ab]
??:? int dub.commandline.runDubCommandLine(immutable(char)[][]) 
[0x9f87e3]
??:? _Dmain [0x9fe3bf]
```

I downgraded dmd for now, but what may be the cause of this? I 
couldn't find anything related to this particular error (`missing 
or null command line arguments`).
Sep 10 2018
next sibling parent reply rmc <rjmcguire gmail.com> writes:
On Monday, 10 September 2018 at 09:23:19 UTC, SuperPrower wrote:
 dub was working nice until I updated my system (I run 
 ArchLinux32) just now. dmd was updated from version 
 1:2.081.2-1.0 to 1:2.082.0-1.0 (according to pacman package 
 manager). After that, I couldn't invoke dub for anything. Here 
 is the attempt to run `dub --vverbose`:
 [snip]
 Full exception: 
 object.Exception source/dub/compilers/compiler.d(127): Failed 
 to invoke the compiler /usr/bin/dmd to determine the build 
 platform: Error: missing or null command line arguments
 [snip]
There don't seem to be any changes to dub or dmd directly related to this error perhaps its a packaging issue? https://github.com/dlang/dmd/blame/61fe641e9a5d40617d6d20aa1abc64e77c00b6ef/src/dmd/mars.d#L205 https://github.com/dlang/dub/blame/765cf8ea8bec9b8da05e41e4987f1b37f02305bc/source/dub/compilers/compiler.d#L127 Just out of curiosity; Why are you using ArchLinux32? R
Sep 12 2018
parent SuperPrower <superprower somedomain.org> writes:
On Thursday, 13 September 2018 at 06:11:53 UTC, rmc wrote:
 There don't seem to be any changes to dub or dmd directly 
 related to this error perhaps its a packaging issue?
I really don't know, looks like it, but it's really weird, like, why and what exactly happened? I'll try asking same question on ArchLinux32 forums - maybe, maintainer forgot something or I dunno.
 Just out of curiosity; Why are you using ArchLinux32?
Pretty old laptop, only supports i686 systems. I don't really need anything else as I only use it for some hobby programming when I'm away from my desktop.
Sep 13 2018
prev sibling next sibling parent Kagamin <spam here.lot> writes:
You didn't update dub?
Sep 13 2018
prev sibling parent reply Jesse Phillips <Jesse.K.Phillips+D gmail.com> writes:
On Monday, 10 September 2018 at 09:23:19 UTC, SuperPrower wrote:
 dub was working nice until I updated my system (I run 
 ArchLinux32) just now. dmd was updated from version 
 1:2.081.2-1.0 to 1:2.082.0-1.0 (according to pacman package 
 manager). After that, I couldn't invoke dub for anything. Here 
 is the attempt to run `dub --vverbose`:
Can you find /usr/bin/dmd or run dmd?
Sep 13 2018
next sibling parent reply rmc <rjmcguire gmail.com> writes:
On Thursday, 13 September 2018 at 14:31:53 UTC, Jesse Phillips 
wrote:
 On Monday, 10 September 2018 at 09:23:19 UTC, SuperPrower wrote:
 dub was working nice until I updated my system (I run 
 ArchLinux32) just now. dmd was updated from version 
 1:2.081.2-1.0 to 1:2.082.0-1.0 (according to pacman package 
 manager). After that, I couldn't invoke dub for anything. Here 
 is the attempt to run `dub --vverbose`:
Can you find /usr/bin/dmd or run dmd?
The error is from the trymain function in dmd so its definitely installed. I do wonder if `dmd` by itself on the command line works. Could it be some sort of 32 bit bug in the latest release of dmd? Relating to argc/argv.
Sep 13 2018
parent reply Jesse Phillips <Jesse.K.Phillips+D gmail.com> writes:
On Friday, 14 September 2018 at 05:41:41 UTC, rmc wrote:

 I do wonder if `dmd` by itself on the command line works. Could 
 it be some sort of 32 bit bug in the latest release of dmd? 
 Relating to argc/argv.
"source/dub/compilers/compiler.d(127)" That doesn't look like DMD source code.
Sep 14 2018
parent rmc <rjmcguire gmail.com> writes:
On Friday, 14 September 2018 at 15:42:05 UTC, Jesse Phillips 
wrote:
 On Friday, 14 September 2018 at 05:41:41 UTC, rmc wrote:

 I do wonder if `dmd` by itself on the command line works. 
 Could it be some sort of 32 bit bug in the latest release of 
 dmd? Relating to argc/argv.
"source/dub/compilers/compiler.d(127)" That doesn't look like DMD source code.
Yip, that link is to where dub uses dmd (showing the specific error) and the other link is to a line in dmd that throws the initial error. The mars.d file is part of dmd. The line in dmd appears to be a safety check that makes sure there is at least one argument in argv. To me it seems really weird that dmd would be able to reach the trymain function with `argc < 1 || !argv` or with argc >= 1 and one of the arguments being null. R
Sep 16 2018
prev sibling parent SuperPrower <superprower somedomain.org> writes:
On Thursday, 13 September 2018 at 14:31:53 UTC, Jesse Phillips 
wrote:
 Can you find /usr/bin/dmd or run dmd?
Sorry if I wasn't clear enough, but I have dmd installed, and dub WAS working until upgrade of dmd. I suspect that problem occurs because dub wasn't upgraded from 1.10 -> 1.11, due to some problems with ArchLinux32 packaging - dub doesn't have dmd as dependency, probably because it doesn't require dmd specifically, but there is a 'provide' thingy that all D compiler packages have, so that's one way to fix this - to add this thingy as dependecy to dub, but maintainers seem to have problems with building newer versions of dub for 32-bit OS, the are already discussing this issue, so yeah, problem is not in dub/dmd itself (never suspected it to be), but rather, in compatability with 32 bit systems or between themselves. If anyone here is good with building dub, please take a look at this thread: https://bbs.archlinux32.org/viewtopic.php?pid=5004 , maybe you will be able to help?
Sep 18 2018