Andy Wingo
eeeee3297b
Remove thread cleanup facility
...
* NEWS: Add entry.
* doc/ref/api-scheduling.texi (Threads): Remove thread-cleanup docs.
* libguile/threads.c (guilify_self_1, do_thread_exit):
(scm_set_thread_cleanup_x, scm_thread_cleanup): Remove these.
* libguile/threads.h (scm_i_thread): Remove cleanup_handler.
* module/ice-9/threads.scm:
* module/ice-9/deprecated.scm (thread-cleanup, set-thread-cleanup!):
Remove.
* test-suite/tests/threads.test: Adapt to test cancel-thread return
values and not test thread-cleanup procs.
2016-10-31 22:37:46 +01:00
Andy Wingo
a04739b31a
cancel-thread via asyncs, not pthread_cancel
...
* module/ice-9/threads.scm (cancel-tag): New variable.
(cancel-thread): New Scheme function.
(call-with-new-thread): Install a prompt around the thread.
* libguile/threads.h (scm_i_thread): Remove cancelled member.
* libguile/threads.c (scm_cancel_thread): Call out to Scheme. Always
available, and works on the current thread too.
(scm_set_thread_cleanup_x, scm_thread_cleanup): Adapt.
(scm_init_ice_9_threads): Capture cancel-thread var.
* doc/ref/api-scheduling.texi (Threads): Update.
* NEWS: Update.
2016-10-27 21:22:28 +02:00
Andy Wingo
d74e0fed0d
Move thread bindings to (ice-9 threads)
...
* libguile/init.c (scm_i_init_guile): Don't call scm_init_thread_procs.
* libguile/threads.c (scm_init_ice_9_threads): Rename from
scm_init_thread_procs, make static.
(scm_init_threads): Register scm_init_thread_procs extension.
* libguile/threads.h (scm_init_thread_procs): Remove decl.
* module/ice-9/boot-9.scm: Load (ice-9 threads), so that related side
effects occur early.
* module/ice-9/deprecated.scm (define-deprecated): Fix to allow
deprecated bindings to appear in operator position. Export deprecated
bindings.
(define-deprecated/threads, define-deprecated/threads*): Trampoline
thread bindings to (ice-9 threads).
* module/ice-9/futures.scm: Use ice-9 threads.
* module/ice-9/threads.scm: Load scm_init_ice_9_threads extension.
Reorder definitions and imports so that the module circularity
with (ice-9 futures) continues to work.
* module/language/cps/intmap.scm:
* module/language/cps/intset.scm:
* module/language/tree-il/primitives.scm: Use (ice-9 threads).
* module/language/cps/reify-primitives.scm: Reify current-thread
in (ice-9 threads) module.
* module/srfi/srfi-18.scm: Use ice-9 threads with a module prefix, and
adapt all users. Use proper keywords in module definition form.
* test-suite/tests/filesys.test (test-suite):
* test-suite/tests/fluids.test (test-suite):
* test-suite/tests/srfi-18.test: Use ice-9 threads.
* NEWS: Add entry.
* doc/ref/api-scheduling.texi (Threads): Update.
* doc/ref/posix.texi (Processes): Move current-processor-count and
total-processor-count docs to Threads.
2016-10-23 22:29:44 +02:00
Andy Wingo
728068113d
NEWS item for deprecated user asyncs
...
* NEWS: Add news.
2016-10-17 22:03:30 +02:00
Andy Wingo
56d8d9a257
Deprecate arbiters
...
* libguile/arbiters.c:
* libguile/arbiters.h:
* test-suite/tests/arbiters.test: Delete files.
* libguile/deprecated.c:
* libguile/deprecated.h: Move arbiters code here.
* doc/ref/api-scheduling.texi: Remove section on arbiters.
* libguile.h:
* libguile/Makefile.am:
* libguile/init.c:
* module/oop/goops.scm:
* test-suite/Makefile.am: Remove mention of arbiters.
* NEWS: Update.
2016-10-17 21:29:05 +02:00
Andy Wingo
e61017afa8
Fold 2.1.4 news into 2.2 news
...
* NEWS: Fold 2.1.4 news into main 2.2 news.
2016-10-17 21:29:04 +02:00
Andy Wingo
6745b9b2bd
Update NEWS.
...
* NEWS: Update.
2016-09-14 11:27:52 +02:00
Andy Wingo
1a1c3bbe59
Implement R6RS custom binary input/output ports
...
* NEWS: Add new feature.
* doc/ref/r6rs.texi (rnrs io ports):
* doc/ref/api-io.texi (Custom Ports): Document new procedure.
* libguile/r6rs-ports.h:
* libguile/r6rs-ports.c (make_custom_binary_input_output_port)
(scm_make_custom_binary_input_output_port)
(custom_binary_input_output_port_random_access_p)
(initialize_custom_binary_input_output_ports)
(scm_init_r6rs_ports): Implement custom binary input/output ports.
* module/rnrs/io/ports.scm (rnrs):
* module/ice-9/binary-ports.scm (ice-9): Export
make-custom-binary-input/output-port.
2016-08-04 22:29:51 +02:00
Andy Wingo
aae3561584
Allow mkstemp! to have optional "mode" argument
...
* m4/mkstemp.m4: Remove.
* lib/mkstemp.c: Remove.
* lib/mkostemp.c: New file.
* m4/mkostemp.m4: New file.
* lib/Makefile.am:
* m4/gnulib-cache.m4:
* m4/gnulib-comp.m4: Remove mkstemp module, replace with mkostemp.
* libguile/fports.h:
* libguile/fports.c (scm_i_mode_to_open_flags): Factor out helper to
parse mode string to open flags.
(scm_open_file_with_encoding): Use the new helper.
* libguile/filesys.c:
(scm_i_mkstemp): Adapt to take optional second argument, being a mode
string. Use mkostemp.
(scm_mkstemp): Backwards compatible shim that calls scm_i_mkstemp.
* doc/ref/posix.texi:
* NEWS: Update.
* module/system/base/compile.scm (call-with-output-file/atomic): Pass
"wb" as mode, to cause O_BINARY to be added on MinGW.
2016-07-25 11:46:18 +02:00
Andy Wingo
ea223b07c2
Update NEWS
...
* NEWS: Update.
2016-07-25 11:44:14 +02:00
Andy Wingo
85faf8eccb
Update NEWS
...
* NEWS: Add 2.0.12 NEWS. Fold 2.1.3 NEWS into main 2.2.0 NEWS.
2016-06-29 22:25:56 +02:00
Andy Wingo
d0d14f410d
Importing modules with #:select no longer grovels private bindings
...
* module/ice-9/boot-9.scm (resolve-interface): Don't look in private
interface for #:select bindings. Fixes #17418 .
* module/system/repl/coop-server.scm: Don't rely on bad #:select
behavior.
* NEWS: Add entry.
2016-06-21 16:01:50 +02:00
Andy Wingo
687d393e2c
Fix uri-decode behavior for "+"
...
* module/web/uri.scm (uri-decode): Add #:decode-plus-to-space? keyword
argument.
(split-and-decode-uri-path): Don't decode plus to space.
* doc/ref/web.texi (URIs): Update documentation.
* test-suite/tests/web-uri.test ("decode"): Add tests.
* NEWS: Add entry.
Based on a patch by Brent <brent@tomski.co.za>.
2016-06-20 14:48:15 +02:00
Andy Wingo
d88869539d
Minor NEWS updates
...
* NEWS: Minor updates.
2016-06-18 13:16:04 +02:00
Andy Wingo
d7f39a36b1
socket: TCP_CORK, TCP_NODELAY
...
* libguile/socket.c (scm_init_socket): Define TCP_NODELAY and TCP_CORK
if they are available.
* doc/ref/posix.texi (Network Sockets and Communication): Add
documentation.
* NEWS: Add entry.
2016-06-04 12:49:47 +02:00
Andreas Rottmann
d77247b90b
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.
2016-05-22 19:40:37 +02:00
Andy Wingo
534139e458
Support for non-blocking I/O
...
* doc/ref/api-io.texi (I/O Extensions): Document read_wait_fd /
write_wait_fd members.
(Non-Blocking I/O): New section.
* libguile/fports.c (fport_read, fport_write): Return -1 if the
operation would block.
(fport_wait_fd, scm_make_fptob): Add read/write wait-fd
implementation.
* libguile/ports-internal.h (scm_t_port_type): Add read_wait_fd /
write_wait_fd.
* libguile/ports.c (default_read_wait_fd, default_write_wait_fd): New
functions.
(scm_make_port_type): Initialize default read/write wait fd impls.
(trampoline_to_c_read, trampoline_to_scm_read)
(trampoline_to_c_write, trampoline_to_scm_write): To Scheme, a return
of #f indicates EWOULDBLOCk.
(scm_set_port_read_wait_fd, scm_set_port_write_wait_fd): New
functions.
(port_read_wait_fd, port_write_wait_fd, scm_port_read_wait_fd)
(scm_port_write_wait_fd, port_poll, scm_port_poll): New functions.
(scm_i_read_bytes, scm_i_write_bytes): Poll if the read or write would
block.
* libguile/ports.h (scm_set_port_read_wait_fd)
(scm_set_port_write_wait_fd): Add declarations.
* module/ice-9/ports.scm: Shunt port-poll and port-{read,write}-wait-fd
to the internals module.
* module/ice-9/sports.scm (current-write-waiter):
(current-read-waiter): Implement.
* test-suite/tests/ports.test: Adapt non-blocking test to new behavior.
* NEWS: Add entry.
2016-05-20 14:57:27 +02:00
Andy Wingo
1e058add7b
U+FFFD is the input substitution character
...
* libguile/ports.c (UNICODE_REPLACEMENT_CHARACTER):
* libguile/ports.c (peek_utf8_codepoint)
(scm_port_decode_char, peek_iconv_codepoint):
* module/ice-9/sports.scm (peek-char-and-len/utf8):
(peek-char-and-len/iconv): Return U+FFFD when we get a decoding error
when reading, instead of '?', in accordance with Unicode
recommendations.
* test-suite/tests/iconv.test:
* test-suite/tests/ports.test:
* test-suite/tests/rdelim.test: Update tests.
* NEWS: Update.
2016-05-16 10:48:35 +02:00
Andy Wingo
d6922b4af4
Update NEWS for release
...
* NEWS: Try to tell the port story better.
2016-05-15 22:26:34 +02:00
Andy Wingo
3ce52fa503
Fold 2.1.2 NEWS items into cumulative 2.2 NEWS
...
* NEWS: Update.
2016-04-08 21:03:18 +02:00
Andy Wingo
f5a0c167f6
Update NEWS for changes to port buffering.
...
* NEWS: Update.
2016-04-08 20:56:41 +02:00
Andy Wingo
e98f64009d
Remove port equal functions
...
* doc/ref/api-io.texi (Port Implementation): Remove mention of port
equal functions.
* NEWS: Update.
* libguile/ports.c (scm_set_port_equalp): Remove.
* libguile/ports.h (scm_t_ptob_descriptor): Remove equalp function.
2016-04-04 16:30:56 +02:00
Andy Wingo
67b147fb7a
Remove port free functions; just close instead
...
* libguile/ports.h (scm_t_port_type_flags): Replace
SCM_PORT_TYPE_HAS_FLUSH with SCM_PORT_TYPE_NEEDS_CLOSE_ON_GC.
(scm_t_ptob_descriptor): Remove free function.
* libguile/ports.c (scm_set_port_needs_close_on_gc): New function.
(scm_set_port_flush): Don't set flags.
(scm_c_make_port_with_encoding, scm_close_port): Use the new flag to
determine when to add a finalizer and also when to include the port in
the weak set.
(scm_set_port_free): Remove.
(do_close, finalize_port): Close port instead of calling free
function.
* libguile/r6rs-ports.c (initialize_transcoded_ports):
* libguile/vports.c (scm_make_sfptob):
* libguile/fports.c (scm_make_fptob): Mark these ports as needing close
on GC.
* libguile/fports.c (fport_free): Remove.
* NEWS: Update.
* doc/ref/api-io.texi (Port Implementation): Update.
2016-04-04 16:30:56 +02:00
Andy Wingo
4460f1f152
Remove port mark functions
...
* doc/ref/api-io.texi (Port Implementation): Remove documentation.
* libguile/ports.c (scm_set_port_mark): Remove function.
* libguile/ports.h (scm_t_ptob_descriptor): Remove mark function.
* NEWS: Add entry.
2016-04-04 16:30:56 +02:00
Andy Wingo
59a18451b8
Use symbols instead of _IONBF values as args to setvbuf
...
* libguile/ports.c (scm_setvbuf): Use the symbols `none', `line', and
`block' instead of the values `_IONBF', `_IOLBF', and `_IOFBF'.
* NEWS: Update.
* doc/ref/posix.texi (Ports and File Descriptors): Update setvbuf
documentation.
* module/ice-9/deprecated.scm (define-deprecated): New helper.
(_IONBF, _IOLBF, _IOFBF): Define deprecated values.
* benchmark-suite/benchmarks/read.bm ("read"):
* benchmark-suite/benchmarks/uniform-vector-read.bm
("uniform-vector-read!"):
* libguile/r6rs-ports.c (cbip_fill_input):
* module/system/base/types.scm (%ffi-memory-backend):
* module/web/client.scm (open-socket-for-uri):
* module/web/server/http.scm (http-read):
* test-suite/tests/ports.test ("pipe, fdopen, and line buffering"):
("setvbuf"):
* test-suite/tests/r6rs-ports.test ("7.2.7 Input Ports"): Update to use
non-deprecated interfaces.
2016-04-04 16:30:56 +02:00
Andy Wingo
5fceaed5e1
Update NEWS.
...
* NEWS: Update.
2016-02-01 15:32:03 +01:00
Andy Wingo
58153e3a08
Remove frame-procedure
...
* libguile/frames.h:
* libguile/frames.c (scm_frame_procedure): Remove.
* test-suite/tests/eval.test ("stacks"): Adapt test.
* NEWS: Add news item.
* doc/ref/api-debug.texi (Frames): Document frame-procedure-name instead
of frame-procedure.
2015-12-01 11:30:54 +01:00
Andy Wingo
139ef2d17c
Minor NEWS update.
2015-10-22 13:03:51 +00:00
Andy Wingo
22c9e769f1
NEWS and doc updates
...
* doc/ref/vm.texi: Update for new instructions.
* doc/ref/web.texi: Update for URI-reference support.
* NEWS: Update.
2015-02-09 22:43:20 +01:00
Andy Wingo
e15f3e3328
Update NEWS
...
* NEWS: Update.
2014-05-02 11:13:34 +02:00
Mark H Weaver
475772ea57
Merge branch 'stable-2.0'
...
Conflicts:
GUILE-VERSION
NEWS
guile-readline/ice-9/readline.scm
libguile/async.c
libguile/backtrace.c
libguile/deprecated.h
libguile/gc-malloc.c
libguile/gdbint.c
libguile/init.c
libguile/ioext.c
libguile/mallocs.c
libguile/print.c
libguile/rw.c
libguile/scmsigs.c
libguile/script.c
libguile/simpos.c
libguile/snarf.h
libguile/strports.c
libguile/threads.c
libguile/vm-i-scheme.c
libguile/vm-i-system.c
module/srfi/srfi-18.scm
test-suite/Makefile.am
test-suite/standalone/test-num2integral.c
2014-04-25 02:06:01 -04:00
Ludovic Courtès
d4d11cf39d
Update NEWS.
2014-03-20 21:20:59 +01:00
Ludovic Courtès
f755f14e32
Fix typo in NEWS.
2014-03-17 23:06:21 +01:00
Ludovic Courtès
6a450390ca
Update NEWS.
...
* NEWS: Remove last 'XXX'.
2014-03-17 22:13:09 +01:00
Andy Wingo
77326d3649
Update NEWS
...
* NEWS: Update.
2014-03-17 22:05:39 +01:00
Ludovic Courtès
c68b9470e9
Update NEWS.
...
* NEWS: Move "New interfaces" higher. Complement.
2014-03-17 21:57:38 +01:00
Mark H Weaver
679ffce89c
Minor NEWS tweaks.
...
* NEWS: Fix typo and improve wording in custom ellipsis entry.
2014-03-17 02:54:47 -04:00
Mark H Weaver
cdf1ae8983
Add first draft of NEWS for 2.0.10.
...
* NEWS: Add first draft of changes in 2.0.10.
2014-03-17 02:42:38 -04:00
Andy Wingo
c2379a5b45
Doc and NEWS updates
...
* NEWS: Update section on dynamic stacks. Add link for intptr
interfaces.
* doc/ref/api-data.texi (Integers): Add intptr interfaces.
2014-03-16 16:28:28 +01:00
Andy Wingo
b3f1bb5d31
Add NEWS for Guile 2.2
...
* NEWS: Update for 2.1.1.
2014-01-26 15:08:35 +01:00
Ludovic Courtès
7f74dcb4a5
Mention `open-file' in NEWS.
2013-04-10 07:52:36 +02:00
Ludovic Courtès
cfeb9130bb
Bump version number for 2.0.9.
...
* GUILE-VERSION (GUILE_MICRO_VERSION): Increment.
2013-04-10 01:10:04 +02:00
Andy Wingo
14f2e47068
update NEWS
...
* NEWS: Updates.
2013-04-09 22:45:35 +02:00
Mark H Weaver
22c76fd822
Update 'NEWS'.
2013-04-08 10:15:12 -04:00
Mark H Weaver
7ca88a403f
Update 'NEWS'.
2013-04-08 08:58:00 -04:00
Mark H Weaver
eed0d26cc0
Update 'NEWS'.
2013-04-07 17:48:58 -04:00
Andy Wingo
c608e1aafa
NEWS tweaks
...
* NEWS: Correct some errors.
2013-04-06 22:51:52 +02:00
Ludovic Courtès
47ed3ca43a
Update `NEWS'.
2013-04-06 13:07:01 +02:00
Ludovic Courtès
a24cda1d26
Update `NEWS'.
2013-04-05 22:54:15 +02:00
Ludovic Courtès
465ff50245
build: Require GMP >= 4.2.
...
* NEWS, README: Update.
2013-03-28 22:53:59 +01:00