On Tuesday, 19 November 2019 at 12:06:36 UTC, Dukc wrote:
On Monday, 18 November 2019 at 19:35:13 UTC, Sebastiaan Koppe wrote:
Well yes. But that is just the way things worked up until now, ldc and dub just pick the host machine.

Luckily there is the new dub `--arch` argument that can take a llvm triple, in our case wasm32-unknown-unknown-wasm. This causes dub not to add the `--no-as-needed`.

That was news to me - I thought everything was always being compiled to WASM.

Well it is, but some versions from the host were still set. E.g. version(linux).

Except, that it also passes the triple upwards the dependency tree. Now all the dependencies of spasm get compiled targeting wasm. This is a good thing, except that the optional package which spasm depends on fails to compile with it. There is a newer version that fixes the configuration, but that one fails because of the `from.std` import idiom (it imports the std package from phobos which doesn't recognise wasm and fails with "Unknown OS").

I have sometimes thought that perhaps a static assert isn't the best thing to use for unimplemented features in Phobos, precisely because of this issue. A @disabled function stub would serve better, unless I'm missing something.

Either way, as long as there is a clear way to debug why it ended up there. Unlike what we have now where you need to dig endlessly.

"ending up"? If it's like what getting Phobos to work has been for me, you're continuing the game, not ending up playing it ;D.

Yeah it is a pain, and since wasm/betterc isn't tested (or barely), anyone is free to break it. E.g. the recent change to the std.range.chain function, which suddenly wasn't betterC anymore...

Another workaround that you can use right now is by adding the `--build-mode=allAtOnce` argument to dub. It effectively gets you the old behaviour. It is what I am using in my CI to get it to go green again.

Do not hurry more than you want -I already got my extract-dub-failure workaround working.

Sure, but stuff just needs to work. I updated the BUILDING.md file in spasm as well.

Reply via email to