Commit Graph

3513 Commits

Author SHA1 Message Date
Matthew Flatt
4a387c5b6a add some missing checks on bytecode parsing
The `tests/racket/stress/fuzz' test fails much less frequently,
though problems certainly remain.
2011-12-08 13:42:09 -07:00
Matthew Flatt
657be87c66 generalize gcd' and lcm' to work on rationals 2011-12-08 09:25:39 -07:00
Matthew Flatt
958352eefc fix futures bug related to GC
When a future is blocked on JIT generation, a lightweight closure
is captured, and then the future moves on, the runtime thread would
correctly shift the on-demand JIT argument to the captured copy
of the runstack. However, it would also add 2 to that pointer
to use as the argv array, and the captured runstack is not allocated
to allow interior pointers, so a GC during on-demand JIT could
crash. The solution is to keep an offset alongside the argv pointer
during JITting.
2011-12-06 09:31:52 -07:00
Matthew Flatt
4f669f0d7e fix futures handling of tail-call results 2011-12-05 19:11:32 -07:00
Matthew Flatt
55b6670084 mysterx patch from Antonio Menezes Leitao 2011-12-05 19:11:32 -07:00
Kevin Tew
9f7e730a77 another round of unused variable clean-ups 2011-12-05 19:11:32 -07:00
Matthew Flatt
b25d1b42d6 minor clean up 2011-12-05 19:10:22 -07:00
Matthew Flatt
8dd4f1de21 fix futures bug
When `(continuation-mark-set-first #f ...)' should produce #f and
the continuation is lightweight-captured, the result was NULL
instead of #f.
2011-12-05 19:10:22 -07:00
Matthew Flatt
8b3fae79c2 fix no-futures, no-places build 2011-12-04 08:07:13 -07:00
Matthew Flatt
59e41ce05f simpler stack-space check for Racket thread creation 2011-12-04 06:52:33 -07:00
Matthew Flatt
885bf6555f fix future resume in runtime thread with extra stack space
Also, fix the possibility that a future can shift from RUNNING
to PENDING while the runtime thread is checking PENDING then
RUNNING.
2011-12-04 06:52:33 -07:00
Matthew Flatt
333ffd7ede JIT tweak 2011-12-04 06:52:33 -07:00
Matthew Flatt
be80e7d864 fix an over-eager reordering by the bytecode compiler
The over-eager transformation could be space-unsafe, and it
could duplicate an unsafe operation whose result is used only
once in a function that eds up being inlined multiple times.
2011-12-04 06:52:33 -07:00
Matthew Flatt
db3878e309 another futures bug fix 2011-12-03 07:35:39 -07:00
Matthew Flatt
09d4d6c507 avoid uninitialized-variable warning from C compilers 2011-12-03 05:45:41 -07:00
Matthew Flatt
829e894af2 flatten (begin ... (begin ...)) in last pass of compiler
Flattening just makes bytecode slightly smaller.
2011-12-02 20:46:00 -07:00
Matthew Flatt
dd5d1c9046 another futures bug fix 2011-12-02 16:47:59 -07:00
Matthew Flatt
745c4b6470 fix another way that `racket/gui' instances can leak 2011-12-02 15:48:29 -07:00
Matthew Flatt
7397f710e2 fix reconstruction of `provide' forms in module expansion 2011-12-02 13:58:39 -07:00
Matthew Flatt
96330556e7 fix secondary hash-code for weak hashes 2011-12-02 12:11:52 -07:00
Matthew Flatt
67c3aa4b2d improve comments on `future_t' fields; remove a redundant field 2011-12-02 09:58:22 -07:00
Matthew Flatt
c2fac607f0 another futures bug fix 2011-12-02 09:41:59 -07:00
Matthew Flatt
efe165aeac futures bug fix 2011-12-02 08:04:52 -07:00
Matthew Flatt
48524906d8 fix bug in cross-module inliner 2011-12-01 14:05:42 -07:00
Kevin Tew
78c2d7b9ab fix variables assigned but not referenced 2011-12-01 14:05:42 -07:00
Matthew Flatt
1bc2441b5a switch to syntax property for 'compiler-hint:cross-module-inline 2011-12-01 10:26:48 -07:00
Kevin Tew
903eb9ec32 Added place_obj->dead to detect places that terminate normally 2011-12-01 09:54:39 -07:00
Kevin Tew
288e84ff8d Dead code removal 2011-12-01 09:54:39 -07:00
Kevin Tew
d1ee222d19 Fix place.c typos 2011-12-01 09:54:39 -07:00
Kevin Tew
3b0568b39c Allow instanciation of places with resolved module paths 2011-12-01 09:54:39 -07:00
Matthew Flatt
99032a75d0 inline map', for-each', andmap', and ormap'
More generally, support a
 (define _id (begin 'compiler-hint:cross-module-inline _proc-expr))
hint, which is how the compiler determines that `map', etc., are
candidates for inlining.
2011-12-01 06:59:27 -07:00
Eli Barzilay
9f1de12e82 New Racket version 5.2.0.5. 2011-12-01 04:02:03 -05:00
Eli Barzilay
fac07b964d Make get-libs retry downloads if they look stuck.
This resolves a problem with the osx64 machine, where downloads seem to
just get stuck after a while, without timeout errors.  Re-enable that
build.
2011-12-01 03:40:27 -05:00
Matthew Flatt
779b419c03 first cut at cross-module function inlining
Inline only trivial functions, such as `(empty? x)' -> `(null? x)',
to avoid generating too much code.

Bytecode includes a new `inline-variant' form, which records a
version of a function that is suitable for cross-module inlining.
Mostly, the variant let the run-time system to retain a copy
of the bytecode while JITting (and dropping the bytecode of)
the main variant, but it may be different from the main variant
in other ways that make it better for inlining (such a less loop
unrolling).
2011-11-30 07:39:36 -07:00
Matthew Flatt
1ebde53db7 fix `compiler-sizeof' docs and error message 2011-11-30 07:39:36 -07:00
Matthew Flatt
fa685207a3 add explicit `void's in some prototypes
Closes PR 12384
2011-11-30 07:39:36 -07:00
Robby Findler
2cacbfe8e2 update the mac os x icons to use the newer, higher-resolution images 2011-11-28 00:13:59 -06:00
Matthew Flatt
d607189035 fix error message that is misleading on some platforms
Closes PR 10049
2011-11-27 17:35:06 -07:00
Matthew Flatt
8b7370a4f9 fix printing of hash tables with chaperones
Closes PR 12276
2011-11-27 09:56:44 -07:00
Matthew Flatt
10246d7ade fix `current-memory-use'
Closes PR 9896
2011-11-27 09:18:52 -07:00
Matthew Flatt
291a18b045 windows: avoid SetFilePointer() on unsupported file-stream types
Closes PR 12339
2011-11-26 18:10:55 -07:00
Matthew Flatt
3883594af3 fix future bugs mostly related to `touch' within a future 2011-11-26 10:32:24 -07:00
Matthew Flatt
828848811d fix GC bug in futures when a blocking result is a tail call 2011-11-25 08:13:35 -07:00
Matthew Flatt
d9eb803e9c add hook to force a minor GC 2011-11-25 08:13:23 -07:00
Matthew Flatt
a7ae78f3cc fix mac- and gui-specific GC bug
This bug was introduced indirectly in the switch to
poll()/epoll()/kevent().
2011-11-24 15:59:12 -07:00
Matthew Flatt
e438793d43 implement JITted x86 floating-point operations with SSE
Currently, the choice of SSE vs. x87 is when Racket is compiled.
SSE is always used for x86_64 and on Mac OS X, and x87 is used
for other platforms.
2011-11-24 05:58:30 -07:00
Eli Barzilay
48f64ad3ae New Racket version 5.2.0.4. 2011-11-22 14:16:07 -05:00
Matthew Flatt
e44bd3f79d intern literal strings, byte strings, regexps, characters, and numbers 2011-11-22 08:54:37 -07:00
Matthew Flatt
cc1b7bb8b4 fix xform-related bug triggered by making atomic timeout place-local 2011-11-22 05:50:18 -07:00
Matthew Flatt
6784007206 fix, generalize, and speed up GC ownership check 2011-11-22 05:50:18 -07:00