Ludovic Courtès
756b1dfa6e
Keep a 2.0.0-compatible `define-inlinable' macro in (srfi srfi-9).
...
Partially reverts 165b10ddfa
and
531c9f1dc5
.
* module/srfi/srfi-9.scm (define-inlinable): New macro.
2011-04-27 22:26:05 +02:00
Ludovic Courtès
de424d9594
Document `(ice-9 binary-ports)'.
...
* doc/ref/api-io.texi (R6RS I/O Ports): Mention `(ice-9 binary-ports)'.
* NEWS: Update.
2011-04-27 22:14:31 +02:00
Ludovic Courtès
4cadf64f9a
Add tests for UTF-8 ill-formed sequence handling.
...
* test-suite/tests/ports.test ("string ports"): Add for
`test-decoding-error' tests for ill-formed UTF-8 sequences. Thanks
to Mark H Weaver <mhw@netris.org> for pointing this out.
2011-04-27 21:55:42 +02:00
Ludovic Courtès
a42d79711b
Gracefully handle unterminated UTF-8 sequences instead of hitting an `assert'.
...
* libguile/ports.c (get_codepoint): Return EILSEQ when OUTPUT_SIZE == 0.
* test-suite/tests/ports.test ("string ports"): Add 2 tests for
unterminated sequences.
2011-04-27 20:34:08 +02:00
Ludovic Courtès
d84783a80c
Add a couple more Unicode I/O tests.
...
* test-suite/tests/ports.test ("string ports")["%default-port-encoding
is honored"]: Make sure `(port-encoding p)' is as expected.
["peek-char [utf-16]"]: New test.
2011-04-27 16:28:32 +02:00
Ludovic Courtès
9a201881e6
Rewrite port decoding error tests using a mini DSL.
...
* test-suite/tests/ports.test ("string ports")[test-decoding-error]: New
macro.
["read-char, wrong encoding, error", "read-char, wrong encoding,
escape", "read-char, wrong encoding, substitute", "peek-char, wrong
encoding, error"]: Rewrite using `test-decoding-error'.
2011-04-27 16:28:29 +02:00
Ludovic Courtès
94b55d3fa0
Gracefully handle `setlocale' errors at the REPL.
...
* module/ice-9/top-repl.scm (top-repl): Catch exceptions from
`setlocale'. Reported by CRLF0710 <crlf0710@gmail.com>.
2011-04-27 00:57:53 +02:00
Ludovic Courtès
fb9cfa83a7
Remove the `sizeof (mpz_t)' check.
...
* libguile/numbers.c: Remove `sizeof (mpz_t)' check, which wasn't need
anymore since `make_bignum' doesn't make any such assumption.
2011-04-26 00:03:44 +02:00
Ludovic Courtès
7c86abd9ce
Use scm_with_guile' in
test-pthread-create'.
...
* test-suite/standalone/test-pthread-create.c (inner_main): New
function.
(main): Call it within `scm_with_guile', instead of using
`scm_init_guile'. This improves portability--e.g.,
`GC_get_stack_base', used by `scm_init_guile', failed on Darwin
up to BDW-GC 7.1alpha4 included (thanks, Mark, for the hint.)
2011-04-25 23:59:42 +02:00
Ludovic Courtès
dd7d0148f2
Update Gnulib to v0.0-5158-g7d06b32; remove strcase' and
version-etc-fsf'.
...
* m4/gnulib-cache.m4: Remove `strcase' and `version-etc-fsf'.
* configure.ac (POTENTIAL_GCC_CFLAGS): Remove `-Wundef'.
* libguile/script.c: Don't include <version-etc.h>.
2011-04-25 23:59:37 +02:00
Ludovic Courtès
eb0ffdd819
Fix `#ifdef HAVE_CONFIG_H' stanza in some stand-alone tests.
...
* test-suite/standalone/test-asmobs-lib.c,
test-suite/standalone/test-extensions-lib.c,
test-suite/standalone/test-ffi-lib.c,
test-suite/standalone/test-list.c,
test-suite/standalone/test-num2integral.c,
test-suite/standalone/test-with-guile-module.c: Change `#ifndef
HAVE_CONFIG_H' to `#ifdef HAVE_CONFIG_H' (!).
2011-04-25 23:59:35 +02:00
Ludovic Courtès
d0476fa2b0
Compile more file system related procedures when `--disable-posix'.
...
* libguile/filesys.c (scm_tc16_dir, scm_directory_stream_p, scm_opendir,
scm_readdir, scm_rewinddir, scm_closedir, scm_dir_print,
scm_dir_free, scm_lstat): Compile unconditionally.
2011-04-25 22:52:00 +02:00
Ludovic Courtès
d20912e67d
Move {total,current}-processor-count' outside of
posix.c'.
...
* libguile/posix.c (scm_total_processor_count,
scm_current_processor_count): Move to...
* libguile/threads.c: ... here.
* libguile/posix.h (scm_total_processor_count,
scm_current_processor_count): Move declarations to...
* libguile/threads.h: ... here.
* test-suite/tests/posix.test ("nproc"): Move tests to...
* test-suite/tests/threads.test: ... here.
2011-04-25 22:41:58 +02:00
Ludovic Courtès
bbec460245
Make the `sizeof (mpz_t)' check at compile-time.
...
* libguile/init.c (scm_i_init_guile): Remove the `sizeof (mpz_t)'
run-time check.
* libguile/numbers.c: Add a compile-time check for `sizeof (mpz_t)'.
2011-04-25 22:36:30 +02:00
Ludovic Courtès
4a23562339
Add pthread-related tests.
...
* test-suite/standalone/Makefile.am (test_scm_spawn_thread_CFLAGS,
test_scm_spawn_thread_LDADD, test_pthread_create_CFLAGS,
test_pthread_create_LDADD, test_pthread_create_secondary_CFLAGS,
test_pthread_create_secondary_LDADD): New variables.
(check_PROGRAMS)[BUILD_PTHREAD_SUPPORT]: Add `test-scm-spawn-thread',
`test-pthread_create', `test-pthread_create-secondary'.
(TESTS)[BUILD_PTHREAD_SUPPORT]: Likewise.
* test-suite/standalone/test-scm-spawn-thread.c,
test-suite/standalone/test-pthread-create.c,
test-suite/standalone/test-pthread-create-secondary.c: New files.
2011-04-25 16:45:24 +02:00
Ludovic Courtès
912308835d
Make `scm_i_ensure_signal_delivery_thread' call in Guile mode.
...
* libguile/threads.c (on_thread_exit): Move
`scm_i_ensure_signal_delivery_thread' call...
(do_thread_exit): ... here.
2011-04-25 16:45:22 +02:00
Ludovic Courtès
96128014bf
Make sure binary ports pass `binary-port?' regardless of the locale.
...
* libguile/r6rs-ports.c (make_bip, make_cbip, make_bop, make_cbop):
Set `c_port->encoding' to NULL.
* test-suite/tests/r6rs-ports.test ("7.2.7 Input
Ports")["bytevector-input-port is binary"]: New test.
("7.2.7 Input Ports")["make-custom-binary-input-port"]: Make sure PORT
passes `binary-port?' and `input-port?'.
("8.2.10 Output ports")["bytevector-output-port is binary"]: New test.
["make-custom-binary-output"]: Rename to...
["make-custom-binary-output-port"]: ... this.
* test-suite/tests/ports.test ("string ports")["read-char, wrong
encoding, error", "read-char, wrong encoding, escape", "read-char,
wrong encoding, substitute", "peek-char, wrong encoding, error"]: Use
`set-port-encoding!' instead of `%default-port-encoding' to set the
encoding of bytevector input ports.
* test-suite/tests/rdelim.test ("read-line")["decoding error", "decoding
error, substitute"]: Likewise.
* doc/ref/api-io.texi (R6RS Port Manipulation): Document `binary-port?'
and `textual-port?'.
* doc/ref/r6rs.texi (R6RS Incompatibilities): Mention the soft
distinction between textual and binary ports.
2011-04-22 23:58:00 +02:00
Ludovic Courtès
969bb92e9b
Turn the libunistring/iconv configure check into a macro.
...
* acinclude.m4 (GUILE_LIBUNISTRING_WITH_ICONV_SUPPORT): New macro.
* configure.ac: Use it.
2011-04-22 16:59:08 +02:00
Ludovic Courtès
a508fbdb01
Fix typo in `configure.ac'.
...
* configure.ac: Add missing comma in `AC_RUN_IFELSE' invocation.
2011-04-22 16:59:07 +02:00
Ludovic Courtès
ed756f7817
Increase the timeout of timing-sensitive thread tests.
...
* test-suite/tests/threads.test ("timed locking succeeds if mutex
unlocked within timeout", "timed unlocking returns #t if condition
signaled", "timed joining succeeds if thread exits within timeout"):
Increase the timeout. Reported by Dale P. Smith <dsmich@roadrunner.com>.
2011-04-22 16:59:05 +02:00
Andy Wingo
514ff6ea07
add test that libunistring was built with iconv support
...
* configure.ac: Add check that libunistring was built with iconv
support. Thanks to Mark Weaver for the debugging and test program.
2011-04-21 16:02:09 +02:00
Mark H Weaver
c3d8450c75
Clarify units of string length in decription of scm_from_stringn
...
* doc/ref/api-data.texi (Conversion to/from C): In description of
scm_from_stringn, clarify that the length is specified in bytes.
2011-04-21 09:56:11 -04:00
Mark H Weaver
68a78738a4
Clarify the units of returned lengths in string conversion functions
...
* doc/ref/api-data.texi (Conversion to/from C): In descriptions of
scm_to_stringn and scm_to_{latin1,utf8,utf32}, clarify that the
returned length is in units of bytes or code points, not characters.
Also change NULL to @code{NULL} in a few places.
2011-04-19 23:59:17 -04:00
Andy Wingo
0fbdbe6c84
fix pre-GC_set_start_callback compilation
...
* libguile/gc.c: Move declaration of run_before_gc_hook up.
2011-04-15 16:41:34 +00:00
Andy Wingo
66b229d56e
pre-GC_set_start_callback compatibility
...
* configure.ac: Add a check for GC_set_start_callback.
* libguile/gc.c (scm_i_gc): If we don't have GC_set_start_callback, run
the before-gc hook manually here.
(scm_init_gc): Otherwise set it as a start callback.
* libguile/hashtab.c (weak_gc_callback, weak_gc_hook)
(weak_gc_finalizer, scm_c_register_weak_gc_callback): Fix to work
either way, with or without GC_set_start_callback.
2011-04-15 18:31:06 +02:00
Andy Wingo
631e49ed76
weak hash table vacuum on before-gc C hook
...
* libguile/hashtab.c (weak_gc_callback)
(scm_c_register_weak_gc_callback): Change implementation to use the
before-gc C hook instead of the after-gc finalizers.
2011-04-15 18:05:23 +02:00
Andy Wingo
cc3546b027
use gc_start_callback + asyncs for after-gc-hook, instead of finalizers
...
* libguile/gc.c (run_before_gc_c_hook, scm_storage_prehistory)
(after_gc_async_thunk, queue_after_gc_hook, scm_init_gc): Instead of
playing our finalizer trick, connect to the GC start callback, and use
it to queue an async after-gc-hook. Seems to fix the after-gc-hook on
non-threaded builds. Though this does re-enable the before-gc C hook,
we don't wire up the Scheme hook because we're in the alloc lock; and
indeed, a before-GC scheme hook isn't a great idea...
2011-04-15 17:45:52 +02:00
Andy Wingo
1e56cff233
add --fresh-auto-compile
...
* doc/ref/api-evaluation.texi (Compilation): Add discussion of
--fresh-auto-compile.
* doc/ref/scheme-scripts.texi (Invoking Guile): Add --fresh-auto-compile
option.
* NEWS: Add entry.
* libguile/load.c: Define %fresh-auto-compile.
(scm_primitive_load_path): Use it here.
(scm_init_load_should_auto_compile): Init from GUILE_AUTO_COMPILE env
var, with a value of "fresh".
* module/ice-9/boot-9.scm (load-in-vicinity): Auto-compilation cache is
stale if %fresh-auto-compile is true.
* module/ice-9/command-line.scm (compile-shell-switches): Parse out
--fresh-auto-compile.
2011-04-15 11:27:27 +02:00
Ludovic Courtès
ee037cee3e
Build `filesys.x'.
...
* libguile/Makefile.am (DOT_X_FILES): Add `filesys.x'.
2011-04-15 09:09:30 +02:00
Ludovic Courtès
073167ef7b
Allow compilation with `--disable-posix'.
...
Reported by Dmitry Dzhus <dima@dzhus.org>.
* configure.ac: Remove `AC_LIBOBJ([filesys])'. Document
`--disable-posix' as omitting non-essential POSIX interfaces.
* libguile/Makefile.am (libguile_@GUILE_EFFECTIVE_VERSION@_la_SOURCES):
Add `filesys.c'.
(DOT_DOC_FILES): Add `filesys.doc'.
(EXTRA_libguile_@GUILE_EFFECTIVE_VERSION@_la_SOURCES): Remove
`filesys.c'.
* libguile/posix.c (scm_mkstemp, scm_access): Move to `filesys.c'.
(scm_init_posix): Move `R_OK' etc. to `filesys.c'.
* libguile/filesys.c (scm_chown, scm_chmod, scm_umask, scm_open_fdes,
scm_open, scm_close, scm_close_fdes, scm_link, scm_tc16_dir,
scm_directory_stream_p, scm_opendir, scm_readdir, scm_rewinddir,
scm_closedir, scm_dir_print, scm_dir_free, scm_chdir, scm_getcwd,
set_element, fill_select_type, get_element, retrieve_select_type,
scm_select, scm_fcntl, scm_fsync, scm_symlink, scm_readlink,
scm_lstat, scm_copy_file): Conditionalize on HAVE_POSIX.
(scm_mkstemp, scm_access): New functions.
(scm_init_filesys): Conditionalize `scm_tc16_dir', `O_RDONLY', etc. on
HAVE_POSIX. Define `R_OK', `W_OK', etc.
* libguile/fports.c (fport_print): Use `scm_ttyname' only when
HAVE_POSIX.
* libguile/i18n.c (lock_locale_mutex, unlock_locale_mutex): New
functions. Update users of `scm_i_locale_mutex' to use them.
* libguile/init.c (scm_i_init_guile): Always call `scm_init_filesys'.
* meta/guile-tools.in (main): Use `setlocale' only when it is defined.
* module/ice-9/boot-9.scm: Always load `ice-9/posix'.
2011-04-15 00:09:16 +02:00
Ludovic Courtès
22072f2155
Include <sched.h> in `posix.c'.
...
* configure.ac: Check for <sched.h>.
* libguile/posix.c [HAVE_SCHED_H]: Include <sched.h>, for
`sched_setaffinity' & co.
Reported by Marco Maggi <marco.maggi-ipsu@poste.it>.
2011-04-14 23:16:21 +02:00
Ludovic Courtès
022ae742d1
Add tests for `-Wformat' and gettext.
...
* test-suite/tests/tree-il.test ("warnings")["non-literal format string
using gettext", "one missing argument, gettext"]: New tests.
2011-04-14 23:14:14 +02:00
Andy Wingo
3936cebc77
fix analyze.scm literal string warnings
...
* module/language/tree-il/analyze.scm (const-fmt): Return any literal
value, not just strings. The string case is checked later.
2011-04-14 16:53:18 +02:00
Andy Wingo
90779ad9a1
fix embarrassing bugs in (ice-9 command-line)
...
* module/ice-9/command-line.scm (compile-shell-switches): Whoops, fix a
few cases that forgot to loop back to the beginning.
2011-04-14 16:46:49 +02:00
Andy Wingo
e07f0a5566
guile -v prints LGPLv3+.
...
* module/ice-9/command-line.scm (compile-shell-switches): Though Guile
may be distributed under the GPLv3, Guile is actually LGPLv3+.
2011-04-14 16:18:56 +02:00
Andy Wingo
1693983a61
script.c calls out to (ice-9 command-line)
...
* libguile/script.c (scm_shell_usage): Call (ice-9 command-line)'s
shell-usage.
(scm_compile_shell_switches): Likewise, call (ice-9 command-line)'s
compile-shell-switches.
2011-04-14 16:15:47 +02:00
Andy Wingo
26ac1e3f42
add packager info to %build-info
...
* libguile/load.c (init_build_info): Add packager, packager-version, and
packager-bug-reports to %build-info, if they are available.
2011-04-14 16:06:40 +02:00
Andy Wingo
da5d81a1f7
add (ice-9 command-line)
...
* module/ice-9/command-line.scm: New module for parsing Guile's command
line, ported from script.c. Includes local eval-string implementation
to make `guile -c 1' faster, by not having to load the compiler.
* module/Makefile.am: Add to build.
2011-04-14 16:06:07 +02:00
Andy Wingo
56e313894b
don't warn about non-literal fmt strings for e.g. (_ "foo")
...
* module/language/tree-il/analyze.scm (const-fmt, format-analysis):
Allow format strings to be gettexted, using the conventional _ name.
2011-04-14 16:04:18 +02:00
Andy Wingo
7c81eba25b
update NEWS
...
* NEWS: Update for 2.0.1.
2011-04-13 14:07:22 +02:00
Andy Wingo
9d6a151fbd
(rnrs arithmetic fixnums) fixnum? export a procedure again
...
* module/rnrs/arithmetic/fixnums.scm (fixnum?): Restore this export to
be a procedure, not syntax.
(inline-fixnum?): This is what fixnum? was. Use it internally.
2011-04-13 12:50:41 +02:00
Andy Wingo
37325c9bd2
revert 4a2ac0623c
...
* module/ice-9/popen.scm (open-pipe*): No need to pump the pipes
guardian here, now that hooks are working again.
2011-04-13 12:50:41 +02:00
Andy Wingo
8e76ce94a2
--disable-threads fix
...
* libguile/threads.c (do_thread_exit_trampoline, on_thread_exit):
(scm_i_init_thread_for_guile): Only register and unregister threads
with bdw-gc when we are building with threads support. Thanks to
Marijn for the report.
2011-04-13 12:50:36 +02:00
Andy Wingo
0c81a0c13a
bump effective version to 2.2
...
* .gitignore:
* GUILE-VERSION (GUILE_EFFECTIVE_VERSION):
* configure.ac:
* doc/example-smob/Makefile (CFLAGS, LIBS):
* doc/guile.1:
* doc/ref/libguile-concepts.texi:
* doc/ref/srfi-modules.texi:
* doc/ref/vm.texi:
* meta/Makefile.am (EXTRA_DIST, pkgconfig_DATA):
* meta/guile-config.in (guile-module):
* meta/guile-2.2-uninstalled.pc.in:
* meta/guile-2.2.pc.in: Bump effective version to 2.2.
2011-04-11 23:45:04 +02:00
Andy Wingo
21c05db45b
Merge remote branch 'origin/stable-2.0'
...
Conflicts:
GUILE-VERSION
test-suite/tests/srfi-4.test
2011-04-11 23:30:52 +02:00
Ian Price
c89b452993
Fix fencepost error in bip_seek
...
* libguile/r6rs-ports.c (bip_seek): Fix to allow seeking to end of port.
* test-suite/tests/r6rs-ports.test ("bytevector input port can seek to
very end"): Add tests.
2011-04-11 18:14:18 +02:00
Ian Price
15993bce1c
fix assert to return true value.
...
* module/rnrs/base.scm (assert): returns value instead of void.
* test-suite/tests/r6rs-base.test ("assert"): add test cases.
2011-04-11 18:00:36 +02:00
Ian Price
cf9d4a8214
Added optional second arg to R6RS log function
...
* module/rnrs/base.scm (log): now takes a base argument, using the
change of base formula for logs.
* test-suite/tests/r6rs-base.test ("log (2nd arg)"): Add test cases.
2011-04-11 17:58:12 +02:00
Andy Wingo
62ef23cbb8
fix reader.test for --disable-deprecated
...
* test-suite/tests/reader.test: Fix deprecated tests; begin-deprecated
was splicing in expression context before, which is a no-no.
2011-04-11 17:21:20 +02:00
Andy Wingo
b9e22602bb
regen psyntax-pp.scm
...
* module/ice-9/psyntax-pp.scm: Regenerate, to take advantage of better
#{}# serialization.
2011-04-11 13:49:29 +02:00