Commit Graph

38705 Commits

Author SHA1 Message Date
Robby Findler
8dbedc6a26 the commit 2a1c8a78 contained stuff that was meant to be in bff0c41
so when it was reverted, we have to bring back that stuff
2018-04-27 18:59:10 -05:00
Robby Findler
ef8101bde3 Revert "change the strategy for recursive-contract's knot tying"
This reverts commit 2a1c8a78a5.

something goes wrong with large recursive nests with this commit
2018-04-27 15:04:03 -05:00
Matthew Flatt
53ffd28e0f expander: atomic update of a module-path-index table
A module path index used to expand a module must be interned, and the
intern table is an `equal?`-based weak hash table, which means there's
an internal lock on the table that can be damaged if the current
thread is terminated while using the table.

I don't see an easy way to fall back to `eq?`-based tables, so I'm
resorting to an atomic region (which I had managed to avoid until
now).
2018-04-27 12:59:58 -06:00
Matthew Flatt
cb921cd1d9 configure: fix --disable-cify 2018-04-26 13:48:09 -06:00
Robby Findler
bff0c4113d lift out some work from object contracts from the post-value application
of the projection to the pre-value (after getting the blame object)
2018-04-26 14:30:58 -05:00
Robby Findler
2a1c8a78a5 change the strategy for recursive-contract's knot tying
this change speeds up this microbenchmark by about 10x:
2018-04-26 14:06:17 -05:00
Milo
026d368a38 Improve some errors from match and friends (close #1431, #1615) (#1974)
* More specific error for no-clause match-lambda** (close #1615)

* Remove unused orig-stx parameter from racket/match internals

* Use of match-XYZ/derived for better errors (fix #1431)

* Tests for the exceptions produced by racket/match
2018-04-25 17:17:39 -04:00
Matthew Flatt
bc55560f8d raco pkg update: add ---unclone as a kind of alias for --lookup
It's difficult to remember that the opposite of `--clone` is
effectively `--lookup`.
2018-04-25 09:54:06 -06:00
Alexis King
e2ef7cdd5c Make syntax-local-lift-require not affect syntax-original?-ness 2018-04-25 10:52:14 -05:00
Alexis King
b87793640b Add quote-syntax and #%plain-module-begin to kernel-form-identifier-list 2018-04-24 15:10:11 -05:00
Robby Findler
b8c398cc69 add obligations for instanceof/c 2018-04-24 14:48:11 -05:00
Matthew Flatt
77d0b0b8f4 syntax-local-lift...: correct error for module-begin context
Relevant to #2052
2018-04-24 08:22:37 -06:00
Matthew Flatt
88d8ba00e0 bytecode compiler: fix for call-with-immediate-continuation-mark
The converstion from calling `call-with-immediate-continuation-mark`
to an internal `with-immediate-continuation-mark` form did not handler
a mutable argument variable.
2018-04-23 21:13:10 -06:00
Alexis King
3531cb24f4 Restore binding-introduction behavior of parent definition contexts
This behavior was in Racket 6, but was not preserved in the new
expander.
2018-04-23 11:19:20 -05:00
Matthew Flatt
b1f9f2caad expander: no #%expression in fully expanded
Ensure that `#%expression` appears only around a top-level form in
a fully expanded form.
2018-04-22 08:15:44 -06:00
Alexis King
7d556d4006 Preserve some coercion behavior of old internal-definition-context-apply
mzlib/unit200 relies upon this behavior, even though it appears to have
been mostly accidental, so this maintains it for the sake of
backwards-compatibility.
2018-04-20 20:42:14 -05:00
Daniel Feltey
51decc085d remove unused definition 2018-04-20 17:00:25 -05:00
Matthew Flatt
07473865a6 fix continuation-mark splicing across composable combinations
Although splicing was set up for applying a composable
comtinuation to most kinds of continuations, it was not
set up right for applying a composable continaution in tail
position for a just-applied composable continuation.

Thanks to Spencer Florence for the report and example.
2018-04-20 12:02:59 -06:00
Alexis King
531c422652 reference: “is comprised of” → “comprises” 2018-04-20 12:26:21 -05:00
Alexis King
6834e4a12c Document and generalize some things for first-class definition contexts
This commit adds a section to the reference to document how the expander
tracks information about local bindings, and it extends some
syntax-local functions to allow them to accept multiple definition
contexts instead of just one. In addition, it improves the documentation
on how first-class definition contexts interact with local-expand,
syntax-local-value, and syntax-local-bind-syntaxes, and it also
clarifies what it means to create a child definition context.
2018-04-20 11:47:23 -05:00
Alexis King
e5b5747566 Make local-require work with phase shifted require specs
fixes #2049
2018-04-19 15:16:18 -05:00
Stephen Chang
5de19e593b
guide: a few more typos in instantiations and visits sec 2018-04-19 13:33:25 -04:00
Ben Greenman
25fbaad1ad guide: proofread section on instantiations and visits 2018-04-19 11:48:47 -04:00
Vincent St-Amour
becdd56ca8 Fix typoes in the visit module instantiation docs. 2018-04-18 11:07:46 -05:00
Matthew Flatt
65217898d1 repair gui native-lib metadata generation 2018-04-17 15:44:03 -06:00
Matthew Flatt
959a57d31f guide: add section on instantions and visits 2018-04-17 14:07:33 -06:00
Matthew Flatt
3b1ddc6ee4 update native-library notes for PPC Mac OS 2018-04-16 07:40:58 -06:00
Matthew Flatt
ee695bc317 native libs: add ATK to native-library builds for all platforms 2018-04-16 06:34:13 -06:00
Matthew Flatt
70020785b2 JIT: fix more misuses of jit_retval
Older mistakes that are the same as in 82517622c7.
2018-04-16 06:34:13 -06:00
Matthew Flatt
7bccfa7824 ffi/unsafe/obj: ignore NULL protocols
If the `#:protocols` clauses of a `define-objc-class` form includes
errors, but it simplifies the declaration of protocols that are
introduced in different versions of a framework, and it's effectively
more compatible with the implementation before dc0898f5ef.
2018-04-16 06:34:13 -06:00
Matthew Flatt
d2ef35082a repair JIT-inlined hash-ref
The attempt in 82517622c7 was wrong. Using `JIT_R0` for
the result in the internal ABI is fine, and the problem
was using a register for two purposes in the called
stub.
2018-04-15 17:23:39 -06:00
Matthew Flatt
c79fba4ca6 native-library build-script updates for PPC Mac OS 2018-04-15 16:48:28 -06:00
Matthew Flatt
8100438afc unsafe-fxlshift: fix constant folding
Closes #2034
2018-04-15 11:10:48 -06:00
Matthew Flatt
ecd0aee2b7 db: avoid Racket C API
Also, the use of `scheme_make_sized_byte_string` was incorrect, since
it expects 3 arguments.
2018-04-15 08:16:47 -06:00
Matthew Flatt
69f5395d5d cs: repairs for Linux build 2018-04-15 08:16:47 -06:00
Matthew Flatt
82517622c7 repair JIT-inlined hash-ref
Direct of `JIT_R0` instead of `jit_retval` is wrong on PowerPC.
2018-04-15 08:16:47 -06:00
Matthew Flatt
abb601558d 3m: avoid reinstall of write-barrier signal handler for places
Redundantly setting the signal handler hasn't matter, but it's
confusing and now matters for implementing W^X via a different signal
handler.

Closes #2038
2018-04-14 15:46:10 -06:00
Matthew Flatt
385f9588f8 expander: adjust rename-transformer handling for implicit forms
For consistently with the old expander, treat `#%app` and `#%datum`
like unbound if they're bound to a rename transformer whose identifier
does not untimately refer to macro or primitive syntactice form.

Closes #2042
2018-04-14 10:36:45 -06:00
Ben Greenman
8b797a10a8
fasl: use longer fasl prefix
Change fasl prefix from `rkt:` to `racket/fasl:`, in the hope that future civilizations will be able to decipher these binary files.
2018-04-13 22:44:35 -04:00
Matthew Flatt
fb635c0d97 repair for raise-result-arity-error
Classic misuse of provided string as a formatting template.

Closes #2040
2018-04-13 06:36:39 +02:00
Alexis King
09dc3940b0 Improve the local-expand documentation on handling of implicit forms 2018-04-12 12:06:51 -05:00
Matthew Flatt
2e33855303 fix version in "base" package 2018-04-11 22:00:28 +02:00
Matthew Flatt
b1dc723acd Mac OS: fix build script for libgmp 2018-04-11 22:00:12 +02:00
Michael Ballantyne
4be2c523b6 fix dynamic-require with symbol to not make available
to match behavior in docs and racket 6.
2018-04-11 21:59:53 +02:00
Gustavo Massaccesi
8d08264b41 schemify: fix boolean-or-fixnum?
Also, add null? to equal-implies-eq?
2018-04-11 13:28:09 -03:00
Matthew Flatt
a5d0d38ae0 cs: use O_BINARY only on Windows 2018-04-11 06:47:58 +02:00
Matthew Flatt
fcfa72e73a add raise-result-arity-error
Use it to provide some proper errors from the expander.

Closes #2029
2018-04-11 06:47:58 +02:00
Alex Knauth
f66b3312df match: check duplicate identifiers across list-no-order patters (#2000)
* match: check duplicate identifiers across list-no-order patters

* match: document that list-no-order doesn't support duplicate ids between sub-pats

* match: put duplicate id docs in a margin note between the two variants
2018-04-11 00:00:14 -04:00
Alexis King
d0e6a5839f
Fix a documented default value for syntax-local-make-definition-context 2018-04-10 15:50:11 -05:00
Robby Findler
1e93424f67 adjusted the blame objects so that equality tests (and equal hashing) work better 2018-04-09 14:00:29 -05:00