Commit Graph

35 Commits

Author SHA1 Message Date
Abdulaziz Ghuloum 2a0e53dcb0 minor work on command-line:
- no dependence on ikarus
  - split tests from main library
2009-06-02 01:12:07 +03:00
Abdulaziz Ghuloum 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.

  Use cases include:
  * debugging a script.
  * starting ikarus in some predefined environment, e.g., 
       $ ikarus --r6rs-repl
    where contains (import (rnrs))

  Also, interaction-environment is made a parameter with an initial
  value set prior to entering the repl.
2009-05-31 13:32:33 +03:00
Abdulaziz Ghuloum 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]

- some cleanup in compiler to use the new include library instead of 
  "" which is no longer needed.
2009-05-30 10:46:45 +03:00
Abdulaziz Ghuloum 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).
2009-05-30 08:14:09 +03:00
Abdulaziz Ghuloum 1dd8e71a2c RC files:
  By default, ikarus now executes the file $HOME/.ikarusrc (which
  must be an R6RS script) (if it exists) before startup.

There is a default behavior for RC files which can be overriden by
command-line options.

Default RC files location:
  1. If the command-line argument --no-rcfile is set, the set of RC
     files is empty.
  2. Otherwise, if there is at least one --rcfile <filename> 
     command-line argument, the specified files are used as the set
     of RC files.  (--rcfile and --no-rcfile are mutually exclusive)
  3. Otherwise, if the environment variable IKARUS_RC_FILES is set,
     the colon-separated list of files are used as the RC files.
  4. Otherwise, if the file $HOME/.ikarusrc exists, only it is used.
  5. Otherwise, the set is empty.

The startup sequence is now:
  1. Setup the library path.
  2. Execute all RC files.
  3. Set command-line options (e.g., -O2, --debug, etc.).
  4. Set command-line-arguments.
  5. Proceed with normal operation (start repl, run an r6rs script,
     compile dependencies, etc.).
2009-05-28 13:29:07 +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 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 ffb5a815f8 fixed copyright year in banner. 2009-04-07 02:36:53 +03:00
Abdulaziz Ghuloum 0ec9c9536e added missing copyrights from scheme files. 2009-01-09 11:40:55 +03:00
Abdulaziz Ghuloum ce4dc64e0d made public source-position conditions and load-r6rs-script. 2008-12-27 00:36:13 -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 9c60997b02 - invoking ikarus in r6rs mode now takes optional library files
arguments as in
  $ ikarus <library-file> ... --r6rs-script <script-file> args ...
2008-11-01 16:19:35 -04:00
Abdulaziz Ghuloum c19b79927e - Changed set of library extensions to be:
("/main.ikarus.sls" "/" "/main.ikarus.scm"
     "/main.sls" "/" "/main.scm" ".ikarus.sls"
     "" ".ikarus.scm" ".sls" ".ss" ".scm")
  and updated documentation accordingly.
2008-10-22 21:15:12 -04:00
Abdulaziz Ghuloum 8cd9d6ef16 - supplying <init-files> for --r6rs-script or --script now raises an
error (as suggested by Derick Eddington).
- The -h or [-b <bootfile>] options must now come first, so,
  the rest of the command-line arguments are not scanned: only the
  first one or two.   The docs (in ikarus -h) already suggested the
  correct invocation arguments, so, this conforms to the previously
  documented behavior.
2008-10-18 17:49:20 -04:00
Abdulaziz Ghuloum 811c94361b - fixed bugs in pass-specify-rep where some (known) types were
unhandled causing compile time errors.
- fixed some bootstrapping issues with pointer? (which was moved out
  of the (ikarus) library)
- freshened up the bootfiles for both 32- and 64-bit version of
2008-10-12 01:15:20 -04:00
Abdulaziz Ghuloum 89d9a472a5 "darwin" is no longer hardcoded in lib/,
instead, it is obtained from the target info that autoconf
2008-09-24 23:18:35 -04:00
Abdulaziz Ghuloum 81a1a640df more progress on the AMD64 front, fixing more numeric and more cogen
64-bit bugs.
2008-07-18 22:21:57 -07:00
Abdulaziz Ghuloum 45346ef865 - Added cp0! including:
- (optimize-level [0,1,2])  and  ikarus -O[0,1,2]
       where -O0 = no optimizations
             -O1 = using old optimizer
             -O2 = using the new cp0 optimizer
       defaults to -O1 for now.
   - (cp0-size-limit n) which is the limit of the residual size for
     each inlining attempt
   - (cp0-effort-limit n) which is the limit on the effort expended 
     for each inlining attempt
- Rewrote the syntax-match macro to make use of the same technology
  used in syntax-case itself resulting in reduced code size.

- Added (system-value <symbol>) which returns the system value.
  E.g., (system-value 'car) => #<procedure car>
  This is pretty much the same as 
    (eval <symbol> (environment '(ikarus)))
  except that it does not involve compiling the expression or 
  consulting the library/expander systems.

- Fixed the fasl loader to make it understand complex numbers.
2008-06-28 02:25:44 -07:00
Abdulaziz Ghuloum 755843e251 196894: --compile-dependencies misnamed in error message 2008-03-01 21:14:35 -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 c430a91bb8 more preparations for separate compilation 2008-02-18 20:28:54 -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 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 (it's 2008!).
2008-01-21 01:01:28 -05:00
Abdulaziz Ghuloum fc2d958419 Ikarus now recognizes ".sls", ".ss", and ".scm" extensions as well
as ".ikarus.sls", "", and ".ikarus.scm".
2007-12-27 15:16:08 -05:00
Abdulaziz Ghuloum 8c0563b2d3 fixes bug 173369: errors are supposed to be &assertion 2007-12-15 08:22:49 -05:00
Abdulaziz Ghuloum 0644542565 Added a last-revision file and modified scheme/
2007-11-21 00:59:05 -05:00
Abdulaziz Ghuloum 728daddfc0 Fixes bug 163690: ikarus should display version number instead of
build date in the banner.

The version in bzr now displays:

Ikarus Scheme version 0.0.1+ (revision 1090, build 2007-11-19)
Copyright (c) 2006-2007 Abdulaziz Ghuloum

The shipped versions should display 

Ikarus Scheme version 0.0.2
Copyright (c) 2006-2007 Abdulaziz Ghuloum
2007-11-19 15:37:42 -05:00
Abdulaziz Ghuloum 9349c3a5cb Fixes bug 163681: Ikarus should have an IKARUS_LIBRARY_PATH 2007-11-19 13:34:24 -05:00
Abdulaziz Ghuloum 25555d7ff6 Added getenv, which takes a string and returns a string from the "unix"
  (getenv "HOME") => "/Users/aghuloum"
  (getenv "FOO")  => ""
2007-11-19 12:57:50 -05:00
Abdulaziz Ghuloum a7680d723d Extra libraries found in $pkglibdir can now be imported directly.
For example, (import (streams)) just works!
2007-11-18 22:46:00 -05:00
Abdulaziz Ghuloum 1bd2935e2b Fixes bug 163690: ikarus should display version number instead of
build date in the banner.
2007-11-18 20:22:11 -05:00
Abdulaziz Ghuloum e7d66d95b4 * Fixes bug 159776: --r6rs-script changes behavior of (command-line)
(command-line) now returns ("*interactive*" a b c) when you run
  ikarus -- a b c
2007-11-03 20:12:31 -04:00
Abdulaziz Ghuloum 6f576dc224 * Added license stubs to all *.ss and *.[ch] files. 2007-10-25 16:27:34 -04:00
Abdulaziz Ghuloum fdb664b61c renamed:
src/scheme => scheme
2007-10-17 20:07:10 -04:00