Commit Graph

651 Commits

Author SHA1 Message Date
Abdulaziz Ghuloum f759815a8c - Ikarus now recognizes IKARUS_FASL_DIRECTORY (and the corresponding
fasl-directory parameter) that works as follows:
  - if IKARUS_FASL_DIRECTORY is set to "", no fasl files are produced.
  - if IKARUS_FASL_DIRECTORY is set to something other than "", the
    string is used as a directory in which fasl files are placed.
  - if IKARUS_FASL_DIRECTORY is unset, the directory 
    $HOME/.ikarus/precompiled is used for fasl output.
  - library file names are cannonicalized using file-real-path.
  - the fasl file (if produced) is the result of
     (string-append (fasl-directory) (file-real-path filename) ext)
    where ext is either ".ikarus-32bit-fasl" or ".ikarus-64bit-fasl".

- The old behavior (placing the fasl files in the same place as the
  library files) can be achieved by setting IKARUS_FASL_DIRECTORY='/'.
2009-05-26 13:39:32 +03:00
Abdulaziz Ghuloum a050e28633 new boot files 2009-05-26 13:00:03 +03:00
Abdulaziz Ghuloum 1d9a26cefd - changed fasl extension to be ".ikarus-32bit-fasl"/".ikarus-64bit-fasl"
(depending on the target processor) instead of just ".ikarus-fasl".
2009-05-26 12:04:55 +03:00
Abdulaziz Ghuloum 5e5cbfe18b - Added make-directory* (like make-directory, but builds the whole
directory structure recursively) 
- Added split-file-name (takes a string, returns two values: the
  substring before the final "/" and the string after it).
- Fixed a minor bug in file-directory?, file-exists?, etc. that were
  failing on OS X if part of the path given was not a directory.
  E.g., if /tmp/foo is a regular file, (file-directory? "/tmp/foo/bar")
  was raising an exception instead of returning #f.
2009-05-26 01:14:11 +03:00
Abdulaziz Ghuloum 9cb0945f1f - Added file-real-path which is identical to realpath(3). 2009-05-25 22:19:43 +03:00
Abdulaziz Ghuloum 27112fec4e fixed bug that produced an incorrect assertion violation for
(put-bytevector! port bv i j) where i = (bytevector-length bv).
Thanks to Andreas Rottmann.
2009-05-24 12:49:53 +03:00
Abdulaziz Ghuloum ec76547da0 - procedures made with defun-style definitions now have proper
source annotation (pointing to the identifier that's the name of
  the procedure, instead of the define keyword itself).
2009-05-24 12:34:39 +03:00
Abdulaziz Ghuloum f3b071548d - improved debugger speed when debug-calling a primitive operation.
Ack now runs only 80 times slower in debug mode (down from 360
  times), and bootstrapping is now done in 170 seconds instead of
  500 (nondebug time is still less than 8 seconds).
2009-05-24 11:59:18 +03:00
Abdulaziz Ghuloum ae136274ed - the source-level optimizer now optimizes (inlining,
constant-folding, etc.) across debug-calls.
2009-05-21 18:43:28 +03:00
Abdulaziz Ghuloum b35f5a9e1d - trace-lambda and debug-call now interact properly and do not lose
tail calls.
2009-05-21 11:47:24 +03:00
Abdulaziz Ghuloum 8ef5eaeca2 - better error message for using make-c-callout and make-c-callback
when ffi support is not enabled.
2009-05-20 09:58:03 +03:00
Abdulaziz Ghuloum beb3845e9d - modified the ikarus debugger to use the same continuation frame
structure as the one the tracer uses.
2009-05-19 19:46:23 +03:00
Abdulaziz Ghuloum 1781866f1c - small change to how the tracer works internally and how it keeps
track of continuation frames and trace depths.
2009-05-19 13:16:59 +03:00
Abdulaziz Ghuloum a489f169ee - added trace-let 2009-05-18 11:14:17 +03:00
Abdulaziz Ghuloum ff25a484fb - Added -d (--debug) flag that enables debugging at the repl, r6rs
scripts, and compiling dependencies.  This is the first stab at
  the debugger.  It's SLOW!
2009-05-18 02:08:02 +03:00
Abdulaziz Ghuloum dbf0b07f13 - added lab/ikarus.debugger.ss which is more usable (faster) than
the interpreter and is closer to how the compiler would handle
  debugging calls.
2009-05-17 12:50:16 +03:00
Abdulaziz Ghuloum 2929379460 - debugging in interpreter is changed to use continuation frames
dynamically instead of performing context-sensitive transformation
  to determine tail/nontail calls.
- interpreter now has options to reraise, continue, or quit.
2009-05-17 06:51:09 +03:00
Abdulaziz Ghuloum 391e2fa87b - ikarus interpreter improvements:
- shows prettier traces (frame and reduction numbers, chopped
    strings, etc)
  - can be resumed after being suspended with ^C
2009-05-16 09:57:37 +03:00
Abdulaziz Ghuloum fda2817a73 - ikarus interpreter (in lab directory) is now capable of
bootstrapping ikarus
2009-05-14 10:18:45 +03:00
Abdulaziz Ghuloum 3207e14fca - psyntax now produces
`(annotated-call ,annotation ,rator ,rands ...)
   form for cases when there is an annotation attached to the procedure
   call.  The compiler just stripps it out and makes no use of it.
2009-05-14 09:52:05 +03:00
Abdulaziz Ghuloum 39c8e8e23f removed source annotation from primitive procedures (which were not
supposed to be there in the first place)
2009-05-14 09:09:58 +03:00
Abdulaziz Ghuloum 370454e4fc - fixed a small bug in the compile. [use of struct-ref with an
index out of range, generated by improper use of struct-match]
2009-05-14 08:59:41 +03:00
Abdulaziz Ghuloum 1a738c2a8d - Added skeleton of an interpreter that accepts the same language as
the compiler (i.e., the one produced by psyntax).
2009-05-11 02:21:19 +03:00
Abdulaziz Ghuloum 7002046c8e - added a way of making annotated procedures without invoking the
compiler.   (useful for a future project)
- refershed all boot files (because of added primitives)
- regenerated some autoconf files (to use newer version)
2009-05-11 01:35:38 +03:00
Abdulaziz Ghuloum 7e965758cf Added memcpy (courtesy of Andreas Rottmann).
The `memcpy' procedure allows to copy memory from bytevectors to
  unmanaged (malloc'ed) memory and vice-versa.
2009-04-30 12:35:49 +03:00
Abdulaziz Ghuloum 2f4a2f3895 The code for converting signed long long numbers to scheme bignums
was broken (on 32-bits, the 64-bit value was put in a bignum of 1
limb instead of 2).  Thanks to Andreas Rottmann for reporting it.
2009-04-30 12:25:17 +03:00
Abdulaziz Ghuloum a7f544a4b8 Added a test (thanks to Michele Simionato) that exhibits the
previous bug.
2009-04-27 10:15:35 +03:00
Abdulaziz Ghuloum 5b2fca49e6 fixed bug in expansion of expressions in interaction environment
where id->label was prematurely interning identifiers in the
environment.  Now, there is id->label/intern that does that and it's
only used when an identifier's type is resolved and not at other
times (like in free-id=? and bount-id=?).
2009-04-27 09:59:23 +03:00
Abdulaziz Ghuloum 2924c91788 fixed bug in ypsilon-compat where char** pointers were not
initialized properly in 64-bit.  Thanks to Tristan Ravitch.
2009-04-13 16:43:20 +03:00
Abdulaziz Ghuloum 810fe75fa1 - hashtable-hash-function used to return an incorrect hash function
that the one supplied to make-hashtable; fixed.
- div and mod raise an error, rather than an assertion when given 
  zero second argument; fixed.
2009-04-11 21:39:53 +03:00
Abdulaziz Ghuloum 6bab4af5b4 Added [un]signed-long-long types as valid parameter types to
callouts and callbacks (in both 32 and 64 bit modes). (UNTESTED)
2009-04-11 02:16:00 +03:00
Abdulaziz Ghuloum a44a00b405 Applied patch that fixes bug: dirent->d_namlen not available on
linux.  Thanks Derick Eddington.
2009-04-09 23:55:44 +03:00
Abdulaziz Ghuloum d63a9c1f51 Added open-directory-steam, directory-stream?, read-directory-stream,
and close-directory-stream as per bug 315804.
2009-04-09 12:29:50 +03:00
Abdulaziz Ghuloum 72b86818f0 = now handles complex numbers properly. 2009-04-07 12:05:03 +03:00
Abdulaziz Ghuloum ffb5a815f8 fixed copyright year in banner. 2009-04-07 02:36:53 +03:00
Abdulaziz Ghuloum bcff57fa52 fixed a bug in internal definitions of with-syntax (again). 2009-04-07 02:33:09 +03:00
Abdulaziz Ghuloum 56ec093e05 make distcheck now works. Many thanks to Andreas Rottmann (rotty)
for the patches.
2009-04-07 02:15:32 +03:00
Abdulaziz Ghuloum 3aad0fbe0b inexact->exact and exact now hangle compnums and cflonums properly. 2009-04-06 17:41:28 +03:00
Abdulaziz Ghuloum 65dc2bc40d trace-define now does not raise an error when given a non-procedure 2009-04-06 17:21:56 +03:00
Abdulaziz Ghuloum 7d6316f723 fixed error in division in (/ 0 <bignum>) 2009-04-06 17:14:57 +03:00
Abdulaziz Ghuloum 4ca8b1add2 fixed bugs in format when given inexact and complex arguments to ~d,
~b, ~x, and ~o.
2009-04-06 16:52:11 +03:00
Abdulaziz Ghuloum 0c96321f20 fixed definitions of last clauses in cond and case macros. 2009-04-06 16:36:07 +03:00
Abdulaziz Ghuloum af46220d64 fixed definition of with-syntax to allow internal definitions. 2009-04-06 16:30:23 +03:00
Abdulaziz Ghuloum 5e1066170e changed definition of ref in order to work around a bug in gcc-4.2.2
at -O3 that was computing incorrect addresses for ref(x, -n).
2009-04-06 16:24:12 +03:00
Abdulaziz Ghuloum 230b5186d6 fixed a bug in converting out parameters in the ypsilon-compat
layer.  Thanks to Ed Cavazos for the patch.
2009-04-06 10:14:33 +03:00
Abdulaziz Ghuloum b97cbf1688 Fixed environ. The procedure environ takes no arguments and returns
an association list where both keys and values and strings found in
the posix environment.
2009-04-06 09:59:07 +03:00
Abdulaziz Ghuloum 1d25a3db07 fixed rounding error for flonums (now rounding to even as required). 2009-02-06 23:46:12 +03:00
Abdulaziz Ghuloum a59aede042 removed streams and pregexp libraries from lib directory 2009-01-09 11:46:52 +03:00
Abdulaziz Ghuloum 0ec9c9536e added missing copyrights from scheme files. 2009-01-09 11:40:55 +03:00
Abdulaziz Ghuloum f6333ff13b - added (ikarus ipc) library
- added copyright notices for (ikarus foreign) and (ikarus ipc).
2009-01-09 10:53:39 +03:00
Abdulaziz Ghuloum a28e67c7c2 - completed section on IPC.
- changed the order of returned values for tcp-connect[-nonblocking]
  and accept-connection[-nonblocking] so that you get an input and
  output ports in that order (making it a little easier to rememeber).
2009-01-09 10:45:27 +03:00
Abdulaziz Ghuloum 735803a312 fixed a bug in parsing UnicodeData.txt (not accounting for <First>
and <Last> special tokens.
2009-01-05 06:21:02 +03:00
Abdulaziz Ghuloum 2adc9cb85d Applied patch for "make-hard-link". Thanks to Andreas Rottmann. 2009-01-03 20:36:53 -05:00
Abdulaziz Ghuloum 71c707df50 missing library file errors now print import trace. 2009-01-03 20:23:33 -05:00
Abdulaziz Ghuloum 1ebd4f4d9a fixed minor bug in "->inexact" helper. 2009-01-03 20:03:04 -05:00
Abdulaziz Ghuloum 6dca996f3a fixed bug in fasl-reading unicode chars in 64-bit mode. 2009-01-03 19:57:19 -05:00
Abdulaziz Ghuloum f5f6af8bd7 fixed compile error for (vector-set! (vector 0) 0.0 'foo). 2009-01-03 19:48:23 -05:00
Abdulaziz Ghuloum 5946459630 fixed bug in guard (now allowing definitions and expressions in <body>) 2009-01-02 17:55:01 -05:00
Abdulaziz Ghuloum 2658e6395d made apropos symbols come out in order (as in symbol<? order) 2008-12-27 13:48:49 -05:00
Abdulaziz Ghuloum 264156f305 added an apropos command 2008-12-27 13:13:45 -05:00
Abdulaziz Ghuloum ce4dc64e0d made public source-position conditions and load-r6rs-script. 2008-12-27 00:36:13 -05:00
Abdulaziz Ghuloum 930c713b76 added missing assertion check for (fxdiv (least-fixnum) -1)
and (fxdiv-and-mod (least-fixnum) -1).
2008-12-25 21:00:14 -05:00
Abdulaziz Ghuloum 2be7d93637 - Added (syntax-transpose syntax-object base-id new-id-object).
It returns syntax-object wrapped with the marks and substitutions
  that have been added to new-id since its introduction as base-id.
  The new-id and base-id should be free-identifier=? and new-id
  should have the same (or more) marks as base-id.
2008-12-25 16:33:50 -05:00
Abdulaziz Ghuloum 788762da44 eq- and eqv-hashtables are now fasl-writable. 2008-12-23 21:40:09 -05:00
Abdulaziz Ghuloum 4918b0e965 added setenv and unsetenv to (ikarus). 2008-12-23 20:58:46 -05:00
Abdulaziz Ghuloum 05180035f2 fixed &who for the error condition when uint-list->bytevector is
given a nonpositive size.
2008-12-23 20:44:47 -05:00
Abdulaziz Ghuloum 82b7edcf14 fixed fprintf line in scheme-script.c 2008-12-23 20:41:12 -05:00
Abdulaziz Ghuloum 0bd854dedf fixed bug where put-bytevector was advancing the port index twice as
far as needed.
2008-12-17 15:42:28 -05:00
Abdulaziz Ghuloum c2047badb9 - fixed problem where interned symbols were being gc-ed incorrectly 2008-12-17 14:59:03 -05:00
Abdulaziz Ghuloum e8d727c8a5 added printing of progress for guardians test (which takes along time) 2008-12-13 07:33:25 -05:00
Abdulaziz Ghuloum 3ad5c2fc80 fixed the &who in error of [us]int-list->bytevector. 2008-12-13 07:02:17 -05:00
Abdulaziz Ghuloum 818d15a080 fixed a bug in ffi callouts when the type is [un]signed-long on 32-bit. 2008-12-13 06:34:01 -05:00
Abdulaziz Ghuloum f8efdfc848 fixed buffer overrun problem when printing a char to an unbuffered
port is interrupted.
2008-12-12 16:03:10 -05:00
Abdulaziz Ghuloum 026fd6f446 added tests to ensure that symbols are gcable. 2008-12-10 03:18:33 -05:00
Abdulaziz Ghuloum 279618fde2 added simple regression test for guardians. 2008-12-10 03:03:49 -05:00
Abdulaziz Ghuloum e315324cbf added set-port-position! for string and bytevector input ports. 2008-12-09 05:27:50 -05:00
Abdulaziz Ghuloum eec9567014 - added "output-port-buffer-mode" which returns "none" or "block".
(there is no line buffering yet)
- updated error message when using unimplemented features.
2008-12-09 04:46:43 -05:00
Abdulaziz Ghuloum b31454d592 added more tests for set/get position 2008-12-09 03:47:08 -05:00
Abdulaziz Ghuloum d6a950ae23 added set-port-position! for binary input files. 2008-12-09 03:41:59 -05:00
Abdulaziz Ghuloum aba76624b2 added set-port-position! for binary output files. 2008-12-09 03:00:44 -05:00
Abdulaziz Ghuloum 4861daf6fc fixed bug in port-position returning 0 for
(port-position 
    (let ([p (open-string-input-port "Hello")]) (read p) p))
2008-12-09 02:06:46 -05:00
Abdulaziz Ghuloum 8a277aa95a fixed parsing of complex numbers in the form <float>+/-<cmpn>i
where the <float> is in scientific notation.
2008-12-08 06:41:39 -05:00
Abdulaziz Ghuloum a2e78a87d1 fixed error message when typing #toops 2008-12-08 06:28:41 -05:00
Abdulaziz Ghuloum 5f1a3ab765 supressed warning about "round undefined" in src/ikarus-flonums.c. 2008-12-08 03:01:18 -05:00
Abdulaziz Ghuloum 6041597a27 CTRL-C while in the repl now throws back into the repl no matter
where an exception occurs.
2008-12-08 02:13:40 -05:00
Abdulaziz Ghuloum 75d2756bd2 fixed serious GC bug that's exhibited when guardians have protected
objects that survive 256 collections.
2008-12-08 01:43:23 -05:00
Abdulaziz Ghuloum 1931c37f36 removed definition of inthash from ikarus-data.h. (not used anywhere) 2008-12-07 21:22:28 -05:00
Abdulaziz Ghuloum 7e5b31e98c - bootstrapping fails if IKARUS_LIBRARY_PATH is not set due to
change in behavior of getenv (returning #f if unset).  Fixed.
2008-12-07 19:03:07 -05:00
Abdulaziz Ghuloum f7d1d6b6a3 unused (garbage) symbols can be reclaimed now 2008-12-06 12:40:18 -05:00
Abdulaziz Ghuloum b037b1b671 getenv now returns #f for unset environment variables. 2008-12-05 02:19:26 -05:00
Abdulaziz Ghuloum 73f045a6c3 Added export for pointer-set-c-long-long! from (ikarus foreign) 2008-12-05 02:09:50 -05:00
Abdulaziz Ghuloum ca6b181fa1 added pointer-value as a first-class primitive. 2008-12-05 01:48:49 -05:00
Abdulaziz Ghuloum c15f3d5e0d repl printing is now interruptable without exiting ikarus 2008-12-03 00:52:38 -05:00
Abdulaziz Ghuloum d35f039ca1 ikrt_last_errno moved to ikarus-runtime where it belongs 2008-11-26 05:03:16 -05:00
Abdulaziz Ghuloum d88babf935 fixed bug in fasl-reading #0=((x . #0#) (y . z)) 2008-11-26 01:40:01 -05:00
Abdulaziz Ghuloum 3049d3d22e Added errno. 2008-11-25 22:52:26 -05:00
Abdulaziz Ghuloum 55974d44fa fixed a bug in the definition of andmap in match, and made it export
match+ and trace-match+.
2008-11-25 04:21:51 -05:00
Abdulaziz Ghuloum 5ba29fe3aa - added missing import into (ikarus foreign)
- fixed compiler bug in compiler (impose-evaluation-order was not
  stripping all annotations).
2008-11-23 15:26:12 -05:00
Abdulaziz Ghuloum 6922b0d9c2 added pointer-ref-{unsigned-,}long-long 2008-11-21 05:56:51 -05:00
Abdulaziz Ghuloum f216ed5893 - fixed a few typos, disabled debugging in assembler-output, fixed
condition printing
2008-11-21 05:19:01 -05:00