Matthew Flatt
311d55b5cf
fix bug that affects `free-identifier=?'
...
This bug is in the "amazing that it lurked for years" category,
as well as the "stupid use of C preprocessor" category.
2011-08-16 10:42:56 -06:00
Vincent St-Amour
02ba6e5d32
Remove trailing whitespace.
2011-08-15 12:19:53 -04:00
Matthew Flatt
8989e810fb
fix over-eager bytecode transformation
2011-08-15 09:36:38 -06:00
Matthew Flatt
40197835c9
repair `dynamic-require-for-syntax'
...
That primitive is probably a bad idea, but maybe it's useful
until we have separaely loadable parts of a module.
2011-08-15 07:06:40 -06:00
Eli Barzilay
db1aa1479a
New Racket version 5.1.3.1.
2011-08-15 03:50:14 -04:00
Eli Barzilay
05dc8a596d
Post-release version for the v5.1.3 release
2011-08-14 08:43:02 -04:00
Matthew Flatt
ca92376381
detect __sync_bool_compare_and_swap() via `configure'
2011-08-12 17:03:28 -06:00
Matthew Flatt
1c04cf1b02
make `port-try-file-lock?' work for Solaris
...
Shared locking now allowed only on input port, and exclusive
locking is allowed only on output ports, which allows an implementation
via fcntl(...,F_SETLK,...).
2011-08-11 13:11:26 -06:00
Eli Barzilay
b27eacd4d0
New Racket version 5.1.2.4.
2011-08-10 03:50:14 -04:00
Matthew Flatt
f646511ca7
first small step toward cross-module optimization
...
Mainly propagates constantness for the benefit of keyword
applications, but also propagates simple constants
2011-08-09 16:33:17 -06:00
Matthew Flatt
5352d670c4
generalize #%variable-reference' and add
variable-reference-constant?'
...
Use the new functions to make the expansion of keyword applications
to known procedure work with mutation.
2011-08-09 16:33:17 -06:00
Matthew Flatt
39a96dd699
add `prop:liberal-define-context'
2011-08-09 16:33:16 -06:00
Matthew Flatt
ff024068d9
fix syntax-taint problem in expander
2011-08-09 16:33:16 -06:00
Matthew Flatt
376a673a0c
use internal `equal?'-based table in atomic mode
...
for kill safety
2011-08-09 13:10:41 -06:00
Kevin Tew
22ac1f8c54
Places - check for inter-place pointers
2011-08-08 10:58:22 -06:00
Matthew Flatt
2d4e14dca8
fix a kill-safety problem in the module name resolver
2011-08-06 08:25:36 -06:00
Matthew Flatt
84b9cf6b90
fix non-place-friendly parts of finalizer support
2011-08-04 06:57:32 -06:00
Matthew Flatt
3b8d00029e
fix `namespace-attach-module{-declaration}' problem
...
Closes PR 12048
2011-08-02 17:06:12 -06:00
Matthew Flatt
9a5bae277a
set self modidx on primitive modules
...
which fixes a crash related to `module->namespace'
2011-08-01 15:16:04 -06:00
Matthew Flatt
ec27cbfd90
fix problems related to futures and is-list flags on pairs
...
Although a future thread used an atomic compare-and-swap to
set "is a list" or "not a list" flag on pairs via the
JIT-implemented `list?', the hashing function in the runtime
thread did not; as a result, it might be possible to lose
a hash code due to cache inconsistency (although I'm not
sure it's actually possible, and I couldn't trigger a problem
with a test). Most of the changes are related to using
an atomic compare-and-swap when setting a hash code, as
well as clean-ups to related code. Processor-count tests
avoid using atomic compare-and-swap on uniprocessors, which
might not support the relevant machine instructions.
As significantly, the compare-and-swap operation for the
JIT-implemented `list?' did not actually set flags on
a pair that has a hash code. This could lead to `list?'
tests that were not constant time (but only if the relevant
pair's `eq?' hash code had been used previously).
2011-07-31 04:43:24 -06:00
Matthew Flatt
e6b4d547c9
fix problem with initialization of tag name array
...
The bug to lead to a crash from `(dump-memory-stats)'
Mrege to 5.1.2
2011-07-27 15:26:48 +01:00
Matthew Flatt
7123996b30
change `eval-jit-enabled' initialization
...
to reflect whether JIT compilation is supported by the build
(i.e., set it to #f initially when the JIT is not supported)
2011-07-27 07:55:05 +01:00
James Swaine
783ee2cf88
Add convenience macros for raising exceptions in C functions which may run on future threads
2011-07-26 16:20:35 -05:00
Matthew Flatt
73b16c8578
don't constant-fold an fx operation if the result is non-fx
...
In fact, the result must be an fx on all platforms, since
compilation should be platform-independent.
2011-07-25 11:30:23 -04:00
Matthew Flatt
cab8e5e0e2
JIT tweaks for `unsafe-{s,u}16vector-set!'
...
by making better use of the code that's in place for other
similar operations
2011-07-25 11:30:22 -04:00
Matthew Flatt
c9d4e0fb8c
win32: fix `copy-file' handling of file-exists error
...
The specific error reported by CopyFileW doesn't seem
to be documented. It's unclear whether Racket's old test
for ERROR_EXISTS_ALREADY was the wrong choice (as opposed
to ERROR_FILE_EXISTS) or whether some Windows versions
use it; we test for both for now.
Also, improve error reporting when an errno or
GetLastError() value is available.
Closes PR 12074
Merge to 5.1.2
2011-07-23 22:15:18 -04:00
Matthew Flatt
530bb1b9ba
code-inspector fix for top-level code from bytecode
...
Merge to 5.1.2
2011-07-20 14:25:24 -06:00
Matthew Flatt
0d2b08f053
fix validation of top-level define-{syntaxes,values-for-syntax}
...
(Only appears in bytecode for non-module code.)
Merge to 5.1.2
2011-07-20 14:08:30 -06:00
Matthew Flatt
5b8a892fbb
fix bug in .zo writing
...
The bug showed up in the "racket/embed.rktl" test.
Merge to 5.1.2
2011-07-20 13:57:52 -06:00
Matthew Flatt
30174b3c81
another try at Mac OS X 10.4 x86 libraries
...
Merge to 5.1.2
2011-07-20 13:26:48 -06:00
Matthew Flatt
d9ae1d048d
fix optimizer bug related to `case-lambda' at module level
...
The bug triggered a crash on ARM, and probably doesn't
affect other platforms, but I'm not competely sure.
Merge to 5.1.2
2011-07-19 15:27:50 -06:00
Matthew Flatt
5efe7001d6
fix "block cache" layer to handle allocation failure
2011-07-17 20:08:26 -06:00
Matthew Flatt
92671ab3ea
fix source name of built-in modules
...
Closes PR 12051
Merge to 5.1.2
2011-07-16 21:42:57 -06:00
Matthew Flatt
c4b820e5c5
make `namespace->module' fail on kernel modules for the right reason
2011-07-16 21:36:41 -06:00
Matthew Flatt
701c9666d6
fix printing of namespace with places enabled
...
This commit goes with 62acb298bd
.
2011-07-16 21:17:10 -06:00
Matthew Flatt
3f0914080b
fix SGC
...
Merge to 5.1.2
2011-07-16 14:30:09 -06:00
Matthew Flatt
9ca07e7d65
minor code clarification
2011-07-16 14:30:09 -06:00
Matthew Flatt
4307bcace5
fix taint behavior of some syntax operations
...
`syntax-local-get-shadower' and
`syntax-make-delta-introducer' both taint their
results when a given syntax object is tainted
2011-07-16 08:03:54 -06:00
Kevin Tew
bf4a8ad5c4
create hash codes for place shared objects
2011-07-15 13:06:07 -06:00
Matthew Flatt
62acb298bd
places: fix printing of symbol resolved module paths
2011-07-14 21:32:48 -06:00
Matthew Flatt
1c4722eaee
remove obsolete reference to '#%mred-kernel
2011-07-14 21:32:47 -06:00
James Swaine
32a3828a2e
Made continuation-mark-set-first future-safe. Fixed a rarely occurring bug with lightweight continuation capture for futures.
2011-07-14 19:30:52 -06:00
Matthew Flatt
4d03ffb57d
another JIT tweak
2011-07-14 17:07:18 -06:00
Matthew Flatt
825548f5dc
tweak JIT to improve and slightly generalize register tracking
2011-07-14 17:07:18 -06:00
Matthew Flatt
87a6b850a7
more info on 10.4 support
2011-07-14 17:07:18 -06:00
Matthew Flatt
0860e62bfa
rebuild Mac x86 libraries to work with 10.4
...
Merge to 5.1.2
2011-07-13 10:45:19 -06:00
Vincent St-Amour
09b6616bfa
Fix jitting of real->double-flonum.
...
Merge to 5.1.2.
2011-07-11 14:38:02 -04:00
Vincent St-Amour
7dfe1f636f
Revert "Add real->double-flonum to the JIT."
...
This reverts commit 2afff3d210
.
This commit caused real->double-flonum to have a different behavior
when jitted as opposed to interpreted, and caused real->single-flonum
to break in some cases.
Merge to 5.1.2.
2011-07-11 13:54:06 -04:00
Matthew Flatt
09eab9c3eb
fix JIT problem that can break futures
...
A recent (weeks-old) JIT change set one of a function's code
pointers to NULL to indicate that JIT-compilation of the
function is in progress, but that breaks futures. Set the
code pointer to a different not-yet-ready function, instead.
Merge to 5.1.2
Closes PR 12037
2011-07-11 07:01:41 -06:00
Eli Barzilay
ac139c5dcb
New Racket version 5.1.2.3.
2011-07-11 03:50:16 -04:00