Commit Graph

39886 Commits

Author SHA1 Message Date
AlexKnauth
b471b18876 document procedure behavior of make-variable-like-transformer 2019-03-19 15:43:04 +01:00
AlexKnauth
780647f0eb return a procedure from make-variable-like-transformer
So that make-variable-like-transformer produces a value that passes both procedure? and set!-transformer?
2019-03-19 15:43:04 +01:00
Paulo Matos
1efe1ebbf1 Revert "Fix typo"
This reverts commit 9a731f45f9.

Not a typo as pointed out in 9a731f45f9 (commitcomment-32813840)
2019-03-19 08:38:33 +01:00
Paulo Matos
9a731f45f9
Fix typo
s/intensionally/intentionally
2019-03-18 23:52:32 +01:00
Matthew Flatt
201015a4b6 cs: avoid uppercase in Windows header and library references 2019-03-18 13:10:43 -06:00
Matthew Flatt
f94fba12da struct: disallow #:extra-name with #:omit-define-syntaxes 2019-03-17 06:54:55 -06:00
Robby Findler
ed2381ee59 when collapsing use contract-stronger only on trustworthy contracts 2019-03-17 07:04:23 -05:00
Ben Greenman
a2d87c353e typo: rename 'provide/contract-struct-expandsion-info-id' 2019-03-16 17:11:55 -04:00
Robby Findler
ce324be9f8 adjust contract-out to use fresh scopes for mangled identifiers
closes #2469
2019-03-15 22:13:10 -05:00
Ben Greenman
397be50113
doc: new names for arguments to 'error' (#2525)
rename the arguments to error in the 2 and 3+ arguments cases to be more
descriptive and to avoid confusion between 'src' and 'srcloc's
2019-03-15 20:44:20 -04:00
Marc
eac9208f3f Correct path, and add link to path
Fixes #2520.
2019-03-15 08:33:49 -06:00
Paulo Matos
dee62018b1 Add armv7l support (rpi) 2019-03-15 09:14:57 +01:00
Paulo Matos
0c49b15b6a Add testing on a raspberrypi 2019-03-15 08:49:57 +01:00
Gustavo Massaccesi
ab1458f5bb fix typo in syntax-binding-set docs 2019-03-14 20:29:13 -03:00
yjqww6
01222bb93c fix docs 2019-03-14 20:27:33 -03:00
Paulo Matos
c292c61da6 Fix pipeline by passing llvm and qemu using artifacts 2019-03-14 17:58:59 +01:00
Matthew Flatt
b6a7f7bc38 expander: keep reference that is needed after all
Part of e7744efb7d triggered a test failure (that I missed by somehow
running tests incorrectly). It turns out that phase -1 transformer
bindings can be used in phase-0 code via shifting.

This change does not effect the repair for building with
machine-independent bytecode.
2019-03-14 07:39:20 -06:00
Matthew Flatt
e7744efb7d expander: avoid unneeded namespace reference
This change avoids the stair-step effect that is depicted in the
"current Racket -M" build plot from the January 2019 blog post about
Racket on Chez Scheme.

The stair step in that plot is a result of a combination of effects,
but one key part is that the `.set-transformer!` linklet import (to
support macro definitions) has a reference back to the namespace.
While `.set-transformer!` normally would not be captured in any
closure, `db/private/generic/prepared` creates a thread that causes
the "prefix" part of a closure to be moved to a thread's runstack
before it can be pruned by the GC. The stair-step problem happens only
when running directly from machine-independent form, because that form
is recompiled in a way that doesn't optimize away the unused
`.set-transformer!` import. The change in this commit avoids a
reference to the namespace in some cases where it will not be useful,
which turns out to be sufficient to address the build problem.

A more complete repair would be to change the compiler to pair a
closure prefix on the runstack with a liveness mask. An even more
complete repair is to switch to Racket CS. Racket CS is immune to the
problem, even when running from machine-independent bytecode, because
its closures do not keep extra references (with the tradeoff that
there's less sharing).
2019-03-14 06:37:23 -06:00
Matthias Felleisen
077a11c84f
remove reference to Scheme Cookbook
This citation was too scholarly anyways for our Guideline. [[ The code could have been from anybody's library. ]]
2019-03-13 15:15:25 -04:00
Matthew Flatt
0257b5cf71 raco pkg: fix --source mode for some installations
Some package installation modes did not support `--source`
and similar strip modes on an intermediate directory.
2019-03-13 12:38:09 -06:00
Matthew Flatt
43f90b4781 makefile: support server-package install options 2019-03-13 10:56:56 -06:00
Matthew Flatt
5a96e89f95 cs: reduce communication for cross compilation
Communicating in terms of S-expression is convenient but wasteful,
so communicate in bytes.
2019-03-13 10:40:10 -06:00
Matthew Flatt
00a50ca772 no --recompile-only for "distro-build-client" step
The `--recompile-only` flag makes sense if machine-independent
bytecode can be deterministically generated from all Racket builds.
While the current compiler is close, there are obstacles such as the
lack of support for single-precision floating-point literals in Racket
CS. We settle for using `--recompile-only` in the main bundle phase,
which is the part that most needs to go fast.
2019-03-13 09:32:33 -06:00
Matthew Flatt
4248f9bea0 fix hash-table sorting of symbols with non-ASCII characters
Non-ASCII characters sorted before ASCII characters, instead of after.
2019-03-13 09:32:33 -06:00
Matthew Flatt
6d9ea44830 add unsafe-make-srcloc
This function was already in Racket CS.
2019-03-13 09:32:33 -06:00
Matthew Flatt
861ddac5bc expander: sort submodule names in a linklet bundle 2019-03-13 09:32:33 -06:00
Matthew Flatt
7c0a978f28 cs: remove some incorrect kernel exports
Remove `make-date[*]`, `double-flonum?`, `f[xl]vector-copy`, and
`compile`, which should not be exported by built-in modules.
2019-03-13 09:32:33 -06:00
Matthew Flatt
e79f07b6cc racket/fasl: fixed representation for +nan.0
To make fasl writing as determinsitic and portable as possible, write
+nan.0 and +nan.f always with a specific bit pattern.

This choice risks losing information that is potentially useful, but
given the way that Racket treats all NaN encodings as equivalent, that
rick seems low.
2019-03-13 09:32:33 -06:00
Matthew Flatt
6a35d64e95 repairs for change for machine-independent bytecode
Fix problems with moving some VM-specific handlign to schemify, and
fix some interning issues that the change exposed.
2019-03-13 09:32:33 -06:00
Matthew Flatt
df8501d8f0 make empty immutable hash tables unique
For example, `#hasheq()` is `eq?` to `(hasheq)` and `(hash-remove
(hasheq 'x 2) 'x)`. Making empty hash table unique avoids some
potential and actual inconsistencies between traditional Racket and
Racket CS, such as in machine-independent bytecode.
2019-03-13 09:32:33 -06:00
Matthew Flatt
6e958b627f expander: avoid VM-specific expansion
Move different handling of serialized syntax data to the schemify
layer instead of te expander, so that the result of compiling in
machine-independent form is the same for traditional Racket and Racket
CS.
2019-03-13 09:32:33 -06:00
Matthew Flatt
d0d391d76b raco setup: add --recompile-only
The `--recompile-only` flag is intended to help dectect build
problems, especially distribution builds where packages are
supposed to be in built form.
2019-03-13 09:32:33 -06:00
Matthew Flatt
ce708478e7 raco setup: add time to section printouts 2019-03-13 09:32:33 -06:00
Paulo Matos
e70006b5e5 Add cache to test cs jobs 2019-03-13 13:10:06 +01:00
Philip McGrath
4b69cf6995 typo fix in contracts documentation (#2530) 2019-03-13 12:39:51 +01:00
Paulo Matos
29551644d0 Show current directory 2019-03-13 11:02:26 +01:00
Paulo Matos
8cfdadce13 Add new target, arm-linux-user 2019-03-13 09:37:00 +01:00
Paulo Matos
9148649030 Pass arguments properly 2019-03-13 09:19:58 +01:00
Paulo Matos
31f0667695 Pass qemu path 2019-03-13 09:08:15 +01:00
Paulo Matos
0b715b5077 Fix path to qemu 2019-03-13 08:55:10 +01:00
Paulo Matos
2fc8f46b7e Enable use of qemu-3.1.0 2019-03-13 08:27:37 +01:00
Robby Findler
b8b0260e50 add examples for -> contract combinator
closes #2527

Thanks to Paulo Matos
2019-03-12 09:16:04 -05:00
Paulo Matos
3bd45fc0bb Set LLVM build type to minsizerel to minimize llvm build size 2019-03-12 14:46:22 +01:00
Marc
7ce28e8795 Update broken URL
Fixes #2518
2019-03-12 09:41:59 -04:00
Paulo Matos
a5514e684b Use llvm HEAD from release/8.x branch 2019-03-12 09:44:41 +01:00
Paulo Matos
d4097aeaca Fix image name 2019-03-11 20:59:17 +01:00
Paulo Matos
a4b0ed2202 Add qemu-3.1.0 build job 2019-03-11 20:57:51 +01:00
Alexis King
bb42476157 syntax/parse: Add prop:syntax-class 2019-03-11 12:18:36 -05:00
Paulo Matos
cbf21df284 Use annotate-output from devscripts 2019-03-11 17:05:43 +01:00
Sam Tobin-Hochstadt
25efc68b17 Make sql-null a transparent struct.
This allows it to cooperate better with Typed Racket, particularly
regarding the `Any` type. The guard and use of `#:authentic` also
check that it's still a singleton in all cases.
2019-03-11 14:02:57 +01:00