[upforgrabs] tools/update

Robert Clipsham robert at octarineparrot.com
Fri Jun 10 10:34:12 PDT 2011


On 10/06/2011 15:14, Andrei Alexandrescu wrote:
> We need a script to update all of dmd's paraphernalia. By this I'm
> putting the task up for grabs and am describing it.
>
> The script would require git to be installed, and would orchestrate git
> commands to freshen the installation. Either a tag can be given, or the
> script would automatically detect the latest "semistable" release, or
> even the script can be told to get the latest and greatest. The exact
> tagging convention is to be defined later.
>
> The trick with such tools is they must "just work". That means wherever
> and however you installed dmd, the script should be able to detect
> everything it needs for a successful update. This means: dmd and rdmd
> binary locations, druntime and phobos library locations, and druntime
> and phobos import locations.
>
> The way I'm thinking this all can be done is by running dmd -v against a
> small do-nothing program that imports one std module, for example
> std.stdio. The run will print (among other things):
>
> binary dmd
> version v2.054
> config /Users/john/dmd.conf
> parse test
> importall test
> import object (/Users/john/code/dmd/druntime/import/object.di)
> import std.stdio (/Users/john/code/dmd/phobos/std/stdio.d)
> ...
>
> Simple parsing reveals the location of the configuration file and the
> locations of druntime and std imports. Further simple parsing of the
> conf file reveals the location of libraries.
>
> With this information in hand, the script goes and fetches the
> appropriate code in the appropriate places.
>
> Also, the tool needs to do all of its work transactionally, i.e. first
> download everything next to the target with an added suffix (e.g.
> ".tmp"). Only after a full successful download, the tool would rename
> everything .tmp to its final name (an operation that can't fail under
> most circumstances).
>
> If anyone is willing to take up working on this, it would be great. D
> itself is a great candidate as the language to write the tool in, and
> has the advantage of being more portable than shell scripts.
>
> We'll add the tool to the tools/ repository and offer it with the
> standard distribution.
>
>
> Thanks,
>
> Andrei

This sounds like a rather limited tool, why limit it to dmd? The tool 
you describe is just a watered down version of a full package manager.

Also, as already mentioned, dvm does this.

-- 
Robert
http://octarineparrot.com/


More information about the Digitalmars-d mailing list