This pull request marks a significant change in moving to a pure LLVM/clang backend. Previously, gcc was used as a linker, requiring MinGW or similar frameworks for Windows. This update switches fully to clang, allowing for native Windows builds with clang as the linker. Doing so required different LLVM IR for windows exception handling, which uses SEH instead of the Itanium C++ style exception handling used in Linux and macOS.
Other fixes:
Better exception handling across all platforms
Updated JAXB to Java 11+ compatibility (which still seems to be problematic in the Shadow Eclipse plug-in and should, perhaps, be abandoned in favor of some non-JAXB or even non-XML configuration system)
More errors are caught by the type checker
Several compiler crashes have been fixed
Functionality improvements to the Console singleton
String and MutableString use arrays of ubyte (instead of byte) values under the hood
Enforcement of readonly modifier on methods that implement readonly interface methods
Path names for Shadow compiler installation can now have spaces in them
This pull request marks a significant change in moving to a pure LLVM/clang backend. Previously, gcc was used as a linker, requiring MinGW or similar frameworks for Windows. This update switches fully to clang, allowing for native Windows builds with clang as the linker. Doing so required different LLVM IR for windows exception handling, which uses SEH instead of the Itanium C++ style exception handling used in Linux and macOS.
Other fixes:
Console
singletonString
andMutableString
use arrays ofubyte
(instead ofbyte
) values under the hoodreadonly
modifier on methods that implementreadonly
interface methods