Commit Graph

40920 Commits

Author SHA1 Message Date
Matthew Flatt
27eb177b9d add {symbol,keyword}->immutable-string and string-append-immutable
There could be many more functions that produce immutable strings
directly, and we want the default functions to do that in some future
language. For now, these three rae the most immediately useful for
avoiding unnecessary allocation in Racket CS.
2019-12-17 19:41:41 -07:00
Matthew Flatt
2270513c27 cs: fix procedure-extract-target for applicable struct result 2019-12-17 17:13:07 -07:00
Matthew Flatt
63bc848f79 expander: another approach to fixing nested instantiation
Mostly reverts ee4ceb7ae4 and tries a different approach. The prevoius
approach did not handle the case where the module begin instantiated
was tiggered by a module at a different (higher) phase.

Closes #2981
2019-12-17 14:02:45 -07:00
Sam Tobin-Hochstadt
6b1dad21eb Trim requires.
Eliminates another ~300 instantiations from `racket -cl racket/base`.

small-scheme.rkt is no longer used in `racket/private`.

c.rkt was an accidentally-committe file.
2019-12-17 13:02:47 -05:00
Matthew Flatt
81d73d9849 adjust raco pkg tests to work with Racket CS overlay
Commands that use `raco` need to be `racocs`, etc.
2019-12-17 08:38:04 -07:00
Matthew Flatt
d7f2bd3e15 cs: eval multiple expressions provided with -e 2019-12-17 07:30:47 -07:00
Matthew Flatt
899aa24756 cs: avoid problem waking up on TCP connect completion
Maybe there's a problem in `rktio_poll_add_connect` that I just can't
see, or maybe it's a Mac OS bug, but `rktio_poll_add_connect` doesn't
seem to reliably wake up the process when the TCP connection becomes
ready. Traditional Racket happens to avoid the problem by registering
the connection file descriptor with the semaphore table; doing that
for Racket CS also avoids the problem there.
2019-12-17 07:08:57 -07:00
Matthew Flatt
61000a454e cs: cooperate with immutable strings for symbols in Chez Scheme
Take advantage of new guarantees/support for immutable strings within
a Chez Scheme symbol representation. Consistent use of immutable
strings at the boundary avoids potential non-determinism.
2019-12-16 18:14:16 -07:00
Matthew Flatt
c7388f9fa8 places: repair clean-up after serialize failure 2019-12-16 12:33:14 -07:00
Sam Tobin-Hochstadt
f7c39512ab Modules with tests for unsafe mode can be cross-phase persistent.
Also, mark several more modules as cross-phase persistent.
2019-12-16 13:58:35 -05:00
Matthew Flatt
2d695be78c racket/promise: repairs for custodian change
Closes #2973

Note that the test is in the "lazy" package, commit 2cc3a24343.
2019-12-16 08:58:08 -07:00
Matthew Flatt
15c0e34bed cs: fix default constructor name and initial accessor/mutator name 2019-12-16 08:39:56 -07:00
Matthew Flatt
c3a57f6fb7 docs: update license text 2019-12-15 11:17:36 -07:00
Matthew Flatt
c8877055da avoid absolute CPU time requirement in test
Relevant to #2964
2019-12-14 10:21:49 -07:00
Ryan Culpepper
6380df8aca
update expander logging (#2968)
This simplifies the expander logging in some places and adds logging for arming/disarming and scope changes (eg syntax-local-introduce) so the macro stepper can better track term identity.

This relies on corresponding changes to the racket/macro-debugger repo.
2019-12-14 01:27:24 +01:00
Brian Wignall
bcd8de5c9a Fix typos 2019-12-13 06:31:50 -07:00
Paulo Matos
b14b2400fd
Add comment to CI step (non-functional)
@samth requested a clarification of the condition under #2959 
Hopefully this comment makes it clear that we require the condition in order not to tarball and upload the clang artifact on Linux.

The choice not to test both the gcc and clang builds was made to save time and because we are not testing the compiler itself, but racket. 
Hopefully by the time we get these production compilers, they are generating correct code.
2019-12-13 08:52:28 +01:00
Matthew Flatt
58f51f15ed repair test of memory use
Fix a test to be less sensitive to the cost of non-tail recursion when
the goal is to check reachability of values from the current
continuation.

Related to #2963
2019-12-12 16:12:47 -07:00
Matthew Flatt
bf41fee58d fix argument check for instantiate-linklet
Closes #2962
2019-12-12 12:08:08 -07:00
Matthew Flatt
387f90ed92 document and test dict behavior on bad association lists
Follows up on ce3992dbf3 to document and test the constraints
that required reverting the earlier change.
2019-12-11 16:33:18 -07:00
Sam Tobin-Hochstadt
ce3992dbf3 Revert "Fix gen:dict methods for alists with duplicate keys (#2846)"
This breaks existing packages; see https://github.com/greghendershott/aws/issues/64
for an example.

Unfortunately, we probably have to live with this limitation of the
interface because of existing code.

This reverts commit 966399dec6.
2019-12-11 15:59:07 -07:00
Matthew Flatt
a191f77c15 rktio: fix Android workaround
When dynamic-library support moved to rktio, only one of two references
to (an arbitrary exported) function was updated.

Closes #2947
2019-12-11 15:21:17 -07:00
Matthew Flatt
e311eed538 increase core-tests timeout
Relevant to #2961
2019-12-11 15:08:14 -07:00
Matthew Flatt
843824c94e build with musl
Skip libunwind support for musl-based Linux environments, and avoid
`__FLOAT_BITS`, etc., in xform.
2019-12-11 14:32:56 -07:00
Fred Fu
4405ed669f add struct-type-property-predicate-procedure? 2019-12-10 10:01:11 -07:00
Paulo Matos
56afa77a2a
On Linux build with clang as well (#2959)
We build on Linux with clang and gcc, but test only the gcc-compiled version. 
On macos we only build with clang.
2019-12-10 17:55:56 +01:00
Julien Delplanque
2e56976dab Fixed small typo. 2019-12-10 06:09:32 -07:00
Paulo Matos
529c0e93a8
Correct which racket is built for CS bootstrap (#2952) 2019-12-10 09:17:43 +01:00
Matthew Flatt
a319b7e073 cs: wake up main thread blocked on fsemaphore
If a future posts to an fsemaphore that the main thread is waiting on
but went to sleep, then be sure to wake up the main thread.

Relevant to #2957
2019-12-09 07:18:16 -07:00
Matthew Flatt
6db1bdda1b cs: fix touch on a future blocked on a fsemaphore
Relevant to #2957
2019-12-09 06:25:39 -07:00
Ben Greenman
8e884089a2
doc: pidefterm -> deftech (#2956)
Use `deftech` for "structure subtype" so that Typed Racket can more
easily reference it
2019-12-08 17:55:26 -05:00
Matthew Flatt
db626bde3d schemify: don't copy uninterned symbols across module boundary
As pointed out by @gus-massa at racket/ChezScheme#15
2019-12-08 06:22:20 -07:00
Matthew Flatt
602c7b0331 avoid some GC tests on CGC
Relevant to #2954 #2955
2019-12-07 17:10:31 -07:00
Matthew Flatt
6e958d8339 net/sendurl: doc correction 2019-12-07 16:39:44 -07:00
Reuben Thomas
26e3651ef9 net-lib/net/sendurl.rkt: use same executable filtering on all systems
Use “cmd.exe” on Windows. This enables us to have a list (of length one on
macOS and Windows) of launcher executables on all platforms, and use
send-url/unix, now renamed to send-url/simple, to launch all URLs without a
query or fragment.
2019-12-07 16:38:38 -07:00
Reuben Thomas
a17c0fa0f8 net-lib/net/sendurl.rkt: use send-url/trampoline for all queries/fragments
Since we need send-url/trampoline for URLs containing a query or fragment in
the default case on all OSes, simplify the code and always use it for such
URLs.
2019-12-07 16:38:38 -07:00
Reuben Thomas
0680a2e2ee net-lib/net/sendurl.rkt: overhaul and simplify; support xdg-open on Unix
Unix: Cut down all-unix-browsers: add xdg-open, which is standard and can
launch applications for files instead of a browser, like the macOS and
Windows equivalents; remove defunct browsers galeon, camino, skipstone,
htmlview, and the rare dillo. Make opera use try-remote, which is identical
to the code it was using. xdg-open cannot handle queries or fragments in
URLs, so for this case factor out send-url/trampoline from send-url/win and
use it.

macOS: Remove try-to-find-macosx-users-browsers, and use “open” instead of
“osascript”; “open” uses the user’s configured browser. As before, it is
still possible to specify a particular browser.

Windows: Shorten and simplify the justification of the trampoline, which is
mostly out of date, though the trick is still needed.
2019-12-07 16:38:38 -07:00
Reuben Thomas
e4d43fa0dc net-lib/net/sendurl.rkt: remove systype function
XonX is defunct, so this function is no longer needed.
2019-12-07 16:38:38 -07:00
Matthew Flatt
83ae4cd9a4 README.md: add a setence to describe Racket
Based on #2929 by @joshuafitzmorris
2019-12-07 11:22:20 -07:00
Matthew Flatt
965ea4ff2b increase timeout for "deterministic-zo.rkt" test
Racket CS needs more time.
2019-12-07 06:14:41 -07:00
Matthew Flatt
fc9ccb8e8f cs: unbreak boot file concatenation 2019-12-06 19:04:53 -07:00
Matthew Flatt
16f1ae7895 cs: add "repeats N more times" printing for error traces 2019-12-06 16:29:17 -07:00
Matthew Flatt
2e53a4c4ff schemify: deterministic order for some cross-inline info 2019-12-06 16:20:52 -07:00
Matthew Flatt
baab2b9974 cs: avoid full paths attached to functions
Source locations are attached to functions for backtraces. With
traditional Racket, those source locations are connected to the
machinery of `current-write-relative-directory` and
`current-load-relative-directory` to avoid absolute paths, but that
machinery is difficult to integrate into the Racket CS compilation
model. So, since they're "just" for stack traces, save only a couple
of elements of the path.
2019-12-06 16:20:52 -07:00
Matthew Flatt
f664483c05 docs: unbreak Reference 2019-12-05 17:31:23 -07:00
Matthew Flatt
a1567eb416 schemify: repair for JIT pass 2019-12-05 17:25:51 -07:00
Matthew Flatt
d7052da691 schemify: more determinism for lifted procedures
A further repair to 6f919635da.
2019-12-05 15:56:32 -07:00
Matthew Flatt
898517107f schemify: purge all gensyms
Although some of them probbably do not matter (while some certainly
do), avoid various possible problems by always using a locally
determinsitic replacement for `gensym`.
2019-12-05 14:41:33 -07:00
Matthew Flatt
d5ab0fce05 schemify: avoid gensym for struct-type representation
A gensym can end up in known-value information, which makes compiled
files non-deterministic.
2019-12-05 09:37:39 -07:00
Matthew Flatt
f5e6ce4282 schemify: name raw accessor/mutators
Inferred names show up as part of the compiled code, so make sure
they're normalized instead of gensyms.
2019-12-05 08:46:15 -07:00