mirror of
https://github.com/Mercury-Language/mercury.git
synced 2025-12-13 12:53:53 +00:00
Estimated hours taken: 5 Branches: main Updates to the runtime and library for .NET backend. These changes mean the runtime and library will no longer work for Beta 1. If you want to use Beta 1, you will have to use mercury 0.10.x. library/.cvsignore: Add .cpp .dll and .il files. runtime/.cvsignore: Add .dll files. library/Mmakefile: Add an assembly search patch to the MS_CLFLAGS Work around bugs in the assembly cache installer by generating one big .il file for the library. Generate a strong name file and use it. library/array.m: Update the code to work correctly -- the MC++ compiler is now a bit stricter about type casts. library/exception.m: Stop using an enum and use #defines -- the enum has stopped working. (I don't have time to figure out why just now). library/float.m: library/math.m: Some of the mathematical functions have changed names. library/io.m: Use an ascii encoder to generate ASCII output by default. Without this we get Unicode UTF output, and it seems to like to insert a BOM (byte-order-mark) which means Hello World doesn't work anymore. Add a stream reader and writer to the MercuryFileStruct. library/library_strong_name.sn: The strong name for this library. runtime/mercury_il.il: Insert .publickeytoken to identify the mercury assembly and mscorlib. Add ['mscorlib'] assembly refs to System.Object and ['mercury'] for mercury code. Use box and unbox instructions instead of our hand-hacked boxing classes. Remove the old conversion classes. Add a missing return to mercury.Init::init_runtime() runtime/mercury_mcpp.cpp: Minor fix: s/Exception/System.Exception/ runtime/mercury_mcpp.h: Fix the definition of MR_Array. Use array syntax for macros that manipulate arrays.
596 B
596 B