Commit Graph

3283 Commits

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