- Ikarus fasl files and source files are not compared using
(< (file-mtime ikfasl) (file-mtime filename))
instead of
(<= (file-ctime ikfasl) (file-ctime filename))
- mmap errors report request size (for debugging 64-bit errors)
- added a config definition for FLAT_TABLES which is not yet used
(32-bit ikarus will use flat segment and dirty tables while 64-bit
ikarus will use two-level tables)
error (as suggested by Derick Eddington).
- The -h or [-b <bootfile>] options must now come first, so,
the rest of the command-line arguments are not scanned: only the
first one or two. The docs (in ikarus -h) already suggested the
correct invocation arguments, so, this conforms to the previously
documented behavior.
- added a missing save to a callee-save register (%edi)
when entering/reentering to Scheme which caused Ikarus
not to run properly depending on whether or not gcc places
the pcb in %edi or not during Scheme execution.
- updated lab/test-ffi.ss to use the new names for foreign
types, etc.
(ikarus system $foreign).
- changed the names of some of the pointer primitives
- changed the name of the procedure make-ffi to make-callout
- updated examples and libraries to conform with new names
- updated the users guide to provide a complete description of
the (ikarus foreign) library
- updated list of missing R6RS features in the users guide
> (import (ikarus system $foreign))
> (((ffi-prep-cif 'void '(uint32))
(dlsym (dlopen #f) "hello_world"))
10)
Hello World
Hello World
Hello World
Hello World
Hello World
Hello World
Hello World
Hello World
Hello World
Hello World
>
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.
- (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.
- 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;