The PLAtform NEutral Transpiler
Go to file
deesix 9f26dbcc68 tests: support for make -j
For any test there's a directory with a script for each architecture.

These scripts generate intermediate files in the dir during compilation,
with the same names no matter the arch. So if one tries to execute the
scripts in parallel they all fight for the files.

To allow for parallel testing, now we create a temporal dir named after
the arch to isolate the intermediate files. Scripts are patched
accordingly.

This also allows easier clean-up: now, removing the temporal dirs is
almost all that we need (and the per-test .gitignore files are replaced
with a couple of lines in test/.gitignore). A common script replaces
the per-test cleanup.sh. It gets the number of the test as an argument
and takes care of some minor special cases. The makefile is adapted to
use this new test/cleanup_test.sh script.

Those special files are created during the last stage of each test, but
only if the host arch matches the test. They're _not_ isolated here
because it's harder (due to how we do the checksum) and they cannot
collide unless emulation is used and several calls to make are made at
the same time.
2021-01-12 00:00:00 +01:00
M2libc@a7e67ac731 Updated M2libc 2021-01-10 18:29:28 -05:00
docs aarch64: libc 2020-02-01 21:23:49 +01:00
functions First generation implemention of typedef 2021-01-02 22:00:02 -05:00
test tests: support for make -j 2021-01-12 00:00:00 +01:00
.gitignore Adding support for hardware native and removed unneeded lines in .gitignore 2020-01-31 16:12:34 -05:00
.gitmodules Starting to prepare for the use of the M2libc standard 2021-01-10 10:02:58 -05:00
CHANGELOG.org Preparing for next release 2020-11-15 20:46:26 -05:00
HACKING aarch64: do not generate a wasteful stack anymore 2020-02-08 00:16:54 +01:00
INSTALL Fixing of ommissions provided by akkartik 2018-08-31 16:11:00 -04:00
LICENSE Initial commit 2017-11-05 09:01:20 -05:00
README.md Removed obsolete reference to bootstrap directory 2020-11-20 05:34:11 -05:00
cc-minimal.c Close files that were fopen:ed 2020-12-21 16:57:17 +01:00
cc.c Implement --bootstrap-mode for preprocessor 2021-01-09 17:38:50 +00:00
cc.h First generation implemention of typedef 2021-01-02 22:00:02 -05:00
cc_core.c Add support for global char foo[12]; definitions 2021-01-10 23:01:08 +00:00
cc_globals.c Add a preprocessor-only mode 2021-01-05 22:53:04 +00:00
cc_globals.h Add a preprocessor-only mode 2021-01-05 22:53:04 +00:00
cc_macro.c Implement simple macro expansion 2021-01-09 17:39:48 +00:00
cc_reader.c Implement --bootstrap-mode for preprocessor 2021-01-09 17:38:50 +00:00
cc_strings.c First generation implemention of typedef 2021-01-02 22:00:02 -05:00
cc_types.c First generation implemention of typedef 2021-01-02 22:00:02 -05:00
gcc_req.h Harmonized License headers and added missing license headers 2018-10-17 19:27:06 -04:00
known_issues.org expand the known issues list 2020-12-24 14:41:14 -05:00
makefile tests: support for make -j 2021-01-12 00:00:00 +01:00
sha256.sh Update ELF headers and sha256 function to better support FreeBSD 2020-10-16 12:00:42 -04:00

README.md

M2-Planet

The PLAtform NEutral Transpiler, when combined with mescc-tools; allows one to compile a subset of the C language into working binaries with introspective steps inbetween.

A lovely set of examples of M2-Planet programs are in tests but the most surprising part of all M2-Planet can self-host M2-Planet.

Further more M2-Planet is cross-platform and self-hosting across platforms with fully deterministic builds enabling perfect reproducibility.