On 2015-11-20 18:43, Martin Nowak wrote:

Because we already have the code for Travis-CI and Heroku.

DVM was already available before that ;)

Also an intransparent binary is yet another hurdle trying to convince
someone to try out D.

Not sure how much difference that is compared to the other opaque native installers.

Also, a 500 LOC bash script is almost as an opaque binary ;)

BTW, I hust tried to use dvm.

The linux binary doesn't work for my distribution (Fedora).
./dvm: error while loading shared libraries: libbz2.so.1.0: cannot open
shared object file: No such file or directory

I assume you actually have libz installed and there's some other problem here?

Compiling dvm with the latest dmd fails.

../../.dub/packages/tango-1.0.1_2.067/tango/io/vfs/ZipFolder.d(302,27):
Error: function tango.io.vfs.ZipFolder.ZipSubFolder.toString cannot have
an in contract when overriden function object.Object.toString does not
have an in contract
../../.dub/packages/tango-1.0.1_2.067/tango/io/vfs/ZipFolder.d(977,27):
Error: function tango.io.vfs.ZipFolder.ZipFile.toString cannot have an
in contract when overriden function object.Object.toString does not have
an in contract

Not too surprising given the amount of code, the number of dependencies,
and the lack of any CI testing.

The issue is that DMD constantly breaks my code. Yes I test the betas, many times the bugs I'm reporting are closed as "won't fix". Every single release of DMD since at least 2.050 broke at least one of my projects.

I don't see how any CI testing would help when the code breakage I encounter is not fixed.

Anyway, I've updated the dependency and it builds with DMD 2.069.1.

The number of dependencies are two. The reason for why I'm still using Tango is the libcurl disaster in Phobos. That has hopefully been fixed now but that means a yet another dependency and which is not installed by default on Windows (perhaps static linking would work).

I managed to build dvm using dmd-2.067.0 (as indicated by the tango
dependency).
Apart from the fact that dvm --help offers weird choices (-t,
--tango      Installs Tango as the standard library.), dvm install
--help or dvm --help don't explain how to install a compiler.

The --tango flag is a perfectly reasonable option for a D1 compiler.

dvm install dmd-2.068.2

tango.core.Exception.IOException@../../.dub/packages/tango-1.0.1_2.067/tango/core/Exception.d(59):
The resource with URL "http://ftp.digitalmars.com/dmd.dmd-2.068.2.zip";
could not be found.

dvm install -l

An error occurred:
dvm.dvm.Exceptions.DvmException@.dub/packages/dvm-0.4.4/dvm/commands/Fetch.d(270):
Failed to get the latest DMD version.

dvm install -l -v # doesn't tell me either what fails
Looking at strace it seems you're trying to parse
http://dlang.org/download.html, please just use
http://ftp.digitalmars.com/LATEST instead.

Yeah, I've noticed that broke. I haven't had time yet to update the code to use LATEST instead.

After some trial and error it fails to install the selected compiler
(and doesn't use the much smaller tar.xz downloads btw).

Is the tar.xz archives something that has been announced? I had no idea about it. BTW, I suspect Phobos can't unpack these files. Which either means resorting to third party libraries, something you seem to dislike. Or shell commands, which are not portable.

dvm install 2.068.2

Fetching:
http://downloads.dlang.org/releases/2.x/2.068.2/dmd.2.068.2.linux.zip
[========================================>] 25969/25335 KB

Installing: dmd-2.068.2
An unknown error occurred:
tango.core.Exception.IOException@../../.dub/packages/tango-1.0.1_2.067/tango/core/Exception.d(59):
/home/dawg/.dvm/bin/dmd-2.068.2 :: No such file or directory

Have you installed DVM?

As Walter would say, bugs reported to the newsgroup will most likely be forgotten.

All of the above, plus the ability to install gdc/ldc and verify
downloaded dmd binaries, are achieved by a ~500LOC bash script.

Of course downloading and installing dmd used to be a lot more chaotic
when DVM was originally written. But making installations more
scriptable is a direct outcome of writing such scripts, which works much
better than building complex tools to deal with inconsistencies.

I guess your script only cares about the latest version, making everything a lot easier.

The reason I brought it up because DVM already exist (I guess your script did as well), offers other features as well and works on Windows.

--
/Jacob Carlborg

Reply via email to