racket/c
Matthew Flatt f78dc5724e add pb (portable bytecode) backend
This commit does four things:

 * Adds "pb.ss" and "pb.c", which implement a portable bytecode
   backend and interpreter that is intended for bootstrapping. A
   single set of pb bootfiles can support bootstrapping on all
   platforms --- as long as the C compiler supports a 64-bit integer
   type. The pb machine supports foreign calls for only a small set of
   recognized prototypes, and it does not support foriegn callables.
   Use `./configure --pb` to build the pb variant.

 * Changes the kernel's casts between `ptr` and `void*` types. In a pb
   build, the `ptr` type can be a 64-bit integer type while `void*` is
   a 32-bit pointer type, so casts must go through an intermediate
   integer type.

 * Adjusts the compiler to accomodate run-time-determined endianness.
   Making the compiler agnostic to word size is not practical, but
   only a few pieces depend on the target machine's endianness, and
   those can generally be deferred to a run-time choice of byte-based
   operations. The one exception is that ftype bit fields are not
   allowed unless accompanied by an explicit endianness declaration.

 * Start reducing duplication among platform-specific makefiles. For
   example, `Mf-ta6osx` chains to `Mf-a6osx` to avoid repeating most
   of it. A lot more can be done here.

original commit: 97533fa9d8b8400b0dc1a890768c7d30c91257e0
2020-07-24 13:13:46 -06:00
..
alloc.c add pb (portable bytecode) backend 2020-07-24 13:13:46 -06:00
arm32le.c changed copyright year to 2017 2017-04-06 11:41:33 -04:00
build.bat adjust build for BSDs, MinGW cross-compile, and more configuration 2019-07-06 13:16:57 -06:00
compress-io.c add pb (portable bytecode) backend 2020-07-24 13:13:46 -06:00
compress-io.h compress-level parameter, improvement in lz4 compression, and various other related improvements 2019-04-18 05:47:19 -07:00
cs.ico initial upload of open-source release 2016-04-26 10:04:54 -04:00
expeditor.c sync with https://github.com/cisco/ChezScheme on fasl compression 2020-07-12 19:07:05 -06:00
externs.h add pb (portable bytecode) backend 2020-07-24 13:13:46 -06:00
fasl.c add pb (portable bytecode) backend 2020-07-24 13:13:46 -06:00
flushcache.c changed copyright year to 2017 2017-04-06 11:41:33 -04:00
foreign.c add pb (portable bytecode) backend 2020-07-24 13:13:46 -06:00
gc-ocd.c changed copyright year to 2017 2017-04-06 11:41:33 -04:00
gc-oce.c convert GC to "mkgc.ss" implementation 2020-04-04 10:21:16 -06:00
gc.c add pb (portable bytecode) backend 2020-07-24 13:13:46 -06:00
gcwrapper.c add pb (portable bytecode) backend 2020-07-24 13:13:46 -06:00
globals.h GC marking (non-copying) mode 2020-04-22 07:10:02 -06:00
i3le.c changed copyright year to 2017 2017-04-06 11:41:33 -04:00
intern.c add pb (portable bytecode) backend 2020-07-24 13:13:46 -06:00
io.c Improved Unicode support for command-line arguments, environment variables, the C interface and error messages, and the Windows registry, DLL loading, and process creation 2018-06-14 14:24:15 -04:00
itest.c changed copyright year to 2017 2017-04-06 11:41:33 -04:00
main.c adjust build for BSDs, MinGW cross-compile, and more configuration 2019-07-06 13:16:57 -06:00
Makefile.a6nt add pseudo-random generator API 2019-10-07 10:58:39 -06:00
Makefile.i3nt add pseudo-random generator API 2019-10-07 10:58:39 -06:00
Makefile.ta6nt add pseudo-random generator API 2019-10-07 10:58:39 -06:00
Makefile.ti3nt add pseudo-random generator API 2019-10-07 10:58:39 -06:00
Mf-a6fb add pb (portable bytecode) backend 2020-07-24 13:13:46 -06:00
Mf-a6le add pb (portable bytecode) backend 2020-07-24 13:13:46 -06:00
Mf-a6nb add pb (portable bytecode) backend 2020-07-24 13:13:46 -06:00
Mf-a6nt add pb (portable bytecode) backend 2020-07-24 13:13:46 -06:00
Mf-a6ob add pb (portable bytecode) backend 2020-07-24 13:13:46 -06:00
Mf-a6osx add pb (portable bytecode) backend 2020-07-24 13:13:46 -06:00
Mf-a6s2 add pb (portable bytecode) backend 2020-07-24 13:13:46 -06:00
Mf-arm32le add pb (portable bytecode) backend 2020-07-24 13:13:46 -06:00
Mf-arm64le add pb (portable bytecode) backend 2020-07-24 13:13:46 -06:00
Mf-base convert GC to "mkgc.ss" implementation 2020-04-04 10:21:16 -06:00
Mf-i3fb add pb (portable bytecode) backend 2020-07-24 13:13:46 -06:00
Mf-i3le add pb (portable bytecode) backend 2020-07-24 13:13:46 -06:00
Mf-i3nb add pb (portable bytecode) backend 2020-07-24 13:13:46 -06:00
Mf-i3nt add pb (portable bytecode) backend 2020-07-24 13:13:46 -06:00
Mf-i3ob add pb (portable bytecode) backend 2020-07-24 13:13:46 -06:00
Mf-i3osx add pb (portable bytecode) backend 2020-07-24 13:13:46 -06:00
Mf-i3qnx add pb (portable bytecode) backend 2020-07-24 13:13:46 -06:00
Mf-i3s2 add pb (portable bytecode) backend 2020-07-24 13:13:46 -06:00
Mf-pb add pb (portable bytecode) backend 2020-07-24 13:13:46 -06:00
Mf-ppc32le add pb (portable bytecode) backend 2020-07-24 13:13:46 -06:00
Mf-ta6fb add pb (portable bytecode) backend 2020-07-24 13:13:46 -06:00
Mf-ta6le add pb (portable bytecode) backend 2020-07-24 13:13:46 -06:00
Mf-ta6nb add pb (portable bytecode) backend 2020-07-24 13:13:46 -06:00
Mf-ta6nt add pb (portable bytecode) backend 2020-07-24 13:13:46 -06:00
Mf-ta6ob add pb (portable bytecode) backend 2020-07-24 13:13:46 -06:00
Mf-ta6osx add pb (portable bytecode) backend 2020-07-24 13:13:46 -06:00
Mf-ta6s2 add pb (portable bytecode) backend 2020-07-24 13:13:46 -06:00
Mf-tarm32le add pb (portable bytecode) backend 2020-07-24 13:13:46 -06:00
Mf-tarm64le add pb (portable bytecode) backend 2020-07-24 13:13:46 -06:00
Mf-ti3fb add pb (portable bytecode) backend 2020-07-24 13:13:46 -06:00
Mf-ti3le add pb (portable bytecode) backend 2020-07-24 13:13:46 -06:00
Mf-ti3nb add pb (portable bytecode) backend 2020-07-24 13:13:46 -06:00
Mf-ti3nt add pb (portable bytecode) backend 2020-07-24 13:13:46 -06:00
Mf-ti3ob add pb (portable bytecode) backend 2020-07-24 13:13:46 -06:00
Mf-ti3osx add pb (portable bytecode) backend 2020-07-24 13:13:46 -06:00
Mf-ti3s2 add pb (portable bytecode) backend 2020-07-24 13:13:46 -06:00
Mf-tppc32le add pb (portable bytecode) backend 2020-07-24 13:13:46 -06:00
new-io.c add pb (portable bytecode) backend 2020-07-24 13:13:46 -06:00
nocurses.h adjust build for BSDs, MinGW cross-compile, and more configuration 2019-07-06 13:16:57 -06:00
number.c add pb (portable bytecode) backend 2020-07-24 13:13:46 -06:00
pb.c add pb (portable bytecode) backend 2020-07-24 13:13:46 -06:00
popcount.h add stencil vectors and fxpopcount 2020-01-06 05:34:28 -07:00
ppc32.c ppc32: fix icache flush 2020-06-22 17:35:47 -06:00
ppc32le.c changed copyright year to 2017 2017-04-06 11:41:33 -04:00
prim.c add pb (portable bytecode) backend 2020-07-24 13:13:46 -06:00
prim5.c add pb (portable bytecode) backend 2020-07-24 13:13:46 -06:00
print.c Merge github.com:cisco/ChezScheme 2020-02-22 15:18:47 -07:00
random.c add pb (portable bytecode) backend 2020-07-24 13:13:46 -06:00
scheme.c add pb (portable bytecode) backend 2020-07-24 13:13:46 -06:00
scheme.exe.manifest - Cygwin is now used on Windows, updated mats, eliminated unused killme 2016-06-10 10:07:07 -04:00
scheme.rc Now opening 9.5.3 release. Intent is to formally release 9.5.2 2019-03-21 15:07:39 -07:00
schlib.c add pb (portable bytecode) backend 2020-07-24 13:13:46 -06:00
schsig.c add pb (portable bytecode) backend 2020-07-24 13:13:46 -06:00
segment.c add pb (portable bytecode) backend 2020-07-24 13:13:46 -06:00
segment.h add pb (portable bytecode) backend 2020-07-24 13:13:46 -06:00
sort.h changed copyright year to 2017 2017-04-06 11:41:33 -04:00
statics.c adjust build for BSDs, MinGW cross-compile, and more configuration 2019-07-06 13:16:57 -06:00
stats.c ignore result of mktime 2019-11-23 19:54:30 -05:00
symbol.c changed copyright year to 2017 2017-04-06 11:41:33 -04:00
system.h adjust build for BSDs, MinGW cross-compile, and more configuration 2019-07-06 13:16:57 -06:00
thread.c add pb (portable bytecode) backend 2020-07-24 13:13:46 -06:00
thread.h changed copyright year to 2017 2017-04-06 11:41:33 -04:00
types.h add pb (portable bytecode) backend 2020-07-24 13:13:46 -06:00
version.h add pb (portable bytecode) backend 2020-07-24 13:13:46 -06:00
vfasl.c add pb (portable bytecode) backend 2020-07-24 13:13:46 -06:00
vs.bat Added support for building chez with VS2019. (#435) 2019-06-04 16:37:57 -04:00
windows.c simplification 2020-03-04 16:23:47 -05:00