racket/mats
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
..
3.ms fix missing continuation call in cp-push-mvrs 2020-01-20 09:27:45 -07:00
4.ms GC marking (non-copying) mode 2020-04-22 07:10:02 -06:00
5_1.ms change eqv? to recognize +nan.0s as equivalent 2019-01-17 09:05:13 -07:00
5_2.ms add a better test for list-assuming-immutable? 2020-04-25 17:20:41 -06:00
5_3.ms Merge github.com:cisco/ChezScheme 2020-02-22 15:18:47 -07:00
5_4.ms Merge github.com:cisco/ChezScheme 2019-02-17 18:22:55 -07:00
5_5.ms add string-append-immutable 2019-12-17 19:29:10 -07:00
5_6.ms make a test portable 2020-01-20 15:00:56 -07:00
5_7.ms make strings within symbols always immutable 2019-12-16 17:11:49 -07:00
5_8.ms add box-cas! and vector-cas! 2018-07-16 07:51:32 -06:00
6.ms add "externals" fasl support, allow non-strings in sfd 2020-07-14 20:22:59 -06:00
7.ms add pb (portable bytecode) backend 2020-07-24 13:13:46 -06:00
8.ms add "externals" fasl support, allow non-strings in sfd 2020-07-14 20:22:59 -06:00
bytevector.ms add pb (portable bytecode) backend 2020-07-24 13:13:46 -06:00
cat_flush.c changed copyright year to 2017 2017-04-06 11:41:33 -04:00
cfl.ms changed copyright year to 2017 2017-04-06 11:41:33 -04:00
cp0.ms keep single-argument unsafe fl+ and fl* as an unboxing hint 2020-06-14 10:32:30 -06:00
cptypes.ms cptypes: fix reduction of $value in ignored expressions 2020-04-01 18:59:22 -03:00
date.ms fix bug in date->time-utc caused by incorrect use of difftime in Windows 2017-12-29 16:48:30 -05:00
enum.ms enum-set-indexer procedure now checks for a symbol, changed "isn't" to "is not" for consistency 2017-05-05 15:22:46 -04:00
examples.ms fixed gather-filedata's sort of profile entries. for any two 2017-10-30 21:01:43 -04:00
exceptions.ms changed copyright year to 2017 2017-04-06 11:41:33 -04:00
fl.ms improve local-variable unboxing 2020-06-16 12:48:21 -06:00
foreign.ms add pb (portable bytecode) backend 2020-07-24 13:13:46 -06:00
foreign1.c changed copyright year to 2017 2017-04-06 11:41:33 -04:00
foreign2.c fix foreign-callable handling of bytevector arguments 2020-06-06 19:44:40 -06:00
foreign3.c Add __thread foreign-call convention 2018-03-14 17:20:33 -06:00
foreign4.c x86_64: fix foreign-procedure & results that are not multiples of a word 2018-06-15 13:59:34 -04:00
format.ms changed copyright year to 2017 2017-04-06 11:41:33 -04:00
freq.in initial upload of open-source release 2016-04-26 10:04:54 -04:00
freq.out initial upload of open-source release 2016-04-26 10:04:54 -04:00
ftype.h changed copyright year to 2017 2017-04-06 11:41:33 -04:00
ftype.ms add pb (portable bytecode) backend 2020-07-24 13:13:46 -06:00
fx.ms fix cp0 reduction of fx[+-*]/carry and their signatures 2017-10-09 12:09:50 -03:00
hash.ms repair a hashtable test 2020-06-07 06:25:14 -06:00
ht.ss changed copyright year to 2017 2017-04-06 11:41:33 -04:00
ieee.ms unbox local floating-point arithmetic 2020-05-31 17:08:38 -06:00
io.ms add pb (portable bytecode) backend 2020-07-24 13:13:46 -06:00
m4test.in changed copyright year to 2017 2017-04-06 11:41:33 -04:00
m4test.out initial upload of open-source release 2016-04-26 10:04:54 -04:00
mat.ss Merge github.com:cisco/ChezScheme 2020-02-22 15:18:47 -07: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 GC marking (non-copying) mode 2020-04-22 07:10:02 -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 support struct args to and results from foreign procedures 2018-03-12 21:01:47 -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
misc.ms add pb (portable bytecode) backend 2020-07-24 13:13:46 -06:00
oop.ms changed copyright year to 2017 2017-04-06 11:41:33 -04:00
oop.ss initial upload of open-source release 2016-04-26 10:04:54 -04:00
patch-compile-2-f-f-t Add date-dst? and date-zone-name procedures 2017-06-08 11:21:39 -04:00
patch-compile-2-f-t-f Add date-dst? and date-zone-name procedures 2017-06-08 11:21:39 -04:00
patch-compile-2-f-t-t Add date-dst? and date-zone-name procedures 2017-06-08 11:21:39 -04:00
patch-compile-2-t-f-f print positive flonum exponents with "+" 2019-06-21 12:19:59 -06:00
patch-compile-2-t-f-t Add date-dst? and date-zone-name procedures 2017-06-08 11:21:39 -04:00
patch-compile-2-t-t-f Add date-dst? and date-zone-name procedures 2017-06-08 11:21:39 -04:00
patch-compile-2-t-t-t Add date-dst? and date-zone-name procedures 2017-06-08 11:21:39 -04:00
patch-compile-3-f-f-t initial upload of open-source release 2016-04-26 10:04:54 -04:00
patch-compile-3-f-t-f initial upload of open-source release 2016-04-26 10:04:54 -04:00
patch-compile-3-f-t-t Add date-dst? and date-zone-name procedures 2017-06-08 11:21:39 -04:00
patch-compile-3-t-f-f initial upload of open-source release 2016-04-26 10:04:54 -04:00
patch-compile-3-t-f-t initial upload of open-source release 2016-04-26 10:04:54 -04:00
patch-compile-3-t-t-f initial upload of open-source release 2016-04-26 10:04:54 -04:00
patch-compile-3-t-t-t Add date-dst? and date-zone-name procedures 2017-06-08 11:21:39 -04:00
patch-compile-0-f-f-t support for internal fasl compression to allow seeking past compile-time info at run time and run-time info at compile time 2020-03-04 16:53:35 -05:00
patch-compile-0-f-t-f test corrections 2020-06-03 15:27:07 -06:00
patch-compile-0-f-t-t Add date-dst? and date-zone-name procedures 2017-06-08 11:21:39 -04:00
patch-compile-0-t-f-f GC marking (non-copying) mode 2020-04-22 07:10:02 -06:00
patch-compile-0-t-f-t support for internal fasl compression to allow seeking past compile-time info at run time and run-time info at compile time 2020-03-04 16:53:35 -05:00
patch-compile-0-t-t-f support for internal fasl compression to allow seeking past compile-time info at run time and run-time info at compile time 2020-03-04 16:53:35 -05:00
patch-compile-0-t-t-t Add date-dst? and date-zone-name procedures 2017-06-08 11:21:39 -04:00
patch-interpret-2-f-f-f Add date-dst? and date-zone-name procedures 2017-06-08 11:21:39 -04:00
patch-interpret-2-f-t-f Add date-dst? and date-zone-name procedures 2017-06-08 11:21:39 -04:00
patch-interpret-2-t-f-f Add date-dst? and date-zone-name procedures 2017-06-08 11:21:39 -04:00
patch-interpret-2-t-t-f Add date-dst? and date-zone-name procedures 2017-06-08 11:21:39 -04:00
patch-interpret-3-f-f-f add call-in-continuation 2020-03-12 04:48:39 -06:00
patch-interpret-3-f-t-f add call-in-continuation 2020-03-12 04:48:39 -06:00
patch-interpret-3-t-f-f support for internal fasl compression to allow seeking past compile-time info at run time and run-time info at compile time 2020-03-04 16:53:35 -05:00
patch-interpret-3-t-t-f support for internal fasl compression to allow seeking past compile-time info at run time and run-time info at compile time 2020-03-04 16:53:35 -05:00
patch-interpret-0-f-f-f add call-in-continuation 2020-03-12 04:48:39 -06:00
patch-interpret-0-f-t-f test corrections 2020-06-03 15:27:07 -06:00
patch-interpret-0-t-f-f support for internal fasl compression to allow seeking past compile-time info at run time and run-time info at compile time 2020-03-04 16:53:35 -05:00
patch-interpret-0-t-t-f support for internal fasl compression to allow seeking past compile-time info at run time and run-time info at compile time 2020-03-04 16:53:35 -05:00
primvars.ms fix portability of some tests 2020-05-15 14:41:28 -06:00
profile.ms local-eval-hook now calls eval rather than interpret when profiling 2019-10-08 18:22:37 -07:00
record.ms cptypes: rewrite implementation of primref->argument-predicate 2020-03-07 08:47:37 -03:00
root-experr-compile-2-f-f-f sync with https://github.com/cisco/ChezScheme on fasl compression 2020-07-12 19:07:05 -06:00
root-experr-compile-3-f-f-f Various enhancements and fixes highlighted by profiling performance 2019-09-21 15:37:29 -07:00
root-experr-compile-0-f-f-f add pb (portable bytecode) backend 2020-07-24 13:13:46 -06:00
thread.ms sync with https://github.com/cisco/ChezScheme on fasl compression 2020-07-12 19:07:05 -06:00
unix.ms library-manager, numeric, and bytevector-compres improvements 2020-02-21 13:48:47 -08:00
vs.bat support Windows build on Bash/WSL 2017-05-02 08:25:09 -06:00
windows.ms changed copyright year to 2017 2017-04-06 11:41:33 -04:00