* doc/ref/Makefile.am (guile_TEXINFOS): Remove script-getopt.texi.
* doc/ref/script-getopt.texi: Deleted. This file wasn't included in
the manual, and its content is now duplicated identically in
scheme-scripts.texi.
* doc/ref/data-rep.texi (Immediate objects): Clarify the description
of SCM_UNSPECIFIED. It is returned by some (but not all) expressions
whose value is unspecified by the Scheme standard.
* doc/ref/api-evaluation.texi (Scheme Read): Note that read-set! is
syntax.
(Scheme Write): Likewise for print-set!.
* doc/ref/api-io.texi (Writing): Remove reference to
print-options-interface.
* doc/ref/repl-modules.texi (Readline Options): Update, and add entries
for readline-options, readline-set! et al.
* module/rnrs/io/ports.scm (display): Implement as an
exception-converting wrapper around Guile's core display.
* module/rnrs/io/simple.scm: Don't export Guile's corresponding core
procedures, but use `(rnrs io ports)' instead. This way, we get the
conditions required by R6RS raised.
* doc/ref/r6rs.texi (rnrs io simple): Mention that these procedures are
supposed to raise R6RS conditions.
* module/ice-9/boot-9.scm (while): Specify the return value as #f under
normal conditions, #t under (break), and arg... under (break arg...).
* test-suite/tests/syntax.test ("while"): Test.
* doc/ref/api-control.texi (while do): Document.
* doc/ref/api-data.texi (Conversion to/from C): In descriptions of
scm_to_stringn and scm_to_{latin1,utf8,utf32}, clarify that the
returned length is in units of bytes or code points, not characters.
Also change NULL to @code{NULL} in a few places.
* doc/ref/api-evaluation.texi (Compilation): Add discussion of
--fresh-auto-compile.
* doc/ref/scheme-scripts.texi (Invoking Guile): Add --fresh-auto-compile
option.
* NEWS: Add entry.
* libguile/load.c: Define %fresh-auto-compile.
(scm_primitive_load_path): Use it here.
(scm_init_load_should_auto_compile): Init from GUILE_AUTO_COMPILE env
var, with a value of "fresh".
* module/ice-9/boot-9.scm (load-in-vicinity): Auto-compilation cache is
stale if %fresh-auto-compile is true.
* module/ice-9/command-line.scm (compile-shell-switches): Parse out
--fresh-auto-compile.
* libguile/numbers.c (scm_exact_integer_sqrt): New C procedure to
compute exact integer square root and remainder.
(scm_i_exact_integer_sqrt): New Scheme procedure `exact-integer-sqrt'
from the R6RS, imported into core guile.
* libguile/numbers.h: Add prototypes.
* module/rnrs/base.scm: Remove broken stub implementation, which would
fail badly when applied to large integers.
* doc/ref/api-data.texi: Add documentation.
* doc/ref/r6rs.texi: Change documentation for `exact-integer-sqrt' to a
stub that xrefs the core docs, as is done for other operations
available in core.
* test-suite/tests/numbers.test: Add tests.
* NEWS: Add news entries.
* module/ice-9/boot-9.scm (define-inlineable): Moved here from SRFI-9.
* module/srfi/srfi-9 (define-inlinable): Removed here.
* doc/ref/api-procedures.texi (Inlinable Procedures): Add subsection
about `define-inlinable'.
* doc/ref/api-data.texi (Arithmetic): `floor-remainder' is equivalent to
the R5RS `modulo' when the arguments are integers. Previously,
equivalence was claimed only for exact integers. Similarly for
`truncate-quotient' and `truncate-remainder' compared with the R5RS
`quotient' and `remainder'.
* test-suite/tests/foreign.test ("pointer<->string"): Add test cases.
* libguile/foreign.c (scm_string_to_pointer, scm_pointer_to_string): Add
optional encoding, and in the pointer->string case, length arguments.
* libguile/foreign.h: Update prototypes of internal functions.
Shouldn't affect ABI as they are internal.
* doc/ref/api-foreign.texi (Void Pointers and Byte Access): Update
docs.
* doc/ref/scheme-scripts.texi (Invoking Guile): Document -q.
* doc/ref/scheme-using.texi (Init File): New section, on .guile.
(Readline): Link to Init File.
(System Commands): Document the various REPL options, and
repl-default-option-set!.
* doc/ref/tools.texi (Executable Modules): Say "guile-tools modules"
instead of "executable modules". Remove obsolete statements about
not ending in .scm, being executable, and beginning with shell
script invocation sequence.
* module/scripts/README: Ditto.
It's just one variable definition, and in my opinion it confuses,
rather than helps, the overall build picture to have two names
(preinstguile and meta/guile) for the same thing.
* am/Makefile.am (am_frags): Remove pre-inst-guile.
* am/pre-inst-guile: Deleted.
* doc/ref/Makefile.am: Don't include am/pre-inst-guile.
($(snarf_doc).am, $(snarf_doc).texi): Expand $(preinstguile).
* module/Makefile.am (ice-9/psyntax-pp.scm.gen): Don't include
am/pre-inst-guile.
(ice-9/psyntax-pp.scm.gen): Expand $(preinstguile).
* libguile/strings.c (scm_to_locale_stringn, scm_from_locale_stringn):
Use the encoding of the current locale, not of the current i/o ports.
Also use the current conversion strategy.
* doc/ref/api-data.texi (Conversion to/from C): Update docs.
* libguile/foreign.c (scm_pointer_to_scm, scm_scm_to_pointer): New
functions, useful to pass and receive SCM values to and from foreign
functions.
* module/system/foreign.scm: Export the new functions.
* doc/ref/api-foreign.texi (Foreign Variables): Add docs.
* test-suite/tests/foreign.test ("pointer<->scm"): Tests.
The expansion of `define-inlinable' contained an expression, which made
SRFI-9's `define-record-type' fail in non-toplevel contexts ("definition
used in expression context").
* module/srfi/srfi-9.scm (define-inlinable): Get rid of apparently
useless expression in the expansion, so the expansion yields only
definitions. At the same time, use a space in the generated names to
lessen the chances of name conflicts, also avoiding -Wunused-toplevel
warnings.
* test-suite/tests/srfi-9.test (non-toplevel): New test verifying that
`define-record-type' works in non-toplevel context as well.
* doc/ref/srfi-modules.texi (SRFI-9 - define-record-type): Add
subsubsection noting that Guile does not enforce top-levelness.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* libguile/keywords.c (scm_from_latin1_keyword, scm_from_utf8_keyword):
New functions appropriate for use when keyword name is a constant.
(scm_from_locale_keyword, scm_from_locale_keywordn): Change formal
parameter from `str' to `name'.
* libguile/keywords.h: Add prototypes for new functions. Change formal
parameter of scm_from_locale_keyword* from `str' to `name'.
* doc/ref/api-data.texi: Document new functions. Remind users that
scm_from_locale_keyword should not be used when the name is a C string
constant. Change formal parameter from `str' to `name'.
* doc/ref/api-data.texi (Conversion to/from C): Document
scm_from_latin1_string, scm_from_utf8_string, and
scm_from_utf32_string. Remind readers that these functions should be
used to convert C string constants, and that scm_from_locale_string is
_not_ appropriate for that purpose.
(Symbol Primitives): Document scm_from_latin1_symbol and
scm_from_utf8_symbol. Remind readers that these functions should be
used when the specified names are C string constants, and that
scm_from_locale_symbol is _not_ appropriate for that purpose.
* doc/ref/r6rs.texi (rnrs base): `(finite? x)' returns true iff x is
neither infinite nor a NaN. Previously, it stated that `finite?' was
the negation of `infinite?', which was incorrect because NaNs are
neither finite nor infinite. Combine description of 'nan?' with those
of `finite?' and `infinite?'.
* doc/guile.1: Added the current month and year, Guile version
descriptive text, and the text GNU to the title.
Updated the nroff formatting commands for the SYNOPSIS and OPTIONS
sections to what 'man' prescribes. See 'man(1)', 'man(7)', and
'man-pages(7)'.
Corrected grammar, spelling, and capitalization (for example,
'scheme' to 'Scheme').
Vertical white-space was non-standard (two lines between some
sections, one space between others). Changed this to the standard
one empty line before each section heading, and added dots (a single
period on a line) before every section heading (.SH) so that
maintainers will find the readability unchanged.
Added white space to follow the 'groff' recommendation of starting
every sentence on its own line, and breaking sentences at
punctuation.
Corrected an error in description of the info command.
Added the missing option '--no-debug', and the short switches '-h'
and '-v'.
Changed the description of the environment variable
GUILE_LOAD_COMPILED_PATH so that it references the Guile variable
`%load-compiled-path' instead of the variable `%load-path'.
Updated the copyright to include 2011.
This meta-command allows one to set the default number of columns
that output from ,backtrace and ,locals shall occupy.
* doc/ref/scheme-using.texi (Debug Commands): document ,width
* module/system/repl/command.scm (*width*): new var
(backtrace, locals): use *width* in optarg
(width): new meta-command
* doc/ref/api-foreign.texi (Foreign Libraries): Make it clear that the
LIBRARY argument of `dynamic-link' should not contain an extension.
(Foreign Functions): Add cross-reference from `load-extension' to
`dynamic-link'. Typeset file names and module names correctly.
* doc/ref/autoconf.texi (Using Autoconf Macros): Switch example to use
PKG_CHECK_MODULES.
* doc/ref/libguile-linking.texi (A Sample Guile Main Program): Likewise,
and change from configure.in to configure.ac, and recommend
autoreconf.
* doc/ref/api-options.texi (Build Config):
* doc/ref/libguile-linking.texi (Linking Programs With Guile):
(A Sample Guile Main Program):
* doc/ref/libguile-smobs.texi (The Complete Example): Use pkg-config in
the examples instead of guile-config.