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

15854 commits

Author SHA1 Message Date
Mark H Weaver
3e0605458a Revert "Add SRFI-25 implementation"
This reverts commit aaea5b248e.
2015-11-13 11:45:00 -05:00
Andreas Rottmann
aaea5b248e Add SRFI-25 implementation
Adds an implementation of SRFI 25 on top of Guile's native arrays. The
implementation does not introduce a disjoint type; Guile arrays and
SRFI-25 arrays can be used interchangably, though with different, partly
conflicting APIs.

* NEWS: Add preliminary, incomplete section on 2.0.12, noting the
  addition of SRFI-25.
* doc/ref/srfi-modules.texi (SRFI-25): New node.
* module/srfi/srfi-25.scm: New file.
* test-suite/tests/srfi-25.test: New file.
* module/Makefile.am:
* test-suite/Makefile.am: Add new files.

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2015-11-05 21:05:57 +01:00
Ludovic Courtès
c028c64eb8 Regenerate SRFI-14 character set data.
Suggested by Mike Gran <spk121@yahoo.com>.

* libguile/srfi-14.i.c: Regenerate for Unicode 8.0.0,
  <ftp://unicode.org/Public/UNIDATA/UnicodeData.txt> with SHA256
  38b17e1118206489a7e0ab5d29d7932212d38838df7d3ec025ecb58e8798ec20.
2015-11-05 21:05:57 +01:00
Mark H Weaver
133ec4c491 string ports: Add overflow checks and other fixes.
* libguile/strports.c (st_resize_port): Check that 'new_size' fits in a
  size_t.
  (st_end_input): Improve code clarity.
  (st_seek): Check for overflow during computation of target position.
  Check for invalid 'whence' argument.  Resize the port when seeking to
  a position beyond the end of the buffer.  Check for overflow during
  computation of new buffer size when resizing the port.
2015-11-01 21:30:01 -05:00
Mark H Weaver
448eb30e3d Fix seeking on binary input ports with putback buffers.
Fixes <http://bugs.gnu.org/20302>.
Reported by David Kastrup <dak@gnu.org>.

* libguile/r6rs-ports.c (bip_end_input): New static function.
  (initialize_bytevector_input_ports): Register it.
  (bip_seek): Rewrite to handle putback buffers, based on st_seek from
  strports.c.
2015-11-01 21:29:45 -05:00
Mark H Weaver
e1788828df build: Add SCM_T_OFF_MAX and SCM_T_OFF_MIN to scmconfig.h.
* libguile/gen-scmconfig.c (main): Add SCM_T_OFF_MAX and SCM_T_OFF_MIN
  to the generated 'scmconfig.h' file.
2015-11-01 21:29:32 -05:00
Ludovic Courtès
f57aba7ab7 doc: Mention a known-good Flex version number.
Suggested by Jamil Egdemir <unclejamil@gmail.com>.

* HACKING: Mention a Flex version number.
2015-10-30 17:15:24 +01:00
Ludovic Courtès
ac2ceddbfa Thank David and Kouhei. 2015-10-29 23:59:02 +01:00
Ludovic Courtès
efd8a438b3 build: Remove libguile/mkstemp.c, redundant with Gnulib.
Fixes <http://bugs.gnu.org/21425>.
Reported by Kouhei Sutou <kou@cozmixng.org>.

* configure.ac: Remove 'AC_REPLACE_FUNCS' for 'mkstemp'.
* libguile/Makefile.am (EXTRA_libguile_@GUILE_EFFECTIVE_VERSION@_la_SOURCES):
  Remove mkstemp.c.
* libguile/mkstemp.c: Remove.
2015-10-29 23:55:05 +01:00
David Michael
c3f95ec2c2 Remove SIGEV constant definitions.
* libguile/Makefile.am (chknew-E chknew-SIG): Anchor the end of the
  signal/error name pattern to only match alphanumeric symbols.
* libguile/cpp-SIG.syms (SIGEV_MAX_SIZE, SIGEV_NONE): Remove.
  (SIGEV_PAD_SIZE, SIGEV_SIGNAL, SIGEV_THREAD): Likewise.
  (SIGEV_THREAD_ID): Likewise.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2015-10-29 23:39:55 +01:00
David Michael
1be3063bf6 Add Hurd signal and error constants.
* libguile/cpp-E.syms (EAUTH, EBACKGROUND): New definitions.
  (EBADRPC, ED, EDIED, EFTYPE, EGRATUITOUS, EGREGIOUS): Likewise.
  (EIEIO, ENEEDAUTH, EPROCLIM, EPROCUNAVAIL): Likewise.
  (EPROGMISMATCH, EPROGUNAVAIL, ERPCMISMATCH): Likewise.
* libguile/cpp-SIG.syms (SIGEMT, SIGEV_MAX_SIZE): Likewise.
  (SIGEV_PAD_SIZE, SIGINFO, SIGLOST): Likewise.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2015-10-29 23:39:38 +01:00
David Michael
ead362f8d1 Add new Linux errno constants.
* libguile/cpp-E.syms (EHWPOISON, ERFKILL): New definitions.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2015-10-29 23:39:18 +01:00
David Michael
9a4215b8c2 Fix the rule to check for new signals and errors
Fixes <http://bugs.gnu.org/21114>.

* libguile/Makefile.am (chknew-E chknew-SIG): Remove the line
  continuation after the targets, and include numbers in the
  recipe's signal/error regexp to catch names like E2BIG.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2015-10-29 23:37:39 +01:00
Ludovic Courtès
67a5377fd8 i18n: Add new collation test for posterity.
* test-suite/tests/i18n.test ("text collation (Czech)"): New test
  prefix.
2015-10-29 23:17:51 +01:00
Ludovic Courtès
53b8d5f335 web: Gracefully handle premature EOF when reading chunk header.
* module/web/http.scm (read-chunk-header): Return 0 when 'read-line'
  returns EOF.
2015-09-26 11:07:05 +02:00
Mark H Weaver
4fd7ad6f85 docs: Fix external representation of <toplevel-define> in tree-il.
* doc/ref/compiler.texi (Tree-IL): Provide the correct external
  representation of <toplevel-define>.
2015-09-17 22:32:10 -04:00
Ludovic Courtès
5a10e416e3 web: Fix 'close' method of delimited input ports.
* module/web/response.scm (make-delimited-input-port)[close]: Replace
  erroneous self-recursive call with a call to 'close-port'.
* test-suite/tests/web-response.test ("example-1")["response-body-port +
  close"]: New test.
2015-09-10 22:30:52 +02:00
Ludovic Courtès
d85d6d14a2 Thank Ricardo. 2015-09-04 22:55:52 +02:00
Ludovic Courtès
66305829ce doc: Fix menu order for SXML.
* doc/ref/sxml.texi (SXML): Add missing quotes in example.
  Fix node order in menu.
2015-09-04 22:55:52 +02:00
Ricardo Wurmus
fbe95dc6e6 doc: Add SXPath documentation from sources
Fixes <http://bugs.gnu.org/19478>.

* doc/ref/sxml.texi (SXPath): Add procedure documentation from sources.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2015-09-04 22:55:52 +02:00
Mark H Weaver
3bda6eb9df psyntax: Fix bug in match-each+.
Reported by Panicz Maciej Godek <godek.maciek@gmail.com> in
<http://lists.gnu.org/archive/html/guile-user/2015-09/msg00017.html>.

* module/ice-9/psyntax.scm (match-each+): Fix the case where a non-pair
  syntax object is encountered in a dotted tail.
* module/ice-9/psyntax-pp.scm: Regenerate.
2015-09-03 02:51:00 -04:00
Taylan Ulrich Bayırlı/Kammer
5d66fd3fcf Clarify datum->syntax documentation.
* doc/ref/api-macros.texi (Syntax Case): Make it clear that the first
  argument to datum->syntax must be an identifier.
2015-09-02 14:08:46 -04:00
Mark H Weaver
4c5788d1ab Fix uses of 'scm_gc_protect', which does not exist, in the manual.
* doc/ref/api-memory.texi (Garbage Collection Functions),
  doc/ref/libguile-concepts.texi (Garbage Collection): Change
  'scm_gc_protect' --> 'scm_gc_protect_object'.
2015-09-02 13:55:16 -04:00
Andreas Rottmann
27df2f3439 Heed the reader settings implied by #!r6rs
When encountering the #!r6rs directive, apply the appropriate reader
settings to the port.

* libguile/read.scm (read-string-as-list): New helper procedure.
  (scm_read_shebang): Set reader options implied by the R6RS syntax
  upon encountering the #!r6rs directive.
* test-suite/tests/reader.test (per-port-read-options): Add tests for
  the #!r6rs directive.
2015-07-28 23:06:36 +02:00
Mark H Weaver
e3c59bfb8d Fix atan procedure when applied to complex numbers.
Fixes a regression introduced in commit
ad79736c68.

* libguile/numbers.c (scm_atan): Fix the complex case.
* test-suite/tests/numbers.test ("atan"): Add test.
2015-07-22 21:03:05 -04:00
Ken Raeburn
67d8ccc0e4 FFI: sizeof: Account for trailing padding of structs.
* libguile/foreign.c (scm_sizeof): Make sure the overall size is a
  multiple of the alignment of the structure.
* test-suite/tests/foreign.test: Test size of { double, int8 }.
2015-06-25 14:45:55 +02:00
Mathieu Lirzin
0854b87493 doc: Fix parameter of 'set-record-type-printer!'.
* doc/ref/api-compound.texi (SRFI-9 Records)[set-record-type-printer!]:
  Fix parameter name.
2015-06-19 16:11:13 -04:00
Natanael Copa
ed0c14769a i18n: Check for non-POSIX strtol_l.
* configure.ac: Check for strtol_l.
* libguile/i18n.c: Check HAVE_STRTOL_L before using strtol_l.
2015-06-19 16:04:37 -04:00
Alex Kost
4c7f9b7644 Fix typo in the man page.
* doc/guile.1: "--no-autocompile" -> "--no-auto-compile".
2015-06-19 15:44:24 -04:00
Alex Kost
f285b2115f Fix typo in manual.
* doc/ref/api-modules.texi (Using Guile Modules): Remove extra "yet".
2015-06-19 15:43:58 -04:00
Ludovic Courtès
6bfd298c56 gdb: Support builds with SCM_DEBUG_TYPING_STRICTNESS=2.
* libguile/libguile-2.0-gdb.scm (scm-value->integer): New procedure.
  (%scm-pretty-printer): Use it instead of 'value->integer'.
2015-06-02 21:09:31 +02:00
Ludovic Courtès
2a4d21b5fa gdb: Remove unused procedure.
* libguile/libguile-2.0-gdb.scm (scm-value->string): Remove.
2015-06-02 21:09:28 +02:00
Ludovic Courtès
d680713327 doc: Update libgc URL.
* doc/ref/data-rep.texi (Conservative GC): Update libgc URL.
2015-04-03 16:35:54 +02:00
Ludovic Courtès
6001fa35c6 Fix test in 'fport_write'.
Reported by Doug Evans <xdje42@gmail.com>
at <http://lists.gnu.org/archive/html/guile-devel/2015-03/msg00023.html>.

* libguile/fports.c (fport_write): Change SIZE to REMAINING in
  condition.  This doesn't have any observable effect.
2015-03-31 21:26:29 +02:00
Mark H Weaver
d574d96f87 Fix bytevector and custom binary ports to actually use ISO-8859-1 encoding.
Fixes <http://bugs.gnu.org/20200>, introduced in
  commit 337edc591f.
Reported by David Kastrup <dak@gnu.org>.

* libguile/r6rs-ports.c (make_bip, make_cbip, make_bop, make_cbop):
  After setting port encoding = NULL, update 'encoding_mode'
  accordingly.
* libguile/ports.c (scm_i_set_port_encoding_x): Add warning comment.
* test-suite/tests/r6rs-ports.test: Add tests.
2015-03-28 16:01:23 -04:00
Mark H Weaver
2c032c2215 Handle zero-length bytevectors correctly in (system base types).
* module/system/base/types.scm (cell->object): Use 'get-bytevector-n'
  instead of 'get-bytevector-all', so that the zero-length case does not
  return EOF.
2015-03-26 23:18:39 -04:00
Mark H Weaver
4ab9f0f8b9 Work around requirement that size be non-zero in GDB 'open-memory'.
* module/system/base/types.scm (memory-port): Handle zero size case
  specially.
2015-03-26 23:18:39 -04:00
Ludovic Courtès
61e1c2130c web: Export 'server-impl' procedures and the 'http' server implementation.
* module/web/server.scm: Export the 'server-impl' procedures.
* module/web/server/http.scm: Export 'http'.
2015-03-10 09:01:54 +01:00
Mark H Weaver
c74f776bbb build: Use pipe symbol instead of comma for substitutions.
* meta/Makefile.am (substitute): Use pipe symbol instead of comma for
  substitutions.
2015-03-06 23:59:18 -05:00
Taylan Ulrich Bayırlı/Kammer
bfdea17192 Correct docstring of 'symlink'.
* libguile/filesys.c (symlink): Correct the docstring, which had
  'oldpath' and 'newpath' confused.
2015-03-05 22:45:29 +01:00
Ludovic Courtès
3b50be4546 tests: Gracefully handle ENOSYS return for 'setaffinity'.
Fixes <http://bugs.gnu.org/19646>.
Reported by John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>.

* test-suite/tests/posix.test ("affinity")["setaffinity"]: Wrap in
  'catch' and throw 'unresolved upon ENOSYS.
2015-03-04 09:50:06 +01:00
Ludovic Courtès
9b8dbee047 tests: Make 'test-guild-compile' more reliable.
Before that it would occasionally fail because the "$target" (not the
intermediate temporary file) would be produced.

* test-suite/standalone/test-guild-compile: Call 'pause' before 'sleep'
  in test program.
2015-03-04 09:50:06 +01:00
Ludovic Courtès
b4f7e24c84 Use 'scm_is_eq' to compare 'SCM' objects.
* libguile/goops.c (scm_compute_applicable_methods): Use 'scm_is_eq'
  rather than direct comparison (regression introduced in 649ec8d8.)
2015-03-04 09:50:06 +01:00
Mark H Weaver
15673f1fd2 Don't return expressions from void functions in numbers.c
Although popular compilers allow it as long as the expression is of type
void, it violates C99 and some compilers choke on it.

* libguile/numbers.c (scm_euclidean_divide, scm_floor_divide)
  (scm_ceiling_divide, scm_truncate_divide, scm_centered_divide)
  (scm_round_divide): Don't use the return statement with an expression
  from functions with return type void.
2015-03-01 22:04:07 -05:00
Mark H Weaver
372d46c887 Web: http: Location header accepts URI-reference, not just absoluteURIs.
The now obsolete RFC2616 section 14.30 required that the Location
header be an absoluteURI, but RFC7231 section 7.1.2 allows it to
contain any URI-reference.

* module/web/http.scm: Use 'declare-relative-uri-header!' to declare
  the "Location" header.
2015-03-01 22:04:07 -05:00
Mark H Weaver
9f0ec10fc9 Implement 'string-utf8-length' and 'scm_c_string_utf8_length'.
* libguile/strings.c (utf8_length, scm_c_string_utf8_length)
  (scm_string_utf8_length): New functions.
* libguile/strings.h (scm_c_string_utf8_length, scm_string_utf8_length):
  New prototypes.
* doc/ref/api-data.texi (Bytevectors as Strings): Add docs.
* doc/ref/guile.texi: Update manual copyright date to 2015.
* test-suite/tests/strings.test (string-utf8-length): Add tests.
2015-03-01 22:04:07 -05:00
Ludovic Courtès
00d3ecf274 http: Do not buffer HTTP chunks.
Fixes <http://bugs.gnu.org/19939>.

* module/web/http.scm (read-chunk, read-chunk-body): Remove.
  (make-chunked-input-port)[next-chunk, buffer-, buffer-size,
  buffer-pointer]: Remove.
  [chunk-size, remaining]: New variables.
  [read!]: Rewrite to write directly to BV.
* test-suite/tests/web-http.test ("chunked encoding")["reads chunks
  without buffering", "reads across chunk boundaries"]: New tests.
2015-03-01 23:41:01 +01:00
Ludovic Courtès
d0d64e6bbf tests: Use 'pass-if-equal' in web-http chunked encoding tests.
* test-suite/tests/web-http.test ("chunked encoding"): Use
  'pass-if-equal' where appropriate.
2015-03-01 22:47:01 +01:00
Andy Wingo
79072a210a Struct and array GDB pretty printers hint as arrays
* libguile/libguile-2.0-gdb.scm (make-scm-pretty-printer-worker):
  (%scm-pretty-printer): Refactor to avoid printing all struct / array
  fields by hinting these as arrays.  The resulting print is not as
  faithful to the original data, but that's probably OK.
2015-02-25 21:55:22 +01:00
Andy Wingo
6cd1c6c79c (system base types) knows about variables
* module/system/base/types.scm (%tc7-variable): New tc7.
  (cell->object): Handle tc7-variable.

* test-suite/tests/types.test ("opaque objects"): Add a test.
2015-02-25 21:41:23 +01:00