Abdulaziz Ghuloum
64aca7c80b
one more fix for 64-bit jumps and calls. Some conditional jumps
...
required cross-code offsets which are now eliminated.
2009-12-31 16:41:13 +03:00
Abdulaziz Ghuloum
820eb7dcb9
Fixed the ``relocation error'' that happens in 64-bit mode. What
...
used to be a relative jump from one code object to another is now
turned into a pc-relative jump, where the jump targets are stored
somewhere at the bottom of the code that performs the jump:
old code sequence:
call-relative (Ltarget - L0)
L0: ...
new code sequence:
call-pc-relative (L1 - L0)
L0: ...
...
L1: <8-byte Ltarget>
2009-12-31 03:41:22 +03:00
Abdulaziz Ghuloum
69207de752
fixed a bug in $flonum-sbe that caused a read of 4 bytes past the
...
end of the flonum object in 64-bit mode (manifesting in a segfault
when running make check on fedora 64-bit).
2009-12-29 05:03:47 +03:00
Abdulaziz Ghuloum
84e0f4ab6d
fixed bug in quasiquote when the symbols quasiquote, unquote,
...
unquote-splicing are introduced.
2009-10-21 08:55:42 +03:00
Abdulaziz Ghuloum
d03fbfe4ef
fixed bug in expanding macros in internal definitions which were
...
incorrectly implemented as little modules (with their own little
scope) that export everything. They now use the same scope as the
main definitions.
2009-10-19 23:28:36 +03:00
Abdulaziz Ghuloum
444aa9bbf0
annotation-expressions are now tracked independently of marks and
...
shifts.
2009-10-19 21:28:00 +03:00
Abdulaziz Ghuloum
5a2de815cb
fixed bug in writing strings containing #\x85; and #\x2028;.
2009-10-16 19:15:17 +03:00
Abdulaziz Ghuloum
e10ea87a31
fixed a bug in "random" not terminating for large numbers
2009-10-16 10:03:13 +03:00
Abdulaziz Ghuloum
858198b886
fixed a bug in using a precompiled variable transformers.
2009-10-16 09:54:14 +03:00
Abdulaziz Ghuloum
ad0612905a
fixed bug in code generation for (fxarithmetic-shift-right x <n>)
...
where <n> is unknown.
2009-09-30 04:36:09 +03:00
Abdulaziz Ghuloum
c375d537a3
added waiter-prompt-string parameter (chez compatible)
2009-09-25 00:56:09 +03:00
Abdulaziz Ghuloum
574942c1b0
fixed a bug when reading past eof in bytevector and string input
...
ports where the index and size of the buffer get messed up.
2009-09-21 09:29:31 +03:00
Abdulaziz Ghuloum
4c2b13ebe0
fixed invalid code generation of (movl k0 (disp k1 k2)) which is
...
invalid in X86_64.
2009-09-12 22:20:07 +03:00
Abdulaziz Ghuloum
7fee24e09e
libpthread is linked to ikarus automatically if the system has
...
pthreads.
2009-09-03 00:07:09 +03:00
Abdulaziz Ghuloum
4ce666c8d6
applied patch from andreas rottmann for providing "process*" which
...
is the kitchen sink of subprocess creation.
2009-09-02 22:47:57 +03:00
Abdulaziz Ghuloum
f33e304606
updated to newer auto tools and fixed c32 and c64 to be more generic.
2009-09-02 20:52:56 +03:00
Abdulaziz Ghuloum
d231301e2f
added workaround for missing CPP definitions on FreeBSD.
2009-08-26 19:13:40 +03:00
Abdulaziz Ghuloum
399a428382
Added #include <limits.h> to src/ikarus-runtime.c.
2009-08-26 18:50:55 +03:00
Abdulaziz Ghuloum
8adc203ded
string-hash and string-ci-hash now return nonnegative fixnums only.
2009-08-26 18:46:55 +03:00
Abdulaziz Ghuloum
57de27827a
custom hashtables' hash functions can now return any exact integer,
...
instead of returning nonnegative exact integers.
2009-08-26 18:23:07 +03:00
Abdulaziz Ghuloum
c0233db219
fixed the bahavior of fxaithmetic-shift{-left,-right,} when the
...
shift amount is not in range and when the result overflows.
2009-08-26 18:04:18 +03:00
Abdulaziz Ghuloum
b1c9fda05c
bytevector-{u,s}int-set! now err when the size argument is not
...
positive.
2009-08-26 16:40:59 +03:00
Abdulaziz Ghuloum
8bd012bfeb
fx{+,-,*}/carry now chech that all their arguments are fixnums
...
(causes segfaults when unchecked).
2009-08-24 15:22:51 +03:00
Abdulaziz Ghuloum
402c4aa468
fixed bug in shift-left by multiples of 32/64 bits where the shifted
...
data was misplaced in the resulting number.
2009-08-03 20:55:14 +03:00
Abdulaziz Ghuloum
22dc82567d
added a "warning" procedure, that's like assertion-violation and
...
error except that it throws a warning via raise-continuable.
2009-08-03 10:36:18 +03:00
Abdulaziz Ghuloum
a884cc9ff7
fixed bytevector-ieee-double-{ref,set!} that use wrong endianness
...
when the index is unaligned.
2009-08-02 21:44:02 +03:00
Abdulaziz Ghuloum
7e5b27f822
wrong alignment check in bytevector-{s,u}64-set! fixed.
2009-08-02 21:23:27 +03:00
Abdulaziz Ghuloum
c67865ff09
alignment requirement for bytevector-u64-ref and bytevector-s64-ref
...
is removed.
2009-08-02 15:12:58 +03:00
Abdulaziz Ghuloum
97dfb20a53
fixed incorrect error message for non-real arguments to negative?,
...
positive?, and abs.
2009-08-02 15:00:54 +03:00
Abdulaziz Ghuloum
e3ce873118
mantissa-width syntax of inexact numbers is now parsed and ignored.
2009-08-02 14:01:35 +03:00
Abdulaziz Ghuloum
3e71a5aa5e
fixed reading of polar notation
2009-08-02 12:23:07 +03:00
Abdulaziz Ghuloum
b2bca8a00a
some refactoring of string-to-number parsers
2009-08-02 10:47:39 +03:00
Abdulaziz Ghuloum
4df1dcb25a
attempting to reference/modify unexportable bindings was crashing
...
the expander instead of raising a proper error. fixed.
2009-08-01 22:18:26 +03:00
Abdulaziz Ghuloum
b586d2e21a
some asserion violations in the reader are converted to &lexicals so
...
that the repl displays them properly. E.g.,
(read (open-string-input-port "#!r6rs |foo|")) shows an &assertion,
but typing #!r6rs |foo| at the repl causes the repl to reset without
a message.
2009-07-30 21:46:11 +03:00
Abdulaziz Ghuloum
af233a2ac2
added post-gc-hooks, a list of thunks that are invoked after garbage
...
collection.
2009-07-30 14:19:46 +03:00
Abdulaziz Ghuloum
7d2c1b0b9e
added missing punctuations that are allowd in scribble parens.
2009-07-29 19:43:49 +03:00
Abdulaziz Ghuloum
ac3581286f
Ikarus now supports PLT's Scribble syntax!
...
- The only thing unsupported is the transposition of punctuations,
e.g., @`foo{bar} => `@foo{bar}.
2009-07-29 19:07:03 +03:00
Abdulaziz Ghuloum
cdea4e0942
added define-fluid-syntax and fixed fluid-let-syntax.
2009-07-28 22:12:48 +03:00
Abdulaziz Ghuloum
7961405db7
input ports now support "input-port-column-number" and
...
"input-port-row-number". These currently work for string ports,
latin-1 ports, and utf-8 ports as long as only ascii chars are
read.
2009-07-23 16:35:05 +03:00
Abdulaziz Ghuloum
9e764c76b4
- eqv? and equal? now guarantee #t when given two NaNs (unspecified
...
by R6RS).
2009-07-20 10:01:05 +03:00
Abdulaziz Ghuloum
fe88c7bd0d
fixed incorrect setting of IKARUS_LIBRARY_PATH.
2009-07-06 13:20:09 +03:00
Abdulaziz Ghuloum
acbd00c356
fixed a bug in expanding macros in definition context where the
...
scope would get messed up when the macro call appears inside
let/letrec-syntax. Basically, in the following example,
(let-syntax ([id-macro (syntax-rules () [(_ x) x])])
(let ()
(define (foo) (display "not ok\n"))
(let-syntax ([foo (syntax-rules () [(_) (display "ok\n")])])
(id-macro (foo)))))
the call to (id-macro) would make (foo) refer to the foo in the
internal-definition context (the not ok one) instead of the
let-syntax one.
On the plus side, macro expansion is now half a second faster!
2009-07-06 12:14:08 +03:00
Abdulaziz Ghuloum
cda06eba58
added a parameter to switch between different letrec handling routines
2009-07-06 12:07:18 +03:00
Abdulaziz Ghuloum
832fe616d2
revived waddell's letrec/letrec* optimization
2009-07-04 21:05:03 +03:00
Abdulaziz Ghuloum
7a6ae6322c
added basic letrec/letrec* handling (as in the one defined in R5RS)
2009-07-04 20:33:38 +03:00
Abdulaziz Ghuloum
cc569cce64
letrec optimization moved into its own file.
2009-07-04 19:47:15 +03:00
Abdulaziz Ghuloum
0cc2aae7dc
added two aux libraries for parsing and formatting floating point
...
numbers.
2009-06-30 19:01:20 +03:00
Abdulaziz Ghuloum
b324709e86
- ratnum->flonum now handles more numbers, though it's now slower
...
and may still be incorrect in some cases.
- (- <compnum> <flonum>) was raising an incorrect error.
2009-06-30 07:27:26 +03:00
Abdulaziz Ghuloum
7de0f39736
fixed floating point exception in (modulo <fx> 0).
2009-06-30 04:10:51 +03:00
Abdulaziz Ghuloum
6e7f0ccf84
fixed a bug in get-bytevector-n! when n == 1.
2009-06-30 03:51:01 +03:00