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

15337 commits

Author SHA1 Message Date
Andy Wingo
ded42750d6 git-version-gen: add --match argument
* build-aux/git-version-gen (Options): Add --match argument.
  (v_from_git): Remove path without --match.
2012-07-06 16:08:25 +02:00
Andy Wingo
826ce16e29 update git-version-gen from gnulib
* build-aux/git-version-gen: Import from gnulib.
2012-07-06 15:17:07 +02:00
Daniel Krueger
e1fb0e811b fixed repl command ,describe to also handle syntax 2012-07-06 14:35:10 +02:00
Dagobert Michelsen
5e33d0aa37 Add alignment for Sun Studio 12 2012-07-06 13:22:27 +02:00
Andy Wingo
3fabb2d2be more uri-related ipv6 fixes
* module/web/uri.scm (ipv6-regexp): IPv6 numeric addresses do not have
  brackets.  It's only in URIs that they have them.
  (ipv6-host-pat, authority-regexp, parse-authority): Refactor ipv6
  detection to fix a bug with |, and to extract IPv6 hosts from their
  brackets.  This way we can pass the uri-host directly to inet-pton.
  (uri->string): If the host contains a `:', assume it is ipv6 and add
  brackets.

* test-suite/tests/web-uri.test ("build-uri"): Adapt tests to assume
  that the address returned by uri-host and passed to build-uri #:host
  does not have brackets.
2012-07-06 13:13:19 +02:00
Daniel Hartwig
81e7210f14 enhance IPv6 support
* module/web/uri.scm (valid-host?): Support dotted-quad notation
  in IPv6 addresses.
  (parse-authority): Support IPv6 literals.
* test-suite/tests/web-uri.test: Add and fix tests.
2012-07-06 12:33:41 +02:00
Daniel Hartwig
274e2eecf1 support URIs with domain names starting with numbers
* module/web/uri.scm (valid-host?): Fix regexp to support
domain names starting with numbers.
* test-suite/tests/web-uri.scm: Add tests for above and
IP literals.
2012-07-06 12:33:16 +02:00
Andy Wingo
d540a1d648 fix typo in web.texi
* doc/ref/web.texi (HTTP Headers): Fix typo in example.  Fixes
  http://bugs.gnu.org/10890.
2012-07-06 12:23:39 +02:00
Andy Wingo
fc835b1b14 better procedure-arguments for interpreted procs with opt, rest, kwargs
* module/ice-9/session.scm (procedure-arguments): Arrange to interpret
  numbers in the "req" and "opt" positions of an 'arglist as N arguments
  with unknown name.

* module/ice-9/eval.scm (primitive-eval): Set 'arglist on "complex"
  procedures.  Fixes http://bugs.gnu.org/10922.

* test-suite/tests/session.test ("procedure-arguments"): Add a test.
2012-07-06 12:19:12 +02:00
Andy Wingo
5558cdaa30 add check for fchmod
* configure.ac: Add a check for fchmod.

* libguile/filesys.c (scm_chmod): Guard the fchmod case with
  HAVE_FCHMOD.
2012-07-06 11:01:51 +02:00
Andy Wingo
fc30e14ffe remove mkdir alias in filesys.c for mingw
* libguile/filesys.c (mkdir): Remove alias, as gnulib handles this for
  us.
2012-07-06 10:56:02 +02:00
Andy Wingo
baeb727bcf fix warnings in mingw in expand.c
* libguile/expand.c (VOID_, CONST_): Add trailing underscores to avoid
  name conflicts on MinGW.
2012-07-06 10:50:31 +02:00
Andy Wingo
eca586b489 fix warning about vsnprintf on mingw
* libguile/deprecation.c: Remove a vsnprintf alias for mingw, now that
  gnulib handles it correctly.
2012-07-06 10:43:29 +02:00
Andy Wingo
3b6e619824 be sure to include time.h for struct timespec
* libguile/gen-scmconfig.c: The GNU libc manual says that struct
  timespec is defined in time.h.  So, just include both sys/time.h and
  time.h, if they are available.
2012-07-06 10:43:02 +02:00
Andy Wingo
13e3d3d95d fix `vector' instruction emission for big vectors
* module/language/glil/compile-assembly.scm (dump-constants): Only use
  the `vector' instruction for vectors whose length can fit in 16 bits.

  Fixes http://bugs.gnu.org/11087.
2012-07-05 23:26:38 +02:00
Andy Wingo
b8a5606b10 fix-letrec uses effects.scm for effects analysis
* module/language/tree-il/fix-letrec.scm: Use effects.scm for effects
  analysis, instead of primitives.scm.
  (simple-expression?, partition-vars): Adapt.
2012-07-05 20:40:56 +02:00
Andy Wingo
997ed30070 simplify one kind of degenerate prompt
* module/language/tree-il/peval.scm (<operand>): Instead of having a
  `residualize?' field, have it be a use count.
  (peval): Adapt to <operand> change.  Add function to kill uses of an
  operand.  Use it in the <prompt> inliner.  Add another kind of
  degenerate prompt to elide.  We should really switch to CPS though, as
  that will allow us to contify more aggressively.

* test-suite/tests/peval.test ("partial evaluation"): Adapt (while #t
  #t) test, which was sensitive to how far the recursive inlining got.
  Add a test for the degenerate prompt elision.
2012-07-05 20:39:16 +02:00
Andy Wingo
37081d5d4b fix bugs in effects analysis of "effect+exception-free-primitives"
* module/language/tree-il/effects.scm (make-effects-analyzer): Be more
  precise regarding the effects of the so-called
  effect+exception-free-primitives: now we check their arities.

* test-suite/tests/cse.test ("cse"): Add a test that we don't
  elide (cons 1 2 3) in effect context.
2012-07-05 20:34:28 +02:00
Andy Wingo
3d2bcd2c35 optimize (apply foo 0 (list 1 2)) => (foo 0 1 2)
* module/language/tree-il/peval.scm (peval): Inline applications where
  we know the contents of the tail.

* test-suite/tests/peval.test ("partial evaluation"): Add tests.
2012-07-05 20:30:18 +02:00
Andy Wingo
c0cfa9ef07 compile ecmascript's `return' as an abort
* module/language/ecmascript/compile-tree-il.scm (current-return-tag):
  (with-return-prompt, comp): Compile `return' as an abort instead of a
  primcall to `return'.  Fixes beta-reduction by the optimizer -- it
  doesn't make sense for `return' to move from one function to another!
2012-07-05 11:06:29 +02:00
Andy Wingo
21b83fb795 fix goops compilation when current language is not scheme
* module/oop/goops/dispatch.scm (compute-dispatch-procedure): Set source
  language to Scheme, not (current-language).
2012-07-05 10:15:02 +02:00
Andy Wingo
8898f43cb2 add scm_c_nvalues to news
* NEWS: Add scm_c_nvalues.
2012-07-04 17:54:57 +02:00
Andy Wingo
e1c80e6b30 add scm_c_nvalues with docs; also, docs for scm_c_values
* libguile/values.h:
* libguile/values.c (scm_c_nvalues): New function.

* doc/ref/api-control.texi (Multiple Values): Add docs for scm_c_values
  and scm_c_nvalues.

Fixes http://bugs.gnu.org/11764.
2012-07-04 17:49:37 +02:00
Andy Wingo
467be245cb add scm_{to,from}_pointer docs
* doc/ref/api-foreign.texi: Add documentation for scm_to_pointer and
  scm_from_pointer.
2012-07-04 17:43:53 +02:00
Andy Wingo
d2e3579363 update NEWS
* NEWS: Update.
2012-07-02 23:02:20 +02:00
Andy Wingo
d0491c9a16 dead code elimination
* module/ice-9/psyntax.scm: Remove commented-out definitions of `do' and
  `case'.
2012-07-02 23:02:20 +02:00
Andy Wingo
b5f2625933 remove docs for smob-call instruction
* doc/ref/vm.texi (Trampoline Instructions): Remove docs for smob-call.
2012-07-02 23:02:20 +02:00
Andy Wingo
98aa6f5bde typo fix in web.texi
* doc/ref/web.texi (URIs): Fix a typo/thinko.
2012-07-02 23:02:20 +02:00
Ludovic Courtès
a8215aedad Have procedure-arguments' always return the allow-other-keys?' pair.
Fixes <http://bugs.gnu.org/10938>.
Based on a patch by Stefan Israelsson Tampe <stefan.itampe@gmail.com>.

* module/ice-9/session.scm (procedure-arguments): When the 'arglist
  property is available, emit the `allow-other-keys?' pair.  Use
  `match-lambda'.

* test-suite/tests/session.test ("procedure-arguments")["aok? is
  preserved"]: New test.
2012-07-02 15:08:25 +02:00
Ludovic Courtès
bfdbea1f20 Add tests for `procedure-arguments'.
* test-suite/tests/session.test ("procedure-arguments"): New test
  prefix.
2012-07-02 15:02:10 +02:00
Ludovic Courtès
162d9025f8 Update `THANKS'. 2012-07-02 11:22:26 +02:00
Ludovic Courtès
e862ae1ceb Remove backward-compatible `GC_PTR' definition.
Fixes <http://bugs.gnu.org/11500>.
Reported by Kevin J. Fletcher <dev@kjfletch.co.uk>.

* libguile/bdw-gc.h (GC_PTR)[(defined GC_VERSION_MAJOR)
  && (GC_VERSION_MAJOR >= 7)]: Remove.
2012-07-02 11:22:15 +02:00
Ludovic Courtès
6922d92f96 Use void *' instead of GC_PTR' internally.
* libguile/finalizers.c, libguile/foreign.c, libguile/guardians.c,
  libguile/hashtab.c, libguile/numbers.c, libguile/ports.c,
  libguile/smob.c, libguile/struct.c, libguile/vectors.c,
  libguile/weaks.c: Use `void *' instead of `GC_PTR'.
2012-07-02 11:19:51 +02:00
Ludovic Courtès
bd5dea489b doc: Remove reference to `closure?', now deprecated.
Fixed <http://bugs.gnu.org/11611>.

* doc/ref/api-procedures.texi (Procedure Properties): Remove reference
  to `closure?'.  Suggested by David Jaquay <djaquay@gmail.com>.
2012-07-02 11:00:13 +02:00
Andy Wingo
2874f66017 add char->integer, number->string etc to interesting primitives
* module/language/tree-il/primitives.scm (*interesting-primitive-names*):
  (*effect-free-primitives*): Add string->number, number->string,
  integer->char, and char->integer to allow for constant folding and
  better effects analysis.
2012-06-22 12:33:20 +02:00
Andy Wingo
5cfa385db7 update version-etc copyright year
* module/ice-9/command-line.scm (version-etc): Update copyright year to
  2012.
2012-06-22 12:33:20 +02:00
Andy Wingo
4d1ae11279 cse: expressions evaluated for effect do not provide predicates
* module/language/tree-il/cse.scm (cse): When trying to fold
  conditionals, only look at entries in the database that were added in
  test context.

* test-suite/tests/cse.test ("cse"): Add a test case.
2012-06-22 12:33:20 +02:00
Andy Wingo
378daa5fa5 scandir: select? takes basenames, operates on (sub)dirs also
* module/ice-9/ftw.scm (scandir): Run the select? procedure on all
  items, including subdirs and the `.' and `..' entries.  Pass it the
  basename of the file in question instead of the full name.

* test-suite/tests/ftw.test ("scandir"): Adapt expectation for the .test
  selector.  Add test for a selector that rejects everything.
2012-06-22 12:33:20 +02:00
Ludovic Courtès
03fcf93bff Fix possible deadlock upon encoding-error' in open-input-string'.
Partly addresses <http://bugs.gnu.org/11197>.

* libguile/strports.c (scm_mkstrport): Call `scm_port_non_buffer', set
  Z's cell type and stream, and release `scm_i_port_table_mutex' early.
  Reacquire `scm_i_port_table_mutex' once BUF, C_BUF, and STR_LEN are
  initialized.

* test-suite/tests/ports.test ("string ports")["encoding failure leads
  to exception"]: New test.
2012-06-20 22:56:11 +02:00
Ludovic Courtès
ecb48dccba Make SRFI-6 string ports Unicode-capable.
Partly addresses <http://bugs.gnu.org/11197>.
Reported by Klaus Stehle <klaus.stehle@uni-tuebingen.de>.

* module/srfi/srfi-6.scm (open-input-string, open-output-string): New
  procedures.

* test-suite/tests/srfi-6.test ("open-input-string")["read-char,
  Unicode"]: New test.
  ("open-output-string")["λ"]: New test.
2012-06-20 15:50:27 +02:00
Ludovic Courtès
2cb363622d Update `THANKS'. 2012-06-20 15:44:29 +02:00
Ludovic Courtès
f3b312a19d Fix cross-compilation of GOOPS-using code.
Fixes <http://bugs.gnu.org/11645>.
Reported by Bogdan A. Marinescu <bogdan.a.marinescu@intel.com>.

* module/oop/goops/dispatch.scm (compute-dispatch-procedure)[comp]:
  Wrap `compile' call in (with-target %host-type ...).
2012-06-20 01:11:44 +02:00
Sjoerd van Leent
6b5e918e4f Fix unbound variables and unbound values
* module/language/ecmascript/base.scm: fix two wrong variable names and a wrong
  number of arguments in a function call.
2012-06-08 21:21:08 -04:00
Ludovic Courtès
e80494083a Fix invalid use of `SCM' as a Boolean.
* libguile/deprecated.c (scm_sym2var): Check `scm_is_true (definep)'.
2012-06-08 12:44:07 +02:00
Ludovic Courtès
0a3ac81a1c Update (ice-9 match) from Chibi-Scheme.
Fixes <http://bugs.gnu.org/10651>.

* module/ice-9/match.upstream.scm: Update.
2012-06-08 12:42:08 +02:00
Ludovic Courtès
27ea5c3f31 Make `substitute' conversion strategy test portable.
* test-suite/tests/foreign.test ("pointer<->string")["%default-port-conversion-strategy
  is soft"]: Split into the following tests.
  ["%default-port-conversion-strategy is escape",
  "%default-port-conversion-strategy is substitute"]: New tests.  In the
  latter, add the escape form returned on FreeBSD 8.2 and Darwin 10.8.0.
2012-05-31 15:56:06 +02:00
Ludovic Courtès
d3a1a74cb8 Fix port test that assumed string ports use the `error' conversion strategy.
This is a followup to 9f6e3f5a99 ("Have
string ports honor `%default-port-conversion-strategy'.").

* test-suite/tests/r6rs-ports.test ("7.2.11 Binary
  Output")["put-bytevector with wrong-encoding string port"]: Set
  %DEFAULT-PORT-CONVERSION-STRATEGY to 'error.  Return #f when no
  exception is raised.
  ("8.2.6  Input and output ports")["transcoded-port [error handling
  mode = raise]"]: Return #f when no exception is raised.
2012-05-31 14:29:25 +02:00
Ludovic Courtès
9f6e3f5a99 Have string ports honor `%default-port-conversion-strategy'.
* libguile/strports.c (scm_mkstrport): Remove initialization of
  `pt->ilseq_handler'.

* module/ice-9/pretty-print.scm (truncated-print)[ellipsis]: Set
  %DEFAULT-PORT-CONVERSION-STRATEGY to 'error.

* test-suite/tests/ports.test ("string
  ports")["%default-port-conversion-strategy is honored"]: New test.
  ["wrong encoding"]: Rename to...
  ["wrong encoding, error"]: ... this.  Explicitly set
  %DEFAULT-PORT-CONVERSION-STRATEGY to 'error.  Return #f when no
  exception is raised.
2012-05-31 00:54:21 +02:00
Ludovic Courtès
b22e94db7c Add the `%default-port-conversion-strategy' fluid.
Fixes <http://bugs.gnu.org/11468>.

* libguile/ports.c (scm_conversion_strategy): Remove.
  (default_conversion_strategy_var, sym_error, sym_substitute,
  sym_escape): New variables.
  (scm_i_get_conversion_strategy, scm_i_set_conversion_strategy_x):
  Remove.
  (scm_i_default_port_conversion_handler,
  scm_i_set_default_port_conversion_handler): New functions.
  (scm_port_conversion_strategy): Use
  `scm_i_default_port_conversion_handler' when PORT is #f.
  (scm_set_port_conversion_strategy_x): Use SYM_ERROR, SYM_SUBSTITUTE,
  and SYM_ESCAPE.  Use `scm_i_set_default_port_conversion_handler' when
  PORT is #f.
  (scm_init_ports): Initialize DEFAULT_CONVERSION_STRATEGY_VAR.

* libguile/ports.h: Update declarations accordingly.

* libguile/foreign.c: Change
  `scm_i_get_conversion_strategy (SCM_BOOL_F)' to
  `scm_i_default_port_conversion_handler ()'.
* libguile/strings.c: Likewise.

* test-suite/tests/ports.test ("%default-port-conversion-strategy"): New
  test prefix.

* test-suite/tests/foreign.test ("pointer<->string")["%default-port-conversion-strategy
  is error", "%default-port-conversion-strategy is soft"]: New tests.

* test-suite/test-suite/lib.scm (exception:encoding-error): Allow the
  regexp to match `scm_to_stringn' error messages.

* doc/ref/api-io.texi (Ports): Document `%default-port-conversion-strategy'.
2012-05-31 00:50:36 +02:00
Ludovic Courtès
478848cb70 Access `pt->ilseq_handler' directly when needed.
* libguile/print.c (PORT_CONVERSION_HANDLER): New macro.
  (print_extended_symbol, iprin1, write_character, scm_write_char): Use
  it instead of `scm_i_get_conversion_strategy'.

* libguile/strports.c (scm_mkstrport): Assign `pt->ilseq_handler'
  directly instead of via `scm_i_set_conversion_strategy_x'.
2012-05-31 00:50:36 +02:00