This file has been saved by an unregistered copy of ben's HTML saver. This rather annoying message does not appear in the registered version. Please register now - read the documentation or email ben@cconcepts.co.uk to find out how!

Development Tools

The Current Situation

What to Do

Dave's Wishlist

Debugging

A Unified Build Environment

Where we go from Here

The Current Situation C compiler: Norcroft 5.06

Upsides:

Understands APCS

Produces reasonably small, efficient object code

Understands unique Acorn formats (relocatable modules, etc)

Comprehensive library set

Downsides:

Norcroft 5.06 is 4 years old

It cannot compile some modern code (eg Netscape's HTML

parser)

There are commonly-encountered bugs (particularly when

optimising)

The Current Situation

C++ compiler: Port of AT&T CFront front-ending onto Norcroft C compiler

Upsides:

Allows C++ to be written at all (although not incorporated into

relocatable modules without heinous munging)

Well documented by AT&T

Downsides:

Produces inefficient object code

Cannot compile a large cross-section of modern code

No formal class libraries available (but see later...)

Pre-dates ANSI

Very difficult to write relocatable modules

The Current Situation

ObjAsm: Macro assembler

Upsides:

Produces efficient code

Understands APCS

Handles unique Acorn formats

Downsides:

Needs tweaking to understand StrongARM as a target (eg use long

multiply without having to target ARM7M)

The Current Situation

Debugger: DDT

Upsides:

Enables some bugs to be found

Downsides:

Can't use on relocatable modules, interrupt-sensitive things, etc etc

Difficult to use

Can send the system unstable

Can introduce Heisenbugs of its own

What to Do

Options available:

Get a better Norcroft (C, C++ and FPLib) from ARM

(problem here is cost, but you get the fastest and most efficient

object code...)

Get a development tool set ported from elsewhere

(problems here are cost and knowledge of architecture, but you

may get some very nice frontend stuff...)

GNU

(problems here only involve work, we get C, C++, F77, Ada,

Pascal etc etc etc compilers, ... also the compilers don't produce

object that's quite as efficient...)

Dave's Wishlist

gcc-arm 2.8.x or egcs equivalent, hacked to be able to understand RMs

g++-arm, ditto

Enhanced Toolbox libs

Standard template, ANSI and Toolbox class libs

Macro assembler (can be tweaked ObjAsm, can be tweaked gas...)

Symbolic debugger (see later)

Source Management system (RCS, CVS...)

Language-independent Make environment

Resfile editor and tester (!ResEd, !ResTest)

Old-style Template editor (eg !TemplEd)

AOF disassembler (!DecAOF)

Source code editor with throwback (eg !Zap, !StrongED)

Source code profiler

Searchable docs for all the above!

Debugging <!-- (Unregistered version) --> </body> </html>