Commit Graph

575 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
Abdulaziz Ghuloum 171604d7fc values and call-with-values now have proper names when printed.
e.g. #<procedure values> and #<procedure call-with-values>
2007-12-05 01:33:47 -05:00
Abdulaziz Ghuloum 00ffe4fdfd Minor bugs in utf32->string and utf8->string. 2007-12-03 11:06:29 -05:00
Abdulaziz Ghuloum b5ab25c1cf Fixed some potential bugs in utf8->string. 2007-12-03 05:43:53 -05:00
Abdulaziz Ghuloum d878bd3934 utf16->string, utf32->string, string->utf16, string->utf32 are all
working now.
2007-12-03 04:28:41 -05:00
Abdulaziz Ghuloum 4efdebb3ac string<->utf in progress 2007-12-03 03:00:01 -05:00
Abdulaziz Ghuloum bdb73c70a8 Added string->utf16 and string->utf32. 2007-12-03 01:35:29 -05:00
Abdulaziz Ghuloum 307fb64f84 Fixes bug 173467. Ikarus now probes the cpuid for SSE2 support. 2007-12-03 00:29:36 -05:00
Abdulaziz Ghuloum 54ace976b5 Fixes bug 173465: suppress warning about missing .bzr/branch/last-revision 2007-12-02 23:43:22 -05:00
Abdulaziz Ghuloum 9d3647f4f5 renamed: scheme/ikarus.transcoders.ss => scheme/ikarus.unicode-conversion.ss 2007-12-02 23:35:23 -05:00
Abdulaziz Ghuloum 8073aa0e1e Partially fixes bug 173173: call-with-bytevector-output-port: primitive not supported yet 2007-12-02 23:13:19 -05:00
Abdulaziz Ghuloum 58fd9cbed8 Added open-bytevector-output-port 2007-12-02 22:59:08 -05:00
Abdulaziz Ghuloum 5073b26fe9 Fixes bug 173201: More reader bugs from read0 2007-12-02 20:06:00 -05:00
Abdulaziz Ghuloum 9d9735ce2a Cases in bug 173201 are closed. Still failing read0 though. 2007-12-02 06:58:33 -05:00
Abdulaziz Ghuloum bc2e88e4e7 Added special case for (div x [positive-fixnum-power-of-2]) 2007-12-02 04:30:59 -05:00
Abdulaziz Ghuloum ebb1f7c055 Partial fix to bug 173042: Wrong error message for (mod 3.0 3) 2007-12-02 02:59:18 -05:00
Abdulaziz Ghuloum 67ecd7124d Fixes bug 173382: Contents of opaque records should not be printed 2007-12-02 01:51:28 -05:00
Abdulaziz Ghuloum 2d06b792e1 Some work on fixing bug 173201. 2007-12-02 01:30:38 -05:00
Abdulaziz Ghuloum 68852b48e4 Fixes minor bugs 173386 and 173381: added typecast and chmod. 2007-12-01 23:54:44 -05:00
Abdulaziz Ghuloum fd3b347f1a Fixes bug 172894 by checking at configure-time whether the
sizeof(void*) is 4.
2007-12-01 22:41:36 -05:00
Abdulaziz Ghuloum 113add26ac Improved error reports in records.procedural as per Derick
Eddington's suggestions and removed the record-name check for
non-generative records.
2007-12-01 22:32:19 -05:00
Abdulaziz Ghuloum 3056d26a9d Moved implementation of safe make-vector to foreign-call. 2007-12-01 05:38:09 -05:00
Abdulaziz Ghuloum 4c16c8b340 * Fixed some reader bugs wrt bug 173201. 2007-12-01 04:31:48 -05:00
Abdulaziz Ghuloum 75e09500c4 Fixes bug 173200: semi-colon is not a delimiter 2007-12-01 03:18:28 -05:00
Abdulaziz Ghuloum bd06d39220 Fixes bug 173165 and bug 173162: opaque and sealed for record types
are not being enforced.
2007-12-01 01:52:34 -05:00
Abdulaziz Ghuloum 9d6f8511c8 Fixes bug 173169: Mutator names on define-record-type are wrong 2007-12-01 01:46:58 -05:00
Abdulaziz Ghuloum d85466ab75 Fixes bug 173170: bytevector-copy! precondition error 2007-12-01 01:43:37 -05:00
Abdulaziz Ghuloum 9651a717cf renamed the extras directory to be lib. 2007-12-01 01:21:18 -05:00
Abdulaziz Ghuloum 6294ea7052 * removed stuff from lib directory. 2007-12-01 01:19:45 -05:00
Abdulaziz Ghuloum 6386b3420a Fixes bug 164823: ikarus.boot remaining open 2007-11-30 07:06:30 -05:00
Abdulaziz Ghuloum 2d55282789 Fixes bug 165133: Bodies of internal definitions should be expanded
before right-hand-side expressions
2007-11-30 06:31:07 -05:00
Abdulaziz Ghuloum 51c8d1c0ed Fixes bug 172734: lookahead-u8: primitive not supported yet 2007-11-30 06:19:59 -05:00
Abdulaziz Ghuloum 5f638cc722 Fixes bug 172933: min and max don't know flonums 2007-11-30 06:01:44 -05:00
Abdulaziz Ghuloum 28fcdd3df6 Fixed bug 172986: define-record-type allowing invalid syntax 2007-11-30 05:36:25 -05:00
Abdulaziz Ghuloum ebc4deea60 Fixes bug 173001: r5rs values exported by rnrs library
* The following bindings were removed from (rnrs): 
  exact->inexact inexact->exact quotient modulo remainder string-set! string-fill!
2007-11-30 05:13:01 -05:00
Abdulaziz Ghuloum 05bc37fe57 Fixed div-and-mod 2007-11-29 20:04:28 -05:00
Abdulaziz Ghuloum c00f006164 Fixed bug 172931: div and mod are bogus. 2007-11-29 18:30:20 -05:00
Abdulaziz Ghuloum c855a0e600 Forgot to commit the 0.0.2 release. 2007-11-29 03:31:54 -05:00
Abdulaziz Ghuloum e21026c635 Fixed minor typo in doc/Makefile.am 2007-11-28 04:34:47 -05:00
Abdulaziz Ghuloum 45a66b61a0 Barak Perlmutter requested that I rename ikarus.boot.orig to
something else since it suffix ".orig" seems to be reserved by some
revision control system or package management system to mean
"do-not-archive" or something like that.  Using ".prebuilt" now.
2007-11-27 16:13:33 -05:00
Abdulaziz Ghuloum 6b74c8fb7d Fixed bug 172279: Incorrect syntax use causing an internal bug 2007-11-27 06:11:30 -05:00
Abdulaziz Ghuloum ca5cb39bb6 Added documentation about graph marks. xelatex seems to be messed
up when generating hyperlinks (the three links are off by some
number of pages).  May need to dump xelatex if I can get true type
fonts to be usable under pdflatex.
2007-11-26 22:08:04 -05:00
Abdulaziz Ghuloum 4e2a44c525 * Fixed order of arguments to put-char and put-u8. 2007-11-26 04:43:16 -05:00
Abdulaziz Ghuloum e461f4374f Made #!eof invalid in #!r6rs mode. 2007-11-25 16:23:39 -05:00
Abdulaziz Ghuloum 86d8cd0854 Fixed a problem with hashtables where delete did not update the size
of the table.
2007-11-25 08:45:19 -05:00
Abdulaziz Ghuloum a1adb6cc14 Missing initialization of code_ap and code_ep in ikarus-fasl.c
caused segfault on freebsd.  The funny thing, I had initialization
code in a commented-out section.  Fun fun.
2007-11-24 22:54:40 -05:00
Abdulaziz Ghuloum 5e71bb8550 Fixes bug 164884: benchmarks/Makefile shouldn't be in repo 2007-11-24 12:16:06 -05:00
Abdulaziz Ghuloum fb804a24f4 Changed version to 0.0.2-rc1 and added benchmarks to distribution. 2007-11-23 20:50:28 -05:00
Abdulaziz Ghuloum 358ba407aa Fixes bug 164730: mutation of export 2007-11-23 16:07:38 -05:00
Abdulaziz Ghuloum d74b82fe7d Fixes bug 164725: missing current-error-port 2007-11-23 14:46:42 -05:00
Abdulaziz Ghuloum 8640cb785d Fixes half of bug 164725: missing scheme-report-environment. 2007-11-23 14:38:25 -05:00
Abdulaziz Ghuloum fe42e0912c doc/Makefile.am is modified so that it does not attempt to rebuild
the user's guide if the system does not have xelatex installed.
2007-11-23 05:08:15 -05:00
Abdulaziz Ghuloum 5e7451167d Added close-port. Updated user's guide's list of unsupported
primitives.
2007-11-23 03:44:48 -05:00
Abdulaziz Ghuloum ccce44fffa Fixed dynamic loading problem in the cygwin port. Apparently, no
one is using the bzr version of Ikarus under cygwin since it's been
broken for some time now.
2007-11-23 02:29:46 -05:00
Abdulaziz Ghuloum 57171a243a Added bitwise-bit-set? 2007-11-22 17:42:37 -05:00
Abdulaziz Ghuloum 42daf68195 Added string-ci-hash and symbol-hash.
Slight change to ikrt_string_hash.
2007-11-22 17:04:10 -05:00
Abdulaziz Ghuloum c25e04569c Added string-hash. 2007-11-22 16:55:25 -05:00
Abdulaziz Ghuloum 0de54fc0c6 Added get-bytevector-n! 2007-11-22 16:32:01 -05:00
Abdulaziz Ghuloum 5bac0ad766 Added get-string-n! 2007-11-22 16:27:55 -05:00
Abdulaziz Ghuloum e4910e9b61 Added get-bytevector-n 2007-11-22 16:03:44 -05:00
Abdulaziz Ghuloum bfccea7718 Added get-string-n 2007-11-22 15:54:10 -05:00
Abdulaziz Ghuloum cbd4299fec Added put-bytevector 2007-11-22 15:39:33 -05:00
Abdulaziz Ghuloum a97d20ed50 Added put-string. 2007-11-22 15:16:38 -05:00
Abdulaziz Ghuloum d227b28a58 * Added put-datum. 2007-11-22 14:48:29 -05:00
Abdulaziz Ghuloum 63f656896f Added get-datum. 2007-11-22 14:43:39 -05:00
Abdulaziz Ghuloum 043425eb20 Added get-u8. 2007-11-22 14:26:54 -05:00
Abdulaziz Ghuloum 2eca32fc8e Fixes bug 163722: missing open-string-output-port and open-string-input-port 2007-11-21 16:55:56 -05:00
Abdulaziz Ghuloum d314bacc24 Fixes bug 164362: make clean deletes scheme/last-revision 2007-11-21 16:45:27 -05:00
Abdulaziz Ghuloum 91c365d9a6 records/structs are an iota faster to collect. 2007-11-21 16:39:16 -05:00
Abdulaziz Ghuloum eb30e7ab58 * Eliminates a jump-to-jump case in "flatten-code". 2007-11-21 05:31:01 -05:00
Abdulaziz Ghuloum 37aab027da Added an optimization that removes self-references from fix-bound
closures.
2007-11-21 04:00:10 -05:00
Abdulaziz Ghuloum d6a1a177a9 Fixes bug 163982: Extra "" irritant in expander error 2007-11-21 02:23:29 -05:00
Abdulaziz Ghuloum b71de5dab4 * Fixes bug 163980: Error message contains "fmls"
Slightly better error message for malformed formal parameters
  (duplicate and non-identifiers are signaled properly).
2007-11-21 02:10:42 -05:00
Abdulaziz Ghuloum 978093bcc2 * Fixed bug 164173: Added more descriptive errors to incorrect args
to record constructors.
2007-11-21 01:39:31 -05:00
Abdulaziz Ghuloum 888251df70 Small improvement on the situation in bug 163984: Wrong name on
define-record-type proceedures.

Record constructors are now called "a-record-constructor"
Record predicates are called "a-record-predicate"
Record accessors are called "a-record-accessor"
Record mutators are called "a-record-mutator"
2007-11-21 01:24:13 -05:00
Abdulaziz Ghuloum 0644542565 Added a last-revision file and modified scheme/Makefile.am
accordingly.
2007-11-21 00:59:05 -05:00