Andy Wingo [Mon, 30 Jan 2012 18:59:08 +0000 (19:59 +0100)]
Merge remote-tracking branch 'origin/stable-2.0'
Conflicts:
libguile/debug.h
module/ice-9/psyntax-pp.scm
module/ice-9/psyntax.scm
module/language/tree-il/peval.scm
module/language/tree-il/primitives.scm
Andy Wingo [Mon, 30 Jan 2012 17:52:46 +0000 (18:52 +0100)]
Merge commit '
3d51e57cfb0404db568a6adfde2a346d3fd9907e'
Conflicts:
libguile/foreign.c
libguile/hashtab.c
module/ice-9/psyntax-pp.scm
module/language/tree-il/compile-glil.scm
Andy Wingo [Mon, 30 Jan 2012 17:25:07 +0000 (18:25 +0100)]
Merge commit '
9b0975f1dc41ddd10d81fb5b0965b9e9a54ef37a'
Conflicts:
libguile/foreign.c
module/ice-9/psyntax-pp.scm
module/ice-9/psyntax.scm
Andy Wingo [Mon, 30 Jan 2012 15:42:09 +0000 (16:42 +0100)]
fix hook invocation during thread guilification
* libguile/gc.c (run_before_gc_c_hook): Don't run pre-GC hooks from a
thread that is in the process of guilification.
Mark H Weaver [Mon, 30 Jan 2012 16:02:29 +0000 (11:02 -0500)]
Rename scm_call_varargs -> scm_call
* libguile/eval.c, libguile/eval.h, doc/ref/api-evaluation.texi,
test-suite/standalone/test-loose-ends.c, NEWS: Rename
scm_call_varargs -> scm_call
Suggested by Ludovic Courtès <ludo@gnu.org>
Mark H Weaver [Mon, 30 Jan 2012 01:00:21 +0000 (20:00 -0500)]
Implement scm_call_varargs and scm_call_{7,8,9}
* libguile/eval.c (scm_call_7, scm_call_8, scm_call_9,
scm_call_varargs): New functions.
* libguile/eval.h: Add prototypes.
* doc/ref/api-evaluation.texi: Add documentation.
* test-suite/standalone/test-loose-ends.c: Add tests.
* NEWS: Add news entry.
Mark H Weaver [Sun, 29 Jan 2012 22:43:13 +0000 (17:43 -0500)]
Fix primitive-eval to return #<unspecified> for definitions
* module/ice-9/eval.scm (primitive-eval): Return #<unspecified> for
definitions. Previously the variable object was returned.
* test-suite/tests/eval.test (evaluator): Add test.
* NEWS: Add news entry.
Mark H Weaver [Mon, 30 Jan 2012 08:02:32 +0000 (03:02 -0500)]
Fix 'local-eval' when the specified environment is a module
* module/ice-9/local-eval.scm (local-wrap): Fix the (module? e) case, to
reference the expression 'x' instead of the non-existent variable
'exp', as was previously done. Also use quasisyntax instead of
quasiquote, so that the introduced 'lambda' is an identifier instead
of a bare symbol, so that this will work in modules that have rebound
'lambda' to something else.
* test-suite/tests/eval.test (local-eval): Make sure to test both
'local-eval' and 'local-compile' when the specified environment is a
module.
Mark H Weaver [Mon, 30 Jan 2012 05:33:31 +0000 (00:33 -0500)]
Update user-visible copyright dates in manual and REPL to 2012
* doc/ref/guile.texi, module/system/repl/common.scm: Update
user-visible copyright dates to 2012.
Ludovic Courtès [Sun, 29 Jan 2012 23:17:34 +0000 (00:17 +0100)]
Augment `Libs.private' with for non-GNU platforms.
Reported by Eli Zaretskii <eliz@gnu.org>.
* meta/guile-2.0.pc.in (Libs.private): Add all the optional libraries
that may be pulled via Gnulib on non-GNU platforms.
Andy Wingo [Sun, 29 Jan 2012 21:45:56 +0000 (22:45 +0100)]
paper over some "lexical vars are collectable" flakiness
* test-suite/tests/gc.test ("gc"): Hack around flakiness in "lexical
vars are collectable" on some architectures.
Andy Wingo [Sun, 29 Jan 2012 21:31:49 +0000 (22:31 +0100)]
Revert "vm-i-scheme.c slight refactor"
This reverts commit
c0e4449908eee84bcb293ec21c10fec646bde45d.
This refactor was needed for the introduction of DEAD(), which does not
appear to have been necessary.
Andy Wingo [Sun, 29 Jan 2012 21:24:25 +0000 (22:24 +0100)]
Revert "attempt to clear stale references on VM C stack"
This reverts commit
04b2d773548c57b6eadd1808a8d15cce47af9630.
Since it wasn't fixing the "lexical vars are collectable" test, it added
complexity with no benefit.
Ludovic Courtès [Sun, 29 Jan 2012 21:18:15 +0000 (22:18 +0100)]
Revert "Work around instruction reordering on SPARC and HPPA in the VM."
This reverts commit
2b264d7e4fb649955ade1814527b6eb6f34f4e18, which is
unnecessary after commit
f5ea0499a411309014475dc7f7983e827f431af2
("Build with `-fno-strict-aliasing' when available.").
Chris K. Jester-Young [Sat, 28 Jan 2012 06:34:42 +0000 (01:34 -0500)]
Fix double-free error on non-GNU systems.
* libguile/i18n.c (scm_make_locale): Null out c_locale_name after it's
freed, so it doesn't get freed again. While this only has effect if
USE_GNU_LOCALE_API is unset, the nulling out happens in both cases,
to be consistent and robust.
(scm_nl_langinfo): Free c_result in all switch cases, in particular
P_SIGN_POSN, N_SIGN_POSN, INT_P_SIGN_POSN, and INT_N_SIGN_POSN.
Andy Wingo [Sat, 28 Jan 2012 19:38:03 +0000 (20:38 +0100)]
mention new manual sections in NEWS
* NEWS: Mention new sections.
Ludovic Courtès [Fri, 27 Jan 2012 21:02:31 +0000 (22:02 +0100)]
Build with `-fno-strict-aliasing' when available.
* configure.ac (POTENTIAL_GCC_CFLAGS): Add `-fno-strict-aliasing'.
Suggested by Mark H. Weaver.
Andy Wingo [Fri, 27 Jan 2012 18:04:46 +0000 (19:04 +0100)]
attempt to clear stale references on VM C stack
* libguile/vm-engine.h (DEAD): New macro, nulls out a value.
* libguile/vm-i-system.c:
* libguile/vm-i-loader.c:
* libguile/vm-i-scheme.c: Use DEAD when variables become dead.
Later we can #ifdef this out, but I want to give the buildbots a try
with this patch to make sure it's correct.
Andy Wingo [Fri, 27 Jan 2012 18:09:23 +0000 (19:09 +0100)]
vm-i-scheme.c slight refactor
* libguile/vm-i-scheme.c: Refactor the RETURN macro to not include
NEXT. Adapt all uses to NEXT on their own.
Andy Wingo [Fri, 27 Jan 2012 15:26:36 +0000 (16:26 +0100)]
document `include', `include-from-path'
* doc/ref/api-evaluation.texi (Local Inclusion): New section.
Andy Wingo [Fri, 27 Jan 2012 12:11:58 +0000 (13:11 +0100)]
more documentation on the process of loading source and compiled files
* doc/ref/api-evaluation.texi (Load Paths): Move documentation of
%load-path and related procedures here, from Build Config. Add docs
for %load-compiled-path.
* doc/ref/api-foreign.texi:
* doc/ref/api-modules.texi:
* doc/ref/api-options.texi:
* doc/ref/scheme-using.texi: Update xrefs.
Mark H Weaver [Fri, 27 Jan 2012 04:55:24 +0000 (23:55 -0500)]
Fix error messages involving definition forms
* module/ice-9/psyntax.scm (syntax-type): Return an additional value
that contains the entire form in _all_ cases, including for definition
forms. Previously, the entire form was not returned for definition
forms.
(expand-expr): Add an additional argument that contains the entire
form in _all_ cases, including for definition forms. Use it to
include the entire form in error messages, notably for definitions in
expression context. Include the source location information, which
was previously missing from these errors when the rhs expression was
an atom. Improve the "definition in expression context" error message
to be more comprehensible for Scheme beginners.
(expand-top-sequence, expand, expand-body): Adjust as needed to handle
the additional return value from 'syntax-type' and the additional
argument to 'expand-expr'.
* module/ice-9/psyntax-pp.scm: Regenerate.
* NEWS: Update.
Andy Wingo [Thu, 26 Jan 2012 17:38:57 +0000 (18:38 +0100)]
update NEWS
* NEWS: Update.
Andy Wingo [Thu, 26 Jan 2012 17:21:01 +0000 (18:21 +0100)]
fix test-loose-ends
* test-suite/standalone/test-loose-ends.c (test_scm_local_eval): Use
ice-9 local-eval to get (the-environment).
Andy Wingo [Thu, 26 Jan 2012 15:22:35 +0000 (16:22 +0100)]
update local-eval docs
* doc/ref/api-evaluation.texi (Local Evaluation): Update docs, add some
examples.
Andy Wingo [Thu, 26 Jan 2012 11:02:42 +0000 (12:02 +0100)]
more readable gensyms
* module/language/tree-il/peval.scm (peval):
* module/language/tree-il/primitives.scm (dynamic-wind): When you make a
gensym that just has to be compared against other gensyms, it will be
unique if the prefix doesn't end in something that can be interpreted
as a number. There's no reason to make that character something
difficult like " ". So change to use a dash in that case.
* module/ice-9/psyntax-pp.scm: Regenerate. More readable now.
Andy Wingo [Thu, 26 Jan 2012 10:52:06 +0000 (11:52 +0100)]
globally unique marks and labels using syntax-session-id
* libguile/macros.c (scm_init_macros): Add definition of new
syntax-session-id helper.
* module/ice-9/psyntax.scm: Capture a reference to syntax-session-id at
boot time. Uniquify marks and labels using the session id.
* module/ice-9/boot-9.scm: Shunt syntax-session-id off to (system
syntax) once we finished booting.
* module/ice-9/compile-psyntax.scm: Override syntax-session-id when
remaking psyntax to avoid spurious diffs.
* module/ice-9/psyntax-pp.scm: Regenerate.
Andy Wingo [Thu, 26 Jan 2012 10:00:55 +0000 (11:00 +0100)]
Revert "Universally-unique gensyms"
This reverts commit
ad432bc8317c33899efc29854550b67f3d7babf7.
Not all gensyms need to be universally-unique: most of them just need to
be unique within some portion of a Guile session. We'll take a
different tack on this problem in the next commit.
Andy Wingo [Tue, 3 Jan 2012 09:02:08 +0000 (04:02 -0500)]
Implement `local-eval', `local-compile', and `the-environment'
* module/ice-9/local-eval.scm: New module (ice-9 local-eval) which
exports `the-environment', `local-eval', and `local-compile'.
* libguile/debug.c (scm_local_eval): New C function that calls the
Scheme implementation of `local-eval' in (ice-9 local-eval).
* libguile/debug.h (scm_local_eval): Add prototype.
* doc/ref/api-evaluation.texi (Local Evaluation): Add documentation.
* test-suite/tests/eval.test (local evaluation): Add tests.
* test-suite/standalone/test-loose-ends.c (test_scm_local_eval):
Add test.
* module/Makefile.am: Add ice-9/local-eval.scm.
Based on a patch by Mark H Weaver <mhw@netris.org>.
Ludovic Courtès [Wed, 25 Jan 2012 23:37:23 +0000 (00:37 +0100)]
Fix a couple of warnings.
* module/scripts/list.scm: Use SRFI-1.
* module/system/repl/error-handling.scm: Use (ice-9 format).
Ludovic Courtès [Wed, 25 Jan 2012 23:36:39 +0000 (00:36 +0100)]
Fix typo in `-Wformat'.
* module/language/tree-il/analyze.scm (format-analysis): Call `warning',
not `warn'.
Ludovic Courtès [Wed, 25 Jan 2012 23:35:46 +0000 (00:35 +0100)]
Add warnings for unsupported `simple-format' options.
* module/language/tree-il/analyze.scm
(format-analysis)[check-simple-format-args]: New procedure. Use it.
Add support for applications of <module-ref>.
* module/system/base/message.scm (%warning-types): Handle the `format
simple-format' warning.
* module/language/scheme/spec.scm (scheme)[make-default-environment]:
Use `simple-format' as the default `format'.
* test-suite/tests/tree-il.test ("warnings")["format"]: Explicitly use
(@ (ice-9 format) format) where needed.
("simple-format"): New test prefix.
Ludovic Courtès [Wed, 25 Jan 2012 21:35:29 +0000 (22:35 +0100)]
Import Gnulib's `setenv' module, for MinGW.
Reported by Eli Zaretskii <eliz@gnu.org>.
* m4/gnulib-cache.m4 (gl_MODULES): Add `setenv'.
Andy Wingo [Wed, 25 Jan 2012 20:29:53 +0000 (21:29 +0100)]
new syntax procedures to (system syntax)
* module/ice-9/boot-9.scm:
* module/ice-9/psyntax.scm (syntax-module, syntax-local-binding)
(syntax-locally-bound-identifiers): After boot, move these definitions
to a new (system syntax) module.
* module/ice-9/psyntax-pp.scm: Regenerate.
* doc/ref/api-macros.texi: Add some words about syntax-module and
friends being in (system syntax).
Andy Wingo [Mon, 23 Jan 2012 11:31:33 +0000 (12:31 +0100)]
add syntax-module
* module/ice-9/psyntax.scm (syntax-module): New accessor for syntax
objects.
* module/ice-9/psyntax-pp.scm: Regenerate.
* module/ice-9/boot-9.scm: Declare syntax-module.
* doc/ref/api-macros.texi: Document it.
Andy Wingo [Sun, 15 Jan 2012 17:39:44 +0000 (18:39 +0100)]
add syntax-locally-bound-identifiers
* module/ice-9/boot-9.scm (syntax-locally-bound-identifiers): Declare
variable.
* module/ice-9/psyntax.scm: Add locally-bound-identifiers helper, and
define syntax-locally-bound-identifiers.
* module/ice-9/psyntax-pp.scm: Regenerated.
* doc/ref/api-macros.texi: Document the new procedure.
Andy Wingo [Wed, 25 Jan 2012 18:03:29 +0000 (19:03 +0100)]
fix "lexical vars are collectable" test
* test-suite/tests/gc.test ("gc"): Fix "lexical vars are collectable"
test. (Previously, the binding was getting inlined, so we weren't
testing what we meant to test. Besides that, the value was a
constant, not a closure, so it wasn't collectable in the first place!)
Andy Wingo [Wed, 25 Jan 2012 17:49:43 +0000 (18:49 +0100)]
better function prologue disassembly
* module/language/assembly/disassemble.scm (code-annotation): Add an
annotation for assert-nargs-ee/locals and assert-nargs-ge/locals.
Andy Wingo [Wed, 25 Jan 2012 09:42:54 +0000 (10:42 +0100)]
add another case in which to fold (values FOO) to FOO, for some FOO
* module/language/tree-il/peval.scm (peval): Fold (values
'singly-valued-expression) to 'singly-valued-expression in contexts
that expect multiple values, in addition to those that expect single
values.
Andy Wingo [Wed, 25 Jan 2012 09:37:25 +0000 (10:37 +0100)]
fix values miscompilation in push context with RA
* module/language/tree-il/compile-glil.scm (flatten-lambda-case): Fix
miscompilation of `values' in a push context with RA.
* test-suite/tests/tree-il.test: Add low-level test for this
miscompilation.
Ludovic Courtès [Tue, 24 Jan 2012 22:39:43 +0000 (23:39 +0100)]
Work around instruction reordering on SPARC and HPPA in the VM.
Fixes part of <http://bugs.gnu.org/10520>.
Reported by Bruno Haible <bruno@clisp.org>.
* libguile/vm-i-system.c (COMPILER_BARRIER): New macro.
(halt, return, return_values): Insert compiler barrier after each
assignment to `fp'.
Ludovic Courtès [Tue, 24 Jan 2012 09:03:02 +0000 (10:03 +0100)]
vlist: Use (ice-9 format).
* module/ice-9/vlist.scm: Use (ice-9 format).
Ludovic Courtès [Mon, 23 Jan 2012 22:51:33 +0000 (23:51 +0100)]
FFI: Fix `set-pointer-finalizer!' to leave the type cell unchanged.
This is a followup to
690a0112e55823aa8b862daeddcf44cea97e7917 ("Remove
the "has finalizer?" bit from pointer objects.")
* libguile/foreign.c (scm_set_pointer_finalizer_x): Leave the type cell
unchanged. Before, `equal?' would break on pointers on which
`set-pointer-finalizer!' had been called.
* test-suite/tests/foreign.test ("make-pointer")["equal? modulo
finalizer (set-pointer-finalizer!)"]: New test.
Ludovic Courtès [Mon, 23 Jan 2012 22:40:54 +0000 (23:40 +0100)]
guile-readline: Clean `.go' files.
* guile-readline/Makefile.am (CLEANFILES): Add *.go.
Andy Wingo [Mon, 23 Jan 2012 10:13:12 +0000 (11:13 +0100)]
current-filename canonicalizes path, remove add-to-path
* module/ice-9/boot-9.scm (current-filename): Canonicalize the path, so
that the result is independent of the current directory, and so
that `dirname' can traverse up the file system, as in the
add-to-load-path example.
(add-to-path): Remove. The eval-when semantics make this macro too
tricky to explain -- people will start using it on other path-like
things, in lexical contours, whereas it only really makes sense with
load-like paths at the toplevel.
* doc/ref/api-evaluation.texi (Loading): Fix link to load-with-path
docs, and remove add-to-path docs.
Ludovic Courtès [Sun, 22 Jan 2012 23:44:29 +0000 (00:44 +0100)]
Adjust tests that relied on the output of the hash table printer.
* libguile/hashtab.c (scm_i_hashtable_print): Use `SCM_UNPACK', not
`SCM2PTR'.
* test-suite/tests/hash.test: Adjust tests that rely on the output of
the printer to just check for the suffix of the hash table's external
representation.
Ludovic Courtès [Sun, 22 Jan 2012 23:06:14 +0000 (00:06 +0100)]
Print the address of hash tables.
* libguile/hashtab.c (scm_i_hashtable_print): Print the address of EXP.
Ludovic Courtès [Sun, 22 Jan 2012 22:22:45 +0000 (23:22 +0100)]
Augment `release.org'.
* doc/release.org: Mention debbugs and `platform-testers@gnu.org'.
Ludovic Courtès [Sun, 22 Jan 2012 22:20:50 +0000 (23:20 +0100)]
Parenthesize and type `SCM_FRAME' macros; check layout of `scm_vm_frame'.
* libguile/frames.c: Add compile-time assertions on the layout of
`struct scm_vm_frame'.
(RELOC): Parenthesize and type VAL.
* libguile/frames.h (SCM_FRAME_STRUCT): Write in terms of
`SCM_FRAME_DATA_ADDRESS'.
(SCM_FRAME_DATA_ADDRESS): Parenthesize and type FP.
(SCM_FRAME_SET_DYNAMIC_LINK): Write in terms of
`SCM_FRAME_DYNAMIC_LINK'.
* libguile/vm.c (RELOC): Parenthesize and type SCM_P.
Ludovic Courtès [Sat, 21 Jan 2012 15:35:58 +0000 (16:35 +0100)]
Relax `asm-to-bytecode.test' for when target CPU == native CPU.
* test-suite/tests/asm-to-bytecode.test (native-cpu, native-word-size):
New procedures.
(test-target): When the target is the native CPU, use the native word
size instead of WORD-SIZE.
Mark H Weaver [Wed, 18 Jan 2012 07:53:05 +0000 (02:53 -0500)]
Universally-unique gensyms
* libguile/symbols.c (scm_gensym): Make the gensym counter a 128-bit
thread-local, initialized to a random number upon the first call to
`gensym' within a given thread. This counter is rendered as a 22 byte
suffix of mostly base64 digits.
* libguile/threads.h (scm_i_thread): Add a thread-local gensym_counter.
* libguile/threads.c (guilify_self_1): Initialize gensym_counter to NULL.
Mark H Weaver [Wed, 18 Jan 2012 07:36:17 +0000 (02:36 -0500)]
Add `random-state-from-platform' and `scm_i_random_bytes_from_platform'
* libguile/random.c (scm_random_state_from_platform): New procedure.
(scm_i_random_bytes_from_platform): New internal function.
* libguile/random.h (scm_random_state_from_platform,
scm_i_random_bytes_from_platform): Add prototypes.
* doc/ref/api-data.texi (Random): Add documentation.
Andy Wingo [Fri, 20 Jan 2012 23:08:17 +0000 (00:08 +0100)]
add current-filename, add-to-path, add-to-load-path
* module/ice-9/boot-9.scm (current-filename, add-to-path)
(add-to-load-path): New syntaxen.
* doc/ref/api-evaluation.texi (Loading): Move load-path related
procedures to a new section:
(Load Paths): Hither. Document add-to-path and add-to-load-path.
* doc/ref/api-debug.texi (Source Properties): Document
current-source-location and current-filename.
* doc/ref/api-modules.texi:
* doc/ref/guile-invoke.texi:
* doc/ref/scheme-using.texi: Update @ref for Load Paths change.
Andy Wingo [Fri, 20 Jan 2012 20:16:50 +0000 (21:16 +0100)]
remove duplicate when/unless definitions
* module/rnrs/control.scm:
* module/sxml/ssax.scm:
* test-suite/lalr/common-test.scm: Remove local `when'/`unless'
definitions.
Andy Wingo [Fri, 20 Jan 2012 18:47:02 +0000 (19:47 +0100)]
add when, unless
* module/ice-9/boot-9.scm (when, unless): New forms.
* doc/ref/api-control.texi (Conditionals): Add docs. Rename this
node from "if cond case".
* doc/ref/r6rs.texi:
* doc/ref/scheme-ideas.texi:
* doc/ref/srfi-modules.texi: Update referrers.
Andy Wingo [Thu, 19 Jan 2012 12:08:19 +0000 (13:08 +0100)]
avoid gensym when making labels in psyntax
* module/ice-9/psyntax.scm (gen-label): Avoid gensym, as we don't need
to make symbols.
* module/ice-9/psyntax-pp.scm: Regenerate.
Andy Wingo [Sun, 15 Jan 2012 16:51:02 +0000 (17:51 +0100)]
add syntax-local-binding
* module/ice-9/boot-9.scm (syntax-local-binding): New binding.
* module/ice-9/psyntax.scm: Locally define a fluid that holds the
"transformer environment". with-transformer-environment calls a
procedure with the transformer environment, or raises an error if
called outside the extent of a transformer. Bind
transformer-environment in expand-macro.
(resolve-identifier): Backport this helper from master.
(syntax-local-binding): New procedure to return binding information of
a bound identifier (a lexical, macro, a pattern variable, a displaced
lexical, a global, or some other form).
* module/ice-9/psyntax-pp.scm: Regenerate.
* doc/ref/api-macros.texi (Syntax Transformer Helpers): Add docs for
syntax-local-binding, and syntax-source, and move some other
descriptions to this new section.
Mark H Weaver [Wed, 18 Jan 2012 22:52:43 +0000 (17:52 -0500)]
Add `scm_c_value_ref' to allow access to multiple returned values from C
Based on a patch by Julian Graham <julian@member.fsf.org>
* libguile/values.c, libguile/values.h (scm_c_value_ref): New function.
* doc/ref/api-control.texi (Multiple Values): Add documentation.
* test-suite/standalone/test-scm-values.c: New test program.
* test-suite/standalone/Makefile.am: Add test-scm-values test.
Ludovic Courtès [Mon, 16 Jan 2012 22:49:21 +0000 (23:49 +0100)]
Update Gnulib to
v0.0-6827-g39c3009; use the `dirfd' module.
* m4/gnulib-cache.m4: Use `dirfd'.
* libguile/filesys.c: Include Gnulib's <dirent.h> directly.
(dirfd): Remove. Suggested by Bruno Haible <bruno@clisp.org>.
Ludovic Courtès [Mon, 16 Jan 2012 21:17:50 +0000 (22:17 +0100)]
Improve wording in README regarding `pkg-config'.
* README: Mention $PKG_CONFIG_PATH, and make it clear that $BDW_GC_LIBS,
etc. aren't normally needed.
Ludovic Courtès [Mon, 16 Jan 2012 21:16:34 +0000 (22:16 +0100)]
Fix typo in threads.c on IA64.
* libguile/threads.c (guilify_self_1)[__ia64__]: Fix typo. Reported by
Bruno Haible <bruno@clisp.org>.
Ludovic Courtès [Mon, 16 Jan 2012 20:09:21 +0000 (21:09 +0100)]
Skip `tr_TR' tests on Solaris 2.10.
* test-suite/tests/i18n.test (under-turkish-utf8-locale-or-unresolved):
Special-case Solaris 2.10.
Chris K. Jester-Young [Sun, 15 Jan 2012 18:59:49 +0000 (13:59 -0500)]
Add #ifdefs for langinfo items that don't exist on OpenBSD.
* libguile/i18n.c (define_langinfo_items): Add #ifdefs for ERA_* and
ALT_DIGITS, as those constants don't exist on OpenBSD.
Chris K. Jester-Young [Fri, 14 Oct 2011 04:27:27 +0000 (00:27 -0400)]
Call scm-error with the correct argument order.
* module/ice-9/boot-9.scm (catch, with-throw-handler): Switch the order
of the error key and function name arguments.
Ludovic Courtès [Sat, 14 Jan 2012 22:02:03 +0000 (23:02 +0100)]
Have `statprof.test' fail gracefully when samples could not be collected.
* test-suite/tests/statprof.test ("statistical sample counts within
expected range"): Throw unresolved when one of A-DATA, B-DATA, and
C-DATA is #f, which means samples were not collected for this one.
Ludovic Courtès [Sat, 14 Jan 2012 21:25:59 +0000 (22:25 +0100)]
Avoid non-portable `tail' argument in `test-guile-snarf'.
* test-suite/standalone/test-guile-snarf (strip_first_line): New
function.
(snarf): Use it.
Ludovic Courtès [Sat, 14 Jan 2012 21:22:22 +0000 (22:22 +0100)]
Fix signed/unsigned pointer mismatches.
* libguile/foreign.c (scm_pointer_to_bytevector,
scm_bytevector_to_pointer): Use pointers of the same signedness.
Mark H Weaver [Sat, 14 Jan 2012 09:28:16 +0000 (04:28 -0500)]
Don't diverge when serializing cyclic lists during compilation
* module/language/glil/compile-assembly.scm (scheme-list?): Don't
diverge when serializing cyclic lists.
Mark H Weaver [Sat, 14 Jan 2012 08:27:35 +0000 (03:27 -0500)]
Fix serialization of #nil-terminated lists during compilation
* module/language/glil/compile-assembly.scm (scheme-list?): New
predicate, like `list?' but requires that the last cdr must be '(),
not #nil.
(dump-object, dump-constants): Use `list' opcode to create a list only
if it is terminated by '(). If it's terminated by #nil, we must use
the more general `cons' opcode.
Andy Wingo [Thu, 12 Jan 2012 14:15:41 +0000 (15:15 +0100)]
fix array printing
* libguile/print.c (iprin1): Fix unmatched ENTER_NESTED_DATA. Fixes
http://debbugs.gnu.org/10482. Thanks to Daniel Llorens for the
report.
Andy Wingo [Wed, 11 Jan 2012 23:39:50 +0000 (00:39 +0100)]
update NEWS
* NEWS: Minor edits. Remove a THANKS; we need to assemble a larger
THANKS for this release.
Ludovic Courtès [Wed, 11 Jan 2012 23:38:22 +0000 (00:38 +0100)]
Make sure `scm_spawn_thread' returns a thread.
* libguile/threads.c (scm_spawn_thread): Add an assertion that
DATA.thread is a thread. This assertion is sometimes hit on
x86_64-freebsd8.2.
Ludovic Courtès [Tue, 10 Jan 2012 20:44:32 +0000 (21:44 +0100)]
Disable statprof tests on platforms that lack `ITIMER_PROF' support.
* test-suite/tests/statprof.test (when-implemented): New macro.
("statistical sample counts within expected range", "accurate call
counting"): Use it.
Andy Wingo [Wed, 11 Jan 2012 23:32:11 +0000 (00:32 +0100)]
update NEWS
* NEWS: Update.
Andy Wingo [Wed, 11 Jan 2012 23:32:00 +0000 (00:32 +0100)]
print-options doc update
* doc/ref/api-evaluation.texi (Scheme Write): Update print-options.
Andy Wingo [Wed, 11 Jan 2012 23:10:44 +0000 (00:10 +0100)]
fluids.c docstring
* libguile/fluids.c (scm_make_fluid_with_default): Update docstring.
Andy Wingo [Wed, 11 Jan 2012 23:10:25 +0000 (00:10 +0100)]
Move parameters documentation to core
* doc/ref/api-scheduling.texi (Fluids and Dynamic States): Update for
default values.
(Parameters): Move here from srfi-39, and adapt.
Andy Wingo [Wed, 11 Jan 2012 23:09:39 +0000 (00:09 +0100)]
add docs for scm_gc_register_allocation
* doc/ref/api-memory.texi: Update for scm_gc_register_allocation.
Remove docs for scm_gc_{un,}register_collectable_memory.
Mark H Weaver [Tue, 10 Jan 2012 20:59:49 +0000 (15:59 -0500)]
Remove docs `procedure-environment', which no longer exists
* doc/ref/api-procedures.texi (Procedure Properties): Remove the entry
for `procedure-environment', which no longer exists.
Mark H Weaver [Tue, 10 Jan 2012 15:13:43 +0000 (10:13 -0500)]
Use a common null stringbuf in `scm_i_make_string'
* libguile/strings.c (scm_i_make_string): Use a common null stringbuf
for newly-allocated empty strings.
Mark H Weaver [Tue, 10 Jan 2012 14:39:57 +0000 (09:39 -0500)]
Empty substrings no longer reference the original stringbuf
* libguile/strings.c (scm_i_substring, scm_i_substring_read_only,
scm_i_substring_shared): When asked to create an empty substring,
return a freshly allocated null string. Previously, an empty
substring needlessly held a reference to the original stringbuf.
Mark H Weaver [Tue, 10 Jan 2012 12:50:28 +0000 (07:50 -0500)]
scm_i_substring_copy tries to narrow the substring
* libguile/strings.c (scm_i_substring_copy): Try to narrow the substring
if it came from a wide string.
Mark H Weaver [Tue, 10 Jan 2012 11:18:31 +0000 (06:18 -0500)]
Avoid calling `u32_conv_from_encoding' on the null string
* libguile/strings.c (scm_from_stringn): Avoid calling
`u32_conv_from_encoding' on the null string, by using the same
fast-path code used if (encoding == NULL). This is an optimization,
and also avoids any possible encoding errors.
Mike Gran [Tue, 10 Jan 2012 05:35:41 +0000 (21:35 -0800)]
Typo in documentation of local-boxed-set
* doc/ref/vm.texi: modified
Andy Wingo [Mon, 9 Jan 2012 23:41:42 +0000 (00:41 +0100)]
Merge remote-tracking branch 'origin/stable-2.0'
Conflicts:
libguile/__scm.h
libguile/array-map.c
libguile/procprop.c
libguile/tags.h
module/ice-9/deprecated.scm
module/ice-9/psyntax-pp.scm
module/ice-9/psyntax.scm
test-suite/standalone/test-num2integral.c
test-suite/tests/regexp.test
Mark H Weaver [Mon, 9 Jan 2012 23:24:22 +0000 (18:24 -0500)]
Remove null string optimization from scm_from_stringn
* libguile/strings.c (scm_from_stringn): Always return a freshly
allocated string from scm_from_stringn, even when asked to construct
the null string, in accordance with the R5RS. Previously, we
optimized the null string case by returning a reference to a global
null string object (scm_nullstr).
Andy Wingo [Mon, 9 Jan 2012 23:23:17 +0000 (00:23 +0100)]
Andy Wingo [Mon, 9 Jan 2012 23:21:48 +0000 (00:21 +0100)]
Merge commit '
cc8afa2b361635953dfba7f10e4193b1f243a50f'
Conflicts:
module/ice-9/psyntax-pp.scm
module/language/tree-il/peval.scm
Daniel Hartwig [Tue, 27 Dec 2011 14:24:28 +0000 (22:24 +0800)]
permit non-date values for Expires header
* module/web/http.scm ("Expires"): Permit (some) non-date values.
Ludovic Courtès [Mon, 9 Jan 2012 22:25:02 +0000 (23:25 +0100)]
Have `cpu-word-size' error out on unknown CPUs; add support for MIPSEL.
* module/system/base/target.scm (cpu-word-size): Add support for
`mipsel'. Call `error' when CPU is unknown.
Ludovic Courtès [Mon, 9 Jan 2012 22:16:20 +0000 (23:16 +0100)]
Make sure `regexp-quote' tests use Unicode-capable string ports.
* test-suite/tests/regexp.test (with-unicode): New macro.
("regexp-quote"): Wrap all `regexp-quote' calls in it. This fixes
tests on machines where the default port encoding is US-ASCII.
Ludovic Courtès [Mon, 9 Jan 2012 21:16:49 +0000 (22:16 +0100)]
Fix incorrect use of `SCM_UNPACK'.
* libguile/arrays.c (scm_i_make_array): Cast the result of
`scm_gc_malloc' directly to `scm_t_bits'.
Ludovic Courtès [Mon, 9 Jan 2012 20:23:07 +0000 (21:23 +0100)]
i18n: Fix gc_malloc/free mismatch on non-GNU systems.
* libguile/i18n.c (scm_i_locale_free): Remove.
(smob_locale_free): Define only when USE_GNU_LOCALE_API.
(scm_make_locale)[!USE_GNU_LOCALE_API]: Allocate
`c_locale->locale_name' with `scm_gc_strdup', not `malloc'.
Ludovic Courtès [Mon, 9 Jan 2012 20:20:21 +0000 (21:20 +0100)]
i18n: Disable Turkish locale tests on FreeBSD 8.
* test-suite/tests/i18n.test (under-turkish-utf8-locale-or-unresolved):
Check %HOST-TYPE and throw `unresolved' on FreeBSD 8.
Ludovic Courtès [Mon, 9 Jan 2012 00:16:16 +0000 (01:16 +0100)]
Fix loose typing in `test-scm-spawn-thread.c'.
* test-suite/standalone/test-scm-spawn-thread.c (inner_main): Use
`SCM2PTR' instead of a cast.
Andy Wingo [Mon, 9 Jan 2012 16:52:46 +0000 (17:52 +0100)]
allocate a tc7 to bitvectors
* libguile/tags.h (scm_tc7_bitvector): Allocate a tc7 to bitvectors.
* libguile/print.c (iprin1):
* libguile/goops.c:
* libguile/evalext.c (scm_self_evaluating_p):
* libguile/eq.c (scm_equal_p): Add cases for bitvectors.
* libguile/bitvectors.h: Declare internal print and equal? helpers.
* libguile/bitvectors.c: Use a tc7 instead of a smob type.
Andy Wingo [Mon, 9 Jan 2012 16:24:57 +0000 (17:24 +0100)]
allocate a tc7 to arrays
* libguile/tags.h (scm_tc7_array): Allocate a tag for arrays.
* libguile/arrays.h (SCM_I_ARRAYP): Change to use scm_tc7_array. The
previous definition was not externally usable because scm_i_tc16_array
was internal.
(scm_i_print_array): Declare, though internally.
* libguile/arrays.c (scm_i_make_array): Use scm_cell with the tc7
instead of NEWSMOB.
(scm_i_print_array): Make not static.
(SCM_ARRAY_IMPLEMENTATION): Adapt.
(scm_init_arrays): Remove array smob declaration.
* libguile/eq.c (scm_equal_p): Refactor to put the string, pointer, and
bytevector cases in the switch. Add a case for arrays.
* libguile/goops.c: Add <array> declarations.
* libguile/print.c (iprin1): Call scm_i_print_array as needed.
* libguile/evalext.c (scm_self_evaluating_p): Add a case for arrays.
Andy Wingo [Mon, 9 Jan 2012 15:07:46 +0000 (16:07 +0100)]
primitive-load returns the value(s) of the last expression
* libguile/load.c (scm_primitive_load): Return the values yielded from
evaluating the last expression in the file.
* test-suite/tests/load.test ("return value of `load'"): Add tests.
Rob Browning [Sat, 23 Apr 2011 19:57:50 +0000 (14:57 -0500)]
Define _GNU_SOURCE to fix the GNU/kFreeBSD build.
Author: Petr Salinger <Petr.Salinger@seznam.cz>
Closes: #401168
Rob Browning [Sat, 23 Apr 2011 19:57:49 +0000 (14:57 -0500)]
Fix the SRFI 60 copy-bit documentation.