Anyway listed below are items that are on our current "Wish List" as far as the compiler is concerned. We are also always open to new ideas to add to the list - they may never happen, but if we do not even add them to the list in the first place they definitely will not happen!
This wish break down into two significant parts - one a lot less ambitious that the other!
The simple case is that of static functions in the same source file. In this case we would like the compiler to be able to pass parameters to the called function in registers rather than on the stack. The compiler would decide what register to use. This simply gives a performance and size gain without any significant change in underlying functionality.
The other and far more ambitious option is to be able to pass
parameters in registers to operating system calls. In this case
one needs to be able to specify exactly which register any
particular variable must be put into; which registers will be
corrupted by the call; and which registers return values that
need to be placed back into C level variables.
The method would be to use #pragma statements
to do this - probably following the syntax of TopSpeed C.
The big gain of this development is that
(as well as generating more efficient code)
it allows one to build C interfaces to operating systems,
or any similar interface, without the need to write
assembler wrappers.
We would like to be able to specify that certain functions should be generated as in-line code rather than as true function calls. This is a more powerful mechanism than simply defining macros with the pre-processor because it guarantees that all C syntax and scoping rules will be followed.
We would like to implement many of the proposed extensions to ANSI C being concidered for inclusion in the next revision of the ANSI C Standard.
We have made a (small) start towards this by supporting
C++ style comments, and also some of the new keywords.
For compatibility reasons we only activate these extensions
to ANSI C if you use the -extensions=yes runtime
option to the compiler (assuming that you include such support
in the first place when building the compiler).