Orange C 5.20. is released
In this release, basic support for C++ has been added. The compiler compiles an old STL
well enough to handle maps, vectors, and std::cout. There will be more vetting of the new support
and IDE support added in future releases.
Also, The IDE has been improved; many existing bugs have been removed and the support for
resource editing works better now.
Finally, the build has been modified to allow easy insertion of new compilers, and several
existing compilers were used to successfully build the product including MINGW, CLANG, and OPENWATCOM.
As part of this, many errors and warnings reported for the code base have been fixed, resulting in
a more stable product. The build process was also vetted so it will now build out of the box.
Some of the changes are as follows:
general: use fflush() liberally throughout to speed disk access
general: fix sources to compile with OPENWATCOM & MINGW compilers
general: switch to #include instead of #include when possible (e.g. except when utilizing OPENWATCOM)
occ: defining the same typedef inside of multiple functions resulted in an error
occ: rewrite inlining code to make it work better
occ: basic support for C++ (no debugging, may have some bugs)
occ: fix problem where using debug information while specifying multiple files on the command line would crash the compiler
occ: fix problem where browse information would take exponential time due to excess list traversal
occ: "array[*index++] ++;" would increment 'index' twice.
occ: don't expand inline functions when generating debug code
occ: typing "int a int b;" at the beginning of a function body wouldn't result in an error in C99/C11/C++ mode
occ: conversion of integers to pointers and vice versa in a function argument was allowed with a warning. Now it is an error.
occ: add make dependency generation similar to gnu C
occ: fix all the bugs in the string merging algorithm
ocide: prettifying/ use default shell font throughout
ocide: default to Consolas font for edit windows on vista/7/8, use bitstream mono font on XP.
ocide: fix a crash that could occur if you debug a file that was built in release mode
ocide: fix a crash that could occur when closing windows
ocide: fix a crash due to multiple threads doing a find simultaneously
ocide: fix crash that could occur sometime after removing the 'startup' project
ocide: fix crash that could occur when clicking the arrow in the title bar on for example the build window
ocide: fix crash that could occur when debugger's "stop running" button was pressed
ocide: fix crash that could occur sometime after doing a multi-file replace of text
ocide: fix random crash in BCC32 compile due to use of the dlawrence memory allocator
ocide: fix random crashes due to multiple threads utilizing the open window list
ocide: fix various problems with string resources
ocide: fix various problems with accelerator resources
ocide: fix various problems with menu resources
ocide: fix various problems with dialog/control resources
ocide: fix various problems with image editor
ocide: allow editing font-related meta data
ocide: fix problem when specifying the \0 at the end of a version resource string
ocide: fix problem parsing generated versioninfo structures
ocide: fix problem when changing a resource id from the property window
dlpe/orc/ocide: fix problems where version information wouldn't be displayed in OS file details window
occ/ocide: allow looking at variables declared in for statements (c99)
occ/ocide: allow looking at variables declared in 'static' functions
occ/ocide: improve debugging of control statements
olink/ocide: fix debug type information
ocide: set debugger's 'stop on exception' to default to 'yes'
ocide: debugger: adjust the search for lines matching an address to use the next lower line if the PC isn't parked exactly on a line's first address.
ocide: if a symbol is not found in the statics of the current file or the globals do an unqualified search of all statics to see if it can be found anywhere
ocide: allow debugger to stop cleanly when program is still running
ocide: enable code completion again (it was broken during code cleanup)
ocide: don't close code completion window so gratuitously, but close if a non-symbol character is typed
ocide: enable find-next immediately after opening ide
ocide: enable finds in files without an extension
ocide: editor: in typeover mode, typing at end of line will insert characters on line instead of typing over the end of line character
ocide: resolve disparaties between find and find in files
ocide: fix problems with context sensitive help not being right in some dialogs
ocide: fix problems with cancel buttons on the external tools dialogs not working
ocide: default new files to a format notepad can read properly
ocide: when selecting an error from the information window, the cursor might move to the wrong line if lines were inserted or deleted
ocide: fix backups of project and workspace files
ogrep: when the -d option was used with an explicit filename, ogrep would complain 'file not found' in any directory that didn't have the file
orc: allow specifying extended font parameters on the DIALOGEX FONT line
orc: allow path specifications in file names
oasm: __db was considered same as 'db' and so forth...
omake: add support for common TREE builds
clib: fix _beginthreadex to return the thread id properly
clibs: add a #define for the more or less standard variable 'environ'
clibs: add a bunch of C++ templates and support functions
clibs: no longer distributing lscrtl.dll
examples: fix xmlview example
At this point the only C++ support that hasn't been implemented is builtin support