OrangeC Compiler And Tool Chain
this release reworks the assembler so that it will additionally parse ATT assembler sources, and splits the compiler into three pieces for better maintenance. It also removes OCIDE from the install and into a separate github project. Changes are as follows:
note that this is a WIP, right now the MSDOS binaries will not work. They will be fixed in the next released.
this version adds the MSIL compiler, OCCIL, into the main line. It also fixes a variety of bugs. Some of the changes are as follows:
This release is a bug fix release.
occ: show data at CS:EIP in exception dumps
occ: fix so that an empty statement at the end of a function didn't confuse the 'function needs return value' warning
occ: fix the /D and /U command line switches to work more in line with the standard usage
occ: fix problems with std::array, for-range doesn't compile
occ: fix problems with std::array, bracket initialization runs out of memory
occ: fix problems with bracket-initializing a non-trivial structure that doesn't have user constructors.
occ: fix problems with make_unique: two of the overloads were considered as matches for each other.
occ: fix problems with std::unique_ptr
occ: operator bool() not always considered when a structure is used in an && or || expression
occ: in rare instances, the move constructor might be confused with the copy constructor
occ: auto increment/decrement in args to inlined functions may not be handled properly if the target is a structure member
occ: packed reference variables got the size of the non-reference version of the variable.
occ: support forwarding references
occ: fix vagary where an argument which was the result of a function call used the wrong value for the result in rare circumstances
occ: allow declaring an enumeration with an empty list of elements
occ: fix _Pragma to work and allow it in C++ mode
occ: fix a couple of problems compiling templates
occ: if a copy/move constructor is not defaulted, don't call base class copy constructors (call the default constructor)
occ: allow wchar_t and unsigned short to be treated as identical for purposes of the suspicious pointer warning
occ: add builtin byteswap functions
occ: automatically detect DLL outputs and select "/Wd" command line switch, by parsing the contents of the '/oxxxx' switch
occ: add various GCC attributes
omake: don't rebuild things that have exactly the same time stamp as their dependencies
omake: improve diagnostics: extend /w switch to show more information
omake: fix multithreading problem/crash
ocide: when typing a '}', move cursor to BEFORE the newly typed character
ocide: fix bug, long lines cause buffer overrun
ocide: clean up relative paths in project files
ocide: allow the output exe file setting to be changed
olink: identify invalid libraries
olink: create an error if a public symbol was also imported
oasm: add .align assembler directive like gas version
rtl: revert a usage of std::forward in
rtl: allow nl_types.h to be included in c language files
rtl: stdint: handle __STDC_LIMIT_MACROS and __STDC_CONSTANT_MACROS correctly
rtl: return a pointer to nothing when realloc is specified with a size of zero
rtl: add wait() and waitpid()
rtl: reading from a tty will immediately clear any EOF flag associated with the TTY
rtl: add getexecname() function (solaris)
rtl: add realpath() and friends
rtl: fix _environ when building DLLs: a link error was thrown stopping the build.
clean up make files: completes build in local directory and overwrites EXE file if it already exists
This releases fixes various problems with the MSDOS install and execute.
This release also replaces the x87 FPU support with SSE2.
There are also various bug fixes.
Here is a list of changes:
This release has library improvements
This version has various improvements and bug fixes.
This version adds various new features and fixes many issues. Highlights include modifying OMAKE to perform parallel builds, improving compile times on certain problematic files, reworking the documentation, relicensing under GNU V3, adding a tool (onm.exe) to dump object file contents, and adding a PDF version of the OCIDE documentation.
Changes are as follows:
This version fixes more bugs in omake, and cleans up various command line operations for the tools.
Version 6.0.36: 4/18/2018
This version cleans up OMAKE, and fixes various problems with the build. In addition there are some bug fixes. A full list of changes is as follows: