Coming Soon: Stable D Releases!

Nick Sabalausky SeeWebsiteToContactMe at semitwist.com
Tue Jul 17 01:07:22 PDT 2012


On Mon, 16 Jul 2012 23:24:04 -0700
"Adam Wilson" <flyboynw at gmail.com> wrote:
> On Mon, 16 Jul 2012 23:17:38 -0700, Jacob Carlborg <doob at me.com>
> wrote:
> 
> > On 2012-07-16 21:37, Adam Wilson wrote:
> >
> >> ./build does the following for all projects
> >> git fetch origin
> >> git merge origin/master
> >> make clean -f <system>.mak
> >> make -f <system>.mak
> >> make unittests -f <system>.mak
> >>
> >> As for actually putting together the script, my Bash-fu, is not as
> >> strong as my PowerShell-fu, but with some effort it could be
> >> achieved. Both are not terribly difficult (expect for the
> >> uploading part).
> >
> > You could use DVM with the "compile" command to build everything.
> >
> > https://bitbucket.org/doob/dvm
> 
> Hmm, this sounds like an interesting method, can it be targeted at
> any repo and if so how? And does it run unittests?
> 

dvm compile <path>

Where <path> is a directory that contains git clones of dmd, phobos,
druntime, and optionally DMD's tools repo. So whatever branch/version is
checked out in that directory, that's what dvm will compile.

It's not very flexible though. For example, it doesn't support
passing arbitrary flags/params to make. RDMD is the only program from
the tools repo it tries to compile. IIRC, it always does a clean
build (or at least to the extent that the "clean" in DMD's
makefiles actually works in the first place - ie, not always perfectly).
It doesn't run unittests, IIRC. And I think there's a thing or two (I
forget what) that it does slightly different between windows and posix
(this was due to the targets and features available/unavailable in
the makefiles being completely fucking different between windows and
posix).

Also, if you're compiling Git sources (instead of recompiling a DMD
release), then it doesn't attempt to recreate the DMD release directory
structure, instead it just puts the bins in <path>/dmd/bin(32|64)/ (or
something like that, don't recall exactly) and sets up sc.ini/dmd.conf
to use the phobos in <path>/phobos, etc.

And then there's a little magic to be aware of: For some stuff (like
windows libs) we don't have source on Github, so it automagically pulls
those in from whatever it detects is the latest official release
(downloading it if necessary).

(tl;dr): Main thing to remember is, as it's written right now, it was
really intended more for people building DMD/Druntime/Phobos themself
and then just using it. Not much thought went into using it to create
packaged releases. So if happens to do what you need it to, then
fantastic, but you should probably try it out first (with the
--verbose flag) and pay close attention to what it's doing. Then see if
that matches what you need. If so, great! If not, then file a ticket,
and with luck maybe Jacob or I may be able to find some time to take
care of it. But I've been busy though, so I can't promise anything :(

Or just deal with bash ;) Either way.



More information about the Digitalmars-d-announce mailing list