DSSS 0.69 released.

Robert Fraser fraserofthenight at gmail.com
Mon Aug 6 11:38:40 PDT 2007


BCS Wrote:

> as to #4, here is a list of things that my build scripts do that I haven't 
> heard DSSS can
> --run dimple to build import graphs
> --sort pragma(msg,"") output into memo, notice, error, diagnostic and other 
> categories (this is done with about 6 passes through grep/grep -v/sort)
> --generate a list of functions selectively imported from std.* (find, grep, 
> sed, sort)
> --build list of asserts without messages
> --build list of debug sections without debug identifiers
> --build a command file that will turn on all debugging
> --build full docs twice (.html + index and .tex + aggregator file)
> --build test version of app
> --log most of this to a time stamped file
> 
> All of this is done with a build script that runs some stuff in the background, 
> ignores errors from some things, generates a return condition for others. 
> It is all a bash script that makes extensive use of the "()" and "&" structures 
> and a bunch f other stuff.
> 
> It is also totally un-portable. If dsss could duplicate all of that and be 
> portable I would write you a testimonial that will make you look like a saint 
> (ok I exaggerate a little).
> 
> 

I once wrote a big Perl script (5 files!) which did everything from generating code based on template files (I'm sure not as big a deal with D's insane metaprogramming capabilities, but a huge deal when generating repetitive code or code that needs to be synchronized across a lot of files for web programming - the script would generate stylesheets, JavaScript and SVGs so that with a change of a single file, the entire color scheme of the site could be changed) to running the unit tests, pushing the nightly build out and generating reports (I know CruiseControl and stuff can do that, but this way is more customizable). It was a lot of work (8-10 hours of mucking about with Perl's syntactical oddities), but the end result was well worth it, since I had a portable and highly customizable build system.

There's simply no way to get this sort of power with a tool focused simply on building. Even ant, with all its many extensions and its rather simple API makes larger projects that require more than just compilation a nightmare. At work, we have a set of eight Ant scripts averaging 10k, not to mention the 15+ taskdefs we have lying around... and still the push to the test environments is done by a set of Perl, Ruby, Transact-SQL and bash scripts strung together oddly.

DSSS looks like a great tool, and the net feature of it, which bears similarities to CPAN, etc., looks like a great way to get dependencies. But as far as building goes, I feel that build-focused tools should be better integrated with scripting languages for larger projects. If DSSS had a Perl interface, it's be perfect for me. As it is, when I get to working on a D project, I plan to invoke DSSS from within the script to do the actual build and let the script handle the things surrounding it.

I'm not actually working on a D project right now, so maybe DSSS is a "learn as you try" thing, but the docs seem REALLY spotty, so that's the other thing that's keeping me from embracing it.

But thanks, Gregor, for all your hard work!



More information about the Digitalmars-d-announce mailing list