Commit Graph

4030 Commits

Author SHA1 Message Date
Matthew Flatt
3fb02ecb2e mingw32: use same strategy for thread-locals as MSVC
The gcc implementation of `_thread' seems to be much
slower, so we use the inline-assembly technique from
the MSVC build plus a hack in "main.c".
2012-12-21 11:43:43 -07:00
Matthew Flatt
0c91930965 mingw32: make no-futures, no-places build work 2012-12-21 11:43:42 -07:00
Matthew Flatt
1fc222f135 fix declaration mismatch for GC function 2012-12-20 05:43:59 -07:00
Eli Barzilay
c445a602a1 New Racket version 5.3.1.10. 2012-12-20 03:30:12 -05:00
Matthew Flatt
aa08a68424 add phantom byte strings
A phantom byte string is a small object that the memory
manager treats as an arbitrary-sized object, where the
size is specified when the phantom byte string is created
or or when size is changed via `set-phantom-bytes!'.
2012-12-19 18:42:14 -07:00
Matthew Flatt
4fc71951ee change subprocess handling to avoid waitpid(0, ...)
Keep track of whether any Racket-managed subprocesses are pending,
and use waitpid(0, ...) only if there is one, to better cooperate
with an embedding environment.

Also, add a chapter to the "Inside" manual to explain the issues.
2012-12-19 08:54:32 -07:00
Matthew Flatt
22f9c8509f fix optimizer bug, again
Corrects ef824351a1.
2012-12-16 16:04:19 -07:00
Matthew Flatt
ef824351a1 fix optimizer bug
Moving an expression that is referenced through a level of copy
propagation did not fix up a nested static distance correctly.

Closes PR 13355
2012-12-16 13:11:57 -07:00
Matthew Flatt
d3e4fbe7a7 make scheme_check_threads() run at least on thread quantum
As long as some thread is ready to run, and in case the threads
synchronize after very little work, keep checking threads for
at least one thread quantum.
2012-12-16 13:11:56 -07:00
Matthew Flatt
5baf63f821 syntax-local-get-shadower: fix interaction with marked bindings
Getting a shadower should not drop module context if the context
determines a binding that has marks.
2012-12-13 19:34:32 -07:00
Matthew Flatt
8f3cdd3a03 fix miscapitalization
The capitalization was meant for Windows using MinGW, but it's
not separated from the Unix install.
2012-12-09 15:00:08 -07:00
Matthew Flatt
bca4f47188 fix `configure' typo for MinGW 2012-12-09 14:54:29 -07:00
Matthew Flatt
5b016b4c32 win32: support MinGW build
A MinGW build is the same shape as a MSVC build (but without
MzCOM), unlike a Cygwin build.
2012-12-09 11:26:02 -07:00
Jon Zeppieri
8489448e42 ffi: fix prop:cpointer so that it works with a procedure value 2012-12-07 06:43:30 -06:00
Matthew Flatt
64f0273829 fix printing problem with flvectors 2012-12-05 05:56:59 -06:00
Matthew Flatt
42a0342109 ffi: use newer prim-closure representation for foreign functions
Cuts 1/3 of the time off a call for a micro-benchmark, since the
path from JIT-generated code to C code is faster.
2012-12-03 10:42:35 -07:00
Matthew Flatt
9cf821b301 disallow #fx()' and #fl()' notation in `read-syntax' mode
Allowing them would require support for immutable fxvectors and
flvectors, interning, and more. Since the motivation for reader
support is to make marshaling and unmarshaling easier, allow
them only in `read' mode. Change printing to make then unquotable.
2012-12-03 10:42:35 -07:00
Kevin Tew
492167c23f read and write support for fxvectors and flvectors 2012-12-03 10:42:35 -07:00
Matthew Flatt
cbe0831956 fix problem with re-expansion and renamed imports 2012-11-30 07:26:52 -07:00
Matthew Flatt
f847b76ad1 win32: make "build.bat" work with VCExpress
Closes PR 13231
2012-11-28 05:42:05 -07:00
Matthew Flatt
46fb91cfe4 update pre-built binary path for a win32 patch
Also, describe the patch in the Windows build notes.

This change increases access to symbol fonts, though not in a
completely consistent and portable way. See the closed problem
report for more information, as well as a 24-NOV-2012 post
on the Racket mailing list:
 http://lists.racket-lang.org/users/archive/2012-November/055141.html

Closes PR 13300
2012-11-28 05:39:46 -07:00
Matthew Flatt
9062d27d31 make place-channel receives more fair 2012-11-25 12:29:56 -07:00
Matthew Flatt
4ca6e3c452 fix exception handling during collection-table read
Non-`exn:fail?' exceptions, such as breaks, should be propagated.
2012-11-24 08:13:51 -07:00
Eli Barzilay
777a6cd38b New Racket version 5.3.1.9. 2012-11-24 03:05:18 -05:00
Matthew Flatt
9888fac99e raco setup: move doc dependency and duplicate checking to database
This change makes document building --- and specially incremental
document building --- more scalable. The global duplicate-definition
check is handled by a database query, for example.
2012-11-23 20:07:49 -07:00
Matthew Flatt
9f5324b754 fix quoted submodule path in `all-from-out' 2012-11-23 08:30:01 -07:00
Matthew Flatt
4e0fac0477 JIT: fix allocation of came-lambda closures over flonums
Also, clean up code and assumptions related to fixnum-producing
functions and unboxing (not related to the bug).
2012-11-23 08:20:05 -07:00
Matthew Flatt
961f5e40bf fix untagged cpointer as place-channel message
(repair by Kevin)

Closes PR 13282
2012-11-23 08:20:05 -07:00
Matthew Flatt
fc68d02027 JIT: more buffer-limit adjustments
To cut down on PPC-specific problems, make the JIT buffer's padding
larger on that platform (since instructions tend to be larger).
2012-11-20 06:27:05 -07:00
Eli Barzilay
95541928f1 New Racket version 5.3.1.8. 2012-11-20 03:30:15 -05:00
Matthew Flatt
06db2f9a74 JIT: add missing buffer-limit check
The missing check affected PPC especially.
2012-11-19 19:24:45 -07:00
Matthew Flatt
deb3c87c32 avoid a compiler warning 2012-11-19 09:41:32 -07:00
Matthew Flatt
be20ecc8f3 minor bytecode-compiler fix
A bogus flag was propagated to closure information. This flag
was ignored by the validator, but not `zo-parse'. Make the validator
reject the bogus flag, too, while fixing the compiler.
2012-11-19 09:36:16 -07:00
Matthew Flatt
345fce71d5 another fix to bytecode compiler's propoagation of local-type info
This one is related to shifting type info when the closure is
made smaller due to lifting of something that used to be in
the closure. The `games/pousse/robot' module exposed the bug.
2012-11-18 10:31:20 -07:00
Matthew Flatt
afca33b78b fix to bytecode compiler's propoagation of local-type info
This is another old bug that could have caused validation failures
with flonums, but it showed up with fixnum tracking because fixnums
are more common (e.g., from `string-length').

There were really two bugs: information installed at the
wrong offet in one place, and a failure to detect that information
should be propagated in a different place. Fixing both avoids
a validation problem with `html/sgml-reader'.
2012-11-18 10:31:20 -07:00
Matthew Flatt
81fc033f93 JIT: refactor unboxing flostack to better support other datatypes
Instead of keeping offsets in terms of `double's, keep it in
terms of bytes. This change is a step toward putting other kinds
of values on the flostack, such as extended-precision floats.
2012-11-18 10:31:20 -07:00
Matthew Flatt
4e6f8af667 JIT: fix a bug related to self-tail calls
The last argument in a self-tail cal is treated specially and
not immediately stored on the "runstack". Space was formerly
allocated for it, though, and under certain circumstances
that space was not initialized. I think a combination of thread
timing, GC timing, and flonum boxing could potentially lead to a
crash (but constructing a test case is really difficult).
2012-11-18 10:31:20 -07:00
Matthew Flatt
7a8f5f20fc bytecode compiler: replace table of local types with flags on primitives
This change makes it easier to annotate more primitives, so functions like
`integer-length' are now annotated as producing a fixnum.
2012-11-18 10:31:20 -07:00
Matthew Flatt
c5d3178602 change representation of optimization flags on primitives
Makes room for a lot more.
2012-11-18 10:31:20 -07:00
Matthew Flatt
42f74b5982 JIT tweak: stack-clearing operations do not disturb registers 2012-11-18 10:31:20 -07:00
Matthew Flatt
be4ce3ed66 skip some unneeded fixnum tests in JIT-generated code 2012-11-18 10:31:20 -07:00
Matthew Flatt
4041e65a86 JIT simplification
The scheme_generate_arith() function effectively had its own
copy of of the general scheme_generate_two_args() function that
predates the general one. Using scheme_generate_two_args()
instead simplifies and clarifies the code.
2012-11-18 10:31:20 -07:00
Matthew Flatt
eaf68e6e85 GMP and MPFR as pre-build libraries for Mac OS X and Windows
Also, add versions for Unix references, and adjust the way that
missing bindings are handled.
2012-11-16 22:21:54 -07:00
Matthew Flatt
8d30f1738c fix a sorting problem in a bytecode's submodule table 2012-11-16 14:10:32 -07:00
Matthew Flatt
c3cd089758 fix error message for `map', etc. on arity mismatch
Closes PR 13244
2012-11-16 14:10:32 -07:00
Matthew Flatt
9ef485d802 fix configuration for QNX
Patch from Tobias Hammer.

Closes PR 13265
2012-11-16 06:37:23 -07:00
Matthew Flatt
ed89b32de4 fix argument checking of semi-inlined `continuation-mark-set-first'
Closes PR 13256
2012-11-15 07:03:24 -07:00
Matthew Flatt
6ee62ec5ad check fixnum-literal range before claiming it's always a fixnum 2012-11-15 06:18:05 -07:00
Matthew Flatt
367f47f92d fix bad aliasing 2012-11-15 06:18:05 -07:00
Eli Barzilay
8c021b60ce New Racket version 5.3.1.7. 2012-11-15 03:30:14 -05:00