Commit Graph

3361 Commits

Author SHA1 Message Date
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