Commit Graph

18 Commits

Author SHA1 Message Date
Matthew Flatt
278f090e83 generalized `begin-for-syntax'
original commit: d3c56c9f13
2011-09-08 14:06:00 -06:00
Matthew Flatt
eec721ff4c 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.

original commit: 5352d670c4
2011-08-09 16:33:17 -06:00
Matthew Flatt
ae33722071 fix `compiler/zo-parse' & co.
original commit: 69ad39d45c
2011-06-30 08:24:41 -06:00
Matthew Flatt
ee407d6610 fix varref' in compiler/zo-structs', etc.
and sync docs better with implementation

original commit: a4da2a3f4c
2011-05-09 09:43:32 -06:00
Matthew Flatt
1955c935ff 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.

original commit: 2ada6d0e89
2011-05-03 06:57:49 -06:00
Matthew Flatt
9f2fba9625 safe-for-space repairs for functions with rest args
original commit: 0754ad0114
2011-04-22 15:59:33 -06:00
Blake Johnson
d2ad91ae38 removing indirects from zo handling
original commit: c88eb704c7
2010-09-16 12:45:37 -06:00
Blake Johnson
aa0d3e18ae fixing pr11175, added only-rest-arg-not-used flag
original commit: 3433af0a30
2010-09-10 14:46:04 -06:00
Blake Johnson
4c5dfd88af fixing pr11036 by adding plain certificates
original commit: 170ab47dc2
2010-09-10 14:46:04 -06:00
Blake Johnson
a5f557b90e zo-marshal fixes and switching back to prefabs
original commit: ecc9ceb842
2010-09-10 14:46:03 -06:00
Blake Johnson
b816da148d quoting parameter and not prefab structs
original commit: 893294674a
2010-09-10 14:46:02 -06:00
Blake Johnson
aee68bb788 cases for more complicated lexical renames
original commit: b062c900a1
2010-08-03 15:40:41 -06:00
Blake Johnson
2efb39c391 another all-from-module fix
original commit: 7653ce037b
2010-08-02 19:26:32 -06:00
Blake Johnson
7c32e885f3 better certificate handling in zo-parse and zo-marshal
original commit: 80c6ba482d
2010-07-30 14:37:17 -06:00
Blake Johnson
6887ead2c5 handling top-level-renames and mark-barriers
original commit: 8df94dd746
2010-07-15 15:53:02 -06:00
Jay McCarthy
7b264d5089 Using placeholders in zo-parse for more cyclic datums
original commit: 035ee93911
2010-05-27 12:35:26 -06:00
Matthew Flatt
fc1a05de68 fix decompiler
original commit: 6cfc0b481d
2010-05-08 07:37:07 -06:00
Matthew Flatt
0fcf163a4d rename all files .ss -> .rkt
original commit: 28b4043077
2010-04-27 16:50:15 -06:00