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