DICE C Development System (Amiga Computing 85, April 1995)
Get the little (de)bugger
The source level debugging tool (DD) can be invoked from VMake too, simply by pulling down a menu item. As debugging goes, this is pretty good. Breakpoints can be set at source, the produced machine code can be viewed (and interleaved with the C if wanted), commands can be stepped through or over making this a very powerful tool.
For speed freaks, compilation can be sped up by precompiling header files. A support program called DiceCache allows for files with a certain suffix (for example .c or .h) to be cached for use with DiceCache aware programs (such as the whole DICE suite). Support is also provided for programmers wishing to exploit DiceCache too.
The support tools also include a file compression utility which really makes floppy running a viable alternative. Instead of Commodore’s include files taking up one disk to themselves, they are compressed down to less than half of a disk. This seems to work in much the same way as disk expander as compression is invisible to the operating system.
Another nicety that I immediately fell for was auto opening of libraries. DICE’s linked libraries intelligently open system libraries as needed and tidy up after themselves too.
The compiler itself seems respectably fast, much the same speed as SAS/C until DiceCache is enabled when everything can get pretty nippy. DICE provides compatibility with a whole host of other systems, ranging from SAS/C and MANX to *NIX. The link libraries are also pretty rice, with a whole host of functions providing *nix code compatibilty. Amiga specifics are also well catered for and it was nice to see that the example projects included a DOS handler, an exec device, a printer driver and a library. While comparing with SAS/C, when I tried recompiling the Tabby driver an annoying bug concerning stack handling disappeared – one down, only a few left to go…
Bugwise, it was nice to report that DICE appeared very stable; the only problem I had was a crash upon exiting the debugger whilst the program I was debugging had not completed. This probably wasn’t a bug in the tool but more of an oversight on my part.
The manual deserves a mention, too. Despite a C compiler being one of the most boring products known to man (or woman), the authors have managed to keep the style light yet informative while retaining the technical side too. This is quite an achievement and is probably helped with little humourous bits which are well placed so as not to annoy even the most serious of techy nerds. “This is a test of the emergency page blanking system. This is only a test” provides more of a grin than “This page is intentionally blank” ever could. For reference, it is spot on, but for a newcomer to the package would be nice to see a few pages by way of a tutorial, explaining RCS and VMake by example. The fact that it’s spine bound and not ring bound is a marginal niggle too: the review copy now has numerous Post-it notes acting as bookmarks into the most used bits.