Changeset 33130 in project


Ignore:
Timestamp:
01/24/16 15:54:40 (4 years ago)
Author:
sjamaan
Message:

Sync wiki manual with core 4.10.0 changes (which was apparently forgotten when we made the release...)

Location:
wiki/man/4
Files:
25 edited

Legend:

Unmodified
Added
Removed
  • wiki/man/4/Accessing external objects

    r30951 r33130  
    168168<macro>(foreign-primitive [RETURNTYPE] ((ARGTYPE VARIABLE) ...) STRING ...)</macro>
    169169
    170 This is also similar to {{foreign-lambda*}} but the code will be executed
    171 in a ''primitive'' CPS context, which means it will not actually return, but
    172 call its continuation on exit. This means that code inside this form may
    173 allocate Scheme data on the C stack (the ''nursery'') with {{C_alloc}}
    174 (see below). If the {{RETURNTYPE}} is omitted it defaults to {{void}}.
    175 You can return multiple values inside the body of the {{foreign-primitive}}
    176 form by calling this C function:
     170This is also similar to {{foreign-lambda*}} but the code will be
     171executed in a ''primitive'' CPS context, which means it will not
     172actually return, but call its continuation on exit. This means that code
     173inside this form may allocate Scheme data on the C stack (the
     174''nursery'') with {{C_alloc}} (see below). You can return multiple
     175values inside the body of the {{foreign-primitive}} form by calling this
     176C function:
    177177
    178178<enscript highlight=scheme>
     
    193193* building up lists or other complex Scheme structures from individual pairs, or putting non-immediate objects into vectors, is cumbersome in C
    194194
    195 So some would advise you to just return a pointer to Scheme, use memcpy or any other function(s) which you need to get the data into Chicken-managed memory and into the desired kind of data structure, then free the C data.  For this example, we are trying to return an array of doubles into an f64vector; we can accomplish that by adding a specialized copy function to the C library being integrated:
     195So some would advise you to just return a pointer to Scheme, use memcpy or any other function(s) which you need to get the data into CHICKEN-managed memory and into the desired kind of data structure, then free the C data.  For this example, we are trying to return an array of doubles into an f64vector; we can accomplish that by adding a specialized copy function to the C library being integrated:
    196196
    197197<enscript highlight=C>
  • wiki/man/4/Acknowledgements

    r32818 r33130  
    55Many thanks to Jules Altfas, Nico Amtsberg, Alonso Andres, William
    66Annis, Jason E. Aten, Marc Baily, Peter Barabas, Andrei Barbu, Jonah
    7 Beckford, Arto Bendiken, Kevin Beranek, Peter Bex, Jean-Francois
    8 Bignolles, Oivind Binde, Alaric Blagrave-Snellpym, Dave Bodenstab,
    9 Fabian Böhlke, T. Kurt Bond, Ashley Bone, Dominique Boucher, Terence
    10 Brannon, Roy Bryant, Adam Buchbinder, Hans Bulfone, "Category 5",
    11 Taylor Campbell, Naruto Canada, Mark Carter, Esteban U. Caamano
    12 Castro, Semih Cemiloglu, Franklin Chen, Joo ChurlSoo, Thomas Chust,
    13 Gian Paolo Ciceri, Fulvio Ciriaco, Paul Colby, Tobia Conforto, John
    14 Cowan, Grzegorz Chrupala, James Crippen, Evan Hanson, Adhi Hargo,
    15 Moritz Heidkamp, Tollef Fog Heen, Drew Hess, Alejandro Forero Cuervo,
    16 Peter Danenberg, Linh Dang, Brian Denheyer, Sean D'Epagnier, "dgym",
    17 "Don", Chris Double, "Brown Dragon", David Dreisigmeyer, Jarod Eells,
    18 Petter Egesund, Stephen Eilert, Steve Elkins, Daniel B. Faken, Erik
    19 Falor, Will Farr, Graham Fawcett, Marc Feeley, "Fizzie", Matthew
    20 Flatt, Kimura Fuyuki, Tony Garnock-Jones, Martin Gasbichler, Abdulaziz
    21 Ghuloum, Joey Gibson, Stephen C. Gilardi, Mario Domenech Goulart,
    22 Joshua Griffith, Johannes Groedem, Damian Gryski, Matt Gushee, Andreas
    23 Gustafsson, Sven Hartrumpf, Jun-ichiro itojun Hagino, Ahdi Hargo,
    24 Matthias Heiler, Karl M. Hegbloom, William P. Heinemann, Bill Hoffman,
    25 Bruce Hoult, Hans HÃŒbner, Markus HÃŒlsmann, Götz Isenmann, Paulo
    26 Jabardo, Wietse Jacobs, David Janssens, Christian JÀger, Matt Jones,
    27 Dale Jordan, Valentin Kamyshenko, Daishi Kato, Peter Keller, Christian
    28 Kellermann, Brad Kind, Ron Kneusel, Matthias Köppe, Krysztof
    29 Kowalczyk, Andre KÃŒhne, Todd R. Kueny Sr, Goran Krampe, David
    30 Krentzlin, Ben Kurtz, Michele La Monaca, Micky Latowicki, Kristian
    31 Lein-Mathisen, John Lenz, Kirill Lisovsky, JÃŒrgen Lorenz, Kon Lovett,
    32 Lam Luu, Vitaly Magerya, Leonardo Valeri Manera, Claude Marinier,
    33 Dennis Marti, Charles Martin, Bob McIsaac, "megane", Alain Mellan,
    34 Eric Merrit, Perry Metzger, Scott G. Miller, Mikael, Karel Miklav,
    35 Bruce Mitchener, Fadi Moukayed, Chris Moline, Eric E. Moore, Julian
    36 Morrison, Dan Muresan, David N. Murray, Timo MyyrÀ, "nicktick", Lars
    37 Nilsson, Ian Oversby, "o.t.", Gene Pavlovsky, Levi Pearson, Jeronimo
    38 Pellegrini, Nicolas Pelletier, Derrell Piper, Carlos Pita, "Pluijzer",
    39 Robin Lee Powell, Alan Post, "Pupeno", Davide Puricelli, "presto",
    40 Doug Quale, Imran Rafique, Eric Raible, Ivan Raikov, Santosh Rajan,
    41 Joel Reymont, "rivo", Chris Roberts, Eric Rochester, Paul Romanchenko,
    42 Andreas Rottman, David Rush, Lars Rustemeier, Daniel Sadilek, Otavio
    43 Salvador, Burton Samograd, "Sandro", "satori", Aleksej Saushev, Oskar
    44 Schirmer, Reed Sheridan, Ronald Schröder, Spencer Schumann, Ivan
    45 Shcheklein, Alex Shinn, Ivan Shmakov, "Shmul", Tony Sidaway, Jeffrey
    46 B. Siegal, Andrey Sidorenko, Michele Simionato, Iruata Souza, Volker
    47 Stolz, Jon Strait, Dorai Sitaram, Robert Skeels, Jason Songhurst,
    48 Clifford Stein, David Steiner, Sunnan, Zbigniew Szadkowski, Rick
    49 Taube, Nathan Thern, Mike Thomas, Minh Thu, Christian Tismer, Andre
    50 van Tonder, John Tobey, Henrik Tramberend, Vladimir Tsichevsky, James
    51 Ursetto, Neil van Dyke, Sam Varner, Taylor Venable, Sander Vesik,
    52 Jaques Vidrine, Panagiotis Vossos, Shawn Wagner, Peter Wang, Ed
    53 Watkeys, Brad Watson, Thomas Weidner, Göran Weinholt, Matthew Welland,
    54 Drake Wilson, Jörg Wittenberger, Peter Wright, Mark Wutka, Adam Young,
    55 Richard Zidlicky, Houman Zolfaghari and Florian Zumbiehl for
    56 bug-fixes, tips and suggestions.
     7Beckford, Arto Bendiken, Andy Bennett, Kevin Beranek, Peter Bex,
     8Jean-Francois Bignolles, Oivind Binde, Alaric Blagrave Snell-Pym, Dave
     9Bodenstab, Fabian Böhlke, T. Kurt Bond, Ashley Bone, Dominique Boucher,
     10Terence Brannon, Roy Bryant, Adam Buchbinder, Hans Bulfone, "Category
     115", Taylor Campbell, Naruto Canada, Mark Carter, Esteban U. Caamano
     12Castro, Semih Cemiloglu, Alex Charlton, Franklin Chen, Joo ChurlSoo,
     13Thomas Chust, Gian Paolo Ciceri, Fulvio Ciriaco, Paul Colby, Tobia
     14Conforto, John Cowan, Grzegorz Chrupala, James Crippen, Evan Hanson,
     15Adhi Hargo, Moritz Heidkamp, Tollef Fog Heen, Drew Hess, Alejandro
     16Forero Cuervo, Peter Danenberg, Linh Dang, Brian Denheyer, Sean
     17D'Epagnier, "dgym", "Don", Chris Double, "Brown Dragon", David
     18Dreisigmeyer, Jarod Eells, Petter Egesund, Stephen Eilert, Steve
     19Elkins, Daniel B. Faken, Erik Falor, Will Farr, Graham Fawcett, Marc
     20Feeley, "Fizzie", Matthew Flatt, Kimura Fuyuki, Tony Garnock-Jones,
     21Martin Gasbichler, Abdulaziz Ghuloum, Joey Gibson, Stephen C. Gilardi,
     22Mario Domenech Goulart, Joshua Griffith, Johannes Groedem, Damian
     23Gryski, Matt Gushee, Andreas Gustafsson, Sven Hartrumpf, Jun-ichiro
     24itojun Hagino, Ahdi Hargo, Matthias Heiler, Karl M. Hegbloom, William
     25P. Heinemann, Bill Hoffman, Bruce Hoult, Hans HÃŒbner, Markus HÃŒlsmann,
     26Götz Isenmann, Paulo Jabardo, Wietse Jacobs, David Janssens, Christian
     27JÀger, Matt Jones, Dale Jordan, Valentin Kamyshenko, Daishi Kato,
     28Peter Keller, Christian Kellermann, Brad Kind, Ron Kneusel, Matthias
     29Köppe, Krysztof Kowalczyk, Andre KÃŒhne, Todd R. Kueny Sr, Goran
     30Krampe, David Krentzlin, Ben Kurtz, Michele La Monaca, Micky
     31Latowicki, Kristian Lein-Mathisen, John Lenz, Kirill Lisovsky, JÃŒrgen
     32Lorenz, Kon Lovett, Lam Luu, Vitaly Magerya, Leonardo Valeri Manera,
     33Claude Marinier, Dennis Marti, Charles Martin, Bob McIsaac, "megane",
     34Alain Mellan, Eric Merrit, Perry Metzger, Scott G. Miller, Mikael,
     35Karel Miklav, Bruce Mitchener, Fadi Moukayed, Chris Moline, Eric
     36E. Moore, Julian Morrison, Dan Muresan, David N. Murray, Timo MyyrÀ,
     37"nicktick", Lars Nilsson, Ian Oversby, "o.t.", Gene Pavlovsky, Levi
     38Pearson, Jeronimo Pellegrini, Nicolas Pelletier, Derrell Piper, Carlos
     39Pita, "Pluijzer", Robin Lee Powell, Alan Post, "Pupeno", Davide
     40Puricelli, "presto", Doug Quale, Imran Rafique, Eric Raible, Ivan
     41Raikov, Santosh Rajan, Joel Reymont, "rivo", Chris Roberts, Eric
     42Rochester, Paul Romanchenko, Andreas Rottman, David Rush, Lars
     43Rustemeier, Daniel Sadilek, Otavio Salvador, Burton Samograd,
     44"Sandro", "satori", Aleksej Saushev, Oskar Schirmer, Reed Sheridan,
     45Ronald Schröder, Spencer Schumann, Ivan Shcheklein, Alex Shinn, Ivan
     46Shmakov, "Shmul", Tony Sidaway, Jeffrey B. Siegal, Andrey Sidorenko,
     47Michele Simionato, Iruata Souza, Volker Stolz, Jon Strait, Dorai
     48Sitaram, Robert Skeels, Jason Songhurst, Clifford Stein, David
     49Steiner, Sunnan, Zbigniew Szadkowski, Rick Taube, Nathan Thern, Mike
     50Thomas, Minh Thu, Christian Tismer, Andre van Tonder, John Tobey,
     51Henrik Tramberend, Vladimir Tsichevsky, James Ursetto, Neil van Dyke,
     52Sam Varner, Taylor Venable, Sander Vesik, Jaques Vidrine, Panagiotis
     53Vossos, Shawn Wagner, Peter Wang, Ed Watkeys, Brad Watson, Thomas
     54Weidner, Göran Weinholt, Matthew Welland, Drake Wilson, Jörg
     55Wittenberger, Peter Wright, Mark Wutka, Adam Young, Richard Zidlicky,
     56Houman Zolfaghari and Florian Zumbiehl for bug-fixes, tips and
     57suggestions.
    5758
    5859Special thanks to Brandon van Every for contributing the (now defunct)
  • wiki/man/4/Data representation

    r30951 r33130  
    4444single machine word.
    4545
    46 The 24 lowest-order bits contain the length of the data object, which
    47 is either the number of bytes in a string or byte-vector, or the
    48 number of elements for a vector or record type.
     46The 24 (56 on 64-bit systems) lowest-order bits contain the length of
     47the data object, which is either the number of bytes in a string or
     48byte-vector, or the number of elements for a vector or record type. This
     49allows a maximum size for string or byte-vectors of 2^24 bytes, or
     50approximately 16 MB, on 32-bit systems, and 2^56 bytes, or approximately
     5172 PB, on 64-bit systems.
    4952
    5053The remaining bits are placed in the high-order end of the header.
  • wiki/man/4/Exceptions

    r30951 r33130  
    44== Exceptions
    55
    6 Chicken's exception handling is based on the
     6CHICKEN's exception handling is based on the
    77[[http://srfi.schemers.org/srfi-12/srfi-12.html|SRFI-12]] exception
    88system.  This document contains the core of the SRFI-12 spec
    9 as well as Chicken implementation specifics.
    10 
    11 == Chicken implementation
     9as well as CHICKEN implementation specifics.
     10
     11== CHICKEN implementation
    1212
    1313=== System conditions
     
    303303{{(condition-predicate ''kind-key'')}}.
    304304
    305 On Chicken, this procedure accepts an optional third argument
     305On CHICKEN, this procedure accepts an optional third argument
    306306DEFAULT. If the condition does not have a value for the desired
    307307property and if the optional argument is given, no error is signaled
  • wiki/man/4/Extensions

    r30951 r33130  
    5555can fail when your system has this library in a nonstandard
    5656location. Normally the C compiler searches in the default locations
    57 {{/usr}} and {{/usr/local}}, and in the prefix where Chicken itself
     57{{/usr}} and {{/usr/local}}, and in the prefix where CHICKEN itself
    5858was installed. Sometimes this is not enough, so you'll need to supply
    5959{{chicken-install}} with some extra hints to the C compiler/linker. Here's
     
    632632=== Changing repository location
    633633
    634 When Chicken is installed a repository for eggs is created and initialized
     634When CHICKEN is installed a repository for eggs is created and initialized
    635635in a default location (usually something like {{/usr/local/lib/chicken/6/}}).
    636636It is possible to keep an eggs repository in another location. This can be
  • wiki/man/4/Extensions to the standard

    r32269 r33130  
    176176bindings may be introduced.
    177177
    178 === Pathnames expansion
    179 
    180 The ''tilde'' character ({{~}}) is automatically expanded in pathnames.
    181 Additionally, if a pathname starts with {{$VARIABLE...}}, then the prefix is replaced
    182 by the value of the given environment variable.
    183 
    184178=== Optional arguments for port-related procedures
    185179
  • wiki/man/4/Foreign type specifiers

    r28385 r33130  
    6868silently truncated; you should use e.g. {{integer}} if you need the full
    696932-bit range.  Note: {{int32}} is not recognized as an argument type
    70 prior to Chicken 4.7.2.
     70prior to CHICKEN 4.7.2.
    7171
    7272Notes for 64-bit architectures:
     
    108108maximum range of a fixnum.  (Numbers between 2^62 and 2^64-1 have gaps.)
    109109
    110 {{unsigned-integer64}} is not valid as a return type until Chicken 4.6.4.
     110{{unsigned-integer64}} is not valid as a return type until CHICKEN 4.6.4.
    111111
    112112<type>long</type><br>
     
    240240
    241241A vector of foreign pointer objects; see [[Unit lolevel#Pointer vectors|Pointer vectors]].
    242 Permitted only as an argument type, not as return type.  This type was introduced in Chicken 4.6.3.
     242Permitted only as an argument type, not as return type.  This type was introduced in CHICKEN 4.6.3.
    243243
    244244A pointer vector contains a C array of void pointers, and the argument
     
    267267An arbitrary, raw Scheme data object (immediate or non-immediate).  A
    268268{{scheme-object}} is passed or returned as a {{C_word}}, the
    269 internal Chicken type for objects.  Typically, this consists of an
     269internal CHICKEN type for objects.  Typically, this consists of an
    270270object header and tag bits.  It is up to you to build or take apart
    271271such objects using the core library routines in {{chicken.h}} and
     
    275275
    276276<type>scheme-pointer</type><br>
    277 <type>nonnull-scheme-pointer</type>
     277<type>(scheme-pointer TYPE)</type><br>
     278<type>nonnull-scheme-pointer</type><br>
     279<type>(nonnull-scheme-pointer TYPE)</type>
    278280
    279281An untyped pointer to the ''contents'' of a non-immediate Scheme
    280282object; for example, the raw byte contents of a string. Only allowed
    281283as an argument type, not a return type. 
     284
     285The optional element type {{TYPE}} may be used to specify what C
     286type should be used in the generated code. This avoids the need
     287to cast the argument.
    282288
    283289The value {{#f}} is also allowed and is passed as a {{NULL}} pointer.
     
    383389<tr><td>{{void}}</td><td>{{void}}</td></tr>
    384390<tr><td>{{([nonnull-]c-pointer TYPE)}}</td><td>{{TYPE *}}</td></tr>
     391<tr><td>{{([nonnull-]scheme-pointer TYPE)}}</td><td>{{TYPE *}}</td></tr>
    385392<tr><td>{{(enum NAME)}}</td><td>{{enum NAME}}</td></tr>
    386393<tr><td>{{(struct NAME)}}</td><td>{{struct NAME}}</td></tr>
  • wiki/man/4/Getting started

    r32680 r33130  
    2929In contrast to Common Lisp, Scheme is very minimal, and tries to
    3030include only those features absolutely necessary in programming. In
    31 contrast to Emacs Lisp, Scheme is not anchored into a single program
    32 (Emacs), and has a more modern language design.
     31contrast to Emacs Lisp, Scheme is not anchored into any one program
     32(Emacs), and has a somewhat more modern language design.
    3333
    3434Scheme is defined in a document called ''The Revised^5 Report on the
     
    139139* data formats, including XML, JSON, and Unicode support
    140140
    141 CHICKEN is supported by SWIG (Simplified Wrapper and Interface
    142 Generator), a tool that produces quick-and-dirty interface modules
    143 for C libraries ([[http://www.swig.org]]).
    144 
    145141This chapter provides you with an overview of the entire system, with
    146142enough information to get started writing and running small Scheme
     
    169165very low-volume {{chicken-hackers}} list
    170166([[http://lists.nongnu.org/mailman/listinfo/chicken-hackers]]) for
    171 communication.
     167communication.  For other topic-specific mailing lists (e.g.,
     168announcements, security) and discussion groups, see
     169[[http://wiki.call-cc.org/discussion-groups|http://wiki.call-cc.org/discussion-groups]].
    172170
    173171There is also an IRC channel ({{#chicken}}) on [[http://freenode.net|Freenode]].
     
    175173=== Installing CHICKEN
    176174
    177 CHICKEN is [[/platforms|available]] in binary form for Windows and Linux/x86
    178 systems, and in source form for all other platforms. Refer to the
     175CHICKEN is available as C sources. Refer to the
    179176{{README}} file in the distribution for instructions on installing it
    180177on your system.
     
    184181can pretty much ignore the C compiler once you have installed it.)
    185182
    186 * On a Linux system, the GNU Compiler Collection ({{gcc}}) should be
     183* On a Linux system, a C toolchain (e.g., GCC, clang) should be
    187184  installed as part of the basic operating system, or should be
    188185  available through the package management system (e.g., APT,
     
    192189  installable from the App Store with recent versions of the operating
    193190  system.
    194 * On Windows, you have three choices.
     191* On Windows, you have three choices:
    195192** Cygwin ([[http://sourceware.org/cygwin/]]) provides a relatively
    196193  full-featured Unix environment for Windows.  CHICKEN works
     
    199196  MinGW system ([[http://mingw.sourceforge.net]]). Unlike Cygwin,
    200197  executables produced with MinGW do not need the Cygwin DLLs in order
    201   to run.   MSys is a companion package to MinGW; it provides a minimum
     198  to run.   MSYS is a companion package to MinGW; it provides a minimum
    202199  Unix-style development/build environment, again ported from free
    203200  software.
    204201*** You can build CHICKEN either with MinGW alone or with MinGW plus
    205202  MSYS. Both approaches produce a CHICKEN built against the mingw headers
    206   and import libraries.
     203  and libraries.
    207204  The only difference is the environment where you actually run make.
    208205  {{Makefile.mingw}} is can be used in {{cmd.exe}} with the version of make
     
    214211more information on the installation process.
    215212
    216 Alternatively, third party packages in binary format are available.
    217 See [[/platforms]] for information about how to
    218 obtain them.
     213Alternatively, third party packages in binary format are
     214available. See
     215[[http://wiki.call-cc.org/platforms|http://wiki.call-cc.org/platforms]]
     216for information about how to obtain them.
    219217
    220218=== Development environments
     
    222220The simplest development environment is a text editor and terminal
    223221window (Windows: Command Prompt, OSX: Terminal, Linux/Unix: xterm) for
    224 using the interpreter and/or calling the compiler. If you
    225 [[/egg/readline|install the {{readline}} egg]], you
    226 have all the benefits of command history in the interpreter, Emacs or
    227 vi-compatible line editing, and customization.
     222using the interpreter and/or calling the compiler.  If you install one
     223of the line editing extensions (e.g., [[/egg/readline|readline]],
     224[[/egg/parley|parley]], [[/egg/linenoise|linenoise]], you have some
     225useful command line editing features in the interpreter (e.g., Emacs
     226or vi-compatible line editing, customization).
    228227
    229228You will need a text editor that knows Scheme; it's just too painful
     
    248247extensible, customizable, self-documenting editor available for
    249248Linux/Unix, Macintosh, and Windows systems; See
    250 [[/emacs]] for more information about the available options.
    251 
    252 * Epsilon ([[http://www.lugaru.com]]) is a commercial (proprietary) text
    253 editor whose design was inspired by Emacs. Although Scheme support
    254 isn't provided, a Lisp mode is available on Lugaru's FTP site, and
    255 could with some work be made to duplicate the Emacs support. 
     249[[/emacs]] for more information about the available options.
    256250
    257251* SciTE ([[http://scintilla.sourceforge.net/SciTE.html]]),
     
    276270* Vim ([[http://www.vim.org]]) is a highly configurable text
    277271editor built to enable efficient and fast text editing. It is an
    278 improved version of the vi editor distributed with most UNIX
    279 systems. Vim comes with generic Lisp (and therefore Scheme) editing
    280 capabilities out of the box. See [[/Vim]]
    281 for a few tips on using Vim with CHICKEN.
     272improved version of the vi editor distributed with most UNIX systems.
     273Vim comes with generic Lisp (and therefore Scheme) editing capabilities
     274out of the box. See [[/Vim]] for a few tips on using Vim with CHICKEN.
    282275
    283276In the rest of this chapter, we'll assume that you are using an editor
     
    293286 
    294287 CHICKEN
    295  (c)2008-2010 The Chicken Team
    296  (c)2000-2007 Felix L. Winkelmann
    297  Version 4.6.0
    298  macosx-unix-gnu-x86 [ manyargs dload ptables ]
     288 (c) 2008-2015, The CHICKEN Team
     289 (c) 2000-2007, Felix L. Winkelmann
     290 Version 4.9.0.1 (stability/4.9.0) (rev 8b3189b)
     291 linux-unix-gnu-x86-64 [ 64bit manyargs dload ptables ]
     292 bootstrapped 2014-06-07
    299293 
    300294 #;1>
     
    379373The {{-ss}} option sets several options that work smoothly together to
    380374execute a script. You can make the command directly executable from
    381 the shell by inserting a `[[Using the interpreter#Writing Scheme scripts|shebang line]]' at the beginning of the
    382 program.
     375the shell by inserting a [[Using the interpreter#Writing Scheme scripts|shebang line]]
     376at the beginning of the program.
    383377
    384378The {{-ss}} option arranges to call a procedure named {{main}}, with
     
    412406
    413407We can compile our factorial function, producing a file named
    414 {{fact.so}} (`shared object' in Linux-ese, the same file type is used
    415 in OS X and Windows, rather than {{dylib}} or {{dll}}, respectively).
     408{{fact.so}} (''shared object'' in Linux-ese, the same file type is
     409used in OS X and Windows, rather than {{dylib}} or {{dll}},
     410respectively).
    416411
    417412 chicken$ csc -dynamic fact.scm
     
    456451
    457452Here's the external library. We {{declare}} that {{pal-proc}} is a
    458 `unit', which is the basis of separately-compiled modules in
    459 CHICKEN. (Units deal with separate compilation, but don't involve
    460 separated namespaces; namespaced module systems are available as
    461 eggs.)
     453''unit'', which is the basis of separately-compiled modules in
     454CHICKEN. (Units deal with separate compilation, but don't necessarily
     455involve separated namespaces; namespaces can be implemented by
     456[[/manual/Modules|modules]].)
    462457
    463458<enscript highlight=scheme>
     
    473468</enscript>
    474469
    475 Next we have some  client code that `uses' this separately-compiled
     470Next we have some  client code that ''uses'' this separately-compiled
    476471module. 
    477472
  • wiki/man/4/Modules

    r30951 r33130  
    461461procedure definition in another.
    462462
     463{{ARGUMENTMODULE}} may also be a list of the form {{(ALIAS DEFAULT)}}
     464to allow specifying a default- or optional functor argument in case
     465the instanation doesn't provide one. Optional functor
     466arguments may only be followed by non-optional functor arguments.
     467
    463468The common case of using a functor with a single argument module
    464469that is not used elsewhere can be expressed in the following way:
  • wiki/man/4/Non-standard macros and special forms

    r30951 r33130  
    66
    77=== Making extra libraries and extensions available
     8
     9==== require-extension
     10
     11<macro>(require-extension ID ...)</macro>
     12
     13This is equivalent to {{(require-library ID ...)}} but performs an implicit
     14{{import}}, if necessary. Since version 4.4.0, {{ID}} may also be an import specification
     15(using {{rename}}, {{only}}, {{except}} or {{prefix}}).
     16
     17To make long matters short - just use {{require-extension}} and it will normally figure everything out for dynamically
     18loadable extensions and core library units.
     19
     20This implementation of {{require-extension}} is compliant with [[http://srfi.schemers.org/srfi-55/srfi-55.html|SRFI-55]]
     21(see the [[http://srfi.schemers.org/srfi-55/srfi-55.html|SRFI-55]] document for more information).
    822
    923==== require-library
     
    3347* Otherwise {{(require-library ID)}} is equivalent to {{(require 'ID)}}.
    3448
    35 To make long matters short - just use {{require-library}} and it will normally figure everything out for dynamically
    36 loadable extensions and core library units.
    37 
    38 {{ID}} should be a pure extension name and should not contain any path prefixes (for example {{dir/lib...}}) is illegal).
     49{{ID}} should be a pure extension name and should not contain any path prefixes (for example {{dir/lib...}} is illegal).
    3950
    4051{{ID}} may also be a list that designates an extension-specifier. Currently the following extension specifiers are
     
    4354* {{(srfi NUMBER ...)}} is required for SRFI-55 compatibility and is fully implemented
    4455* {{(version ID NUMBER)}} is equivalent to {{ID}}, but checks at compile-time whether the extension named {{ID}} is installed and whether its version is equal or higher than {{NUMBER}}. {{NUMBER}} may be a string or a number, the comparison is done lexicographically (using {{string>=?}}).
    45 
    46 ==== require-extension
    47 
    48 <macro>(require-extension ID ...)</macro>
    49 
    50 This is equivalent to {{(require-library ID ...)}} but performs an implicit
    51 {{import}}, if necessary. Since version 4.4.0, {{ID}} may also be an import specification
    52 (using {{rename}}, {{only}}, {{except}} or {{prefix}}).
    53 
    54 This implementation of {{require-extension}} is compliant with [[http://srfi.schemers.org/srfi-55/srfi-55.html|SRFI-55]]
    55 (see the [[http://srfi.schemers.org/srfi-55/srfi-55.html|SRFI-55]] document for more information).
    5656
    5757==== use
     
    124124<macro> (let-optionals ARGS ((VAR1 DEFAULT1) ...) BODY ...)</macro>
    125125
    126 Binding constructs for optional procedure arguments. {{ARGS}} should
    127 be a rest-parameter taken from a lambda-list. {{let-optionals}}
     126Binding constructs for optional procedure arguments. {{ARGS}} is normally
     127a rest-parameter taken from a lambda-list. {{let-optionals}}
    128128binds {{VAR1 ...}} to available arguments in parallel, or
    129129to {{DEFAULT1 ...}} if not enough arguments were provided.
     
    141141<macro> (let-optionals* ARGS ((VAR1 DEFAULT1) ... [RESTVAR]) BODY ...)</macro>
    142142
    143 Binding constructs for optional procedure arguments. {{ARGS}} should
    144 be a rest-parameter taken from a lambda-list. {{let-optionals}}
     143Binding constructs for optional procedure arguments. {{ARGS}} is normally
     144a rest-parameter taken from a lambda-list. {{let-optionals}}
    145145binds {{VAR1 ...}} to available arguments in parallel, or
    146146to {{DEFAULT1 ...}} if not enough arguments were provided.
     
    162162<macro>(and-let* (BINDING ...) EXP1 EXP2 ...)</macro>
    163163
    164 SRFI-2. Bind sequentially and execute body. {{BINDING}} can
     164Bind sequentially and execute body. {{BINDING}} can
    165165be a list of a variable and an expression, a list with a single
    166166expression, or a single variable. If the value of an expression
     
    198198==== define-values
    199199
    200 <macro>(define-values (NAME ...) EXP)</macro>
     200<macro>(define-values (NAME ...) VALUEEXP)</macro>
     201<macro>(define-values (NAME1 ... NAMEn . NAMEn+1) VALUEEXP)</macro>
     202<macro>(define-values NAME VALUEEXP)</macro>
    201203
    202204Defines several variables at once, with the result values of expression
    203 {{EXP}}.
     205{{VALUEEXP}}, similar to {{set!-values}}.
    204206
    205207==== fluid-let
     
    213215==== let-values
    214216
    215 <macro>(let-values (((NAME ...) EXP) ...) BODY ...)</macro>
    216 
    217 Binds multiple variables to the result values of {{EXP ...}}.
    218 All variables are bound simultaneously.
     217<macro>(let-values (((NAME ...) VALUEEXP) ...) BODY ...)</macro>
     218
     219Binds multiple variables to the result values of {{VALUEEXP ...}}.
     220All variables are bound simultaneously.  Like {{define-values}}, the
     221{{(NAME ...)}} expression can be any basic lambda list (dotted tail
     222notation is supported).
    219223This implements [[http://srfi.schemers.org/srfi-11/srfi-11.html|SRFI-11]].
    220224
    221225==== let*-values
    222226
    223 <macro>(let*-values (((NAME ...) EXP) ...) BODY ...)</macro>
    224 
    225 Binds multiple variables to the result values of {{EXP ...}}.
    226 The variables are bound sequentially.
     227<macro>(let*-values (((NAME ...) VALUEEXP) ...) BODY ...)</macro>
     228
     229Binds multiple variables to the result values of {{VALUEEXP ...}}.
     230The variables are bound sequentially.  Like {{let-values}}, the
     231{{(NAME ...)}} expression can be any basic lambda list (dotted tail
     232notation is supported).
    227233This is also part of [[http://srfi.schemers.org/srfi-11/srfi-11.html|SRFI-11]].
    228234
     
    235241==== letrec-values
    236242
    237 <macro>(letrec-values (((NAME ...) EXP) ...) BODY ...)</macro>
    238 
    239 Binds the result values of {{EXP ...}} to multiple variables at once.
    240 All variables are mutually recursive.
     243<macro>(letrec-values (((NAME ...) VALUEEXP) ...) BODY ...)</macro>
     244
     245Binds the result values of {{VALUEEXP ...}} to multiple variables at once.
     246All variables are mutually recursive.  Like {{let-values}}, the
     247{{(NAME ...)}} expression can be any basic lambda list (dotted tail
     248notation is supported).
    241249
    242250<enscript highlight=scheme>
     
    266274[[http://srfi.schemers.org/srfi-8/srfi-8.html|SRFI-8]].
    267275Syntactic sugar for {{call-with-values}}. Binds variables
    268 to the result values of {{VALUEEXP}} and evaluates {{BODY ...}}.
     276to the result values of {{VALUEEXP}} and evaluates {{BODY ...}},
     277similar {{define-values}} but lexically scoped.
    269278
    270279{{(receive VALUEEXP)}} is equivalent to {{(receive _ VALUEEXP _)}}.
     
    273282==== set!-values
    274283
    275 <macro>(set!-values (NAME ...) EXP)</macro>
    276 
    277 Assigns the result values of expression {{EXP}} to multiple
    278 variables.
     284<macro>(set!-values (NAME ...) VALUEEXP)</macro>
     285<macro>(set!-values (NAME1 ... NAMEn . NAMEn+1) VALUEEXP)</macro>
     286<macro>(set!-values NAME VALUEEXP)</macro>
     287
     288Assigns the result values of expression {{VALUEEXP}} to multiple
     289variables, similar to {{define-values}}.
    279290
    280291=== Substitution forms and macros
     
    284295<macro>(define-constant NAME CONST)</macro>
    285296
    286 Define a variable with a constant value, evaluated at compile-time.
     297Defines a variable with a constant value, evaluated at compile-time.
    287298Any reference to such a constant should appear textually '''after'''
    288299its definition. This construct is equivalent to {{define}} when
     
    300311
    301312<macro>(define-inline (NAME VAR ...) BODY ...)</macro><br>
    302 <macro>(define-inline (NAME VAR1 ... VARn . VARn+1) BODY ...)</macro><br>
     313<macro>(define-inline (NAME VAR ... . VAR) BODY ...)</macro><br>
    303314<macro>(define-inline NAME EXP)</macro>
    304315
    305 Defines an inline procedure. Any occurrence of {{NAME}} will be
    306 replaced by {{EXP}} or {{(lambda (VAR ... [. VAR]) BODY ...)}}.
    307 This is similar to a macro, but variable-names and -scope will
    308 be correctly handled.  Inline substitutions take place '''after'''
    309 macro-expansion.  {{EXP}} should be a lambda-expression. Any
    310 reference to {{NAME}} should appear textually '''after'''
    311 its definition. Note that inline procedures are local to the current
    312 compilation unit and are not available outside of the source file in
    313 which they are defined. Names of inline procedures still exist in the
    314 Scheme namespace and can be lexically shadowed.  This construct is
    315 equivalent to {{define}} when evaluated or interpreted. Inline
    316 definitions should only appear at toplevel.
     316Defines an inline procedure. Any occurrence of {{NAME}} will be replaced
     317by {{EXP}} or {{(lambda (VAR ... [. VAR]) BODY ...)}}. This is similar
     318to a macro, but variable names and scope are handled correctly.
     319
     320Inline substitutions take place '''after''' macro-expansion, and any
     321reference to {{NAME}} should appear textually '''after''' its
     322definition. Inline procedures are local to the current compilation unit
     323and are not available outside of the source file in which they are
     324defined. Names of inline procedures still exist in the Scheme namespace
     325and can be lexically shadowed. Inline definitions should only appear at
     326the toplevel.
     327
     328Note that the {{inline-limit}} compiler option does not affect inline
     329procedure expansion, and self-referential inline procedures may cause
     330the compiler to enter an infinite loop.
     331
     332In the third form, {{EXP}} must be a lambda expression.
     333
     334This construct is equivalent to {{define}} when evaluated or
     335interpreted.
    317336
    318337==== define-for-syntax
     
    542561[[http://srfi.schemers.org/srfi-0/srfi-0.html|SRFI-0]].
    543562
    544 === {{delay-force}}
     563=== delay-force
    545564
    546565CHICKEN supports the R7RS {{delay-force}} syntax which allows for
  • wiki/man/4/Parameters

    r30951 r33130  
    44== Parameters
    55
    6 Parameters are Chicken's form of dynamic variables, except that they are
     6Parameters are CHICKEN's form of dynamic variables, except that they are
    77procedures rather than actual variables.  A parameter is a procedure of
    88zero or one arguments. To retrieve the value of a parameter call the
  • wiki/man/4/The R5RS standard

    r32320 r33130  
    11== The R5RS standard
    22
    3 This document describes Chicken's R5RS support, with a heavy emphasis
     3This document describes CHICKEN's R5RS support, with a heavy emphasis
    44on syntax and procedures.  It is based directly on the
    55''Revised^5 Report on the Algorithmic Language Scheme''.
     
    32793279<procedure>(transcript-off)</procedure><br>
    32803280
    3281 (These procedures are not implemented in Chicken.)
     3281(These procedures are not implemented in CHICKEN.)
    32823282
    32833283Filename must be a string naming an output file to be created. The
  • wiki/man/4/The User's Manual

    r32699 r33130  
    77</nowiki>
    88
    9 This is the manual for Chicken Scheme, version 4.9.0
     9This is the manual for CHICKEN Scheme, version 4.10.0
    1010
    1111; [[Getting started]] : What is CHICKEN and how do I use it?
  • wiki/man/4/Types

    r30951 r33130  
    9191<tr><th>TYPE</th><th>meaning</th></tr>
    9292<tr><td>{{deprecated}}</td><td>any use of this variable will generate a warning</td></tr>
     93<tr><td>{{(deprecated NAME)}}</td><td>generate a warning and advise alternative NAME</td></tr>
    9394<tr><td>VALUETYPE</td><td></td></tr>
    9495</table>
     
    101102<tr><td>{{(procedure [NAME] (VALUETYPE ... [#!optional VALUETYPE ...] [#!rest [VALUETYPE]]) . RESULTS)}}</td><td>procedure type, optionally with name</td></tr>
    102103<tr><td>{{(VALUETYPE ... [#!optional VALUETYPE ...] [#!rest [VALUETYPE]] -> . RESULTS)}}</td><td>alternative procedure type syntax</td></tr>
    103 <tr><td>{{(VALUETYPE ... [#!optional VALUETYPE ...] [#!rest [VALUETYPE]] --> . RESULTS)}}</td><td>procedure type that is declared to modify locally held state</td></tr>
     104<tr><td>{{(VALUETYPE ... [#!optional VALUETYPE ...] [#!rest [VALUETYPE]] --> . RESULTS)}}</td><td>procedure type that is declared not to modify locally held state</td></tr>
    104105<tr><td>{{(VALUETYPE -> VALUETYPE : VALUETYPE)}}</td><td>predicate procedure type</td></tr>
    105106<tr><td>{{(forall (TYPEVAR ...) VALUETYPE)}}</td><td>polymorphic type</td></tr>
     
    310311===== compiler-typecase
    311312
    312 <syntax>(compiler-typecase EXP (TYPE BODY ... [(else BODY ...)]) ...)</syntax>
     313<syntax>(compiler-typecase EXP (TYPE BODY ...) ... [(else BODY ...)])</syntax>
    313314
    314315Evaluates {{EXP}} and executes the first clause which names a type that
  • wiki/man/4/Unit irregex

    r31357 r33130  
    1414
    1515On systems that support dynamic loading, the {{irregex}} unit can
    16 be made available in the Chicken interpreter ({{csi}}) by entering
     16be made available in the CHICKEN interpreter ({{csi}}) by entering
    1717
    1818<enscript highlight=scheme>
  • wiki/man/4/Unit library

    r32288 r33130  
    392392{{-keyword-style}} can be used to allow an additional keyword
    393393syntax, either compatible to Common LISP, or to DSSSL.  As long as this
    394 parameter is set to {{#:suffix}}, Chicken conforms to
     394parameter is set to {{#:suffix}}, CHICKEN conforms to
    395395[[http://srfi.schemers.org/srfi-88/srfi-88.html|SRFI-88]].
    396396
     
    498498Returns the value of the environment variable {{STRING}} or
    499499{{#f}} if that variable is not defined. See also [[http://srfi.schemers.org/srfi-98/|SRFI-98]].
    500 
    501 <procedure>(getenv STRING)</procedure>
    502 
    503 {{getenv}} was removed in Chicken 4.6.4.  Use {{get-environment-variable}} instead.
    504500
    505501==== machine-byte-order
     
    578574
    579575
    580 
    581 ==== c-runtime
    582 
    583 <procedure>(c-runtime)</procedure>
    584 
    585 Returns a symbol that designates what kind of C runtime library has been linked
    586 with this version of the Chicken libraries. Possible return values are
    587 {{static}}, {{dynamic}} or {{unknown}}. On systems not compiled with the
    588 Microsoft C compiler, {{c-runtime}} always returns {{unknown}}.
    589 
    590 
    591576==== system
    592577
     
    12591244the reader to completely ignore whatever input you've read, rather than returning some
    12601245possibly unspecified value.  This can be useful in macro context, reading comments,
    1261 conditional compilation, and so forth.  Available in Chicken 4.6.6 and later.
     1246conditional compilation, and so forth.  Available in CHICKEN 4.6.6 and later.
    12621247
    12631248Note that all of CHICKEN's special non-standard read-syntax is handled directly by the reader.
  • wiki/man/4/Unit lolevel

    r29572 r33130  
    2020; ''pointer-like object'' : is a closure, port, [[#Locatives|locative]], or a pointer object.
    2121
    22 SWIG-pointers are currently an issue due to "bitrot" in the SWIG Chicken
     22SWIG-pointers are currently an issue due to "bitrot" in the SWIG CHICKEN
    2323translator. While they are considered a pointer object unexpected results are
    2424possible.
  • wiki/man/4/Unit ports

    r30636 r33130  
    156156{{copy-port}} returns an undefined value.
    157157
    158 {{copy-port}} was introduced in Chicken 4.6.0.
     158{{copy-port}} was introduced in CHICKEN 4.6.0.
    159159
    160160=== Funky ports
  • wiki/man/4/Unit posix

    r32954 r33130  
    12461246Recursively traverses the contents of {{DIRECTORY}} (which should be a
    12471247string) and invokes the procedure {{action}} for all files in which
    1248 the procedure {{test}} is true. 
    1249 
    1250 {{test}} may be a procedure of one
     1248the procedure {{test}} is true.  {{test}} may be a procedure of one
    12511249argument or an irregex object, regex string or SRE expression that
    1252 will be matched with a full pathname using {{irregex-match}}. {{test}}
    1253 defaults to {{(constantly #t)}}.
    1254 
    1255 
     1250will be matched with a full pathname using {{irregex-match}}.
    12561251{{action}} should be a procedure of two arguments: the currently
    12571252encountered file and the result of the previous invocation of
    12581253{{action}}, or, if this is the first invocation, the value of
    1259 {{seed}}. {{action}} defaults to {{cons}}, {{seed}} defaults to {{()}}. 
    1260 
    1261 {{limit}} should
     1254{{seed}}. {{test}} defaults to {{(constantly #t)}}, {{action}}
     1255defaults to {{cons}}, {{seed}} defaults to {{()}}.  {{limit}} should
    12621256be a procedure of one argument that is called for each nested
    12631257directory and which should return true, if that directory is to be
  • wiki/man/4/Unit srfi-13

    r26913 r33130  
    1010
    1111On systems that support dynamic loading, the {{srfi-13}} unit can
    12 be made available in the Chicken interpreter ({{csi}}) by entering
     12be made available in the CHICKEN interpreter ({{csi}}) by entering
    1313
    1414<enscript highlight=scheme>
     
    3030done code point by code point.
    3131
    32 Chicken's native strings are simple byte sequences (not Unicode code points).
     32CHICKEN's native strings are simple byte sequences (not Unicode code points).
    3333Comparison or reversal is done byte-wise.  If Unicode semantics are
    3434desired, see the [[/egg/utf8|utf8]] egg.
     
    4141case-mappings given in [[ftp://ftp.unicode.org/Public/UNIDATA/UnicodeData.txt]].
    4242
    43 On Chicken, case-mapping is restricted to operate on ASCII characters.
     43On CHICKEN, case-mapping is restricted to operate on ASCII characters.
    4444
    4545=== String equality & string normalisation
    4646
    4747SRFI 13 string equality is simply based upon comparing the encoding
    48 values used for the characters.  On Chicken, strings are compared
     48values used for the characters.  On CHICKEN, strings are compared
    4949byte-wise.
    5050
     
    7070=== Shared storage
    7171
    72 Chicken does not currently have shared-text substrings, nor does its
     72CHICKEN does not currently have shared-text substrings, nor does its
    7373implementation of SRFI 13 routines ever return one of the
    7474strings that was passed in as a parameter, as is allowed by the
  • wiki/man/4/Unit srfi-18

    r28140 r33130  
    88of [[http://srfi.schemers.org/srfi-18/srfi-18.html|SRFI-18]].  This
    99document contains the core of the SRFI-18 documentation as well as
    10 information on Chicken deviations from the spec.
     10information on CHICKEN deviations from the spec.
    1111
    1212The threads implemented in CHICKEN are so called "green" threads,
     
    2727exception datatypes.
    2828
    29 == Chicken implementation
     29== CHICKEN implementation
    3030
    3131=== Notes
  • wiki/man/4/Unit srfi-4

    r30951 r33130  
    77[[toc:]]
    88
    9 == Chicken implementation
     9== CHICKEN implementation
    1010
    1111* Procedures for blob conversion, subvectors and vector I/O are provided.
     
    7676=== Vector I/O
    7777
    78 <procedure>(read-u8vector LENGTH [PORT])</procedure>
     78<procedure>(read-u8vector [LENGTH [PORT]])</procedure>
    7979
    8080Reads {{LENGTH}} bytes from the {{PORT}} and returns a fresh
     
    209209inexact integer is passed to {{make-u8vector}}.
    210210
    211 On Chicken, these procedures have been extended to allow allocating
     211On CHICKEN, these procedures have been extended to allow allocating
    212212the storage in non-garbage collected memory, as follows:
    213213
  • wiki/man/4/Using the compiler

    r32271 r33130  
    144144; -prologue FILENAME : Includes the file named {{FILENAME}} at the start of the compiled source file.  The include-path is not searched. This option may be given multiple times.
    145145
    146 ; -r5rs-syntax : Disables the Chicken extensions to R5RS syntax. Does not disable [[Non-standard read syntax|non-standard read syntax]].
     146; -r5rs-syntax : Disables the CHICKEN extensions to R5RS syntax. Does not disable [[Non-standard read syntax|non-standard read syntax]].
    147147
    148148; -raw : Disables the generation of any implicit code that uses the Scheme libraries (that is all runtime system files besides {{runtime.c}} and {{chicken.h}}).
     
    413413
    414414Compiled to C, we get {{hello.c}}. We need the files {{chicken.h}},
    415 {{chicken-config.h}} and {{runtime.c}}, which contain the basic
    416 runtime system, plus the five basic library files {{library.c}},
    417 {{eval.c}}, {{expand.c}}, {{modules.c}} and {{build-version.c}}
    418 which contain the same functionality as the library linked into a
    419 plain CHICKEN-compiled application, or which is available by
    420 default in the interpreter, {{csi}}:
     415{{chicken-config.h}}, {{build-version.c}}, {{buildtag.h}} and
     416{{runtime.c}}, which contain the basic runtime system, plus the five
     417basic library files {{library.c}}, {{eval.c}}, {{expand.c}},
     418{{modules.c}} and {{build-version.c}} which contain the same
     419functionality as the library linked into a plain CHICKEN-compiled
     420application, or which is available by default in the interpreter,
     421{{csi}}:
    421422
    422423
     
    429430  % cp $CHICKEN_BUILD/expand.c   .
    430431  % cp $CHICKEN_BUILD/modules.c  .
     432  % cp $CHICKEN_BUILD/build-version.c  .
    431433  % cp $CHICKEN_BUILD/chicken.h  .
    432434  % cp $CHICKEN_BUILD/chicken-config.h  .
     
    441443 % gzip hello.tar
    442444
    443 This is naturally rather simplistic. Things like enabling dynamic loading, estimating
    444 the optimal stack-size and selecting supported features of the host system would need
    445 more configuration- and build-time support. All this can be addressed using more
    446 elaborate build-scripts, makefiles or by using autoconf/automake.
     445This is naturally rather simplistic. Things like enabling dynamic
     446loading and selecting supported features of the host system would need
     447more configuration- and build-time support. All this can be addressed
     448using more elaborate build-scripts, makefiles or by using
     449autoconf/automake.
    447450
    448451The {{chicken-config.h}} file may contain wrong settings for your
  • wiki/man/4/Using the interpreter

    r30951 r33130  
    5050; -q  -quiet : Do not print a startup message. Also disables generation of call-trace information for interpreted code.
    5151
    52 ;     -r5rs-syntax : Disables the Chicken extensions to R5RS syntax. Does not disable [[Non-standard read syntax|non-standard read syntax]].
     52;     -r5rs-syntax : Disables the CHICKEN extensions to R5RS syntax. Does not disable [[Non-standard read syntax|non-standard read syntax]].
    5353
    5454; -s  -script PATHNAME : This is equivalent to {{-batch -quiet -no-init PATHNAME}}. Arguments following {{PATHNAME}} are available by using  {{command-line-arguments}} and are not processed as interpreter options. Extra options in the environment variable {{CSI_OPTIONS}} are ignored.
  • wiki/man/4/faq

    r32695 r33130  
    44== FAQ
    55
    6 This is the list of Frequently Asked Questions about Chicken Scheme.
     6This is the list of Frequently Asked Questions about CHICKEN Scheme.
    77If you have a question not answered here, feel free to post to the chicken-users mailing list;
    88if you consider your question general enough, feel free to add it to this list.
     
    1919* CHICKEN is portable because it generates C code that runs on a large number of platforms.
    2020
    21 * CHICKEN is extendable, since its code generation scheme and runtime system/garbage collector fits neatly into a C environment.
     21* CHICKEN is extensible, since its code generation scheme and runtime system/garbage collector fits neatly into a C environment.
    2222
    2323* CHICKEN is free and can be freely distributed, including its source code.
     
    342342Another symptom is that {{(require 'srfi-18)}} will silently fail.
    343343
    344 This typically happens because the Chicken libraries have been installed in a non-standard location, such as your home directory.  The workaround is to explicitly tell the dynamic linker where to look for your libraries:
     344This typically happens because the CHICKEN libraries have been installed in a non-standard location, such as your home directory.  The workaround is to explicitly tell the dynamic linker where to look for your libraries:
    345345
    346346 export DYLD_LIBRARY_PATH=~/scheme/chicken/lib:$DYLD_LIBRARY_PATH ;; Mac
     
    349349==== How can I increase the size of the trace shown when runtime errors are detected?
    350350
    351 When a runtime error is detected, Chicken will print the last entries from the trace of functions called
     351When a runtime error is detected, CHICKEN will print the last entries from the trace of functions called
    352352(unless your executable was compiled with the {{-no-trace}} option.
    353353By default, only 16 entries will be shown.
     
    610610{{not-pair?}}
    611611{{null-list?}}
    612 {{null-pointer?}}
    613612{{number-of-slots}}
    614613{{o}}
     
    726725==== Why is my program which uses regular expressions so slow?
    727726
    728 The regular expression engine has recently be replaced by [[/users/alex shinn|alex shinn]]'s excellent
     727The regular expression engine has recently been replaced by [[http://wiki.call-cc.org/users/alex shinn|alex shinn]]'s excellent
    729728{{irregex}} library, which is fully implemented in Scheme. Precompiling regular
    730 expressions to internal form is somewhat slower than with the old PCRE-based
     729expressions to internal forms is somewhat slower than with the old PCRE-based
    731730regex engine. It is advisable to use {{irregex}} to precompile regular expressions
    732731outside of time-critical loops and use them where performance matters.
     
    737736==== Why does a loop that doesn't {{cons}} still trigger garbage collections?
    738737
    739 Under CHICKENs implementation policy, tail recursion is achieved simply by avoiding
    740 to return from a function call. Since the programs are CPS converted, a continuous
     738Under CHICKEN's implementation policy, tail recursion is achieved simply by avoiding
     739returns from function calls. Since the programs are CPS converted, a continuous
    741740sequence of nested procedure calls is performed. At some stage the stack-space has
    742741to run out and the current procedure and its parameters (including the current
     
    783782==== Does CSI support history and autocompletion?
    784783
    785 CSI doesn't support it natively but it can be activated with one of the [[/egg/readline|readline]], [[/egg/linenoise|linenoise]] or [[/egg/parley|parley]] eggs. Out of these three, the parley egg is recommended.
    786 After installing parley, add the following to your {{~/.csirc}} or equivalent file:
     784CSI doesn't support it natively but it can be activated with one of the
     785[[/egg/readline|readline]], [[/egg/linenoise|linenoise]] or
     786[[/egg/parley|parley]] eggs. Out of these three, the parley egg is
     787recommended. After installing parley, add the following to your
     788{{~/.csirc}} or equivalent file:
    787789
    788790<enscript highlight=scheme>
     
    819821See the [[Extensions]] chapter for more information.
    820822
    821 ==== How can I install Chicken eggs to a non-default location?
     823==== How can I install CHICKEN eggs to a non-default location?
    822824
    823825You can just set the {{CHICKEN_REPOSITORY}} environment variable.
Note: See TracChangeset for help on using the changeset viewer.