Commit Graph

3267 Commits

Author SHA1 Message Date
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
Matthew Flatt
cc6f3f69ab add `port-set-next-location!'; make prompt read handler use it
Closes PR 12035
2011-07-10 08:36:47 -06:00
Matthew Flatt
e765231dad fix hash-ref' bugs on immutable eq?'-based tables
There were two:
   * new: after finding a hash code, the key wasn't
          always checked to be `eq?' to the desired key
   * old: the hash code wan't downshifted by 2, so
          changes in the low two bits (like when a pair
          is determined to start a list) could break
          lookup

 Merge to 5.1.2
2011-07-09 20:12:59 -06:00
Matthew Flatt
5452a16479 fix arity check on `current-module-name-resolver' 2011-07-09 06:16:11 -06:00
Matthew Flatt
9e694ce5cb share modidx for module imported into multiple phases 2011-07-09 06:16:10 -06:00
Matthew Flatt
50bd06af9a fix dependency 2011-07-09 06:16:10 -06:00
Matthew Flatt
d49a1e1fa1 JIT-inline `path?' 2011-07-09 06:16:10 -06:00
Eli Barzilay
1ba2d85004 New Racket version 5.1.2.2. 2011-07-09 03:50:09 -04:00
Matthew Flatt
b98e1b189a change semantic of internal definitions
and `letrec-syntaxes+values' --- allowing `let' in place
 of `letrec', which in turn lets the compiler optimize
 away location allocation
2011-07-08 14:00:41 -06:00
Matthew Flatt
4392ab7636 make weak taint table actually weak 2011-07-08 06:28:43 -06:00
Matthew Flatt
0e95d49ddb allow more expression reordering, especially unsafe ops 2011-07-08 06:23:29 -06:00
Matthew Flatt
65b1a569a0 add `unsafe-list-{ref,set}'
Use the new functions in `syntax-case'; the benefit is small, and
 it's mostly useful as hint to the optimizer that the operation
 can be dropped if the result isn't used
2011-07-08 06:23:29 -06:00
Matthew Flatt
848bba80a3 optimizer repair; `unsafe-c{a,d}r' can be dropped 2011-07-08 06:22:40 -06:00
Eli Barzilay
4edbf125a9 New Racket version 5.1.2.1. 2011-07-08 03:50:19 -04:00
Ryan Culpepper
ed7495ce2a Post-release version for the v5.1.2 release 2011-07-07 23:37:55 -06:00
Kevin Tew
8128603b9b Fix non-places build 2011-07-07 17:14:01 -06:00
Kevin Tew
8ed62b715b Fix place-channel place-object race condition 2011-07-07 17:14:00 -06:00