Commit Graph

723 Commits

Author SHA1 Message Date
Abdulaziz Ghuloum 16c52974da Fixes bug 176710: Strange error message for cadr. 2007-12-18 11:32:13 -05:00
Abdulaziz Ghuloum e65629cb9e Fixes bug 176682: some omissions in makefile.ss 2007-12-18 04:08:08 -05:00
Abdulaziz Ghuloum 1e6db4f994 fixes bug 176760: implementation-restriction-violation? spelt incorrectly 2007-12-18 04:01:42 -05:00
Abdulaziz Ghuloum df08137b7f fixes bug 176816: &i/o-file-already-exists is now included in the
condition.
2007-12-18 03:58:50 -05:00
Abdulaziz Ghuloum cee16e7463 Fixes bug 176816: Incorrect &who for open-output-file 2007-12-18 03:32:07 -05:00
Abdulaziz Ghuloum bbe388656c fixes bug 176756: define-condition-type does not work in repl 2007-12-17 11:37:10 -05:00
Abdulaziz Ghuloum 64c20409ce made read-char just as efficient as get-char by copy&paste. 2007-12-15 11:43:04 -05:00
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 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 4ef7d157df Fixes bug 175480: Typo in make-custom-textual-output-port error
message
2007-12-11 02:32:29 -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
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 5d568e478e forgot to add the file ikarus.time-and-date.ss :-) 2007-12-05 02:48:42 -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
Abdulaziz Ghuloum c6b66f8661 Added a system library (ikarus system interrupts) that exports:
make-interrupted-condition and interrupted-condition?
2007-11-19 16:50:31 -05:00
Abdulaziz Ghuloum be8123f8b6 * Sligh fix to dependencies in scheme/Makefile.am 2007-11-19 16:16:11 -05:00
Abdulaziz Ghuloum 728daddfc0 Fixes bug 163690: ikarus should display version number instead of
build date in the banner.

The version in bzr now displays:

Ikarus Scheme version 0.0.1+ (revision 1090, build 2007-11-19)
Copyright (c) 2006-2007 Abdulaziz Ghuloum

The shipped versions should display 

Ikarus Scheme version 0.0.2
Copyright (c) 2006-2007 Abdulaziz Ghuloum
2007-11-19 15:37:42 -05:00
Abdulaziz Ghuloum 9349c3a5cb Fixes bug 163681: Ikarus should have an IKARUS_LIBRARY_PATH 2007-11-19 13:34:24 -05:00
Abdulaziz Ghuloum 25555d7ff6 Added getenv, which takes a string and returns a string from the "unix"
environment.  
Example:
  (getenv "HOME") => "/Users/aghuloum"
  (getenv "FOO")  => ""
2007-11-19 12:57:50 -05:00
Abdulaziz Ghuloum f417c7505b * Unfixes bug 161749: (define-syntax (foo x) 12) does not work 2007-11-19 04:18:35 -05:00
Abdulaziz Ghuloum 79d529b224 Much improved error reporting when a library is not found.
Example:

> (import (a b c))
Unhandled exception
 Condition components:
   1. &error
   2. &who: expander
   3. &message: "cannot locate library in library-path"
   4. &library-resolution:
       library: (a b c)
       files: ("./a/b/c.ss" "/Users/ikarus/.opt/lib/ikarus/a/b/c.ss")
2007-11-19 02:46:45 -05:00
Abdulaziz Ghuloum ed3641448d Fixed bug 163723: open-input-string misclassified
* include, make-list, last-pair, quotient+remainder were also
  misclassified
2007-11-19 02:08:32 -05:00
Abdulaziz Ghuloum 8dffa9cf23 Fixed bug 163714: read/write invariance problem with symbols 2007-11-19 02:00:26 -05:00
Abdulaziz Ghuloum 9ff795e02f |symbol| syntax now signals an error in #!r6rs mode. 2007-11-19 01:47:46 -05:00
Abdulaziz Ghuloum a7680d723d Extra libraries found in $pkglibdir can now be imported directly.
For example, (import (streams)) just works!
2007-11-18 22:46:00 -05:00
Abdulaziz Ghuloum 1bd2935e2b Fixes bug 163690: ikarus should display version number instead of
build date in the banner.
2007-11-18 20:22:11 -05:00
Abdulaziz Ghuloum 7282bd1c48 Fixes bug 163589: ikarus does not support the #!r6rs comment.
* Added #!r6rs and #!ikarus tokens to the reader
* #!r6rs disables the #:foo and #{foo bar} gensym syntaxes and it
  also disables the #n= and #n# graphs marks syntax.
* #!ikarus enables both options.
* every opened port starts in the ikarus-mode by default.
2007-11-18 19:53:32 -05:00
Abdulaziz Ghuloum 543d59313b * Added port-mode and set-port-mode! primitives. A port mode is
either the symbol ikarus-mode or the symbol r6rs-mode.
2007-11-18 19:28:59 -05:00
Abdulaziz Ghuloum 442eb1ca00 * Kind of fixes bug 163219: Better error message for expand. 2007-11-18 19:10:03 -05:00
Abdulaziz Ghuloum e99ce9c03b * Added put-char, get-char, and put-u8. 2007-11-18 18:48:24 -05:00
Abdulaziz Ghuloum 499115a226 * Minor performance fix to previous deoptimization
* Appended current timelog.
2007-11-17 12:53:37 -05:00
Abdulaziz Ghuloum 245203eaa0 * Global variables which are assigned (or complex) no longer have lexical
copy.  All references and assignments to them goes through the
  symbol value slot.
2007-11-17 11:06:17 -05:00
Abdulaziz Ghuloum 759474fd85 * libraries are now expanded to a special library-letrec* form. 2007-11-17 09:53:22 -05:00
Abdulaziz Ghuloum eef196c09d * Optimized the zero case in $flonum->exact. 2007-11-17 09:12:49 -05:00
Abdulaziz Ghuloum 87d1cd5ad1 * reverted to previous broken version of ratnum->flonum. 2007-11-17 02:13:44 -05:00
Abdulaziz Ghuloum 7e1c6001eb Fixes a bug in top-level set! that caused the following to signal an
error:

> (define foo 12)
> (begin ((lambda (x) (set! foo x)) 13) 14)
2007-11-17 01:16:24 -05:00
Abdulaziz Ghuloum 3a3bc7dcc1 * keyboard interrupts are now continuable. 2007-11-15 13:40:36 -05:00
Abdulaziz Ghuloum 55254257fb * generalized the fl+, fl-, fl*, and fl/ primops to multiple arguments. 2007-11-15 08:05:17 -05:00
Abdulaziz Ghuloum 7def83f487 * Added fxbit-field. 2007-11-15 07:14:47 -05:00
Abdulaziz Ghuloum ab6c871d76 * Added fxcopy-bit-field. 2007-11-15 07:03:04 -05:00
Abdulaziz Ghuloum d977720ae6 * Added fxcopy-bit. 2007-11-15 06:47:51 -05:00
Abdulaziz Ghuloum edb0abd366 * Added fxbit-set? 2007-11-15 06:40:50 -05:00
Abdulaziz Ghuloum 42866c21c3 * Added fxfirst-bit-set. 2007-11-15 06:33:21 -05:00
Abdulaziz Ghuloum 745c3be26e Fixes bug 162834: Typo in error message. 2007-11-15 05:51:24 -05:00
Abdulaziz Ghuloum d18a041840 * Fixed a bug in number->string for hex/oct/binary numbers. 2007-11-14 23:18:49 -05:00
Abdulaziz Ghuloum 4c632e435b * changed implementation of $flonum->exact. 2007-11-14 20:45:37 -05:00
Abdulaziz Ghuloum f3e412ae9c * Added an implementation of $flonum->integer which takes a flonum
and returns the integer representation of it (if it's an integer
  flonum), or #f otherwise.
2007-11-14 18:45:49 -05:00
Abdulaziz Ghuloum 25aa8d7072 Fixes bug 162741: hygiene breaks exported macros that introduce define-record-type 2007-11-14 17:24:29 -05:00
Abdulaziz Ghuloum 6c1dbba3de * Fixed a problem in the expander that caused libraries that are
expanded from the repl to dump all their bindings into the top
  level as well.
2007-11-14 13:54:54 -05:00
Abdulaziz Ghuloum 79c31416cf * Added $flonum-sbe primop for extracting the signed-biased-exponent
of a flonum.
2007-11-14 12:39:23 -05:00
Abdulaziz Ghuloum 82eda09ea0 * Added fxlength 2007-11-13 23:24:21 -05:00
Abdulaziz Ghuloum e06b84e75d * Added (xorl imm8 mem) instruction to the assembler. 2007-11-13 23:10:49 -05:00
Abdulaziz Ghuloum de635ef3bd * Added fxbit-count. 2007-11-13 22:33:37 -05:00
Abdulaziz Ghuloum a3f1feefb9 * Added bitwise-bit-count 2007-11-13 22:17:02 -05:00
Abdulaziz Ghuloum a0ba3d3d4f Fixes bug 162436: Off-by-one in substring 2007-11-13 12:21:27 -05:00
Abdulaziz Ghuloum 820d1716be * open-coded $flround. 2007-11-13 03:41:54 -05:00
Abdulaziz Ghuloum 47f7016b18 * changed implemenation of flround. 2007-11-13 03:10:39 -05:00
Abdulaziz Ghuloum 3feb49e10c * [Partially] Fixes bug 162334: exact->inexact is broken for 5e-324 2007-11-13 03:00:57 -05:00
Abdulaziz Ghuloum ef6b9c0bae * Comitted half-fix to exact->inexact regarding bug 162334.
- some of the generic arithmetic operations are still broken
    due to rounding errors.
2007-11-13 00:45:04 -05:00
Abdulaziz Ghuloum 4b7f03df1a * Added bitwise-first-bit-set. 2007-11-13 00:10:10 -05:00
Abdulaziz Ghuloum 99d15d2705 Fixes bug 162247: +NaN.0 and -INF.0 are not read properly 2007-11-12 14:12:01 -05:00
Abdulaziz Ghuloum 93868c0731 * Fixed spelling of "auxiliary" in an error message. 2007-11-12 11:37:11 -05:00
Abdulaziz Ghuloum a11cd5be48 * Added an internal library to makefile.ss just to make sure I use
the feature daily.
2007-11-12 05:05:27 -05:00
Abdulaziz Ghuloum c26ef04965 * multiple imports of the same binding into the same context now work. 2007-11-12 05:01:25 -05:00
Abdulaziz Ghuloum 880a6f8efd (ikarus)'s "import" keyword now handles libraries, allowing
libraries to be imported into any definition context including
the top-level, body of a script, body of a library, or body of a
function.
2007-11-12 04:40:48 -05:00
Abdulaziz Ghuloum eaeb6a4876 Fixed bug 162153: Bytevectors should be self evaluating. 2007-11-12 03:34:48 -05:00
Abdulaziz Ghuloum 43eb1bfcb3 Fixes bug 162145: Changing pkglibdir should rebuild ikarus-main.o and relink ikarus 2007-11-12 03:31:14 -05:00
Abdulaziz Ghuloum 6e7e0410fb * (ikarus) now exports the "library" keyword, allowing (library ---)
forms to appear anywhere definitions can appear including the 
  top-level, body of a script, body of a library, or body of a
  function.
2007-11-12 01:27:47 -05:00
Abdulaziz Ghuloum de369b3497 * Copying an already immutable hashtable, and requesting an
immutable table returns the same table without copying.
2007-11-12 00:52:43 -05:00
Abdulaziz Ghuloum 007f05989b * Added hashtable-copy 2007-11-12 00:50:00 -05:00
Abdulaziz Ghuloum 66263b2d69 * Fixes bug 160100: ikarus.boot should not be in /usr/local/bin
ikarus.boot now goes to $pkglibdir/ikarus.boot which translates
  to /usr/local/lib/ikarus/ikarus.boot by default.
2007-11-12 00:27:36 -05:00
Abdulaziz Ghuloum b7cd4df31a * Added ~b, ~x, ~d, and ~o to format/printf/fprintf. 2007-11-12 00:20:02 -05:00
Abdulaziz Ghuloum 0bda5990ec * Added bytevector-u64-native-ref, bytevector-u64-native-set!,
bytevector-s64-native-ref, bytevector-s64-native-set!,
        bytevector-u64-ref, bytevector-u64-set!,
        bytevector-s64-ref, and bytevector-s64-set!.
2007-11-11 23:29:54 -05:00
Abdulaziz Ghuloum 9c8bf4f5c7 * Added fxdiv0, fxmod0, and fxdiv0-and-mod0 2007-11-11 21:52:27 -05:00
Abdulaziz Ghuloum e48c2e17c1 * Added fxdiv, fxmod, fxdiv-and-mod. 2007-11-11 20:43:59 -05:00
Abdulaziz Ghuloum 0d2e1f4246 * Added fldiv0, flmod0, and fldiv0-and-mod0, completing the
(rnrs arithmetic flonums) library.
2007-11-11 20:04:09 -05:00
Abdulaziz Ghuloum 05fef19307 * Added fldiv, flmod, and fldiv-and-mod 2007-11-11 16:48:03 -05:00
Abdulaziz Ghuloum b53f3e6ff0 * Added hashtable-entries. 2007-11-11 01:19:18 -05:00
Abdulaziz Ghuloum d8183bf27a * Added real->flonum 2007-11-11 01:13:09 -05:00
Abdulaziz Ghuloum efa2f0ef43 * '#!eof no longer signals an assembler error
- bug reported by micheal adams in person.
2007-11-11 01:04:07 -05:00
Abdulaziz Ghuloum 5d0f86377e * Fixes bug 161923: Segfault on float ops
(I was trying to be too clever with optimizing the checks.)
2007-11-11 00:09:00 -05:00
Abdulaziz Ghuloum 5a6e106a44 * upgrades to new(er) versions of automake and autoconf.
* updated configure.ac and makefile.ac files for the new version
  (applying some of the patch in bug 160100).
2007-11-10 23:50:54 -05:00
Abdulaziz Ghuloum ff81bb99d9 * Fixed bug 160100: ikarus.boot should not be in /usr/local/bin
- ikarus.boot now goes to $prefix/lib/ikarus/ikarus.boot
  - location of bootfile is now hard-coded in the ikarus executable
  - pdf/README/COPYING/GPL-3 files go to $prefix/doc/ikarus/
  - Added a 1-line "scheme-script" script to bin.
2007-11-10 08:28:19 -05:00
Abdulaziz Ghuloum 6938657fad * Fixed bug 161749: (define-syntax (foo x) 12) does not work 2007-11-10 06:28:29 -05:00
Abdulaziz Ghuloum 2a8cc2a7b4 * Added bytevector-ieee-single-ref and bytevector-ieee-single-set! 2007-11-08 22:56:14 -05:00
Abdulaziz Ghuloum 5ce6ca4efb * Added bytevector-ieee-single-native-ref and bytevector-ieee-single-native-set! 2007-11-08 22:22:24 -05:00
Abdulaziz Ghuloum 62c0643c19 * Added bitwise-not. 2007-11-08 20:57:11 -05:00
Abdulaziz Ghuloum 6e6c9c9c1b * Added bitwise-and 2007-11-08 19:18:37 -05:00
Abdulaziz Ghuloum cd3d4ab77a * Fixed bug 160975: flabs is broken
- flabs had reversed comparison (negating the positive instead of
    the negative), fixed.
  - abs was also broken around -0.0, fixed.
2007-11-08 13:16:26 -05:00
Abdulaziz Ghuloum 82c3e568c7 * Fixed bug 160972: fltruncate throws "not a procedure" 2007-11-08 12:15:28 -05:00
Abdulaziz Ghuloum 97d9c4ca42 * improved performance for fl+, fl-, fl*, fl/, fl=?, fl<?, fl<=?, fl>? and fl>=?
- results in 
    45% reduction in runtime for fpsum
    43% reduction in runtime for fibfp
    29% reduction in runtime for pnpoly
    28% reduction in runtime for mbrot
  - and
    23% increase in compile time for nucleic
    11% increase in compile time for ray
    10% increase in compile time for fft
2007-11-08 12:07:48 -05:00
Abdulaziz Ghuloum df46913530 * Partial fix for bug 160780: missing 2 and 3 arg forms of number->string
- second argument is implemented, precision is yet to be done.
2007-11-07 22:28:42 -05:00
Abdulaziz Ghuloum 75705649e2 * fixnum->string now takes an extra radix (in 2 8 10 16) argument. 2007-11-07 20:02:32 -05:00
Abdulaziz Ghuloum ca25f972fc * Added missing automake/autoconf files. 2007-11-07 18:04:59 -05:00
Abdulaziz Ghuloum dd5896761f * minor cleanup in reader (and minor bug fixes). 2007-11-07 11:41:28 -05:00
Abdulaziz Ghuloum da16a5ef7a * reader now recognizes all standard character names:
#\nul #\alaram #\backspace ... #\delete
2007-11-07 11:24:18 -05:00
Abdulaziz Ghuloum e75bd7e33c * Added get-line. (answers to bug 160663) 2007-11-07 11:00:39 -05:00
Abdulaziz Ghuloum 1b103a4ab8 * bytevector-ieee-double-ref/set! now work 2007-11-07 04:54:54 -05:00
Abdulaziz Ghuloum 7dbce6e888 * Added bytevector-ieee-double-ref and bytevector-ieee-double-set!
(which does not yet support big endianness)
2007-11-07 01:26:38 -05:00
Abdulaziz Ghuloum bcd96a8dd4 * Added bytevector-ieee-double-native-ref/set! 2007-11-06 21:08:52 -05:00
Abdulaziz Ghuloum 7783cef318 * Fixed typo in "incorrect number of arguments" (added "s"). 2007-11-06 17:29:25 -05:00
Abdulaziz Ghuloum 327e6e9371 * Fixed bug 160483: described as "incorrect number of arguments" reported as "not a function"
- The real reason was in the register allocator, where one live
    variable (the memmory size of the bytevector) was not marked live 
    across the call to do-overflow.  When the overflow returned, the 
    value of that variable (which was in the %ebx register) was
    trashed, leading to an incorrect bump in the allocation pointer.
  - Note to self, never blame anything on cache coherency again!
2007-11-06 17:04:27 -05:00
Abdulaziz Ghuloum 217dff5d3e * Added pretty formats for library and import forms, fixed
pretty format of define.
2007-11-06 03:04:32 -05:00
Abdulaziz Ghuloum 9632e19032 Fixes bug 160395: missing import from r6r script reports bogus error. 2007-11-06 01:14:27 -05:00
Abdulaziz Ghuloum 037351e27e * Two minor non-optimizations for $event-check and $stack-overflow-check
* If a procedure does not make non-tail calls, stack-overflow is eliminated.
  * If a procedure does not make any calls (leaf routine), then event-check 
    is eliminated as well.
  (total savings: about 10% reduction in boot-file size)
2007-11-05 16:23:13 -05:00
Abdulaziz Ghuloum 8e85c3303b * Switched order of two compiler passes: specify-representation and
insert-stack-overflow-check.  This will make it easier to remove 
   unnecessary stack checks and to add some that we *may* be
   missing.
* Added a $stack-overflow-check primitive that takes care of checking
  and calling ikrt_stack_overflow if we did detect an overflow.
2007-11-05 15:30:42 -05:00
Abdulaziz Ghuloum 90a243ee63 * Fixed bug 160101: modulo produces "BUG: unsupported" 2007-11-05 02:24:39 -05:00
Abdulaziz Ghuloum b27bb61802 * Fixed some parts of bug 160101: modulo produces "BUG: unsupported"
* Modulo still fails on two bignum arguments, will fix later.
2007-11-04 23:01:41 -05:00
Abdulaziz Ghuloum 8a45a5fe08 * Added real-part and imag-part stubs.
* string->number now supports a second radix argument, but the
     argument can only be 10.
2007-11-04 16:28:16 -05:00
Abdulaziz Ghuloum 6faba94b11 * Unhandled exceptions are now sent to (standard-error-port) instead
of (console-output-port).
2007-11-04 14:53:36 -05:00
Abdulaziz Ghuloum b3143eec0d * Fixed a bug in expander causing #(x* ...) patterns inside syntax
to not expand properly.
2007-11-04 14:01:44 -05:00
Abdulaziz Ghuloum a12781ef2f * better error message for unimplemented primitives 2007-11-04 12:25:01 -05:00
Abdulaziz Ghuloum 6348eb9918 * unsupported primitives now show the url for submitting bug reports:
unhandled exception:
 Condition components:
   1. &error
   2. &who: ikarus
   3. &message: "not supported yet, please submit an implementation request"
   4. &url: "https://bugs.launchpad.net/ikarus/"
   5. &irritants: (bitwise-and)
2007-11-04 12:01:43 -05:00
Abdulaziz Ghuloum 86bd3216f5 * port?, input-port?, and output-port? were missing from exports, fixed 2007-11-04 11:50:44 -05:00
Abdulaziz Ghuloum 81f6439b3c Fixed bug 159865: Expt fails on floats and rationals. 2007-11-04 10:24:08 -05:00
Abdulaziz Ghuloum e7d66d95b4 * Fixes bug 159776: --r6rs-script changes behavior of (command-line)
(command-line) now returns ("*interactive*" a b c) when you run
  ikarus -- a b c
2007-11-03 20:12:31 -04:00
Abdulaziz Ghuloum 37da0d75d4 * Fixes bug 159403: scripts choke when a definition follows an expression 2007-11-01 20:00:02 -04:00
Abdulaziz Ghuloum 431f768ab5 * configure.ac now contains a case for adding -Wl,-E to LDFLAGS
on *bsd* systems.
* ikarus.writer prints symbols that start with a digit properly.
2007-11-01 00:46:04 -04:00
Abdulaziz Ghuloum 186639d091 * "/" was producing "BUG:" report when given non-numebrs.
It now produced a better error message.
2007-10-31 21:01:39 -04:00
Abdulaziz Ghuloum b8434045f7 * pretty-width is now exported.
* generate-temporaries uses the names of identifiers to construct
  new names.
2007-10-31 04:34:14 -04:00
Abdulaziz Ghuloum 8b6f52f72e * Fixed a bug in #{gensym} read syntax. 2007-10-30 17:45:08 -04:00
Abdulaziz Ghuloum b79c21132b * Fixed bug in record constructor when proto is unspecified. 2007-10-29 16:18:11 -04:00
Abdulaziz Ghuloum 988c13e123 * Added define-enumeration, which completes the (rnrs enums) library. 2007-10-27 11:40:40 -04:00
Abdulaziz Ghuloum 79a38bc54b * fixed implementation of guard-macro in psyntax.expander. 2007-10-27 11:15:10 -04:00
Abdulaziz Ghuloum b7d871af9e * Added (rnrs enums). 2007-10-27 10:38:54 -04:00
Abdulaziz Ghuloum 1d482d9c9e * Added assertion-violation. 2007-10-26 15:27:42 -04:00
Abdulaziz Ghuloum 4522d66cfc * Version and sub-version specs are now honored in library import forms. 2007-10-26 12:41:55 -04:00
Abdulaziz Ghuloum 75a95bc189 * standard libraries now have version (6).
* #<library> now prints versions in proper form.
2007-10-26 01:22:11 -04:00
Abdulaziz Ghuloum 959b682588 * libraries now can have a version as part of their names
* import forms still don't understand version names.
2007-10-26 00:55:00 -04:00
Abdulaziz Ghuloum 6f576dc224 * Added license stubs to all *.ss and *.[ch] files. 2007-10-25 16:27:34 -04:00
Abdulaziz Ghuloum b640d98cbc * removed formatted errors from all source codes. 2007-10-25 14:32:26 -04:00
Abdulaziz Ghuloum 4141d699c5 * Fixed a bug that caused record-predicates to segfault.
* Added condition printers.
2007-10-25 02:19:53 -04:00
Abdulaziz Ghuloum dab2b74189 * Added print-condition procedure which now prints an ugly message. 2007-10-24 00:24:38 -04:00
Abdulaziz Ghuloum 6853d2f750 * error now calls raise after constructing a proper condition object.
* old "error-handler" parameter is gone.
* new-cafe now uses with-exception-handler to trap errors.
2007-10-23 23:55:57 -04:00
Abdulaziz Ghuloum 5678066f0d * Added with-exception-handler, raise, and raise-continuable. 2007-10-23 23:34:11 -04:00
Abdulaziz Ghuloum 239141717f * Added define-condition-type macro. 2007-10-23 17:53:43 -04:00
Abdulaziz Ghuloum 2684b53323 * added no-nans and no-infinities condition types. 2007-10-23 17:40:04 -04:00
Abdulaziz Ghuloum da29123fc0 * standard condition types are not exported. 2007-10-23 17:24:55 -04:00
Abdulaziz Ghuloum 56d279297b * fixed bugs in define-record-type (constructor name was ignored)
* fixed bugs in record-constructor (incorrect constructor was
  returned when when no protocol is supplied) 
* added r6rs condition types (constructors and standard conditions).
2007-10-23 16:38:34 -04:00
Abdulaziz Ghuloum 658e441d6c * Fixed implementation of record-constructor in (rnrs records procedural) 2007-10-23 00:28:21 -04:00
Abdulaziz Ghuloum 63ddb1b479 * fixed make file in Makefile.am 2007-10-18 11:55:45 -04:00
Abdulaziz Ghuloum 30a0a9458b * fixed a problem with building ikarus.boot on cygwin.
* fixed a couple of typos in ikarus-runtime.c and ikarus-winmmap.c
2007-10-18 11:48:11 -04:00
Abdulaziz Ghuloum e010d03523 renamed:
scheme/ikarus.boot => scheme/ikarus.boot.orig
modified:
  configure
  configure.ac
  scheme/Makefile.am
2007-10-18 00:45:46 -04:00
Abdulaziz Ghuloum 683fb50242 * autoconf now properly exports .ss files. 2007-10-17 22:50:15 -04:00
Abdulaziz Ghuloum 99dd633f83 added:
scheme/Makefile.am
2007-10-17 22:07:54 -04:00
Abdulaziz Ghuloum fdb664b61c renamed:
src/scheme => scheme
2007-10-17 20:07:10 -04:00