Commit Graph

3535 Commits

Author SHA1 Message Date
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
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
Matthew Flatt
65217898d1 repair gui native-lib metadata generation 2018-04-17 15:44:03 -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
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
Robby Findler
1e93424f67 adjusted the blame objects so that equality tests (and equal hashing) work better 2018-04-09 14:00:29 -05:00
Robby Findler
853f14b9a5 adjust make-wrapper-class and make-wrapper-object to cooperate better with the way projections are curried 2018-04-09 14:00:05 -05:00
Ryan Culpepper
a48259ba29 syntax/loc: only use loc arg if it has source or position 2018-04-09 11:40:12 +02:00
Ryan Culpepper
7f12dc567c bump version 2018-04-09 11:40:12 +02:00
Ryan Culpepper
84ca256029 rename ??,?@ to ~?,~@ (see PR #2031) 2018-04-09 11:40:12 +02:00
Matthew Flatt
5bb2c1f16e upgrade native libraries
Update the build scripts, patches, and notes.
2018-04-09 09:14:05 +02:00
Kieron Hardy
e0668d895b Update simple.rkt
Fix typo in comment.
2018-04-07 16:06:11 -04:00
Ryan Culpepper
93a899cf4c db/sqlite3: support create-{function,aggregate} 2018-04-04 12:31:54 +02:00
Ryan Culpepper
aadbe1a7d2 db/sqlite3: add support for loading extensions 2018-04-04 12:31:54 +02:00
Ryan Culpepper
1e40af55bc db: more db/../function updates, factor out checks better 2018-04-04 12:31:54 +02:00
Ryan Culpepper
7c50113ced db: move some non-essential code to db-lib pkg
Also provide more from private modules to allow impl sharing.
2018-04-04 12:31:54 +02:00
Ryan Culpepper
bcb6299b4b wrap-expr/c: don't put build-time paths in expansion (closes #2006) 2018-04-01 02:50:29 +02:00
Ryan Culpepper
262ed468d0 remove rename-transformer (causes demodularizer problems) 2018-04-01 01:42:17 +02:00
Ryan Culpepper
6f628b2531 fix error messages 2018-03-30 12:43:36 +02:00
Matthew Flatt
d3aa7e90e7 rktio: fix Windows file timestamp dst correction
The old correction was broken in at least a couple of ways; use
the more tested DST calculation in the implementation of
`seconds->date`.
2018-03-29 20:45:26 -06:00
Matthew Flatt
e95c3fe6d5 sgc: fix unmapping of temporary GC space
Instead of unmapping directly, return temporary space to
the page-allocation cache.
2018-03-29 14:48:11 -06:00
Ryan Culpepper
0f3f338b22 delay evaluation of default-make-fail argument until use
This reverts part of 778b1845.
2018-03-29 11:48:59 +02:00
Ryan Culpepper
0083f5c858 fix error reporting for define/syntax-parse (closes #2003) 2018-03-29 11:41:01 +02:00
Ryan Culpepper
c2eab77cec update version number and fix history for syntax/?@/?? 2018-03-29 11:40:35 +02:00
Ryan Culpepper
8d607b83f9 merge syntax/parse's template into core (syntax, syntax/loc, etc) 2018-03-29 11:40:35 +02:00
Matthew Flatt
2c627c300b unwind: avoid passing NULL to memcpy
In response to #2021
2018-03-28 05:31:30 -06:00
Matthew Flatt
330bb2cfb8 expander flattener: recognize gensym
An unreferenced call to `gensym` can be discarded.
2018-03-27 20:33:21 -06:00
Ryan Culpepper
5fadcb38b8 update openssl .so version list 2018-03-27 22:31:10 +02:00
Ryan Culpepper
5f68f0d5a5 trim requires 2018-03-27 22:31:10 +02:00
Ryan Culpepper
778b184526 avoid generating macro definition; use compile-time helper instead 2018-03-27 22:31:10 +02:00
Matthew Flatt
f6424ff7c2 Windows: adjust DLL embedding implementation
Define `__pfnDliNotifyHook2` instead of declaring it as `extern` seems
to make it work in more build environments.
2018-03-27 13:57:41 -06:00
Matthew Flatt
5ec71d45e8 Restrict W+X based on signal handlers to intended pages
Make 9d0ab74e9e more responsible by limiting permission changes to
pages that are intended to be both writable and executable for code
generation. That way, the signal handler doesn't just reopen holes in
loaded foreign libraries that W^X would close.
2018-03-27 11:34:42 -06:00
Kieron Hardy
9498f52c71 Update misc.rkt 2018-03-27 10:01:13 -05:00
Matthew Flatt
f67d4f349e Windows: unbreak loading of "longdouble.dll"
Changes to support embedded DLLs make loading worked only
in embedded mode.
2018-03-26 18:15:18 -06:00
Matthew Flatt
bf0a739991 raco exe: fix section alignment for PE rewriting
A new resource section was aligned based on the old section's
virtual address, instead of the PE's specified section
alignment. That could make alignment round up too far, leaving
a disallowed gap in the sections' virtual addresses.
2018-03-26 17:41:59 -06:00
Matthew Flatt
f8dac3d47d byte compiler: fix excessive fixnum assumptions in unsafe mode
The comparison operations `=`, `<`, etc., were incorrectly compiled as
fixnum operations in the expander's implementation.
2018-03-26 17:27:54 -06:00
Matthew Flatt
9d0ab74e9e OpenBSD: follow the letter of W^X
Conform to W^X by using a signal handler that switches between W and X
mode on any fault. That's not the spirit of W^X, certainly, but it
should make Racket work without special configuration.

Beware that this change can turn some crashes into infinite loops.
It may be possible to detect those loops, but I didn't find a
good and portable way, so far.
2018-03-26 14:08:16 -06:00
Michael Myers
a70e6bdfc9 Fix typo 2018-03-26 08:08:51 -05:00
Matthew Flatt
e01a21db0c raco exe: add --embed-dlls for Windows
Creating an executable with embedded DLLs means that the executable
can be truly stand-alone, instead of needing to be kept with its
DLLs in a relative subdirectory.

DLL embedding works by bypassing the OS's LoadLibrary and
GetProcAddress functions, and instead maps the DLL into memory
and performs relocations explicitly. Joachim Bauch's MemoryModule
(Mozilla license) implements those steps.
2018-03-25 16:35:42 -06:00
Matthew Flatt
1803e647e1 net/win32-ssl: repairs for RacketCS 2018-03-24 07:04:31 -06:00
Matthew Flatt
7fd6e07ad7 io: another repair to Windows path parsing 2018-03-23 21:46:12 -06:00
Matthew Flatt
2754f22844 cs & io: repairs for locks & DLL errors 2018-03-23 19:20:14 -06:00
Matthew Flatt
f048f23ade schemify: fix problem with inlining
Recently added support for inlining functions with a "rest" arg
exposed a problem in constructing an inlining environment.
2018-03-23 17:01:21 -06:00
Kieron Hardy
e0a8f475a7 Update misc.rkt 2018-03-23 14:31:03 -05:00
Matthew Flatt
0ebcb23244 io: repairs for Windows path maniplation
Perpetuate a failure to make Windows paths behave reasonably with
path-manipulation functions.

In one case, the new implementation seemed better than the old one, so
I've changed the old implementation (by deleting code) and test cases.
The old code would split "x /y" to "\\?\REL\x " and "y", and the new
one splits to "x /" and "y"; the trailing separator is now enough to
preserve the space character, and it also preserves the directoryness
of the path. Of course, "x /" splits to 'relative and "\\?\REL\x " as
it strips away the trailing "/".

A remaining problem in both implementations: some Windows API
functions implicitly erase a trailing "." in a directory name, making
"x./y" equivalent to "x/y". The Racket path-manipulation functions
don't do that, so splitting and recombining "x./y" does not access the
same path as the original. This apparently hasn't been a problem in
practice, and there are so many terrible hacks already, so I left it
alone.

The new implementation perpetuates also the implementation mistake of
representing paths internally as byte strings. If, in some terrible
universe, I'm forced to do this again, the right choice is probably to
keep the path in a parsed form with enough information to reconstruct
the original, but with the information sorted nicely to make various
normalizations and combinations easy.
2018-03-23 10:37:59 -06:00
Robby Findler
e031e04f62 improve error message for xml contract violation 2018-03-23 08:45:34 -05:00
Kieron Hardy
13c31221d6 Update thread.c
Fix typo in comment.
2018-03-21 11:49:35 -05:00
Matthew Flatt
b0424737a7 places: handle impersonated values by copying
Recognize vector, hash table, and prefab impersoantors/chaperones,
and allow them as place0channel messages by copying.

Closes #2001
2018-03-21 08:57:16 -06:00
Matthew Flatt
f4db704b5b --help on Windows: fix misleading description of "racketrc.rktl"
The path usually is found some other way than through `HOMEDIRVE`
and `HOMEPATH`.
2018-03-21 07:20:05 -06:00
Matthew Flatt
808bdb6d0b JIT-inline symbol-interned? 2018-03-20 17:44:35 -06:00
Matthew Flatt
811ae4f72a change unsafe immutable hash table iteration 2018-03-20 17:44:35 -06:00
Matthew Flatt
3fef5de8b9 cs: fix options-argument handling in compile-linklet 2018-03-20 08:27:54 -06:00
Robby Findler
c442e9707f fix bugs with error checking for ->* and ->
closes 1997
2018-03-20 08:34:27 -05:00
Matthew Flatt
93e3b44fd2 expander: repair phase >= 1 undefined-variable checking
Closes #1996
2018-03-20 07:20:24 -06:00
Matthew Flatt
5ed0cdf563 expander: sync cify with recently newly used operations 2018-03-19 16:54:47 -06:00
Matthew Flatt
b177a5c908 hash-update! and similar: minor performance reorg
Reorganize the implementation of `hash-update!` and related fuctions
to help the bytecode compiler a little.
2018-03-19 10:42:09 -06:00
Matthew Flatt
f138469464 reverse and map: skip checks in unsafe mode
Since only the expander is compiled in unsafe mode right now, the
checks are skipped only when the implementations of `reverse`, `map`,
etc., are part of the flattened expander.
2018-03-19 10:11:48 -06:00
Matthew Flatt
b82d6e2204 expander: remove backend-specific vector handling
Backend-specific handling is no longer useful, since the rules have
changed for code inspectors, bytecode, and unsafe operations.
2018-03-19 08:01:50 -06:00
Matthew Flatt
77a978fb10 expander: another cache layer for binding
Add a cache on binding lookup that is like the old expander --- a
small cache that is consulted before the more general cache that is
already in place.

The new cache layer primarily helps when a single identifier is
compared to a sequence of other identifiers.
2018-03-18 15:28:51 -06:00
Matthew Flatt
60471c2691 improve continuation-mark fast path
Follow the metacontinuation chain, and also distinguish between
"definitely not found" and "not easily found, so try the slow path".
2018-03-18 13:10:01 -06:00
Matthew Flatt
f03cb9144e unbreak cify build
Handle `(case-lambda)`.
2018-03-17 08:27:49 -06:00
Matthew Flatt
a62e159e33 expander: performance tweak 2018-03-17 08:27:43 -06:00
Matthew Flatt
37a985a681 compile expander in "static" linklet mode
The expander as a linklet will be instantiated once, so there's no
need to capture references in closures among functions within the
expander. Add a "static" linklet compilation mode to inline the
variable addresses that would otherwise be referenced via a closure.

Although the change is intended to speed up the expander by avoiding
some indrections, it also reduces the bytecode size of the expander.
Bitmaps that track which linklet variables are used in closures turn
out to have been about 25% of the expander's bytecode size, since the
linklet has so many definitions.
2018-03-17 07:24:50 -06:00
Matthew Flatt
ad3ab8b352 optimizer: fix guarded-constructor tracking
Some parts of the optimizer were inconsistent in whether a tracked
structure type needed to have a constructor that always succeeds
(i.e., no associated guard). Increase precision to track both kinds of
structure types, and avoid some unnecessary space-safety clearing in
the vicinity of nonfailing constructors.
2018-03-17 07:24:50 -06:00
Matthew Flatt
600469d164 expander & bytecode compiler: performance tweaks 2018-03-17 07:24:49 -06:00
Jakub Jirutka
f23b27e393 Fix bashism in Makefile for better portability
Syntax `[[ "foo" != /* ]]` is not defined by POSIX Shell Command
Language. It's supported only by ksh, Bash and ZSH. Other POSIX
shells, such as ash or dash, does not support it.

This patch replaces this problematic syntax with simple case statement
that is supported by all POSIX-sh compatible shells, including (but not
limited to) ash, bash, dash, ZSH.
2018-03-14 20:43:31 -06:00
Matthew Flatt
67a982ad6a cs: add lock on equal?-based weak hash table
Also, repair a test that didn't properly retain weak-hash keys.
2018-03-14 14:37:41 -06:00
Matthew Flatt
aad799f09e racket/cmdline: add missing checks in command-line
Closes #1989
2018-03-14 06:32:50 -06:00
Matthew Flatt
145b3d840e remove unused function 2018-03-13 20:15:07 -06:00
Matthew Flatt
1dd0a83333 racket/path: add #:more-than-same? argument to find-relative-path
Closes #1980
2018-03-13 20:14:04 -06:00
Matthew Flatt
6db03c7eb9 racket/promise: fix promise/force on the result of delay/sync
Closes #1933
2018-03-13 19:39:52 -06:00
Matthew Flatt
0cda14300d non-original code inspector => mark loaded bytecode as non-runnable
This change adjusts the way that trust is threaded through bytecode
and the code inspector. In Racket v6.x, reading bytecode would fail if
the code inspector is non-original and if the bytecode contains a
reference to an unsafe operation. Now, reading bytecode doesn't fail
for that reason, but all bytecode is marked as non-runnable (even
without references to unsafe operations) when loaded under a
non-original code inspector. A `read` operation by itself remains as
safe as ever.

This commit also disables the bytecode validator. For now, the
validate can be re-enabled with `PLT_VALIDATE_LOAD`.
2018-03-13 17:26:50 -06:00
Matthew Flatt
85ff4eee74 racket/fasl: switch to version-independent format
Make `s-exp->fasl` generate an encoding that can be parsed by any
future version of `fasl->s-exp`. The new format does not rely on the
runtime system's bytecode writer and reader.
2018-03-13 16:32:01 -06:00
Sam Tobin-Hochstadt
0a00e82ca1 Copy source location to generate runtime paths.
Fix found by @lexi-lambda. Bug reported by dbenoit@fedoraproject.org.
2018-03-13 18:21:46 -04:00
Matthew Flatt
efe5d2d83f expander: fix module-path?
Fix `module-path?` to check the first character of a path string.

Closes #1988
2018-03-12 20:50:58 -06:00
Matthew Flatt
68a96e094e bytecode optimizer repair
Closes #1986
2018-03-12 20:17:54 -06:00
Matthew Flatt
994a4d4a35 expander: fix problem with syntax-local-expand-expression
Closes #1984
2018-03-12 07:11:31 -06:00
Matthew Flatt
2f930dd6f3 add syntax-property-remove 2018-03-11 11:31:56 -06:00
Matthew Flatt
13242b06d6 expander: fix an error message 2018-03-11 10:37:37 -06:00
Sarah Spall
14448eb1bd Moved release of lock to fix use after free 2018-03-10 08:55:21 -07:00
Matthew Flatt
f3596d96c2 bytes-converter: avoid unnecessary custodian registration
Some built-in bytes-converter combinations that were not
supposed to require custodian registration were neveretheless
registered, which created a small leak for some programs.
2018-03-10 07:20:41 -07:00
Matthew Flatt
3f2fd06cb0 expander: fix namespace-require/copy 2018-03-09 16:32:19 -07:00
Matthew Flatt
0d06ba2848 expander: treat unbound and top-level-bound as free-identifier=?
Restores quetionable but traditional behavior.
2018-03-09 16:07:37 -07:00
Matthew Flatt
35dc59ee07 expander: preserve syntax properties on let[rec]-values clauses 2018-03-09 15:44:11 -07:00
Matthew Flatt
af4c23fa72 variable-reference->namespace: ensure that module is available 2018-03-09 11:06:49 -07:00
Matthew Flatt
234e47a58f remove accidentally committed debugging output
Attempting to write the output could cause places to crash
on Windows.
2018-03-08 18:14:33 -07:00
Matthew Flatt
97721be2af Windows: fix extflonum infinity and NaN without longdouble.dll
Since the reader's implementation includes quoted references
to infinity and NaN extflonums, make sure it reads and writes
and compiles correctly before "longdouble.dll" is installed.
2018-03-08 18:14:33 -07:00
Matthew Flatt
3cf2138841 expander: avoid equal?-based hash table for module cache
Since a thread can be terminated while accessing the cache, it
can't be an `equal?`-based table where the lock can get lost.
2018-03-08 16:36:16 -07:00
Matthew Flatt
e4e17db51d expander: fix origin tracking with a set! transformer 2018-03-08 14:14:28 -07:00
Matthew Flatt
83d792fca5 reader: fix locations on various kinds of errors 2018-03-08 10:14:44 -07:00
Tony Garnock-Jones
32d119dfe6 Correct name of integer->integer-bytes in contract error message 2018-03-08 15:37:54 +00:00
Matthew Flatt
407c1b49c5 reader: repair #lang change
Commit d5d8249c12 added too many syntax wrappers on
list forms.
2018-03-07 18:08:18 -07:00
Matthew Flatt
d5d8249c12 reader: fix "original?" property on #lang-derived module name 2018-03-07 17:59:21 -07:00
Matthew Flatt
ab48afda7a expander: further repair for implicit-form errors
The previous change didn't report a top-level unbound identifier
correctly.
2018-03-07 13:53:27 -07:00
Matthew Flatt
909fed6f2f expander: reapirs for implicit-form errors
Add missing source for unavailable `#%datum`, etc., and
other similar adjustments.
2018-03-07 10:54:32 -07:00
Matthew Flatt
ac2addeeb6 expander: fix 'origin on let-syntax-bound id-macro expansions 2018-03-07 08:20:57 -07:00
Matthew Flatt
3861da41ed remove debugging temporary 2018-03-07 08:16:56 -07:00
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
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
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
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
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
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