Ludovic Courtès [Fri, 8 Jan 2010 09:57:32 +0000 (10:57 +0100)]
Use `HORIZONTAL ELLIPSIS' when available in `truncated-print'.
* module/ice-9/pretty-print.scm (truncated-print): Set
`%default-port-encoding' to the encoding of PORT. Choose either
U+2026 or "..." depending on PORT's encoding.
* test-suite/tests/print.test ("truncated-print")[tprint]: New ENCODING
argument. Update existing tests accordingly. Add UTF-8 tests.
* doc/ref/misc-modules.texi (Pretty Printing): Mention the possible use
of U+2026.
Andy Wingo [Wed, 6 Jan 2010 21:16:57 +0000 (22:16 +0100)]
remove scm_tc7_gsubr
* libguile/tags.h (scm_tc7_gsubr): Return to the pool of unused tc7s, as
there are no more gsubrs. Yay :)
* libguile/programs.h (SCM_F_PROGRAM_IS_PRIMITIVE):
(SCM_PROGRAM_IS_PRIMITIVE): New flag and accessor.
* libguile/gsubr.c (create_gsubr):
* libguile/snarf.h (SCM_STATIC_PROGRAM): Give subrs a PRIMITIVE flag.
* libguile/smob.h:
* libguile/smob.c (scm_i_smob_arity): New internal procedure. Uses the
old GSUBR type macros, local to the file.
* libguile/procprop.c (scm_i_procedure_arity): Call out to
scm_i_smob_arity, and remove a gsubr case.
* libguile/gc.c (scm_i_tag_name):
* libguile/evalext.c (scm_self_evaluating_p):
* libguile/goops.c (scm_class_of):
* libguile/vm.c (apply_foreign):
* libguile/hash.c (scm_hasher):
* libguile/debug.c (scm_procedure_name):
* libguile/print.c (iprin1): Remove gsubr cases.
* libguile/gsubr.h (SCM_PRIMITIVE_P): Fix to work with the new VM
program regimen.
(SCM_GSUBR_TYPE, SCM_GSUBR_MAKTYPE, SCM_GSUBR_MAX, SCM_GSUBR_REQ)
(SCM_GSUBR_OPT, SCM_GSUBR_REST): Remove these macros, that are no
longer useful.
* libguile/gsubr.c (scm_i_gsubr_apply, scm_i_gsubr_apply_list)
(scm_i_gsubr_apply_array): Remove internal gsubr application
functions.
Andy Wingo [Wed, 6 Jan 2010 20:45:48 +0000 (21:45 +0100)]
fix procedure-name on applicable structs
* libguile/debug.c (scm_procedure_name): Fix for applicable structs.
Andy Wingo [Wed, 6 Jan 2010 19:11:33 +0000 (20:11 +0100)]
subrs are now VM trampoline procedures
* libguile/_scm.h: Add foreign.h and programs.h to the private include
list, as snarfing subrs with static allocation now needs access to
some of their enums and macros.
* libguile/gsubr.c (create_gsubr): Instead of creating a tc7_gsubr
object, create a VM program with the call-subr opcode, so that the
representation of subrs is now gsubrs. CPP and elisp, together at
last.
(scm_subr_objcode_trampoline): New function, used by the SCM_DEFINE
snarf macro.
* libguile/gsubr.h (SCM_SUBR_META_INFO, SCM_SUBR_PROPS)
(SCM_SET_SUBR_GENERIC_LOC, SCM_SUBR_ARITY_TO_TYPE): Remove these
macros. They were never deprecated, but hopefully people aren't using
them.
(SCM_SUBRF, SCM_SUBR_NAME, SCM_SUBR_GENERIC, SCM_SET_SUBR_GENERIC):
Update to work on the new subr representation.
* libguile/objcodes.h (SCM_F_OBJCODE_IS_STATIC): New flag, indicates
that the "backing store" of the objcode is statically allocated.
* libguile/procprop.c (scm_sym_name): Define here instead of in gsubr.c.
* libguile/snarf.h (SCM_DEFINE): If we are doing static allocation,
statically allocate the foreign object, the object table, and the
program, and use some SCM_SNARF_INITtery to fix things up.
Unfortunately I have not been able to make this immutable. It might be
possible, though.
(SCM_IMMUTABLE_CELL, SCM_STATIC_DOUBLE_CELL, SCM_IMMUTABLE_FOREIGN):
(SCM_STATIC_SUBR_OBJVECT, SCM_STATIC_PROGRAM): New helper macros.
Andy Wingo [Wed, 6 Jan 2010 10:09:56 +0000 (11:09 +0100)]
better scm_subr_p deprecation
* libguile/deprecated.h (scm_subr_p): Dispatch instead to scm_i_subr_p so we get
link-time and run-time warnings.
* libguile/deprecated.c (scm_i_subr_p): Here we call SCM_PRIMITIVE_P.
Andy Wingo [Wed, 6 Jan 2010 10:06:37 +0000 (11:06 +0100)]
provide missing prototypes
* libguile/array-map.c:
* libguile/chars.c:
* libguile/eq.c:
* libguile/strorder.c: Provide declarations missing after the asubrs/rpsubrs ->
gsubr conversion.
Andy Wingo [Tue, 5 Jan 2010 18:49:18 +0000 (19:49 +0100)]
boot the VM very early in init.c
* libguile/init.c (scm_i_init_guile): Now that the VM doesn't depend on
smobs, we can boot it before anything.
Andy Wingo [Tue, 5 Jan 2010 18:45:56 +0000 (19:45 +0100)]
tc7 tags for vm-related data
* libguile/tags.h (scm_tc7_frame, scm_tc7_objcode, scm_tc7_vm)
(scm_tc7_vm_cont): Take more tc7s for VM-related data structures.
* libguile/evalext.c (scm_self_evaluating_p):
* libguile/gc.c (scm_i_tag_name):
* libguile/goops.c (scm_class_of, create_standard_classes):
* libguile/print.c (iprin1): Add cases for the new tc7s.
* libguile/frames.c:
* libguile/frames.h:
* libguile/objcodes.c:
* libguile/objcodes.h:
* libguile/vm.c:
* libguile/vm.h: Desmobify.
* libguile/vm.c (scm_vm_apply): Export to Scheme, because VM objects are
no longer applicable.
* module/system/repl/command.scm (profile):
* module/system/vm/trace.scm (vm-trace):
* module/system/vm/vm.scm (vm-load): Call vm-apply to run a program in a
VM instead of treating the VM as applicable.
Andy Wingo [Tue, 5 Jan 2010 17:50:17 +0000 (18:50 +0100)]
properly integrate vm bootstrapping into init.c
* libguile/Makefile.am (modinclude_HEADERS):
* libguile/vm-bootstrap.h: Remove vm-bootstrap.h.
* libguile/frames.c: No more vm-bootstrap.h.
* libguile/instructions.c (scm_init_instructions):
* libguile/objcodes.c (scm_init_objcodes):
* libguile/programs.c (scm_init_programs): No need to call
scm_bootstrap_vm, init.c does that for us.
* libguile/vm.c (scm_bootstrap_vm): No need call e.g.
scm_bootstrap_frames, init.c does that. Remove a twice-calling guard,
should be unnecessary. Don't define the load-compiled subr here.
* libguile/load.c (scm_init_load): Define the load-compiled subr here.
* libguile/vm.h: Declare scm_bootstrap_vm here.
* libguile/init.c (scm_i_init_guile): Properly integrate VM
bootstrapping into this file.
Andy Wingo [Tue, 5 Jan 2010 17:36:27 +0000 (18:36 +0100)]
boot bytevectors earlier
* libguile/init.c (scm_i_init_guile): It turns out generalized-vectors
and generalized-arrays don't actually block anyone in the dependency
graph, so punt those back to the end. Bootstrap bytevectors earlier,
though, which don't actually depend on smobs.
Andy Wingo [Thu, 7 Jan 2010 22:40:59 +0000 (23:40 +0100)]
inline srfi-4 vector accessors
* module/language/tree-il/primitives.scm
(*interesting-primitive-names*): Inline srfi-4 vector accessors.
Andy Wingo [Thu, 7 Jan 2010 22:30:02 +0000 (23:30 +0100)]
update uniform vector docs
* doc/ref/api-compound.texi (Uniform Numeric Vectors): Make a subsection
of "Vectors", and link out to SRFI-4, where the main text has been
moved.
* doc/ref/api-data.texi (Bytevectors as Uniform Vectors): New section.
* doc/ref/srfi-modules.texi (SRFI-4): Move body of uniform vector docs
here. Discuss new module separation. Discuss relation to bytevectors.
Andy Wingo [Sun, 19 Jul 2009 13:35:33 +0000 (15:35 +0200)]
reimplement srfi-4 vectors on top of bytevectors
* libguile/srfi-4.h:
* libguile/srfi-4.c (scm_make_srfi_4_vector): New function, exported by
(srfi srfi-4 gnu).
* libguile/srfi-4.i.c: Removed.
* module/srfi/srfi-4.scm:
* module/srfi/srfi-4/gnu.scm: Reimplement srfi-4 vectors on top of
bytevectors. The implementation is mostly in Scheme now.
* test-suite/tests/unif.test: Update to use (srfi srfi-4 gnu).
* libguile/bytevectors.c (bytevector_ref_c32, bytevector_ref_c64)
(bytevector_set_c32, bytevector_set_c64): Fix some embarrassing bugs.
Still need to do an upper bounds check.
* libguile/deprecated.h: Remove deprecated array functions:
scm_i_arrayp, scm_i_array_ndim, scm_i_array_mem, scm_i_array_v,
scm_i_array_base, scm_i_array_dims, and the deprecated macros:
SCM_ARRAYP, SCM_ARRAY_NDIM, SCM_ARRAY_CONTP, SCM_ARRAY_MEM,
SCM_ARRAY_V, SCM_ARRAY_BASE, SCM_ARRAY_DIMS.
* libguile/deprecated.c (scm_uniform_vector_read_x)
(scm_uniform_vector_write, scm_uniform_array_read_x)
(scm_uniform_array_write): Newly deprecated functions.
* libguile/generalized-arrays.c (scm_array_type): Remove the bytevector
hack.
* libguile/objcodes.c (scm_bytecode_to_objcode, scm_objcode_to_bytecode):
Rework to operate on bytevectors, as scm_make_u8vector now causes a
module lookup, which can't be done e.g. when loading the VM boot
program for psyntax-pp.go on a fresh bootstrap.
* libguile/objcodes.h (SCM_F_OBJCODE_IS_BYTEVECTOR):
(SCM_OBJCODE_IS_BYTEVECTOR): s/U8VECTOR/BYTEVECTOR/.
* module/ice-9/boot-9.scm (the-scm-module): A terrible hack to pull in
(srfi srfi-4), as the bindings are primarily there now. We'll worry
about this later.
Andy Wingo [Tue, 5 Jan 2010 16:25:53 +0000 (17:25 +0100)]
Revert "Remove unused internal bytevector functions."
This reverts commit
c4daa519107798d06ae96d2f69dc211fc57cc8a3.
Andy Wingo [Sat, 18 Jul 2009 17:08:43 +0000 (19:08 +0200)]
clean up includes in vectors.[ch]
* libguile/vectors.h:
* libguile/vectors.c: Clean up the includes... mostly.
Andy Wingo [Thu, 7 Jan 2010 15:40:13 +0000 (16:40 +0100)]
fix array->list
* libguile/generalized-arrays.c (array_to_list): Fix buggy
implementation. Thanks to Daniel Llorens del Río for the bug repor.
Ludovic Courtès [Wed, 6 Jan 2010 22:55:13 +0000 (23:55 +0100)]
Enclose hooks tests in their own module.
* test-suite/tests/hooks.test: Enclose in `(test-suite test-hooks)'
module.
Ludovic Courtès [Wed, 6 Jan 2010 22:54:21 +0000 (23:54 +0100)]
Fix 1.8-compatibility of `scm_search_path ()'.
* libguile/load.c (scm_search_path): Handle the 1.8-compatibility case
where REST is `SCM_UNDEFINED'. Reported by Dale P. Smith.
Ludovic Courtès [Thu, 7 Jan 2010 09:41:17 +0000 (10:41 +0100)]
Use Gnulib's `full-write' instead of custom code.
* libguile/fports.c (write_all): Remove.
(fport_write): Use `full_write ()' instead of `write_all ()'.
Ludovic Courtès [Wed, 6 Jan 2010 23:37:10 +0000 (00:37 +0100)]
Use `encoding-error' instead of `misc-error' for string encoding errors.
* libguile/strings.c (scm_encoding_error): New function.
(scm_from_stringn, scm_to_stringn): Use it instead of `scm_misc_error ()'.
* test-suite/lib.scm (exception:encoding-error): Adjust accordingly.
* test-suite/tests/encoding-escapes.test (exception:conversion):
Remove. Use `exception:encoding-error' instead.
* test-suite/tests/encoding-iso88591.test: Likewise.
* test-suite/tests/encoding-iso88597.test: Likewise.
* test-suite/tests/encoding-utf8.test: Likewise.
Ludovic Courtès [Thu, 7 Jan 2010 10:00:37 +0000 (11:00 +0100)]
Have string ports honor `%default-port-encoding'.
* libguile/strports.c (scm_i_mkstrport): Remove.
(scm_mkstrport): Don't change the port's encoding to UTF-8; convert
STR to the default port encoding.
(scm_strport_to_string): Fix documentation & indentation.
* libguile/strports.h (scm_i_mkstrport): Remove.
* test-suite/lib.scm (exception:encoding-error): New variable.
(format-test-name): Set `%default-port-encoding' to "UTF-8".
* test-suite/tests/ports.test ("string ports")["%default-port-encoding
is honored", "suitable encoding [latin-1]", "suitable encoding
[latin-3]", "wrong encoding"]: New tests.
* test-suite/tests/r6rs-ports.test ("7.2.11 Binary
Output")["put-bytevector with UTF-16 string port", "put-bytevector
with wrong-encoding string port"]: New tests.
* test-suite/tests/reader.test (read-string): Set
`%default-port-encoding' to `#f'.
("reading")["unprintable symbol"]: Use a string that doesn't contain
zeros.
* doc/ref/api-io.texi (String Ports): Document encoding issues with
`call-with-output-string' and `with-output-to-string'.
Ludovic Courtès [Wed, 6 Jan 2010 22:52:40 +0000 (23:52 +0100)]
Add in-source documentation of `scm_to_stringn ()'.
* libguile/strings.c (scm_to_stringn): Add documentation comment.
Andy Wingo [Thu, 7 Jan 2010 09:40:38 +0000 (10:40 +0100)]
fix compiler warnings in foreign.c
* libguile/foreign.c (scm_c_from_foreign, scm_c_take_foreign): Fix
compiler warnings on 64-bit machines.
Andy Wingo [Tue, 5 Jan 2010 15:51:58 +0000 (16:51 +0100)]
add subr-call VM op
* libguile/vm-i-system.c (subr_call): Add subr-call VM op.
Andy Wingo [Tue, 5 Jan 2010 15:50:58 +0000 (16:50 +0100)]
add SCM_PROGRAM_IS_PRIMITIVE_GENERIC flag and checker
* libguile/programs.h (SCM_F_PROGRAM_IS_PRIMITIVE_GENERIC)
(SCM_PROGRAM_IS_PRIMITIVE_GENERIC): Add a primitive-generic flag and
accessor, for when we switch primitives to be implemented using VM
trampolines.
Andy Wingo [Tue, 5 Jan 2010 15:50:39 +0000 (16:50 +0100)]
program-meta procedures get their program's objtable
* libguile/programs.c (scm_program_meta): Give the program meta
procedure the same object table as the main procedure. Will allow for
easier hand-crafting of meta programs. Of course when compiling a
metadata procedure from Scheme, one still wants to avoid preallocating
the heap objects needed by the metadata...
Julian Graham [Thu, 7 Jan 2010 04:01:05 +0000 (23:01 -0500)]
Attempt to narrow normalized strings.
* libguile/strings.c (normalize_str): Clean up indentation. Add call to
scm_i_try_narrow_string.
Andy Wingo [Tue, 5 Jan 2010 15:31:12 +0000 (16:31 +0100)]
remove unused snarf macros
* libguile/snarf.h (SCM_DEFINE1, SCM_PRIMITIVE_GENERIC_1, SCM_PROC1)
(SCM_GPROC1): Remove, as these deal in the removed typed subr
constructors.
* libguile/tags.h (scm_tcs_subrs): Remove this. Use scm_tc7_gsubr
instead, though hopefully that will go too, soon.
Andy Wingo [Tue, 5 Jan 2010 15:15:14 +0000 (16:15 +0100)]
move subr implementation details to gsubr.[ch]
* libguile/procs.h: Move subr macros to gsubr.h.
* libguile/procs.c (scm_c_make_subr, scm_c_make_subr_with_generic)
(scm_c_define_subr, scm_c_define_subr_with_generic): Remove these,
because they deal in subr types, and now there is only one subr type.
The body of this code is now in gsubr.c.
* libguile/deprecated.h (scm_subr_p): Remove from procs.[ch] and define
as a deprecated macro. Only used internally, but who knows who's out
there.
* libguile/goops.c (scm_generic_capability_p)
(scm_enable_primitive_generic_x, scm_set_primitive_generic_x)
(scm_primitive_generic_generic): Use the new SCM_PRIMITIVE_GENERIC_P
macro instead of calling scm_subr_p.
* libguile/gsubr.h (SCM_PRIMITIVE_P, SCM_PRIMITIVE_GENERIC_P): New
macros, to replace scm_subr_p and hacky checking for generic
capability.
(SCM_SUBR_META_INFO, SCM_SUBR_NAME, SCM_SUBRF, SCM_SUBR_PROPS)
(SCM_SUBR_GENERIC, SCM_SET_SUBR_GENERIC, SCM_SET_SUBR_GENERIC_LOC)
(SCM_SUBR_ARITY_TO_TYPE): Moved here from procs.h.
* libguile/gsubr.c (create_gsubr): Inline the
scm_c_make_subr definition here, and work for generics too. Removed a
scm_remember_upto_here_1 that was added earlier in the year when
meta_info was not being traced by the GC. Adapt callers.
Andy Wingo [Tue, 5 Jan 2010 14:20:47 +0000 (15:20 +0100)]
clean up macros.[ch]
There are some incompatible changes here, but only to interfaces that
were introduced earlier in 1.9, or interfaces which have been broken
since early in 1.9.
* libguile/_scm.h (SCM_OBJCODE_MINOR_VERSION): Bump, as the macro
changes affect the interface that is called by psyntax-generated macro
definitions.
* libguile/inline.h (scm_words): New function, allocates a variable
number of contiguous scm_t_bits locations, with a given value in the
0th word, and 0 in the rest of the words.
* libguile/macros.h: Rework interface to correspond more closely, and
minimally, to the needs of memoize.c and psyntax.
(SCM_ASSYNT, SCM_MACRO_TYPE_BITS, SCM_MACRO_TYPE_MASK)
(SCM_F_MACRO_EXTENDED, SCM_MACROP, SCM_MACRO_TYPE)
(SCM_MACRO_IS_EXTENDED, SCM_BUILTIN_MACRO_P, SCM_SYNCASE_MACRO_P)
(SCM_MACRO_CODE, scm_tc16_macro): Remove CPP macros related to the
representation of Scheme macros.
(scm_i_make_primitive_macro): Renamed from scm_i_makbimacro.
(scm_i_macro_primitive): New accessor so that memoize.c can get to the
primitive syntax transformer.
(scm_make_syncase_macro, scm_make_extended_syncase_macro)
(scm_syncase_macro_type, scm_syncase_macro_binding): Removed these
functions, replaced by make-syntax-transformer and its accessors.
(scm_macro_binding): New accessor, the same as what
scm_syncase_macro_binding was.
* libguile/macros.c: All representation details of syntax transformers
are private to this file now.
(macro_print): Print macros as #<syntax-transformer ...>, or
#<primitive-syntax-transformer ...> if psyntax has not attached a
transformer of its own.
(scm_i_make_primitive_macro): Represent macros as 5-word smobs.
(scm_make_syntax_transformer): New constructor for syntax transformers
(macros), exported to scheme. Takes a name, and looks it up in the
current module to determine the previous primitive transformer, if
any.
(scm_macro_type): Instead of returning 'builtin-macro!, etc, return
the type as set by psyntax, or #f if it's a primitive.
(scm_macro_name): Return the stored macro name.
(scm_macro_transformer): Return the psyntax-set syntax transformer.
Hacky, but should help introspection somewhat.
* libguile/memoize.c (memoize_env_ref_transformer): Use the new
scm_i_macro_primitive, and adapt to other macro API changes.
* module/ice-9/psyntax.scm (put-global-definition-hook)
(get-global-definition-hook, chi-install-global): Call (and generate
calls to) the new macro constructors and accessors.
* module/ice-9/psyntax-pp.scm: Doubly regenerated.
* module/ice-9/debugging/traps.scm (trap-here): Comment out this
definition and export, while it's not working.
Andy Wingo [Tue, 5 Jan 2010 10:05:12 +0000 (11:05 +0100)]
remove mmacros, SCM_SYNTAX snarf macro
* libguile/snarf.h (SCM_SYNTAX): Remove snarf macro, users can't define
primitive syntax any more.
* libguile/memoize.c (SCM_SYNTAX): Define locally, and just call
scm_i_makbimacro as there's no difference between that and
scm_makmmacro. Alter invocations to suit.
* libguile/macros.h:
* libguile/macros.c (scm_i_makmmacro): Remove; users can't define
primitive syntax any more. Use define-syntax instead.
(scm_make_synt): Remove, this was only used by the SCM_SYNTAX snarf
macro.
(scm_i_makbimacro): Change prototype of this internal function to make
the gsubr on behalf of the caller.
(macro_print, scm_macro_type): Remove cases for mmacros.
Andy Wingo [Tue, 5 Jan 2010 09:39:40 +0000 (10:39 +0100)]
remove scm_makacro and scm_makmacro
* libguile/macros.h:
* libguile/macros.c (scm_makacro): Remove this function for making
"acros", as it is unused and won't work with the compiler.
(scm_makmacro): Remove this deprecated function for making
non-memoizing macros, as they won't work with the compiler.
(macro_print, scm_macro_type): Remove a couple of cases for macros
that can't be created any more.
Andy Wingo [Tue, 5 Jan 2010 09:17:41 +0000 (10:17 +0100)]
fix include paths in foreign.c
* libguile/foreign.c: Fix include paths.
Andy Wingo [Tue, 5 Jan 2010 09:16:45 +0000 (10:16 +0100)]
remove the deprecatd scm_make_subr_*
* libguile/deprecated.h:
* libguile/deprecated.c (scm_make_subr, scm_make_subr_with_generic)
(scm_make_subr_opt): Remove these functions that were deprecated in
2003, as they explicitly reference subr types.
Andy Wingo [Mon, 4 Jan 2010 11:21:02 +0000 (12:21 +0100)]
dynamic-func returns foreign objects, not bignums
* libguile/dynl.c (scm_dynamic_func, scm_dynamic_call)
(scm_dynamic_args_call): Change the representation of dynamic
functions to be foreign objects. Shouldn't affect any users, as people
should be treating the return value of dynamic-func as an opaque
object.
Andy Wingo [Mon, 4 Jan 2010 11:11:33 +0000 (12:11 +0100)]
add foreign value wrapper
* libguile/foreign.h:
* libguile/foreign.c: New files, implementing simple wrappers around
foreign values, such as those that one might link in dynamically from
a library.
* libguile/tags.h (scm_tc7_foreign): Take a tc7 for foreign values.
* libguile.h:
* libguile/init.c: Add foreign.h to headers and init.
* libguile/print.c (iprin1): Add printer for foreign values.
* libguile/gc.c (scm_i_tag_name): Case for foreign values.
* libguile/goops.c (scm_class_of, create_standard_classes): Add a class
for foreign values.
* libguile/evalext.c (scm_self_evaluating_p): Add case for foreign
values.
* libguile/Makefile.am: Add foreign.[ch] to the build.
Ludovic Courtès [Sun, 3 Jan 2010 18:15:42 +0000 (19:15 +0100)]
Update `.gitignore'.
Ludovic Courtès [Sun, 3 Jan 2010 18:15:05 +0000 (19:15 +0100)]
Add per-directory Emacs local variables.
Ludovic Courtès [Sun, 3 Jan 2010 18:06:52 +0000 (19:06 +0100)]
Remove dependency on GNU Make and reliance on /usr/bin/env.
Both were introduced in commit
c55cb58a ("integrate guile-lib docs").
* doc/ref/Makefile.am ($(snarf_doc)scmfiles): Rename target to...
($(snarf_doc)-scmfiles): ... this. Change to generate a makefile
snippet containing a variable definition. Automake-include the
generated snippet, `standard-library.am'.
(EXTRA_DIST): Add `$(snarf_doc).am'.
(CLEANFILES): Remove `$(snarf_doc)scmfiles'.
* doc/ref/make-texinfo.scm: Remove executable bit and "#!/usr/bin/env".
* doc/ref/standard-library.am: New file.
Andy Wingo [Sun, 3 Jan 2010 13:49:40 +0000 (14:49 +0100)]
rename goto/args and friends to tail-call, tail-apply, etc
* libguile/vm-i-system.c (tail-call, tail-call/nargs, tail-apply)
(tail-call/cc): Rename these back to tail-* from goto/*. We should
reserve the rename-then-goto name for when you actually do a rename
and goto, not when you shuffle the stack.
* doc/ref/vm.texi:
* module/language/glil/decompile-assembly.scm:
* module/language/tree-il/compile-glil.scm:
* test-suite/tests/tree-il.test: Adapt all callers and documentation.
Andy Wingo [Sun, 3 Jan 2010 12:35:35 +0000 (13:35 +0100)]
add truncated-print tests
* doc/ref/misc-modules.texi (Pretty Printing): Fix an error in
truncated-print example.
* test-suite/Makefile.am:
* test-suite/tests/print.test: Add truncated-print tests.
Andy Wingo [Sun, 3 Jan 2010 11:36:37 +0000 (12:36 +0100)]
fix bug in generalized-vector->list
* libguile/generalized-vectors.c (scm_generalized_vector_to_list): Fix
bug iterating over indices of array. Thanks to Tristan Colgate for the
report.
* test-suite/tests/srfi-4.test: Add tests that uniform-vector->list
works for all kinds of uniform vectors.
Julian Graham [Sun, 3 Jan 2010 06:06:05 +0000 (01:06 -0500)]
Support for Unicode string normalization functions
* libguile/strings.c, libguile/strings.h (normalize_str,
scm_string_normalize_nfc, scm_string_normalize_nfd, scm_normalize_nfkc,
scm_string_normalize_nfkd): New functions.
* test-suite/tests/strings.test: Unit tests for `string-normalize-nfc',
`string-normalize-nfd', `string-normalize-nfkc', and
`string-normalize-nfkd'.
* doc/ref/api-data.texi (String Comparison): Documentation for normalization
functions.
Andy Wingo [Tue, 29 Dec 2009 20:26:48 +0000 (21:26 +0100)]
cleanups to debugger
* module/system/vm/debug.scm (debugger-repl): Remove the `bindings'
command, it is superseded by `locals'.
Update the TODO.
(debug-pre-unwind-handler): Remove scary "beta" warning. Already being
able to bt #:width 1000 #:full? #t is quite useful...
Andy Wingo [Tue, 29 Dec 2009 20:19:05 +0000 (21:19 +0100)]
debugger's backtrace implemented in scheme
* module/system/vm/debug.scm (print-locals): Factor out to a function.
(collect-frames, print-frames): Implement the guts of `backtrace' in
Scheme.
(debugger-repl): Add #:width and #:full? options to `backtrace'.
Backtrace uses the backtrace code implemented in scheme.
Andy Wingo [Tue, 29 Dec 2009 20:17:07 +0000 (21:17 +0100)]
frames.c no longer exports frame-source -- frame.scm does so already
* libguile/frames.c (scm_frame_source): No longer exported to Scheme
via init's call to scm_init_frames; in fact just calls the Scheme
version. Perhaps this function is on its way out, though :)
Andy Wingo [Tue, 29 Dec 2009 20:15:08 +0000 (21:15 +0100)]
~:@y allows for truncation to an absolute maximum width
* module/ice-9/format.scm (format): Allow ~:@y to interpret the width as
the maximum width, inclusive of whatever else has already been output.
* doc/ref/misc-modules.texi (Formatted Output): Document this.
Andy Wingo [Tue, 29 Dec 2009 13:35:10 +0000 (14:35 +0100)]
integers at debugger select frames
* module/system/vm/debug.scm (debugger-repl): Fix implementation of
frame-at-index. Allow integers as commands, as a shorthand for "frame
N".
Andy Wingo [Tue, 29 Dec 2009 13:09:50 +0000 (14:09 +0100)]
clean up (system vm frames), add locals command to debugger
* libguile/frames.c (scm_init_frames): No need to bootstrap the VM here,
it should be already bootstrapped by init.c.
(scm_bootstrap_frames): No need to register an extension, as
scm_init_frames is called by init.c.
* module/system/vm/frame.scm: Don't load the scm_init_frames extension,
as the primitives from frames.c are loaded by Guile's init.
(frame-bindings): Change to return bindings, as can be accessed by the
binding: accessors from program.scm.
(frame-lookup-binding): Revive and make this one work with current
code.
(frame-binding-set!):
(frame-binding-ref): Use the new frame-lookup-binding. Perhaps these
should handle boxing and unboxing, though.
(frame-source): New accessor, returns a source object.
(frame-call-representation): Change to return a full list, as
truncated-print can truncate for us.
(frame-environment, frame-object-binding, frame-object-name): Update
not to take an address, as the address is part of the frame.
(frame-variable-exists?, frame-variable-ref, frame-variable-set!)
(frame-local-variables, frame-program-name, print-frame)
(print-frame-chain-as-backtrace, frame-file, frame-line-number)
(make-frame-chain, bootstrap-frame?, frame-number, frame-address):
Remove these outdated functions.
* module/system/vm/debug.scm (debugger-repl): Use
frame-call-representation, and ~@y.
(locals): New command, prints local variables in a frame.
Andy Wingo [Tue, 29 Dec 2009 12:26:41 +0000 (13:26 +0100)]
add ~@y truncated printing directive to format
* doc/ref/misc-modules.texi (Formatted Output): Add documentation for
the new ~@y format directive.
(Pretty Printing): Add documentation for truncated-write.
* module/ice-9/format.scm (format): Add ~@y, for doing a truncated
print. Also, allow both ~y variants to take a width parameter.
Andy Wingo [Mon, 28 Dec 2009 17:10:51 +0000 (18:10 +0100)]
add truncated-print to (ice-9 pretty-print)
* module/ice-9/pretty-print.scm (pretty-print): Rework so "port" is the
kwarg, and "port*" is the optional arg. #:port is still the keyword.
(truncated-print): Add a printer that will ensure that the output
stays within a certain width. It could use genwrite but it doesn't
because it seems nice to allow breadth-first allocation of screen
space, and it's also nice to balance some delimiters (e.g. #< and >).
Andy Wingo [Tue, 29 Dec 2009 11:35:13 +0000 (12:35 +0100)]
fix bug in string array implementation type mask
* libguile/strings.c (SCM_ARRAY_IMPLEMENTATION): The mask for the string
array implementation should be 0x7f, without masking out 0x2.
Otherwise numbers were being thought to be vectors!
* test-suite/tests/unif.test: Add test.
* libguile/vectors.c (SCM_ARRAY_IMPLEMENTATION): Only register one
implementation, because weak vectors can be checked with the mask &
~2, and the functions are the same.
Michael Gran [Mon, 28 Dec 2009 23:26:10 +0000 (15:26 -0800)]
Add documentation for scm_c_upcase et al
* doc/ref/api-data.texi: document scm_c_upcase, scm_c_downcase,
scm_c_titlecase, and scm_t_wchar
Andy Wingo [Mon, 28 Dec 2009 15:37:59 +0000 (16:37 +0100)]
pretty-print is a lambda*
* module/ice-9/pretty-print.scm (pretty-print): Fix to always be a
define*. Shouldn't change behavior, but it will be more
introspectible.
Andy Wingo [Mon, 28 Dec 2009 15:36:29 +0000 (16:36 +0100)]
fix bug bindings lexical vars within optargs initializers
* module/language/tree-il/analyze.scm (analyze-lexicals): Fix bug in
which variables bound within inits were being improperly allocated.
* module/language/tree-il/compile-glil.scm (vars->bind-list): More
detail in terrible debugging clause.
* test-suite/tests/optargs.test ("lambda* inits"): Add tests for binding
vars within inits.
Andy Wingo [Mon, 28 Dec 2009 16:36:44 +0000 (17:36 +0100)]
Merge branch 'read-fix'
Andy Wingo [Mon, 28 Dec 2009 16:35:48 +0000 (17:35 +0100)]
Fix bugs reading long tokens
The commit "don't take string-write mutex in read.c:read_token", from
8b0d7b9d94b9f142dc4f08ce12b345321359b3cd, had a number of bugs. Not sure
how I missed these before.
* libguile/read.c (read_token): Remove a couple of bogus
scm_i_string_stop_writing () calls, now that we no longer take the
string-write mutex.
(read_complete_token): read_token really needs a fresh buffer, which
was not the case when we are reading long tokens and thus hit the
overflow case. Fixes fractions.test.
Andy Wingo [Mon, 28 Dec 2009 10:47:17 +0000 (11:47 +0100)]
fix defmacro*
* module/ice-9/optargs.scm (defmacro*): Fix implementation -- defmacro*
takes Lisp-like arguments.
(defmacro*-public): Fix also, expanding into defmacro*.
* THANKS: Thanks to Tristan Colgate for the report.
* test-suite/tests/optargs.test: Add defmacro* tests.
Andy Wingo [Mon, 28 Dec 2009 10:44:06 +0000 (11:44 +0100)]
(syntax foo) -> #'foo in boot-9
* module/ice-9/boot-9.scm: Change instances of (syntax foo) to use the
reader macro #'.
Michael Gran [Mon, 28 Dec 2009 02:44:29 +0000 (18:44 -0800)]
Incorrect indexing into character name list
When converting a character into a character name, an incorrect
character name could theoretically have been returned.
* libguile/chars.c (scm_i_charname): used wrong index into
scm_alt_charnames
Neil Jerram [Sun, 27 Dec 2009 23:24:09 +0000 (23:24 +0000)]
manual updates following libguile docstring changes
Affecting the following procedures:
* doc/ref/api-compound.texi (Uniform Numeric Vectors):
uniform-array-read!
* doc/ref/api-data.texi (Complex): make-rectangular, string=?,
string<?, string<=?, string>?, string>=?, string-ci=?, string-ci<?,
string-ci<=?, string-ci>?, string-ci>=?, string-append/shared
* doc/ref/api-evaluation.texi (Reader Extensions): read-hash-extend
* doc/ref/api-procedures.texi (Procedures with Setters): procedure,
macro?, macro-type
* doc/ref/api-undocumented.texi: module-import-interface,
%method-more-specific?
* doc/ref/new-docstrings.texi: uniform-array->bytevector,
%start-stack, guardian-destroyed?, guardian-greedy?,
destroy-guardian!, gc-dump, gc-disable, gc-enable,
make-generalized-vector, set-primitive-generic!, nl-langinfo,
%warn-autocompilation-enabled, make-syncase-macro,
make-extended-syncase-macro, syncase-macro-type,
syncase-macro-binding, memoize-expression, unmemoize-expression,
memoized-expression-typecode, memoized-expression-data,
memoized-typecode, memoize-variable-access!, module-local-variable,
module-variable, eval-closure-module, module-transformer,
module-public-interface, define!, module-reverse-lookup, cddr,
make-promise, %get-stack-size, %string-dump, %symbol-dump,
string-bytes-per-char, uniform-vector-element-type,
uniform-vector-element-size, canonicalize-path, getrlimit, setrlimit
* doc/maint/guile.texi: Corresponding tracking updates.
Neil Jerram [Sun, 27 Dec 2009 18:44:41 +0000 (18:44 +0000)]
Doc for getsid
* NEWS: Note new getsid primitive.
* doc/ref/posix.texi (Processes): Document getsid.
Neil Jerram [Sun, 27 Dec 2009 16:59:54 +0000 (16:59 +0000)]
Add support for getsid
* configure.ac: Check availability of getsid() C library call.
* libguile/posix.c (scm_getsid): New primitive.
* libguile/posix.h: Declaration for new primitive.
Julian Graham [Thu, 24 Dec 2009 05:25:19 +0000 (00:25 -0500)]
Support for Unicode general categories
* libguile/chars.c, libguile/chars.h (scm_char_general_category): New function.
* test-suite/tests/chars.test: Unit tests for `char-general-category'.
* doc/ref/api-data.texi (Characters): Documentation for
`char-general-category'.
Andy Wingo [Thu, 24 Dec 2009 13:20:41 +0000 (14:20 +0100)]
implement up, down, frame, and bindings in the repl
* module/system/vm/debug.scm (debugger-repl): Implement up, down, frame,
and bindings using the new command infrastructure.
Andy Wingo [Thu, 24 Dec 2009 07:28:59 +0000 (08:28 +0100)]
rewrite debugger command loop
* module/system/vm/debug.scm: Rewrite the command loop to have better
introspection and argument handling.
Andy Wingo [Wed, 23 Dec 2009 21:59:12 +0000 (22:59 +0100)]
keyword arg errors throw to 'keyword-argument-error
* libguile/vm-engine.c (VM_NAME): Keyword arg errors are now thrown to
'keyword-argument-error.
* libguile/vm.c: Define sym_keyword_argument_error, and statically
allocate some other symbols.
* module/ice-9/optargs.scm (parse-lambda-case): Throw to
'keyword-argument-error in kwarg error cases.
* module/ice-9/psyntax.scm (build-lambda-case): Remove a couple
workarounds for the old memoizer. Throw to 'wrong-number-of-args if
the lambda-case fails to parse.
* module/ice-9/psyntax-pp.scm: Regenerated.
* test-suite/tests/optargs.test: Update expected exceptions.
Andy Wingo [Tue, 22 Dec 2009 22:38:06 +0000 (23:38 +0100)]
implement a silly debugger
* module/system/vm/debug.scm: Implement the skeleton of a debugger. Not
very useful yet.
* module/system/repl/repl.scm (call-with-backtrace): Have the pre-unwind
hook drop the user into the debugger. Hopefully we can have something
better within a couple weeks.
Andy Wingo [Tue, 22 Dec 2009 21:52:48 +0000 (22:52 +0100)]
fix warning-caught bug in boot-9
* module/ice-9/boot-9.scm: Fix bug caught by warnings.
Julian Graham [Mon, 21 Dec 2009 23:33:12 +0000 (00:33 +0100)]
Complete support for version information in Guile's `module' form.
* module/ice-9/boot-9.scm (try-load-module, try-module-autoload): Check
for version argument and use `find-versioned-module' if present.
* module/ice-9/boot-9.scm (find-versioned-module, version-matches?)
(module-version, set-module-version!, version-matches?): New
functions.
* module/ice-9/boot-9.scm (module-type, make-module, resolve-module)
(try-load-module, process-define-module, make-autoload-interface)
(compile-interface-spec): Add awareness and checking of version
information.
* doc/ref/api-modules.texi (R6RS Version References): New subsubsection.
(General Information about Modules): Explain differences in search
process when version references are used.
(Using Guile Modules) (Creating Guile Modules): Document `#:version'
keyword.
Julian Graham [Thu, 10 Dec 2009 05:29:11 +0000 (00:29 -0500)]
Support for renaming bindings on module export.
* module/ice-9/boot-9.scm (module-export!, module-replace!)
(module-re-export!): Allow members of export list to be pairs, mapping
internal names to external ones.
* doc/ref/api-modules.texi (Creating Guile Modules): Update
documentation for `#:export', `#:export-syntax', `#:replace',
`#:re-export', `#:re-export-syntax', `export', and `re-export' to
reflect new format for arguments.
Julian Graham [Tue, 22 Dec 2009 05:19:56 +0000 (00:19 -0500)]
Improved support for Unicode title case in Guile's string and character APIs.
* doc/ref/api-data.texi (Characters): Documentation for `char-titlecase'.
* doc/ref/api-i18n.texi (Character Case Mapping): Documentation for
`char-locale-titlecase' and `string-locale-titlecase'.
* libguile/chars.c, libguile/chars.h (scm_char_titlecase, scm_c_titlecase): New
functions.
* libguile/i18n.c, libguile/i18n.h (chr_to_case, scm_char_locale_titlecase,
str_to_case, scm_string_locale_titlecase): New functions.
* libguile/i18n.c (scm_char_locale_downcase, scm_char_locale_upcase,
scm_string_locale_downcase, scm_string_locale_upcase): Refactor to share code
via chr_to_case and str_to_case, as appropriate.
* module/ice-9/i18n.scm (char-locale-title-case, string-locale-titlecase): New
functions.
* libguile/srfi-13.c (string_titlecase_x): Use uc_totitle instead of uc_toupper.
* test-suite/tests/chars.test: Tests for `char-titlecase'.
* test-suite/tests/i18n.test: Tests for `char-locale-titlecase' and
`string-locale-titlecase'.
* test-suite/tests/srfi-13.test: Tests for `string-titlecase'.
Andy Wingo [Mon, 21 Dec 2009 23:58:12 +0000 (00:58 +0100)]
untabify boot-9.scm
* module/ice-9/boot-9.scm: Untabify.
Andy Wingo [Mon, 21 Dec 2009 22:13:05 +0000 (23:13 +0100)]
tracing at repl
* module/system/repl/command.scm (option, trace): Integrate tracing (via
,trace or ,tr).
Andy Wingo [Mon, 21 Dec 2009 22:03:43 +0000 (23:03 +0100)]
(system vm trace) sorta working
* module/system/vm/trace.scm: Update to work with the current VM and its
tracing infrastructure.
Andy Wingo [Mon, 21 Dec 2009 21:12:31 +0000 (22:12 +0100)]
don't take string-write mutex in read.c:read_token
* libguile/read.c (read_token): Don't take the string-write mutex when
reading a token into a buffer, because it's assumed that the buffer is
fresh (not seen by other threads), and a soft port can call a
procedure that needs the string-write mutex.
Andy Wingo [Mon, 21 Dec 2009 20:57:20 +0000 (21:57 +0100)]
rework vm tracing
* libguile/vm-engine.c (VM_NAME): Engines take the VM itself (not the
vp), so they can pass the VM to hooks. No more hook args, we dispatch
without them.
* libguile/vm-engine.h (RUN_HOOK): Dispatch the hook if the trace level
is positive (instead of if the hook is there). Don't cache registers
on return from the dispatch.
* libguile/vm.h:
* libguile/vm.c (vm_dispatch_hook): Don't bother with a dynwind; instead
decrement the trace level when going into a hook, and if we have a
nonlocal exit, the trace level never gets incremented again. Worse is
better.
(make_vm, scm_vm_trace_level, scm_set_vm_trace_level_x): New concept,
trace level. If positive, we run the hooks, otherwise we don't. Should
work. Removed scm_vm_trace_frame, I don't think that was the right way
to do it.
* module/system/vm/vm.scm: Replace vm-trace-frame with vm-trace-level
and set-vm-trace-level!; the hooks actually get the frame as an
argument now.
Andy Wingo [Mon, 21 Dec 2009 20:06:27 +0000 (21:06 +0100)]
add scm_call_n, scm_c_run_hookn
* libguile/eval.h:
* libguile/eval.c (scm_call_n): New function, applies a function to an
array of args.
* libguile/hooks.h:
* libguile/hooks.c (scm_c_run_hookn): New function, runs a hook with an
array of args.
Andy Wingo [Mon, 21 Dec 2009 10:54:48 +0000 (11:54 +0100)]
remove "module system quirks" from the manual
* doc/ref/api-modules.texi (Module System Quirks): Remove this outdated
section.
Andy Wingo [Sun, 20 Dec 2009 23:08:18 +0000 (00:08 +0100)]
poor man's statprof integration with the repl: ,pr
* module/system/repl/command.scm (profile): Add a very poor integration
of statprof with the repl.
Andy Wingo [Sun, 20 Dec 2009 22:11:34 +0000 (23:11 +0100)]
add test suites
Andy Wingo [Fri, 18 Dec 2009 12:31:02 +0000 (13:31 +0100)]
integrate guile-lib docs
Andy Wingo [Sun, 20 Dec 2009 22:18:32 +0000 (23:18 +0100)]
texinfo fixes
* module/texinfo.scm (parser-error): Throw to 'parser-error, as ssax's
input-parse does.
(texi-command-depth): Fix docstring so as not to confuse emacs.
(parse-table-args): Fix parser-error call to include port.
Andy Wingo [Sun, 20 Dec 2009 22:17:05 +0000 (23:17 +0100)]
tweaks to statprof
* module/statprof.scm (make-call-data): Change so that call-data holds
the proc, not its name. Remove set-call-data-name!.
(get-call-data): Adapt caller.
(sample-stack-procs): Always sample procedures on the stack, even
anonymous ones.
(profile-signal-handler): Fix stack cutting to work with compiled
statprof.scm.
(count-call): Always count calls, even to anonymous procedures.
(statprof-call-data->stats): Use call-data-printable for printing the
call data.
(statprof-display-anomolies): Fix a couple longstanding bugs caught by
compiler warnings.
Andy Wingo [Sun, 20 Dec 2009 23:01:13 +0000 (00:01 +0100)]
import statprof, sxml, and texinfo from guile-lib
* module/Makefile.am (LIB_SOURCES): Add statprof, sxml, and texinfo to
the build.
(NOCOMP_SOURCES): Reindent, and add the upstream SSAX files.
* module/statprof.scm:
* module/sxml/apply-templates.scm:
* module/sxml/fold.scm:
* module/sxml/simple.scm:
* module/sxml/ssax.scm:
* module/sxml/ssax/input-parse.scm:
* module/sxml/transform.scm:
* module/sxml/upstream/COPYING.SSAX:
* module/sxml/upstream/SSAX.scm:
* module/sxml/upstream/SXML-tree-trans.scm:
* module/sxml/upstream/SXPath-old.scm:
* module/sxml/upstream/assert.scm:
* module/sxml/upstream/input-parse.scm:
* module/sxml/xpath.scm:
* module/texinfo.scm:
* module/texinfo/docbook.scm:
* module/texinfo/html.scm:
* module/texinfo/indexing.scm:
* module/texinfo/plain-text.scm:
* module/texinfo/reflection.scm:
* module/texinfo/serialize.scm:
* module/texinfo/string-utils.scm: Add files from guile-lib to Guile.
It's only Richard, Andreas, Rob, and myself that have copyright on
these, and we have all assigned to the FSF. SSAX itself is in the
public domain.
Andy Wingo [Sun, 20 Dec 2009 22:26:42 +0000 (23:26 +0100)]
version.h depends on config.status
* libguile/Makefile.am (version.h): Depend on config.status, so if we
reconfigure we make sure to regenerate the version.
Andy Wingo [Sun, 20 Dec 2009 22:12:34 +0000 (23:12 +0100)]
handle interrupts in mv-call, return/values
* libguile/vm-i-system.c (mv-call, return/values): Interrupt before
entering and leaving MV frames as well as normal frames.
Andy Wingo [Tue, 15 Dec 2009 10:58:04 +0000 (11:58 +0100)]
remove scm_add_method
* libguile/goops.h:
* libguile/goops.c (scm_add_method): Remove this function. It didn't
work, and even if we fixed it to work it wouldn't be as good as using
Scheme's `add-method!'.
Andy Wingo [Tue, 15 Dec 2009 09:57:59 +0000 (10:57 +0100)]
guile-config depends on config.status
* meta/Makefile.am (guile-config): Depend on config.status, so that if
$prefix changes, guile-config gets rebuilt.
Andy Wingo [Tue, 15 Dec 2009 09:49:22 +0000 (10:49 +0100)]
in the load path, look in library-dir before site-dir
* libguile/load.c (scm_init_load_path): Search first in Guile's
version-specific path (the library path), *then* in the site dir. This
should allow us to import some of Guile-lib's modules into Guile,
perhaps customizing them with Guile-version-specific foo, without
accidentally falling back to system-installed guile-lib in the
sitedir. Also should reduce the number of stats by half, in the common
case.
Andy Wingo [Sun, 20 Dec 2009 14:29:09 +0000 (15:29 +0100)]
psyntax's labels and marks now unique over a read/write boundary
* module/ice-9/psyntax.scm (gen-label, new-mark): Labels and marks need
to be unique across read/write boundaries -- it's not sufficient for
them to simply be unique within a process by virtue of (string #\i)
constructing a new object. This used to mostly work before, because
the collapsing of duplicate constants didn't catch many syntax-object
cases -- but for some reason the attached test case brings out the
problem. So switch to use gensyms. Potentially more costly, but it's
what upstream psyntax does now.
This bug took me fully two days to figure out.
* module/ice-9/psyntax-pp.scm: Regenerated.
* test-suite/tests/syncase.test ("serializable labels and marks"): Add
test case.
Neil Jerram [Sat, 19 Dec 2009 22:37:24 +0000 (22:37 +0000)]
Document need for pkg-config to build Guile
* README: Say that ./configure needs pkg-config; why; and how to work
around it.
Neil Jerram [Fri, 18 Dec 2009 01:11:40 +0000 (01:11 +0000)]
Update and simplify statement about RnRS support
* doc/ref/scheme-intro.texi (Guile Scheme): Mention R6RS as well as
R5RS. Simplify text.
Brian Gough [Tue, 15 Dec 2009 10:28:49 +0000 (10:28 +0000)]
make the use of the 5-argument @xref command consistent
A few of the @xref references to external manuals in the documentation
are using an old 4-argument form that produces an undefined reference
in the printed manual. The following patch makes them consistent with
the 5-argument @xrefs used elsewhere in the manual.
--
Brian Gough
Network Theory Ltd,
Publishing Free Software Manuals --- http://www.network-theory.co.uk/
>From
6ca0417830dc5a98699a15808591dc1f2a90dfac Mon Sep 17 00:00:00 2001
From: Brian Gough <bjg@gnu.org>
Date: Mon, 14 Dec 2009 21:34:59 +0000
Subject: [PATCH] make the use of the 5-argument @xref command consistent
when referring to other manuals.
Ken Raeburn [Mon, 16 Nov 2009 17:16:05 +0000 (12:16 -0500)]
Allow more characters in coding system names in Emacs-style declarations.
* libguile/read.c (scm_i_scan_for_encoding): Allow more punctuation
symbols in coding system names.
Brian Gough [Tue, 15 Dec 2009 10:16:14 +0000 (10:16 +0000)]
more typo fixes
More spelling corrections and fixes for doubled words (e.g. "the the")
--
Brian Gough
Network Theory Ltd,
Publishing Free Software Manuals --- http://www.network-theory.co.uk/
>From
7be02beedc739c32cce2c8ec8f4ac814c994a13f Mon Sep 17 00:00:00 2001
From: Brian Gough <bjg@gnu.org>
Date: Mon, 14 Dec 2009 22:06:22 +0000
Subject: [PATCH] fix various documentation typos (spelling & doubled words)
Brian Gough [Tue, 15 Dec 2009 10:14:48 +0000 (10:14 +0000)]
typo fix
Correction for garbled sentence.
--
Brian Gough
Network Theory Ltd,
Publishing Free Software Manuals --- http://www.network-theory.co.uk/
>From
f819b597a46ad4ed23597e5a81d1acab46f15147 Mon Sep 17 00:00:00 2001
From: Brian Gough <bjg@gnu.org>
Date: Mon, 14 Dec 2009 20:04:34 +0000
Subject: [PATCH] typo fix
Brian Gough [Tue, 15 Dec 2009 10:12:07 +0000 (10:12 +0000)]
added brief introduction about SLIB
This patch adds a short introduction to the SLIB section of the manual
with a link to the SLIB homepage.
--
Brian Gough
Network Theory Ltd,
Publishing Free Software Manuals --- http://www.network-theory.co.uk/
>From
60548b6e039bf57694b7841996cfda011cb8a4bf Mon Sep 17 00:00:00 2001
From: Brian Gough <bjg@gnu.org>
Date: Mon, 14 Dec 2009 20:49:27 +0000
Subject: [PATCH] added brief introduction about SLIB
Brian Gough [Mon, 14 Dec 2009 22:19:32 +0000 (22:19 +0000)]
Hash Table examples - hashq takes different number of arguments
In the "Hash Tables Example" in the manual, hashq needs 2 arguments
instead of 1 (patch below). I've updated the hash table output as
well to match the current version.
--
Brian Gough
Network Theory Ltd,
Publishing Free Software Manuals --- http://www.network-theory.co.uk/
>From
fdb6101d2e064620746ebfc9f9cd28bbdd2470e8 Mon Sep 17 00:00:00 2001
From: Brian Gough <bjg@gnu.org>
Date: Mon, 14 Dec 2009 19:59:32 +0000
Subject: [PATCH] update docs for Hash Table Examples
hashq now takes two arguments
order of elements in hash table is different now
Brian Gough [Wed, 9 Dec 2009 18:04:42 +0000 (18:04 +0000)]
replace ascii figures with scalable ps/pdf versions.
use ascii figures in HTML output, to work around deficiency in makeinfo
where images are not copied to target directory.