home | help
chibi-scheme(1) 	     General Commands Manual		 chibi-scheme(1)

NAME
     chibi-scheme - a tiny Scheme interpreter

SYNOPSIS
     chibi-scheme  [-qQrRfTV]  [-I  path ] [-A path ] [-D feature ] [-m module ]
     [-x module ] [-l file ] [-e expr ] [-p expr ] [-t module.id  ]  [-d  image-
     file ] [-i image-file ] [--] [ script argument ...  ]

DESCRIPTION
     chibi-scheme  is  a  sample  interactive  Scheme interpreter for the chibi-
     scheme library.  It serves as an example of how to  embed	chibi-scheme  in
     applications, and can be useful on its own for writing scripts and interac-
     tive development.

     When  script  is  given,  the script will be loaded with SRFI-22 semantics,
     calling the procedure main (if defined) with a single parameter as  a  list
     of  the  command-line arguments beginning with the script name.  This works
     as expected with shell #! semantics.

     Otherwise, if no script is given and no -e or -p options are given  an  in-
     teractive	repl  is entered, reading, evaluating, then printing expressions
     until EOF is reached.  The repl provided is very  minimal	-  if  you  want
     readline  completion  you	may  want to wrap it with the rlwrap(1) program.
     Signals aren't caught either - to enable handling keyboard  interrupts  you
     can  use  the  (chibi  process) module.  For a more sophisticated REPL with
     readline support, signal handling, module management and smarter read/write
     you may want to use the (chibi repl) module.  This can be launched automat-
     ically with: chibi-scheme -R .

     For convenience the default language is the (scheme  small)  module,  which
     includes  every  library  in the R7RS small standard, and transitively some
     other dependencies.  All of this together is actually quite large, so for a
     more minimal startup language you'll want to use the -x module  option  de-
     scribed  below.  To get a mostly R5RS-compatible language, use chibi-scheme
     -xscheme.r5rs or to get just the core language used for bootstrapping,  use
     chibi-scheme -xchibi or its shortcut chibi-scheme -q .

OPTIONS
     Space is optional between options and their arguments.  Options without ar-
     guments may not be chained together.

     To  reduce the need for shell escapes, options with module arguments ( -m ,
     -x and -R ) are written in a dot notation, so that the module (foo bar)  is
     written as foo.bar .

     -V   Prints the version information and exits.

     -q   "Quick"  load,  shortcut  for  chibi-scheme -xchibi This is a slightly
	  different language from (scheme base), which may load faster,  and  is
	  guaranteed not to load any additional shared libraries.

     -Q   Extra  "quick"  load,  shortcut for chibi-scheme -xchibi.primitive The
	  resulting environment will only contain the core syntactic  forms  and
	  primitives  coded  in C.  This is very fast and guaranteed not to load
	  any external files, but is also very limited.

     -r[main]
	  Run the "main" procedure  when  the  script  finishes  loading  as  in
	  SRFI-22.

     -R[module]
	  Loads the given module and runs the "main" procedure it defines (which
	  need	not  be exported) with a single argument of the list of command-
	  line arguments as in SRFI-22.  The name "main" can be overridden  with
	  the  -r option.  [module] may be omitted, in which case it defaults to
	  chibi.repl.  Thus chibi-scheme -R is the recommended means  to  obtain
	  the advanced REPL.

     -s   Strict mode, escalating warnings to fatal errors.

     -f   Change the reader to case-fold symbols as in R5RS.

     -T   Disables  tail-call optimization.  This can be useful for debugging in
	  some cases, but also makes it very likely to overflow the stack.

     -hsize[/max_size]
	  Specifies the initial size of the heap, in bytes, optionally	followed
	  by  the  maximum  size  the heap can grow to.  size can be any integer
	  value, optionally suffixed by "K", for kilobytes, "M"  for  megabytes,
	  or  "G"  for gigabytes.  -h must be specified before any options which
	  load or evaluate Scheme code.

     -Ipath
	  Inserts path on front of the load path list.

     -Apath
	  Appends path to the load path list.

     -Dfeature
	  Adds feature to the feature list, useful for cond-expanding  different
	  library code.

     -mmodule

     -xmodule
	  Imports module as though "(import module )" were evaluated.  If the -x
	  version  is used, then module replaces the current environment instead
	  of being added to it.

     -lfile
	  Loads the Scheme source from the file file searched for in the default
	  load path.

     -eexpr
	  Evaluates the Scheme expression expr.

     -pexpr
	  Evaluates the Scheme expression expr then prints the result to stdout.

     -tmodule.id
	  Enables tracing for the given identifier id in the module module.

     -dimage-file
	  Dumps the current Scheme heap to image-file and exits.   This  feature
	  is still experimental.

     -iimage-file
	  Loads  the  Scheme  heap from image-file instead of compiling the init
	  file on the fly.  This feature is still experimental.

     -b   Makes stdio nonblocking (blocking by	default).  Only  available  when
	  lightweight threads are enabled.

ENVIRONMENT
     CHIBI_MODULE_PATH
	    A  colon  separated  list of directories to search for module files,
	    inserted  before  the  system  default  load  paths.    chibi-scheme
	    searches for modules in directories in the following order:

	       directories included with the -I path option

	       directories included from CHIBI_MODULE_PATH

	       system directories

	       directories included with -A path option

	    If	CHIBI_MODULE_PATH is unset, the directories "./lib", and "." are
	    searched in order. Set to empty to only consider -I, system directo-
	    ries and -A.

     CHIBI_IGNORE_SYSTEM_PATH
	    If set to anything but "0", system directories (as listed above) are
	    not included in the search paths.

AUTHORS
     Alex Shinn (alexshinn @ gmail . com)

SEE ALSO
     More  detailed  information  can  be  found  in  the  manual  included   in
     doc/chibi.scrbl included in the distribution.

     The chibi-scheme home-page:
     https://github.com/ashinn/chibi-scheme/

4th Berkeley Distribution					 chibi-scheme(1)

home | help