| Commit message (Expand) | Author | Age | Files | Lines |
* | Add allow-legacy-syntax-objects? parameter...* module/ice-9/psyntax.scm (syntax?): Only recognize legacy syntax
objects if the new allow-legacy-syntax-objects? parameter is true.
* module/ice-9/boot-9.scm (allow-legacy-syntax-objects?): New
parameter.
* doc/ref/api-macros.texi (Syntax Transformer Helpers): Document the
horrible situation with legacy syntax objects.
* NEWS: Add entry.
| Andy Wingo | 2017-03-28 | 1 | -0/+20 |
* | Update NEWS...* NEWS: Update for 2.2.0.
| Andy Wingo | 2017-03-14 | 1 | -85/+42 |
* | Update NEWS...* NEWS: Update for 2.1.8.
| Andy Wingo | 2017-03-10 | 1 | -2/+10 |
* | Add thread local fluids...* libguile/fluids.h (struct scm_dynamic_state): Add thread_local_values
table. Thread locals are flushed to a separate thread-local table.
The references are strong references since the table never escapes the
thread.
(scm_make_thread_local_fluid, scm_fluid_thread_local_p): New
functions.
* libguile/fluids.c (FLUID_F_THREAD_LOCAL):
(SCM_I_FLUID_THREAD_LOCAL_P): New macros.
(restore_dynamic_state): Add comment about precondition.
(save_dynamic_state): Flush thread locals.
(scm_i_fluid_print): Print thread locals nicely.
(new_fluid): Add flags arg.
(scm_make_fluid, scm_make_fluid_with_default, scm_make_unbound_fluid):
Adapt.
(scm_make_thread_local_fluid, scm_fluid_thread_local_p): New
functions.
(fluid_set_x): Special flushing logic for thread-locals.
(fluid_ref): Special cache miss logic for thread locals.
* libguile/stacks.c (scm_init_stacks):
* libguile/throw.c (scm_init_throw): %stacks and %exception-handler are
thread-locals.
* libguile/threads.c (guilify_self_2): Init thread locals table.
* test-suite/tests/fluids.test ("dynamic states"): Add test.
* doc/ref/api-control.texi (Fluids and Dynamic States): Add link to
Thread-Local Variables.
* doc/ref/api-scheduling.texi (Thread Local Variables): Update with real
thread-locals.
* NEWS: Update.
| Andy Wingo | 2017-03-07 | 1 | -0/+7 |
* | Update NEWS for prerelease....* NEWS: Update for next prerelease.
| Andy Wingo | 2017-03-01 | 1 | -0/+35 |
* | Update NEWS...* NEWS: Update 2.0.x NEWS. Fold 2.1.7 NEWS into main 2.2 body.
| Andy Wingo | 2017-03-01 | 1 | -86/+86 |
* | Document 'scm_to_uintptr_t' and 'scm_from_uintptr_t'....* doc/ref/api-data.texi (Integers): Document them.
| Ludovic Courtès | 2017-03-01 | 1 | -0/+2 |
* | Remove 'umask' calls from 'mkdir'....Fixes <http://bugs.gnu.org/24659>.
* libguile/filesys.c (SCM_DEFINE): Remove calls to 'umask' when MODE is
unbound; instead, use 0777 as the mode. Update docstring to clarify
this.
* doc/ref/posix.texi (File System): Adjust accordingly.
* NEWS: Mention it.
| Ludovic Courtès | 2017-03-01 | 1 | -1/+13 |
* | Fix typo in old NEWS....* NEWS: Fix typo.
| Andy Wingo | 2017-02-23 | 1 | -1/+1 |
* | Update NEWS for 2.1.7....* NEWS: Update.
| Andy Wingo | 2017-02-18 | 1 | -2/+74 |
* | Fold 2.1.6 NEWS changes...* NEWS: Fold 2.1.6 changes into main 2.2 NEWS.
| Andy Wingo | 2017-02-18 | 1 | -46/+16 |
* | Elide syscalls in fdes->port...* libguile/fports.h (scm_t_fport): Add options field.
(SCM_FDES_RANDOM_P): Deprecate.
(scm_i_fdes_to_port): Add options argument.
* libguile/fports.c (scm_i_fdes_to_port): Add options argument. Only
verify FD if SCM_FPORT_OPTION_VERIFY is there.
(scm_fdes_to_port, scm_open_file_with_encoding): Adapt to
scm_i_fdes_to_port changes.
(fport_random_access_p): Don't try to seek if NOT_SEEKABLE option is
set.
* libguile/deprecated.h:
* libguile/deprecated.c (SCM_FDES_RANDOM_P): Deprecate.
* NEWS: Add deprecation.
* libguile/filesys.c:
* libguile/ioext.c:
* libguile/posix.c:
* libguile/read.c:
* libguile/socket.c: Adapt callers.
| Andy Wingo | 2017-02-14 | 1 | -0/+11 |
* | Update NEWS....* NEWS: Update.
| Andy Wingo | 2017-01-19 | 1 | -143/+174 |
* | Update NEWS....* NEWS: Update.
| Andy Wingo | 2016-12-06 | 1 | -3/+22 |
* | Reimplement dynamic states...There are two goals: one, to use less memory per dynamic state in order
to allow millions of dynamic states to be allocated in light-weight
threading scenarios. The second goal is to prevent dynamic states from
being actively mutated in two threads at once. This second goal does
mean that dynamic states object that escape into scheme are now copies
that won't receive further updates; an incompatible change, but one
which we hope doesn't affect anyone.
* libguile/cache-internal.h: New file.
* libguile/fluids.c (is_dynamic_state, get_dynamic_state)
(save_dynamic_state, restore_dynamic_state, add_entry)
(copy_value_table): New functions.
(scm_i_fluid_print, scm_i_dynamic_state_print): Move up.
(new_fluid): No need for a number.
(scm_fluid_p: scm_is_fluid): Inline IS_FLUID uses.
(fluid_set_x, fluid_ref): Adapt to dynamic state changes.
(scm_fluid_set_x, scm_fluid_unset_x): Call fluid_set_x.
(scm_swap_fluid): Rewrite in terms of fluid_ref and fluid_set.
(swap_fluid): Use internal fluid_set_x.
(scm_i_make_initial_dynamic_state): Adapt to dynamic state
representation change.
(scm_dynamic_state_p, scm_is_dynamic_state): Use new accessors.
(scm_current_dynamic_state): Use make_dynamic_state.
(scm_dynwind_current_dynamic_state): Use new accessor.
* libguile/fluids.h: Remove internal definitions. Add new struct
definition.
* libguile/threads.h (scm_i_thread): Use scm_t_dynamic_state for dynamic
state.
* libguile/threads.c (guilify_self_1, guilify_self_2):
(scm_i_init_thread_for_guile, scm_init_guile):
(scm_call_with_new_thread):
(scm_init_threads, scm_init_threads_default_dynamic_state): Adapt to
scm_i_thread change.
(scm_i_with_guile, with_guile): Remove "and parent" suffix.
(scm_i_reset_fluid): Remove unneeded function.
* doc/ref/api-scheduling.texi (Fluids and Dynamic States): Remove
scm_make_dynamic_state docs. Update current-dynamic-state docs.
* libguile/vm-engine.c (vm_engine): Update fluid-ref and fluid-set!
inlined fast paths for dynamic state changes.
* libguile/vm.c (vm_error_unbound_fluid): Remove now-unused function.
* NEWS: Update.
* module/ice-9/deprecated.scm (make-dynamic-state): New definition.
* libguile/deprecated.h:
* libguile/deprecated.c (scm_make_dynamic_state): Move here.
* libguile/__scm.h (scm_t_dynamic_state): New typedef.
* libguile/dynstack.h:
* libguile/dynstack.c (scm_dynstack_push_fluid):
(scm_dynstack_unwind_fluid): Take raw dynstate in these internal
functions.
* libguile/throw.c (catch): Adapt to dynstack changes.
| Andy Wingo | 2016-12-05 | 1 | -0/+17 |
* | Add NEWS item about mutexes...* NEWS: Add entry.
| Andy Wingo | 2016-11-22 | 1 | -0/+7 |
* | Deprecate dynamic roots...* libguile/root.h:
* libguile/root.c: Remove these files.
* libguile/deprecated.h:
* libguile/deprecated.c (scm_internal_cwdr, scm_call_with_dynamic_root)
(scm_dynamic_root, scm_apply_with_dynamic_root): Deprecate.
Remove all root.h usage, which was vestigial.
* module/ice-9/serialize.scm: Use (current-thread) instead
of (dynamic-root).
| Andy Wingo | 2016-11-21 | 1 | -0/+6 |
* | Update join-thread docs...* doc/ref/api-scheduling.texi (Threads): Joining a foreign thread is an
error.
* NEWS: Update.
| Andy Wingo | 2016-11-21 | 1 | -1/+8 |
* | Update NEWS....* NEWS: Update.
| Andy Wingo | 2016-11-06 | 1 | -0/+51 |
* | Deprecate critical sections...* NEWS: Deprecate critical sections.
* doc/ref/api-scheduling.texi (Critical Sections): Remove.
* libguile/async.c:
* libguile/async.h:
* libguile/deprecated.c:
* libguile/deprecated.h:
* libguile/threads.c:
* libguile/threads.h: Deprecate critical section API.
| Andy Wingo | 2016-11-01 | 1 | -0/+8 |
* | 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.
| Andy Wingo | 2016-10-31 | 1 | -0/+6 |
* | 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.
| Andy Wingo | 2016-10-27 | 1 | -0/+3 |
* | 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.
| Andy Wingo | 2016-10-23 | 1 | -0/+9 |
* | NEWS item for deprecated user asyncs...* NEWS: Add news.
| Andy Wingo | 2016-10-17 | 1 | -0/+9 |
* | 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.
| Andy Wingo | 2016-10-17 | 1 | -0/+7 |
* | Fold 2.1.4 news into 2.2 news...* NEWS: Fold 2.1.4 news into main 2.2 news.
| Andy Wingo | 2016-10-17 | 1 | -73/+46 |
* | Update NEWS....* NEWS: Update.
| Andy Wingo | 2016-09-14 | 1 | -3/+39 |
* | 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.
| Andy Wingo | 2016-08-04 | 1 | -0/+1 |
* | 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.
| Andy Wingo | 2016-07-25 | 1 | -0/+14 |
* | Update NEWS...* NEWS: Update.
| Andy Wingo | 2016-07-25 | 1 | -0/+2 |
* | Update NEWS...* NEWS: Add 2.0.12 NEWS. Fold 2.1.3 NEWS into main 2.2.0 NEWS.
| Andy Wingo | 2016-06-29 | 1 | -164/+316 |
* | 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.
| Andy Wingo | 2016-06-21 | 1 | -0/+5 |
* | 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>.
| Andy Wingo | 2016-06-20 | 1 | -0/+7 |
* | Minor NEWS updates...* NEWS: Minor updates.
| Andy Wingo | 2016-06-18 | 1 | -2/+7 |
* | 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.
| Andy Wingo | 2016-06-04 | 1 | -0/+3 |
* | 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.
| Andreas Rottmann | 2016-05-22 | 1 | -0/+20 |
* | 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.
| Andy Wingo | 2016-05-20 | 1 | -0/+4 |
* | 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.
| Andy Wingo | 2016-05-16 | 1 | -0/+7 |
* | Update NEWS for release...* NEWS: Try to tell the port story better.
| Andy Wingo | 2016-05-15 | 1 | -10/+67 |
* | Fold 2.1.2 NEWS items into cumulative 2.2 NEWS...* NEWS: Update.
| Andy Wingo | 2016-04-08 | 1 | -113/+68 |
* | Update NEWS for changes to port buffering....* NEWS: Update.
| Andy Wingo | 2016-04-08 | 1 | -3/+34 |
* | 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.
| Andy Wingo | 2016-04-04 | 1 | -0/+6 |
* | 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.
| Andy Wingo | 2016-04-04 | 1 | -0/+11 |
* | 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.
| Andy Wingo | 2016-04-04 | 1 | -0/+3 |
* | 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.
| Andy Wingo | 2016-04-04 | 1 | -0/+16 |
* | Update NEWS....* NEWS: Update.
| Andy Wingo | 2016-02-01 | 1 | -3/+90 |
* | 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.
| Andy Wingo | 2015-12-01 | 1 | -1/+22 |
* | Minor NEWS update. | Andy Wingo | 2015-10-22 | 1 | -4/+4 |
* | NEWS and doc updates...* doc/ref/vm.texi: Update for new instructions.
* doc/ref/web.texi: Update for URI-reference support.
* NEWS: Update.
| Andy Wingo | 2015-02-09 | 1 | -5/+122 |
* | Update NEWS...* NEWS: Update.
| Andy Wingo | 2014-05-02 | 1 | -10/+55 |