Commit Graph

3096 Commits

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