Commit Graph

946 Commits

Author SHA1 Message Date
Abdulaziz Ghuloum fec5dcd419 sqrt, log, and expt now understand complex numbers. 2008-05-28 22:21:08 -07:00
Abdulaziz Ghuloum ab2e05e8b0 Added inexact complex numbers. 2008-05-24 10:13:01 -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 5f92e4b96d Added current-directory parameter that gets/sets cwd. 2008-05-03 02:39:49 -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 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 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 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 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 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 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 50888bef94 Fixes issues/warnings in bug 193327. 2008-03-15 21:06:47 -04:00
Abdulaziz Ghuloum 7a9526ec91 removed a macos-specific dependencies in ikrt_file_ctime procedure. 2008-02-19 03:28:40 -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 693ca06902 doubled marks size. 2008-02-10 04:48:27 -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 f6e5e4d5b4 Added -m32 to CFLAGS/LDFLAGS, updated copyright dates and version no. 2008-01-29 00:34:34 -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 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 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 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 755beeb7d7 uuid and gensym were not generating pretty unique strings. fixed. 2008-01-04 05:47:18 -05:00
Abdulaziz Ghuloum 2ea7321e6b passing tests-1.3 in 64-bit mode. 2008-01-04 03:49:27 -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 7fb7add0ce frame size parameters are now more modular in ikarus-data.h 2008-01-02 20:58:48 -05:00
Abdulaziz Ghuloum e5fd23f50f Fixed a small bug in ikarus-fasl.c that caused linux and cygwin
builds to segfault.
2008-01-02 18:41:25 -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 3032f33dbd Made ikarus-data.h less reliant on ints being 4 bytes. 2008-01-02 18:05:32 -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 e0909d76fe changed type of ikptr to unsigned int now and removed ikint. 2008-01-01 21:08:07 -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 982d286029 Fixes bug 178993: AF_ISO, AF_NS, AF_IMPLINK not portable 2007-12-27 22:24:02 -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 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 798381ee1d Fixes bug 178394: src/ikarus-process.c missing sys/wait.h 2007-12-26 01:50:17 -05:00
Abdulaziz Ghuloum 1c4ba26923 Added bitwise-length (fixing bug 178345: Missing bitwise-length) 2007-12-23 17:33:13 -05:00
Abdulaziz Ghuloum 5d33921c9e changed type of ikp from unsigned char* to char* 2007-12-23 13:37:48 -05:00
Abdulaziz Ghuloum d162c1cc25 moved definition of HEAPSIZE to ikarus-data.h 2007-12-20 03:51:43 -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 64e54de392 Added two extra fields to the port data structure. 2007-12-18 15:36:56 -05:00
Abdulaziz Ghuloum 356a809970 the exit status due to calling (exit n) is
: n            if n is a fixnum
  : EXIT_FAILURE otherwise
2007-12-18 05:41:39 -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 23b71cee3c substantial speedup for new io layer 2007-12-12 21:22:05 -05:00
Abdulaziz Ghuloum af020f909b slight change to implementation of time-gmt-offset so that the
gmt_off field of the tm struct is not used (not available in
cygwin).
2007-12-11 19:32:34 -05:00
Abdulaziz Ghuloum b3f30bebff forgot to include <sys/time.h> in ikarys-collect.c (MacOS does not
complain about implicit declaration of gettimeofday).
2007-12-10 15:06:47 -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 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 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 553c986253 Added current-time, time?, and time-seconds. 2007-12-05 02:35:14 -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 68852b48e4 Fixes minor bugs 173386 and 173381: added typecast and chmod. 2007-12-01 23:54:44 -05:00
Abdulaziz Ghuloum 3056d26a9d Moved implementation of safe make-vector to foreign-call. 2007-12-01 05:38:09 -05:00
Abdulaziz Ghuloum 33d04c8d1e Minor bug in scheme-script.c: the new argv should be
null-terminated.
2007-11-30 07:41:56 -05:00
Abdulaziz Ghuloum 6386b3420a Fixes bug 164823: ikarus.boot remaining open 2007-11-30 07:06:30 -05:00
Abdulaziz Ghuloum 59acb45c19 Fixes bug 165107: scheme-script should be a native executable, not a
script
2007-11-30 06:51:15 -05:00
Abdulaziz Ghuloum ebc4deea60 Fixes bug 173001: r5rs values exported by rnrs library
* The following bindings were removed from (rnrs): 
  exact->inexact inexact->exact quotient modulo remainder string-set! string-fill!
2007-11-30 05:13:01 -05:00
Abdulaziz Ghuloum a1adb6cc14 Missing initialization of code_ap and code_ep in ikarus-fasl.c
caused segfault on freebsd.  The funny thing, I had initialization
code in a commented-out section.  Fun fun.
2007-11-24 22:54:40 -05:00
Abdulaziz Ghuloum ccce44fffa Fixed dynamic loading problem in the cygwin port. Apparently, no
one is using the bzr version of Ikarus under cygwin since it's been
broken for some time now.
2007-11-23 02:29:46 -05:00
Abdulaziz Ghuloum 42daf68195 Added string-ci-hash and symbol-hash.
Slight change to ikrt_string_hash.
2007-11-22 17:04:10 -05:00
Abdulaziz Ghuloum c25e04569c Added string-hash. 2007-11-22 16:55:25 -05:00
Abdulaziz Ghuloum 91c365d9a6 records/structs are an iota faster to collect. 2007-11-21 16:39:16 -05:00
Abdulaziz Ghuloum 25555d7ff6 Added getenv, which takes a string and returns a string from the "unix"
environment.  
Example:
  (getenv "HOME") => "/Users/aghuloum"
  (getenv "FOO")  => ""
2007-11-19 12:57:50 -05:00
Abdulaziz Ghuloum 3b4d3097a1 Fixes bug 163540: allocation in bignum arithmetic does not garbage collect. 2007-11-18 10:37:13 -05:00
Abdulaziz Ghuloum 1afade6d43 * renamed ik_alloc to ik_unsafe_alloc since it was unsafe to call it
in general (it did not collect on heap overflow).
2007-11-18 09:12:00 -05:00
Abdulaziz Ghuloum 90759047b3 * The fasl loader has reduced the startup mmap frenzy for code
objects from 5242 pages (almost one page per code object) down
  to 785 pages.  Special thanks to Michael Adams for counting the
  the number of pages that were used and touched at startup; without
  his help, I wouldn't have optimized it in about 10 minutes of
  coding time.
2007-11-17 13:26:27 -05:00
Abdulaziz Ghuloum 97672d5990 * Added an "exec" to the generated scheme-script. 2007-11-15 13:57:03 -05:00
Abdulaziz Ghuloum 43eb1bfcb3 Fixes bug 162145: Changing pkglibdir should rebuild ikarus-main.o and relink ikarus 2007-11-12 03:31:14 -05:00
Abdulaziz Ghuloum 31a9210f8a Fixes bug 162143: add 'clean' target for src/scheme-script 2007-11-12 02:30:39 -05:00
Abdulaziz Ghuloum 66263b2d69 * Fixes bug 160100: ikarus.boot should not be in /usr/local/bin
ikarus.boot now goes to $pkglibdir/ikarus.boot which translates
  to /usr/local/lib/ikarus/ikarus.boot by default.
2007-11-12 00:27:36 -05:00
Abdulaziz Ghuloum 5a6e106a44 * upgrades to new(er) versions of automake and autoconf.
* updated configure.ac and makefile.ac files for the new version
  (applying some of the patch in bug 160100).
2007-11-10 23:50:54 -05:00
Abdulaziz Ghuloum ff81bb99d9 * Fixed bug 160100: ikarus.boot should not be in /usr/local/bin
- ikarus.boot now goes to $prefix/lib/ikarus/ikarus.boot
  - location of bootfile is now hard-coded in the ikarus executable
  - pdf/README/COPYING/GPL-3 files go to $prefix/doc/ikarus/
  - Added a 1-line "scheme-script" script to bin.
2007-11-10 08:28:19 -05:00
Abdulaziz Ghuloum 62c0643c19 * Added bitwise-not. 2007-11-08 20:57:11 -05:00
Abdulaziz Ghuloum 1b103a4ab8 * bytevector-ieee-double-ref/set! now work 2007-11-07 04:54:54 -05:00
Abdulaziz Ghuloum 7dbce6e888 * Added bytevector-ieee-double-ref and bytevector-ieee-double-set!
(which does not yet support big endianness)
2007-11-07 01:26:38 -05:00
Abdulaziz Ghuloum 90a243ee63 * Fixed bug 160101: modulo produces "BUG: unsupported" 2007-11-05 02:24:39 -05:00
Abdulaziz Ghuloum b27bb61802 * Fixed some parts of bug 160101: modulo produces "BUG: unsupported"
* Modulo still fails on two bignum arguments, will fix later.
2007-11-04 23:01:41 -05:00
Abdulaziz Ghuloum 2c1e93f937 * Fixes bug 159774: typo in help. 2007-11-03 17:31:18 -04:00