Commit Graph

174 Commits

Author SHA1 Message Date
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