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

13578 commits

Author SHA1 Message Date
Neil Jerram
96ca59d839 Promote regex doc out of the `Simple Data Types' section
Because that probably isn't where people will look for it.
Thanks to Noah Lavine for the idea.

* doc/ref/api-regex.texi (Regular Expressions): New file, containing
  the regex doc (promoted one level) that used to be in api-data.texi.

* doc/ref/guile.texi (API Reference): Include new file, and add menu
  entry for the new section.

* THANKS: Add Noah.
2010-10-31 08:24:28 +00:00
Ludovic Courtès
01a4f0aae5 Fix typo in the (system base lalr) documentation.
* doc/ref/api-lalr.texi (LALR(1) Parsing): "The tokenizer should be a
  unary procedure" -> "thunk".  Patch by Noah Lavine
  <noah.b.lavine@gmail.com>.
2010-10-28 00:03:54 +02:00
Andreas Rottmann
5efcd34d71 Extend the #:replace list of the SRFI 69 module
* module/srfi/srfi-69.scm: Add `make-hash-table' and `hash-table?' to
  the #:replace list of the module definition.
2010-10-27 23:33:40 +02:00
Ludovic Courtès
dcb9aceb48 Have "frisk" recognize #:use-module' and #:autoload'.
* module/scripts/frisk.scm (grok-proc): Support keywords `#:use-module'
  and `#:autoload'.
2010-10-27 23:31:49 +02:00
Ludovic Courtès
9cec275968 Augment `arithmetic.bm'.
* benchmark-suite/benchmarks/arithmetic.bm (repeat): Change the syntax.
  Add support for binary OP.
  ("fixnum")["1+", "1-"]: Adjust accordingly.
  ["+", "-"]: New benchmarks.
2010-10-27 23:29:37 +02:00
Neil Jerram
0b9bdb1b57 Fix manual typo
* doc/ref/api-foreign.texi: "prodedures" -> "procedures".
2010-10-26 09:11:52 +01:00
Julian Graham
fe15364988 Improve performance of R6RS records implementation
Reimplement record-type descriptors as vtables for record structs, saving
us what was an expensive inspection of a record's vtable layout string to
determine its type.

* module/rnrs/records/inspection.scm (record-field-mutable?): Check
  mutability using the bit field stored in the record-type descriptor
  instead of the record struct's vtable.
* module/rnrs/records/procedural.scm (record-internal?): Reimplement as a
  delegation to a check of the passed struct's vtable against
  `record-type-descriptor?'.
  (record-type-vtable): Modify to include base vtable layout as a prefix
  of the record-type-descriptor layout so that all record-type instances
  are now also vtables.
  (make-record-type-descriptor): Remove field vtable; build up a mutability
  bit field to use for fast mutability checks.
  (record-accessor, record-mutator): Use field struct and mutability bit
  field.
2010-10-22 14:34:49 -04:00
Ludovic Courtès
3a1a883b63 Tweak -Wunused-variable' and -Wunused-toplevel' for special names.
* module/language/tree-il/analyze.scm (gensym?): New procedure.
  (unused-variable-analysis): Ignore variables whose name passes
  `gensym?' or is `_'.
  (unused-toplevel-analysis): Ignore variables whose name passes
  `gensym?'.

* test-suite/tests/tree-il.test ("warnings")["unused-variable"]("special
  variable names"): New test.
  ["unused-toplevel"]("special variable names"): New test.
2010-10-20 23:45:59 +02:00
Ludovic Courtès
fb3fad5346 Add Libs.private' to the .pc' files.
* meta/guile-2.0-uninstalled.pc.in (Libs): Remove @GUILE_LIBS@.
  (Libs.private): New field.
* meta/guile-2.0.pc.in (Libs): Remove @GUILE_LIBS@.
  (Libs.private): New field.
2010-10-20 23:45:59 +02:00
Ludovic Courtès
abd7e37ab7 configure: Don't needlessly augment $LIBS (and $GUILE_LIBS.)
* configure.ac: Don't augment $LIBS with $LTLIBUNISTRING and
  $BDW_GC_LIBS.

* libguile/Makefile.am (libguile_@GUILE_EFFECTIVE_VERSION@_la_LDFLAGS):
  Remove @LTLIBINTL@.  Add $(BDW_GC_LIBS).
2010-10-20 23:45:58 +02:00
Tristan Colgate-McFarlane
511246a193 Add support for more multicast sockopts.
* libguile/socket.c: Add support for IP_MULTICAST_TTL and IP_MILTICAST_IF sockopts.
2010-10-20 23:11:34 +02:00
Tristan Colgate-McFarlane
705a2b9bc8 Fix detection of struct ip_mreq
* configura.ac: netinet/in.h is required to complete definition of
  struct ip_mreq.
2010-10-20 23:11:09 +02:00
Andy Wingo
3251222637 rdelim cleanups
* module/ice-9/rdelim.scm: Clean up export list.
  (read-line!, read-delimited!, read-delimited, read-line): Use
  define*.
2010-10-19 22:59:09 +02:00
Andy Wingo
534bbcc168 more -Wundef on darwin fixes
* libguile/threads.c:
* libguile/posix.c: Change a couple #if HAVE_FOO to #ifdef HAVE_FOO to
  pacify -Wundef. Some vars are defined or not, whereas some are always
  defined to 0 or 1. The inconsistency is unfortunate.
2010-10-18 13:35:46 +02:00
Andy Wingo
c1a0ba1cef uninitialized var in scm_read_character
* libguile/read.c (scm_read_character): Fix error condition where
  charname could be uninitialized.
2010-10-18 13:29:58 +02:00
Andy Wingo
ddffdd788d _scm GUILE_USE_64_CALLS compilation warning fix
* libguile/_scm.h: Check that GUILE_USE_64_CALLS is defined. Fixes an
  error on i386-apple-darwin9.8.0.
2010-10-18 13:27:17 +02:00
Andy Wingo
73124c6c63 web/uri: reimplement for rfc 3986, add tests
* module/web/uri.scm: Reimplement for RFC 3986.

* module/Makefile.am: Add to build.

* test-suite/Makefile.am:
* test-suite/tests/web-uri.test: Add tests.
2010-10-17 20:35:22 +02:00
Andy Wingo
15c9af8c71 import uri.scm from tekuti, from guile-www 2010-10-17 20:35:22 +02:00
Ludovic Courtès
9546dc8cbf Bump version number for 1.9.13.
* GUILE-VERSION (GUILE_MICRO_VERSION): Increment.
2010-10-15 15:56:07 +02:00
Ludovic Courtès
3fff6e71ff Update cpp-E.syms' and cpp-SIG.syms'.
* libguile/cpp-E.syms, libguile/cpp-SIG.syms: Update on a Glibc 2.11.1
  system.
2010-10-15 15:56:03 +02:00
Ludovic Courtès
9253d0905d Fix the chknew-E' and chknew-SIG' rules.
* libguile/Makefile.am (chknew-E chknew-SIG): Run gcc without `-undef'
  since otherwise it ends up trying to include headers that are not
  available (e.g., <gnu/stubs-32.h> on an x86_64-linux-gnu system.)
2010-10-15 15:56:01 +02:00
Michael Gran
45dc6b347d Unresolved var errors don't work for top-level vars
* libguile/vm-i-system.c (toplevel_ref, long_toplevel_ref): modified
2010-10-14 18:27:41 -07:00
Michael Gran
4ad7f6cf9f Update charsets to Unicode 6.0.0
* libguile/srfi-14.i.c: regenerated
2010-10-14 18:21:28 -07:00
Andy Wingo
df6336c0a0 re-implement srfi-34's guard with syntax-case
* module/srfi/srfi-34.scm (guard): Re-implement using syntax-case.
2010-10-14 16:13:57 +02:00
Andy Wingo
4aaa0650e0 ssax: add procs to define parsed entities
* module/sxml/ssax.scm (reset-parsed-entity-definitions!)
  (define-parsed-entity!): New heavy-handed knobs for adding to the set
  of parsed entity definitions.
2010-10-14 12:37:31 +02:00
Neil Jerram
37d6f737e7 Nuke GOOPS Quick Start' section, in favour of the Tutorial'
These sections are pretty similar in aim, but `Tutorial' is mostly
better material.

* doc/ref/goops-tutorial.texi (Class definition): Add a sentence about
  what slots are.

* doc/ref/goops-tutorial.texi (Tutorial): Remove repetition of the Stk
  origin, and index entries that are overly general in the context of
  the whole Guile manual.

  (Generic functions): Add text here about the nature of methods,
  previously in Quick Start.

* doc/ref/goops.texi (Quick Start): Move `Built-in classes' subsection
  to be part of `Introspection'.  Delete the rest, apart from snippets
  moved into Tutorial.
2010-10-13 23:55:55 +01:00
Andy Wingo
2b41a37b3c fix bug in with-fluids in a non-tail position
* libguile/vm-i-system.c (VM_DEFINE_INSTRUCTION): Drop the stack items
  corresponding the the with-fluids object. Thanks very much to Stefan
  Israelsson Tampe for the fix.
2010-10-13 21:20:23 +02:00
Ludovic Courtès
e78d4bf9a9 Optimize 1+' and 1-' on fixnums.
* libguile/vm-i-scheme.c (INUM_MAX, INUM_MIN): New macros.
  (add1, sub1): Add/subtract without untagging the operand.  This leads
  to a 44% run time improvement compared to the previous
  implementation.

* libguile/vm.c: Include <stdint.h>.

* test-suite/tests/numbers.test ("1+", "1-"): Add tests for
  MOST-POSITIVE-FIXNUM, resp. MOST-NEGATIVE-FIXNUM, for 32-bit and
  34-bit values thereof.

* benchmark-suite/benchmarks/arithmetic.bm: New file.

* benchmark-suite/Makefile.am (SCM_BENCHMARKS): Add it.
2010-10-13 01:31:19 +02:00
Neil Jerram
de6b3a5cb9 Edit `Adding Methods to Generic Functions'
* doc/ref/goops.texi (Adding Methods to Generic Functions): Move the
  bit about no applicable methods to `Invoking Generic Functions'.
  Other minor edits.
  (Basic Method Definition): Flattened into parent.
  (Method Definition Internals): Moved to MOP section at end of
  chapter.
2010-10-13 00:08:27 +01:00
Neil Jerram
a54f6dc037 Two very small edits
* doc/ref/goops.texi (User-defined classes): Remove brackets around
  `formally', for better flow.
  (Creating Instances): Lengthen hyphen.
2010-10-12 23:42:14 +01:00
Neil Jerram
eed4cc7bac Edit `Generic Functions and Accessors'
* doc/ref/goops.texi (Generic Function Internals): Moved to MOP section
  at end of chapter.
  (Basic Generic Function Creation): Flattened into parent, and text
  simplified.
  (Extending Primitives): Renamed from `Extending Guiles Primitives';
  removed `generic-capability?', which is no longer available;
  simplified a bit.
  (Merging Generics): New subsection for the material about merging;
  text simplified a bit.
2010-10-12 23:42:14 +01:00
Ludovic Courtès
03604fcf50 Allocate complex numbers in contiguous pointer-less memory.
* libguile/numbers.h (SCM_COMPLEX_MEM): Remove.
  (SCM_COMPLEX_REAL): Change to just fetch the `real' field of the
  pointed-to `scm_t_complex'.
  (SCM_COMPLEX_IMAG): Likewise.
  (scm_t_complex)[type, pad]: New fields.

* libguile/numbers.c (scm_c_make_rectangular): Allocate the whole
  complex contiguously, with `scm_gc_malloc_pointerless'.
2010-10-13 00:06:30 +02:00
Ludovic Courtès
978c52d108 Allocate inexact numbers in pointer-less memory.
* libguile/numbers.c (scm_from_double): Use `scm_gc_malloc_pointerless'
  instead of `scm_double_cell'.
2010-10-13 00:06:29 +02:00
Ludovic Courtès
796c980a6a Placate `-Wformat'.
* module/scripts/compile.scm (fail): Use a fancy format string instead
  of a non-literal one.
2010-10-13 00:06:29 +02:00
Andy Wingo
3d59aa7c0b update NEWS for 1.9.13
* NEWS: Update for 1.9.13.
2010-10-12 22:27:21 +02:00
Neil Jerram
917b2bf664 Add TeX form of jao's name
* doc/ref/scheme-using.texi: Add TeX equivalent for José.
2010-10-12 20:00:21 +01:00
Andy Wingo
51cb0cca66 fold old news items into main news body
* NEWS: Fold 1.9.12 items into the main body.
2010-10-12 13:58:39 +02:00
Andy Wingo
5aa12c699c ,frame and related commands handle for-trap? appropriately
* module/system/repl/debug.scm (print-frame): Add #:next-source? arg,
  for when print-frame should use frame-next-source instead of
  frame-source.
  (print-frames): Add #:for-trap? arg. If true, the 0th frame should be
  printed with frame-next-source.

* module/system/repl/command.scm (define-stack-command): Introduce
  for-trap? into the lexical env.
  (backtrace, up, down, frame): Update to do the right thing regarding
  #:for-trap?.
2010-10-12 13:24:46 +02:00
Andy Wingo
5414d33376 don't warn for (format #t fmt) -- format string actually named fmt
* module/language/tree-il/analyze.scm (format-analysis): Don't warn on
  non-literal format string if the format string is a lexical ref to a
  variable named "fmt". A slight hack, but effective :)
* module/system/repl/command.scm (display-stat): Rename the format
  string to "fmt".
2010-10-12 13:11:40 +02:00
Andy Wingo
a36c3a458e debug has for-trap? field
* module/system/repl/debug.scm (<debug>): New field, `for-trap?'. True
  if the stack is for a trap, and thus the top frame should use
  frame-next-source instead of frame-source.

* module/system/repl/command.scm (repl-pop-continuation-resumer)
  (repl-next-resumer):
* module/system/repl/error-handling.scm (call-with-error-handling):
  Update callers.
2010-10-12 13:09:48 +02:00
Andy Wingo
767dbb1af3 remove gds docs, telling users instead to use geiser and paredit
* doc/ref/scheme-using.texi (Using Guile in Emacs): Remove GDS docs, as
  we don't have GDS any more. Instead of surveying the field, be
  opinionated and tell users what to use: Geiser and Paredit.
2010-10-12 13:01:34 +02:00
Andy Wingo
ced9917e12 minor doc fixups
* doc/ref/scheme-scripts.texi (Invoking Guile): Some typos.
* doc/ref/tour.texi (Running Guile Scripts): More typos and PDF
  improvements.
* doc/ref/scheme-using.texi (Readline, Value History): Minor rewording.
  (Help Commands): Minor fixup.
2010-10-12 13:01:30 +02:00
Andy Wingo
f88dae81fe add --listen docs
* doc/ref/scheme-scripts.texi (Invoking Guile): Add --listen
  documentation.
2010-10-11 23:53:40 +02:00
Andy Wingo
9322905ce7 preface contributors tweaks
* doc/ref/preface.texi (Contributors): A couple tweaks
2010-10-11 23:32:30 +02:00
Andy Wingo
47bce022a8 update preface.texi contributors
* doc/ref/preface.texi (Contributors): Rewrite and update.
2010-10-11 22:53:23 +02:00
Ludovic Courtès
e9bac3be61 Allow arbitrary code in ASSOC procedures for weak hash tables (bug #29616).
* libguile/hashtab.c (struct t_assoc_args, do_weak_bucket_assoc):
  Remove.
  (struct t_fixup_args): New type.
  (do_weak_bucket_fixup): New function.
  (weak_bucket_assoc): Use it.  Keep strong references to BUCKET's
  entries in STRONG_REFS.  Call ASSOC once the alloc lock has been
  released.  This fixes bug #29616.

* test-suite/tests/weaks.test ("assoc can do anything"): New test.
2010-10-11 15:38:06 +02:00
Ludovic Courtès
dff58577d8 Fix a bug in weak hash table bucket fixup.
* libguile/hashtab.c (scm_fixup_weak_alist): Keep the value of PREV
  unchanged after a nullified pair is deleted; this fixes a bug whereby
  if several successive nullified pairs were encountered, not all of them
  would be removed, and the assertion in `weak_bucket_assoc' would be
  hit.  In addition, remove the `scm_is_pair (pair)' test.
2010-10-11 15:14:55 +02:00
Ludovic Courtès
08002eae4d Fix typo.
* module/system/repl/command.scm (repl-pop-continuation-resumer): Remove
  extraneous argument to `format'.
2010-10-10 19:10:11 +02:00
Ludovic Courtès
8e6c15a6f0 Add warnings for obvious syntax errors in format strings.
* module/language/tree-il/analyze.scm (&syntax-error): New variable.
  (format-string-argument-count): Throw to &SYNTAX-ERROR when a syntax
  error in a format string is encountered.
  (format-analysis): Catch &SYNTAX-ERROR and convert as a warning of the
  appropriate type.

* module/system/base/message.scm (%warning-types)[format]: Handle
  `syntax-error' warnings.

* test-suite/tests/tree-il.test
  ("warnings")["conditionals"]("unterminated", "unexpected ~;",
  "unexpected ~]"): New tests.
  ["unterminated ~{...~}"]: New test.
2010-10-10 19:10:11 +02:00
Ludovic Courtès
60f01304ee Add new `format' warnings.
* module/language/tree-il/analyze.scm (format-analysis): Add new
  sub-warnings: `wrong-port', `wrong-format-string',
  `non-literal-format-string', and `wrong-num-args'.

* module/system/base/message.scm (%warning-types)[format]: Handle
  them.

* test-suite/tests/tree-il.test ("warnings")["wrong port arg",
  "wrong format string", "non-literal format string",
  "wrong number of args"]: New tests.
2010-10-10 19:10:11 +02:00