Commit Graph

39259 Commits

Author SHA1 Message Date
Matthew Flatt
a6e6bc0ebd cs: make JIT mode generate non-nested fragments
Applying jitify to a linklet now generates fragments of code that
are not nested. The drawback of this approach is that calling
a nested function needs an extra indirection, and the closure
has an extra slot. The advantage is that the fragments can be
separately compiled and fasled, which could enable a cache of
compiled fragments.
2018-06-22 15:57:50 -06:00
Matthew Flatt
4fa8a9870d cs: report file for bad-version errors 2018-06-22 13:39:08 -06:00
Matthew Flatt
00b9acdac3 cs: fix procedure names
Use a `(let ([<name> ....]) <name>)` wrapper to communicate
an 'inferred-name property from correlated objects to
Chez Scheme. This stategy relies on a Chez Scheme patch to
make the wrapper work consistently.
2018-06-22 12:32:17 -06:00
Matthew Flatt
cf0b38aee9 cs: drop unused correlation early
The improvements reported in 74012f8c57 were actually due to a broken
experiment that dropped source locations on application forms, instead
of preserving them in marshaled code. Adjust the expansion pipeline
to do that earlier and intentionally.

The xify pas doesn't help all that much after all, but it's still more
comfortable to be independent of local-variable names.
2018-06-22 11:04:00 -06:00
Matthew Flatt
74012f8c57 cs: add xify pass for JIT mode
The xify pass replaces local variable names with `x0`, `x1`, etc.
Using a minimal set of symbols makes the fasled form smaller
and typically take only 60-70% as long to read.
2018-06-22 09:57:50 -06:00
Matthew Flatt
d8832723e9 expander: fix corner for syntax-debug-info
Add a missing argument in the implementation of binding traversals for
"all bindings" mode.
2018-06-22 09:57:03 -06:00
Sam Tobin-Hochstadt
30eb06874b Retry fetching from unicode.org when it fails. 2018-06-22 11:18:54 -04:00
Leif Andersen
eb97c7f54e Update deserialize-module-guard. (#2147)
It can now optionally return a pair to redirect the module
that is dynamic-required.
2018-06-22 10:48:12 -04:00
Matthew Flatt
d061970a01 adjust place tests and failure mode
The places test suite included some tests that create lots of places
and don't wait for them, which can lead to an overload of places that
exhausts resources such as file descriptors. Improve the tests, and
also improve a failure behavior from a crash to an error message.
2018-06-21 10:16:02 -06:00
Matthew Flatt
8678fbc90c place-kill: wait for place to finish
The `place-kill` function sends a message to another place to
terminate, but it didn't wait for that message to take
effect before returning. Worse, it put the place object in a
state that claimed that the place had terminated.
2018-06-21 09:00:15 -06:00
Matthew Flatt
d4fc865319 style nit: cond on its own line 2018-06-21 09:00:15 -06:00
Sam Tobin-Hochstadt
b6a3f40bd9 Use a custom implementation of promises.
Saves 43 definitions and 397 lines of (de)compiled code.
2018-06-21 10:37:12 -04:00
Matthew Flatt
61f59a2476 ffi/unsafe docs: clarify C->Racket transtion for _[std]bool
Closes #1817
2018-06-20 18:25:25 -06:00
Matthew Flatt
6ec6b39827 reference: document the synchronizaion result of delay/sync
... and, by implication, `delay/therad`.

Closes 1820
2018-06-20 18:19:57 -06:00
Matthew Flatt
4f658904b5 reference: mention that a place is managed by a custodian
Closes #1824
2018-06-20 18:18:15 -06:00
Matthew Flatt
2a5f8408d1 ffi/unsafe docs: clarify allocation by (_ptr o ...)
Closes #1827
2018-06-20 18:08:17 -06:00
Matthew Flatt
f3fc583c6f ffi/unsafe: document make-late-weak-{box,hasheq}
Closes #1828
2018-06-20 18:05:41 -06:00
Matthew Flatt
f58b99aa74 ffi/unsafe/alloc: add decallocation on place exit
Closes #1830
2018-06-20 16:54:59 -06:00
Matthew Flatt
8fb8d3c936 ffi/unsafe: add _wchar
Closes #1843
2018-06-20 16:54:59 -06:00
Gustavo Massaccesi
76c30df8e6 fix docs of make-custom-set-types
Notice that the vales returned by make-custom-hash-types have a
different order.

Thanks to Jos Koot for the report.
2018-06-20 19:39:26 -03:00
Gustavo Massaccesi
6d775e5c5c optimizer: reduce (length '()) ==> 0
This pattern is common in the internal code of the keyword procedures
2018-06-20 17:34:21 -03:00
Matthew Flatt
598a5baf6a JIT: fix miscompilaton of char=?, char<?
When the first subexpression is complex and the second
is a literal character, the generated JIT code swaps the
argument order, but compilation didn't swap the test for
whether one or the other is a literal character to skip
a run-time test.
2018-06-20 13:43:19 -06:00
Matthew Flatt
da41bdf43a syntax/modread: adjust error-message quotes
While we're adjusting error messagaes, change `...' to `...`.
2018-06-19 20:12:01 -06:00
Stephen Chang
8620bc50be clean up check-module-form
- truly ignore expected-module (in err msgs) to match docs
- remove dead code
2018-06-19 20:10:16 -06:00
Paulo Matos
d6fe30156c Fix indentation
Remove tab and add spaces, which is how the rest of the file deals with this.
Avoid a misaligned preview in github editor.
2018-06-19 20:05:35 -06:00
Matthew Flatt
0b71883833 reference: further corrections to the surrogate docs 2018-06-19 20:01:59 -06:00
Leif Andersen
b7cb35fd66 Update technical bugs in the surrogate docs.
It claimed two extra methods were generated when no
(#:use-wrapper-proc) was provided: (set/get)-surrogate-wrapper-proc.

Removes that claim from the docs.

Also fix a few minor stray punctuation marks.
2018-06-19 19:43:44 -06:00
Winston Weinert
99a627b195 Add key phrase "best practices" to style guide
I tried Googling for Racket best practices, and could not easily find
the style guide. Adding these key words to the text should improve
discovery of the style guide when one forgets the key word "style" :)
2018-06-19 19:34:35 -06:00
Gustavo Massaccesi
17acb7458b avoid compiler warning in jit 2018-06-19 19:27:35 -06:00
Matthew Flatt
a9601e3fe7 adjust some filesystem tests to work as root
Closes #2137
2018-06-19 18:01:41 -06:00
Matthew Flatt
ea31e6c810 docs: typo repairs in the linklets chapter 2018-06-19 16:04:27 -06:00
Matthew Flatt
b9401a7a2a docs: fix "linklet directory" that should be "linklet bundle"
Closes #2138
2018-06-19 16:04:27 -06:00
Matthew Flatt
931db97fc0 docs: correct and improve docs for instance-set-variable-value!
Closes #2139
2018-06-19 16:04:27 -06:00
Matthew Flatt
d72ccb521d MzCom: repairs for some Windows configurations
Registration of the typelib seems to be required on some modern
configurations, and myssink must claim to not implement
INoMarshal.
2018-06-19 13:29:19 -06:00
Sam Tobin-Hochstadt
ff867155d1
Add Sarah and Andrew. 2018-06-19 11:25:55 -04:00
AlexKnauth
f95fcb64c0 syntax:read-xml: test that src argument becomes the syntax-source 2018-06-18 19:52:52 -04:00
AlexKnauth
7ec97942c0 add documentation for src argument to syntax:read-xml 2018-06-18 19:52:52 -04:00
AlexKnauth
3996f23879 add src argument to syntax:read-xml
and pass it through into the syntax-source field of the result
2018-06-18 19:52:52 -04:00
Matthew Flatt
0cd640811b reference: use racket/private/kw-syntax-local as binding source
Using `racket/private/kw-syntax-local` as the source for
`local-expand`, etc., means that modules that re-export that
one (such as `scheme/base`) get the right documentation links.
2018-06-18 08:37:51 -06:00
Gustavo Massaccesi
9cd3798ca9 schemify: add reduction of (not #f) 2018-06-16 22:44:39 -03:00
Matthew Flatt
96161f68eb fix non-initial call to scheme_basic_env
When an embedding application calls `scheme_basic_env` a
second time, it's supposed to reset the main namespace, but
the new expander wasn't reset correctly.
2018-06-16 15:49:38 -06:00
Matthew Butterick
d2a69d6384
doc typos 2018-06-16 13:39:32 -07:00
Matthew Flatt
3c752e008e Racket HISTORY note for v7.0 2018-06-16 09:59:38 -06:00
Matthew Flatt
d3067465e3 setup/unixstyle-install: use delete-directory/files
Use `delete-directory/files` instead of a separate implementation
here to get the special deletion mode for Windows files.
2018-06-16 09:59:38 -06:00
Philip McGrath
5a4ea2cd1b json: small fixes
* Fix handling of single-percision infinities and nan

* Document that non-`hash-eq?` hash tables are accepted by `jsexpr?`.

* Document that the value of `json-null` is recognized using `eq?`

* Use `case` instead of `assoc`.

* Use contracts
2018-06-16 00:42:43 -04:00
Sam Tobin-Hochstadt
3b13cb899a "Fix" the packers.rkt test.
It appears that sometimes file timestamps can be off by 2, in
addition to the granularity-of-2-seconds issue.
2018-06-15 21:12:34 -04:00
Matthew Flatt
047157dc30 reference: doc repairs
Doc corrections related to functions that have new optional arguments
in v7.0.

Closes #2134
2018-06-15 17:19:42 -06:00
Alexis King
41fd4f3a5e Allow local-expand to opt-out of implicit extension of the stop list
Also, adjust the expansion of #%plain-module-begin to reinstate the stop
list after initial partial expansion.
2018-06-15 17:56:52 -05:00
Matthew Flatt
88e5daf65c add MemoryModule copyright to license page
Include the MemoryModulee copyright alongside the ones for other libraries
that are compiled into the Racket executable.
2018-06-15 16:43:30 -06:00
Oling Cat
331c39cfe9 The HtDP/2e is about Racket now. 2018-06-15 16:21:01 -06:00