Commit Graph

694 Commits

Author SHA1 Message Date
Abdulaziz Ghuloum 89fd9d0a23 * Added flsqrt. 2007-06-13 14:00:29 +03:00
Abdulaziz Ghuloum ded64db389 * Added fl/. 2007-06-13 13:50:19 +03:00
Abdulaziz Ghuloum dc046a3092 * exported call-with-input-file. 2007-06-13 13:36:43 +03:00
Abdulaziz Ghuloum 817851f3d2 * defined fl*.
* fixed a bug in the identitity of fl+.
2007-06-13 13:15:52 +03:00
Abdulaziz Ghuloum 2dad5b473e * exported odd? 2007-06-13 13:10:54 +03:00
Abdulaziz Ghuloum 9b0d2143a3 * exported even? 2007-06-13 13:01:21 +03:00
Abdulaziz Ghuloum 6441235594 * exported modulo (incomplete). 2007-06-13 12:58:48 +03:00
Abdulaziz Ghuloum 01f12f135a * Added the round procedure 2007-06-13 12:40:29 +03:00
Abdulaziz Ghuloum 3edcc64121 * Added exact? 2007-06-13 12:05:24 +03:00
Abdulaziz Ghuloum 97dfd0ddcf * Added min. 2007-06-13 11:55:37 +03:00
Abdulaziz Ghuloum 88d8e198fc * Added the rest of fl=? fl<? fl<=? fl>? fl>=? 2007-06-13 11:53:52 +03:00
Abdulaziz Ghuloum adb65c1b84 * Added expt to (r6rs)
* Added fl+ and fl-.
2007-06-13 11:47:30 +03:00
Abdulaziz Ghuloum 3fb701187e * Added (r6rs arithmetic flonums) library containing fl<? only 2007-06-13 11:37:22 +03:00
Abdulaziz Ghuloum 352d0f54dd * Added write-char to (r6rs) library. 2007-06-13 10:36:11 +03:00
Abdulaziz Ghuloum f3166040a0 * Addd (r6rs mutable-pairs) library. 2007-06-13 10:26:51 +03:00
Abdulaziz Ghuloum 9bd65cc447 * Fixed rational? and integer? to handle flonums properly. 2007-06-13 09:03:30 +03:00
Abdulaziz Ghuloum 83c7fe71b8 * Fixed two bugs in the ratnum case of mk< procs. 2007-06-13 06:04:08 +03:00
Abdulaziz Ghuloum 5f1b44106a * removed the 3-arg dispatch in the generic =, <,, <=, >, >= 2007-06-12 17:32:25 +03:00
Abdulaziz Ghuloum f05f8965d6 * string-to-number now understands:
- #e #E #i #I prefixes
  - decimal notation
  - exponents
2007-06-12 03:57:35 +03:00
Abdulaziz Ghuloum e1d0d4aca6 * subtraction (-) now understands ratnums. 2007-06-12 02:49:27 +03:00
Abdulaziz Ghuloum ca257870ce * bignum->flonum now handles large floats properly by converting
them to +inf.0 and -inf.0.
2007-06-12 02:25:13 +03:00
Abdulaziz Ghuloum b01e289798 * Numeric comparison functions =, <, <=, >, >= now understand
ratnums.
2007-06-11 11:59:11 +03:00
Abdulaziz Ghuloum 90feb453f5 * Added tests for bignum->flonum. 2007-06-10 20:32:48 +03:00
Abdulaziz Ghuloum cde508d58c * reimplemented bignum->flonum in Scheme now. ikrt_bignum_to_flonum
is no longer used.
2007-06-10 20:21:41 +03:00
Abdulaziz Ghuloum 9a31a8f0d3 * Added $make-flonum and $flonum-set! prims. 2007-06-10 12:09:01 +03:00
Abdulaziz Ghuloum 7246be795d * removed old flonum->string Scheme code and supporting C code. 2007-06-10 10:35:45 +03:00
Abdulaziz Ghuloum cccdd1122c * Added flonum->string using dybvig's algorithm. 2007-06-10 07:55:49 +03:00
Abdulaziz Ghuloum a596550e97 * Added log. 2007-06-10 07:37:30 +03:00
Abdulaziz Ghuloum d88126aea1 * Added inexact->exact 2007-06-10 07:35:39 +03:00
Abdulaziz Ghuloum 0480517615 * Added floor/ceiling. 2007-06-10 07:32:19 +03:00
Abdulaziz Ghuloum 6712e9490b * Fixed two bugs in $ratnum-n and $ratnum-d 2007-06-08 10:30:25 +03:00
Abdulaziz Ghuloum 3798fd932a * Added ratnum cases to binary*. 2007-06-08 10:18:36 +03:00
Abdulaziz Ghuloum b859c05bd6 * Added (flonum-u8-ref x k) where x is a flonum, k is a fixnum in
between 0 and 7, and returns byte k in the flonum data structure.
  k is a logical index in an IEEE number with the structure:
  [s][11-bit-biased-expo] [52-bit-mantissa==================]
  [  k = 0  ] [  k = 1  ] [k=2] [k=3] [k=4] [k=5] [k=6] [k=7]
2007-06-08 09:15:25 +03:00
Abdulaziz Ghuloum 9c458d4ba7 * reinstalled exact->inexact 2007-06-08 09:10:18 +03:00
Abdulaziz Ghuloum cd788e4bed * Added (ikarus system $flonums) library (empty). 2007-06-08 09:07:02 +03:00
Abdulaziz Ghuloum f3e5772e76 * Added bref to assembler
* Fixed bug in bytevector-s8-ref
2007-06-08 08:54:10 +03:00
Abdulaziz Ghuloum a27c6e13a9 * fixed a HUGE bug in optimize-letrec.
* fixed two minor bugs in the code generators for - and +
* added a constant-folder for "length"
2007-06-06 10:14:07 +03:00
Abdulaziz Ghuloum ae0b25ae9f * do-spill now removes spilled vars from neighbors of conflicting
vars.
2007-06-06 09:24:32 +03:00
Abdulaziz Ghuloum 0db57fbb69 * removed the reg? argument to build-graph. Reg? was needed when
build-graph was used for constructing both frame conflicts and
  register conflicts.  Now, it's only used for register conflicts so
  reg? is no longer needed.
2007-06-06 06:10:28 +03:00
Abdulaziz Ghuloum 01658fe195 removed libcogen1.ss which was not used by the compiler. 2007-06-06 05:38:02 +03:00
Abdulaziz Ghuloum 39e6fc2fcf * removed more junk. 2007-06-06 03:11:12 +03:00
Abdulaziz Ghuloum 665f3a0b79 * removed old one-pass compiler. chaitin is now the default
backend
2007-06-06 02:57:48 +03:00
Abdulaziz Ghuloum 563f32c16f * swapped core-compile-expr and alt-core-compile-expr 2007-06-06 02:48:09 +03:00
Abdulaziz Ghuloum 7301be0ab0 * removed one instance of build-graph which reduces compile time
from 225 secs down to 17!  Sweet!
2007-06-06 02:32:45 +03:00
Abdulaziz Ghuloum feb9764645 * Cleanup of some junk code in color-by-chaitin 2007-06-06 01:16:34 +03:00
Abdulaziz Ghuloum 1dc9e83448 * Altcogen works. Need to rethink how to code the conflict graphs. 2007-06-04 02:55:04 +03:00
Abdulaziz Ghuloum a5dbb8f45d * Can load altcogen. 2007-06-03 04:55:40 +03:00
Abdulaziz Ghuloum 6279bc7c47 * alt-compile-core-expr-to-port is now exported from (ikarus compiler) 2007-06-02 10:26:06 +03:00
Abdulaziz Ghuloum ca248be49a * Libraries can export modules now.
* libaltcogen can now be loaded.
2007-06-02 10:21:05 +03:00
Abdulaziz Ghuloum b7b3709f69 * Added (import M) for M \in modules. 2007-06-02 05:59:55 +03:00
Abdulaziz Ghuloum d2657bde24 * Added basic identifier-syntax (one that does not recognize the
set! case).
2007-06-02 05:43:24 +03:00
Abdulaziz Ghuloum af9798e9be * Better handling of multi-byte read-char. 2007-06-02 05:17:22 +03:00
Abdulaziz Ghuloum ee738a9a62 * somewhat fixed the ugly syntax-error message in syntax.ss 2007-05-22 20:21:22 -04:00
Abdulaziz Ghuloum cd1de33b91 * Added let-syntax and letrec-syntax. 2007-05-22 19:59:30 -04:00
Abdulaziz Ghuloum fb48ef12bd * disabled gzipped fasl files. too slow :-( 2007-05-22 19:01:07 -04:00
Abdulaziz Ghuloum 580481d8fc * The runtime system can now open gzipped bootfiles in addition to
uncompressed fasl files.
2007-05-22 17:56:15 -04:00
Abdulaziz Ghuloum 890dd348b2 * fasl files now may contain ascii strings as a special type in
order to reduce the size of the fasl file.  Gains: reduces the
  size of the current boot file from 2.9M down to 2.5M.
2007-05-21 23:09:45 -04:00
Abdulaziz Ghuloum 9f1e3dcb0b * Added numerator and denominator. 2007-05-21 19:54:36 -04:00
Abdulaziz Ghuloum b1a6668060 * Added lcm. 2007-05-21 19:49:23 -04:00
Abdulaziz Ghuloum e78c0f3a78 * Added gcd 2007-05-21 19:35:16 -04:00
Abdulaziz Ghuloum 23769d5b09 * Added ratnum? to (ikarus).
* Modified some definitions of the numeric predicates to recognize 
  ratnums.
2007-05-20 23:23:54 -04:00
Abdulaziz Ghuloum 67765257cf * Added (ikarus system $ratnums) library. 2007-05-20 22:52:11 -04:00
Abdulaziz Ghuloum d062baee17 * Added an R6RS todo list
* fixed some problems (and introduced others) in the reader.
2007-05-20 22:16:57 -04:00
Abdulaziz Ghuloum aa98df6c4c moving to a new numeric reading algorithm.
added:
  src/tests/reader.ss
2007-05-20 13:11:33 -04:00
Abdulaziz Ghuloum 3c520ea9d3 minor change to concat in output-strings. 2007-05-20 00:57:28 -04:00
Abdulaziz Ghuloum 7b8b50a6aa * fixed incorrect handling of unicode chars in output string ports. 2007-05-19 22:36:52 -04:00
Abdulaziz Ghuloum a1879ccc57 * Added a unicode directory containing files from unicode.org
as well as extractors for the data.
2007-05-19 22:09:30 -04:00
Abdulaziz Ghuloum caa5eed9a0 * Writer and pretty-printer now print things more like what r6rs
requires as far as symbols and strings are concerned.
2007-05-19 17:28:03 -04:00
Abdulaziz Ghuloum f33fce8b04 * write now writes characters (including unicode chars) properly. 2007-05-19 15:18:08 -04:00
Abdulaziz Ghuloum 1abce54167 * string transition completed. string data is now 32-bit
tagged characters.
2007-05-19 14:38:45 -04:00
Abdulaziz Ghuloum 182de12428 * cleaned up some uses of naked strings in the runtime system. 2007-05-19 14:13:51 -04:00
Abdulaziz Ghuloum 267da9e77c * Writing strings to fasl files now uses 4-byte words for each
character.
2007-05-19 13:54:13 -04:00
Abdulaziz Ghuloum 1c4d3c4b40 * uuid now uses a bytevector for ffi. 2007-05-18 22:31:00 -04:00
Abdulaziz Ghuloum 027d50e84a * marked env and environ procedures busted. 2007-05-18 22:26:22 -04:00
Abdulaziz Ghuloum e499eb0f5a * delete-file now uses bytevectors for filename rep. 2007-05-18 22:21:36 -04:00
Abdulaziz Ghuloum cc500489b7 * file-exists? now uses bytevectors for filenames. 2007-05-18 22:18:51 -04:00
Abdulaziz Ghuloum b54cc9a762 * system now passes a bytevector to ik_system. 2007-05-18 22:15:52 -04:00
Abdulaziz Ghuloum 862871a787 * bignum->string now uses bytevectors as intermediate rep. 2007-05-18 22:08:45 -04:00
Abdulaziz Ghuloum 691a42fe4e * string->flonum now uses bytevectors as intermediate rep. 2007-05-18 22:01:04 -04:00
Abdulaziz Ghuloum 7ca0ddfa81 * flonum->string now uses a bytevector as the intermediate buffer. 2007-05-18 21:52:04 -04:00
Abdulaziz Ghuloum 179063c117 * open-output-file now uses a bytevector instead of a string to
represent the filename during ffi.
2007-05-18 21:06:25 -04:00
Abdulaziz Ghuloum 1586986dbe * open-input-file now uses a bytevector representing the filename
during ffi.
2007-05-18 21:03:14 -04:00
Abdulaziz Ghuloum 498084a6e8 * date-string now uses bytevectors instead of strings during ffi. 2007-05-18 20:59:10 -04:00
Abdulaziz Ghuloum 85944a2cff * Added utf8-bytevector->string decoder 2007-05-18 20:18:55 -04:00
Abdulaziz Ghuloum 10f5e53338 * foreign procedures are now represented as bytevectors instead of
strings.
2007-05-18 18:55:20 -04:00
Abdulaziz Ghuloum dfe8e0e1c1 * ikarus-fasl.c now recognizes the "v" marker for bytevectors 2007-05-18 18:16:52 -04:00
Abdulaziz Ghuloum 5c24a02d73 * fasl writer can now write bytevectors using tag "v". 2007-05-18 18:12:48 -04:00
Abdulaziz Ghuloum 9a89717c2d * Implemented string->utf8-bytevector
added:
  src/ikarus.transcoders.ss
2007-05-18 18:02:49 -04:00
Abdulaziz Ghuloum 08176e3b91 * Output string ports now use bytevectors for their internal buffer. 2007-05-18 16:15:40 -04:00
Abdulaziz Ghuloum 3f220faf13 * output files now use bytevectors as their internal buffer. 2007-05-18 16:07:58 -04:00
Abdulaziz Ghuloum 7e9e43bec1 * output strings now use their own internal buffers 2007-05-18 15:47:06 -04:00
Abdulaziz Ghuloum ceecfd9251 * implemented write-byte 2007-05-18 08:22:04 -04:00
Abdulaziz Ghuloum 9032492bf3 * Added write-byte to ikarus.io-primitives 2007-05-18 08:19:03 -04:00
Abdulaziz Ghuloum 35fa003558 * Added $write-byte to ikarus.io-primitives.unsafe.ss 2007-05-18 08:15:51 -04:00
Abdulaziz Ghuloum bc41665bf3 * removed junk from input-files handlers. 2007-05-17 06:46:47 -04:00
Abdulaziz Ghuloum 52a28f8332 * input ports now use bytevectors fully. 2007-05-17 06:44:51 -04:00
Abdulaziz Ghuloum 3148d7f95c * input ports now have a bytevector as buffer 2007-05-17 06:27:59 -04:00
Abdulaziz Ghuloum efd2734075 * input strings now do not use the internal port buffer 2007-05-17 05:50:01 -04:00
Abdulaziz Ghuloum 49dc13d5ee * make string operations safe in all io layers. 2007-05-17 05:41:00 -04:00
Abdulaziz Ghuloum 5249a8ec31 * The gc now knows about bytevectors 2007-05-17 04:34:52 -04:00
Abdulaziz Ghuloum 913bd590b6 * Added uint-list->bytevector and sint-list->bytevector. 2007-05-17 03:36:28 -04:00
Abdulaziz Ghuloum d62c01dfa7 * bytevector-sint-set! is completed. 2007-05-17 03:03:10 -04:00
Abdulaziz Ghuloum 8f885aa848 * bytevector-sint-set! is almost ok. 2007-05-16 11:05:06 -04:00
Abdulaziz Ghuloum e3bb91ad08 * Added a $bignums library that's now just holding the names of
primitive bignum functions.
2007-05-16 06:02:34 -04:00
Abdulaziz Ghuloum 2ee587d26d * Added #vu8(bytes ...) for the reader and writer. 2007-05-15 23:57:35 -04:00
Abdulaziz Ghuloum 14066b3ec9 * added a check for non-negative integer for bytevector-uint-set!. 2007-05-15 23:24:07 -04:00
Abdulaziz Ghuloum 9488a0706f * Added bytevector-uint-set! 2007-05-15 20:19:24 -04:00
Abdulaziz Ghuloum 4062b00c29 * Added bytevector-uint-ref, bytevector-sint-ref, bytevector->uint-list,
and bytevector->sint-list
2007-05-15 19:27:36 -04:00
Abdulaziz Ghuloum 3629e0b0d9 * Added bytevector=? 2007-05-15 14:37:04 -04:00
Abdulaziz Ghuloum 1e364d3186 * Added bytevector-copy and bytevector-fill! 2007-05-15 14:33:50 -04:00
Abdulaziz Ghuloum f630177d17 * Added bytevector->u8-list, u8-list->bytevector, and
bytevector-copy!.
2007-05-15 14:27:31 -04:00
Abdulaziz Ghuloum a809afd0fb * added bytevector-s8-set! and bytevector-u8-set!. 2007-05-15 13:50:00 -04:00
Abdulaziz Ghuloum a11fb060f2 * Added bytevector-u8-ref and bytevector-s8-ref. 2007-05-15 13:38:38 -04:00
Abdulaziz Ghuloum db80ba43f6 * Added bytevector-length 2007-05-15 13:17:17 -04:00
Abdulaziz Ghuloum 49d254c89e * Added make-bytevector and bytevector? 2007-05-15 12:42:52 -04:00
Abdulaziz Ghuloum 9d3e23fb6d * added an (ikarus system $bytevectors) library 2007-05-15 12:29:47 -04:00
Abdulaziz Ghuloum 97f59ad1ee * transition of symbols to secondary type done. 2007-05-15 11:37:43 -04:00
Abdulaziz Ghuloum 9ded62b5e5 * can now load fresh compiler 2007-05-15 10:45:31 -04:00
Abdulaziz Ghuloum 2b96460a77 * added find-library-by-name 2007-05-15 10:23:40 -04:00
Abdulaziz Ghuloum 026f786bf9 * added current-library-collection and library-name to
ikarus.system.$bootstrap
2007-05-15 10:18:58 -04:00
Abdulaziz Ghuloum 6bdb50004a * incremental step towards loading a fresh compiler for
bootstrapping.
2007-05-15 08:56:22 -04:00
Abdulaziz Ghuloum 18777b192d * Fixed a bug that caused interrupts to write the contents of the
output buffer twice.
2007-05-14 18:16:00 -04:00
Abdulaziz Ghuloum 12120c6cbc * new rev. 2007-05-14 14:58:33 -04:00
Abdulaziz Ghuloum e831d54afe * Added a comment file about r6rs records. 2007-05-14 14:53:29 -04:00
Abdulaziz Ghuloum 3656be2631 * Added open-input-string. 2007-05-11 23:39:22 -04:00
Abdulaziz Ghuloum c85495a4f2 * added positive? 2007-05-11 23:14:23 -04:00
Abdulaziz Ghuloum 1feea6c243 * better error message for referencing pattern variables outside a
syntax form
2007-05-11 22:54:18 -04:00
Abdulaziz Ghuloum 6fe22073dd * Added datum->syntax and syntax->datum 2007-05-11 22:50:02 -04:00
Abdulaziz Ghuloum 6e1c1f847a * Added bound-identifier=? 2007-05-11 22:47:09 -04:00
Abdulaziz Ghuloum d7b72ae38a * added call-with-current-continuation. 2007-05-11 22:02:49 -04:00
Abdulaziz Ghuloum daadee442c * fixed bug in library-name->file-name which did not handle capital
letters properly.
2007-05-11 21:27:00 -04:00
Abdulaziz Ghuloum 29c43af1f4 * added environment, environment?, and eval as specified by r6rs. 2007-05-11 21:06:31 -04:00
Abdulaziz Ghuloum 008457c5f8 * top-level-value error now prints the names of the symbol using ~a
instead of ~s.
2007-05-11 20:45:15 -04:00
Abdulaziz Ghuloum 1932db8d65 * library manager now attempts to load imported libraries from file
according to some library-name->file-name mapping.
2007-05-11 20:32:48 -04:00
Abdulaziz Ghuloum 4ca7b2780e * top-level sorta works. 2007-05-10 03:59:20 -04:00
Abdulaziz Ghuloum 48f98c13c5 * added some support for the old interaction repl behavior. 2007-05-09 23:42:32 -04:00
Abdulaziz Ghuloum 4763b3e67e * reinstated (ikarus fasl read) 2007-05-09 19:37:24 -04:00
Abdulaziz Ghuloum e157388176 * added (r6rs syntax-case) library. 2007-05-09 12:54:57 -04:00
Abdulaziz Ghuloum 457ed6aa4b * removed uses of fx primitives from ikarus.syntax.ss 2007-05-09 11:26:26 -04:00
Abdulaziz Ghuloum fd91a5bafc * added a (ikarus symbols) library. 2007-05-09 11:17:54 -04:00
Abdulaziz Ghuloum f64b0ee310 * added a (chez modules) library that exports the module keyword. 2007-05-09 11:12:27 -04:00
Abdulaziz Ghuloum 48244ec85e * makefile.ss is turned into an r6rs-script. 2007-05-09 07:49:04 -04:00
Abdulaziz Ghuloum 35a9aa6d20 * r6rs top-level programs seem to work. 2007-05-09 07:47:40 -04:00
Abdulaziz Ghuloum 8c2b318648 * added a loader for top-level r6rs scripts. 2007-05-09 07:35:31 -04:00
Abdulaziz Ghuloum 7494c29bba * Added an argument "top?" to chi-body* which indicates whether
we're expanding a top-level program (and thus can generate
  temporaries for expressions) or not.
2007-05-09 06:42:37 -04:00
Abdulaziz Ghuloum e414b2daca * moved the position of the rib argument to chi-body* to the end
in (ikarus syntax).
2007-05-09 06:39:42 -04:00
Abdulaziz Ghuloum 3be2a9d9af * changed (ikarus syntax) to build letrec* instead of letrec for
internal and library definitions.
2007-05-09 06:33:44 -04:00
Abdulaziz Ghuloum 31b73fd46c * the decision criteria for complex primitives (in optimize-letrec)
has changed.  right now, any primitive call is treated as complex.
  further research into what primitive calls can be treated as
  simple is suspended until further notice.
2007-05-09 06:30:09 -04:00
Abdulaziz Ghuloum 509a375871 * makefile now inserts letrec* into (ikarus) and (r6rs). 2007-05-09 06:10:38 -04:00
Abdulaziz Ghuloum f5a980efd6 * (ikarus syntax) now recognized letrec* (untested). 2007-05-09 06:09:37 -04:00