ikarus/scheme
Abdulaziz Ghuloum 372c3e369b Change of strategy in the garbage collector.
Previously: when a generation (say 2) is collected, 
  everything in gen 0 moves to gen 1
  everything in gen 1 moves to gen 2
  everything in gen 2 moves to gen 3

Now: when a generation (say 2 again) is collected
  everything in gen 0 moves to gen 3
  everything in gen 1 moves to gen 3
  everything in gen 2 moves to gen 3

So, some objects get a leap from young to old if they're lucky to be
in the right time.

Consequences: when an object is moved by the collector, we don't
need to track old->new pointers and masks because all moved objects
are clean now.  This both simplifies the collector and makes it more
efficient and might open the door for further optimization
opportunities.  For bootstrap time, we get about 5% overall 
saving and about 20% GC-time saving.  Not bad.

BEFORE:
running stats for macro expansion:
    45 collections
    2558 ms elapsed cpu time, including 212 ms collecting
    2576 ms elapsed real time, including 216 ms collecting
    186972152 bytes allocated
running stats for code generation and serialization:
    86 collections
    4365 ms elapsed cpu time, including 1444 ms collecting
    4374 ms elapsed real time, including 1449 ms collecting
    362819096 bytes allocated
running stats for the entire bootstrap process:
    131 collections
    6928 ms elapsed cpu time, including 1657 ms collecting
    6953 ms elapsed real time, including 1666 ms collecting
    549818232 bytes allocated

AFTER:
running stats for macro expansion:
    45 collections
    2506 ms elapsed cpu time, including 169 ms collecting
    2511 ms elapsed real time, including 171 ms collecting
    186968056 bytes allocated
running stats for code generation and serialization:
    86 collections
    4083 ms elapsed cpu time, including 1189 ms collecting
    4085 ms elapsed real time, including 1191 ms collecting
    362810904 bytes allocated
running stats for the entire bootstrap process:
    131 collections
    6591 ms elapsed cpu time, including 1359 ms collecting
    6599 ms elapsed real time, including 1362 ms collecting
    549805944 bytes allocated
Happy Happy Joy Joy
2007-12-15 10:43:29 -05:00
..
ikarus renamed: 2007-10-17 20:07:10 -04:00
tests Added string case-folding test. 2007-12-14 22:12:59 -05:00
unicode Fixes bug 173201: More reader bugs from read0 2007-12-02 20:06:00 -05:00
Makefile.am Weeded out gcc warnings and added -Wall as a configure flag. 2007-12-10 15:02:25 -05:00
Makefile.in Weeded out gcc warnings and added -Wall as a configure flag. 2007-12-10 15:02:25 -05:00
ikarus.apply.ss fixes bug 173369: errors are supposed to be &assertion 2007-12-15 08:22:49 -05:00
ikarus.boot.prebuilt fixes bug 173369: errors are supposed to be &assertion 2007-12-15 08:22:49 -05:00
ikarus.bytevectors.ss fixes bug 173369: errors are supposed to be &assertion 2007-12-15 08:22:49 -05:00
ikarus.cafe.ss fixes bug 173369: errors are supposed to be &assertion 2007-12-15 08:22:49 -05:00
ikarus.chars.ss fixes bug 173369: errors are supposed to be &assertion 2007-12-15 08:22:49 -05:00
ikarus.code-objects.ss fixes bug 173369: errors are supposed to be &assertion 2007-12-15 08:22:49 -05:00
ikarus.codecs.ss fixes bug 173369: errors are supposed to be &assertion 2007-12-15 08:22:49 -05:00
ikarus.collect.ss * Added license stubs to all *.ss and *.[ch] files. 2007-10-25 16:27:34 -04:00
ikarus.command-line.ss fixes bug 173369: errors are supposed to be &assertion 2007-12-15 08:22:49 -05:00
ikarus.compiler.altcogen.ss * Eliminates a jump-to-jump case in "flatten-code". 2007-11-21 05:31:01 -05:00
ikarus.compiler.ss substantial speedup for new io layer 2007-12-12 21:22:05 -05:00
ikarus.conditions.ss fixes bug 173369: errors are supposed to be &assertion 2007-12-15 08:22:49 -05:00
ikarus.control.ss fixes bug 173369: errors are supposed to be &assertion 2007-12-15 08:22:49 -05:00
ikarus.date-string.ss * Added license stubs to all *.ss and *.[ch] files. 2007-10-25 16:27:34 -04:00
ikarus.enumerations.ss fixes bug 173369: errors are supposed to be &assertion 2007-12-15 08:22:49 -05:00
ikarus.exceptions.ss fixes bug 173369: errors are supposed to be &assertion 2007-12-15 08:22:49 -05:00
ikarus.fasl.ss fixes bug 173369: errors are supposed to be &assertion 2007-12-15 08:22:49 -05:00
ikarus.fasl.write.ss fixes bug 173369: errors are supposed to be &assertion 2007-12-15 08:22:49 -05:00
ikarus.fixnums.ss fixes bug 173369: errors are supposed to be &assertion 2007-12-15 08:22:49 -05:00
ikarus.guardians.ss * Added license stubs to all *.ss and *.[ch] files. 2007-10-25 16:27:34 -04:00
ikarus.handlers.ss fixes bug 173369: errors are supposed to be &assertion 2007-12-15 08:22:49 -05:00
ikarus.hash-tables.ss fixes bug 173369: errors are supposed to be &assertion 2007-12-15 08:22:49 -05:00
ikarus.intel-assembler.ss fixes bug 173369: errors are supposed to be &assertion 2007-12-15 08:22:49 -05:00
ikarus.io.ss fixes bug 173369: errors are supposed to be &assertion 2007-12-15 08:22:49 -05:00
ikarus.lists.ss Changed implementation of append so that it uses half the cons cells 2007-12-15 08:55:53 -05:00
ikarus.load.ss fixes bug 173369: errors are supposed to be &assertion 2007-12-15 08:22:49 -05:00
ikarus.main.ss fixes bug 173369: errors are supposed to be &assertion 2007-12-15 08:22:49 -05:00
ikarus.multiple-values.ss * Added license stubs to all *.ss and *.[ch] files. 2007-10-25 16:27:34 -04:00
ikarus.numerics.ss fixes bug 173369: errors are supposed to be &assertion 2007-12-15 08:22:49 -05:00
ikarus.pairs.ss fixes bug 173369: errors are supposed to be &assertion 2007-12-15 08:22:49 -05:00
ikarus.posix.ss fixes bug 173369: errors are supposed to be &assertion 2007-12-15 08:22:49 -05:00
ikarus.predicates.ss fixes bug 173369: errors are supposed to be &assertion 2007-12-15 08:22:49 -05:00
ikarus.pretty-print.ss fixes bug 173369: errors are supposed to be &assertion 2007-12-15 08:22:49 -05:00
ikarus.promises.ss fixes bug 173369: errors are supposed to be &assertion 2007-12-15 08:22:49 -05:00
ikarus.reader.ss fixes bug 173369: errors are supposed to be &assertion 2007-12-15 08:22:49 -05:00
ikarus.records.procedural.ss changed error message as suggested in bug 173369. 2007-12-15 09:00:31 -05:00
ikarus.singular-objects.ss * Added license stubs to all *.ss and *.[ch] files. 2007-10-25 16:27:34 -04:00
ikarus.sort.ss fixes bug 173369: errors are supposed to be &assertion 2007-12-15 08:22:49 -05:00
ikarus.strings.ss fixes bug 173369: errors are supposed to be &assertion 2007-12-15 08:22:49 -05:00
ikarus.structs.ss fixes bug 173369: errors are supposed to be &assertion 2007-12-15 08:22:49 -05:00
ikarus.symbols.ss fixes bug 173369: errors are supposed to be &assertion 2007-12-15 08:22:49 -05:00
ikarus.time-and-date.ss fixes bug 173369: errors are supposed to be &assertion 2007-12-15 08:22:49 -05:00
ikarus.timer.ss fixes bug 173369: errors are supposed to be &assertion 2007-12-15 08:22:49 -05:00
ikarus.trace.ss fixes bug 173369: errors are supposed to be &assertion 2007-12-15 08:22:49 -05:00
ikarus.unicode-conversion.ss fixes bug 173369: errors are supposed to be &assertion 2007-12-15 08:22:49 -05:00
ikarus.unicode-data.ss fixes bug 173369: errors are supposed to be &assertion 2007-12-15 08:22:49 -05:00
ikarus.vectors.ss fixes bug 173369: errors are supposed to be &assertion 2007-12-15 08:22:49 -05:00
ikarus.writer.ss fixes bug 173369: errors are supposed to be &assertion 2007-12-15 08:22:49 -05:00
last-revision Change of strategy in the garbage collector. 2007-12-15 10:43:29 -05:00
makefile.ss fixes bug 173369: errors are supposed to be &assertion 2007-12-15 08:22:49 -05:00
pass-specify-rep-primops.ss Fixes 1/2 of bug 176207: identifier-syntax second case broken 2007-12-14 01:58:55 -05:00
pass-specify-rep.ss Added an optimization that removes self-references from fix-bound 2007-11-21 04:00:10 -05:00
psyntax.builders.ss * libraries are now expanded to a special library-letrec* form. 2007-11-17 09:53:22 -05:00
psyntax.compat.ss * Added license stubs to all *.ss and *.[ch] files. 2007-10-25 16:27:34 -04:00
psyntax.config.ss renamed: 2007-10-17 20:07:10 -04:00
psyntax.expander.ss fixes bug 173369: errors are supposed to be &assertion 2007-12-15 08:22:49 -05:00
psyntax.internal.ss renamed: 2007-10-17 20:07:10 -04:00
psyntax.library-manager.ss fixes bug 173369: errors are supposed to be &assertion 2007-12-15 08:22:49 -05:00
run-tests.ss Added string case-folding test. 2007-12-14 22:12:59 -05:00
todo-r6rs.ss Added make-custom-textual-input-port and make-custom-textual-output-port 2007-12-10 11:11:59 -05:00