Abdulaziz Ghuloum
31f5f88889
first test of ffi works:
...
> (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
>
2008-09-14 04:17:24 -07:00
Abdulaziz Ghuloum
9f2d7484ab
fixed uint/ulong pointer ref bug (and added appropriate tests).
2008-09-14 00:38:59 -07:00
Abdulaziz Ghuloum
58d937c520
upgraded to using latest versions of autoconf, aclocal, and m4.
2008-09-13 15:16:14 -07:00
Abdulaziz Ghuloum
8e750562d6
- Added memory operations on pointer types for setting and accessing
...
char, short, int, and long values from pointer arrays.
2008-09-13 07:49:17 -07:00
Abdulaziz Ghuloum
e05e84d1c2
Added dlopen, dlclose, dlerror, dlsym, malloc, and free to
...
(ikarus system $foreign).
2008-09-12 14:22:57 -07:00
Abdulaziz Ghuloum
30cd6a2de8
made environment-symbols work on the interaction-environment.
2008-09-10 11:02:42 -07:00
Abdulaziz Ghuloum
0b017898a8
- minor change to how export (with renaming) is parsed. When you
...
rename from-name to to-name, the from-name is now treated as an
identifier while the to-name is treated as a symbol.
2008-09-10 08:17:18 -07:00
Abdulaziz Ghuloum
fcef21c693
- Added (environment-symbols <env>) which returns a list of symbols
...
exported by the environment. Try
> (environment-symbols (environment '(rnrs)))
- Added an internal export mechanism so that identifiers can be
exported from within a library. The syntax is the same:
(export export-spec* ...)
when appears in a library's top level, adds the export specs to
the set of exported identifiers. So, one can do:
(library (A)
(export)
(import (ikarus))
(export a)
(define a 17))
When appearing in non-library definition context, the export form
is ignored.
2008-09-10 06:35:18 -07:00
Abdulaziz Ghuloum
c597e7a4b3
Added option for searching for socket and nanosleep in libraries
...
-lsocket and -lrt (makes it work on SunOS).
2008-09-08 14:43:47 -07:00
Abdulaziz Ghuloum
afc9bff07f
- added experimental pointer manipulation primitives.
2008-09-06 06:01:39 -07:00
Abdulaziz Ghuloum
814c797633
- removed bset/h instruction from the compiler (it was rarely used
...
and not implemented 100% correctly)
- fixed parameterize to allow (parameterize () def ... exp exp ...)
2008-09-06 04:17:20 -07:00
Abdulaziz Ghuloum
b9085e15da
- more work on trig functions
...
- mkstx now checks that double wraps are not merged incorrectly
2008-08-12 01:17:04 -07:00
Abdulaziz Ghuloum
476a0cb6d8
fixed small bug in rationalize
2008-08-11 13:38:28 -07:00
Abdulaziz Ghuloum
c64fda7619
fixed a few problems in geometric functions when they are passed
...
complex numbers or when they're passed real numbers but the results
are complex.
2008-08-11 10:37:05 -07:00
Abdulaziz Ghuloum
e58c53cca5
symbols containing unicode characters now print properly and respect
...
the print-unicode parameter.
2008-08-10 11:50:39 -07:00
Abdulaziz Ghuloum
fdca9ed33f
command line arguments are now interpreted as utf8 strings.
2008-08-10 11:33:10 -07:00
Abdulaziz Ghuloum
2ad6d9bddf
strings containing non-ascii characters are written using either
...
hex escaping or as-is depending on the value of the print-unicode
parameter.
2008-08-10 11:03:09 -07:00
Abdulaziz Ghuloum
22d216f9ed
- fixed a problem with loading an empty file.
...
- added ikarus.reader.annotated.ss to Makefile.am.
2008-08-10 10:46:24 -07:00
Abdulaziz Ghuloum
7bacb4a0a5
Added string-downcase and string-upcase. String-downcase does not
...
handle greek-final-sigma properly.
2008-08-09 07:12:22 -07:00
Abdulaziz Ghuloum
e24356eb4a
scheme-script is now its own program; it does not fork and exec
...
ikarus, and therefore does not interfere with ikarus's command line
parsing.
2008-08-09 05:47:44 -07:00
Abdulaziz Ghuloum
c5930ac113
exported enum-set?.
2008-08-08 08:29:18 -07:00
Abdulaziz Ghuloum
b7d9c0cf1f
- added two argument version of log
...
- handled (/ flonum complexnum)
2008-08-08 08:21:23 -07:00
Abdulaziz Ghuloum
53cc48d23c
fxsll was missing an interrupt call.
2008-08-07 15:02:53 -07:00
Abdulaziz Ghuloum
9eead5327a
Added bitwise-if and bitwise-copy-bit-field (inefficiently)
2008-08-04 23:43:11 -07:00
Abdulaziz Ghuloum
e1215998e0
quick fix for incorrect reading of subsequent* characters in a
...
symbol.
2008-08-04 23:19:55 -07:00
Abdulaziz Ghuloum
2b4e89bcf0
- fixed a minor import subversion bug.
...
- added 2-argument version of fllog.
2008-08-04 16:44:24 -07:00
Abdulaziz Ghuloum
a9fb7b0fef
fixed small bug in enum-universe.
2008-08-03 14:18:11 -07:00
Abdulaziz Ghuloum
c5381d4cb3
Applied a patch fixing error when the standard input/output ports
...
are closed before the interactive session terminates.
2008-08-03 13:50:20 -07:00
Abdulaziz Ghuloum
6d52912aef
reimplemented enums to use bitmaps instead of lists.
2008-08-03 12:52:33 -07:00
Abdulaziz Ghuloum
0da4e99a12
simplified when, unless, and case macros and added better handler
...
for (if (not e) e e).
2008-08-02 11:09:22 -07:00
Abdulaziz Ghuloum
39e84d1395
simplified parameterize macro.
2008-08-02 10:11:04 -07:00
Abdulaziz Ghuloum
9b74020647
fixed a bug in fasl reader for shared/cyclic data structures.
2008-07-30 17:28:33 -07:00
Abdulaziz Ghuloum
f2d6f433bb
fixed shift-left bug on bignums in 64-bit mode only
2008-07-30 08:17:20 -07:00
Abdulaziz Ghuloum
f144722b36
bumped the number of registers available on AMD64 by 4.
2008-07-30 07:47:22 -07:00
Abdulaziz Ghuloum
959082d12d
assert now gives source information when available.
2008-07-29 11:04:52 -07:00
Abdulaziz Ghuloum
5aa6e1b05e
some work on parsing polar notation.
2008-07-29 08:35:36 -07:00
Abdulaziz Ghuloum
c0a1abace1
Added &undefined condition to unbound error conditions.
2008-07-29 07:54:06 -07:00
Abdulaziz Ghuloum
d84dd99061
added fxrotate-bit-field
2008-07-27 10:53:31 -07:00
Abdulaziz Ghuloum
282fa962a8
fixed div0-and-mod0 bug
2008-07-26 15:08:13 -07:00
Abdulaziz Ghuloum
4ee88498a9
fixes quasisyntax bugs, making them more conforming to the r6rs test
...
suite.
2008-07-26 14:11:22 -07:00
Abdulaziz Ghuloum
b3d8a8f9fd
sqrt now supports negative arguments properly.
2008-07-26 12:39:11 -07:00
Abdulaziz Ghuloum
3b80d4f321
fixed a bug in quotient and div when given (least-fixnum) and -1.
2008-07-26 12:28:51 -07:00
Abdulaziz Ghuloum
4909a9ef08
fixed make-rectangular so that (make-rectangular 1.0 0.0) returns
...
a cflonum 1.0+0.0i while (make-rectangular 1.0 0) returns 1.0.
2008-07-25 17:46:34 -07:00
Abdulaziz Ghuloum
f332927d23
kinda fixes a port-position computation bug for custom binary ports.
2008-07-24 22:30:21 -07:00
Abdulaziz Ghuloum
7db56cf76e
- bytevector-ieee-[single|double]-[ref|set!] now accept unaligned
...
indices (r6rs requirement).
- file-options are now represented as enum-sets (r6rs requirement)
- odd?, even?, lcm, remainder, etc., now accept inexact integers.
2008-07-24 18:58:53 -07:00
Abdulaziz Ghuloum
9085b79b64
fixed some r6rs bitwise bugs.
2008-07-24 00:06:12 -07:00
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
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
432e1d9b87
replaced &i/o-write with &i/o-read for IO read errors. Duuh.
2008-06-08 06:25:22 -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