Commit Graph

1556 Commits

Author SHA1 Message Date
Abdulaziz Ghuloum acc9940379 fixed gc bug in 64-bit mode along with another 64-bit bug in the
assembler when addressing using special %eax/%rax instructions.
2008-07-21 22:07:31 -07:00
Abdulaziz Ghuloum 358eee03ee Added a 64-bit bootfile and modified the configure script to not add
its own -m32 or -m64 flags.  To built ikarus in 32-bit mode, one can
do:  
  ./configure CFLAGS=-m32
and in 64-bit mode:
  ./configure CFLAGS=-m64
2008-07-20 14:09:04 -07:00
Abdulaziz Ghuloum 59b9d28001 guard expressions now re-raise unhandled conditions using
raise-continuable (as per the R6RS errata page, part 7.1)
2008-07-20 02:51:14 -07:00
Abdulaziz Ghuloum 78d9fa1f42 In 64-bit, ikarus now passes all tests, can recompile itself,
and runs all benchmarks (inefficiently but correctly).
2008-07-20 00:14:09 -07:00
Abdulaziz Ghuloum 4f48c55bfc all existing tests pass under 64-bit 2008-07-19 14:41:06 -07:00
Abdulaziz Ghuloum 81a1a640df more progress on the AMD64 front, fixing more numeric and more cogen
64-bit bugs.
2008-07-18 22:21:57 -07:00
Abdulaziz Ghuloum 01c4afa320 Major work towards the AMD64 port. Most important of which is that
continuations work, more assembly instructions are testing in 64-bit
mode, and some arithmetic operations (shift-right, etc.) have been
fixed by removing some 32-bit dependencies.
2008-07-18 01:35:13 -07:00
Abdulaziz Ghuloum 0ef81aa13e Added make-polar. 2008-07-15 23:13:59 -07:00
Abdulaziz Ghuloum 195dc0ea45 Fixed some problems parsing complex numbers. 2008-07-15 22:44:55 -07:00
Abdulaziz Ghuloum 2a49d5c538 Added "angle". 2008-07-14 22:43:19 -07:00
Abdulaziz Ghuloum a9657c4642 define-record-type now understands parent-rtd (used to ignore it). 2008-07-13 11:25:46 -07:00
Abdulaziz Ghuloum c3b12a22e8 the repl now resets on receiving &interrupted conditions. 2008-07-12 20:05:45 -07:00
Abdulaziz Ghuloum 70f5375d6b refixing trace-define-syntax. 2008-07-12 10:40:22 -07:00
Abdulaziz Ghuloum eccca7f4ea - Added trace-let-syntax, trace-letrec-syntax, as well as fixed
trace-define-syntax to handle variable transformers.

- added primops for fx comparison functions.
2008-07-11 22:31:40 -07:00
Abdulaziz Ghuloum 00970f12d2 - compound conditions are made non-opaque.
- more tag analysis for bytevectors and friends.
2008-07-08 08:15:14 -07:00
Abdulaziz Ghuloum 749080724c get-char now raises an error if the string port is closed (bug 245959) 2008-07-07 01:22:12 -07:00
Abdulaziz Ghuloum f6957b91c2 Added string->bytevector and bytevector->string as per bug 245983. 2008-07-07 01:11:36 -07:00
Abdulaziz Ghuloum 8423610f45 call-with-port does not use dynamic-wind to close the port. 2008-07-07 00:56:52 -07:00
Abdulaziz Ghuloum b15c7063f9 repl exception handler now returns for non-serious conditions
(as per bug 242900)
2008-07-07 00:50:19 -07:00
Abdulaziz Ghuloum badf83557f fixed rounding for rationals. 2008-07-07 00:22:14 -07:00
Abdulaziz Ghuloum 579b823f44 WIP on tag analysis, annotations, and utilization. 2008-07-06 23:48:16 -07:00
Abdulaziz Ghuloum d73dfd1287 - More work on the new optimizer
- Deleted old optimizer and changed the meaning of optimize level to
  be:
    0: bypass the optimizer
    1: copy propagation, constant folding, no inlining
    1: copy propagation, constant folding, with inlining
  The default is set to 1.
2008-06-29 12:35:34 -07:00
Abdulaziz Ghuloum 66464cc348 Fixed a bug when doing (/ 1 1 1 ...). 2008-06-28 13:02:05 -07:00
Abdulaziz Ghuloum 2c8cb7dda2 fixed a bug in matching library subversion in psyntax. 2008-06-28 03:16:21 -07:00
Abdulaziz Ghuloum 1cd581de70 fixed char encoding error message and condition as per bug 243662. 2008-06-28 02:49:50 -07:00
Abdulaziz Ghuloum 45346ef865 - Added cp0! including:
- (optimize-level [0,1,2])  and  ikarus -O[0,1,2]
       where -O0 = no optimizations
             -O1 = using old optimizer
             -O2 = using the new cp0 optimizer
       defaults to -O1 for now.
   - (cp0-size-limit n) which is the limit of the residual size for
     each inlining attempt
   - (cp0-effort-limit n) which is the limit on the effort expended 
     for each inlining attempt
   
- Rewrote the syntax-match macro to make use of the same technology
  used in syntax-case itself resulting in reduced code size.

- Added (system-value <symbol>) which returns the system value.
  E.g., (system-value 'car) => #<procedure car>
  This is pretty much the same as 
    (eval <symbol> (environment '(ikarus)))
  except that it does not involve compiling the expression or 
  consulting the library/expander systems.

- Fixed the fasl loader to make it understand complex numbers.
2008-06-28 02:25:44 -07:00
Abdulaziz Ghuloum 7d9ed176ac More work on cp0 which can now swallow the compiler but cannot yet
fold any primitives.
2008-06-22 22:10:05 -07:00
Abdulaziz Ghuloum 5a2501d4bb Added port-position and port-has-port-position? 2008-06-19 21:49:24 -07:00
Abdulaziz Ghuloum e65b39d95d All parameters that are bound to variables now have proper names.
E.g., pretty-width now prints as #<procedure pretty-width>.
2008-06-19 01:58:59 -07:00
Abdulaziz Ghuloum 4bb7e170b5 Some procedures (like console-output-port) did not get names when
printed (instead, they were just #<procedure>).  Names for
procedures that are defined like
  (define foo
    (let ([something ---]) 
      (lamdba () ---)))
now works.
2008-06-18 22:47:56 -07:00
Abdulaziz Ghuloum 1bd699349a Fixed a problem with port position accounting which was using fixnum
arithmetic instead of generic arithmetic.
2008-06-17 21:05:01 -07:00
Abdulaziz Ghuloum 333dc03f8f (waitpid -1 #f) now returns #f if no child has died yet. 2008-06-13 22:11:51 -07:00
Abdulaziz Ghuloum 8f0f0abbca Applied a patch supplied by Derick Eddington that provides enhanced
functionality for waitpid (nonblocking waitpid and more status info)
as well as the ability to send a signal to a process, e.g., 
  (kill pid 'HUP).
2008-06-13 05:43:17 -07:00
Abdulaziz Ghuloum 041f9fdafa Fixed a problem in code generator that was producing invalid memory
addressing for predicate operations.
2008-06-13 04:15:25 -07:00
Abdulaziz Ghuloum 3bddca30c4 allocation overflow check sequence is a little tighter now. 2008-06-10 23:01:22 -07:00
Abdulaziz Ghuloum 3ee75bece0 fixed incorrect handling of ".ddd" when reading from a port. 2008-06-10 18:38:06 -07:00
Abdulaziz Ghuloum 0939370a07 suppressing printing of file names during bootstrap. 2008-06-10 13:21:00 -07:00
Abdulaziz Ghuloum fe1f7077ff fixed minor bug in syntax-case where the wraps and marks of
top-marked wrapped syntax objects were incorrectly combined.
E.g., it used to be that:

  (syntax-case (datum->syntax #'foo #'(x y)) ()
    [(x y) 'shouldntmatch] [_ 'ok])

yields shouldntmatch; it's now ok.
2008-06-10 12:35:56 -07:00
Abdulaziz Ghuloum ef50e9f515 dropping input-port-byte-position from (ikarus)'s exports. 2008-06-09 01:36:27 -07:00
Abdulaziz Ghuloum e9ecb1b8b0 EAI_SYSTEM and ECANCELED are undefined under cygwin; added
conditional #define.
2008-06-08 23:15:25 -07:00
Abdulaziz Ghuloum c53ffd5314 fixed lookahead-char bug that I just made. 2008-06-08 15:53:42 -07:00
Abdulaziz Ghuloum 665ca784d1 Fixed a couple of typos in ikarus.io.ss. 2008-06-08 15:48:52 -07:00
Abdulaziz Ghuloum ee950fcaf2 Added test to exercise last bug fixed (refilling io read buffer
drops bytes already in the buffer).
2008-06-08 06:42:58 -07:00
Abdulaziz Ghuloum 432e1d9b87 replaced &i/o-write with &i/o-read for IO read errors. Duuh. 2008-06-08 06:25:22 -07:00
Abdulaziz Ghuloum a0c8346840 fixed bug in IO where the system was silently eating up any
remaining bytes while refilling a buffer.
2008-06-08 06:19:29 -07:00
Abdulaziz Ghuloum 1a5ab01e26 The bottom-most exception handler now only exits. 2008-06-07 08:32:00 -07:00
Abdulaziz Ghuloum 9438328f55 bytevector size for doing select has been fixed. It used to be 8
times larger than needed.
2008-06-06 08:22:45 -07:00
Abdulaziz Ghuloum df4b31af1f io-error and raise/strerr now include an &error condition. 2008-06-06 08:10:17 -07:00
Abdulaziz Ghuloum af5472bfb2 exporting fork 2008-06-06 07:52:40 -07:00
Abdulaziz Ghuloum 6741ac2817 better error message when a library file "foo.ss" does not contain
the expected library name (foo).
2008-06-05 00:58:04 -07:00