Commit Graph

22 Commits

Author SHA1 Message Date
Robby Findler
092d98656c fix plai/gc2/mutator for the case where a lambda-bound
variable is shadowing something
2013-03-21 22:48:05 -05:00
Robby Findler
0e6975fb2c add 'values' to plai/gc2/mutator language 2013-03-21 22:48:05 -05:00
Robby Findler
e0aef0a575 fix two bugs in recent plai commit 2013-03-09 18:59:26 -06:00
Robby Findler
38f5823a59 adjust plai's gc2 language to use roots as the arguments
to gc:cons and gc:closure instead of passing locs

This enables the important change, namely that get-root-set
no longer returns roots corresponding to the arguments
of the allocation function that we're in the middle of.

This means that a common error students have (forgetting
to chase the 'hd' and 'tl' pointers in their GC) is
harder to make now, since get-root-set never contains
those locations as roots. (In the past you would have had
to write some pretty non-obvious mutator program to get
that behavior.)
2013-03-09 16:08:00 -06:00
Robby Findler
ba3e676057 adjust the expansion of #%module-begin so it doesn't
generate so much code

(Mostly to avoid pain with the macro stepper, but also
reducing the amount of code macros generates is good
for performance reasons)
2013-03-09 09:22:18 -06:00
Robby Findler
46eb91b578 fix a bug in the way let-values decided which variables are roots
also, Rackety
2013-03-09 09:22:18 -06:00
Robby Findler
3311387201 when anormalizing, never lift out identifiers from application expressions
The code used to avoid lifting identifier in more restricted circumstances,
but it seems safe to alway avoid that, which can lead to a lot
less lifting
2013-03-09 09:22:18 -06:00
Robby Findler
87f76e94f7 allow quote require forms in the argument to allocator-setup
This is mostly to better support test cases so that we
can set up namespaces that have specific collectors in them
(easiest to do with quote-based requires)
2013-03-09 09:22:17 -06:00
Robby Findler
0889133ca1 unbreak get-root-set 2013-03-07 13:52:37 -06:00
Robby Findler
49ffca8fc2 remove ->address 2013-03-07 13:52:36 -06:00
Robby Findler
5c90a7ba83 adjust gc2's mutator language so that void-producing expressions
are allowed only in places where the value is discarded
2013-03-07 13:52:36 -06:00
Robby Findler
478ec22d02 add with-roots to plai's gc languages 2013-02-26 12:41:25 -06:00
Jay McCarthy
ffcda4741f Fixing a safe-for-space error that Robby found 2012-02-28 14:15:07 -07:00
Robby Findler
9ffc18a000 adjust plai's gc2/mutator so that primitive applications are
special and primtives not in an application position is a syntax error
2012-02-24 08:15:03 -06:00
Eli Barzilay
c007c345f9 A bunch of more typos like the ones in David's commit. 2012-02-21 14:21:43 -05:00
Robby Findler
7c3464f9d7 add marks on quoted identifiers so that, when they are used later, they bind properly 2012-02-20 21:30:24 -06:00
Robby Findler
3f5a45e904 fix broken vector->roots 2012-02-20 15:29:00 -06:00
Robby Findler
c42675f80c adjust gc2's mutator language:
- give names to user functions that matches the user's names
    (if the third bullet goes away, then the function
     mutator-lift needs to be adjusted so that it uses
     procedure-rename in order to preserve the improvement
     in this bullet)

  - change exn? to exn:fail? (to avoid catching break exns)

  - change lang so that primitives (the ones in the
    provide-flat-prims/lift declaration) are not allocated
    in the user's space (treat them as if they are constants)

    This change makes it easier to build up and explain the
    GC api, piece by piece. That is, you can first run a program
    that contains just a constant (and explain it) with only a
    subset of the api. Then you can do something like (+ 1 2)
    and explain it, both without getting into how procedures work.

    (This is helpful for the way I run my lectures)
2012-02-20 15:29:00 -06:00
Jay McCarthy
c2355caef6 Finalizing initial pass on GC2
It was not a problem with the particular collector. All allocation
sites need to update the gc-roots-key with their static information.
2012-01-04 19:55:24 -07:00
Jay McCarthy
55e1df1445 See last commit 2012-01-04 19:55:24 -07:00
Jay McCarthy
caf83b911b Initial pass on adding manual closure management
There are still five errors, but they seem to be errors in the sample
collector. But I need to find out.
2012-01-04 19:55:24 -07:00
Jay McCarthy
e4755a5ffc New GC code 2012-01-04 19:55:24 -07:00