Commit Graph

42958 Commits

Author SHA1 Message Date
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
Sorawee Porncharoenwase
173fecdff4 Point to the release branch for other workflows 2020-07-20 15:23:24 -04:00
deeglaze
ef2132ced3 Fix some typos in expander comments 2020-07-20 10:38:00 -06:00
Paulo Matos
5daba1fbb1
If CI is running on release branch, use Chez release (#3303) 2020-07-20 16:57:45 +02:00
Paulo Matos
86c56fbc46 Initial workflow for the ARM64 runner (#25)
Introduces a workflow for an ARM64 self-hosted runner.
original commit: bd5ae74834108079a485c5f3e78a7eb73fd4bcd1
2020-07-20 16:22:50 +02:00
xxyzz
f477ed289c fix broken build guide link 2020-07-20 09:02:28 -04:00
Paulo Matos
fb3dd84ac9 Define USER to be root
Although we start with user root, the image does not define the USER
env variable to root, which some Chez tests expect.
2020-07-20 09:20:10 +02:00
sorawee
7c903871bd
Fix unchecked struct with custom constructor (#3301)
Fix a bug introduced in #3267

Related to: #3300

Sounds good to me!
2020-07-18 16:32:58 -07:00
Matthew Flatt
39b37dd892 repair inconsistencies with simplify-path
CS didn't always return a complete path when simplifying in
use-filesystem mode. On Windows, CS and BC were inconsistent with each
other and the Unix behavior.
2020-07-17 05:50:16 -06:00
Matthew Flatt
6e3c111728 repairs for build-path on \\?\RED\ paths
A `\\?\RED\` path is Racket- and Windows-specific, and it's an extreme
corner case: a drive-relative absolute path that include elements that
must eb specially esacped. BC's `build-path` incorrectly allowed
`\\?\RED\` to extend an absolute path. CS's `build-path` incorrctly
allowed various absolute-path extensions, including `\\?\RED\` paths.
The documentation was slightly off.
2020-07-17 05:50:16 -06:00
Matthew Flatt
7709287e03 cs: fix split-path on a \-less Windows drive root 2020-07-17 05:50:16 -06:00
Matthew Flatt
6805145e10 cs: protect special filenames from directory-list
For example, return `\\?\REL\\aux` instead of `aux`.
2020-07-17 05:50:16 -06:00
Matthew Flatt
9867d11d68 cs: fix resolve-path to just cleanse when there's no link
Don't convert thet path to absolute, and don't normalize separators on
Windows.

Also, fill in `current-drive`.
2020-07-17 05:50:16 -06:00
Sorawee Porncharoenwase
0f49bc1079 Minor change to the issue template 2020-07-16 20:55:53 -04:00
Matthew Flatt
c18dcd72c7 rktio: fix (consistent) typo in variable name 2020-07-16 07:07:12 -06:00
Matthew Flatt
d2f8c83368 add file-or-directory-type
Since file links and directory links on Windows are disjoint, and the
difference is relevant for operations such as deleting a file,
`link-exists?` is not enough information. Add `file-or-directory-type`
to provide more information and also avoid separate calls to
`file-exists?`, `directory-exists?`, etc.

The `delete-directory/files` function now uses `file-or-directory-type`
so that it will work right with Windows directory links.

Relevant to #3288
2020-07-16 06:53:30 -06:00
Matthew Flatt
1a7c898ea2 windows: allow symlink creation when developer mode is enabled
Relevant to #3288
2020-07-15 16:57:35 -06:00
Matthew Flatt
c8c7fd7043 rktio: avoid over-large read or write request 2020-07-15 16:57:32 -06:00