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

20154 commits

Author SHA1 Message Date
Ludovic Courtès
ff14b77ff5 texinfo: Properly render @acronym in plain text.
Fixes <https://bugs.gnu.org/37846>.
Reported by Christopher Baines <mail@cbaines.net>.

* module/texinfo/plain-text.scm (acronym): New procedure.
(tag-handlers): Change 'acro' handle to ACRONYM, and add 'acronym'
handler.
* test-suite/tests/texinfo.plain-text.test ("stexi->plain-text")
["acronym", "recursive acronym"]: New tests.
2020-01-29 15:19:37 +01:00
Ludovic Courtès
c4b2bd3781 texinfo: Add '*line-width*' fluid to control line wrapping.
* module/texinfo/plain-text.scm (*line-width*): New variable.
(wrap*): Honor it.
* doc/ref/texinfo.texi (texinfo plain-text): Document it.
* test-suite/tests/texinfo.plain-text.test: New file.
* test-suite/Makefile.am (SCM_TESTS): Add it.
2020-01-29 15:19:37 +01:00
Daniel Llorens
f2781c9604 Fix check for rl_get_keymap
This lets Guile build on OS X (tested on 10.14) with the system-provided
libreadline.

* acinclude.m4 (GUILE_READLINE): Check for rl_get_keymap_name instead of
  rl_get_keymap. The system provided libreadline is an alias to libedit,
  which has _keymap but not _keymap_name, and Guile uses both.
* guile-readline/readline.c: Adjust the include guard.
2020-01-28 11:11:24 +01:00
Daniel Llorens
321fc5b6b8 Add missing include for strncmp() 2020-01-27 14:39:23 +01:00
Daniel Llorens
0fee413ff8 Clarify open-input-pipe example in doc 2020-01-24 12:28:29 +01:00
Rob Browning
ddcab06f20 00-repl-server.test: don't use fixed path for socket
* test-suite/tests/00-repl-server.test (make-tempdir): Add.
(call-with-repl-server): Store socket in a make-tempdir dir.
2020-01-23 19:16:01 -06:00
Ludovic Courtès
bf1f5422bd statprof: Ensure 'call-thunk' is not inlined.
Previously, 'make-stack' calls with the inner and outer cuts arguments
would always return #f because 'call-thunk' wouldn't appear on the
stack.

* module/statprof.scm <top level>: Add self-assignment to 'call-thunk'.
2020-01-23 21:46:28 +01:00
Ludovic Courtès
1b8e9ca0e3 rnrs: Export '&assertion' from (rnrs conditions).
Fixes <https://bugs.gnu.org/39210>
Reported by Ricardo Wurmus <rekado@elephly.net>.

* module/rnrs/conditions.scm (rnrs): Import '&assertion-failure' as
'&assertion', not '&assertion-violation'.
2020-01-21 17:56:13 +01:00
Ludovic Courtès
491cc23f93 build: Actually install libguile-3.0-gdb.scm.
Reported by brandelune on #guile.

* libguile/libguile-2.2-gdb.scm: Rename to...
* libguile/libguile-3.0-gdb.scm: ... this.
* libguile/Makefile.am (install-data-hook): Replace hard-coded "2.2"
with @GUILE_EFFECTIVE_VERSION@.
2020-01-21 17:51:37 +01:00
Ludovic Courtès
f329837fd1 use2dot: Fix incorrect #:autoload binding set leading to unbound variables.
* module/scripts/use2dot.scm: Load (ice-9 getopt-long) with #:use-module
rather than #:autoload.  With the previous #:autoload spec, 'option-ref'
would be unbound due to the new autoload semantics.
2020-01-20 11:43:28 +01:00
Ludovic Courtès
7b90947294 frisk: Fix incorrect #:autoload binding set leading to unbound variables.
* module/scripts/frisk.scm: Load (ice-9 getopt-long) with #:use-module
rather than #:autoload.  With the previous #:autoload spec, 'option-ref'
would be unbound due to the new autoload semantics.
2020-01-20 11:41:38 +01:00
Ludovic Courtès
5f1ed870ea repl: Add missing bindings in #:autoload spec.
Fixes <https://bugs.gnu.org/39196>.
Reported by Matt Wette <matt.wette@gmail.com>.

* module/system/repl/command.scm: Augment #:autoload set of bindings.
2020-01-20 10:29:52 +01:00
shack@muto.ca
656ce936ed doc: Use gender-neutral language in Preface
* doc/ref/preface.texi: Avoid gendered pronoun.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2020-01-20 10:23:33 +01:00
Ludovic Courtès
228ae549ca Make 'scm_sym_lambda', 'scm_sym_quote', etc. public again.
Fixes <https://bugs.gnu.org/39183>.

These symbols had been inadvertently removed from libguile, even though
they were intended to be public (as they were in 2.2).

* libguile/expand.c: Include "memoize.h".
2020-01-20 10:21:40 +01:00
Ludovic Courtès
d47061db23 exceptions: Export constructor and predicate for '&quit-exception'.
* module/ice-9/exceptions.scm: Re-export '&quit-exception' and export
'make-quit-exception' and 'quit-exception?'.
(quit-exception?): New procedure.
2020-01-18 23:33:01 +01:00
Andy Wingo
a0fdb4efc1 Fix version computation for v3.0
* configure.ac: Fix git-version-gen invocation.
2020-01-15 21:34:21 +01:00
Andy Wingo
e18a3b1c05 Prepare 3.0 versioning
* GUILE-VERSION (GUILE_MAJOR_VERSION, GUILE_MINOR_VERSION)
  (GUILE_MICRO_VERSION): Bump for 3.0.
  (LIBGUILE_INTERFACE_CURRENT, LIBGUILE_INTERFACE_REVISION): Bump for
  new stable series.
2020-01-15 21:16:00 +01:00
Andy Wingo
20219f4037 Update release.org
* doc/release.org: Update for 3.0
2020-01-15 21:15:47 +01:00
Andy Wingo
bea8660c44 Disable eta-expansion in letrectification
* module/language/tree-il/letrectify.scm: Disable eta-expansion, as we
  now do that after peval.
2020-01-15 16:11:20 +01:00
Andy Wingo
2993c2d873 Add eta-expansion pass after peval
* am/bootstrap.am (SOURCES):
* module/Makefile.am (SOURCES): Add eta-expand.scm.
* module/language/tree-il/eta-expand.scm: New file.
* module/language/tree-il/optimize.scm (optimize)
  (tree-il-optimizations): Add eta-expansion at level 2.
2020-01-15 16:11:15 +01:00
Andy Wingo
b6dfc84fd4 Declarative variables optimization limits eta-expansion
* module/language/tree-il/letrectify.scm (compute-procedures-without-identity):
  (letrectify): Only eta-expand lambda references that appear outside
  the operator position more than once.  This should restore peoples'
  expectations that (eqv? f f) without penalizing optimization.
2020-01-14 09:39:28 +01:00
Andy Wingo
b47bf2434c Update REPL copyright year to 2020
* module/system/repl/common.scm (*version*): Update.
2020-01-14 09:37:45 +01:00
Andy Wingo
eadeda40f5 Wording tweak to history.texi
* doc/ref/history.texi (A Scheme of Many Maintainers): Fix wording.
2020-01-13 21:35:15 +01:00
Andy Wingo
838135ca0d Mention Mark Weaver in Guile history section
* doc/ref/history.texi (A Scheme of Many Maintainers): Credit to Mark
  for co-maintaining Guile for more than 5 years.  Thanks!!
2020-01-13 21:33:29 +01:00
Andy Wingo
dfa4e98432 Update NEWS
* NEWS: Fold incremental alpha entries into a cumulative 3.0.0 entry.
2020-01-13 20:30:00 +01:00
Ludovic Courtès
10fdd88cb8 Update NEWS.
* NEWS (Changes in alpha 2.9.x): Add (web client) news.
2020-01-13 11:21:09 +01:00
Ludovic Courtès
c3daf58b89 web: Update comment regarding the 'tls-wrap' port wrapper.
* module/web/client.scm (tls-wrap): Update comment.
2020-01-13 11:07:05 +01:00
Ludovic Courtès
38f14ce65d web: 'open-socket-for-uri' can verify the server's X.509 certificate.
This is largely based on Guix commit
bc3c41ce36349ed4ec758c70b48a7059e363043a and subsequent changes to that
code.

* module/web/client.scm (x509-certificate-directory): New variable.
(set-certificate-credentials-x509-trust-file!*)
(make-credendials-with-ca-trust-files, peer-certificate)
(assert-valid-server-certificate, print-tls-certificate-error): New
procedures.
<top level>: Add call to 'set-exception-printer!'.
(tls-wrap): Add #:verify-certificate? parameter.  When it is true, call
'make-credendials-with-ca-trust-files', pass it to
'set-session-credentials!', and call 'assert-valid-server-certificate'.
(open-socket-for-uri): Add #:verify-certificate? parameter and pass it
to 'tls-wrap'.
(http-request): Add #:verify-certificate? parameter and pass it to
'open-socket-for-uri'.
(define-http-verb): Add #:verify-certificate? parameter and pass it to
'http-request'.
* doc/ref/web.texi (Web Client): Update documentation of
'open-socket-for-uri' and 'http-request'.  Document
'x509-certificate-directory'.
2020-01-13 11:06:01 +01:00
Ludovic Courtès
bcba213284 web: Continue handshake upon TLS warning alerts.
This is a backport of Guix commit 7b9ac883ea62a816afbfa747c1377dc273c15c20.

* module/web/client.scm (tls-wrap): Catch 'gnutls-error' around
'handshake'.  Upon ERROR/WARNING-ALERT-RECEIVED, print a message and
call 'handshake'.
2020-01-13 11:06:01 +01:00
Ludovic Courtès
80bbebef4d web: Add 'current-https-proxy' and honor $https_proxy.
* module/web/client.scm (current-https-proxy): New variable.
(setup-http-tunnel): New procedure.
(open-socket-for-uri): Move 'http-proxy', 'uri', and 'addresses' inside
'open-socket'.  Remove 'with-https-proxy' macro.  Add call to
'setup-http-tunnel'.  Honor 'current-https-proxy' in 'open-socket'.
* doc/ref/web.texi (Web Client): Document 'current-https-proxy'.
* doc/ref/guile.texi: Update copyright years.

Based on Guix commit 9bc8175cfa6b23c31f6c43531377d266456e430e.

Co-authored-by: Sou Bunnbu (宋文武) <iyzsong@gmail.com>
2020-01-13 11:06:01 +01:00
Ludovic Courtès
c9b83a27c7 web: Adjust (gnutls) loading to new module autoload semantics.
Prior to commit cb14fd2143 (Guile 2.9.7),
autoloading a module would give you access to all its bindings.  In
future versions, autoloading a module gives access only to the listed
bindings, as per #:select (see <https://bugs.gnu.org/38895>).

This commit adjusts autoloads to the new semantics, fixing a regression
introduced in cb14fd2143.

* module/web/client.scm <top level>: Remove 'module-autoload!' call.
(gnutls-module, ensure-gnutls): Remove.
(load-gnutls): New procedure.
(tls-wrap): Call it instead of 'ensure-gnutls'.  Replace reference to
GNUTLS-MODULE by a call to 'resolve-interface'.
2020-01-13 11:06:01 +01:00
Andy Wingo
287d513ef1 Bump manual year, and fix NEWS typo
* NEWS: Fix a typo.
* doc/ref/guile.texi: Bump copyright year.
2020-01-13 09:52:01 +01:00
Andy Wingo
f973761f8d GNU Guile 2.9.9 (beta).
* GUILE-VERSION (GUILE_MICRO_VERSION): Bump to 2.9.9.
2020-01-13 09:11:20 +01:00
Andy Wingo
ad88afdc5e Bump user-visible copyright years to 2020
* module/ice-9/command-line.scm (version-etc):
* module/scripts/compile.scm (show-version): Bump to 2020.
2020-01-13 08:36:23 +01:00
Andy Wingo
53a3602b20 Bump objcode minor version in preparation for new stable series
* libguile/loader.h (SCM_OBJCODE_MINIMUM_MINOR_VERSION):
  (SCM_OBJCODE_MINOR_VERSION):
* module/system/vm/assembler.scm (*bytecode-minor-version*): Bump.
2020-01-13 08:01:40 +01:00
Tim Gesthuizen
1733efe236 srfi-11: Do not expose variables to later clauses
The current implementation of srfi-11s let-values allows later clauses
to access and modify variables bound in earlier clauses when the clause
is not a proper list.

* module/srfi/srfi-11.scm (let-values): Fix switched variable names.
* test-suite/tests/srfi-11.test (let-values): Add test checking that the
  variable cannot be changed in later clauses.
2020-01-12 22:18:41 +01:00
Andy Wingo
7726ed7423 Update NEWS
* NEWS: Update.
2020-01-12 22:08:49 +01:00
Rob Browning
2446e7dc29 Respect thread local fluid defaults
Previously (fluid-ref (make-thread-local-fluid #t)) would return #f via
scm_fluid_ref because the internal scm_hashq_ref would return #f when
the fluid had not been set, and that was interpreted as an actual value
for the fluid.

Instead, just pass the fluid default as the default for the hash table
lookups so that we don't need a second step to determine if the fluid
was set.

Thanks to Andrew Gierth for tracking down the problem.
2020-01-12 22:04:29 +01:00
Andy Wingo
4dd4d286cc Fix typos in previous commit.
* module/ice-9/boot-9.scm (record-modifier):
* module/rnrs/records/procedural.scm (make-record-type-descriptor): Fix
  typos.
2020-01-12 22:01:54 +01:00
Andy Wingo
86a9f9a271 Optionally allow duplicate field names in core records
* NEWS: Update.
* doc/ref/api-data.texi (Records): Update docs.
* module/ice-9/boot-9.scm (make-record-type): Add
  #:allow-duplicate-field-names? keyword argument.
  (record-accessor, record-modifier): Allow passing indexes to identify
  fields.
* module/rnrs/records/procedural.scm (make-record-type-descriptor):
  Allow duplicate field names.  Fixes #38611.
2020-01-12 21:51:22 +01:00
Andy Wingo
cf53854d42 Fix peval bug that ignored excess args
* module/language/tree-il/peval.scm (peval): Fix arity check for type
  confusion (empty value of "rest" in this context was (), not #f).  The
  effect was that we'd silently allow extra arguments to inlined calls.
  Thanks to Christopher Lam for the report!  Fixes #38617.
* test-suite/tests/peval.test ("partial evaluation"): Add a test.
2020-01-12 21:11:09 +01:00
Andy Wingo
fd2ffc649c Support R7RS define-library
* module/Makefile.am (ice-9/boot-9.go, NOCOMP_SOURCES): Add
  r7rs-libraries.
* module/ice-9/boot-9.scm ("ice-9/r7rs-libraries"): Include file.
* module/ice-9/psyntax.scm (call-with-include-port): New definition.
  (include): Use call-with-include-port.
* module/ice-9/psyntax-pp.scm: Regenerate.
* module/ice-9/r7rs-libraries.scm: New file.
* module/scheme/base.scm (r7:include, r7:include-ci): Fix mistaken use
  of core "include".  Use include-ci from core.
  (features): Remove features that are already part of core.
* NEWS: Update.
2020-01-12 20:31:47 +01:00
Andy Wingo
639d0b3768 Add NEWS entries
* NEWS: Add a couple entries.
2020-01-11 11:51:38 +01:00
Andy Wingo
8fcfcabec8 Fix bug in closure conversion
* module/language/cps/closure-conversion.scm (convert-one):
  Strongly-connected components of letrec bindings that do not share a
  closure may include member functions that have a single free variable,
  or even no free variables as a result of free variable pruning.
  Handle this case instead of erroring out.  Thanks to Stefan Israelsson
  Tampe for the report.
2020-01-11 11:50:44 +01:00
Andy Wingo
74f46efc73 Fix build on 32-bit systems with JIT support
* libguile/intrinsics.h: Add s64->f64 intrinsic, for 32-bit targets.
* libguile/jit.c (compile_s64_to_f64): Call the intrinsic for 32-bit
  targets.
2020-01-11 10:28:36 +01:00
Andy Wingo
640eb5d1b3 Update NEWS with details on guard and autoloads.
* NEWS: Update.
2020-01-10 22:09:17 +01:00
Andy Wingo
8068994ba8 Re-implement `guard'
* module/ice-9/exceptions.scm (guard): Add guard definition that
  re-propagates from original continuation, runs consequents in tail
  position in guard continuation, and doesn't rewind the stack.
* module/srfi/srfi-34.scm:
* module/rnrs/exceptions.scm (guard): Re-export from (ice-9
  exceptions).
2020-01-10 21:42:26 +01:00
Andy Wingo
9f2b703101 Merge remote-tracking branch 'lightening/master' 2020-01-06 22:00:53 +01:00
Andy Wingo
2db2b12e85 Fix mips32r6 bug
See also:

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=925129
http://hades.mech.northwestern.edu/images/1/16/MIPS32_Architecture_Volume_II-A_Instruction_Set.pdf
https://lists.gnu.org/archive/html/lightning/2019-08/msg00010.html
https://lists.gnu.org/archive/html/guile-devel/2019-08/msg00030.html

* lightening/mips-cpu.c: Fix encoding of LR.  Thanks to Bruno Haible.
2020-01-06 21:58:04 +01:00
Andy Wingo
ba05f1dd6d Mention WebAssembly in status section
* doc/ref/history.texi (Status): Add mention of WebAssembly.
2020-01-06 21:51:02 +01:00