Commit Graph

  • 1f2b250ed9 fixed a bug in (not) handling variable-size frames in ikarus-exec. master Abdulaziz Ghuloum 2010-01-26 07:35:09 +0300
  • 943a72f01f fixed a bug in the register allocator that was rewriting mov8 mem1 -> mem2 to mov mem1 -> reg mov8 reg -> mem2 instead of mov8 mem1 reg mov reg mem2 which causes unaligned and invalid memory access when the address mem1 is at a page boundary and the next page is unmapped. Abdulaziz Ghuloum 2010-01-24 00:13:01 +0300
  • 64aca7c80b one more fix for 64-bit jumps and calls. Some conditional jumps required cross-code offsets which are now eliminated. Abdulaziz Ghuloum 2009-12-31 16:41:13 +0300
  • 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: Abdulaziz Ghuloum 2009-12-31 03:41:22 +0300
  • 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). Abdulaziz Ghuloum 2009-12-29 05:03:47 +0300
  • 84e0f4ab6d fixed bug in quasiquote when the symbols quasiquote, unquote, unquote-splicing are introduced. Abdulaziz Ghuloum 2009-10-21 08:55:42 +0300
  • 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. Abdulaziz Ghuloum 2009-10-19 23:28:36 +0300
  • 444aa9bbf0 annotation-expressions are now tracked independently of marks and shifts. Abdulaziz Ghuloum 2009-10-19 21:28:00 +0300
  • 5a2de815cb fixed bug in writing strings containing #\x85; and #\x2028;. Abdulaziz Ghuloum 2009-10-16 19:15:17 +0300
  • e10ea87a31 fixed a bug in "random" not terminating for large numbers Abdulaziz Ghuloum 2009-10-16 10:03:13 +0300
  • 858198b886 fixed a bug in using a precompiled variable transformers. Abdulaziz Ghuloum 2009-10-16 09:54:14 +0300
  • ad0612905a fixed bug in code generation for (fxarithmetic-shift-right x <n>) where <n> is unknown. Abdulaziz Ghuloum 2009-09-30 04:36:09 +0300
  • c375d537a3 added waiter-prompt-string parameter (chez compatible) Abdulaziz Ghuloum 2009-09-25 00:56:09 +0300
  • 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. Abdulaziz Ghuloum 2009-09-21 09:29:31 +0300
  • 4c2b13ebe0 fixed invalid code generation of (movl k0 (disp k1 k2)) which is invalid in X86_64. Abdulaziz Ghuloum 2009-09-12 22:20:07 +0300
  • 12f41f4a8a installed a workaround for a bug in libffi where it does not mark executable code with the PROT_EXEC protection flag. Abdulaziz Ghuloum 2009-09-07 00:04:24 +0300
  • 7fee24e09e libpthread is linked to ikarus automatically if the system has pthreads. Abdulaziz Ghuloum 2009-09-03 00:07:09 +0300
  • 4ce666c8d6 applied patch from andreas rottmann for providing "process*" which is the kitchen sink of subprocess creation. Abdulaziz Ghuloum 2009-09-02 22:47:57 +0300
  • f33e304606 updated to newer auto tools and fixed c32 and c64 to be more generic. Abdulaziz Ghuloum 2009-09-02 20:52:56 +0300
  • d231301e2f added workaround for missing CPP definitions on FreeBSD. Abdulaziz Ghuloum 2009-08-26 19:13:40 +0300
  • 399a428382 Added #include <limits.h> to src/ikarus-runtime.c. Abdulaziz Ghuloum 2009-08-26 18:50:55 +0300
  • 8adc203ded string-hash and string-ci-hash now return nonnegative fixnums only. Abdulaziz Ghuloum 2009-08-26 18:46:55 +0300
  • 57de27827a custom hashtables' hash functions can now return any exact integer, instead of returning nonnegative exact integers. Abdulaziz Ghuloum 2009-08-26 18:23:07 +0300
  • c0233db219 fixed the bahavior of fxaithmetic-shift{-left,-right,} when the shift amount is not in range and when the result overflows. Abdulaziz Ghuloum 2009-08-26 18:04:18 +0300
  • b1c9fda05c bytevector-{u,s}int-set! now err when the size argument is not positive. Abdulaziz Ghuloum 2009-08-26 16:40:59 +0300
  • 8bd012bfeb fx{+,-,*}/carry now chech that all their arguments are fixnums (causes segfaults when unchecked). Abdulaziz Ghuloum 2009-08-24 15:22:51 +0300
  • 402c4aa468 fixed bug in shift-left by multiples of 32/64 bits where the shifted data was misplaced in the resulting number. Abdulaziz Ghuloum 2009-08-03 20:55:14 +0300
  • 22dc82567d added a "warning" procedure, that's like assertion-violation and error except that it throws a warning via raise-continuable. Abdulaziz Ghuloum 2009-08-03 10:36:18 +0300
  • a884cc9ff7 fixed bytevector-ieee-double-{ref,set!} that use wrong endianness when the index is unaligned. Abdulaziz Ghuloum 2009-08-02 21:44:02 +0300
  • 7e5b27f822 wrong alignment check in bytevector-{s,u}64-set! fixed. Abdulaziz Ghuloum 2009-08-02 21:23:27 +0300
  • c67865ff09 alignment requirement for bytevector-u64-ref and bytevector-s64-ref is removed. Abdulaziz Ghuloum 2009-08-02 15:12:58 +0300
  • 97dfb20a53 fixed incorrect error message for non-real arguments to negative?, positive?, and abs. Abdulaziz Ghuloum 2009-08-02 15:00:54 +0300
  • e3ce873118 mantissa-width syntax of inexact numbers is now parsed and ignored. Abdulaziz Ghuloum 2009-08-02 14:01:35 +0300
  • 3e71a5aa5e fixed reading of polar notation Abdulaziz Ghuloum 2009-08-02 12:23:07 +0300
  • b2bca8a00a some refactoring of string-to-number parsers Abdulaziz Ghuloum 2009-08-02 10:47:39 +0300
  • 4df1dcb25a attempting to reference/modify unexportable bindings was crashing the expander instead of raising a proper error. fixed. Abdulaziz Ghuloum 2009-08-01 22:18:26 +0300
  • 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. Abdulaziz Ghuloum 2009-07-30 21:46:11 +0300
  • af233a2ac2 added post-gc-hooks, a list of thunks that are invoked after garbage collection. Abdulaziz Ghuloum 2009-07-30 14:19:46 +0300
  • 7d2c1b0b9e added missing punctuations that are allowd in scribble parens. Abdulaziz Ghuloum 2009-07-29 19:43:49 +0300
  • ac3581286f Ikarus now supports PLT's Scribble syntax! - The only thing unsupported is the transposition of punctuations, e.g., @`foo{bar} => `@foo{bar}. Abdulaziz Ghuloum 2009-07-29 19:07:03 +0300
  • cdea4e0942 added define-fluid-syntax and fixed fluid-let-syntax. Abdulaziz Ghuloum 2009-07-28 22:12:48 +0300
  • 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. Abdulaziz Ghuloum 2009-07-23 16:35:05 +0300
  • 9e764c76b4 - eqv? and equal? now guarantee #t when given two NaNs (unspecified by R6RS). Abdulaziz Ghuloum 2009-07-20 10:01:05 +0300
  • fe88c7bd0d fixed incorrect setting of IKARUS_LIBRARY_PATH. Abdulaziz Ghuloum 2009-07-06 13:20:09 +0300
  • 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, Abdulaziz Ghuloum 2009-07-06 12:14:08 +0300
  • cda06eba58 added a parameter to switch between different letrec handling routines Abdulaziz Ghuloum 2009-07-06 12:07:18 +0300
  • 832fe616d2 revived waddell's letrec/letrec* optimization Abdulaziz Ghuloum 2009-07-04 21:05:03 +0300
  • 7a6ae6322c added basic letrec/letrec* handling (as in the one defined in R5RS) Abdulaziz Ghuloum 2009-07-04 20:33:38 +0300
  • cc569cce64 letrec optimization moved into its own file. Abdulaziz Ghuloum 2009-07-04 19:47:15 +0300
  • 0cc2aae7dc added two aux libraries for parsing and formatting floating point numbers. Abdulaziz Ghuloum 2009-06-30 19:01:20 +0300
  • 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. Abdulaziz Ghuloum 2009-06-30 07:27:26 +0300
  • 7de0f39736 fixed floating point exception in (modulo <fx> 0). Abdulaziz Ghuloum 2009-06-30 04:10:51 +0300
  • 6e7f0ccf84 fixed a bug in get-bytevector-n! when n == 1. Abdulaziz Ghuloum 2009-06-30 03:51:01 +0300
  • b8cfdbbf66 bzr-snapshot more verbose Abdulaziz Ghuloum 2009-06-27 11:45:11 +0300
  • 5e26cf5313 added a script to extract latest development snapshot from bzr Abdulaziz Ghuloum 2009-06-27 10:22:04 +0300
  • f766b91fe8 make-string now signals an error if given a very large fixnum I.e., greater than (fxsra (greatest-fixnum) 1). Abdulaziz Ghuloum 2009-06-26 13:01:48 +0300
  • 9692eb097f Made libffi autodetectable as per bug 288748. Thanks to Andreas Rottmann for supplying the patch. Abdulaziz Ghuloum 2009-06-26 12:12:25 +0300
  • f5f61f60d3 Fixed tcp examples in lab directory. Thanks to Dudley Flanders for reporting this. Abdulaziz Ghuloum 2009-06-26 12:04:39 +0300
  • 30ac7870de the debugger now propagates nonserious conditions upwards instead of trapping on them. Abdulaziz Ghuloum 2009-06-26 11:33:32 +0300
  • 1803f9f23c fixed (modulo <bignum> 0) and (modulo <bignum> <largish-fixnum>) errors that caused either a segfault or returning an incorrect value. Abdulaziz Ghuloum 2009-06-26 11:15:02 +0300
  • f495665f7d changed "condition" to "exception" in debugger output. Abdulaziz Ghuloum 2009-06-26 11:05:40 +0300
  • d2cc4c65a3 put-string now takes the required optional arguments (same as put-bytevector) Abdulaziz Ghuloum 2009-06-26 10:52:56 +0300
  • 3d17aa7cf8 small cleanup to the reader. Abdulaziz Ghuloum 2009-06-26 10:07:26 +0300
  • 5e02972e7f enabled debug-scc flag for debugging the scc pass of the compiler (not useful for casual users) Abdulaziz Ghuloum 2009-06-14 12:06:48 +0300
  • 2a0e53dcb0 minor work on command-line: - no dependence on ikarus - split tests from main library Abdulaziz Ghuloum 2009-06-02 01:12:07 +0300
  • 471921fcc7 NEW: ikarus --r6rs-repl <script-name> runs the script according to the R6RS semantics, then starts a repl in an interaction environment made of everything visible (imported and defined) in the script. Abdulaziz Ghuloum 2009-05-31 13:32:33 +0300
  • 5f4151a2e9 moved port position into cookie instead of being its own vector. Abdulaziz Ghuloum 2009-05-30 13:34:18 +0300
  • 3099d1d629 moved output strings, file descriptors, and port mode into a port "cookie" Abdulaziz Ghuloum 2009-05-30 13:18:43 +0300
  • eec9453fc7 - if IKARUS_LIBRARY_PATH is set, "." is no longer added to library-path, so, whereever you set it, you should decide whether to include "." or exclude it. ["$prefix/lib/ikarus" is still added to the path so that multiple versions of ikarus can exist and each uses its own sources dir without interference] Abdulaziz Ghuloum 2009-05-30 10:46:45 +0300
  • ac0e583310 - include now resolves relative includes (where file name does not start with "/") according to library-path. Absolute paths are not resolved. Abdulaziz Ghuloum 2009-05-30 09:47:56 +0300
  • f13876d385 - removed include and include-into from (ikarus) library - moved include and include/lexical-context to their own (ikarus include) library (source only, not in boot image). Abdulaziz Ghuloum 2009-05-30 08:14:09 +0300
  • 2653cedee1 expand changed: - it now takes an optional environment (it was required) - it no longer returns a second value (list of libraries) - it's output is "pretty". Abdulaziz Ghuloum 2009-05-30 05:16:04 +0300
  • 83d8f051fe fixed minor bug in cogen of vector? Abdulaziz Ghuloum 2009-05-28 14:04:19 +0300
  • 1dd8e71a2c RC files: Abdulaziz Ghuloum 2009-05-28 13:29:07 +0300
  • 24ece86772 - Added stale-when: syntax: (stale-when guard-expr e* ...) ;; in definition context (stale-when guard-expr e e* ...) ;; in expression context Abdulaziz Ghuloum 2009-05-28 09:02:47 +0300
  • 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". Abdulaziz Ghuloum 2009-05-26 13:39:32 +0300
  • a050e28633 new boot files Abdulaziz Ghuloum 2009-05-26 13:00:03 +0300
  • 1d9a26cefd - changed fasl extension to be ".ikarus-32bit-fasl"/".ikarus-64bit-fasl" (depending on the target processor) instead of just ".ikarus-fasl". Abdulaziz Ghuloum 2009-05-26 12:04:55 +0300
  • 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. Abdulaziz Ghuloum 2009-05-26 01:14:11 +0300
  • 9cb0945f1f - Added file-real-path which is identical to realpath(3). Abdulaziz Ghuloum 2009-05-25 22:19:43 +0300
  • 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. Abdulaziz Ghuloum 2009-05-24 12:49:53 +0300
  • 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). Abdulaziz Ghuloum 2009-05-24 12:34:39 +0300
  • 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). Abdulaziz Ghuloum 2009-05-24 11:59:18 +0300
  • ae136274ed - the source-level optimizer now optimizes (inlining, constant-folding, etc.) across debug-calls. Abdulaziz Ghuloum 2009-05-21 18:43:28 +0300
  • b35f5a9e1d - trace-lambda and debug-call now interact properly and do not lose tail calls. Abdulaziz Ghuloum 2009-05-21 11:47:24 +0300
  • 8ef5eaeca2 - better error message for using make-c-callout and make-c-callback when ffi support is not enabled. Abdulaziz Ghuloum 2009-05-20 09:58:03 +0300
  • beb3845e9d - modified the ikarus debugger to use the same continuation frame structure as the one the tracer uses. Abdulaziz Ghuloum 2009-05-19 19:46:23 +0300
  • 1781866f1c - small change to how the tracer works internally and how it keeps track of continuation frames and trace depths. Abdulaziz Ghuloum 2009-05-19 13:16:59 +0300
  • a489f169ee - added trace-let Abdulaziz Ghuloum 2009-05-18 11:14:17 +0300
  • 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! Abdulaziz Ghuloum 2009-05-18 02:08:02 +0300
  • 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. Abdulaziz Ghuloum 2009-05-17 12:50:16 +0300
  • 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. Abdulaziz Ghuloum 2009-05-17 06:51:09 +0300
  • 391e2fa87b - ikarus interpreter improvements: - shows prettier traces (frame and reduction numbers, chopped strings, etc) - can be resumed after being suspended with ^C Abdulaziz Ghuloum 2009-05-16 09:57:37 +0300
  • fda2817a73 - ikarus interpreter (in lab directory) is now capable of bootstrapping ikarus Abdulaziz Ghuloum 2009-05-14 10:18:45 +0300
  • 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. Abdulaziz Ghuloum 2009-05-14 09:52:05 +0300
  • 39c8e8e23f removed source annotation from primitive procedures (which were not supposed to be there in the first place) Abdulaziz Ghuloum 2009-05-14 09:09:58 +0300
  • 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] Abdulaziz Ghuloum 2009-05-14 08:59:41 +0300
  • 1a738c2a8d - Added skeleton of an interpreter that accepts the same language as the compiler (i.e., the one produced by psyntax). Abdulaziz Ghuloum 2009-05-11 02:21:19 +0300
  • 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) Abdulaziz Ghuloum 2009-05-11 01:35:38 +0300
  • 7e965758cf Added memcpy (courtesy of Andreas Rottmann). Abdulaziz Ghuloum 2009-04-30 12:35:49 +0300