Orange C 5.22. is released
In this release, the C++ support is up on blocks while I switch it over to use STLPORT as the C++ library.
Right now, templates aren't quite working, although the good news is I've definitely simplified the template code...
which will make it more manageable as time goes by.
More bugs have been addressed in the IDE and there are some new features. The most important change is that
building libraries is properly supported again.
Finally, some work was done to work around more bugs when building with the OPENWATCOM compiler and runtime package. Right now, the tools will build and run when compiled with OPENWATCOM, and the resulting binaries will compile complex programs as well as the RTL.
Some of the changes are as follows:
general: increase compatibility when building the tools with openwatcom
ocide: ungray 'make' and 'rebuild' and 'build active project' in menus
ocide: adjust right click version of 'make' and 'rebuild' to make the selected project instead of making/building everything
ocide: fix 'generate make file' to work with non-relative paths and paths with spaces in them
ocide: stepping over a function such as gets() that asks for console input would leave the 'stop debugging' icon available, and if you pressed it the IDE would lock up.
ocide: fix problems with building static libraries
ocide: make '.l' files in projects a dependency of the project EXE to help the make process work better
ocide: editor: only need to click once on the tabs at the top of the screen, to change the file being viewed
ocide: editor: holding shift down and left-clicking will select lines from the old cursor position to the new one.
occ: alloca and _alloca changed to __alloca in the compiler keyword list, then defined again as a preprocessor define in 'malloc.h' to match GNU-C
occ: more work done on C++ STL compatibility (work in progress)
occ: invariant code motion optimization fixed and put back in the code
occ: the constant '0 || 0' would not be evaluated at compile time and in some contexts would cause an error about needing a constant value (compiles lpng now)
occ: allow #defines to be utilized properly inside the quotes on #includes
occ: make some improvements that speed up the comparison part of generated loops
oasm: update preprocessor
orc: update preprocessor
omake: exit if the dependency nesting is too deep, as it is likely due to recursive rules
omake: support quotes on rules and dependencies - the quotes are part of the name
olink: fix bug where a ".l" inside a file name (not at the end) would cause a crash
olib: fix bug where debug info of structures inside a library would cause the link stage to fail
olib: fix bug where +- with fully specified paths could fail
olib: fix +- mode to add a file if it doesn't already exist
clibs: make adjustments for having changed 'alloca' to a #define
clibs: add InterlockedCompareExchange
documentation: document predefined preprocessor definitions in various places