DICE C Development System (Amiga Computing 85, April 1995)
Power is nothing without control
As mentioned above, RCS is included with DICE too and is completely integrated inside VMake. For those not familiar with this tool -and I wasn’t- it is certainly worth the ten minutes it takes to get it working. RCS has been ported from the *nix world and simply keeps track of revisions of your source files. Before editing a file can be done, it must be “checked out” of the RCS system. When editing is finished, it is checked back into RCS and the program prompts for a revision comment, which is logged along with the date and revision number (which is automatically increased). Special RCS keywords can be embedded inside source code to be expanded, showing the author, history, creation date, author’s inside leg measurement and more – again this is automatically done. Best of all, if something with your latest version has gone horribly, messily, panic inokingly wrong and you suddenly find you need to get back to four revisions previous, you can save your hair, sanity and Amiga from abuse. RCS keeps track of all changes made by storing the differences from revision to revision, allowing earier versions to be reconstructed. In short, RCS is pretty invaluable and using it within VMake is a doddle.
When errors do crop up in your code, VMake drops you into the editor of your choice telling you what the problem is and where to find it. With the AME editor (an Amiga specific enhancement of the *nix memacs editor which is DICE’s default), multiple files can be edited at the same time so you can flit happily between your error log and source code file. Any AREXX knowledgeable editor can be integrated into the DICE package – configuration files are provided for CED, ED and a few others along with instructions on how to make another editor of your choice work well with the DICE system. While on the subject of editors, it’s worth mentioning another corker of a utility that DICE comes with: DiceHelp. This package integrates with your editor using AREXX so that when the cursor is over a function call (for example, OpenWindow), the program will search out the information from any autodocs that you have on your system and display it in another window. It also finds help on all DICE link library calls, too.
Pretty much every aspect of the system is configurable from VMake. By using the Options sub-program, the majority of flags for each stage of compilation can be set such as target OS, target processor and so much more. The list is endless; it’ll suffice to say that you really shouldn’t need to touch the CLI no matter how hairy you want to try and make things, even if you want to generate code to be burned into ROMS on a system other than an Amiga!
Programs can also be compiled to produce run-time profiling information to give a full view into how many times a function is called, how long each call takes on average, where it was called from, who it calls in turn and overall execution time. This claims to be accurate to 20 microseconds and provides you with a mine of information, armed with which you can spend your time profitably optimising your code.