Commit Graph

849 Commits

Author SHA1 Message Date
Abdulaziz Ghuloum 0305537374 get-u8 and lookahead-u8 did not update the port position properly.
Fixed.
2008-07-23 11:15:44 -07:00
Abdulaziz Ghuloum 9f623124d5 symbol=? and boolean=? now accept 2+ args. 2008-07-23 07:55:32 -07:00
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 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
Abdulaziz Ghuloum 9f7196d11a better contextual error messages for invalid numeric sequences. 2008-06-03 22:27:33 -07:00
Abdulaziz Ghuloum be37f629c5 the reader now understands some complex numbers. 2008-06-02 00:01:59 -07:00
Abdulaziz Ghuloum a492d318e1 - fixed minor bug in current-directory
- changed implementation of string->number.
2008-05-31 20:10:17 -07:00
Abdulaziz Ghuloum 53905b9eea Changes from Derick Eddington supporting file system info:
- Added file-regular?, file-directory?, file-symbolic-link?,
  directory-list, make-directory, delete-directory, change-mode, 
  and make-symbolic-link.

- Bug fix in ikrt_open_input_fd and ikrt_open_output_fd which
  considered a 0 FD as an error.

- Bug fix in ikrt_getcwd about len+1.

- Bug fix of &i/o-file-protection which didn't have &i/o-filename as
  its parent.

- There is a new src/ikarus-errno.c file.  

- Made tcp-connect and friends tell when they "failed to resolve
  host name or connect".

- To support the uses of &i/o-filename subtypes, I modified
  print-condition so it will cleanly print the parents' fields of a
  condition;
2008-05-31 10:43:55 -07:00
Abdulaziz Ghuloum 6437aa98e0 - exp now understands complex numbers.
- expt of complex exponent is implemented in terms of exp.
2008-05-28 23:50:36 -07:00
Abdulaziz Ghuloum fec5dcd419 sqrt, log, and expt now understand complex numbers. 2008-05-28 22:21:08 -07:00
Abdulaziz Ghuloum b74e3976df allocation check was still incorrect when the ap+size overflows and
shows up to be less than the end of allocation pointer.
2008-05-25 15:32:22 -07:00
Abdulaziz Ghuloum 7f0f127081 Allocation overflow check was incorrectly using signed comparison
instead of an unsigned one.
2008-05-25 14:39:03 -07:00
Abdulaziz Ghuloum 467095677e +, -, *, and / now handle inexact complex numbers. 2008-05-25 10:37:41 -07:00
Abdulaziz Ghuloum ab2e05e8b0 Added inexact complex numbers. 2008-05-24 10:13:01 -07:00
Abdulaziz Ghuloum 8827b98972 fasl reader/writer now understands complex numbers. 2008-05-21 00:40:42 -07:00
Abdulaziz Ghuloum 0a6df79e3b ikarus.reader is now loadable separately. 2008-05-20 23:21:37 -07:00
Abdulaziz Ghuloum ebcc042ea1 = now handles complex numbers. 2008-05-18 22:33:49 -07:00
Abdulaziz Ghuloum 4cb8165181 +, -, *, / now handle complex numbers. 2008-05-18 21:41:53 -07:00
Abdulaziz Ghuloum 82140f87ba - Added complex numbers representation (exact complex only).
- Added make-rectangular.
- Added the ability to display complex numbers.
2008-05-18 20:39:41 -07:00
Abdulaziz Ghuloum da7cedfe64 Added bitwise-xor. 2008-05-18 03:21:05 -07:00
Abdulaziz Ghuloum de4276124b added bitwise-ior. 2008-05-18 02:27:55 -07:00
Abdulaziz Ghuloum 0cd61369b2 added some preliminary work for known-types. 2008-05-16 23:27:08 -07:00
Abdulaziz Ghuloum 71640d11bf Fixed a problem with forward references in the repl which used to
get a location different from the one assigned when the variable is
defined.
2008-05-15 06:40:07 -07:00
Abdulaziz Ghuloum 6511dd1002 Fixed a paren mismatch in "macro?" helper in printer. 2008-05-13 06:09:58 -07:00
Abdulaziz Ghuloum 5d3ab96c2c fixed "inaccurate error message" bug in map when applied a non-list
argument.
2008-05-12 02:39:28 -07:00
Abdulaziz Ghuloum 4133bd73d3 Added copyright notice to pretty-formats.ss 2008-05-12 00:37:55 -07:00
Abdulaziz Ghuloum 4acf71d6d2 moved pretty-printing formats to their own library. 2008-05-12 00:35:19 -07:00
Abdulaziz Ghuloum f05f171f28 exported pretty-format, a parameter maker for setting the pretty
format for various forms.  The pretty format structure is not
documented yet and there is no error-checking mechanism for
verifying proper input.
2008-05-12 01:00:01 -04:00
Abdulaziz Ghuloum f8b0e949d9 - syntax-case now raises a syntax violation when _ appears in the
literals
- syntax-rules points to the invalid literal when raising an
  exception.
2008-05-10 19:05:40 -04:00
Abdulaziz Ghuloum 5c21f9995e source annotations for r6rs-script and r6rs-libraries are now in
chars instead of bytes.
2008-05-06 15:38:05 -04:00
Abdulaziz Ghuloum b5fc5624ec Fixed a bug in enum-set-universe not returning an enum type. 2008-05-05 23:53:48 -04:00
Abdulaziz Ghuloum 3bcc3249e5 Fixed another source of "annotations being revealed". This time,
it's a reader bug of not inserting enough annotations for reader
macro forms.
2008-05-05 03:52:08 -04:00
Abdulaziz Ghuloum c3b8e50b23 Fixed a minor exposure of annotation records. 2008-05-03 06:49:36 -04:00
Abdulaziz Ghuloum 3f9b567a5b with-syntax now gives more informative error messages:
> (with-syntax ([(x y) #'(a 1)] [(q) #'(a b c)]) 12)
Unhandled exception
 Condition components:
   1. &assertion
   2. &who: with-syntax
   3. &message: "pattern does not match value"
   4. &irritants: ((q) #<syntax (a b c)>)

instead of the previous behavior:

> (with-syntax ([(x y) #'(a 1)] [(q) #'(a b c)]) 12)
Unhandled exception
 Condition components:
    1. &message: "invalid syntax"
    2. &syntax:
        form: ((a 1) (a b c))
        subform: #f
2008-05-03 06:23:35 -04:00
Abdulaziz Ghuloum 373edfc969 Fixes typos in (rnrs enumeration) error messages. 2008-05-03 04:25:58 -04:00
Abdulaziz Ghuloum 5f92e4b96d Added current-directory parameter that gets/sets cwd. 2008-05-03 02:39:49 -04:00
Abdulaziz Ghuloum 7e5d053fb2 Fixed a bug causing syntax-error traces to print as
#[annotation ---]
instead of
  #<syntax --- [position ---]>
2008-05-02 14:34:03 -04:00
Abdulaziz Ghuloum d87ced74d1 cleaned up some stale primitive names. 2008-05-01 18:13:11 -04:00
Abdulaziz Ghuloum db70f9751f Made all unimplemented procedures raise errors when called. 2008-05-01 17:52:52 -04:00
Abdulaziz Ghuloum b56b0fbd85 fixed a problem causing free-id=? to intern unbound identifiers
into the interaction environment.
2008-05-01 15:04:43 -04:00
Abdulaziz Ghuloum d49aed209a Added (interaction-environment). 2008-05-01 06:02:36 -04:00
Abdulaziz Ghuloum e7386cd7d7 Major changes to the interactive repl:
- We can now redefine imported identifiers.
- We can now use let-syntax, letrec-syntax, and modules at
  top-level.

Hand-wavey Repl Semantics:
- Imported identifiers mean what they meant previously.  In
  particular, you cannot set! imported identifiers.
- An imported identifier may be redefined using define.  Once
  something is defined at the top-level, a specific location for it
  is created, and all definitions, references, and set!s to that
  variable go through the top-level location.
- Re-importing an identifier shadows the top-level location.
- Redefining re-exposes the top-level location.
- and do on.
- A reference to an unbound variable also fabricates a top-level
  location for that variable.

Let's see how this goes.
2008-05-01 04:21:07 -04:00
Abdulaziz Ghuloum 1389f239fe Added process-nonblocking which is like process but returns
nonblocking ports.
2008-04-30 22:55:59 -04:00
Abdulaziz Ghuloum f69e82e6c5 Added with-output-to-port:
> (let-values ([(p e) (open-string-output-port)])
    (with-output-to-port p (lambda () (printf "Hello\n")))
    (e))
"Hello\n"
2008-04-29 00:20:29 -04:00
Abdulaziz Ghuloum d8cd4f0acf Added engine-handler parameter and a ($swap-engine-counter! <neg-fx>)
to (ikarus system $interrupts).
2008-04-29 00:10:49 -04:00
Abdulaziz Ghuloum 478719cf32 Fixed names of procedures <, <=, =, >, >=. They used to be
printed as #<procedure f>.
2008-04-28 16:52:44 -04:00
Abdulaziz Ghuloum b97b568e36 Reader now explicitly checks for valid unicode range when reading
#\xHHHH  "\xHHHH;" and foo\xHHHH;bar sequences.
2008-04-28 15:01:45 -04:00
Abdulaziz Ghuloum 89def78c3c Fixed the definition of identifier? and id? in expander so that only
top-make-wrapped (possibly annotated) symbols are identifiers.  It
used to be that symbols were considered identifiers by the previous
definition.
2008-04-28 14:01:49 -04:00
Abdulaziz Ghuloum 3ce6d037e4 Fixed a bug in module imports where some marks were missing in action.
(Note from Kent, extracted from chez scheme release notes, follows)

This always worked:

(let ()
  (define-syntax from
    (syntax-rules ()
      [(_ m v) (let () (import m) v)]))
  (module a (x) (define x 'x-of-a))
  (from a x))

Didn't work before this change:

(let ()
  (define-syntax x-from-a
    (syntax-rules ()
      [(_) (let () (import a) x)]))
  (module a (x) (define x 'x-of-a))
  (x-from-a))
2008-04-19 17:55:30 -04:00
Abdulaziz Ghuloum 66d085713f Made interrupted conditions &serious so that you can interrupt R6RS
scripts.
2008-04-19 16:55:40 -04:00
Abdulaziz Ghuloum 177f6b84a7 Fixed a reader bug that causes '#!eof not to read properly.
Used to be:
> '#!eof
Unhandled exception
 Condition components:
  1. &lexical
  2. &message: "invalid eof after quote read macro"
  3. &lexical-position:
      file-name: *stdin*
      character: 7

Now:
> '#!eof
#!eof
2008-04-14 22:18:56 -04:00
Abdulaziz Ghuloum 139ff2f33c First complete (but broken) build of ikarus in 64-bit. 2008-04-14 22:02:03 -04:00
Abdulaziz Ghuloum d02e9fe035 Passing 709 tests in 64-bit mode 2008-04-12 15:06:55 -04:00
Abdulaziz Ghuloum df0aa2de1f Added input-socket-buffer-size and output-socket-buffer-size
parameters.
2008-04-11 14:02:43 -04:00
Abdulaziz Ghuloum bdd81e2b05 accept and accept-nonblocking now set the port-id to a string
representing the incoming address like "nnn.nnn.nnn.nnn:pppp"
2008-04-11 07:01:27 -04:00
Abdulaziz Ghuloum 25344fa1d0 Added nanosleep as per bug 210678. 2008-04-11 05:36:54 -04:00
Abdulaziz Ghuloum 191a82e007 Passing 685 tests in 64bit including handling of some foreign calls. 2008-04-09 07:04:02 -04:00
Abdulaziz Ghuloum 866b2b1c17 Now passing 682 tests in 64-bit mode. 2008-04-09 05:34:36 -04:00
Abdulaziz Ghuloum f63f85e1cc 570 tests in 64-bit mode 2008-04-09 03:05:19 -04:00
Abdulaziz Ghuloum aa44ce2733 Passing 548 tests in 64-bit mode. 2008-04-08 03:57:13 -04:00
Abdulaziz Ghuloum 5eaa2ff469 fixed a couple of bugs in 64bit assembler. 2008-04-08 02:22:26 -04:00
Abdulaziz Ghuloum 6bdb38ca16 fixed bug in ($make-vector 0) 2008-04-07 12:32:55 -04:00
Abdulaziz Ghuloum 42e3d53d00 I CAN HAZ CONS in 64BIT! 2008-04-07 10:20:05 -04:00
Abdulaziz Ghuloum bf6138f86f - Added reset-output-port! which sets the write index to 0 and
unregisters any callbacks associated with the buffer.
- commented out the call for unblocking the stdin for now
  (for reason yet unknown to me, it causes stdout to be unblocked
   as well, making writes to the console to come out in bizarre 
   mixed order)
2008-04-06 10:57:56 -04:00
Abdulaziz Ghuloum afd7592ae1 Added &i/o-read, &i/o-write, and &i/o conditions to read/write
errors.
2008-04-05 05:15:30 -04:00
Abdulaziz Ghuloum 8d8f6d39f7 Fixing bug 210744: Interrupts and IO callbacks not interacting
properly
2008-04-02 20:28:45 -04:00
Abdulaziz Ghuloum 30bc1b7be9 apply error now shows the procedure before the number of args. 2008-03-25 22:15:10 -04:00
Abdulaziz Ghuloum 398ff23992 Fixes bug 206847: default exception handler expected to return for
non-&serious conditions
2008-03-25 21:38:11 -04:00
Abdulaziz Ghuloum c01f3049e4 Fixes bug 206842: syntax tracing not working by default when
syntax-case fenders fail
2008-03-25 21:23:23 -04:00
Abdulaziz Ghuloum c2e20a3a68 Fixes bug 206839: map not failing with invalid arguments 2008-03-25 21:03:26 -04:00
Abdulaziz Ghuloum 48f7c88e2d made time macro not depend on format. 2008-03-24 21:50:37 -04:00
Abdulaziz Ghuloum 81c17da20b Fixes bug 190373: `time' macro's "running stats for" can be misleading 2008-03-24 21:45:36 -04:00
Abdulaziz Ghuloum 3c3fec3908 Fixed problem shutting down servers on cygwin. 2008-03-24 13:25:59 -04:00
Abdulaziz Ghuloum 12a3f7e19b Fixes bug 205988: sockaddr_in not recognized on cygwin. 2008-03-24 13:18:39 -04:00
Abdulaziz Ghuloum fc92ec8e9f Fixes bug 205437: socket errors not being reported 2008-03-24 00:01:22 -04:00
Abdulaziz Ghuloum 884f3fe921 Added tcp-server-socket-nonblocking, tcp-accept-connection-nonblocking
and register-callback for handling nonblocking servers and connections.
2008-03-23 05:02:12 -04:00
Abdulaziz Ghuloum 0f55361b19 Fixes bug 205427 in letrec*. 2008-03-23 04:14:53 -04:00
Abdulaziz Ghuloum 2119f44125 Added a simple tcp server facility. See lab/greeting-server.ss. 2008-03-23 03:44:20 -04:00
Abdulaziz Ghuloum 9aaf306f16 Nonblocking sockets no longer raise a continuable exception when a
read or write operation would block.  Instead, they are schedules
with an event handler that `selects' on the pending file descriptors
and dispatches the appropriate callback.
2008-03-23 02:14:00 -04:00
Abdulaziz Ghuloum 6e599c4c72 refactored nonblocking code in ikarus-io.c and ikarus.io.ss 2008-03-23 00:41:49 -04:00
Abdulaziz Ghuloum ec69dc4a7c Added more tests for div0 and mod0. 2008-03-22 21:25:42 -04:00
Abdulaziz Ghuloum 48a86cbaa3 Fixed bug in (mod 3 5/6). 2008-03-22 21:23:51 -04:00
Abdulaziz Ghuloum ce496aebaf * Better error message when a tcp connection is refused.
* implemented udp connections (not working yet).
2008-03-22 19:29:41 -04:00
Abdulaziz Ghuloum 85d09cbc1c fxarithmetic-shift-left now detects overflows properly. 2008-03-18 00:49:24 -04:00
Abdulaziz Ghuloum 97507bce08 Fixes bug in reader now recognizing the following comment:
> #|| hello ||# '12
2008-03-15 21:12:43 -04:00
Abdulaziz Ghuloum 50888bef94 Fixes issues/warnings in bug 193327. 2008-03-15 21:06:47 -04:00
Abdulaziz Ghuloum d35566081b import now recognizes and ignore ``for'' spec. 2008-03-15 21:00:16 -04:00
Abdulaziz Ghuloum a3f6e3e039 Cut down bootstrap time by 10% by caching the values of scheme-stx.
Macroexpansion time is reduced by 25%.
2008-03-12 18:12:57 -04:00
Abdulaziz Ghuloum 1943212436 - Added tests for fasl objects
- fasl-read can now read bignums, flonums, and ratnums.
2008-03-09 00:25:03 -05:00
Abdulaziz Ghuloum 8f0b606609 sin, cos, tan, asin, acos, and atan now support rational numbers. 2008-03-03 13:49:47 -05:00
Abdulaziz Ghuloum 5210f1448b Fixed part of bug 162334. Reason: (inexact -1/2) lost the sign and
returned 0.5.  It now correctly return -0.5.
2008-03-01 21:54:27 -05:00
Abdulaziz Ghuloum f6ee3618ba (+ 1/2), (+ 0.5), (* 1/2) and (* 0.5) used to raise "not a number" errors. 2008-03-01 21:48:42 -05:00
Abdulaziz Ghuloum db54cd0074 Fixes bug 191116: rationalize broken 2008-03-01 21:45:48 -05:00
Abdulaziz Ghuloum 755843e251 196894: --compile-dependencies misnamed in error message 2008-03-01 21:14:35 -05:00
Abdulaziz Ghuloum ed9f85ea7c Fixes bug 194232: fasl-write error message wrong about textual
output ports
2008-02-26 04:07:33 -05:00
Abdulaziz Ghuloum e36b0029f6 Fixes bug 194259. R6RS records can now be written and read back
through fasl-write and fasl-read.
2008-02-26 03:53:00 -05:00
Abdulaziz Ghuloum c8f9b1dc3d Added fluid-let-syntax.
See http://www.scheme.com/csug7/syntax.html#./syntax:s15
for details.
2008-02-25 02:15:51 -05:00
Abdulaziz Ghuloum 7a9526ec91 removed a macos-specific dependencies in ikrt_file_ctime procedure. 2008-02-19 03:28:40 -05:00
Abdulaziz Ghuloum 523fa2e588 minor fixes to warning messages. 2008-02-19 00:15:18 -05:00
Abdulaziz Ghuloum 81f6c50341 fixed struct initialization problem in fasl-read. 2008-02-18 23:37:01 -05:00
Abdulaziz Ghuloum 259d43ca37 Changed fasl extension from ".ikfasl" to ".ikarus-fasl" 2008-02-18 23:29:49 -05:00
Abdulaziz Ghuloum 405c7dc9e2 fixed a missing put-mark call in fasl-read. 2008-02-18 23:26:54 -05:00
Abdulaziz Ghuloum f45a74c115 removed the separate-compilation.ss file because it was not needed. 2008-02-18 22:07:58 -05:00
Abdulaziz Ghuloum 8564000d0d ikarus --compile-dependencies seems to be working now. 2008-02-18 22:05:29 -05:00
Abdulaziz Ghuloum 8a809e2f58 Added (file-ctime filename) which returns the time of last change
(in nanoseconds)
2008-02-18 21:58:11 -05:00
Abdulaziz Ghuloum e751c15bc4 library record now contains original file name for libraries loaded
from files.
2008-02-18 20:39:42 -05:00
Abdulaziz Ghuloum c430a91bb8 more preparations for separate compilation 2008-02-18 20:28:54 -05:00
Abdulaziz Ghuloum fa08c543bb library records now cache expanded code. 2008-02-18 19:15:47 -05:00
Abdulaziz Ghuloum 163809f667 Ikarus can now compile, save, and reload a simple hello-world library. 2008-02-18 02:02:00 -05:00
Abdulaziz Ghuloum e02b646d6e Added separate compilation stubs. 2008-02-17 04:08:38 -05:00
Abdulaziz Ghuloum 5c56450c3e removed some stale junk from compiler.ss 2008-02-17 03:11:12 -05:00
Abdulaziz Ghuloum 314f80eee9 include now attached annotations to read files (using read-annotated
instead of read).
2008-02-17 02:29:36 -05:00
Abdulaziz Ghuloum 1d6d5bec61 Some work on optimizer (still not working). 2008-02-17 02:11:04 -05:00
Abdulaziz Ghuloum 19e5d2bacd Fixes bug 192222: Quasiquote broken 2008-02-15 15:25:20 -05:00
Abdulaziz Ghuloum 30aae80c5d removed all symbolicly linked files. 2008-02-14 17:45:15 -05:00
Abdulaziz Ghuloum f4fb08adba Added an experimental macro expansion stack trace that looks like:
Unhandled exception:
 Condition components:
    1. &who: let
    2. &message: "not an identifier"
    3. &syntax:
        form: (let ((12 a)) (printf "a=~s\n" a)) 
        subform: 12
    4. &trace: #<syntax (let ((12 a)) (printf "a=~s\n" a))>
    5. &trace: #<syntax (right 12 a (printf "a=~s\n" a))> 
    6. &trace: #<syntax (wrong a 12 (printf "a=~s\n" a)) [byte 216 of test.ss]>


For a file containing:

(define-syntax right
  (syntax-rules ()
    [(_ a b c) (let ([a b]) c)]))
 
(define-syntax wrong
  (syntax-rules ()
    [(_ a b c) (right b a c)]))

(right x 17 (wrong a 12 (printf "a=~s\n" a)))
2008-02-14 04:01:09 -05:00
Abdulaziz Ghuloum f6b35c4506 Fixes bug 191659: add1 and sub1 are slow 2008-02-13 18:12:00 -05:00
Abdulaziz Ghuloum 66b9f6968e Work in progress on reimplementing the optimizer based on
Oscar Waddell's dissertation (chapter 4).  The existing
optimizer in Ikarus is just a joke.
2008-02-13 03:29:34 -05:00
Abdulaziz Ghuloum 08fda34ebe Added a single argument (fx- n) case that was missing. 2008-02-12 16:43:15 -05:00
Abdulaziz Ghuloum bde9000c06 fx- now checks for overflow. 2008-02-12 15:03:43 -05:00
Abdulaziz Ghuloum 1683997a12 fx* now detects overflow. 2008-02-12 14:46:18 -05:00
Abdulaziz Ghuloum 3811d0a4c2 Loops with a single free variable no longer allocate a closure. 2008-02-11 22:18:32 -05:00
Abdulaziz Ghuloum e1d9e72983 some compiler cleanup 2008-02-11 09:29:59 -05:00
Abdulaziz Ghuloum 4a731c4f28 Fixed a bug introduced earlier today that prevented bindings to
simple constants from being initialized properly.
2008-02-10 07:35:09 -05:00
Abdulaziz Ghuloum 5b904b93c4 SCC-letrec optimization is now online. 2008-02-10 05:46:58 -05:00
Abdulaziz Ghuloum 6df608ccd9 SCC-letrec kinda works now. 2008-02-10 05:24:16 -05:00
Abdulaziz Ghuloum 4e5121af4e Implemented an experimental SCC letrec transformation which does not
work yet.
2008-02-10 03:27:31 -05:00
Abdulaziz Ghuloum f3c92c9473 Fixes bug 188159: delete-file not recognizing "file doesn't exist"
error, and it's not using &i/o-filename
2008-02-03 17:11:53 -05:00
Abdulaziz Ghuloum 1a98773440 This is the 0.0.3 release. 2008-02-02 23:08:58 -05:00
Abdulaziz Ghuloum f6e5e4d5b4 Added -m32 to CFLAGS/LDFLAGS, updated copyright dates and version no. 2008-01-29 00:34:34 -05:00
Abdulaziz Ghuloum 6bfe82ca9b Reimplemented bytevector-uint-set! and bytevector-sint-set! to make
the implementation simpler and more correct (previous one was
incorrect).
2008-01-28 15:45:42 -05:00
Abdulaziz Ghuloum a43177d399 Fixed some of bug 186155: Incorrect syntax errors for define 2008-01-27 19:12:20 -05:00
Abdulaziz Ghuloum 7f971d710a Fixes bug 185276: Tracing confused by zero number of return values 2008-01-23 03:14:33 -05:00
Abdulaziz Ghuloum b8ac2f81ea Added special case for sorting lists of size < 2. 2008-01-23 03:08:46 -05:00
Abdulaziz Ghuloum 9ba00f128e Fixes big 185268: open-string-input-port type check die message missing 2008-01-23 02:17:25 -05:00
Abdulaziz Ghuloum a33269daa7 Fixes bug 184959: get-bytevector-some missing 2008-01-22 10:59:04 -05:00
Abdulaziz Ghuloum 92d02e8e52 Fixes bug 173042: Wrong error message for (mod 3.0 3) 2008-01-22 10:39:21 -05:00
Abdulaziz Ghuloum 313e59bc92 slightly enhanced error message for attempting to transcode a port
using an unsupported line-style (the only supported one is "none" as
of now).
2008-01-22 03:30:52 -05:00
Abdulaziz Ghuloum 264c58c4a4 Working on bug 184993: Writing to zombie process causes Ikarus to exit. 2008-01-21 23:29:04 -05:00
Abdulaziz Ghuloum b00e56face Fixes bug 184991: binary ports' printed representation says they're
textual
2008-01-21 22:10:23 -05:00
Abdulaziz Ghuloum b0ffb78d67 Updated user's guide:
- Changed license from FDL to GPL
- Added docs about file extensions
- Updated list of missing features (list is down to one page, yay!)
- Updated copyright years in document and ikarus-main.ss (it's 2008!).
2008-01-21 01:01:28 -05:00
Abdulaziz Ghuloum 9edb15a0f9 Added bitwise-bit-field. 2008-01-20 23:13:24 -05:00
Abdulaziz Ghuloum eedbe65e44 Added bitwise-copy-bit. 2008-01-20 22:21:54 -05:00
Abdulaziz Ghuloum cc7066441c Added put-bytevector. 2008-01-20 20:30:37 -05:00
Abdulaziz Ghuloum fd75cfc02f Added tests for list-sort and vector-sort. 2008-01-20 17:52:19 -05:00
Abdulaziz Ghuloum b5b558f4e6 Reimplemented list-sort in terms of vector-sort!. 2008-01-20 16:54:23 -05:00
Abdulaziz Ghuloum f1710b81ab Reimplemented vector-sort and vector-sort! 2008-01-20 16:48:55 -05:00
Abdulaziz Ghuloum 0142ba2315 - Added an optimization to the base record constructors for args up
to 4.
2008-01-19 18:15:18 -05:00
Abdulaziz Ghuloum df1cef98be - Added primop for *. 2008-01-19 16:11:00 -05:00
Abdulaziz Ghuloum 48100f3737 Added bitwise-and primop. 2008-01-19 15:44:38 -05:00
Abdulaziz Ghuloum dd5967c433 Added special cases for fixnum args to div and mod. 2008-01-19 15:33:52 -05:00
Abdulaziz Ghuloum 497d2ea8ed increased IO block-size from 4K to 16K. 2008-01-19 14:51:14 -05:00
Abdulaziz Ghuloum 323d1037ea - Fixed a performance bug that caused slowness in read-char for IO
intensive code (cat, tail, wc)
2008-01-19 13:50:53 -05:00
Abdulaziz Ghuloum 7a970db55d Fixes bug 184265: flonum? assemble bug 2008-01-19 09:47:15 -05:00
Abdulaziz Ghuloum 5bf2afce78 Added inline expansion for all cxr and cxxxr primitives. 2008-01-18 22:44:40 -05:00
Abdulaziz Ghuloum 6018e2200d Made (define foo) expand to (define foo (void)). 2008-01-18 22:18:26 -05:00
Abdulaziz Ghuloum 8adb1639f0 sqrt and exact-integer-sqrt now use the gmp sqrt procedure instead
of the previous bisection algorithm (much faster).
2008-01-17 01:26:29 -05:00
Abdulaziz Ghuloum f7dcbe87c6 Fixes round-off error in sqrt. 2008-01-12 21:05:26 -05:00
Abdulaziz Ghuloum d9cdcb8959 Fixes bug 180991: round-off error in bignum->flonum 2008-01-12 20:52:23 -05:00
Abdulaziz Ghuloum 2dc4542148 Reimplemented the guardians collector which was yellowing out since
the last update to the GC.  All tests now run without a glitch.
2008-01-12 17:32:43 -05:00
Abdulaziz Ghuloum 7a2ac14f5a Eliminated frame-pointer adjustment around calls if the adjustment
is 0.  Previously, you'd get 
    addl 0, fpr
    <stuff>
    subl 0, fpr
which are useless.
2008-01-10 03:26:18 -05:00
Abdulaziz Ghuloum 9e06ec35bf Fixes bug 181679: vec-graph not working 2008-01-10 00:40:39 -05:00
Abdulaziz Ghuloum 4444496609 Fixes bug 181105: syntax pattern variable list length mismatch error
is obscure
2008-01-09 08:47:48 -05:00
Abdulaziz Ghuloum 62765c2885 Fixes bug 180895: letrec error message not as helpful as let 2008-01-09 08:37:46 -05:00
Abdulaziz Ghuloum fbebc96bfa Fixed the ``bytes allocated off by n problem''. 2008-01-07 21:37:41 -05:00
Abdulaziz Ghuloum 01d0669607 sigaltstack is not used now if the OS does not provide it. 2008-01-07 19:04:46 -05:00
Abdulaziz Ghuloum 899be70aca Kind of a better implementation of ratnum->flonum. 2008-01-06 02:27:23 -05:00
Abdulaziz Ghuloum da7f05a538 Fixes more of bug 180170: (log (expt 2 1024)) now works. 2008-01-05 21:02:52 -05:00
Abdulaziz Ghuloum af6562721b Fixes bug 180170: Missing bignum sqrt 2008-01-04 21:46:50 -05:00
Abdulaziz Ghuloum 3cd68e7ea3 Fixed bug 179978: (eq? (vector) (vector)) should evaluate to #t 2008-01-04 21:19:30 -05:00
Abdulaziz Ghuloum 797897cc01 Fixes bug 180455: raw symbols in output of macro are not detected 2008-01-04 20:53:59 -05:00
Abdulaziz Ghuloum e35ed42f6c Added the tests that I'm using for porting. 2008-01-04 05:55:06 -05:00
Abdulaziz Ghuloum 069ff811e2 Passed tests-1.6 in 64-bit mode. 2008-01-04 05:54:35 -05:00
Abdulaziz Ghuloum 755beeb7d7 uuid and gensym were not generating pretty unique strings. fixed. 2008-01-04 05:47:18 -05:00
Abdulaziz Ghuloum 976694a3ab passing tests-1.5 2008-01-04 04:41:20 -05:00
Abdulaziz Ghuloum 71fcccd764 passing tests-1.4 2008-01-04 04:21:02 -05:00
Abdulaziz Ghuloum 2ea7321e6b passing tests-1.3 in 64-bit mode. 2008-01-04 03:49:27 -05:00
Abdulaziz Ghuloum 61dfef0cea Passing tests-1.2 in 64-bit. 2008-01-04 02:50:45 -05:00
Abdulaziz Ghuloum 5d2f14c523 Added a disassembler tool for 64-bit code (using macos otool64). Also,
passed more tests in 64-bit mode.
2008-01-03 23:03:22 -05:00
Abdulaziz Ghuloum 3b8eb4bbd4 Ikarus can compile immediates in 64-bit mode.
It feels like I'm going through my compilers tutorial all over again!
2008-01-03 04:42:10 -05:00
Abdulaziz Ghuloum 341e53a36d 64-bit fasl files can now be produced and read. 2008-01-03 02:07:17 -05:00
Abdulaziz Ghuloum 3c99e7d393 fasl-write now writes different fasl objects depending on the
architecture bitness.
2008-01-02 23:22:55 -05:00
Abdulaziz Ghuloum 7fb7add0ce frame size parameters are now more modular in ikarus-data.h 2008-01-02 20:58:48 -05:00
Abdulaziz Ghuloum d9475009fd renamed:
src/cpu_has_sse2.s => src/cpu_has_sse2.S
  src/ikarus-enter.s => src/ikarus-enter.S
2008-01-02 18:05:59 -05:00
Abdulaziz Ghuloum c15876aebe Abstracted the construction of call frames and automated the padding
process.  The compiler no longer has hardcoded null bytes inserted
into the code streams.
2008-01-02 07:01:45 -05:00
Abdulaziz Ghuloum 0db7d1d6d0 Identified places where a hard-coded number of null bytes are
manually inserted into the code stream to ensure proper offsets.
These need to be removed ASAP.  Also, abstracted the values of three
constants that were hardcoded.
2008-01-02 05:55:30 -05:00
Abdulaziz Ghuloum 50e2478d06 removed some hard-coded constants of pcb-offsets. 2008-01-01 23:07:41 -05:00
Abdulaziz Ghuloum 66e9cd6415 ikarus now compiles cleanly (but still unrunnable) in 64-bit mode. 2008-01-01 21:42:52 -05:00
Abdulaziz Ghuloum 8538098043 removed one implicit dependency on mp_bits_per_limb in ikarus.bytevectors.ss 2008-01-01 05:30:51 -05:00
Abdulaziz Ghuloum 993a3ad6c4 Fixed a couple of bugs that I introduced in previous revision. 2008-01-01 05:17:42 -05:00
Abdulaziz Ghuloum 15ea12f915 cleanup of the C files to make all ikptr->int casts ikptr->long int 2008-01-01 04:24:36 -05:00
Abdulaziz Ghuloum 1f5cef4940 sweeping the junk in assembler continues. 2007-12-31 05:34:20 -05:00
Abdulaziz Ghuloum a8abfb6bc5 Yet more cleanup in assembler. 2007-12-31 04:00:46 -05:00
Abdulaziz Ghuloum f44b9285c7 small bug fix in assembler for code like (movl reg (disp reg reg)) 2007-12-31 03:02:12 -05:00
Abdulaziz Ghuloum e262407379 More cleanup in assembler 2007-12-31 02:42:53 -05:00
Abdulaziz Ghuloum e7017c159f made the assembler a little more robust as far as 32-bit registers
are used.
2007-12-30 20:22:13 -05:00
Abdulaziz Ghuloum b2d67a552d number->string now returns a fresh string for 0. 2007-12-30 18:37:37 -05:00
Abdulaziz Ghuloum 771b9699b5 Fixes bug 179015: Feature request: socket-port's id/name includes
service-name/port
2007-12-28 00:05:44 -05:00
Abdulaziz Ghuloum 4c3b17436f Added a tcp-connect-nonblocking-example.ss to demonstrate how to
handle nonblocking sockets by continuous polling.
2007-12-27 22:17:54 -05:00
Abdulaziz Ghuloum 64dac92831 Added tcp-connect-nonblocking which is line tcp-connect but puts the
socket in nonblocking mode.  An operation that would block now
raises (continuable) a condition of type &i/o-would-block which
contains the port in question.  There's no way to handle the
condition gracefully yet.
2007-12-27 22:08:27 -05:00
Abdulaziz Ghuloum fc2d958419 Ikarus now recognizes ".sls", ".ss", and ".scm" extensions as well
as ".ikarus.sls", ".ikarus.ss", and ".ikarus.scm".
2007-12-27 15:16:08 -05:00
Abdulaziz Ghuloum 2a96ebf5b1 Fixes bug 178858: convert-closures "free vars encountered in
program" error mistakenly happening
2007-12-27 13:03:48 -05:00
Abdulaziz Ghuloum 648991d793 cygwin does not have getaddrinfo so I added a compatibility
implementation in src/ikarus-getaddrinfo.[ch]
2007-12-26 22:28:48 -05:00
Abdulaziz Ghuloum 4f0a816295 Added a tcp-connect procedure that takes a host name and a service
name (e.g. "www.google.com" and "http") and returns two binary ports:
the first for output and the second for input.
Both ports must be closed for the connection to close.

Also added an example in lab/tcp-connect-example.ss which connects 
to an http server, sends "GET /\n" and prints the responde.
2007-12-26 17:35:58 -05:00
Abdulaziz Ghuloum b8ed235308 Reimplemented open-output-string and get-output-string. 2007-12-26 02:16:02 -05:00
Abdulaziz Ghuloum f48ec4ad2d Fixes bug 178552: &non-continuable typo in makefile.ss 2007-12-26 01:48:37 -05:00
Abdulaziz Ghuloum ab67ee9dad Fixes bug 178385: Closed port giving incorrect error about type
instead of about being closed
2007-12-23 22:28:48 -05:00
Abdulaziz Ghuloum 1786677c73 * made unbound variable violations have &undefined condition type. 2007-12-23 19:52:18 -05:00
Abdulaziz Ghuloum 1c4ba26923 Added bitwise-length (fixing bug 178345: Missing bitwise-length) 2007-12-23 17:33:13 -05:00
Abdulaziz Ghuloum 2e7faf85c7 Fixes bug 178334: annotation structs being revealed 2007-12-23 16:23:20 -05:00
Abdulaziz Ghuloum 788b613bba Added call-with-output-file 2007-12-23 15:18:40 -05:00
Abdulaziz Ghuloum 79277bb394 Added with-output-to-string. 2007-12-23 15:12:22 -05:00
Abdulaziz Ghuloum 894a29f0d8 Added with-output-to-file. 2007-12-23 15:06:05 -05:00
Abdulaziz Ghuloum d2de3bcadb Added with-input-from-string. 2007-12-23 14:44:55 -05:00
Abdulaziz Ghuloum 5d33921c9e changed type of ikp from unsigned char* to char* 2007-12-23 13:37:48 -05:00
Abdulaziz Ghuloum 097ca03e47 Fixes bug 177638: keyword argument in syntax-rules should not be
used in substitutions
2007-12-20 06:36:00 -05:00
Abdulaziz Ghuloum b915854677 enhanced printing of annotated syntax objects. 2007-12-20 00:31:49 -05:00
Abdulaziz Ghuloum 2c31b5bf51 replaced some calls to assertion-violation with calls to
syntax-violation for better syntactic error reporting.
2007-12-19 23:42:27 -05:00
Abdulaziz Ghuloum 6eb6bf750d Added a (process "cmd" "args" ...) procedure that execs cmd, passing
args to it, and returns 4 values: 
* the process's pid
* the process's standard-input-port  (for writing)
* the process's standard-output-port (for reading)
* the process's standard-error-port  (for reading)
See lab/process-example.ss for a sample usage.
2007-12-19 22:46:07 -05:00
Abdulaziz Ghuloum 10077a6468 minor change to the value returned by input-port-byte-position
(it's up by 1 now).
2007-12-19 19:33:05 -05:00
Abdulaziz Ghuloum 917754e28e syntax-errors now give source information in their error message. 2007-12-19 19:05:23 -05:00
Abdulaziz Ghuloum a725292a4d moved match.ss and pregexp.ss to the lib directory and modified
lib/Makefile.am accordingly
2007-12-19 17:39:26 -05:00
Abdulaziz Ghuloum 22ff670e81 the reader is now capable of returning annotated expressions
containing full file-source information about each expression.
2007-12-19 00:40:25 -05:00
Abdulaziz Ghuloum 0aa846ba78 reduced size of parser, and added two helpers for reading and
recording position.
2007-12-18 23:07:57 -05:00
Abdulaziz Ghuloum 2c98be442a more simplifications to reader. 2007-12-18 22:28:27 -05:00
Abdulaziz Ghuloum 4393d2aab9 simplified reader by removing hash-semi handling. 2007-12-18 22:06:58 -05:00
Abdulaziz Ghuloum d86bfb288c Lexical errors now give filename and character position in their
error messages.
2007-12-18 19:52:15 -05:00
Abdulaziz Ghuloum 945e8473fc input-port-byte-position works for input files. 2007-12-18 17:25:48 -05:00
Abdulaziz Ghuloum 64e54de392 Added two extra fields to the port data structure. 2007-12-18 15:36:56 -05:00
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