Commit Graph

42125 Commits

Author SHA1 Message Date
Matthew Flatt
ad3baffc8d fix gracketcgc install 2020-08-01 08:12:22 -06:00
Matthew Flatt
719cd66835 Chez Scheme makefiles: fix .bootquick when source has boot files 2020-08-01 07:52:04 -06:00
Matthew Flatt
6c59a722a1 makefiles: fix install of GRacket BC 2020-08-01 07:05:30 -06:00
Matthew Flatt
b0bd5061d5 Chez Scheme makefile: create correct directory on .bootquick 2020-08-01 06:17:22 -06:00
Matthew Flatt
2ae4ee4163 makefiles: build Chez Scheme in the "build" area
Instead of leaving Chez Scheme build artifacts in in the ChezScheme
source directory, keep them in a "build" directory like everything
else.
2020-07-31 16:33:07 -06:00
Matthew Flatt
c1cd9c499c adjust Chez Scheme configure script to work in any directory
Adjust `configure` and makefiles so that `configure` can be run in an
directory, not just the source directory. Initial boot files are found
at either the current directory or the source directory.

Also, add support for `-B` and `--Boot` flags to accept a path that is
resolved relative to the current directory, instead of relative to the
installation.
2020-07-31 16:32:19 -06:00
Matthew Flatt
fc5f846693 cs: fix Mac OS framework versioning 2020-07-31 12:47:07 -06:00
Matthew Flatt
6886dc2143 make bc and cs configure scripts more symmetric
The `--enable-cs` and `--enable-csdefault` flags now enabled just the
CS build, as long as pb boot files are present or
`--enable-racket=...` is supplied.
2020-07-31 11:08:42 -06:00
Matthew Flatt
ed415a3795 move "racket/src/racket" -> "racket/src/bc"
Also, move "racket/src/gracket" and "racket/src/foreign" to
subdirectories of "racket/src/bc".
2020-07-31 06:40:26 -06:00
Paulo Matos
e01fd1a5a7 Revert "Speed up solo chez testing (#3322)"
This reverts commit 8e2c6c966a.

There is a test failure on i386 and an out of memory problem on
arm64, so I am reverting this until I get those fixed.
2020-07-31 06:28:02 +02:00
Matthew Flatt
8ef22d6334 src/configure: unbreak main-target setup 2020-07-30 20:20:45 -06:00
Matthew Flatt
cde197125c support Racket BC build and installation with a "bc" suffix 2020-07-30 20:14:34 -06:00
Paulo Matos
8e2c6c966a
Speed up solo chez testing (#3322)
This allows multiple test configurations to run in parallel, therefore
taking advantages of multiple processors.
2020-07-30 21:56:28 +02:00
Matthew Flatt
1d9db6eec3 makefile: make bc and cs rules more symmetic
Currently, `make` is the same as `make bc`, but the idea is that
`make` can become the same as `make cs` when some other pieces are in
place.

The source of the top-level makefile is now ".makefile", and it's
turned into "Makefile" using "racket/src/makemake.rkt". The
transformation makes non-GNU `make` variants and `nmake` act like GNU
make to propagate variables, which makes abstraction through targets
plus variables (admitedly an abuse of `make`) more reliable and
consistent.

Why abuse `make` this way? Because `make` variants and `nmake` are
similar enough that to constitute a portable scripting language, and
one that conveniently provides a large number of entry points.
2020-07-30 13:29:02 -06:00
Paulo Matos
a4b6ac701e
Solo Chez build/test workflow (#3316) 2020-07-30 13:19:49 +02:00
Matthew Flatt
7d7b8fb1e9 makefile: fix cs targets to not break non-cs targets 2020-07-29 13:37:39 -06:00
Matthew Flatt
8a0bb78ab1 unbreak windows CGC build 2020-07-29 10:06:31 -06:00
Matthew Flatt
0d279ca06d prune Boehm GC references from the MSVC projects 2020-07-29 09:25:22 -06:00
Matthew Flatt
ea096e1989 move cfg-racket to cfg-bc 2020-07-29 08:58:42 -06:00
Matthew Flatt
7c256a051d replace "traditional Racket" references with "Racket BC" 2020-07-29 08:27:58 -06:00
Matthew Flatt
e42dfffa3a update unixstyle-install for a source distribution 2020-07-29 06:56:24 -06:00
Matthew Flatt
af651ca435 Merge branch 'master' of github.com:racket/racket 2020-07-29 05:20:13 -06:00
Paulo Matos
a20f55cf47 Remove Boehm GC from Racket
Boehm GC has not been regularly tested or even used - therefore
removal avoid bit-rot.
2020-07-28 13:23:17 -06:00
Matthew Flatt
62a3f6ec91 change CS build to use a subtree Chez Scheme and a bootstrapped pb
Also, schemified "thread", "io", "regexp", "schemify", and "expander"
layers are checked in. Overall, building Racket CS no longer requires
first building Racket BC.
2020-07-28 12:56:42 -06:00
Matthew Flatt
c6e0c54a4f repair for pb on FreeBSD 2020-07-28 12:54:43 -06:00
Paulo Matos
139c1de00f Call recursive make through $(MAKE)
This fixes the build under FreeBSD 12.1 where the system `make` is not compatible with the Chez makefiles and gmake is needed instead.
2020-07-28 12:54:42 -06:00
Matthew Flatt
89831c01f6 bc: fix optimizer bug
Fix inlining problem when inlining has been explicitly disabled.

Closes #3309
2020-07-28 12:43:39 -06:00
Dionna Amalie Glaze
ec0ec8e970
s/comparing with with/comparing it with/ (#3314)
Duplicated word in documentation.
2020-07-28 09:03:06 +02:00
Matthew Flatt
d44fcbf041 import Chez Scheme sources as racket/src/ChezScheme
The imported sources are from the `racket/ChezScheme` repository,
which branched from `cisco/ChezScheme`. The commit history is
preserved, but all of the commit IDs have shifted, because bootfiles
have been pruned from the history.
2020-07-27 07:41:56 -06:00
Jasper Pilgrim
303a941915
Fix typos (#3313)
doublequotes -> double quotes
doublequote -> double quote
2020-07-27 15:02:58 +02:00
Matthew Flatt
c2e4bba728 configure: remove git pull, improve --pb support
original commit: e6d6783dddb25339fbf613e70e361a7f4d18cd94
2020-07-26 16:02:11 -06:00
Matthew Flatt
c90eea4850 configure: avoid touching "config.h" if no change
original commit: a4a9630e90b82113bcfd448d90efd555ffdba636
2020-07-26 11:43:56 -06:00
Matthew Flatt
d04c53d6e1 fix swapped integer ref and set! for some platforms
original commit: 35c1813738b8e7de9938021a7e7324cf8c785c30
2020-07-26 07:59:04 -06:00
Matthew Flatt
1defddb778 fix $object-ref with unsigned-64 on 32-bit platforms
original commit: e17cba92d8bea4c14f80b7f1bc848675264de609
2020-07-26 06:30:52 -06:00
Matthew Flatt
3d5d6361c0 unbreak "record.ms"
Support nested `include`s.

original commit: 2ace5779126179a0624010d338c3e7b3a91896f4
2020-07-25 18:30:06 -06:00
Matthew Flatt
38cf0fba97 adjust GitHub workflow to use "rktboot/main.rkt"
original commit: 393a935e247c3bb7a3cba9f4aeec93906e3b92c5
2020-07-25 17:40:02 -06:00
Matthew Flatt
5022107489 cs windows: fix build
Nested `includes` for ".def" files need compile before load.
2020-07-25 17:23:36 -06:00
Matthew Flatt
0659cc333b unbreak a6nt configuration
original commit: 5be41b6f56a10ad3fbb9bfdbc8d1fe23fdfca957
2020-07-25 16:50:36 -06:00
Matthew Flatt
efc95c2e19 remove "cs-bootstrap" package
The "cs-bootstrap" package is now in the `racket/ChezScheme` repo,
because it needs to track the Chez Scheme implementation instead of
the Racket implementation.
2020-07-25 16:32:05 -06:00
Matthew Flatt
aa9bba9328 add Racket-based bootstrap support
Move "racket/src/cs/bootstrap" from the Racket source repository to
this one, because the bootstrapping implementation needs to track the
Chez Scheme source much more closely than the Racket implementation.
Currently, any Racket v7.1 or later works.

Also update "README.md" and "BUILDING" to get all the information
consistent and in sync with revised build options.

original commit: a9e6e99ea414b4625fe9705e4f3cfd62bbf38ae2
2020-07-25 14:10:25 -06:00
Matthew Flatt
29bdb304cf reduce duplication of OS & architecture info in "s/*.def"
For example, if the number of floating-point registers in "x86_64.ss"
changes, now only one ".def" file has to change instead of 14 ".def"
files.

original commit: c79524cc3eb516d9bee1708c06b80e3688fdd2ff
2020-07-25 12:41:09 -06:00
Matthew Flatt
914db0b549 cs-bootstrap: support nested include and define-constant-default 2020-07-25 12:40:21 -06:00
Matthew Flatt
d6c5abe542 avoid compiler warnings with MinGW
Makefile and configure improvements turn on more checking with MinGW,
so fix the resulting warnings-as-errors.

original commit: df2ff94b2b878924b5ca925c48253d147f668e79
2020-07-24 18:38:04 -06:00
Matthew Flatt
a69111c1bd sync with updated Chez Scheme 2020-07-24 15:43:45 -06:00
Matthew Flatt
56049bcd47 update and expand IMPLEMENTATION.md
Incorporate text and explanation from Andy Keep at

  https://groups.google.com/d/msg/chez-scheme/dz6nn-8KDQE/FUaPu695BAAJ

original commit: 5b8a00fc3ef9b892de9af1ae05352fa204e72270
2020-07-24 14:30:43 -06:00
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
Matthew Flatt
e9d01f1e4d reduce copied code among back ends
All back ends had essentially the same `define-instruction`, just with
slightly more functionality, checking, or abstraction each case. The
newly shared version better sorts out some inherent run-time checks
versus safe-mode assertions related to fp and non-fp arguments.

original commit: c70836fa04eb33442fd3ca273ce9ca08ce877fec
2020-07-24 12:51:23 -06:00
Matthew Flatt
574e8e32e2 unbreak non-xform 3m embedding setjmp
Commit 023681947c fixed a problem cooperating with xform, but the
repair assumes xform. The "embed-in-c.rkt" test, for example, uses 3m
without xform (and instead uses macros like `MZ_GC_DECL_REG`.
2020-07-24 10:47:33 -06:00
Matthew Flatt
93a7b5d29c more detail in racket/HISTORY.txt
It's not clear that adding to "HISTORY.txt" is all that useful. But as
long as we do, at least include milestones that were signficant enough
to mention in release announcements.
2020-07-24 08:59:19 -06:00
Paulo Matos
7e3417aa8c Move Implementation file to Markdown
Includes repairs for typos
original commit: b4a8eaffa4173ccd29a49d0e6d4cd0f3ad9386df
2020-07-24 07:28:44 -06:00