Commit Graph

39735 Commits

Author SHA1 Message Date
Matthew Flatt
5a12d7bf71 cs: remove bound-identifier=? from '#%kernel table 2019-01-02 10:41:41 -07:00
Matthew Flatt
0120d9e1af fix test to export a foreign function 2019-01-01 17:25:56 -07:00
Matthew Flatt
9731394e2a cs: ensure that arguments to foreign functions are retained
Make a call to a foreign function behave as in traditional Racket: the
arguments are considered reachable un their unwrapped forms until the
foreign function returns.
2019-01-01 16:30:39 -07:00
Matthew Flatt
709f327e4e io: remove incorrect symbol shortcut for format and "~s"
As exposed by a "print.rktl" test, the shortcut was wrong for symbols
that write with escapes.
2019-01-01 14:33:26 -07:00
Matthew Flatt
f85d18aed6 io: fix printing of '|| 2019-01-01 13:58:48 -07:00
Matthew Flatt
13e2817a2d fix typo in comment and sync "startup.inc" 2019-01-01 13:58:39 -07:00
Matthew Flatt
c60a081115 expander: fix bootstrap to work on RacketCS
The expander relies on an extra primitive when running on RacketCS.
2019-01-01 13:43:04 -07:00
Matthew Flatt
b9e1d23f0d cs: allow unsafe-undefined in variables
Distinguish "not initialized" from "value is unsafe-undefined".
Otherwise, `(dynamic-require 'racket/unsafe/undefined 'unsafe-undefined)`
 fails.
2019-01-01 13:27:05 -07:00
Matthew Flatt
dbabafa147 cs: support second argument to primitive-table
The two-argument mode is needed to support building RacketCs using
RacketCS.
2019-01-01 13:14:07 -07:00
Matthew Flatt
7797d3672b fix 'interior mode for malloc 2019-01-01 11:30:11 -07:00
Matthew Flatt
5cec8d52c2 schemify: fix quoted box in interpret mode 2019-01-01 09:19:18 -07:00
Matthew Flatt
7e83a6038a schemify: fix pessimization of constructor applications
A missing `unwrap` caused references to structure constructors to be
treated as potentially non-primitive procedures, which significantly
slows down calls to the constructor.

Probably, this started going wrong at a point where original names
were more consistently associated to defined identifier.
2018-12-31 14:16:31 -07:00
Matthew Flatt
21bbf1b42e cs: vfasl for Windows and Unix variants 2018-12-31 11:24:35 -07:00
Matthew Flatt
47d42d88cb cs: add -luuid for linking Chez Scheme on Linux 2018-12-31 10:09:24 -07:00
Matthew Flatt
846c40ff6c cs: restore vfasl 2018-12-31 08:16:45 -07:00
shhyou
c21beab167 Add sub-range-binder for define-logger 2018-12-30 18:39:34 -06:00
Matthew Flatt
e7c6efdaa8 cs: disable vfasl for now
Further testing uncovered a problem with vfasl loading.
2018-12-30 16:10:35 -07:00
Matthew Flatt
3c2003d01e cs: fix for fasl-related definition 2018-12-30 14:00:05 -07:00
Matthew Flatt
1052bc8dff unbreak cify build 2018-12-30 06:10:11 -07:00
Matthew Flatt
59246a0107 cs: fix call-with-immediate-continuation-mark and chaperones
Also, repair `call-with-immediate-continuation-mark` in tail
position with respect to a prompt.
2018-12-30 06:00:50 -07:00
Matthew Flatt
e37199cd7a cs: fix letrec
Report source name when accessing a variable too early, and allow
multiple returns (based on continuation capture) for the right-hand
side of a `letrec`.

The repair directly implements `letrec` as needed in terms of `let`
and `set!`, instead of relying on Chez Scheme's `letrec`, unless
right-hand sides are simple enough. Implementing `letrec` that way
risks losing Chez Scheme optimizations, but schemify takes care
of many improvements already.
2018-12-30 05:18:16 -07:00
Matthew Flatt
cea82c1ddc cs: use vfasl for boot files 2018-12-30 05:18:16 -07:00
Matthew Flatt
326e555146 expander: adjust stx serialization for RacketCS
Get more of the benefit of traditional Racket's lazy bytecode
unmarshaling by using an explicit `fasl->s-exp` stap on the serialized
form of syntax objects. This approach also avoids generating pointless
machine code for constructing the serialized form, effectively using
`fasl->s-exp` as an interpreter. The result is significantly smaller
".zo" files for RacketCS and slightly faater load times.
2018-12-30 05:18:16 -07:00
Matthew Flatt
75c30b4e2e cs: faster srcloc unmarshaling 2018-12-30 05:18:16 -07:00
John Clements
885464c2ff
reverse order of bits in mask (#2430)
I'm going to go ahead and commit this without review, fingers crossed.
2018-12-29 10:31:59 -08:00
Matthew Flatt
2c1cf20d17 cs: fix build to uncompress boot files
The uncompress step was broken by the switch to use "setup-go.rkt".
2018-12-22 18:35:56 -07:00
Matthew Flatt
86bbdab1de cs: reduce startup code size 2018-12-22 18:35:56 -07:00
Ben Greenman
b60fed7916
improve error-handling in uni-norm test (#2427)
+ overwrite any failed download attempts (after catching the exception &
  retrying the download)
+ pause between download attempts
+ ensure that `(get-test-file)` always returns a file that exists
+ check whether downloaded file is empty
+ delete bad downloaded files
+ skip the test if download fails
2018-12-21 14:33:39 -05:00
Matthew Flatt
2fc594fcc4 cs: make public udp-bound? and udp-connected? safe 2018-12-20 21:31:43 -07:00
Matthew Flatt
d14238ae31 cs: fix udp-receive!
Closes #2433
2018-12-20 21:24:55 -07:00
Matthew Flatt
b38d437a00 file/untar: allow \0s for user and group ids
Some .tar packer (on Windows?) zeros out the user and group fields,
and `file/untar` doesn't use them anyway.
2018-12-19 19:34:39 -07:00
Gan Shen
8ce8058796 fix typo 2018-12-16 11:09:24 -06:00
Sam Tobin-Hochstadt
216311e8ee
Fix documentation typo.
Closes bug all/15568.
2018-12-14 14:48:32 -05:00
Sam Tobin-Hochstadt
9a42fab7fe Rebuild expander for b1e765ca31. 2018-12-13 16:00:17 -05:00
Sam Tobin-Hochstadt
c77388eeef Include radix in low-level error message. 2018-12-13 16:00:17 -05:00
Sam Tobin-Hochstadt
d2fdfe973e Fix expander demo to go with 19e709d27b. 2018-12-13 16:00:17 -05:00
Dan Feltey
a0fdee59b4
Add support for collapsible contracts (#2367)
* Add support for space-efficient vector and arrow contracts.

When an eleventh contract would be applied to a function or vector,
switch representation for the wrapper and try eliding redundant
checks. The resulting value keeps a constant number of
chaperone/impersonator wrappers regardless of the number of contracts
applied to it, and won't run any (provably) redundant checks.

This avoids a pathological case where, e.g., a function crosses a
boundary inside a loop, and gets wrapped N times (or worse, 2^N).

The optimization for function contracts currently only applies for
fixed-arity functions and contracts, and only for functions with known
result-arity of 1. These limitations are not fundamental.

Checking specific checks is not as optimized as for regular arrow
contracts yet. (Specifically: arity-specific wrappers and
tail-marks-match support is missing.) Again, not a fundamental
limitation.

Further described in the OOPSLA 2018 Paper: "Collapsible Contracts: Fixing a Pathology of Gradual Typing"

In collaboration with Ben Greenman, Christophe Scholliers, Robby Findler, and Vincent St-Amour.
2018-12-13 14:58:56 -06:00
Alexis King
15d0ccc2c0 Fix splicing-parameterize around begin 2018-12-13 14:28:50 -06:00
Alexis King
1d1245b092 Allow explicitly providing a parent logger to define-logger 2018-12-13 10:22:31 -06:00
Matthew Flatt
347f5b8ccf compiler/cm: unbreak dependency checking
Recent changes to adapt cm to cross-multi mode also attempted to
improve dependency checking to avoid prematurely committing to
compiling an old dependency, but that improvement was broken.
2018-12-12 08:44:06 -07:00
Matthew Flatt
aded42468e expander: fix use of root namespace for readers 2018-12-10 20:38:42 -07:00
Sam Tobin-Hochstadt
2d4fb1da3d Basic tests also need racket/list. 2018-12-10 10:40:52 -05:00
Sam Tobin-Hochstadt
b1e765ca31 Check result of reading linklet hash. 2018-12-10 10:40:52 -05:00
Sam Tobin-Hochstadt
404964ea08 Reduce some build system dependencies. 2018-12-10 10:40:52 -05:00
shhyou
bf8b717ce8 Discuss the mutability of the result of quasiquote
Closes #2403.
2018-12-10 08:48:47 -06:00
Caner Derici
48cf9e54e3 regexp: add a target for writing the zo 2018-12-10 05:50:22 -07:00
Matthew Flatt
68394e7134 repair test
Fix test for 24aeea28c1 to work in "quiet" mode.
2018-12-09 14:14:07 -07:00
Matthew Flatt
140043fb65 in-indexed: repair call to wrapped continue-after-pos+val?
Closes #2418
2018-12-09 12:27:29 -07:00
Matthew Flatt
24aeea28c1 file-position: repair for OS pipe after peek
Closes #2419
2018-12-09 12:16:10 -07:00
Matthew Flatt
db2ac559a7 compiler/cm: avoid rewriting machine-indepedent files
The multi-cross mode, don't rewrite a machine-indepedent file
by recompiling it to itself. This shouldn't matter, but not
touching files makes the result cleaner.
2018-12-09 11:02:09 -07:00