Commit Graph

38525 Commits

Author SHA1 Message Date
Matthew Flatt
ea7f973102 expander: repairs for top-level define-values and begin-for-syntax 2018-03-02 18:00:02 -07:00
Matthew Flatt
88b066e1b2 expander: correct scope of added #%module-begin wrapper
Also, fix a problem rendering module path indexes.
2018-03-02 15:17:37 -07:00
Robby Findler
34189b38f7 attmpet to clarify define/contract's boundary a bit more 2018-03-02 14:44:46 -06:00
Matthew Flatt
e78eb0563a expander: fix shadowing require after shadowing define
Refines the repair in 11fd70c3dd to properly handle a `require` that
should be allowed to shadow the initial require.
2018-03-02 13:37:48 -07:00
Matthew Flatt
2104d02a23 reduce non-determinism in serialized syntax 2018-03-02 13:37:47 -07:00
Matthew Flatt
f439ab6b4e add some missing checks in the bytecode reader 2018-03-02 13:37:46 -07:00
Robby Findler
081b1cc3f3 add for-label require; closes #1967 2018-03-02 07:42:56 -06:00
Matthew Flatt
11fd70c3dd expander: fix require after shadowing define 2018-03-01 14:14:24 -07:00
Matthew Flatt
7069510d67 expander: bind U+3BB as a macro, not a core form 2018-03-01 11:55:35 -07:00
Matthew Flatt
ae0ce206f8 reader: source location for #lang language 2018-03-01 09:40:33 -07:00
Matthew Flatt
a668a6a674 expander: fix compilation of top-level begin-for-syntax 2018-03-01 08:22:22 -07:00
Matthew Flatt
618d362f09 load, ...: make sure load handlers receive paths 2018-03-01 07:56:44 -07:00
Matthew Flatt
c59c961ebc read: restore some lost source-location reporting 2018-03-01 07:54:03 -07:00
Matthew Flatt
82d761aef0 at-exp: use "..." for literals in error messages
Match the corresponding change in the Racket reader.
2018-03-01 07:00:11 -07:00
Matthew Flatt
57b6a1402f fix evaluation of #%variable-reference variants 2018-03-01 06:00:21 -07:00
Matthew Flatt
e6bab71e8a unbreak namespace-variable-value
Repair a mistake in b4f0499256.
2018-02-28 20:33:43 -07:00
Matthew Flatt
7bdc3d626b adjust test that depends on keyword-argument expansion
Revert the test to go along with the "kw.rkt" reversion.
2018-02-28 20:12:04 -07:00
Matthew Flatt
8f9fcb02f3 expander: fix sealed initial parameterization 2018-02-28 19:36:28 -07:00
Matthew Flatt
9cd4f44d42 vector*-set!: repair to disallow an impersonator 2018-02-28 18:57:48 -07:00
Matthew Flatt
6fc9368d5c revert a keyword-argument expansion that confuses TR
A change in keyword-argument expansion was intended to avoid
copy-propagation wrok in later passes. That saving does not appear to
be worthwhile, so revert it.

Reverting the change exposed weakness in the expander flattener and an
unsoundness in its simplification pass. That unsoundness has to do
with the assumption that variables are defined before use. The unsound
assumption is likely to be fine for code that is flattened --- all the
more considering that flattened code is routinely run in unsafe mode
--- but it's a departure from the intended safety of the simplifier.
Improving the analysis to so that it's sound and good enough will
require sometimes inferring when a structure-type property guard (for
`prop:evt`, at least) will succeed.
2018-02-28 18:49:58 -07:00
Matthew Flatt
b4f0499256 expander: add 'protected property to protected references
As documented and as implemented by the old expander.
2018-02-28 17:14:06 -07:00
Matthew Flatt
24a4882e5d linklet evaluation: correctly install prompt in a no-JIT build 2018-02-28 16:23:51 -07:00
Matthew Flatt
6018dcfdf6 expander: propagate module properties to #%module-begin
Closes #1968
2018-02-28 14:23:22 -07:00
Matthew Flatt
de27be536d expander: propagate srcloc on rename-transformer expansion 2018-02-28 13:59:13 -07:00
Matthew Flatt
3c69a1296a expander: pay more attention to (error-print-source-location)
When source locations are disabled, don't include a source location in
an error message from `raise-syntax-error`.
2018-02-28 13:08:22 -07:00
Matthew Flatt
25b0c23db7 expander: adjust bindings in module->namespace
Make the module path index for bindings in a `module->namespace` be a
"self" MPI (with #f for path and base), instead of the MPI associated
with bindings as view from the outside of the module instance. That
makes interactive evalaution in the namespace more closely approximate
expansion within the original module.

Example use: ASL detects a "self" MPI to determine when it should
allow assignment to module-defined variables in the REPL.
2018-02-28 10:30:24 -07:00
Matthew Flatt
a6e585a72e racket/unit: update expected error messages in tests 2018-02-28 07:02:11 -07:00
Matthew Flatt
4eacbbd296 change makefile to be more helpful for "seletc-startup.rkt" failure 2018-02-28 06:56:16 -07:00
Matthew Flatt
e4296f5c1e add stdout logging in the same style as stderr logging
Use stdout log reporting instead of stderr log reporting for status
reporting during the build, so that the status report is not
misinterpreted as an error.
2018-02-28 06:52:55 -07:00
Ryan Culpepper
19df146ccf expand and expand-to-top-form unset observer parameter
This change means that if a macro transformer calls expand (not
local-expand, but top-level expand), the macro debugger won't
receive the inner expand's events. Previously, the macro debugger
tried to parse and then discard the inner expand, but that was
brittle and complicated the grammar.
2018-02-28 06:11:00 -07:00
Ryan Culpepper
ceee75b5ce make symbols consistent with macro debugger, send events as symbols 2018-02-28 05:37:22 -07:00
Ryan Culpepper
2f7c0dd9fa fix/simplify logging for main expand and expand-to-top-form 2018-02-28 05:36:52 -07:00
Ryan Culpepper
3a40125168 add arity checks for log-expand, fix some uses 2018-02-28 05:36:52 -07:00
Ryan Culpepper
ed3d2d0082 fix typo 2018-02-28 05:36:52 -07:00
Matthew Flatt
408a8cb79e compiler/cm: repair for chained compiled-file roots 2018-02-27 20:23:13 -07:00
Matthew Flatt
3e5e2cc30d raco decompile: support non-module programs 2018-02-27 20:23:12 -07:00
Matthew Flatt
bd231cd75d restore syntax-local-make-delta-introducer
Closes #1965
2018-02-27 20:23:12 -07:00
Matthew Flatt
e288df5e8e add missing key in "system.rktd" to enable cross-compilation 2018-02-27 20:23:12 -07:00
Matthew Flatt
0e9634f917 namespace-variable-value: fix default vale for 2nd argument 2018-02-27 18:14:55 -07:00
Matthew Flatt
4e1e91a34e peek-{char,byte}-or-special: add 'special option
The old reader used an internal option to short-circuit special-value
reading when a special value acts as a terminating "character". Expose
that shortcut by allowing 'special as an argument to
`peek-{char,byte}-or-special`, and update the reader to use it.
2018-02-27 18:14:54 -07:00
Matthew Flatt
613de748df reader: fix another here-string problem 2018-02-27 13:48:40 -07:00
Matthew Flatt
e707d7decd expander: fix lift context for multiple #%module-begins
Also, restore the old syntax-error message for an `if`
without an "else" clause.
2018-02-27 13:44:11 -07:00
Matthew Flatt
1d8e04896e avoid a pattern that confuses xform 2018-02-27 06:58:12 -07:00
Matthew Flatt
654e846720 namespace-attach-module: fix namespace for declaration callback 2018-02-27 06:46:55 -07:00
Matthew Flatt
f691d4b68c fix incorrect variable reference in the compiler 2018-02-27 06:07:41 -07:00
Matthew Flatt
ada6b8c5d1 reader: handle port whose position moves backwards 2018-02-27 05:46:59 -07:00
Matthew Flatt
586feb6df0 expander: fix problems with cross-phase persistence 2018-02-26 20:29:22 -07:00
Matthew Flatt
9fec456335 fix tests that relied on a specific internal hashing function 2018-02-26 19:46:33 -07:00
Matthew Flatt
cf60eb2715 reader: fix #reader 2018-02-26 19:24:52 -07:00
Matthew Flatt
5ba83c6340 expander: fix cross-module reference to gensymed name 2018-02-26 19:18:58 -07:00