Commit Graph

41059 Commits

Author SHA1 Message Date
Matthew Flatt
11f4a0048b thread: fix scheduler's handling of async callbacks
If the callback takes too long to run, then a second copy was
scheduled --- which likely schedules a third copy, and so on. This
problem could lead DrRacket to get stuck in a GC cycle, for example.
2020-06-01 13:25:00 -06:00
Matthew Flatt
613155a317 doc: repair example in Inside 2020-05-31 17:17:17 -06:00
Matthew Flatt
d5024cf595 schemify: keep simple loop patterrns intact
In Schemify's lifting pass, avoid disturbing loop patterns that Chez
Scheme will recognize. Keeping the loops intact is helpful for
floating-point unboxing, where (currently) unbxoing is supported
across loop iterations but not across function boundaries in general.
2020-05-31 17:17:17 -06:00
Paulo Matos
aa0cfd0557
Fix typo in comment 2020-05-30 08:42:01 +02:00
frogbird
f44877bf4b added in-list 2020-05-28 14:06:52 -05:00
frogbird
2cca55c38b moved up coerce-contract check 2020-05-28 14:05:00 -05:00
Paulo Matos
bb4317e545
Improve Windows CI Testing (#3220)
Build and Test 3m and CS under Windows 10

This improves testing considerably on Windows.
For both PRs and Pushes, build 3m and CS on Windows and run tests.
2020-05-28 14:19:50 +02:00
Sam Tobin-Hochstadt
72ef9f8b6b Avoid empty prototype list.
Related to github/codeql#3535.
2020-05-26 13:17:57 -04:00
Paulo Matos
6e4bbcb4b9
Non-split build/test workflow on Windows10 for push commits (#3218) 2020-05-26 19:06:31 +02:00
Paulo Matos
3657b096d6
Run CI jobs inside containers (#3134)
Also splits Linux and MacOS push workflows, since they cannot share a
matrix. Updates several checkout, upload/download-artifact actions to v2.
2020-05-26 17:53:58 +02:00
Matthew Flatt
e4485d1e11 doc: more notes on dynamic-require examples
Suggested by Shriram.
2020-05-25 07:49:15 -06:00
Sorawee Porncharoenwase
83d9e56296 doc: body-expr -> body 2020-05-24 14:22:38 -06:00
Matthew Flatt
406a67def6 cs: fix resolve-path to preserve directory separator
Closes #3212
2020-05-24 13:48:35 -06:00
Matthew Flatt
f0c79b6b16 doc: fix evaluation order for parameterize
Closes #3211
2020-05-24 13:23:23 -06:00
Matthew Flatt
f66fff1ca9 setup/xref: fix load-collections-xref for multple uses
When the result of `load-collections-xref` is used in multiple
document renderings (e.g., multiple calls to `render`), then an
intenal cache behaved the wrong way. Fixing the problem required an
extension to `scribble/xref`.
2020-05-24 11:05:53 -06:00
Matthew Flatt
462a4f5c37 adjust test to avoid port leaks 2020-05-24 07:38:56 -06:00
Matthew Flatt
9d8e048e04 unbreak test (that no longer has a timeout) 2020-05-24 07:21:43 -06:00
Matthew Flatt
2434bb3a0c avoid an unnecessary timeout in a test 2020-05-24 07:19:46 -06:00
Matthew Flatt
b297271a5c doc clarification on continuation-mark-set-first performance 2020-05-24 07:13:14 -06:00
Matthew Flatt
0473bd52f8 bc: fix use of fsemaphores in the main thread
Fix a locking mistake in the implementation of fsemaphores.
2020-05-23 19:21:56 -06:00
Sorawee Porncharoenwase
eba1798c8a doc: replace taint with dye pack 2020-05-23 15:02:56 -06:00
Matthew Flatt
3473a2eeb2 raco setup: accomodate arbitrary files names when checking dependencies 2020-05-23 14:30:06 -06:00
Robby Findler
d590eee0c7 add more checking to the bst/c example 2020-05-22 20:57:25 -05:00
Robby Findler
cc9514c290 add missing argument to raise-syntax-error 2020-05-22 20:56:45 -05:00
Sam Tobin-Hochstadt
8b629a329b Mark a few more simple expressions as pure in the expander.
Related to #3204.
2020-05-22 13:57:54 -04:00
Bogdan Popa
617f9e9bd6 net/uri-codec: fix contracts for ->alist and ->alist fns
The behavior was already correct, but the contracts in the
documentation did not reflect it.
2020-05-22 10:30:36 -04:00
Paulo Matos
0bb8b735c7
Only rebuild docker images if changes are done in master branch (#3209) 2020-05-22 15:30:05 +02:00
Paulo Matos
35724362fa Fix GitHub Actions Workflow name 2020-05-22 14:58:38 +02:00
Paulo Matos
b1fedc5c38
Build Docker Images from GitHub Actions (#3206) 2020-05-22 14:47:53 +02:00
Sorawee Porncharoenwase
0c55f8dbc9 doc typo: missing /c 2020-05-22 08:06:42 -04:00
Paulo Matos
97cdf8da88
Add initial LGTM configuration for Racket (#3200) 2020-05-22 08:30:47 +02:00
Sam Tobin-Hochstadt
7b9bf6285f More verbose error output for deterministic-zo test. 2020-05-21 22:52:02 -04:00
Matthew Flatt
a17e662597 expander: shortcut for parsing already expanded
When a `module` or `let-syntax` form is `expand`ed (i.e., when a
syntax object must be generated), then code is expanded to a syntax
object and then parsed again for compilation. In that second parse,
take advantage of the fact that the expression is already expanded,
which means that no new scopes or bindings need to be created.

Related to #3165
2020-05-21 18:53:15 -06:00
Matthew Flatt
bdb0256220 cs: fix hash-code mixing
Hashing for structures and hash tables used a very poor mixing
function.
2020-05-21 15:38:14 -06:00
Matthew Butterick
ffdfd1824d
doc typo: another missing possessive 2020-05-21 09:30:15 -07:00
Matthew Butterick
7dca5047dc
doc typo: missing possessive 2020-05-21 09:10:41 -07:00
Matthew Butterick
c1fe5e5719
doc typo: "bytes string" to "byte string" (2 more) 2020-05-21 09:07:00 -07:00
Matthew Butterick
d1ba6cd8b6
doc typo: "bytes string" to "byte string" 2020-05-21 09:05:50 -07:00
Matthew Flatt
f7f75fa901 avoid compiler warning 2020-05-21 10:00:25 -06:00
Paulo Matos
469e8186b3 Replace build dependency g++ by clang in docker image 2020-05-21 17:27:25 +02:00
Paulo Matos
62c9a79c68
Use threaded time functions (#3199) 2020-05-21 15:45:22 +02:00
Matthew Flatt
08d4698934 cs-bootstrap: additions to work on latest Chez Scheme 2020-05-20 10:46:57 -06:00
Matthew Flatt
9ba5fd6a0f cs: fix issues with source->sfd cache
The cache wasn't kill-safe, and probably a weak cache could also lead
to non-determinism of source-path sharing across submodules.

Related to #3193
2020-05-20 08:29:56 -06:00
Matthew Flatt
07d3f3a2ec cs: faster number->string on flonums 2020-05-20 06:31:02 -06:00
Paulo Matos
43c8876643 Add procps to test dependencies
`ps` is required by subprocess.rktl test library.
`ps` is found in `procps`, so we install it.

This should move #3134 forward.
2020-05-20 11:44:40 +02:00
Matthew Flatt
91f8d8a72f expander: fix intering of some module path indexes for ".zo"
Two "self" module path indexes are treated the same on load when they
have the same resolved module name. Fix the serialization intern table
to take that into account and avoid some GC-based non-deterministism.

Related to #3165
2020-05-19 16:49:26 -06:00
Matthew Flatt
12bc1b3841 expander: adjust module-path-index cache implementation
Change the implementation to one that is a simpler and slightly more
effective.
2020-05-19 16:49:26 -06:00
Matthew Flatt
b7908e97a1 cs makefile: refine handling of file permissions
On a second look, 6d06086dad unnecessarily duplicates work already don
by `copy-file` in most cases. For the case where `copy-file` was not
used, there was code to explicitly set an executable bit, but the new
approach is better and should be used just there.
2020-05-19 16:49:26 -06:00
Matthew Flatt
b6c5515efa cs: faster write-char on ASCII 2020-05-19 09:54:52 -06:00
Matthew Flatt
1655b6e2bb ffi/unsafe: match i, o, or io as symbols
Changes `_ptr`, `_list`, and `_vector` syntax to be more permissive.
Matching by symbol rather than binding is usually the wrong choice,
but the position where `i`, `o`, or `io` is recognized in `_ptr` and
company is not an expression position. Also, `i`, `o`, and `io` are
not otherwise bound. So, it's difficult to justify the current
behavior. If `_ptr` and company were defined today, we'd use keywords
like `#:i` instead of symbols like `i`.

A potential drawback of this change is that a `i`, `o`, or `io` might
be written with the intent of referring to a binding, and this change
makes such a reference silently allwowed instead of an errror. That
seems relatively unlikely, however, while having to avoid `i`, `o`, or
`io` as a binding is occassionally a pain --- something I've run into
once or maybe twice.

Closes #887
2020-05-19 09:54:52 -06:00