Here is a summary of things that have changed since the last official DECUS C release: New compiler functionality: Added #pragma ast/noast Added void data type Compiler knows about AST functions, and generate code for it. Changed compiler functionality: ident, psect and dsect functions have been depreciated. The compiler flags these with warnings, but they are still compiled. Code should instead use #pragma ident "..." #pragma psect "..." #pragma dsect "..." Attibutes on different sections have been corrected. code is now read-only and in i-space, while data is in d-space, and some is read-only while some is read/write. Profiler works with I/D space. This has actually been defunct for some time, since the compiler placed data in c$code psect before. The stack layout have had to be changed, along with the calling convention to get this working. The new code uses one more word of stack, but is less code when profiling is enabled, and faster and more stable as well. New library functions: getdpro() - get default protection setdpro(x) - set default protection getfpro(f) - get protection of file Bugfixed library functions: fgetna(f) - will return file version in decimal if that is the system option. fgetna(f) - on M+ the directory name is now retained. Stack overflow now reports a correct PC. RMS can be used for I/O. The DECUS release of RMSIO in C had problems. stderr could not be opened and other small problems existed. All profiling functions: Since the profile handling have changed, these have been rewritten to a larger part. CSV$/PCSV$/CRET$: The code have been changed since calling convention changed. User written code using these function is probably not affected, but should be recompiled, and *should* C$AUTO to refer to local variables. Library improvements: The library now handles ISO 8859-1 (Latin-1) correctly. Many strings in the library are now in a separate psect, which is read-only (strings in user code is read/write). All .even in string sections have been removed. CX library improvements: All functions directly related to asts have been removed, and a new function ACRET$ have been added. AST entry is now handled directly by CSV$/PCSV$. Arguments by the exec to an AST are now accessible as normal arguments to the function. When returning from an AST, the return value should be the number of words to remove from the stack (the number of trap dependant parameters on the stack). CN library: The CN library is used to access DECnet functions from C. This library has not been verified, but it has been built atleast. Documentation: I've tried to update the documentation, but there is so much of it that I've probably missed a lot of it.