DVM - D Version Manager 0.4.0

Nick Sabalausky a at a.a
Fri Jan 6 14:38:55 PST 2012


"Jacob Carlborg" <doob at me.com> wrote in message 
news:je7p3p$1pl1$1 at digitalmars.com...
>I just released a new version of DVM, 0.4.0. The only thing new in this 
>release in the "compile" command. This allows to compile DMD, druntime and 
>Phobos from github. Create a folder, clone DMD, druntime and Phobos in the 
>newly create folder, run "dvm compile folder" to compile everything. The 
>compiler is placed in the DMD directory.
>

In other words:

$ git clone https://github.com/D-Programming-Language/dmd.git
$ git clone https://github.com/D-Programming-Language/druntime.git
$ git clone https://github.com/D-Programming-Language/phobos.git
$ git clone https://github.com/D-Programming-Language/tools.git  # for RDMD, 
but this is optional
$ dvm compile
$ ./dmd/bin32/dmd  # or ./dmd/bin64/dmd
DMD32 D Compiler v2.0...
...etc...

If you notice it downloading the latest DMD release before compiling, 
there's a reason for that: There are some files (from the bin and lib 
directories) that aren't in github, so it grabs them from the latest DMD 
release.

BTW, This isn't just for Git DMD, it can also recompile release versions of 
DMD:

$ wget https://github.com/downloads/D-Programming-Language/dmd/dmd.2.057.zip
$ unzip dmd.2.057.zip
$ dvm compile ./dmd2  # the directory is optional, DVM's default is "."
$ ./dmd2/linux/bin32/dmd   # or ./dmd2/osx/bin64/dmd, etc...

DVM will automatically detect whether you have a git-style or release-style 
project structure and act accordingly. Use DVM's -v (verbose) flag to see 
which it detects. It also detects D1 vs D2, so it can be used to compile 
D1/Phobos as well.

Be aware, it might have some trouble will really old releases of DMD 1 and 2 
due to changes in the project structure and/or makefiles. But anything 
remotely recent should work fine (if not, please file a bug).

If you're on Windows, it will automatically download and install DMC if DMC 
isn't detected on the PATH (you can also do it with "dvm install dmc"). But 
you may run into some "paths with spaces" trouble with the DMC toolchain 
that I wasn't able to fully track down, so if that happens, you should 
download DMC to a directory with no spaces:

$ dvm fetch dmc

and extract/install it manually.




More information about the Digitalmars-d-announce mailing list