1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-02 21:10:27 +02:00
Commit graph

15227 commits

Author SHA1 Message Date
Ludovic Courtès
7e9a301b7f Augment Libs.private' in guile-2.0-uninstalled.pc'.
Followup to 58f86505d6 ("Augment
`Libs.private' with for non-GNU platforms.").

Reported by Eli Zaretskii <eliz@gnu.org>.

* meta/guile-2.0-uninstalled.pc.in (Libs): Add all the optional
  libraries, as done in commit 58f86505d6.
2012-01-31 18:55:14 +01:00
Andy Wingo
5270a001ad an experiment: clearing the C stack in gc tests
* test-suite/lib.scm (clear-stale-stack-references): New helper.
* test-suite/tests/gc.test:
* test-suite/tests/threads.test: Use the new helper.

I removed the "unresolved" throw, as I'd like to see what the bots do
with this.
2012-01-31 17:57:13 +01:00
Ludovic Courtès
f7cf5898d8 Update `NEWS'. 2012-01-30 22:36:48 +01:00
Ludovic Courtès
386c1f96b4 Bump version number for 2.0.4/2.0.5.
Version 2.0.4 was pushed with the version info of 2.0.3, which is
incorrect.  Version 2.0.5 fixes that.

* GUILE-VERSION (GUILE_MICRO_VERSION): Increment.
  (LIBGUILE_INTERFACE_CURRENT): Increment to account for new C functions
  `scm_c_value_ref', `scm_call', etc.
  (LIBGUILE_INTERFACE_AGE): Increment.
2012-01-30 22:21:50 +01:00
Ludovic Courtès
7cb11224c7 Amend `NEWS'.
* NEWS: Mention `-Wformat' change.  Remove intermediate/minor bug fixes.
2012-01-30 20:58:51 +01:00
Ludovic Courtès
b469997798 Remove stale test file.
* test-suite/tests/srfi-42.test: Delete "tmp1" at the end.
2012-01-30 20:57:42 +01:00
Ludovic Courtès
ffd901eb5e doc: Add "warnings" to the concept index.
* doc/ref/api-evaluation.texi (Compilation): Add "warnings" to the
  concept index.
2012-01-30 20:57:16 +01:00
Andy Wingo
e1fbe716e8 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.
2012-01-30 17:06:37 +01:00
Mark H Weaver
07c2ca0f0d 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>
2012-01-30 11:02:29 -05:00
Mark H Weaver
741b8a2300 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.
2012-01-30 10:27:44 -05:00
Mark H Weaver
adb8054c6d 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.
2012-01-30 10:27:23 -05:00
Mark H Weaver
2f3e436411 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.
2012-01-30 03:02:32 -05:00
Mark H Weaver
505afe2832 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.
2012-01-30 00:33:31 -05:00
Ludovic Courtès
58f86505d6 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.
2012-01-30 00:17:34 +01:00
Andy Wingo
9c5d7fa671 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.
2012-01-29 22:45:56 +01:00
Andy Wingo
a18e13a57c Revert "vm-i-scheme.c slight refactor"
This reverts commit c0e4449908.

This refactor was needed for the introduction of DEAD(), which does not
appear to have been necessary.
2012-01-29 22:31:49 +01:00
Andy Wingo
a39b116f00 Revert "attempt to clear stale references on VM C stack"
This reverts commit 04b2d77354.

Since it wasn't fixing the "lexical vars are collectable" test, it added
complexity with no benefit.
2012-01-29 22:30:21 +01:00
Ludovic Courtès
5e80f2cea3 Revert "Work around instruction reordering on SPARC and HPPA in the VM."
This reverts commit 2b264d7e4f, which is
unnecessary after commit f5ea0499a4
("Build with `-fno-strict-aliasing' when available.").
2012-01-29 22:18:15 +01:00
Chris K. Jester-Young
e22ad42bdb 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.
2012-01-28 15:23:16 -05:00
Andy Wingo
241247e8b9 mention new manual sections in NEWS
* NEWS: Mention new sections.
2012-01-28 20:38:03 +01:00
Ludovic Courtès
f5ea0499a4 Build with `-fno-strict-aliasing' when available.
* configure.ac (POTENTIAL_GCC_CFLAGS): Add `-fno-strict-aliasing'.
  Suggested by Mark H. Weaver.
2012-01-27 22:02:31 +01:00
Andy Wingo
04b2d77354 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.
2012-01-27 19:34:19 +01:00
Andy Wingo
c0e4449908 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.
2012-01-27 19:09:32 +01:00
Andy Wingo
eb7da3d81f document include', include-from-path'
* doc/ref/api-evaluation.texi (Local Inclusion): New section.
2012-01-27 16:33:11 +01:00
Andy Wingo
0740cb49d1 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.
2012-01-27 16:33:11 +01:00
Mark H Weaver
40e92f09fc 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.
2012-01-27 09:52:58 -05:00
Andy Wingo
d4b5c773e4 update NEWS
* NEWS: Update.
2012-01-26 18:38:57 +01:00
Andy Wingo
0133e13f34 fix test-loose-ends
* test-suite/standalone/test-loose-ends.c (test_scm_local_eval): Use
  ice-9 local-eval to get (the-environment).
2012-01-26 18:21:01 +01:00
Andy Wingo
68c31a42ab update local-eval docs
* doc/ref/api-evaluation.texi (Local Evaluation): Update docs, add some
  examples.
2012-01-26 16:22:35 +01:00
Andy Wingo
6dc8c138f9 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.
2012-01-26 12:08:58 +01:00
Andy Wingo
f9685f4373 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.
2012-01-26 12:08:58 +01:00
Andy Wingo
4496c9c1e8 Revert "Universally-unique gensyms"
This reverts commit ad432bc831.

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.
2012-01-26 12:08:58 +01:00
Andy Wingo
d062a8c1ee 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>.
2012-01-26 12:08:58 +01:00
Ludovic Courtès
f5e772b2ba Fix a couple of warnings.
* module/scripts/list.scm: Use SRFI-1.
* module/system/repl/error-handling.scm: Use (ice-9 format).
2012-01-26 00:37:23 +01:00
Ludovic Courtès
3a822fff15 Fix typo in `-Wformat'.
* module/language/tree-il/analyze.scm (format-analysis): Call `warning',
  not `warn'.
2012-01-26 00:36:39 +01:00
Ludovic Courtès
60273407f9 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.
2012-01-26 00:35:46 +01:00
Ludovic Courtès
40fb4e317b Import Gnulib's `setenv' module, for MinGW.
Reported by Eli Zaretskii <eliz@gnu.org>.

* m4/gnulib-cache.m4 (gl_MODULES): Add `setenv'.
2012-01-25 22:35:29 +01:00
Andy Wingo
68fcf71189 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).
2012-01-25 21:31:20 +01:00
Andy Wingo
1ace4fbf3d 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.
2012-01-25 20:34:17 +01:00
Andy Wingo
3d51e57cfb 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.
2012-01-25 20:34:16 +01:00
Andy Wingo
a2b62b48ab 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!)
2012-01-25 19:03:50 +01:00
Andy Wingo
e5cf97290c better function prologue disassembly
* module/language/assembly/disassemble.scm (code-annotation): Add an
  annotation for assert-nargs-ee/locals and assert-nargs-ge/locals.
2012-01-25 18:49:43 +01:00
Andy Wingo
d646d81ec1 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.
2012-01-25 10:42:54 +01:00
Andy Wingo
c3d5344a92 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.
2012-01-25 10:37:25 +01:00
Ludovic Courtès
2b264d7e4f 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'.
2012-01-24 23:39:43 +01:00
Ludovic Courtès
228e9ec137 vlist: Use (ice-9 format).
* module/ice-9/vlist.scm: Use (ice-9 format).
2012-01-24 10:03:02 +01:00
Ludovic Courtès
5765c5a82c FFI: Fix `set-pointer-finalizer!' to leave the type cell unchanged.
This is a followup to 690a0112e5 ("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.
2012-01-23 23:51:33 +01:00
Ludovic Courtès
c64d07d822 guile-readline: Clean `.go' files.
* guile-readline/Makefile.am (CLEANFILES): Add *.go.
2012-01-23 23:50:53 +01:00
Andy Wingo
21ad60a1d2 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.
2012-01-23 11:13:12 +01:00
Ludovic Courtès
73c080f9c0 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.
2012-01-23 00:44:29 +01:00