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

14736 commits

Author SHA1 Message Date
Ludovic Courtès
249f2788c6 Fix `gc-profile.scm'.
* gc-benchmarks/gc-profile.scm (memory-mappings)[mapping-line-rx]: Fix
  and give an example.
  (total-heap-size): Fix docstring.
2011-02-25 14:54:36 +01:00
Andy Wingo
6800f86d63 make-weak-key-hash-table vacuuming
* libguile/hashtab.c (scm_make_weak_key_hash_table): Whoops, fix the
  case I actually cared about.
2011-02-25 10:48:35 +01:00
Ludovic Courtès
080a9d4f56 Revert ""latin1" -> "Latin-1"."
This reverts commit c2c550ca9d.

The name "latin1" is standardized by IANA, unlike the other one.
Reported by Bruno Haible.
2011-02-24 23:17:23 +01:00
Ludovic Courtès
914c4300b2 Make `locale-digit-grouping' more robust.
* libguile/i18n.c (scm_nl_langinfo)[GROUPING]: Consider negative numbers
  like `CHAR_MAX'.  Reported by David Fang <fang@csl.cornell.edu>.
  Fix suggested by Bruno Haible <bruno@clisp.org>.
2011-02-24 23:17:06 +01:00
Ludovic Courtès
cfad56a444 Fix README.
* README: Remove mention of an alpha release.  Reported by
  Mark H. Weaver.
2011-02-24 23:13:54 +01:00
Andy Wingo
62c290e977 weak hash tables vacuum stale entries after a gc
* libguile/hashtab.c (scm_c_register_weak_gc_callback): New private
  helper, arranges for a C function to be called with a SCM as an
  argument, as long as the argument is reachable by GC.
  (scm_make_weak_key_hash_table)
  (scm_make_weak_value_hash_table)
  (scm_make_doubly_weak_hash_table): Register a weak GC callback to
  vacuum_weak_hash_table.
2011-02-24 17:01:38 +01:00
Andy Wingo
ec7f624d65 re-enable the after-gc-hook
* libguile/gc.c (scm_gc): No need to take a mutex here.  Don't run the
  hook, the hook will run itself.
  (scm_c_register_gc_callback): New private helper, registers a callback
  the next time GC happens.
  (system_gc_callback): Guile's internal callback that runs
  scm_after_gc_c_hook, which itself queues a call to the after-gc-hook.
  (scm_storage_prehistory): Queue up a call to system_gc_callback.
2011-02-24 16:30:08 +01:00
Andy Wingo
574b7be0ba pointerless backing buffers for string ports
* libguile/strports.c (scm_mkstrport): String port string buffer
  allocated atomically.
2011-02-24 13:12:58 +01:00
Andy Wingo
b2548e2344 errno saving in display_string
* libguile/print.c (display_string): Fix a case in which perhaps `errno'
  could have been stompled.
2011-02-24 13:10:16 +01:00
Andy Wingo
a964aa62c2 web server more assiduous about closing ports
* module/web/uri.scm:
* module/web/server.scm (call-with-output-string*):
  (call-with-output-bytevector*): Local procs to output to strings or
  bytevectors, *and then close the port*.  We can't make this change in
  call-with-output-string because it would be incompatible.

* module/web/uri.scm (call-with-encoded-output-string, decode-string)
  (uri-decode)
* module/web/server.scm (call-with-encoded-output-string): Use the new
  helpers.
2011-02-24 11:10:49 +01:00
Andy Wingo
4a2ac0623c open-pipe* pumps pipes guardian
* module/ice-9/popen.scm (open-pipe*): Hack around the lack of an
  after-gc hook, and pump the pipes guardian here in the procedure that
  adds to the guardian.
2011-02-23 21:04:26 +01:00
Andy Wingo
40d2a0076a GC dead links in weak hash tables before a possible rehash
* libguile/hashtab.c (vacuum_weak_hash_table): New helper, goes through
  the entirety of a weak hash table, vacuuming dead entries.
  (scm_hash_fn_create_handle_x): If when adding to a weak hash table, we
  would trigger a rehash, vacuum the table first.  The weak_bucket_assoc
  would have only caught dead entries within one bucket.

  Without this patch, the following code leaks:

  (let lp ()
    (call-with-output-string
      (lambda (port)
        (display "foo" port)))
    (lp))
2011-02-23 11:59:38 +01:00
Ludovic Courtès
229b4bd538 Switch to 2.1.0.
* GUILE-VERSION (GUILE_MAJOR_VERSION, GUILE_MINOR_VERSION,
  GUILE_MINOR_VERSION): Switch to 2.1.0.
2011-02-23 11:05:54 +01:00
Mark H Weaver
18966b8d5e Portability fix for new log and log10
* libguile/numbers.c: Define M_LN2 if it's not already defined.
  Fix error in comment.
2011-02-22 21:06:26 -05:00
Mark H Weaver
85bdb6ac9c Portability fix for new log and log10
* libguile/numbers.c: Define M_LN2 if it's not already defined.
  Fix error in comment.
2011-02-22 21:04:08 -05:00
Ludovic Courtès
da0c22b5d3 Fix a bug in `vhash-delete'.
* module/ice-9/vlist.scm (vhash-delete): Honor HASH.
* test-suite/tests/vlist.test ("vhash")["vhash-delete honors HASH"]: New test.
2011-02-22 00:37:26 +01:00
Ludovic Courtès
1e1808c920 Use vhash-delq' in (language tree-il analyze)'.
* module/language/tree-il/analyze.scm (unbound-variable-analysis): Use
  `vhash-delq' instead of `vhash-delete'.
2011-02-22 00:32:42 +01:00
Ludovic Courtès
2a39def1a8 Optimize `vhash-delete'.
* module/ice-9/vlist.scm (vhash-delete): Check whether KEY is in VHASH
  and return VHASH if it's not.
2011-02-22 00:32:42 +01:00
Ludovic Courtès
8bc5b79df7 Add omitted exports from `(ice-9 vlist)'.
* module/ice-9/vlist.scm: Export `vhash-delq' and `vhash-delv'.
2011-02-22 00:32:42 +01:00
Ludovic Courtès
9d798af739 Compile `(rnrs)' after all other RNRS modules, potentially.
* module/Makefile.am (RNRS_SOURCES): Move `rnrs.scm' last.
2011-02-22 00:32:42 +01:00
Ludovic Courtès
630b6588b7 Make `(rnrs base)' independent of other rnrs modules.
* module/rnrs/base.scm (define-proxy): New macro.
  (raise, condition, make-error, make-assertion-violation,
  make-who-condition, make-message-condition, make-irritants-condition):
  Use it.
2011-02-22 00:32:39 +01:00
Andy Wingo
0e8a11c49a update examples in manual to use PKG_CHECK_MODULES
* doc/ref/autoconf.texi (Using Autoconf Macros): Switch example to use
  PKG_CHECK_MODULES.
* doc/ref/libguile-linking.texi (A Sample Guile Main Program): Likewise,
  and change from configure.in to configure.ac, and recommend
  autoreconf.
2011-02-20 22:08:27 +01:00
Andy Wingo
097a793b22 pkg-config instead of guile-config in manuals
* doc/ref/api-options.texi (Build Config):
* doc/ref/libguile-linking.texi (Linking Programs With Guile):
  (A Sample Guile Main Program):
* doc/ref/libguile-smobs.texi (The Complete Example): Use pkg-config in
  the examples instead of guile-config.
2011-02-20 21:43:19 +01:00
Andy Wingo
f244cc5154 tour.texi compilation fix
* doc/ref/tour.texi (Writing Guile Extensions): Fix compilation
  example.
2011-02-20 15:01:37 +01:00
Andy Wingo
4b93693dff @value{EFFECTIVE-VERSION} instead of 2.0 in some places in the manual
* doc/ref/history.texi (A Timeline of Selected Guile Releases): Update
  the 2.0 release blurb.

* doc/ref/api-foreign.texi (Modules and Extensions):
* doc/ref/libguile-extensions.texi (A Sample Guile Extension):
* doc/ref/tour.texi (Linking Guile into Programs): Use
  @value{EFFECTIVE-VERSION} instead of 2.0.  Also fix sample extension
  compilation line to include the Guile CFLAGS.
2011-02-20 13:16:37 +01:00
Bruno Haible
1867d3e019 guile.m4: Add support for linking against guile with rpath.
* guile.m4 (GUILE_FLAGS): Also set GUILE_LIBS and GUILE_LTLIBS. Fix
  documentation.
2011-02-20 11:50:10 +01:00
Neil Jerram
5ec48b7045 Fix typos in (web ...) doc
* doc/ref/web.texi (Types and the Web): "help" -> "helpful".
  (HTTP): Add closing paren.  Remove code that looks like a leftover.
2011-02-18 23:11:49 +00:00
Neil Jerram
e888334c27 Last (for a little while) GOOPs doc fix
* doc/ref/goops.texi (GOOPS Object Miscellany): Clarify that it would
  be instances being printed, not classes.
2011-02-18 23:10:54 +00:00
Neil Jerram
27643d7097 Remove unneeded fixme
* doc/ref/goops.texi (Class Definition Protocol): Removed `*fixme
  Need to insert something here about checking that the value is not
  unbound'.  It's a fine detail, and also I imagine there could be a
  valid application that would choose to allow SCM_GOOPS_UNBOUND
  values to escape through here.
2011-02-18 22:53:57 +00:00
Neil Jerram
bba1a2c73d Tidy up remaining bits of the MOP section
* doc/ref/goops.texi (Method Definition): Unindent text about
  define-method invoking add-method!.
  (Method Definition Internals): Add @noindent's.
  (Generic Function Invocation): Add intro text, and tidy up the tree.
2011-02-18 22:46:02 +00:00
Neil Jerram
ed478161f3 Clean up doc on class redefinition and instance class changing
* doc/ref/goops.texi (Class Redefinition): Deleted, with its material
  all merged into later `Redefining a Class' and `Changing the Class of
  an Instance' sections.
2011-02-18 22:15:11 +00:00
Neil Jerram
b0fc1b9f37 Merge orphan Class Options section into Class Definition
* doc/ref/goops.texi (Class Definition): Move material from later
  `Class Options' section to here.
2011-02-18 20:50:55 +00:00
Neil Jerram
d9ff8506b3 Doc of MOP for instance and class creation
* doc/ref/goops.texi (Instance Creation Protocol): Rename from
  `Customizing Instance Creation', and move before the more
  complicated class definition stuff.  Couple of very minor edits.

  (Class Definition Protocol): Remove ensure-metaclass-with-supers
  (too internal) and repeated material.  Move class-redefinition
  stuff to (existing) later section on that.  Merge reference-like
  material from `Customizing Class Definition' to here.
2011-02-18 20:10:39 +00:00
Neil Jerram
476a51eb38 Summarize class definition protocol
* doc/ref/goops.texi (Class Definition Protocol): Add tree summary
  diagram.
2011-02-18 20:10:39 +00:00
Neil Jerram
a46f77f95c Work on GOOPS MOP documentation
* doc/ref/goops.texi (The Metaobject Protocol): Simplify intro text.
  Minor edits and simplifications throughout this section.
  (Metaobjects and the Metaobject Protocol): Insert "default".
  (Metaclasses): Renamed from `Terminology', and deleted the material
  on CPL and accessors, which just duplicated what has already been
  covered earlier in the chapter.  Remove statements that confuse
  whether "metaclass of" means "class of class of" or "class of
  (something that is itself a class)".  (I think it's actually the
  latter.)
  (Class Definition Protocol): Renamed from `Class Definition
  Internals'.
2011-02-18 20:10:38 +00:00
Neil Jerram
8fa6525e82 Rewording for "make an intervention".
* doc/ref/compiler.texi (Extending the Compiler): Rephrase first sentence.
2011-02-18 20:08:59 +00:00
Neil Jerram
6bc746d865 No sublimated desires
* doc/ref/compiler.texi: Delete "subliminated".
2011-02-18 20:08:54 +00:00
Andy Wingo
3e05fc0466 fix a couple leaks in ports.c. thanks valgrind!
* libguile/ports.c (scm_i_remove_port): Fix a case in which ports
  explictly closed via close-port would leak their iconv_t data.
  (scm_set_port_encoding_x): scm_i_set_port_encoding_x strdups its
  argument, so we need to free the locale encoding of the incoming str.
2011-02-18 19:28:37 +01:00
Andy Wingo
6854c32480 core modules use (ice-9 binary-ports) instead of (rnrs io ports)
* module/language/assembly/compile-bytecode.scm:
* module/language/elisp/lexer.scm:
* module/web/request.scm:
* module/web/response.scm:
* module/web/server.scm:
* module/web/uri.scm: Use ice-9 binary-ports.
2011-02-18 16:01:25 +01:00
Andy Wingo
dd0d987fbd add (ice-9 binary-ports)
* module/ice-9/binary-ports.scm: New module.
* module/Makefile.am: Add to makefile.

* module/rnrs/io/ports.scm: Re-export bindings from (ice-9 binary
  ports).  This will allow the compiler to not pull (rnrs) into its
  included module set.
2011-02-18 16:01:21 +01:00
Andy Wingo
7e23d9d0f1 update extension example in manual
* doc/ref/libguile-extensions.texi (A Sample Guile Extension): Fix use
  of deprecated functions.
2011-02-18 09:38:34 +01:00
Ludovic Courtès
958a28e9fe Change tag naming convention to `vX.Y.Z'.
* configure.ac: Tell `git-version-gen' that we're switching to a
  `vX.Y.Z' scheme for release tags.
2011-02-16 10:25:23 +01:00
Neil Jerram
dd6e37d032 Rewording for "make an intervention".
* doc/ref/compiler.texi (Extending the Compiler): Rephrase first sentence.
2011-02-16 00:17:14 +00:00
Neil Jerram
0b6042a4c2 No sublimated desires
* doc/ref/compiler.texi: Delete "subliminated".
2011-02-15 23:50:05 +00:00
Mark H Weaver
05f167beb2 Improvements to log' and log10'
* libguile/numbers.c (log_of_shifted_double, log_of_exact_integer,
  log_of_exact_integer_with_size, log_of_fraction): New internal static
  functions used by scm_log and scm_log10.

  (scm_log, scm_log10): Robustly handle large integers, large and small
  fractions, and fractions close to 1.  Previously, computing logarithms
  of fractions close to 1 yielded grossly inaccurate results, and the
  other cases yielded infinities even though the answer could easily fit
  in a double.  (log -0.0) now returns -inf.0+<PI>i, where previously it
  returned -inf.0.  (log 0) now throws a numerical overflow exception,
  where previously it returned -inf.0.  (log 0.0) still returns -inf.0.
  Analogous changes made to `log10'.

* test-suite/tests/numbers.test (log, log10): Add tests.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2011-02-16 00:47:34 +01:00
Mark H Weaver
14a01ec1a8 Fix comment above number-theoretic division tests
* test-suite/tests/numbers.test: Fix comment.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2011-02-16 00:47:30 +01:00
Mark H Weaver
a5f6b751be Improvements to log' and log10'
* libguile/numbers.c (log_of_shifted_double, log_of_exact_integer,
  log_of_exact_integer_with_size, log_of_fraction): New internal static
  functions used by scm_log and scm_log10.

  (scm_log, scm_log10): Robustly handle large integers, large and small
  fractions, and fractions close to 1.  Previously, computing logarithms
  of fractions close to 1 yielded grossly inaccurate results, and the
  other cases yielded infinities even though the answer could easily fit
  in a double.  (log -0.0) now returns -inf.0+<PI>i, where previously it
  returned -inf.0.  (log 0) now throws a numerical overflow exception,
  where previously it returned -inf.0.  (log 0.0) still returns -inf.0.
  Analogous changes made to `log10'.

* test-suite/tests/numbers.test (log, log10): Add tests.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2011-02-16 00:40:35 +01:00
Mark H Weaver
c05696aa94 Fix comment above number-theoretic division tests
* test-suite/tests/numbers.test: Fix comment.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2011-02-16 00:40:11 +01:00
Ludovic Courtès
7bfedb8707 Switch to 2.0.0.
* GUILE-VERSION (GUILE_MAJOR_VERSION, GUILE_MINOR_VERSION,
  GUILE_MINOR_VERSION): 2.0.0!
2011-02-15 16:45:20 +01:00
Ludovic Courtès
1d82efbceb Increment `LIBGUILE_INTERFACE_CURRENT'.
* GUILE-VERSION (LIBGUILE_INTERFACE_CURRENT): Set to 22, i.e.,
  Guile 1.8.8 + 1.
2011-02-15 16:44:00 +01:00