Commit Graph

424 Commits

Author SHA1 Message Date
Matthew Flatt
db75dddf87 fix decompiler's listing of captured top- and module-level variables 2011-05-08 17:01:23 -06: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
Robby Findler
507b1cd8fd moved the docs-complete library into rackunit
to avoid having a separate, new manual for the
  one library
2011-05-05 16:10:42 -05:00
Matthew Flatt
87a4132b40 fix zo-marshal' for #f toplevel-map in lam' 2011-05-03 14:43:27 -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
1b14c6a38e fix mistakes uncovered by optimizer warnings 2011-05-03 06:57:48 -06:00
Matthew Flatt
982503b083 share a timestamp cache across all collections during `raco setup' 2011-04-27 19:02:08 -06:00
Robby Findler
e7d0029aea added lots of new tests that our documentation is complete 2011-04-25 13:24:43 -05:00
Matthew Flatt
0754ad0114 safe-for-space repairs for functions with rest args 2011-04-22 15:59:33 -06:00
Matthew Flatt
6b2219b9e5 write proper ELF section for Unix launchers/executables 2011-04-17 18:04:00 -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
0f14c6aa67 Use proper raco command name in make and pack.
Fixes PR 11719.
2011-02-09 21:13:55 -05:00
Robby Findler
e096e4d5a4 moved find-exe to its own top-level file 2011-02-08 15:38:11 -06:00
David Van Horn
760a58b65d Fixes more spelling errors. 2011-02-04 19:44:13 -07:00
David Van Horn
c9519fd113 Fixed various spelling errors. 2011-02-03 17:42:33 -05:00
Kevin Tew
2e1dffbfcc raco make -j 2011-02-01 08:27:56 -07:00
Matthew Flatt
b70e1eca60 fix problem with `raco exe'
Merge to 5.1
2011-02-01 08:01:16 -07:00
Robby Findler
23012928a6 added a log-info call to incidate when a compilation finishes 2011-01-22 16:06:45 -06:00
Matthew Flatt
ac99c69f0c fix a `raco exe' problem with finding shared-library paths 2011-01-20 21:17:36 -07:00
Kevin Tew
a42ea71113 Scribble with-compile-output fix 2011-01-20 15:57:39 -07:00
Kevin Tew
e7a24a6b41 Parallel Locking 2011-01-11 12:44:09 -07:00
Eli Barzilay
1f49e35b21 2010 -> 2011 2010-12-31 15:59:39 -05:00
Robby Findler
ede60de584 Make it so that DrRacket deletes .zo files when the corresponding source file isn't present anymore
(when in the DrRAcket-compiles-my-zo-files mode)
2010-12-16 16:12:54 -06:00
Matthew Flatt
d4158cfc9c win64: remove unneeded command-line parsing hack 2010-12-04 05:20:40 -07:00
Matthew Flatt
5065f39dec win64: racket3m 2010-12-03 22:35:38 -07:00
Matthew Flatt
8b8dd77ad6 change nearly all long's to intptr_t'
and also changed vector, string, and byte string counts to
   `intptr_t' instead of `int'.

   Except for the vector count, etc. change, this is not really a
   change for any currently supported platform, where `intptr_t'
   is the same as `long'. It's a step to suporting Win64, though,
   where `long' is the same as `int' instead of `intptr_t'.
2010-12-03 08:48:33 -07:00
Robby Findler
bc3bd77e19 move the #lang line to the beginning of the file 2010-12-03 06:30:57 -06:00
Matthew Flatt
0a8e5e604e restore gen-id gensym so that decompiler works 2010-11-11 14:39:45 -07:00
Eli Barzilay
e3592e10a8 Remove all mentions of UnicoWS.
Also, get rid of "uniplt.c", and fix "src/racket/src/string.c" and
"src/gracket/grmain.c" to use CharLowerBuffW().
2010-11-10 23:48:35 -05:00
Matthew Flatt
75a6bfe119 improve runtime-path support for building stand-alone gui exes 2010-11-05 15:54:44 -06:00
Matthew Flatt
44847f8278 adjust exe creation of GRacket2 binaries for Mac OS X 2010-11-05 15:53:56 -06:00
Blake Johnson
199a63772a scrbl file and longer command name 2010-10-30 12:49:27 -06:00
Jay McCarthy
26c7625c79 Exposing more values to GC by not making them toplevels 2010-10-30 09:14:58 -06:00
Jay McCarthy
255489e0af Saving time by only reading zos once and saving space by limiting the extent of the hash tables 2010-10-30 08:54:13 -06:00
Jay McCarthy
46e2e7931a Removing newlines from debug messages 2010-10-30 08:31:23 -06:00
Jay McCarthy
8516001c08 Removing dead file 2010-10-29 22:24:50 -06:00
Jay McCarthy
7c43846b4e Removing old tests 2010-10-29 21:24:11 -06:00
Blake Johnson
783418ce37 only creating zo file 2010-10-29 19:50:12 -06:00
Blake Johnson
a315f79ebd rolling back some unnecessary changes 2010-10-29 19:50:12 -06:00
Blake Johnson
b2b5875e3e replacing self modidx refs and tests 2010-10-29 19:50:12 -06:00
Blake Johnson
0688c18593 fixing logging and running code in zo-exs 2010-10-29 19:50:11 -06:00
Blake Johnson
43e151f340 using hasheq in zo-marshal 2010-10-29 19:50:11 -06:00
Blake Johnson
77c46d07ee debugging 2010-10-29 19:50:11 -06:00
Blake Johnson
7bffbc31a2 Avoiding cycles in everything but closures 2010-10-29 19:50:11 -06:00
Blake Johnson
d84b78daab offset calculation fix 2010-10-29 19:50:11 -06:00
Blake Johnson
3ddda200e8 changed eprintfs to log-debug 2010-10-29 19:50:11 -06:00
Blake Johnson
4676662e4b moved demodularizer from github to collects and added it to raco 2010-10-29 19:50:10 -06:00
Jay McCarthy
089e99fac6 Removing debugging aid 2010-09-16 12:45:38 -06:00
Blake Johnson
c88eb704c7 removing indirects from zo handling 2010-09-16 12:45:37 -06:00
Eli Barzilay
41812ace0f Use "<path>" instead of a misleading "<file>",
improve doc line for `--collect'.
2010-09-12 01:53:52 -04:00