Commit Graph

1258 Commits

Author SHA1 Message Date
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
Abdulaziz Ghuloum 5a98c9e460 changed error message as suggested in bug 173369. 2007-12-15 09:00:31 -05:00
Abdulaziz Ghuloum c1a677ca4b Changed implementation of append so that it uses half the cons cells
that it previously used.  Interestingly, this reduced bootstrap time
by 60ms and 2 garbage collections!  And I thought I did not use
append :-).
2007-12-15 08:55:53 -05:00
Abdulaziz Ghuloum 8c0563b2d3 fixes bug 173369: errors are supposed to be &assertion 2007-12-15 08:22:49 -05:00
Abdulaziz Ghuloum d6efe68274 fixes bug 176519: format does not detect too-many-arguments 2007-12-15 07:32:02 -05:00
Abdulaziz Ghuloum ab55602ed1 Added string case-folding test. 2007-12-14 22:12:59 -05:00
Abdulaziz Ghuloum b2112ee9c8 changed implementation of string-foldcase to eliminate use of string
ports. (reduce overhead)
2007-12-14 21:04:54 -05:00
Abdulaziz Ghuloum 08ac2d02f9 Added a comment about why input-transcoder-attrs is missing
'utf-8-codec stuff (bug 176456)
2007-12-14 19:45:50 -05:00
Abdulaziz Ghuloum 5deeb28bbe Fixes bug 175517: Custom textual output port not recognized as a
textual port
2007-12-14 19:42:00 -05:00
Abdulaziz Ghuloum 4e66fe76e8 Fixes bug 176207: macros cannot be redefined. 2007-12-14 03:23:47 -05:00
Abdulaziz Ghuloum fa27b7e9cd Fixes 1/2 of bug 176207: identifier-syntax second case broken 2007-12-14 01:58:55 -05:00
Abdulaziz Ghuloum 75f2d78678 more cleanup in expander. 2007-12-13 06:41:44 -05:00
Abdulaziz Ghuloum 112e00a6e6 get-import-spec* now uses an eq-hash-table to detect most dups. 2007-12-13 06:15:21 -05:00
Abdulaziz Ghuloum c181838f48 changed "parse-import-spec*" in psyntax.expander to return two
vectors (names and labels) instead of an a-list subst.
2007-12-13 05:57:15 -05:00
Abdulaziz Ghuloum b5ae1e2361 fixes bug 176057: partition not working right 2007-12-13 01:07:32 -05:00
Abdulaziz Ghuloum 8cd744d4bd exported verbose-timer parameter that allows printing more detailed
information when "time" or "time-it" are used.
2007-12-12 23:58:10 -05:00
Abdulaziz Ghuloum 1d4db4b9c9 more unsafe prims in ikarus.io.ss 2007-12-12 23:50:05 -05:00
Abdulaziz Ghuloum 23b71cee3c substantial speedup for new io layer 2007-12-12 21:22:05 -05:00
Abdulaziz Ghuloum 7996ced7c9 removed base-index field from port structs since it was clearly not
used.
2007-12-12 19:59:10 -05:00
Abdulaziz Ghuloum 9dfa179ded enlarged size of initial ports' buffers to be 4096+ bytes. 2007-12-12 19:52:26 -05:00
Abdulaziz Ghuloum a6e1ce0658 given myself a few extra bits in the port attrs for future extensions 2007-12-12 19:47:03 -05:00
Abdulaziz Ghuloum cef06e3121 removed "closed?" field from port struct. 2007-12-12 19:34:28 -05:00
Abdulaziz Ghuloum c659cd3ed6 split io into two libraries by splitting the prims outside. 2007-12-12 19:18:57 -05:00
Abdulaziz Ghuloum eac9829a03 cleanup of tags in ikarus.io.ss 2007-12-12 18:59:19 -05:00
Abdulaziz Ghuloum 28496998bb Couple of typos in match.ss (reported in bug 175811). 2007-12-12 06:49:57 -05:00
Abdulaziz Ghuloum 3512b4d112 file-based ports are now guarded and their file handles are closed
if the port is dropped and collected.
2007-12-12 01:32:55 -05:00
Abdulaziz Ghuloum af020f909b slight change to implementation of time-gmt-offset so that the
gmt_off field of the tm struct is not used (not available in
cygwin).
2007-12-11 19:32:34 -05:00
Abdulaziz Ghuloum 54f683f0e0 Ported match.ss to ikarus. 2007-12-11 17:41:48 -05:00
Abdulaziz Ghuloum 09a02059c6 custom textual ports now return #t for textual-port? (fixes bug 175517) 2007-12-11 06:04:08 -05:00
Abdulaziz Ghuloum 29eb0d1ce0 The size of output ports is now set to be the buffer size (bug 175485) 2007-12-11 03:25:51 -05:00
Abdulaziz Ghuloum 0ec309fd22 Fixed typos in the user's guide (reported in bug 173535) 2007-12-11 03:14:07 -05:00
Abdulaziz Ghuloum 4ef7d157df Fixes bug 175480: Typo in make-custom-textual-output-port error
message
2007-12-11 02:32:29 -05:00
Abdulaziz Ghuloum b3f30bebff forgot to include <sys/time.h> in ikarys-collect.c (MacOS does not
complain about implicit declaration of gettimeofday).
2007-12-10 15:06:47 -05:00
Abdulaziz Ghuloum 7d7ceb6480 Weeded out gcc warnings and added -Wall as a configure flag. 2007-12-10 15:02:25 -05:00
Abdulaziz Ghuloum 0d79bcd42c removed some unused procedures from ikarus-runtime.c 2007-12-10 12:03:25 -05:00
Abdulaziz Ghuloum 0b648054b8 removed some junk files that were in the repository. 2007-12-10 12:00:12 -05:00
Abdulaziz Ghuloum b6299fbec2 Added make-custom-textual-input-port and make-custom-textual-output-port 2007-12-10 11:11:59 -05:00
Abdulaziz Ghuloum 85a54dbbbf custom-binary-input-files now have their attrs set properly. 2007-12-10 10:56:10 -05:00
Abdulaziz Ghuloum 4a3f9a334a Added tests for custom-binary-output-ports (and fixed it too) 2007-12-10 10:53:17 -05:00
Abdulaziz Ghuloum 3575b0c8d8 Added IO tests. 2007-12-10 10:42:43 -05:00
Abdulaziz Ghuloum 8a375a3cf7 Added make-custom-binary-output-port 2007-12-10 10:36:10 -05:00
Abdulaziz Ghuloum 91b8f90715 removed obsolete (ikarus system $io) library. 2007-12-10 10:24:10 -05:00
Abdulaziz Ghuloum 2ac39cfad0 reimplemented open-output-file. 2007-12-10 10:18:52 -05:00
Abdulaziz Ghuloum 921999a3a2 minor fix to string-input-ports 2007-12-10 09:28:48 -05:00
Abdulaziz Ghuloum 1ecadc0ce5 Added missing license stub to ikarus.io.ss 2007-12-10 08:08:50 -05:00
Abdulaziz Ghuloum dfd66a6cbf Added some of the new IO primitives to the (ikarus) library. 2007-12-10 08:05:31 -05:00
Abdulaziz Ghuloum 7fdeade412 Added console-error-port procedure and redirected all error output
to it.
2007-12-10 07:40:34 -05:00
Abdulaziz Ghuloum 0e38534d2e New IO layer is installed. Still buggy in some area but can be used
for bootstrapping at least.
2007-12-10 07:28:03 -05:00
Abdulaziz Ghuloum ea96ab85db stage 1 of new input IO is almost complete. 2007-12-09 17:13:09 -05:00
Abdulaziz Ghuloum 3562a736c5 Fixes bug 175117: Named let violates scoping rules 2007-12-09 12:20:13 -05:00