~ chicken-core (chicken-5) d6a0ccf7b8a309939f1c0689ec7c0afe59ba6699
commit d6a0ccf7b8a309939f1c0689ec7c0afe59ba6699 Author: Evan Hanson <evhan@foldling.org> AuthorDate: Tue Feb 9 17:02:34 2016 +1300 Commit: Evan Hanson <evhan@foldling.org> CommitDate: Tue Mar 8 22:52:35 2016 +1300 Documentation updates diff --git a/manual/Parameters b/manual/Parameters index fc2ce1a5..f4ebd9ed 100644 --- a/manual/Parameters +++ b/manual/Parameters @@ -157,15 +157,6 @@ The name of the currently executing program. This is equivalent to {{-script}} option in interpreted scripts. -=== repl-prompt - -<parameter>(repl-prompt)</parameter> - -A procedure that should evaluate to a string that will be printed before reading -interactive input from the user in a read-eval-print loop. Defaults to -{{(lambda () "#;N> ")}}. - - === reset-handler <parameter>(reset-handler)</parameter> diff --git a/manual/Unit eval b/manual/Unit eval index 4b61e775..053cb3ce 100644 --- a/manual/Unit eval +++ b/manual/Unit eval @@ -37,7 +37,6 @@ all expressions have been read. A compiled file can only be loaded once. Subsequent attempts to load the same file have no effect. - ==== load-relative <procedure>(load-relative FILE [EVALPROC])</procedure> @@ -59,6 +58,7 @@ printed before evaluation by applying the expression to the value of this argument, which should be a one-argument procedure. See also the [[Parameters#load-verbose|load-verbose]] parameter. + ==== load-library <procedure>(load-library UNIT [LIBRARYFILE])</procedure> @@ -66,17 +66,15 @@ See also the [[Parameters#load-verbose|load-verbose]] parameter. On platforms that support dynamic loading, {{load-library}} loads the compiled library unit {{UNIT}} (which should be a symbol). If the string {{LIBRARYFILE}} is given, then the given shared library will -be loaded and the toplevel code of the contained unit will be executed. -If no {{LIBRARYFILE}} argument is given, then the following libraries -are checked for the required unit: - -* a file named ''{{<UNIT>.so}}'' -* the files given in the parameter {{dynamic-load-libraries}} +be loaded and the toplevel code of the specified unit will be executed. +If no {{LIBRARYFILE}} argument is given, then the libraries given in the +parameter {{dynamic-load-libraries}} are searched for the required unit. +If the unit is not found, an error is signaled. -If the unit is not found, an error is signaled. When the library unit -can be successfully loaded, a feature-identifier named {{UNIT}} -is registered. If the feature is already registered before loading, -the {{load-library}} does nothing. +Note that {{LIBRARYFILE}} is considered relative to the {{dlopen(3)}} +search path by default. In order to use a file relative to the current +working directory, a relative or absolute pathname must be used, i.e. +{{LIBRARYFILE}} must contain at least one slash ({{"/"}}). ==== set-dynamic-load-mode! @@ -96,27 +94,28 @@ Note that this procedure does not control the way Scheme variables are handled - this facility is mainly of interest when accessing foreign code. -=== Read-eval-print loop - -==== repl - -<procedure>(repl [EVALUATOR])</procedure> +=== Loading extension libraries -Start a new read-eval-print loop. Sets the {{reset-handler}} so that -any invocation of {{reset}} restarts the read-eval-print loop. Also -changes the current exception-handler to display a message, write -any arguments to the value of {{(current-error-port)}} and reset. +This functionality is only available on platforms that support dynamic +loading of compiled code. Currently Linux, BSD, Solaris, Windows (with +Cygwin) and HP/UX are supported. -If {{EVALUATOR}} is given, it should be a procedure of one argument that -is used in place of {{eval}} to evaluate each entered expression. +==== load-extension -You can use {{quit}} to terminate the current read-eval-print loop. +<procedure>(load-extension ID)</procedure> +If the extension library {{ID}} is not already loaded into the +system, then {{load-extension}} will look up the location of the shared +extension library and load it. If {{ID}} names a library-unit of the +base system, then it is loaded via {{load-library}}. If no extension +library is available for the given ID, then an attempt is made to load +the file {{ID.so}} or {{ID.scm}} (in that order) from one of the +following locations: -=== Loading extension libraries +* the current directory +* the current repository path (see {{repository-path}}) -This functionality is only available on platforms that support dynamic -loading of compiled code. Currently Linux, BSD, Solaris, Windows (with Cygwin) and HP/UX are supported. +{{ID}} should be a symbol. ==== repository-path @@ -139,18 +138,23 @@ list registered in the extension repository, then the info-list is returned. Oth <procedure>(require ID ...)</procedure> -If the extension library {{ID}} is not already loaded into the -system, then {{require}} will lookup the location of the shared -extension library and load it. If {{ID}} names a library-unit of -the base system, then it is loaded via {{load-library}}. If no -extension library is available for the given ID, then an attempt is -made to load the file {{ID.so}} or {{ID.scm}} (in that order) -from one of the following locations: - -* the current include path, which defaults to the pathnames given in {{CHICKEN_INCLUDE_PATH}}. -* the current directory +An alias for {{load-extension}} that allows multiple extension +identifiers to be provided. + +==== provide + +<procedure>(require ID ...)</procedure> + +Registers the extension IDs {{ID ...}} as loaded. This is mainly +intended to provide aliases for certain library identifiers. + +==== provided? + +procedure: (provided? ID ...) + +Returns {{#t}} if extension with the IDs {{ID ...}} are currently +loaded, or {{#f}} otherwise. -{{ID}} should be a string or a symbol. === System information @@ -173,11 +177,6 @@ if the environment variable {{CHICKEN_PREFIX}} is set, then {{chicken-home}} wil Evaluates {{EXP}} and returns the result of the evaluation. The second argument is optional and defaults to the value of {{(interaction-environment)}}. -'''Note''': if you want to eval an expression containing chicken special forms you must - - (use chicken-syntax) - -before calling {{eval}}. --- Previous: [[Unit library]] diff --git a/manual/Unit extras b/manual/Unit extras index c1f2b142..63ea0b12 100644 --- a/manual/Unit extras +++ b/manual/Unit extras @@ -133,18 +133,6 @@ These procedures are provided by the {{(chicken io)}} module. Read/write a byte to the port given in {{PORT}}, which default to the values of {{(current-input-port)}} and {{(current-output-port)}}, respectively. -==== read-all - -<procedure>(read-all [PORT [READER [MAXCOUNT]]])</procedure> - -Returns a list containing all toplevel expressions read from the given -{{PORT}}. If no argument is given, input is read from the value of -{{(current-input-port)}}. The {{READER}} argument specifies the -procedure used to read expressions and defaults to {{read}}. The reader -procedure will be called with a single argument (an input port). If -{{MAXCOUNT}} is given then only up to {{MAXCOUNT}} expressions will be -read in. - ==== read-line ==== write-line diff --git a/manual/Unit repl b/manual/Unit repl index 19bd50de..d695317b 100644 --- a/manual/Unit repl +++ b/manual/Unit repl @@ -21,6 +21,15 @@ is used in place of {{eval}} to evaluate each entered expression. You can use {{quit}} to terminate the current read-eval-print loop. +=== repl-prompt + +<parameter>(repl-prompt)</parameter> + +A procedure that should evaluate to a string that will be printed before +reading interactive input from the user in a read-eval-print loop. +Defaults to {{(lambda () "#;N> ")}}. + + --- Previous: [[Unit eval]] diff --git a/manual/Using the interpreter b/manual/Using the interpreter index 586a64ba..fc5ba765 100644 --- a/manual/Using the interpreter +++ b/manual/Using the interpreter @@ -299,13 +299,6 @@ instead. It should work on almost any system but is not as feature-rich as readline (e.g. it lacks reverse-i-search and auto-completion). -The interpreter {{csi}} internally requires some routines from the -{{ports}} and {{extras}} library units and loads them automatically -on startup. These libraries are not automatically loaded in compiled -code, so there is an inconsistency between code that is executed -in {{csi}} versus code that is compiled and executed. - - --- Previous: [[Using the compiler]]Trap