Matthew Flatt
290fe066b6
add optional argument to weak-box-value' and
ephemeron-value'
2011-08-26 06:24:34 -06:00
Matthew Flatt
ecc058de4a
change `raco exe' to disable collection lookup by default
2011-08-25 09:15:30 -06:00
Eli Barzilay
7bb8c6c4b3
New Racket version 5.1.3.6.
2011-08-25 03:50:21 -04:00
Matthew Flatt
ec29a2d85c
add `use-collection-link-paths'
2011-08-24 20:08:19 -06:00
Matthew Flatt
84e3ab2a20
add support for collection roots to the collection links file
2011-08-24 20:08:19 -06:00
Kevin Tew
5a30aa89eb
Allow TCP sockets and file ports to be communicated across places
2011-08-24 14:33:54 -06:00
Matthew Flatt
a7855e20a8
add `raco link'
...
includes a rewrite the "Module Basics" section of the Guide
2011-08-24 09:07:14 -06:00
Kevin Tew
8782f4c445
send ffi pointers across places
2011-08-23 13:33:06 -06:00
Eli Barzilay
41ae2b57b6
New Racket version 5.1.3.3.
2011-08-21 03:50:12 -04:00
Matthew Flatt
345b06838d
FFI: add C arrays and unions
2011-08-20 10:24:32 -06:00
Eli Barzilay
2fbfe341b9
New Racket version 5.1.3.2.
2011-08-20 03:50:14 -04:00
Matthew Flatt
dc1a97cec7
another subprocess fix like d7a996ee0b
2011-08-19 16:56:10 -06:00
Matthew Flatt
d7a996ee0b
fix for subprocess management (when places are enabled)
2011-08-19 13:57:28 -06:00
Matthew Flatt
6073ef5ff5
fix `place-break' on a terminated place
2011-08-19 12:52:19 -06:00
Matthew Flatt
0c7b1925a5
change bad code to an assertion that's never needed
2011-08-19 12:52:08 -06:00
Matthew Flatt
d185c2a0df
fix optimizer bug
...
Also fix missing copy-propagation opportunity
2011-08-19 07:35:39 -06:00
Matthew Flatt
7eb2042bd9
fix compiler handling of top-/module-level constants
...
The JIT and bytecode compiler disagreed on the definition of
"constant". Now there are two levels: "constant" means constant across
all instantiations, and "fixed" means constant for a given instantation.
The JIT uses this distinction to generate direct-primitive calls
or not. (Without the distinction, a direct jump to `reverse' could
be wrong, because `racket/base' might get instantiated with the
JIT disabled or not.)
Also, fixed a bug in the JIT's `vector-set!' code in the case that
the target vector is a top-/module-level reference that is ready,
fixed, or constant.
2011-08-19 06:32:44 -06:00
Matthew Flatt
1d6c3aa4ea
avoid pointless digits when printing single-precision floats
...
Closes PR 12118
2011-08-18 13:21:38 -06:00
Matthew Flatt
69929b7499
configure: make --disable-jit imply --disable-futures
2011-08-18 12:41:36 -06:00
Matthew Flatt
8291fef9de
fix optimizer problems with mutability checking, inlining
...
The inlining adjustment can sometimes trigger different
inlining than before. (One common benchmark wins; one loses.)
2011-08-18 12:32:01 -06:00
Matthew Flatt
8eefaba187
fix `regexp-match' performance for short matches on long strings
...
More specifically, for a string of length N and a match that
only looks at the first M characters, the complexity of
`regexp-match' is now O(M) instead of O(N). This allows
`regexp-split' to be O(N) for a string instead of O(N^2).
Also, fixed a bug in non-greedy matching that could affect
both long strings and input ports.
2011-08-18 09:26:09 -06:00
Matthew Flatt
591e08fb10
fix bug in identifier resolution
...
Commit 311d55b5cf
fixed a shallow bug that masked a deeper
bug in the interaction of local bindings and module-level
bindings. This one fixes the deeper problem, which is that
the recursive resolution that ignores module bindings should
start from the beginning of the wraps, not the wrap after
a module renaming.
Closes PR 12116
2011-08-16 20:24:08 -06:00
Matthew Flatt
8f27112c83
slightly safer CPP macros
2011-08-16 20:24:00 -06:00
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
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
Vincent St-Amour
3b33ed8c81
Abstract out magic numbers in the JIT.
2011-07-07 18:13:50 -04:00
Kevin Tew
68d49e9f59
Add assertions to place-channel tests
2011-07-07 12:38:20 -06:00
Vincent St-Amour
2afff3d210
Add real->double-flonum to the JIT.
2011-07-07 12:04:24 -04:00
Matthew Flatt
9ba6beacf5
fix non-futures, non-places build
2011-07-07 07:25:48 -06:00
Matthew Flatt
62a17da060
JIT-inline list-ref' and
list-tail'
2011-07-07 07:25:48 -06:00
Matthew Flatt
a77a2fb3e1
JIT-inline all of the `cXr's
2011-07-07 07:25:48 -06:00
Matthew Flatt
6f9c197b96
avoid compiler warnings in --disable-places mode
2011-07-07 07:25:48 -06:00
Matthew Flatt
0c605acaf4
string allocation tweak
2011-07-07 07:25:47 -06:00
Matthew Flatt
2769fdd311
specialize "slow" `unsafe-vector*-ref', etc. after all
...
based on Vincent's patch
2011-07-07 07:25:47 -06:00
Matthew Flatt
f93b404dbd
PPC JIT repairs
2011-07-07 06:54:55 -06:00
Eli Barzilay
380b6a8440
New Racket version 5.1.1.9.
2011-07-07 03:50:15 -04:00
Matthew Flatt
8cd1e9ff81
fix JIT support for property accessor with failure argument
2011-07-06 17:10:40 -06:00
Matthew Flatt
63ae1cabc4
reliably clear signal_handle when a place ends
2011-07-06 15:54:11 -06:00
Matthew Flatt
79d5572153
register place async channel wakeup_signal with GC
2011-07-06 15:54:11 -06:00
Matthew Flatt
6b4b95c569
fix `unsafe-struct-{ref,set}' for chaperones
2011-07-06 15:08:41 -06:00
Matthew Flatt
5b0fd72f7a
note an implementation rationale
2011-07-06 15:01:10 -06:00
Kevin Tew
afca6ad64a
Reduce initial memory footprint
2011-07-06 14:43:56 -06:00
Matthew Flatt
bd65218842
fix inconsistent version declaration
2011-07-06 14:02:19 -06:00
Matthew Flatt
8f6fd7060f
speed up `hash-ref'
...
by trimming the common-case path through a combination of small
JIT and function changes
2011-07-06 14:00:51 -06:00
Kevin Tew
36e3679854
Scheme_Place_Object is now under gc control, multiple places can wait on a place channel.
2011-07-06 13:27:50 -06:00
Matthew Flatt
5c2a9b2aaa
improve a syntax-object resolution cache
2011-07-06 09:07:18 -06:00
Matthew Flatt
1daa2649f0
another fix for `vector-{ref,set!}' on chaperone/impersonator
...
--- fixes a81917a2692; drop this commit if that one is dropped
2011-07-05 06:29:32 -06:00
Matthew Flatt
ca2dd17dcb
fix for `vector-{ref,set!}' on chaperone/impersonator on some platforms
...
--- fixes a81917a2692; drop this commit if that one is dropped
2011-07-04 18:04:38 -06:00
Matthew Flatt
a81917a269
JIT: faster path for `vector-{ref,set!}' on chaperone/impersonator
...
This commit probably should be removed from the v5.1.2 branch
(after the branch is created).
2011-07-04 16:26:09 -06:00
Matthew Flatt
97d5e3fa02
win32: fix place-specific scheduling semaphore
2011-07-04 08:27:33 -06:00
Jay McCarthy
467833d4e7
Initializing flag to remove GCC error
2011-07-02 12:13:21 -07:00
Matthew Flatt
8aa4ff1b06
syntax taint repairs
2011-07-02 10:08:15 -06:00
Matthew Flatt
69434370cb
allow fd 0 to be used as place signaling pipe
2011-07-01 15:04:39 -06:00
Matthew Flatt
e46a470f8d
places fixes: Windows leaks, custodian force-exit, stdio interaction
2011-07-01 14:31:56 -06:00
Matthew Flatt
3078d5c494
clean up place exit handling
...
- don't crash on multiple kills or waits
- allow the OS to reclaim the place thread when it exits on its own
2011-07-01 09:30:11 -06:00
Matthew Flatt
0f42552a0e
place fd clean-ups
...
and better handling of a place-creation failure due to pieces
at the OS layer
2011-07-01 09:30:10 -06:00
Eli Barzilay
faf74c789f
New Racket version 5.1.1.8.
2011-07-01 03:50:21 -04:00
Matthew Flatt
835bbe2874
fix typo in "place.c"
2011-06-30 10:59:17 -06:00
Matthew Flatt
d4acf4f07a
fix another problem with attempted overflow clean-up
2011-06-30 10:53:19 -06:00
Kevin Tew
c3059f7e82
place-dead-evt
2011-06-30 10:02:21 -06:00
Matthew Flatt
ae8bbaef90
fix attempt to clean up overflow checking
2011-06-30 09:55:55 -06:00
Matthew Flatt
37e4ea497b
check for integer overflow in vector reader syntax
...
Closes PR 12008
2011-06-30 09:46:02 -06:00
Matthew Flatt
e9477c17b4
fix JIT-generated `apply-values' for chaperones
...
Closes PR 11981
2011-06-30 09:28:07 -06:00
Matthew Flatt
b86e96cf90
fix optimizer bug that reordered past a mutable variable
...
Closes PR 11987
2011-06-30 09:17:42 -06:00
Matthew Flatt
737a3bd91a
fix too-early large-allocation check
...
Closes PR 12000
2011-06-30 08:56:28 -06:00
Matthew Flatt
0025ff968d
fix JIT bug
...
that caused incorrect compilation of a non-tail call as
a self non-tail call (but why hasn't this deep and old bug caused
more trouble over the years?)
2011-06-30 08:24:42 -06:00
Matthew Flatt
1af8cd07ad
minor clean-up
2011-06-30 08:24:41 -06:00
Matthew Flatt
011b79180b
fix another stx-vs-#f bug
2011-06-29 20:48:11 -06:00
Matthew Flatt
e16e36e49c
fix problem pushing instantiation-time inspector
2011-06-29 20:21:40 -06:00
Eli Barzilay
01867f12b1
New Racket version 5.1.1.7.
2011-06-29 21:47:55 -04:00
Matthew Flatt
daa6f1aed3
fix #f misused as syntax object
2011-06-29 19:46:04 -06:00
Matthew Flatt
1160d3df62
remove syntax certificates; add syntax taints
2011-06-29 19:15:48 -06:00
Eli Barzilay
40124a0619
A long overdue scan to eliminate files without terminating newlines.
...
(DrRacket should really do that.)
2011-06-28 02:01:41 -04:00
Kevin Tew
d7785a3520
Add mark call for place->mref
2011-06-27 09:16:45 -06:00
Matthew Flatt
bba4d413e8
add usual prefix to configure flag report
2011-06-20 10:28:35 -06:00
Matthew Flatt
047b4b6072
note on cross-compilation
2011-06-20 06:50:59 -06:00
Matthew Flatt
5c9f1a487e
3m-only build fix
2011-06-20 06:50:58 -06:00
Matthew Flatt
56ee3049b2
switch configure' to use "$host_..." instead of
uname'
...
to support cross compilation;
the main risk of this change is that I might have some
GNU canonical system names wrog, since they're different
from `uname' results
2011-06-19 11:39:38 -06:00
Matthew Flatt
49d8274662
darwin ppc patch from libffi
2011-06-19 11:10:42 -06:00
Matthew Flatt
7448f21fa5
add --enable-racket=<path> to configure
...
to set the Racket executable to run when building and
installing Racket
2011-06-19 10:39:18 -06:00
Matthew Flatt
dd700b8430
PPC repairs
2011-06-18 07:26:53 -06:00
Matthew Flatt
5a5800d513
place-specific low-level "sleep" function
...
to make racket/gui work right with places (running
in just one of them) on Mac OS X
2011-06-17 17:03:21 -06:00
Matthew Flatt
8e5bfee99e
remove "place_" prefix from static functions
2011-06-17 17:03:20 -06:00
Matthew Flatt
b1e47eba45
add `place-message-allowed?' and fix related problems
...
Closes PR 11983
2011-06-17 10:33:27 -06:00
Eli Barzilay
109fff2abe
New Racket version 5.1.1.6.
2011-06-17 03:50:16 -04:00
Matthew Flatt
523cec90c6
fix JITted multi-valued `begin0' in a single-value context
...
and generate simpler code for constrained cases, including
single-value contexts and ignored results
Closes PR 11979
2011-06-16 18:16:02 -06:00
Matthew Flatt
56423f330e
`procedure-arity-includes?' reports #f for keyword-requiring procs
...
by default; a new optional argument restores the old behavior
(but the default behavior is consistent with the old docs and with
the vast majority of existing uses)
The implementation is ugly for performance reasons. A new primitive
`prop:arity-incomplete' property determines when to return #f for
`procedure-arity-includes?' in default mode. A nicer implementation
would be to redefine `procedure-arity-includes?' at the kw-proc level,
but the bytecode optimizer's and JIT's treatment of the built-in
`procedure-arity-includes?' is important. The implementation choice
could be revisited after cross-module inlining is implemented.
Closes PR 11978
2011-06-16 12:36:16 -06:00
Matthew Flatt
83d002a9aa
fix interaction of `port-commit-peeked' and port positions
...
--- includes a small hack to the `make-input-port' protocol
to specially handle a byte-string result as "true"
from the `commit' proc
2011-06-16 08:17:14 -06:00
Kevin Tew
939f0b1c0b
rename place-dynamic to dynamic-place
2011-06-11 15:36:16 -06:00
Matthew Flatt
80c4396dc1
JIT-inline struct type property predicates and accessors
2011-06-11 08:35:34 -07:00
Kevin Tew
4ee71096e7
Places: a few more send receive to get put renames
2011-06-11 02:07:28 -06:00
Kevin Tew
4dff43d4c5
place-wait returns void for now
2011-06-11 02:07:28 -06:00
Kevin Tew
1473b7775f
Places: rename place and place/anon
2011-06-10 11:07:01 -06:00
Kevin Tew
21f7109204
Places: rename send receive to put get
2011-06-09 23:48:55 -06:00
Kevin Tew
b6225f66a5
Fix mzrt_cas for GCC < 4.1
2011-06-04 14:32:22 -06:00
Kevin Tew
a4e72128af
Remove unused atomic ops, use gcc intrinsic
2011-06-03 13:50:26 -06:00
Matthew Flatt
d74aa0c998
try to fix CAS for Mac OS X PPC
2011-06-02 16:45:45 -07:00
Matthew Flatt
b24c387dde
add PLTDISABLEGC environment variable
2011-06-02 16:20:20 -07:00
Jose Lopes
84415dd4a9
Fixed bug that prevented from accessing ActiveX components that did not expose type information.
...
Signed-off-by: José Lopes <jose.lopes@ist.utl.pt>
2011-05-30 07:48:18 -06:00
Matthew Flatt
bbfeb85440
mak argument to `make-immutable-hash' optional
2011-05-30 07:38:57 -06:00
Matthew Flatt
f3e1cf10aa
change `hash-count' to take the lock; fix docs
2011-05-30 07:38:57 -06:00
Matthew Flatt
9f1c2147be
refine comment that is possibly misleading
...
on code that might not turn out to be useful
2011-05-30 07:38:57 -06:00
Matthew Flatt
5dfd17d0b9
linux: use /proc/self/maps to find precise stack base
2011-05-29 09:41:07 -06:00
Matthew Flatt
32522f1f68
fix mac non-futures, non-places build
2011-05-27 20:12:01 -06:00
Eli Barzilay
13b2adc18c
Switch the license text from LGPLv2 to LGPLv2.1.
...
This makes it correspond to the license page we have on downloads that
talks about the "lesser" GPL rather than the "library" one.
Also, change the file name to have a more friendly .txt suffix, and add
some more responsible properties for things in doc/release-notes.
2011-05-27 18:09:55 -04:00
Matthew Flatt
b548bc563c
fix timer thread double registration
2011-05-25 14:53:19 -06:00
Kevin Tew
8b334e1e1b
Smaller stacks for green thread timers
2011-05-25 12:02:07 -06:00
Tony Garnock-Jones
7615c2a512
Implementation, documentation and tests for adding a failure-result to property accessor procedures.
2011-05-24 16:53:52 -04:00
Vincent St-Amour
d314331858
Added comments to atan.
2011-05-24 10:57:30 -04:00
Matthew Flatt
0aefb8d43c
avoid `single' as a C variable name
...
because `single' is bound as a type in some Solaris header
2011-05-24 06:30:00 -06:00
Matthew Flatt
23777f291c
avoid flock() under Solaris
2011-05-24 06:18:40 -06:00
Matthew Flatt
7060fa5b75
fix problems with `letrec' splitting and constant procedures
2011-05-19 15:15:01 -07:00
Kevin Tew
518f20142c
11930 bug fix: added missing scheme_seal_parameters call
2011-05-19 11:48:23 -06:00
Matthew Flatt
11fa781652
fix future-scheduling problem related to custodians
2011-05-16 18:43:46 -06:00
Matthew Flatt
ffbaaa3c3b
kFreeBSD fix from David Bremner
2011-05-16 06:24:02 -06:00
Matthew Flatt
450c66d308
fix MysterX for places
2011-05-13 14:06:53 -06:00
Matthew Flatt
343568fd84
fix return type of scheme_get_place_table()
2011-05-13 14:06:52 -06:00
Matthew Flatt
a613e81fcd
change protocol for extensions with places
...
- extension gets scheme_initialize() per-place
- simplify allocation and fix locking for scheme_new_type()
- better Inside docs on places
2011-05-13 14:06:51 -06:00
Matthew Flatt
0bb0f28506
fix non-places build (yet again)
2011-05-13 09:03:02 -06:00
Matthew Flatt
a96fe882f8
ffi: fix race condition in in-original-place support
2011-05-13 08:55:06 -06:00
Matthew Flatt
3c1cd700a1
fix finalization of place channels
2011-05-13 08:55:06 -06:00
Matthew Flatt
087d666f08
win32: fix timer-thread handling for places
2011-05-13 08:55:05 -06:00
Matthew Flatt
5f1cd1a381
implement mzrt_sleep() for Windows
2011-05-13 08:55:05 -06:00
Matthew Flatt
70a0b741b0
fix place-channel GC marker, plus a typo in mark-proc generator
2011-05-13 08:55:05 -06:00
Matthew Flatt
49aadc599a
ffi: add `#:in-original-place?' to deal with thread-unsafe libs
...
and use it for Pango, which is not thread-safe at the C level
2011-05-13 08:55:04 -06:00
Kevin Tew
3ca3544a28
places: fixes from Matthew's code review of places
2011-05-12 21:22:20 -06:00
Kevin Tew
c9c02f3fb0
duplicate and cycle detection for places_deserialize_worker
2011-05-12 08:28:47 -06:00
Matthew Flatt
8492f7c90b
fix symbol handling in long-message transfer
...
as well as stack-overflow handling
2011-05-11 15:04:59 -06:00
Matthew Flatt
88dea4fae9
places: fix problems with message receive
2011-05-11 10:37:29 -06:00
Matthew Flatt
11445a97e4
remove obsolete hash handling in places deep copy
2011-05-11 09:07:47 -06:00
Matthew Flatt
8672f32d94
fix SGC debug mode
2011-05-11 08:49:31 -06:00
Kevin Tew
edeab3a413
inline -> MZ_INLINE
2011-05-10 10:52:43 -06:00
Matthew Flatt
d8340c6e2e
futures: fix bugs in handling args of captured continuations
2011-05-10 09:53:48 -06:00
Kevin Tew
a09a4edcc3
mz-gdbinit updates
2011-05-10 06:37:39 -06:00
Kevin Tew
85ef1e2153
Added gc mark and fixup support for scheme_serialized_symbol
2011-05-10 06:37:39 -06:00
Kevin Tew
94d92092a5
deep copy stack overflow check
2011-05-10 06:37:39 -06:00
Kevin Tew
940e4cce34
shutdown custodian and call atexit handlers at place exit
2011-05-10 06:37:39 -06:00
Matthew Flatt
5b2492eda6
places, creating a subprocess: reset SIGCHLD correctly
2011-05-09 07:27:05 -06:00
Matthew Flatt
a60bfe9b7f
remove some obsolete Mac OS X compiler flags for gracket
2011-05-09 07:27:04 -06:00
Matthew Flatt
979ea867a5
experiment (unsuccessfully) with inlining heuristic
...
and minor code clean-up
2011-05-08 17:04:27 -06:00
Matthew Flatt
9188e36ef1
try to fix thread-local variables for Max OS X Lion
2011-05-08 08:00:46 -06:00
Matthew Flatt
695039626c
fixes for non-JIT build
2011-05-08 06:26:04 -06:00
Matthew Flatt
09046b46dd
split up mzmark output
2011-05-08 06:26:04 -06:00
Matthew Flatt
01193652b0
internal reorganization of bytecode compiler and other bytecode tasks
...
--- organize by task instead of (weakly) by bytecode form; source
files are smaller with fewer global functions and datatypes
2011-05-08 06:26:04 -06:00
Matthew Flatt
240d95ada6
fix closure GC handling when closure is only half-formed
2011-05-06 09:20:56 -06:00
Eli Barzilay
503485b5a4
New Racket version 5.1.1.5.
2011-05-06 09:48:07 -04:00
Matthew Flatt
e9721058fb
reorgnize datatypes of less common bytecode forms
...
removing a layer of indirection, and setting up
for an internal reorganization of the compiler code
2011-05-06 06:56:23 -06:00
Matthew Flatt
047c21edb4
add missing Win64 library to get-libs script
2011-05-06 06:56:22 -06:00
Matthew Flatt
34b8dc249e
fix documented contracts for path functions
...
and make `cleanse-path' work for any platform's paths
while fixing `resolve-path' checking to disallow paths
for other platforms
Closes PR 11891
2011-05-04 11:40:01 -06:00
Matthew Flatt
086d582c0f
fix module-code cache to key on `current-load-relative-directory'
...
since that parameter affects the way that code is read
2011-05-03 16:22:05 -06:00
Matthew Flatt
4ee24d1c21
fix non-places, non-futures build again
2011-05-03 16:04:59 -06:00
Matthew Flatt
a91d79201b
fix potential bug in printing error message
2011-05-03 16:04:33 -06:00
Eli Barzilay
e2255e3f88
New Racket version 5.1.1.4.
2011-05-03 16:34:50 -04:00
Matthew Flatt
be524ade36
minor code clean-ups
2011-05-03 10:22:02 -06:00
Matthew Flatt
2ada6d0e89
break link to namespaces from from closures over top-/module-level vars
...
- the `lam' structure from `compiler/zo-struct' changed to include a
`toplevel-map' field
This change helps solve a finalization problem in `racket/draw',
which in turn sigificantly reduces the peak memory use of `raco setup'
during the doc-building phase (because some documents load `racket/draw'
to render images, and multiple copies of `racket/draw' were retained
before finalization was fixed).
The change is an extreme way to solve a specific finalization
problem, but it's a kind of space-safety improvement; space safety
almost never matters, but when it does, then working around a lack of
space safety is practically impossible. In this case, it's not clear
how to otherwise solve the `racket/draw' finalization problem.
The improvement doesn't change the representation of closures, but it
requires special cooperation with the GC. All closures in a module
continue to share the same array of globals (plus syntax objects);
that is, instead of completely flat closures, Racket uses a two-level
environment where top-/module-level variables are grouped
together. The code half of a closure now records which
top-/module-level variables the body code actually uses, and the mark
phase of GC consults this information to retain only parts of the
top-/module-level environment frame that are actually used by some
closure (or all of the frame if it is accessible through some other
route). In other words, the GC supports a kind of "dependent
reference" to an array that is indexed by positions into the array
--- except that the code is more in the "Racket" directory instead of
the "GC" directory, since it's so specific to the closure
representation.
2011-05-03 06:57:49 -06:00
Matthew Flatt
6c1ec25016
win32: fix page counting in memory manager
2011-04-30 14:02:20 -06:00
Matthew Flatt
68d235378f
places: trigger GC after many message pages adopted
2011-04-30 14:01:55 -06:00
Matthew Flatt
4377d88e86
win32: increase stack size to 8 MB
...
and double safety margin for Win64
2011-04-30 11:12:04 -06:00
Matthew Flatt
ddbb3b02a1
win32 places: make break-signal semaphore place-local
2011-04-30 07:42:17 -06:00
Matthew Flatt
b5f86a26e6
fixes for kFreeBSD
2011-04-29 01:24:38 -06:00
Matthew Flatt
030eb185bc
fix non-futures, non-places build
2011-04-28 19:22:10 -06:00
Matthew Flatt
ddc9213fbb
allocate shared JIT code on pages shared by places
2011-04-28 10:16:35 -06:00
Matthew Flatt
651655f7bc
fix memory counting on orphaned message pages
2011-04-28 09:53:29 -06:00
Matthew Flatt
9f50228db8
fix #include for fpsetmask()
2011-04-28 09:16:57 -06:00
Matthew Flatt
3dc38f25ee
adjust GC logging, include JIT pages size
2011-04-28 07:43:42 -06:00
Matthew Flatt
aaf74636c2
another __FreeBSD_kernel__ fix
2011-04-28 06:58:14 -06:00
Matthew Flatt
7648000608
fix alloc_cache page counting
2011-04-28 06:51:36 -06:00
Matthew Flatt
5114f5973c
remove unneeded places prefab-key conversions
...
(second try)
2011-04-28 06:35:33 -06:00
Kevin Tew
1689ccee47
Fix places dying.
2011-04-27 21:30:37 -06:00
Kevin Tew
5a01e9ddb8
Revert "remove unneeded places prefab-key conversions"
...
Well try again tomorrow to clean this up.
This reverts commit bd1c47cce1
.
2011-04-27 20:18:15 -06:00
Matthew Flatt
5881005e18
tune GC parameter
2011-04-27 19:02:08 -06:00
Matthew Flatt
9cf7f88606
fix `procedure-arity-includes?' for non-futures, non-places builds
2011-04-27 14:57:16 -06:00
Matthew Flatt
0e229529c0
JIT-inline `procedure-arity-includes?'
2011-04-27 14:10:21 -06:00
Kevin Tew
d3b014ba42
[Places] copy pair flags
2011-04-27 11:50:44 -06:00
Matthew Flatt
bd1c47cce1
remove unneeded places prefab-key conversions
2011-04-27 11:03:22 -06:00
Matthew Flatt
a2e3116494
fix code page unchaining
2011-04-26 19:35:12 -06:00
Matthew Flatt
50509c10dc
free JIT & FFI code pages when a place exits
2011-04-26 19:21:14 -06:00
Matthew Flatt
d28d42a46f
fix validator bug (to allow flonum-consuming proc to be cleared)
...
Closes PR 11879
2011-04-26 19:21:14 -06:00
Kevin Tew
a589ea42b6
[Places] added place-break primitive
2011-04-26 18:41:19 -06:00
Matthew Flatt
8679afed60
clean up C part of build
...
- no more attempt to support places with the Boehm GC
- no more libatomic (which was for places + Boehm GC)
- remove unsupported configuration options
- strip Racket-specific configure options before libffi configure
- port two leftover Perl scripts to Racket scripts
2011-04-26 17:14:55 -06:00
Matthew Flatt
604960f5f5
places: re-enable (and re-ignore) SIGCHLD in a fork()ed process
...
Relevant to PR 11877
2011-04-26 11:12:32 -06:00
Matthew Flatt
40090307c1
Boehm GC: remove some obsolete customization
2011-04-25 15:50:41 -06:00
Matthew Flatt
5ae4b00168
fix CGC ephemeron bug
...
Merge to 5.1.1
2011-04-25 15:50:41 -06:00
Matthew Flatt
e999e0666c
minor code-format adjustment
2011-04-25 15:50:41 -06:00
Kevin Tew
f8d761226d
Remove FIXME_LATER gcc attribute
2011-04-25 08:18:27 -06:00
Kevin Tew
fd93e502e1
keygen can be shared see comment
2011-04-25 08:18:26 -06:00
Kevin Tew
2c02d9ff8d
Finish load_extension places FIXME_LATER
2011-04-25 08:18:23 -06:00
Kevin Tew
44bf21a907
make group_member_cache place local
2011-04-25 08:18:15 -06:00
Matthew Flatt
187e483204
fix inline `eqv?' (affects PPC)
2011-04-25 07:25:53 -06:00
Matthew Flatt
4aabaeb7af
fix configure error that can cause CFLAGS to be ignored
...
Merge to 5.1.1
2011-04-24 19:11:57 -06:00
Matthew Flatt
ac5d4cd401
x86 JIT: keep call & ret paired
...
even for a non-tail call from native code to native code;
this change provides huge performance improvements for
some microbenchmarks
Merge to 5.1.1
2011-04-24 16:46:04 -06:00
Matthew Flatt
ae714593cd
JIT: shorter x86 code for type tests, further streamline loop wrapper
...
--- but it doesn't actually speed up the target `assq' function
2011-04-24 15:18:09 -06:00
Matthew Flatt
253aff3e16
fix cached-module lookup
2011-04-24 09:04:58 -06:00
Matthew Flatt
09dbfee792
kFreeBSD configuration fixes
...
and use "uconfig.h" for default configuration
2011-04-24 08:54:53 -06:00
Matthew Flatt
dd8bd1c137
fix prototype
2011-04-24 08:54:35 -06:00
Matthew Flatt
6078013e32
JIT improvement: more direct path through loop wrappers
2011-04-24 07:55:33 -06:00
Matthew Flatt
3dffd5fbe6
faster JIT-generated path to `equal?' when futures are enabled
2011-04-24 07:55:33 -06:00
Matthew Flatt
f4303cbef8
faster JITted path to `equal?'
2011-04-24 07:55:33 -06:00
Matthew Flatt
45d7635188
fix non-places build
2011-04-24 07:55:33 -06:00
Matthew Flatt
feac196a31
minor JIT back-end improvements to avoid redundant loads
2011-04-24 07:55:33 -06:00
Matthew Flatt
b1ac25023d
allow additional arguments to `raise-mismatch-error'
...
because it's often useful to show more values, and a
tail `raise-mismatch-error' instead of a nested `format'
can avoid some safe-for-space work in the JIT output
2011-04-24 07:55:33 -06:00
Matthew Flatt
f54d977de1
JIT-inline `eqv?'
2011-04-24 07:55:32 -06:00
Matthew Flatt
b7639e5a15
clean up futures at place termination
2011-04-22 15:59:33 -06:00
Matthew Flatt
0754ad0114
safe-for-space repairs for functions with rest args
2011-04-22 15:59:33 -06:00
Kevin Tew
f4307c65a7
[Places] free mark stack when place terminates
2011-04-22 15:33:17 -06:00
Kevin Tew
dc2c16058b
[Places] free alloc_cache and page_range on place termination
2011-04-22 12:20:09 -06:00
Kevin Tew
012868e491
[Places] free nursery on place termination
2011-04-22 12:20:04 -06:00
Matthew Flatt
3f9a4c49fa
fix `#define's that are used in more configurations than originally
2011-04-21 19:34:07 -06:00
Matthew Flatt
c4dbbdfaf3
fix C declaration
2011-04-21 19:34:07 -06:00
Matthew Flatt
f761be02be
fix logging for master GC
2011-04-21 19:34:07 -06:00
Kevin Tew
8b049bb2ff
Missed old code removal during recent refactor
2011-04-21 18:16:47 -06:00
Kevin Tew
d197d39d2c
[Places] free gcs when places terminate
2011-04-21 14:27:27 -06:00
Matthew Flatt
c280b19ee2
remove unused var
2011-04-21 11:45:34 -06:00
Matthew Flatt
5e24a6d37c
improve logging related to GC and places
2011-04-21 11:42:20 -06:00
Kevin Tew
c00a85edf8
Free msg_memory when place channel is finalized
2011-04-21 11:20:53 -06:00
Kevin Tew
8e2c09ac2f
Add finalizer for place-channel's mutexes
2011-04-21 11:20:53 -06:00
Kevin Tew
113918e85a
Revert "disable places-by-default for now"
...
This reverts commit 8760d38a95
.
2011-04-21 10:18:29 -06:00
Kevin Tew
b1cd60213f
Test all allowed types in place messages
2011-04-21 06:14:27 -06:00
Matthew Flatt
8760d38a95
disable places-by-default for now
...
--- pending further investigation of memory consumption
2011-04-21 06:12:31 -06:00
Matthew Flatt
2177681336
remove leftover(?) place GC-switching code on prefab lookup
2011-04-20 21:13:21 -06:00
Matthew Flatt
275d4a7a05
future scheduling fix and tweak
...
- put an atomic action on the atomic queue, even if the future
was locally suspended
- try local allocation for a multiple-values buffer
2011-04-20 20:01:29 -06:00
Matthew Flatt
e9dd7580a8
win32: fix incorrectly shared path-conversion buffer
2011-04-20 12:25:48 -06:00
Matthew Flatt
231cf7db48
win32: create threads in the right way for C library
2011-04-20 11:25:15 -06:00
Matthew Flatt
714df5598c
restore needed forcing of hash codes
2011-04-20 08:22:01 -06:00
Matthew Flatt
5969524bd4
remove debugging leftovers(?)
2011-04-20 07:37:12 -06:00
Matthew Flatt
e47c9a2f9d
allow cyclic values over place channels
2011-04-20 07:21:10 -06:00
Matthew Flatt
e1fced4897
places: clean up bad-message reporting, simplify some code
2011-04-20 06:55:37 -06:00
Eli Barzilay
0d021aacd2
New Racket version 5.1.1.3.
2011-04-20 03:50:42 -04:00
Kevin Tew
4749ae9d8a
Fix places message to correctly say place-channel-send, add support for
...
windows paths in place channels
2011-04-19 22:44:13 -06:00
Matthew Flatt
1932a453a8
enable inlining of calls to `case-lambda' procedures
...
which includes calls to procedures with optional (but no keyword)
arguments
2011-04-19 21:28:14 -06:00
Kevin Tew
fbb3926e07
Fix drracket crash on mflatt field.rkt test
2011-04-19 13:00:35 -06:00
Kevin Tew
4fd6144e3d
[Places] place are now turned on by default
2011-04-19 09:15:17 -06:00
Matthew Flatt
2032ec910f
better error message for bad command-line argument
2011-04-19 07:00:45 -06:00
Kevin Tew
49c73d767b
[Places] improve small message performance
2011-04-19 03:31:51 -06:00
Matthew Flatt
586478a241
fix `namespace-attach-module' at phases above 0
...
Closes PR 11863
Merge to 5.1.1
2011-04-18 15:48:14 -06:00
Matthew Flatt
2fa35a2a5c
fix bug in thread'-based implementation of
place'
...
which is used when parallel places are unavailable
2011-04-18 13:06:03 -06:00