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

13578 commits

Author SHA1 Message Date
Andy Wingo
dcb68c09d0 module-ref-submodule deprecation fixes
* module/ice-9/boot-9.scm (module-ref-submodule)
  (module-define-submodule!): Pull deprecated shims here, as we need
  them before loading (ice-9 deprecated). Also bugfix to only define the
  module if there is no local variable, even if it is unbound.

* module/ice-9/deprecated.scm: Remove from here.
2010-09-02 21:31:55 -07:00
Andy Wingo
61bac799dd back-compat in (rnrs) for deprecated modules-in-value-namespace
* module/rnrs.scm (rnrs): Work around some unavoidable (I think)
  behavior when back-compatible unified namespaces are enabled; see
  comments in source.
2010-09-02 21:31:55 -07:00
Andy Wingo
3be8727983 module-local-variable optimization
* libguile/modules.c (scm_module_local_variable): An optimization in the
  common no-module-binder case.
2010-09-02 21:31:55 -07:00
Ludovic Courtès
f57fdf07d6 Fix memory leak in lock-mutex' (aka. scm_lock_mutex'.)
The memory leak is trivially reproducible with:

  (define m (make-mutex))
  (let loop () (lock-mutex m) (unlock-mutex m) (loop))

or similarly with:

  (define p (delay (+ 1 2)))
  (let loop () (force p) (loop))

since `force' acquires P's mutex.

It could also lead to premature release of a thread waiting in
`fat_mutex_lock' when a former owner's `do_thread_exit' is run.

* libguile/threads.c (fat_mutex_unlock): When `m->level' becomes 0,
  remove MUTEX from `t->mutexes'.
  (fat_mutex_lock): Update comment above the `t->mutexes' assignment.
  (do_thread_exit): Add an assertion making sure that each mutex in
  `t->mutexes' is owned by T.
2010-09-02 14:42:14 +02:00
Ludovic Courtès
d31ae2c363 Avoid calls to scm_current_thread' in fat_mutex_unlock'.
* libguile/threads.c (fat_mutex_unlock): Use `t->handle' instead of
  calling `scm_current_thread'.
2010-09-02 11:22:01 +02:00
Ludovic Courtès
ac37b82d5b Fix typos.
* module/system/repl/repl.scm (run-repl): Fix variable name: `k', not
  `key'.

* module/texinfo/docbook.scm: Use `(srfi srfi-1)' for `fold'.
2010-09-02 00:04:39 +02:00
Ludovic Courtès
dcde43869a SRFI-1: Rewrite drop-right!', drop-while', `reduce', etc. in Scheme.
This partially reverts commit e9508fbb7d
(May 3 2005).

* module/srfi/srfi-1.scm (take!, drop-right!, reduce, reduce-right,
  take-while, take-while!, drop-while, span, span!, lset-adjoin): New
  procedures.

* srfi/srfi-1.c (scm_srfi1_drop_right_x, scm_srfi1_drop_while,
  scm_srfi1_lset_adjoin, scm_srfi1_reduce, scm_srfi1_reduce_right,
  scm_srfi1_span, scm_srfi1_span_x, scm_srfi1_take_x,
  scm_srfi1_take_while, scm_srfi1_take_while_x): Rewrite as
  proxies to the corresponding Scheme procedures.

* benchmark-suite/benchmarks/srfi-1.bm ("drop-while"): New benchmark
  prefix.
2010-09-02 00:03:07 +02:00
Ludovic Courtès
5335850dbf Rewrite fport_flush' using Gnulib's full_write'.
* libguile/fports.c (fport_flush): Rewrite using `full_write'.
2010-09-01 15:04:59 +02:00
Ludovic Courtès
72a54e9480 popen.test: Don't auto-compile `popen-child.scm'.
* test-suite/tests/popen.test ("open-output-pipe")["no duplicate"]:
  Disable auto-compilation of `popen-child.scm'.
2010-09-01 15:03:24 +02:00
Ludovic Courtès
25ccb5a5ab Add `test-suite/tests/popen-child.scm' to the distribution.
* test-suite/Makefile.am (SCM_TESTS): Add `tests/popen-child.scm'.
2010-09-01 14:52:36 +02:00
Jose A. Ortega Ruiz
54d9a994b1 Add new debug meta-command ,error-message
* module/system/repl/error-handling.scm: use the error string to
  construct the <debug> instance.

* module/system/repl/command.scm: new debug command `error-message'
  that extracts the new <debug> field, available to stack commands as
  `message'.

* doc/ref/scheme-using.texi: documentation for new command.

* module/system/repl/debug.scm: <debug> stores the error string in a
  new field.
2010-08-31 13:47:56 +02:00
Andy Wingo
5cc987760b fix #y back-compat shim
* module/ice-9/deprecated.scm (#\y): #y was in fact a syntax for
  s8vectors, not bitvectors. Fix.
2010-08-29 21:01:54 -07:00
Andy Wingo
0142d376b8 bitvector work
* test-suite/Makefile.am:
* test-suite/tests/bitvectors.test: Add a new file to test bitvectors.

* libguile/uniform.c (scm_c_uniform_vector_length): Don't call
  scm_uniform_vector_elements, as we don't need to be able to access the
  elements with pointers to bytes. Fixes uniform-vector-length on
  bitvectors.
2010-08-29 20:48:32 -07:00
Andy Wingo
44d65b23ce docstrings in syntax-rules
* module/ice-9/psyntax.scm (syntax-rules): Allow a docstring between the
  literals and the first clause.
2010-08-29 19:27:23 -07:00
Andy Wingo
e9729cbb2c define* usage in boot-9
* module/ice-9/boot-9.scm (make-module, make-mutable-parameter): Use
  define*.
2010-08-29 11:59:10 -07:00
Andy Wingo
a2220d7ea4 add flag to vtables to indicate that their layout is valid
* libguile/struct.h (SCM_VTABLE_FLAG_VALIDATED): New flag, indicates
  that the layout of a vtable has been validated. The other flags have
  been renumbered.

* libguile/struct.c (scm_i_struct_inherit_vtable_magic): Set the
  VALIDATED flag if everything goes through.
  (scm_struct_vtable_p): If the struct should be a vtable but isn't
  validated, throw an error.
  (scm_make_vtable_vtable): Validate the incoming user_fields layout
  bit. Set the VALIDATED flag.
  (scm_c_make_structv): Add a comment about the case in which we delay
  scm_i_struct_inherit_vtable_magic.
2010-08-29 11:41:42 -07:00
Andy Wingo
c89920a71f deprecate passing a number as the destination to `format'
* module/ice-9/format.scm (format): Deprecate having a number as the
  destination.
* doc/ref/misc-modules.texi (Formatted Output): Update docs.
2010-08-28 13:44:00 -07:00
Andy Wingo
877514dab0 threadsafety in deprecation, extensions
* libguile/deprecation.c (scm_c_issue_deprecation_warning):
* libguile/extensions.c (scm_c_register_extension, load_extension): Add
  locks around global data structures.
2010-08-28 12:15:53 -07:00
Andy Wingo
fb61f4b826 net-db.test tweak
* test-suite/tests/net-db.test: Throw 'unresolved if we have a crap DNS
  that is returning results for all addresses.
2010-08-28 12:02:12 -07:00
Andy Wingo
f5e854388b threadsafe object properties
* libguile/objprop.c: Add locking around the properties weak hash, to
  avoid corrupting the whash.
2010-08-28 11:57:51 -07:00
Andy Wingo
35b6730879 README fix for PKG_CONFIG=true
* README: Add note that if you override pkg-config, you need to set
  libffi flags as well. Thanks to Mark Weaver.
2010-08-28 10:41:27 -07:00
Andreas Rottmann
23988e8c50 Several fixes to R6RS libraries
* module/rnrs/arithmetic/fixnums.scm (fixnum-width): Make this return an
  an exact integer instead of an inexact number.

* module/rnrs/base.scm (assertion-violation): Implement.

* module/rnrs/conditions.scm (simple-conditions): Allow also simple
  conditions as argument.

* module/rnrs/enums.scm (define-enumeration): Properly construct empty
  enumeration sets.

* module/rnrs/exceptions.scm (guard): Don't restrict the body to a
  single expression.

* module/rnrs/records/syntactic.scm (define-record-type0): Expand into a
  series of definitions only.
2010-08-28 10:16:30 -07:00
Andy Wingo
7d0e17389c Revert "don't autocompile while snarfing"
This reverts commit 176ee5c82a, which
added autocomp inhibitions in the wrong place.
2010-08-27 13:11:17 -07:00
Andy Wingo
34cbb05331 Revert "[build] Rewrite guile-func-name-check in Scheme, adding features."
This reverts commit 6832604efa. Not only
does this fail on a fresh build due to a lack of "guile", but even if it
did have its Makefile fixed, it would take too long to run, because the
rest of Guile isn't compiled.

The right thing is to avoid invoking Guile until after at least psyntax
and boot-9 have been compiled.

This commit can be reinstated if we move doc snarfing to a phase that
happens after module/ is compiled.
2010-08-27 13:05:23 -07:00
Andy Wingo
176ee5c82a don't autocompile while snarfing
* am/snarf (GUILE_SNARF): Don't autocompile while snarfing, as we
  probably don't have a compiled Guile at this point.
2010-08-27 12:56:54 -07:00
Ludovic Courtès
358663caf5 Document (ice-9 match).
* doc/ref/Makefile.am (guile_TEXINFOS): Add `match.texi'.

* doc/ref/guile.texi (Guile Modules): Include `match.texi'.

* doc/ref/match.texi: New file.

* doc/ref/sxml-match.texi (sxml-match): Add xref to `match.texi'.

* module/ice-9/match.scm: Note lack of support for `(pat => exp)'.
2010-08-27 18:59:43 +02:00
Ludovic Courtès
d3cc00f65d SRFI-1: Choose better benchmark names.
* benchmark-suite/benchmarks/srfi-1.bm ("fold"): Rename sub-tests to
  "big" and "small".
2010-08-27 18:59:43 +02:00
Ludovic Courtès
b86d230932 SRFI-1: Rewrite break' and break!' in Scheme.
This partially reverts commit 6e9f3c2676
(Tue May 3 2005).

* module/srfi/srfi-1.scm (break, break!): New procedures.

* srfi/srfi-1.c (scm_srfi1_break, scm_srfi1_break_x): Rewrite as
  proxies to the corresponding Scheme procedures.

* test-suite/standalone/test-srfi-1.c (failure): New function.
  (tests): Add `scm_srfi1_break' test.  Use `failure'.
2010-08-27 18:59:42 +02:00
Ludovic Courtès
d7418e60a5 SRFI-1: Rewrite fifth', sixth', etc. in Scheme.
This partially reverts commit 03731332d5
(Tue May 3 2005).

* module/srfi/srfi-1.scm (fifth, sixth, seventh, eighth, ninth, tenth):
  New procedures.

* srfi/srfi-1.c (scm_srfi1_fifth, scm_srfi1_sixth, scm_srfi1_seventh,
  scm_srfi1_eighth, scm_srfi1_ninth, scm_srfi1_tenth): Rewrite as
  proxies to the corresponding Scheme procedure.

* test-suite/tests/srfi-1.test ("eighth")["() -1"]: Change exception
  type to `exception:wrong-type-arg'.
  ("fifth")["() -1"]: Likewise.
  ("ninth")["() -1"]: Likewise.
  ("seventh")["() -1"]: Likewise.
  ("sixth")["() -1"]: Likewise.
  ("tenth")["() -1"]: Likewise.
2010-08-27 18:59:42 +02:00
Ludovic Courtès
ea975f72cf Remove unneeded #:use-module.
* module/system/vm/frame.scm: Remove use of (srfi srfi-1).
2010-08-27 18:59:42 +02:00
Ludovic Courtès
93003b16b0 Assorted `syntax-check' fixes.
* doc/ref/Makefile.am ($(snarf_doc).am): Untabify.

* libguile/eval.c: Remove unnecessary <assert.h> inclusion.

* .x-sc_m4_quote_check: Update.

* libguile/error.c (scm_error_scm): Use `EXIT_FAILURE' instead of 1.
* libguile/init.c (fixconfig, scm_boot_guile): Likewise.
* libguile/null-threads.h (scm_i_pthread_exit): Likewise.
* libguile/script.c (scm_compile_shell_switches): Likewise.
* test-suite/standalone/test-conversion.c: Likewise.
* test-suite/standalone/test-list.c: Likewise.
* test-suite/standalone/test-unwind.c: Likewise.

* libguile/async.c: Remove unnecessary inclusion of <signal.h>.

* NEWS: "filesystem" -> "file system".
* doc/ref/r6rs.texi: Ditto.

* cfg.mk (local-checks-to-skip): New variable.

* .x-sc_m4_quote_check, .x-sc_obsolete_symbols, .x-sc_program_name,
  .x-sc_prohibit_atoi_atof, .x-sc_prohibit_magic_number_exit: New
  files.

* .gitignore: Update.
2010-08-27 18:59:42 +02:00
Andy Wingo
172988eeb4 fix <letrec> docs
* doc/ref/compiler.texi (Tree-IL): Fix docs for external representation
  of letrec. Thanks to No Itisnt.
2010-08-27 09:16:44 -07:00
Thien-Thi Nguyen
6832604efa [build] Rewrite guile-func-name-check in Scheme, adding features.
* libguile/guile-func-name-check: Rewrite in Scheme; add inhibition
  directives, string-literal handling, failureful exit on error.
* libguile/guile-snarf-docs.in: Use ‘@top_builddir@/meta/guile’.
* libguile/pairs.c: Add guile-func-name-check inhibition directive.
2010-08-26 23:34:49 +02:00
Thien-Thi Nguyen
e6d67f1e69 [build] Refine libguile/*.doc snarfing.
* libguile/guile-snarf-docs.in: Rewrite to incorporate all
  three phases of snarfing: func-name check, cpp, tokenization.
  Also, require/check new command-line syntax.
* libguile/Makefile.am (AM_V_FILTER): Delete var.
  (AM_V_FILTER_, AM_V_FILTER_0): Likewise.
  (.c.doc): Run ./guile-snarf-docs; use new command-line syntax.
2010-08-26 18:36:48 +02:00
Andy Wingo
d5a1a8cd1b consolidate sitedir definition
* configure.ac (sitedir): Fix definition to point to the
  version-specific sitedir.

* libguile/Makefile.am (libpath.h): Take sitedir definition from
  configure.ac.
2010-08-25 10:24:27 -04:00
Andy Wingo
3c4ecdddab update download location in manual
* doc/ref/intro.texi (Obtaining and Installing Guile): Update download
  location.
2010-08-25 09:49:09 -04:00
Thien-Thi Nguyen
bfebf099d9 [build] Use AM_SILENT_RULES for generating cpp-E.c, cpp-SIG.c.
* libguile/Makefile.am (.syms.c): Prefix first command
  with $(AM_V_GEN); unconditionally silence second command.
2010-08-19 11:15:08 +02:00
Andy Wingo
4b02bf47f4 objcodes.c comments
* libguile/objcodes.c: Comments from Noah Lavine
2010-08-18 23:00:42 -07:00
Noah Lavine
9a690dfb45 Whitespace fix
Add a space in libguile/objcodes.c to comply with the GNU Coding Standards.
2010-08-18 23:00:42 -07:00
Thien-Thi Nguyen
319b53dd1c [build] Fix sed portability bug: Don't use '\n' in sed script.
Regression introduced 2010-07-22, "[build] Overhaul
<errno.h>, <signal.h> cpp symbol extraction/checking".
See: <http://autobuild.josefsson.org/guile/log-201008181002653292000.txt>

* libguile/Makefile.am (.syms.c): Convert
  one-liner sed script to while-read-echo loop.
2010-08-18 19:48:12 +02:00
Thien-Thi Nguyen
b405cdb4c5 [build] Create libguile/version.h using the configure script.
* configure.ac (AC_CONFIG_FILES): Add libguile/version.h.

* libguile/Makefile.am (version.h): Delete target.
  (EXTRA_DIST): Remove version.h.in.
  (BUILT_SOURCES): Remove version.h.
  (MOSTLYCLEANFILES): Remove version.h, version.h.tmp.
* libguile/version.h.in (SCM_MAJOR_VERSION): Use conventional
  @VAR@ instead of @-VAR-@ for ‘GUILE_MAJOR_VERSION’.
  (SCM_MINOR_VERSION, SCM_MICRO_VERSION, SCM_EFFECTIVE_VERSION): Likewise
  for ‘GUILE_MINOR_VERSION’, ‘GUILE_MICRO_VERSION’, ‘GUILE_EFFECTIVE_VERSION’.
2010-08-18 19:48:12 +02:00
Andy Wingo
8996d00ee4 update scsh doc
* doc/ref/scsh.texi (The Scheme shell (scsh)): Remove broken link to
  arglist.com/guile/, and add note about bitrotting.
2010-08-17 08:48:49 -07:00
Andy Wingo
833263ec4a further discouraged excision
* libguile/gen-scmconfig.h.in: Remove a DISCOURAGED define.
2010-08-16 21:36:14 -07:00
Andy Wingo
7545ddd42a a number of doc fixes
* doc/ref/api-control.texi (Handling Errors): Update docs for
  display-error.

* libguile/backtrace.h (scm_i_display_error): Change prototype to
  s/stack/frame/.
* libguile/throw.c (handler_message): Change invocation of
  scm_i_display_error to pass a frame.

* doc/ref/api-deprecated.texi (Deprecation): Update wording.

* doc/ref/api-evaluation.texi (Local Evaluation): Remove section on
  local-eval.

* doc/ref/api-macros.texi: Fix a couple typos.

* doc/ref/api-memory.texi (Objects): Remove terrible section.
* doc/ref/api-procedures.texi (Procedure Properties): Remove docs for
  closure?.
  (Compiled Procedures): Update wording.

* doc/ref/guile.texi (API Reference): Remove reference to "Objects".
2010-08-16 21:36:14 -07:00
Andy Wingo
46088b2629 minor NEWS tweaks
* NEWS: Minor tweaks.
2010-08-16 21:36:14 -07:00
Andy Wingo
8fad25c25f reindent psyntax.scm
* module/ice-9/psyntax.scm: Reindent.
2010-08-16 21:36:14 -07:00
Andy Wingo
565c8e30cd update comments in psyntax.scm
* module/ice-9/psyntax.scm: Update comments. Fix a couple of needless
  conses in and-map.

* module/ice-9/psyntax-pp.scm (#{and-map*\ 35}): Regen.
2010-08-16 21:36:14 -07:00
Andy Wingo
efa360afc3 @apply for multiple args in the boot memoizer
* libguile/memoize.c (m_apply): Fix for multiple arguments, as in
  (@apply proc foo bar baz).
2010-08-16 21:36:14 -07:00
Ludovic Courtès
252f9f187a Fix i18n tests when no French locale is available.
* test-suite/tests/i18n.test ("number->locale-string")["French"]: Move
  `under-french-locale-or-unresolved' within each `pass-if'.
2010-08-16 12:27:14 +02:00
Andreas Rottmann
b6dcf01abc Link test-srfi-1 to libguile as well
With an installed copy of libguile in place, test-srfi-1 would be run
using that instead of the in-tree libguile.

* test-suite/standalone/Makefile.am (test_srfi_1_LDADD): Add libguile.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2010-08-15 16:52:00 +02:00