Commit Graph

125 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 d6efe68274 fixes bug 176519: format does not detect too-many-arguments 2007-12-15 07:32:02 -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 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 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 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 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 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 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 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 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
Abdulaziz Ghuloum 1d5c069273 Fixes bug 175057: Added time-gmt-offset procedure that takes a time
object and returns the offset from gmt in seconds.
2007-12-09 07:20:49 -05:00
Abdulaziz Ghuloum efd233ad0e Fixes bugs 175025 and 175026: let-values and let*-values are fixed/added 2007-12-09 02:53:12 -05:00
Abdulaziz Ghuloum 0e93ac2db9 Code of fasl-write is changed to use only binary output prims. 2007-12-08 14:52:35 -05:00
Abdulaziz Ghuloum 39e5c98476 time-second was off my 30 years. fixed. 2007-12-07 06:34:56 -05:00
Abdulaziz Ghuloum cf82981383 Fixes bug 174497: syntax-error should not be in (rnrs) and
syntax-violation not completed
2007-12-07 03:00:25 -05:00
Abdulaziz Ghuloum c0191a8283 Fixes bug 174594: Record read/write now terminate on cycles. 2007-12-07 01:41:21 -05:00
Abdulaziz Ghuloum 1f352825f5 Transcoding to latin-1 now works in the new IO layer. 2007-12-06 08:14:05 -05:00
Abdulaziz Ghuloum 1469932f3d Exported the transcoder? primitive. 2007-12-06 05:05:26 -05:00
Abdulaziz Ghuloum 0b693a7103 The unread-char primitive is deleted, all code that referenced
unread-char was rewritten as peek-char and read-char.
2007-12-05 05:01:56 -05:00
Abdulaziz Ghuloum e874d2d0a0 Added "include-into" macro.
(include-into ctxt "filename") included the contents of the file
  as if they were present in the context ctxt (which must be an
  identifier).  
  (include-into here "filename") would do the same thing as
  (include "filename")
2007-12-05 03:26:56 -05:00
Abdulaziz Ghuloum 4318a7cea7 * fixed name of time-second (was time-seconds before). 2007-12-05 03:11:47 -05:00
Abdulaziz Ghuloum 553c986253 Added current-time, time?, and time-seconds. 2007-12-05 02:35:14 -05:00