Commit Graph

3320 Commits

Author SHA1 Message Date
Matthew Flatt
d75aaa3c0e fix printed form of place channels 2011-08-31 09:48:56 -06:00
Matthew Flatt
5978717fa3 use closesocket() etc. for scheme_close_socket_fd() 2011-08-31 09:48:56 -06:00
Matthew Flatt
468bfc5437 fix "GRacketCGC.app" install 2011-08-31 09:48:56 -06:00
Kevin Tew
4d8833eab2 abandon unused scheme_socket_to_ports during place copy 2011-08-30 16:21:32 -06:00
Kevin Tew
50745a8219 Accumulate fds for cleanup on exception 2011-08-30 10:02:50 -06:00
Matthew Flatt
638dc2ed62 implement MZ_DO_NOT_INLINE() for MSVC
For 64-bit builds, MSVC has become smart enough to inline functions
in a way that interferes with the implementation of continuations,
so that (planet "williams/simulation/examples/model-2b") crashes,
for example. Explicitly disabling inlining avoids the problem by
making the C stack layout match the implementation's expectation.
2011-08-29 23:22:09 -06:00
Eli Barzilay
f3f3af124f Removed SrPersist.
Blessed-by: Ryan
2011-08-29 16:55:42 -04:00
Kevin Tew
18e14aed80 Reduce duplicate code in place.c, fixes 2011-08-29 07:30:46 -06:00
Matthew Flatt
b02e37b0b9 restore module cache
The module cache was added in 97ce26b1 (April 16, 2011),
but it was accidentally disabled in e9721058 (May 5, 2011).

This time, I figured out a way to test whether the cache is
working (other than to benchmark examples, which is how I
discovered that it wasn't working).
2011-08-28 18:15:44 -06:00
Matthew Flatt
98bc4067c3 make bytecode compiler less picky about exports
Closes PR 12134
2011-08-28 11:21:15 -06:00
Matthew Flatt
4f83f7f279 allow phase 1+ references to not-yet-defined bindings
For example,

 (define-for-syntax (f x) (g x))
 (define-for-syntax (g y) y)

is now allowed. The unbound-variable check for phase 1
and up is delayed until after the module body is partially expanded.
2011-08-28 10:27:31 -06:00
Kevin Tew
5d27959c57 Place sockets and file port fixes 2011-08-26 14:25:18 -06:00
Kevin Tew
801e5dbe0e Fix serious clang warnings 2011-08-26 14:04:28 -06:00
Kevin Tew
6ee0c0298a Fix warnings in place.c 2011-08-26 11:46:57 -06:00
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