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