Commit Graph

43058 Commits

Author SHA1 Message Date
Matthew Flatt
b04b0fe3e1 file/[un]tar: add support for [un]packing without using the filesystem
Closes #2549
2021-05-06 18:56:58 -06:00
Matthew Flatt
486ab09587 struct-impersonator: make method-style prop:procedure receive impersonated
When a struct is called as a procedure and the struct is
impersonators, make a method-style `prop:procedure` receive the
impersonated structure as its argument. This change makes a
method-style `prop:procedure` more consistent with a field-index
`prop:procedure. The old behavior, meanwhile, seems to create an
unsoundness in Typed Racket.

Closes #2574
2021-05-06 16:27:35 -06:00
Matthew Flatt
30426fff9d Chec Scheme: better error when W+X page allocation fails
Closes #3819
2021-05-06 10:59:55 -06:00
Matthew Flatt
e368f9e22b Chez Scheme: special case for / on 1 or -1 and an exact rational
Related to #3816, but Sam already has better changes on the way.
2021-05-06 09:29:10 -06:00
Matthew Flatt
1ad3b05213 cs: fix ->fl and fl->exact-integer to match intended constraints
Fix `->fl` to work only on exact integers, and fix `fl->exact-integer`
to work only on integer flonums.
2021-05-06 07:26:48 -06:00
Matthew Flatt
180983fb4b cs: fix encuoraged and cross-module inlining of set!
When an inlined `set!` mutates a variable that's bound in the inlined
function, the `set!` target was not updated to refer to the inlined
binding.

Closes #3817
2021-05-06 07:02:22 -06:00
Bogdan Popa
849d66adaa compiler/embed: strip submod from d-r-p paths
Closes #2536
2021-05-06 06:17:13 -06:00
Fred Fu
60067d52ad fix the documentation for make-input-port 2021-05-05 20:35:46 -06:00
Matthew Flatt
eea781ce75 update a test for "<line>.<col>" -> "<line>:<col>" 2021-05-05 20:20:04 -06:00
Matthew Flatt
9410a90a8b define-inline: better handling of misapplication
When a function from `define-inline` is applied to the wrong number of
arguments or the wrong keyword arguments, then leave it as a runtime
error (with a compile-time warning) instead of a badly reported
compile-time error.

Closes #3402
2021-05-05 20:20:04 -06:00
Matthew Flatt
808ea5f303 syntax-location->string: "<line>:<col>" instead of "<line>.<col>"
related to #3492
2021-05-05 17:41:28 -06:00
Matthew Flatt
1558e0bde4 pretty-print: fix 'unquote in mpair and vectors
Fix misinterpretation of `'unquote` within an `mcons` or `vector`
construction in expression-printing mode.

Closes #3652
2021-05-05 17:10:35 -06:00
Matthew Flatt
fc955b99f3 quasisyntax: recognize unsyntax in a box
This is a backward-incompatible change, but I think it's unlikely that
any code intentionally uses `unsyntax` or `unsyntax-splicing` within a
syntax-quoted box and expects it to stay literal.

Meanwhile, as @rocketnia noted, the documentation for `quasiquote` was
unclear about the espacing positions for `unquote` and
`unquote-splicing`, so this commit impoves that documentation. It
adjusts the documentation for `quasisyntax` to note that a hash table
value position is not an escape position, unlike for `quasiquote`.
(The lack of an escape position within hash tables is consistent with
`syntax`. That's arguably inconsistent with `quasiquote`, but it seems
simpler to leave that alone, and changing `syntax` just might matter
for existing code.)

Closes #3656
2021-05-05 16:46:37 -06:00
Matthew Flatt
c8d605a8cc doc: clarification on place example
Closes #3784
2021-05-05 12:59:37 -06:00
Matthew Flatt
f5306039cb repair a test 2021-05-05 07:18:16 -06:00
Matthew Flatt
d12f1f55ad x86_64: sign-extend signed integers pass as foreign call arguments
I can't see where the ABI pins this down for x86_64, but the default
compiler on Mac OS seems to have started caring that 1-byte and 2-byte
integer arguments are sign-extended in registers. The previous lack of
sign extension would affect only small-structure arguments.
2021-05-04 19:45:29 -06:00
Matthew Flatt
bee9c46e0d Chez Scheme: repair and update bullyx tests 2021-05-04 17:16:42 -06:00
Matthew Flatt
e899b519e3 Chez Scheme: more documentation how tests work
Also, make some adjustments to "Mf-base" so that plain `make`
generates a summary file as before and so that output files are linked
in a way that lets `make root-experr` and `make patches` find them.
2021-05-04 15:01:50 -06:00
Jamie Taylor
88cb6aae10 run mats configurations in parallel
* refactor mats to allow different configurations to run in parallel.

The {partial,all,bully}x targets now support being run in parallel should
make decide to do so (e.g., via the -j flag)

* fix mats ignoring "rmg" parameter

* Update travis-ci build scripts to use new partialx target and run multiple
jobs in parallel, based on the number of processors available.

* Add a way to only run particular machines in travis-ci by including
a line that starts with "travis:only:" and lists the machine types in the
commit message.
2021-05-04 15:01:50 -06:00
Jarhmander
68d8c8acc2 add alternative (R7RS) spelling of booleans (#563) 2021-05-04 15:01:50 -06:00
Jarhmander
da2a9969ef Mention an up-to-date crt.dll for Windows (#564) 2021-05-04 15:01:50 -06:00
Jack Firth
59100868e0 Improve documentation for hash update functions
Changes the prose explanations of `hash-update` and `hash-update!` to more explicitly describe how the hash table is updated, instead of just deferring to the explanations in `hash-ref` and `hash-set` / `hash-set!`. Additionally, adds example code.
2021-05-04 09:32:32 -04:00
Matthew Flatt
d777cd28d7 fix contract checks for number <-> representation bytes
... especially for CS, but there's also one BC correction.

Reported in tweet by KenHatesSoftwar.
2021-05-03 20:08:15 -06:00
Matthew Flatt
9a65aaf444 makefile: fix pb-fetch after starting with --single-branch mode 2021-05-03 16:42:01 -06:00
Matthew Flatt
9c60382461 info.rkt: allow regexps in compile-omit-paths
Closes #1400
2021-05-03 16:38:37 -06:00
Matthew Flatt
c663d13fab cs: sync schemified
Rebuild schemified files to take advantage of correction for unsafe
`fxlshift` and `fxrshift`.
2021-05-03 10:18:21 -06:00
Matthew Flatt
ef43f26f62 net/base64: speed up encoding and decoding, especially on byte strings
Base64 encoding and decoding are common and simple enough to
specialize for byte strings, where they can be much faster.
2021-05-03 07:47:50 -06:00
Matthew Flatt
d20292b80c cs: fix fx{lr}shift conversion for (#%declare #:unsafe) 2021-05-03 07:33:05 -06:00
Matthew Flatt
9d53990e18 net/base64: faster encode
Make encoding almost twice as fast by treating input chunks of 3 that
turn into output chunks of 4.
2021-05-03 07:33:05 -06:00
Matthew Flatt
7179df6009 configure: improve platform detection and reporting 2021-05-03 07:33:05 -06:00
Bogdan Popa
0c8e3765f2 cs,thread: fix thread-receive-evt retry proc
Fixes #3813
2021-05-03 07:32:53 -06:00
Matthew Flatt
d9c128fe65 add namespace-call-with-registry-lock
Lazy require benefits from using a lock on a namespace registry for
much the same reason as on-demand instantiation of ready modules. Make
lazy require use the lock that's alerady in place for on-demand
instantiation, and expose `namespace-call-with-registry-lock` for
other potential uses.

Thanks to @m4burns for tracking down the problem and its solution.

Related to #3805
2021-05-02 12:10:30 -06:00
Matthew Flatt
406dcc9ff3 Chez Scheme: make pb build accomocate WRITE_XOR_EXECUTE_CODE
Although W^X is useless to pb, allowing it to build with
`-DWRITE_XOR_EXECUTE_CODE` can be helpful.
2021-05-01 09:26:59 -06:00
Matthew Flatt
1f0223fef1 Chez Scheme: repair to W^X mode
Fix single-segment flipping to accomodate write regions that span
segments.
2021-05-01 08:58:47 -06:00
Matthew Flatt
8ea5b58393 cs: add configuration for {Free,Open,Net}BSD on {ARMv6,AArch64,PowerPC}
It's not clear how many of these combinations work right now, but they
should be close, and the intent is that they're supported. I
succcessfully built for FreeBSD on AArch64 and Chez Scheme for NetBSD
on PowerPC32.
2021-05-01 06:57:32 -06:00
Matthew Flatt
c0af3a253b Chez Scheme: fix fence preproceddore conditional for AArch64
The memory-fence macros were not being used on non-Apple AArch64.
2021-04-30 12:22:12 -06:00
Matthew Flatt
b058be9bfc Chez Scheme: clean up "Mf-<unix>" and "<unix>.def"
Replace lots of mostly-duplicated "Mf-<platform>" and "<platform>.def"
files with just a few "Mf-unix" and and "unix.def" files plus
configuration within "configure" and "workarea". Also change
"version.h" to infer more OS details (as was used for pb, anyway).
This change simplifies setting up configurations for different
platforms, and it makes it easier to share among similar
configurations.
2021-04-30 09:08:14 -06:00
Matthew Flatt
744d8d6d25 zo-lib: documentation and a little support for non-BC linklets
Closes #3073
2021-04-29 14:09:54 -06:00
Matthew Flatt
85e2282b66 reference: improve cross referencing on source locations
Closes #2785
2021-04-29 13:09:44 -06:00
Matthew Flatt
0eeb8d26f3 net/url: trim whitespace when getting enviornment variables like http_proxy
For compatibility with other systems, trmi whitespace from environment
variables.

Closes #2663
2021-04-29 11:33:03 -06:00
Matthew Flatt
6f1875c384 bc: fix interaction of prop:object-name and prop:procedure
Document the fact that `prop:object-name` takes precedence for the
`object-name` result, and make printing also use `object-name` instead
of the propcedure's name when they're differet.

Also, repair constructor-style printing of a transparent structure
type that has `prop:object-name`.

Closes #2585
2021-04-29 11:23:15 -06:00
Matthew Flatt
5ae19c56e1 fix submodule loading when a ".zo" file is referenced directly
The default load/use-compiled handler was not consistent with the
default load handler in the treatment of submodules from module files.

Closes #2363
2021-04-29 10:05:11 -06:00
Matthew Flatt
ed115af6b2 windows makefile: fix liblz4.dll linking
Link "liblz4.dll" with the right LZ4 library for /MT mode. It looks
like VS 2017 links anyway, but VS 2015 (and probably earlier) does not
link with the wrong library.

In a normal build, "liblz4.dll" is not needed, but it's linked in case
it turns out to be useful to compress or decompress boot files. A
normal build will construct boot files with the intended final
compression, at least when all the right flags are passed around to
the right places.
2021-04-29 10:05:02 -06:00
Matthew Flatt
a1452ab399 configure: add -lrt for BC on Linux
Linking with `-lrt` is needed for `clock_gettime` on older Linux
distributions.
2021-04-29 08:24:07 -06:00
Matthew Flatt
9bd71dec93 fix open-output-file #:permissions` test again
When tests are run as root, checking for write permission through the
summary from `file-or-directory-permissions` still doesn't work.
2021-04-29 08:16:49 -06:00
Matthew Flatt
0ef092e948 fix open-output-file #:permissions` test
Fix the permissions integer. Also, for the benefit of tests running in
a container, use `file-or-directory-permissions` instead of another
`open-output-file` to check permissions.
2021-04-29 06:40:06 -06:00
Matthew Flatt
cfa10d5f30 fix typo in in-value change
Thanks to @yjqww6
2021-04-28 20:29:46 -06:00
Matthew Flatt
bd94ac6b27 fix impersonator-prop:application-mark for keyword arguments
Closes #1836
2021-04-28 17:51:05 -06:00
Matthew Flatt
387f5dc3ba add current-inexact-monotonic-milliseconds
Closes #1826
2021-04-28 17:29:38 -06:00
Matthew Flatt
4eed365e1f class: fix name-conflict checking with local names
Closes #1819
2021-04-28 16:20:08 -06:00