Commit Graph

38543 Commits

Author SHA1 Message Date
Matthew Flatt
d8dce77984 input-port-append: add #:name argument 2018-03-06 20:01:47 -07:00
Matthew Flatt
9d77ffe6d5 avoid crashes while reading ill-formed bytecode 2018-03-06 18:33:49 -07:00
Matthew Flatt
c29e072f7e identifier-binding: don't lose nominals
Repairs ebef94435c
2018-03-06 13:33:24 -07:00
Matthew Flatt
ebef94435c identifier-binding: bias nominal to most recent require
The `identifier-binding` function doesn't promise to give back any
particular `require` as the nominal binding site, but some tests rely
on the most recent `require` as the binding site. Also, the arrows
in DrRacket look nicest that way.
2018-03-06 13:12:57 -07:00
Matthew Flatt
dffcbc1cb2 thread & io: code clean-ups
Remove unused `require`s and fix some indentation.
2018-03-06 13:04:27 -07:00
Matthew Flatt
82b5ec8d18 expander: fix registry-lock retry path
Provoking the retry path is extremely difficult, so it's unlikely to
have caused any problem so far.
2018-03-06 09:47:22 -07:00
Paulo Matos
80ae3394aa Update function name
Function reference `supervise-named-dynamic-place-at` should be `supervise-place-at`.
2018-03-06 09:19:49 -07:00
Matthew Flatt
be371aa2cc doc repair
Closes #1954
2018-03-06 09:12:48 -07:00
Matthew Flatt
050cdb5983 xform: avoid problems with __signbitf128
Closes #1962 and uses the suggested patch there, among other changes.
2018-03-06 09:05:08 -07:00
Matthew Flatt
efb9a919fc ffi docs: clarification on unsafe-socket->port
Thanks to Hong Feng for suggesting the clarification.
2018-03-06 08:51:49 -07:00
Matthew Flatt
c5653b5bdd expander: code clean-ups
Use `define/who` consistently, remove some unused `require`s, and fix
some bad indentation.
2018-03-05 19:34:41 -07:00
Matthew Flatt
bbefc9ed50 expander: fix taint propagation
A taint on a syntax object without scopes to propagate was propagated
incorrectly to a nested syntax object that also has pending scopes to
propagate.
2018-03-05 18:08:42 -07:00
Milo Turner
275d7974cd Added #:cut pattern directive 2018-03-05 15:03:45 +01:00
Matthew Flatt
112aa6eb07 fix -m command-line flag for new expander 2018-03-04 11:44:00 -07:00
Matthew Flatt
fc1da5f037 reader: fix quoting in some error messages 2018-03-04 11:22:18 -07:00
Matthew Flatt
c6579bbdcf expander: fix provide of prop:exn:missing-module 2018-03-04 07:21:18 -07:00
Matthew Flatt
983a35a024 expander: repair handling of non-interned provides 2018-03-03 16:46:53 -07:00
Matthew Flatt
77028b9c95 fix potential error misreporting on a file-open failure 2018-03-03 10:02:12 -07:00
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