Desktop Development Environment FAQs
We often get asked about the DDE, whether that’s its background or where it’s heading, so have collected up a list of frequently asked questions to help answer your query. If instead you’re looking to get a copy or upgrade your existing one, please see this page.
- What are the main parts of the toolchain?
- How are Acorn ANSI C, Desktop C, C/C++ and the ROOL DDE different?
- Is there any documentation I can read?
- Who are Codemist?
- RISC OS is now Open Source, what about the tools?
- How is the ePic edition of the DDE different to the full copy?
- Can I cross compile using the DDE on Windows, Mac, or Linux?
- Do the tools run on my version of RISC OS or this ARM or another?
- What plans are there for the tools going forward?
- Is the DDE also an IDE?
- I think I found a bug in the DDE, what can I do?
What are the main parts of the toolchain?
There are 27 applications provided in the DDE. Some of these are relatively minor utility programs while others are desktop front ends to a powerful command line tool. The main ones are:
- ABC is the Archimedes BASIC Compiler to compile BBC BASIC source code into machine code applications, modules, or libraries
- C++ uses
CFront
to transform C++ code into C for subsequent compilation - CC an optimising strictly conformant C language compiler
- CMHG (the C Module Header Generator) is a tool to make a RISC OS extension module from a textual description which is then implemented in C
- DDT is the Desktop Debugging Tool for iteratively debugging your desktop applications
- LibFile is the librarian to manage multiple objects in a single library
- Link joins object files together as the final stage in the chain
- ObjAsm the assembler
- Toolbox editors
- ResCreate to create new Toolbox objects
- ResEd to create Toolbox resource files
- ResTest to test out a Toolbox resource without having to write any code at all
The others being: A8Time; AMU; DecAOF; Diff; Find; Make (deprecated); ModSqz/UnModSqz; ObjSize; SID; Squeeze/Xpand; ToANSI/ToPCC. SrcEdit, the big brother of Edit with specialisms for source code editing, is also included.
How are Acorn ANSI C, Desktop C, C/C++ and the ROOL DDE different?
Acorn ANSI C corresponded to major release 3 of the tools by Acorn, the ANSI in its name was because the compiler provided was now standards compliant. Acorn Desktop C corresponded to major release 4 of the tools by Acorn, with RISC_OSLib the suggested library to write desktop applications. Acorn C/C++ was their final major release 5 of the tools, with the Toolbox introduced as a new way to easily write desktop applications in either C or C++, the older RISC_OSLib was deemphasised.
Later, Acorn C/C++ was extended to produce 32 bit code and libraries by Element 14 and Pace in support of their set top box projects, this was subsequently needed for the 32 bit Iyonix too and marketed by Castle Technology. Development moved to Tematic where C99 features were added along with general maintenance until 2003.
After Castle began the shared source initiative they transferred development and sales of the tools to ROOL in 2007. They have since been referred to as the Desktop Development Environment.
Is there any documentation I can read?
Lots – the DDE comes with 7 manuals in electronic (PDF) format:
- ABC describes how to use the Archimedes BASIC Compiler (80+ pages)
- Desktop Development Environment
- Acorn Assembler is the manual on using ObjAsm, the assembler (160+ pages)
- Acorn C/C++ covers the C and C++ compiler plus module generator tools (450+ pages)
- Desktop Tools details all of the remaining tools such as debugger and code editor (340+ pages)
- RISC OS 3 Programmer’s Reference Manuals are a collection of 5 books and index about the core operating system and its constituent API, though currently these are address a rather old version of RISC OS so are missing a lot of more recent information (3900+ pages)
- RISC OS Style Guide explains how to write easy to use applications (150+ pages)
- User Interface Toolbox gives examples and function descriptions for the Toolbox (530+ pages)
The page count may be daunting, but there’s no need to read all of this! There are examples of using each tool provided which you can take apart and try out to learn on the job.
We’ve also produced printed copies of the DDE box set and Style Guide from the above list, with plans to refresh and print the other titles in future.
Who are Codemist?
In the late 1980’s Acorn teamed up with academics Arthur Norman and Alan Mycroft (‘Norcroft’) to work on their compiler technology. The compiler ‘engine’ is in fact
- multi platform (can run on operating systems other than RISC OS)
- multi language (can input source code from any imperative language)
- multi target (can output machine code for any processor)
Of course we’re most familiar with the RISC OS/C/ARM combination. Acorn primarily did porting work to RISC OS and various RISC OS specific tools like CMHG, while the compiler was developed for multiple customers/processors/platforms and languages.
The directors of Codemist (Arthur, Alan, and Dr Fitch) decided to close the company in 2016 but they have collectively continued to be very responsive to our technical questions. As neither Codemist nor ARM contributed code changes to the RISC OS tools directly since the mid 1990s the status of Codemist doesn’t affect our ability to maintain them – the sublicence is from ARM.
RISC OS is now Open Source, what about the tools?
Due to their long history the source code for the toolchain has a similarly long list of copyright holders, including some big companies who still use parts of the technology in their commercial offerings today. There is no near term prospect of that situation changing, so the source code remains restricted to those with a suitable NDA.
The parts of the DDE which aren’t tangled up in licensing were released in 2010, though to date combined these have attracted contributions from only 1 author other than ROOL.
How is the ePic edition of the DDE different to the full copy?
ePic is a distribution of commercial software bundled with the latest version of RISC OS Pi. With the ePic edition the tools themselves can only be run on a Raspberry Pi computer. However, the programs it produces run on any RISC OS system.
Can I cross compile using the DDE on Windows, Mac, or Unix?
Some, but not all, parts of the toolchain are abstracted to allow underlying operating systems other than RISC OS to be used to host them. For example, when Acorn shipped the RISC iX workstation a version of the Norcroft C compiler was included in the accompanying software bundle, and Arm’s customers most often used DOS or Windows for development.
We’ve only actively maintained the Unix target, as it’s sometimes useful to use code analysis/debugging facilities from Unix in their development. As some of the parts are RISC OS specific, it’s not technically possible to produce a completed set today, plus the licence for distribution only covers RISC OS targets at present.
Do the tools run on my version of RISC OS or this ARM or another?
The tools themselves require a minimum of RISC OS 3.10 and 4MB RAM.
RISC OS Select is supported too, though some versions will need a special patch (provided) to load a newer version of the Shared C Library.
The tools can output machine code tailored to suit the ARMv2 used by the Archimedes right up to ARMv8 used in the Cortex-A processors from Arm, all of which use the AArch32 instruction set. Both APCS-R or APCS-32 calling standards can be used, with APCS-32 being the default and will work on ARMv3 or later. See the manuals provided for how to select the desired CPU/architecture/APCS combination.
What plans are there for the tools going forward?
Since around 2003 the C compiler has supported the C99 standard with all the extra bells and whistles that brings, and from October 2020 we added the latest C18 standard dialect too.
Further plans exist to incorporate languages other than C, Vector Floating Point acceleration, the forthcoming C24 standard, and even the AArch64 instruction set. Naturally these have different priorities and amounts of work associated with them, but as funding and timescales permit we’ll keep developers informed – we also welcome suggestions if you have any.
Is the DDE also an IDE?
An Integrated Development Environment (IDE) such as Visual Studio or Eclipse brings together an editor with build and target debugging facilities. The Desktop Development Environment includes the constituent parts (editor, tools, debugger) but they’re not integrated together into one application.
I think I found a bug in the DDE, what can I do?
Having convinced yourself it’s not a bug in the source code you’re working on, please file a bug report – there’s an example one in AcornC/C++.Extras.BugReport
which you may wish to use as a basis. We try to triage bug reports within 7 days and will either tell you it’s not a bug, or handle it on the following scale:
- Minor: A non code related or cosmetic issue to be fixed at the next opportunity
- Normal: Confirmed as a bug but which has trivial or known workaround
- Major: Confirmed as a bug but which requires a complex or inconvenient workaround
- Critical: Confirmed as a bug with no workaround, tool generates incorrect code, or the tool crashes before completing
You may receive a unique reference number which is used to track progress of a fix, because sometimes it may not be possible to produce and validate a fix before the next version comes out.