Commit Graph

3873 Commits

Author SHA1 Message Date
Matthew Flatt
84b615a005 fix timing of `place-break' checks in scheduler
Otherwise, a place in a `sleep' call could fail to
see the break until waking up.
2011-10-11 17:17:58 -06:00
Matthew Flatt
0993408c19 fix `place-break' on terminated place
Merge to 5.2
2011-10-11 17:17:58 -06:00
Matthew Flatt
fe9e34f938 skip future mutex if no futures started
Skipping the check makes a measurable difference when
several places are running.
2011-10-11 15:09:23 -06:00
Matthew Flatt
a9b1a38f34 reduce place-channel allocation 2011-10-11 15:09:22 -06:00
Matthew Flatt
04e75dd82a revert GC block cache to reasonable size 2011-10-11 14:36:53 -06:00
Matthew Flatt
5c0956d7b1 more memory accounting fixes for places
Fix memory accounting to detect when messages pile up in a
place channel and when shared values (such as the result of
`make-shared-bytes') pile up. Also fix problems where a GC
or free-page purge needs to be triggered.

The implementation causes a minor API change, which is that
a place channel sent multiple times as a message generates
values that are `equal?' but no longer eq?'.

Closes PR 12273

[Do not merge to 5.2]
2011-10-11 11:26:11 -06:00
Matthew Flatt
32b5390ad2 add missing GC registration for places
Merge to 5.2
2011-10-11 06:45:14 -06:00
Kevin Tew
1a2d425ece Fix QNX merge to 5.2 2011-10-10 11:07:29 -06:00
Kevin Tew
58b1f86326 pr 12268 fix merge to 5.2 2011-10-10 11:07:29 -06:00
Vincent St-Amour
90aa9c9d75 Typoes. 2011-10-10 11:40:51 -04:00
Matthew Flatt
c805728d3e fix compiler confusion: non-mutating vs reorderable unsafe ops
Reordering `unsafe-vector-ref' past an `unsafe-vector-set!' was
particularly bad. Meanwhile, some non-mutating operations like
`unsafe-mcar' were treated too conservatively.

Merge to 5.2
2011-10-09 19:46:24 -06:00
Matthew Flatt
b377cafdac mark OS jmpbuf as GC-ignored
This change is intended to make the QNX port work, but it
should also future-proof Racket a little for other platforms.
2011-10-09 10:45:24 -06:00
Matthew Flatt
e2bcbb0dfb fix QNX sconfig entry
Merge to 5.2
2011-10-09 10:34:40 -06:00
Eli Barzilay
ceacfe5ef5 New Racket version 5.2.0.1. 2011-10-09 03:50:16 -04:00
Matthew Flatt
1bc80310e3 fix compiler bug that could cause infinite inlining loop
The bug was that a procedure could be incorrectly marked as
a "leaf" procedure, which could in turn cause the compiler
to keep inlining a very small procedure that calls itself.

Closes PR 12270

Merge to 5.2
2011-10-08 16:40:34 -06:00
Matthew Flatt
41b18e3608 windows: add sqlite3.dll
Merge to 5.2
2011-10-08 07:18:49 -06:00
Ryan Culpepper
ecd7519f56 Post-release version for the v5.2 release 2011-10-07 22:10:32 -06:00
Matthew Flatt
f02ea92250 fix compiler bug related to `#%variable-reference' on local
The first compiler pass didn't properly shift the stack offset
when adjusting the context of a varref of a local.

Closes PR 12258
2011-10-07 09:42:33 -06:00
Matthew Flatt
add50ab436 cocoa: undo hack of "-64" suffix on app names
Commit 60101618db seems to address the real problem.
2011-10-07 08:05:25 -06:00
Kevin Tew
d3037adbc0 QNX porting 2011-10-06 10:50:37 -06:00
Eli Barzilay
5ba73a6ab2 New Racket version 5.1.3.12. 2011-10-06 03:50:18 -04:00
Matthew Flatt
7680adf486 fix compiler bug related to lifting and unbox flonums
As variables are dropped for lifted functions, the bitmap
for flonum closure variables was not shifted down by the
number of dropped variables.

Closes PR 12259
2011-10-05 19:25:59 -06:00
Matthew Flatt
97d0df94bb fix "configure" and "configure.ac" for libfit 2011-10-05 11:41:05 -06:00
Neil Toronto
d3b5e21cae Added new plot library and old libfit (which plot still depends on) 2011-10-05 10:26:49 -06:00
Matthew Flatt
ec380e34ed remove built-in reader and printing support for Honu
This is a backward-incompatible change, but I think it's
unlikely that any code depends on the removed bindings
or reader syntax.
2011-10-05 09:40:27 -06:00
Matthew Flatt
6a8d3c34f1 win64: avoid msvcr90.dll
The libjpeg, libeay, and ssleay libraries for Win64 linked to
msvcr90.dll, because of the way that they were compiled with
MSVC 2008, but msvcr90.dll is not included with Win7, and
redistributing it is problematic. The new variants of the libraries
link instead of msvcrt.dll --- which you're not supposed to do
according to MS, but that's the way libraries like Gtk are
built, and it seems to be the right approach. See also

 http://kobyk.wordpress.com/2007/07/20/dynamically-linking-with-msvcrtdll-using-visual-c-2005/

I built libjpeg-8, while the other two are courtesey of
http://www.indyproject.org.

Closes PR 12246
2011-10-05 06:28:31 -06:00
Matthew Flatt
2262cd4424 windows: assume 1MB stack, but try to read actual from executable 2011-10-05 06:28:29 -06:00
Eli Barzilay
7ad7857ce2 Fixed "src/configure".
(Turns out that editing configure by hand is not a good idea...)

Also a random racket comment.
2011-10-05 04:55:25 -04:00
Eli Barzilay
e01e46b772 Removed the `plot' collection, in preparation for adding the new one instead. 2011-10-05 04:09:10 -04:00
Matthew Flatt
80ca2b34ff fix reference to statics meant to be adjusted by `raco exe' 2011-10-03 09:05:02 -06:00
Matthew Flatt
a0378d956a fix place refcount
Originally, the refcount was either 0, 1, or 2, so a `char' was
enough. It's not enough now that place channels increment the
refcount.
2011-10-03 06:39:18 -06:00
Matthew Flatt
664b95465d fix potential refcount bug
In the unlikely case that a receiving place ends while a
message is being sent.
2011-10-03 06:39:18 -06:00
Matthew Flatt
430474f4fa fix GC log value 2011-10-01 07:41:58 -06:00
Kevin Tew
e650764a4c place-channel? returns #t for place descriptors, doc clarification 2011-09-30 17:15:11 -06:00
Kevin Tew
a7b0c33896 QNX porting 2011-09-30 17:03:50 -06:00
Matthew Flatt
035ab04b67 PPC JIT fix 2011-09-30 07:55:33 -06:00
Eli Barzilay
3441d0f7d0 New Racket version 5.1.3.11. 2011-09-30 03:50:17 -04:00
Matthew Flatt
99fe14b080 fix problems with phase-1 syntax definitions
Closes PR 12234
2011-09-29 16:54:08 -06:00
Matthew Flatt
a857e9e041 fix JIT bug in `fl->fx'
For the case that the argument is unboxed.

Closes PR 12240
2011-09-29 16:54:08 -06:00
Matthew Flatt
73071ad186 improve GC logging (3m)
Show process time of start of GC and otherwise adjust to make
the output more compact, and attach a prefab struct to the
logged message to report all available data in Racket form
(including real start and end times, which are not shown in
the output).
2011-09-29 16:54:08 -06:00
Kevin Tew
f2b7d1eca3 Start of port to QNX 2011-09-29 14:42:04 -06:00
Kevin Tew
dc481d2d20 Fix place crash due to race condition 2011-09-29 13:45:25 -06:00
Matthew Flatt
ac8990d519 add date*' and exn:fail:syntax:unbound'
The `date*' structure type is an extension of `date' with
`nanosecond' and `time-zone-name' fields.

The `seconds->date' function now accepts a real and returns a
`date*'. The fractional part of its argument goes into the
`nanosecond' field.
2011-09-29 09:22:10 -06:00
Matthew Flatt
58097a12fe inside: export scheme_alloc_flvector() and scheme_alloc_fxvector() 2011-09-29 09:14:00 -06:00
Kevin Tew
95037828f7 Place channels correctly use refcount on place_objects 2011-09-28 13:15:46 -06:00
Matthew Flatt
2ae6d0c55f fix expand of `#%variable-reference' on local variable
Closes PR 12231
2011-09-27 18:53:28 -06:00
Kevin Tew
3e830712aa fix uninitialized variable messages 2011-09-27 10:26:30 -06:00
Matthew Flatt
f9dabb8994 add -J/--wm-class argument to set the WM_CLASS class on Unix 2011-09-26 18:07:18 -06:00
Matthew Flatt
1ae6cc0505 change `syntax-local-lift-module-end-declaration' for phase N
Lift to the end of the module, instead of the end of the
enclosing `begin-for-syntax'.

Also, fix a bug in phase 2+ visits.
2011-09-24 22:30:56 +09:00
Matthew Flatt
051f164f3f fix parsing of protect-out' on for-syntax' bindings 2011-09-24 22:30:56 +09:00
Eli Barzilay
5024b690ca New Racket version 5.1.3.10. 2011-09-21 03:50:16 -04:00
Matthew Flatt
6e6e30a73a don't check for future or foreign work in atomic mode 2011-09-20 16:12:59 -06:00
Matthew Flatt
27be90e7b7 adjust cycle-detection valeu to avoid fixnum encoding
Just in case.
2011-09-20 16:12:59 -06:00
Matthew Flatt
37823107d1 convert C++-style comments to C-style comments
As far as I know, "//" isn't a C comment form, although
MSVC and gcc both accept it.
2011-09-20 16:12:59 -06:00
Ryan Culpepper
30d5381e98 updated macro debugger to work with begin-for-syntax changes
Also cleaned up support for lazy instantiation of phase>0
environments.
2011-09-20 14:49:49 -06:00
Matthew Flatt
0197902309 add var-ref->mod-decl-insp' and switch cur-code-insp' uses
Macros and other tools that need syntax privilege used
`(current-code-inspector)' at the module top-level to try to
capture the right code inspector at load time. It's more
consistent to instead use the enclosing module's declaration-time
inspector, and `var-ref->mod-decl-insp' provides that. The
new function works only on references to anonymous variables,
which limits access to the inspector.

The real function name is longer, of course.
2011-09-20 13:50:36 -06:00
Kevin Tew
36e53c56cb Fix cleanup of place_obj mutex and semaphore 2011-09-20 12:04:33 -06:00
Matthew Flatt
a7c607a708 fix module expand bug 2011-09-20 09:48:48 -06:00
Matthew Flatt
5351d4c7b9 fix gc and stack-overflow problems in JIT, module expansion & run
The GC problem was related to generational GC and the way constant
values are associated to JIT-generated code. See `retaining_data'.

The stack-overflow problems affects the JIT, module expansion,
and module invocation.
2011-09-20 08:34:29 -06:00
Matthew Flatt
df43d90513 windows: fix `copy-file' changes 2011-09-19 14:26:07 -06:00
Matthew Flatt
7f887fdf60 fix problems in copy-file'; add exists-ok?' argument
The non-Windows `copy-file' had a race condition, and it could
behave in bad ways if the source of a copy is not a regular
file.
2011-09-19 08:20:22 -06:00
Matthew Flatt
6401b30399 fix winsock init and shutdown for places 2011-09-16 18:03:32 -06:00
Matthew Flatt
dcda2b60d3 fix write() and read() calls for in-thread gethostbyname() 2011-09-16 16:42:14 -06:00
Matthew Flatt
b79c410e5b fix in-thread gethostbyname() for places
Uncovered by "place-parallel.rkt" test; not found in previous runs
because in-thread gethostbyname() wasn't enabled for Linux, but it
is now.
2011-09-16 16:19:04 -06:00
Matthew Flatt
1bfd9987c4 fix pointer-ownership check so that it works
A working check uncovered one of the badly registered statics.
2011-09-16 16:19:04 -06:00
Matthew Flatt
aa1eb065c5 fix initialization of place-shared statics 2011-09-16 16:19:04 -06:00
Matthew Flatt
24e587a64e lock is needed for writing after all 2011-09-16 16:19:04 -06:00
Kevin Tew
fa50c780a4 close fds on error 2011-09-16 14:11:34 -06:00
Kevin Tew
a605a97132 place* throw error on closed port 2011-09-16 13:24:39 -06:00
Matthew Flatt
7a00fbddc7 remove incorrect port shutdown; windows: fix console ports for places
Ports must be forced closed in the case of kill a place,
and the existing code takes care of that.

The Windows fix is especially needed for the new places port
handling, but it turns out that the console handlign was broken for
places anyway.
2011-09-16 08:12:51 -06:00
Matthew Flatt
5f21abbaf3 place ports are not regular files and should not be in text mode 2011-09-16 07:05:58 -06:00
Matthew Flatt
50bd8c6153 fix bad return for a void function 2011-09-16 07:04:15 -06:00
Matthew Flatt
d173879f39 fix places pipe for Windows
And also fix int-vs-ptr mismatches for the pipe layer
that is also used by `subprocess'
2011-09-16 07:03:29 -06:00
Kevin Tew
b6972a3b7f dynamic-place now pipes standard io to standard out and error much like system. 2011-09-15 14:53:58 -06:00
Matthew Flatt
039f9c10f3 fix calculation for hash code of a hash table 2011-09-15 14:23:44 -06:00
Matthew Flatt
cc9514f8ca another place-channel finalization repair 2011-09-15 06:38:41 -06:00
Matthew Flatt
051d677f0f place-channel fixes
Finalization for a place channel used a recursive, non-atomic
function, which meant that a thread switch could happen during
place-channel finalization, leaving the new thread with the
master GC and generally confused. (The random-message test
found the bug right away on my machine.)

We already have a non-recursive, non-atomic function to traverse
place messages, so collapse all modes into that one implementation.

Along the way, problems with empty structs (found by random tester)
and checking of file descriptors (test added) also fixed.
2011-09-14 20:43:36 -06:00
Matthew Flatt
3b077078de adjust module name resolve to use cc-marks less
Use `continuation-mark-set-first', instead.
Also, re-enable bytecode for Racket code that is built into
the binary, which had been left disabled accidentally.
2011-09-14 15:01:18 -06:00
Matthew Flatt
7315bfa554 drop an unnecesary lock
The recent addition of a shared table of names for shared code
caused bad performance on some machines (such as Robby's)
due to the lock on the table. The lock dosn't seem to be necessary
for platforms where places are supported, though.
2011-09-14 15:00:45 -06:00
Eli Barzilay
50ead29fb9 New Racket version 5.1.3.9. 2011-09-14 03:50:15 -04:00
Matthew Flatt
a233697f08 fix errortrace (required API changes), add `syntax-shift-phase-level'
Also fix a bug in the `module' expander and streamline lazy
visits.
2011-09-13 21:04:10 -06:00
Eli Barzilay
9a034c44ad New Racket version 5.1.3.8. 2011-09-13 03:50:16 -04:00
Matthew Flatt
b7bef3b3aa add syntax-transforming-module-expression?', variable-reference->module-base-phase' 2011-09-12 17:08:50 -06:00
Matthew Flatt
c352ef8fce allow different phases for `free-identifier=?' arguments 2011-09-12 17:08:50 -06:00
Matthew Flatt
3565c7e820 share table of shared code pointers
Allows stack traces to report information in places other than
the main place
2011-09-12 09:35:47 -06:00
Matthew Flatt
f3a79350e2 avoid custodian shutdown during atomic FFI callback 2011-09-10 14:36:49 -06:00
Matthew Flatt
28afc4490e cocoa: distinguish CFBundleIdentifier for 64-bit vs. 32-bit apps
This is another attempt at fixing PR 12135
2011-09-10 10:53:43 -06:00
Matthew Flatt
9d4fcd8e84 better fix for TransformProcessType issue
GRacket registers witht a global table to indicate that
no transform is needed. (This change was intended to address
a 64-bit problem on Lion. It didn't help, but this seems
better than ignoring an error.)
2011-09-10 10:53:42 -06:00
Matthew Flatt
ed36c5d21c fix another warning (gcc) 2011-09-09 21:11:33 -06:00
Matthew Flatt
8d766480da fix for build with link-time optimization enabled 2011-09-09 21:06:17 -06:00
Matthew Flatt
b1417cd9f9 fix plot bug
No idea whether it matters; hopefully this code goes away soon.
The bug was pointed out by clang.
2011-09-09 20:49:08 -06:00
Matthew Flatt
446fb89af1 avoid clang warnings
The main change is to use C99 flexible array declarations
in structs, instead of declaring single-element arrays.
There are still a few -Wtautological-compare warnings
in 3m due to marco expansion.
2011-09-09 20:45:43 -06:00
Eli Barzilay
29d4bba008 New Racket version 5.1.3.7. 2011-09-09 03:50:19 -04:00
Matthew Flatt
0229e762bc fix place-unfriendly static in ffi
Lazy initialization of statics shared across places doesn't work.
Also, each static must be registered with the GC exactly once;
I'm not sure why regstering on every callback didn't cause more
problems.
2011-09-08 18:29:37 -06:00
Matthew Flatt
d3c56c9f13 generalized `begin-for-syntax' 2011-09-08 14:06:00 -06:00
Matthew Flatt
83e7f92250 fix non-places build 2011-09-06 05:48:17 -06:00
Matthew Flatt
6d944453a7 make memory accounting and places work together
The `current-memory-use' function's result now includes the memory
use of places created from the calling place, and custodian memory
limits apply to memory use by places (owned by the custodian).

This change is relevant to PR 12004 in that DrRacket will no longer
crash on the example if a memory limit is in effect, but plain
Racket starts with no such limit and will exhaust all memory.
2011-09-05 13:24:22 -06:00
Matthew Flatt
ee6104b4fc fix `subprocess-status' when places are enabled
Closes PR 12158
2011-09-04 15:55:26 -06:00
Kevin Tew
dbcf70db30 Fix check for interactively defined module paths. 2011-09-01 15:17:22 -06:00
Matthew Flatt
29205fa91a fix changes to command-line handle that broke the Windows build 2011-09-01 12:48:20 -06:00
Kevin Tew
81f9bf4e1d Fix dup errors, bignum deserialization, and port names across place channels
Fix bignum deserialization
Error reporting for failed dups during place channel communications
communicate socket port names across place channels
2011-09-01 12:02:21 -06:00
Kevin Tew
261f002ce2 Error messages for using places with symbol module paths 2011-09-01 12:02:20 -06:00
Matthew Flatt
db0db9463e adjust -X handling to make `raco exe' work on Unix
Closes PR 12151
2011-09-01 08:49:26 -06:00
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
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
Matthew Flatt
0c1348ee03 fix module-code cache for non-futures, non-places build 2011-04-18 06:34:50 -06:00
Matthew Flatt
6b2219b9e5 write proper ELF section for Unix launchers/executables 2011-04-17 18:04:00 -06:00
Eli Barzilay
875385b8f7 New Racket version 5.1.1.2. 2011-04-17 03:50:20 -04:00
Matthew Flatt
2a5fe45c7a add `namespace-attach-module-declaration'
which creates a little more sharing than the automatic
 caching of modules, but only for a program that explicitly
 attaches module declarations to share
2011-04-16 13:25:57 -06:00
Matthew Flatt
97ce26b182 cache loaded compiled modules
using a SHA1 hash stored in the marshaled bytecode; this cache
 lowers the cost of sandboxes or other uses of multiple namespaces
 when the code inspector doesn't change; the caching is almost
 transparent, but an eval handler might be called with compiled
 code that cannot be written
2011-04-16 13:24:58 -06:00
Eli Barzilay
ea9e6ce73a New Racket version 5.1.1.1. 2011-04-16 14:13:13 -04:00
Ryan Culpepper
183780238d Post-release version for the v5.1.1 release 2011-04-16 08:20:01 -06:00
Matthew Flatt
b6efdff4ec configure: -lffi goes in LIBS, not LDFLAGS 2011-04-14 10:49:13 -06:00
Matthew Flatt
f6d185abab configure: use `pkg-config' for libffi 2011-04-13 11:00:23 -06:00
Matthew Flatt
efed709f69 improve error reporting when using exec 2011-04-13 11:00:23 -06:00
Matthew Flatt
8a2d5878bc minor hash tuning 2011-04-13 11:00:23 -06:00
Kevin Tew
9d55c6c202 [Places] windows fixes 2011-04-12 12:05:27 -06:00
Matthew Flatt
ace0faa50f fix `configure' typo 2011-04-11 06:33:16 -06:00
Matthew Flatt
75753e6891 make --disable-foreign build work, at least for plain `racket' 2011-04-10 19:58:04 -06:00
Matthew Flatt
ac71f6080e don't look for X11 headers and libs during configure 2011-04-10 19:37:59 -06:00
Matthew Flatt
f3c3bb4441 Use installed libffi, if any, instead of building own
and add --disable-libffi to get old, always-build behavior
2011-04-10 19:26:15 -06:00
Matthew Flatt
6b503fa947 fix non-futures build 2011-04-10 09:10:07 -06:00
Matthew Flatt
8f9b71d785 futures: revert a GC-allocation change
because the old way looks right after all
2011-04-10 09:10:06 -06:00
Matthew Flatt
857003378a futures: more bug fixes, make `touch' safe
- bug fixes are related to allocation and runstack space
 - a `touch' within a future can complete before the `touch'ing
   future is itself `touch'ed
 - also make `length' safe (and JIT-inlined)
2011-04-09 17:12:24 -06:00
Matthew Flatt
7f6b8597f3 futures: dynamically allocate worker-thread array
so that a machine with > 8 processors doesn't cause a crash
2011-04-08 19:49:50 -06:00
Matthew Flatt
1028c669b7 futures: move flag check under lock 2011-04-08 17:38:09 -06:00
Matthew Flatt
2dcd76f609 fix arity reporting for chaperoned procedures and some primitives
such as `for-each'
2011-04-08 07:54:41 -06:00
Matthew Flatt
3dda2492c2 fix subprocess bug with places 2011-04-08 07:10:08 -06:00
Eli Barzilay
f0d1b6b91a New Racket version 5.1.0.6. 2011-04-07 03:50:13 -04:00
Matthew Flatt
3bf0f800a7 futures: make `future' work in a future, overhaul logging, fix bugs 2011-04-06 17:40:44 -06:00
Matthew Flatt
974f24ae54 increase the runstack size for a future thread 2011-04-04 21:15:44 -06:00
Matthew Flatt
1641d07a42 cocoa: upgrade cairo binary to v1.10.2
plus one little patch from the cairo repo
2011-04-02 15:52:00 -06:00
Kevin Tew
26d7768d3d Rename place-channel-recv place-channel-receive 2011-03-31 13:36:40 -06:00
Kevin Tew
f000517d42 mk-gdbinit.rkt improvements 2011-03-31 12:59:28 -06:00
Kevin Tew
4feebef9ef stxobj.c init cleanup 2011-03-31 12:59:24 -06:00
Eli Barzilay
be95f7a501 New Racket version 5.1.0.5. 2011-03-31 03:50:07 -04:00
Matthew Flatt
f88621aec1 fix more shift-cache problems 2011-03-30 15:13:01 -06:00
Matthew Flatt
bbc5533938 Scribble: change the way `racketblock' etc. indent/inset works
- introduce 'code-inset style for nested blocks
 - use style instead of spaces for code indentation
 - sigplanconf adds vertical space around 'code-inset
 - more ...0 variants to compose better
2011-03-30 15:12:30 -06:00
Kevin Tew
a9572505d8 [Places] empty_self_modidx fix 2011-03-30 12:18:03 -06:00
Matthew Flatt
05b777d382 protect against empty -N command-line argument 2011-03-29 19:53:05 -06:00
Matthew Flatt
1788703a42 Linux: set OS process name to match -N argument or argv[0] 2011-03-29 11:02:06 -06:00
Kevin Tew
ef200b3e7e Linux signal handling debug code 2011-03-25 15:04:02 -06:00
Kevin Tew
40847f51b1 Linux places need more thread stack space 2011-03-25 15:04:02 -06:00
Kevin Tew
aa0f285efa [PLACES] variable-reference->module-source fix 2011-03-25 13:07:39 -06:00
Kevin Tew
7dc22bc0fe added scheme_place_check_for_killed prototype 2011-03-23 16:28:53 -06:00
Matthew Flatt
5f237dd5df remove unused local C variable 2011-03-20 13:02:51 -06:00
Matthew Flatt
dafb6742e2 try to fix JIT-buffer overflow error 2011-03-20 12:57:24 -06:00
Matthew Flatt
ed96b89c45 JIT-inline `list?' 2011-03-20 09:51:32 -06:00
Matthew Flatt
39ebb083cc split functions to reduce C compile time 2011-03-20 09:51:31 -06:00
Kevin Tew
ae8b326522 [Places] added place-kill 2011-03-18 15:06:11 -06:00
Kevin Tew
b8c779b059 Added char* casts to symbol -> byte string conversions 2011-03-18 15:06:11 -06:00
Vincent St-Amour
e9789c6697 Fix the 2-argument case of atan to conform to the documentation and
fix the documentation.
2011-03-17 13:10:19 -04:00
Kevin Tew
f7caad524b [Places] fix symbol -> byte string conversions 2011-03-17 09:58:23 -06:00
Matthew Flatt
ded23a4f75 fix PSMTabBarControl sizes again
- previous fix changed x86 instead of intended ppc line
2011-03-17 06:35:23 -06:00
Matthew Flatt
4b39efdee4 fix `syntax-local-bind-syntaxes' argument checking
Closes PR 11808
2011-03-16 06:36:48 -06:00
Matthew Flatt
056a3fb588 fix lib size for ppc-macosx 2011-03-15 16:16:48 -06:00
Matthew Flatt
b9c4bbae67 futures: limit parallelism via custodians
Closes PR 11682
2011-03-15 14:43:18 -06:00
Matthew Flatt
93e10989fd export scheme_on_demand_jit_code 2011-03-15 06:43:53 -06:00
Matthew Flatt
5d481c259b fix inexact number printing when LC_NUMERIC locale is not "C"
Relevant to PR 11802
2011-03-13 09:02:40 -06:00
Matthew Flatt
cf69cb2aff special treatment of void as 'inferred-name property
allows keyword-based application to hide temporary
 names that happen to be bound to procedure arguments
2011-03-13 09:02:39 -06:00
Eli Barzilay
02f6ef0ec0 New Racket version 5.1.0.4. 2011-03-12 03:50:18 -05:00
Matthew Flatt
a5a7076fe0 `file-or-directory-permissions': expose more info, add write mode
and add `user-read-bit', etc., to `racket/file'
2011-03-11 02:50:06 -06:00
Matthew Flatt
3249ca2ab8 cocoa: fix bug in PSMTabBarControl 2011-03-11 02:50:05 -06:00
Matthew Flatt
7679e91de3 win32: fix ffi-lib' for non-ASCII in ffi/unsafe' 2011-03-10 07:35:49 -07:00
James Swaine
f4cae46f14 Added fsemaphore logging via the FSEMA_LOGGING preprocessor flag. 2011-03-03 16:56:29 -06:00
Eli Barzilay
0b63012e9e New Racket version 5.1.0.3. 2011-03-01 03:50:15 -05:00
Matthew Flatt
9abe62d713 bump version to reflect changes in a built-in module's exports 2011-02-28 17:32:59 -07:00
Kevin Tew
eaebcf5fd6 [Places] fall back to threads 2011-02-28 16:03:05 -07:00
Kevin Tew
13d371fa5e Collapse GLOBAL_PRIMS 2011-02-28 16:03:05 -07:00
Matthew Flatt
733eab5805 fix 0-field prefab immutability flag
Closes PR 11777
2011-02-28 15:24:11 -07:00
Matthew Flatt
2482816d3d fix `configure' detection of getaddrinfo() 2011-02-27 16:55:04 -07:00
Matthew Flatt
be9f13011a fix `make clean' with --disable-foreign
Closes PR 11770
2011-02-25 06:57:48 -07:00
Matthew Flatt
b4056373be generalizations to `subprocess' & company
- allow byte strings in more places
  - allow stderr spec to be 'stdout to redirect stderr to stdout
 Closes PR 11711
2011-02-19 08:30:34 -07:00
Matthew Flatt
aacb98f51b PPC JIT fixup 2011-02-18 18:44:01 -07:00
Matthew Flatt
0e590d3a76 VS10 project fixup 2011-02-18 18:44:01 -07:00
Matthew Flatt
4b13dc0ba4 split jit.c into multiple files 2011-02-18 18:44:01 -07:00
Matthew Flatt
5249152743 partially clean up hash-code implementation 2011-02-18 18:44:01 -07:00
Matthew Flatt
7d94936b04 change representation of parameterizations
- slightly slower single extension of parameterization
 - faster repeated extension of parameterization
 - sometimes faster lookup of parameterization
 - simpler implementation (uses functional hash tables)
2011-02-18 18:44:01 -07:00
Matthew Flatt
6041833ac5 fsemaphore cleanup
- abstract over JIT inlining of fsemaphore operations
 - fix problems with non-parallel fsemaphores
 - adjust tests so they don't assume too much concurrency
 - clarify fsemaphore vs. semaphore in the docs
2011-02-18 09:55:01 -07:00
James Swaine
ca5c061a71 Fix fsemaphore-try-wait? so the sema's count is decremented. Make fsemaphore-wait and other futures-related functions cooperate with the GC better. 2011-02-16 21:14:14 -06:00
James Swaine
825a931ffa Fix MSVC compiler errors for fsemaphore code generation 2011-02-16 15:39:45 -06:00
Matthew Flatt
90b8296c8f fix minor problems that trigger C-compiler warnings 2011-02-16 13:19:56 -07:00
James Swaine
c6642de116 Added future semaphores (fsemaphores) 2011-02-15 23:27:03 -06:00
James Swaine
a98553f99b Merge branch 'master' of pltgit:plt 2011-02-15 22:58:08 -06:00
Kevin Tew
156153f692 calling sync on a place-channel now returns the channel message just like standard racket channels 2011-02-15 13:53:01 -07:00
James Swaine
f9c12f9e58 Merge branch 'master' of pltgit:plt 2011-02-14 14:02:47 -06:00
Matthew Flatt
8c0d19fb12 fix `configure' for 64-bit Mac OS X kernel 2011-02-11 06:37:34 -07:00
James Swaine
19dbee0405 Added semaphores for futures 2011-02-08 17:58:02 -06:00