Thread overview
dub doesn't work with dmd 1:2.082.0-1.0?
Sep 13
rmc
Sep 13
Kagamin
Sep 14
rmc
6 days ago
rmc
5 days ago
SuperPrower
September 10
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`).
September 13
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
September 13
You didn't update dub?
September 13
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.
September 13
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?
September 14
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.
September 14
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.
6 days ago
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
5 days ago
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?