summaryrefslogtreecommitdiff
path: root/doc
Commit message (Expand)AuthorAgeFilesLines
...
* 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 Wingo2016-11-011-46/+0
* Add scm_yield to manual alongside yield...* doc/ref/api-scheduling.texi (Threads): Mention scm_yield. Andy Wingo2016-11-011-0/+1
* api-scheduling.texi: Syntactic cleanups....* doc/ref/api-scheduling.texi: Remove vestigial comments. Andy Wingo2016-11-011-3/+0
* 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 Wingo2016-10-311-21/+0
* cancel-thread can take arguments...* doc/ref/api-scheduling.texi (Threads): * module/ice-9/threads.scm (cancel-thread): Additional args to cancel-thread will be returned by the thread. Andy Wingo2016-10-311-2/+3
* 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 Wingo2016-10-271-11/+8
* 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 Wingo2016-10-232-27/+42
* Small api-scheduling.texi reorder...* doc/ref/api-scheduling.texi: Put "Threads" section at beginning of scheduling chapter. Andy Wingo2016-10-181-139/+140
* Update "Asyncs" section of manual....* doc/ref/api-scheduling.texi (Asyncs): Update. Andy Wingo2016-10-181-37/+46
* Deprecate user asyncs...* libguile/async.c: * libguile/async.h: * libguile/deprecated.c: * libguile/deprecated.h (scm_async, scm_async_mark, scm_run_asyncs): Deprecate these functions, which comprise the "users asyncs" facility. * module/oop/goops.scm: Adapt to <async> deprecation. * doc/ref/api-scheduling.texi: * doc/ref/libguile-concepts.texi: * doc/ref/libguile-foreign-objects.texi: * doc/ref/posix.texi: Remove documentation on user asyncs, and replace references to "system asyncs" to be just "asyncs". Andy Wingo2016-10-174-95/+53
* 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 Wingo2016-10-171-38/+0
* Compiler support for atomics...* doc/ref/vm.texi (Inlined Atomic Instructions): New section. * libguile/vm-engine.c (VM_VALIDATE_ATOMIC_BOX, make-atomic-box) (atomic-box-ref, atomic-box-set!, atomic-box-swap!) (atomic-box-compare-and-swap!): New instructions. * libguile/vm.c: Include atomic and atomics-internal.h. (vm_error_not_a_atomic_box): New function. * module/ice-9/atomic.scm: Register primitives with the compiler. * module/language/cps/compile-bytecode.scm (compile-function): Add support for atomic ops. * module/language/cps/effects-analysis.scm: Add comment about why no effects analysis needed. * module/language/cps/reify-primitives.scm (primitive-module): Add case for (ice-9 atomic). * module/language/tree-il/primitives.scm (*effect-free-primitives*): (*effect+exception-free-primitives*): Add atomic-box?. * module/system/vm/assembler.scm: Add new instructions. * test-suite/tests/atomic.test: Test with compilation and interpretation. Andy Wingo2016-09-061-0/+32
* Add atomic boxes...* doc/ref/api-scheduling.texi (Atomics): New manual section. * libguile.h: Include atomic.h. * libguile/Makefile.am (libguile_@GUILE_EFFECTIVE_VERSION@_la_SOURCES): (DOT_X_FILES, DOT_DOC_FILES, modinclude_HEADERS): Add atomic. * libguile/atomic.c: * libguile/atomic.h: New files. * libguile/atomics-internal.h (scm_atomic_set_scm, scm_atomic_ref_scm) (scm_atomic_swap_scm, scm_atomic_compare_and_swap_scm): New facilities. * libguile/goops.c (class_atomic_box, scm_sys_goops_early_init): Add support for <atomic-box>. Remove duplicate <keyword> fetch. * libguile/init.c (scm_i_init_guile): Call scm_register_atomic_box. * libguile/print.c (iprin1): Add atomic box case. * libguile/tags.h (scm_tc7_atomic_box): New tag. * libguile/validate.h (SCM_VALIDATE_ATOMIC_BOX): New macro. * module/Makefile.am (SOURCES): Add ice-9/atomic.scm. * module/ice-9/atomic.scm: New file. * module/oop/goops.scm (<atomic-box>): New var. Andy Wingo2016-09-061-0/+67
* Clarify bootstrap docs...* doc/ref/vm.texi: Add a sentence stating which parts of the bytecode toolchain are in C, and which are in Scheme. This avoids confusion if users assume Guile==Scheme and so assume the whole toolchain is in Scheme. Wilfred Hughes2016-09-051-4/+6
* Fix typo in Nil documentation...* doc/ref/api-languages.texi (Nil): Fix typo. Thanks to Wilfred Hughes for the report. Fixes #24342. Andy Wingo2016-09-021-1/+1
* Add unboxed logxor on u64 values...* libguile/vm-engine.c (ulogxor): New instruction. * module/language/cps/effects-analysis.scm (ulogxor): * module/language/cps/slot-allocation.scm (compute-var-representations): * module/language/cps/types.scm (ulogxor): * module/system/vm/assembler.scm (emit-ulogxor): Add support for new instruction. * doc/ref/vm.texi (Unboxed Integer Arithmetic): Document ulogxor. Andy Wingo2016-09-011-2/+3
* Only ptob->close() after read/write finish...* libguile/Makefile.am (noinst_HEADERS): Add atomics-internal.h. * libguile/atomics-internal.h: New file. * libguile/ports-internal.h (refcount): New member. * libguile/ports.c (release_port, scm_dynwind_acquire_port): New facility for acquiring a port within a dynwind. (scm_port_poll, scm_i_read_bytes, scm_setvbuf, scm_end_input) (scm_i_write_bytes, scm_char_ready_p, scm_seek) (scm_truncate_file, trampoline_to_c_read) (trampoline_to_c_write): Acquire port. (scm_c_make_port_with_encoding): Init refcount to 1. (scm_close_port): Release port. * doc/ref/api-io.texi (I/O Extensions): Add documentation Andy Wingo2016-08-311-0/+7
* Fix example in make-custom-binary-input-port documentation...* doc/ref/api-io.texi (Custom Ports): Add additional argument to example's invocation of make-custom-binary-input-port. Previously had mismatched arity by missing "closed" argument. Christopher Allan Webber2016-08-311-3/+3
* Add file descriptor finalizers...* doc/ref/posix.texi (Ports and File Descriptors): Document new interfaces. * libguile/filesys.c (scm_close, scm_close_fdes) * libguile/fports.c (fport_close): * libguile/ioext.c (scm_primitive_move_to_fdes): Call scm_run_fdes_finalizers. * module/ice-9/fdes-finalizers.scm: * test-suite/tests/fdes-finalizers.test: * libguile/fdes-finalizers.h: * libguile/fdes-finalizers.c: New files. * module/Makefile.am: * test-suite/Makefile.am: * libguile/Makefile.am: * libguile.h: * libguile/init.c: Wire up new files. Andy Wingo2016-08-301-0/+45
* Remove duplicate documentation...* doc/ref/posix.texi (Ports and File Descriptors): Remove duplicate documentation for port-mode and setvbuf. Andy Wingo2016-08-281-27/+0
* Fix typo about open-pipe...* doc/ref/posix.texi (Pipes): Fix typo. sirgazil2016-08-081-1/+1
* Fix typo about variable definitions...* doc/ref/api-binding.texi (Top Level Variable Definitions): Fix typo. sirgazil2016-08-081-2/+2
* Documentation fixes...* doc/ref/api-compound.texi: * doc/ref/api-control.texi: * doc/ref/api-data.texi: Fix typos and clarify. Ethan Stefan Day2016-08-073-15/+15
* Fix grammar in api-compound.texi...* doc/ref/api-compound.texi: Fix grammar. Calvin Heim2016-08-071-3/+3
* Fix typo about pattern variables...* doc/ref/sxml-match.texi (Matching XML Elements): Fix typo. sirgazil2016-08-071-1/+1
* Manual recommends against SRFI-10...* doc/ref/srfi-modules.texi (SRFI-10): Deprecate, or at least recommend against. Andy Wingo2016-08-071-65/+38
* 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 Wingo2016-08-042-0/+13
* doc: Add unquote and unquote-splicing examples....Suggested by Vincent Legoll <vincent.legoll@gmail.com>. * doc/ref/api-evaluation.texi (Expression Syntax): Add an unquote and an unquote-splicing example. Ludovic Courtès2016-07-251-1/+3
* 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 Wingo2016-07-251-1/+5
* doc: Do not gender the programmer....* doc/ref/api-foreign.texi: Replace "his" with "their". * doc/ref/sxml.texi: Likewise. Ricardo Wurmus2016-07-252-2/+2
* Add popen feature...* doc/ref/api-options.texi (Common Feature Symbols): Document the popen feature. * doc/ref/posix.texi (Pipes): Depend on the popen feature, not fork. * libguile/posix.c (scm_init_posix): Add popen feature if we can. Andy Wingo2016-07-252-3/+6
* Add meta/build-env...* meta/build-env.in: New file which sets up an environment that does not inherit GUILE_LOAD_PATH / GUILE_LOAD_COMPILED_PATH (unless cross-compiling). * doc/ref/Makefile.am (autoconf-macros.texi): * libguile/Makefile.am (snarf2checkedtexi): * module/Makefile.am (ice-9/psyntax-pp.go): * test-suite/standalone/Makefile.am (GUILE_INSTALL_LOCALE): * am/bootstrap.am (.scm.go): * am/guilec (.scm.go): Use build-env. * configure.ac: Create build-env. Andy Wingo2016-07-101-1/+1
* Update Gnulib to 68b6ade....Also add --conditional-dependencies to the flags. See: https://lists.gnu.org/archive/html/guile-devel/2016-07/msg00012.html Andy Wingo2016-07-072-8/+105
* Add documentation pointer from getopt-long to SRFI-37....* doc/ref/mod-getopt-long.texi (getopt-long): Point to SRFI-37. Andy Wingo2016-06-251-0/+6
* Favor "escape continuation" over "one-shot continuation" in manual...* doc/ref/api-control.texi (Prompt Primitives): Remove mention of one-shot continuations, as it's possible to invoke them multiple times if the continuation is re-entered through other means. Andy Wingo2016-06-241-4/+2
* Fix typo about `keywords' read option...* doc/ref/api-data.texi (Keyword Read Syntax): Fix typo. Thanks to Glenn Michaels for the report and fix. Andy Wingo2016-06-241-1/+1
* Add with-input-from-port, etc documentation...* doc/ref/api-io.texi (Default Ports): Add documentation for with-input-from-port, with-output-to-port, and with-error-to-port. Fixes #20919. Andy Wingo2016-06-241-0/+8
* Clarify use of the term "scanning" in the manual...* doc/ref/api-memory.texi (Garbage Collection Functions): * doc/ref/libguile-concepts.texi (Garbage Collection): Attempt to be clear that scanning is a thing that happens in the mark phase. Fixes #20907 I think. Andy Wingo2016-06-242-34/+56
* Add weak hash table documentation...* doc/ref/api-memory.texi (Weak hash tables): Update documentation. Fixes #20551. Andy Wingo2016-06-231-2/+10
* Fix R6RS fold-left documentation...* doc/ref/r6rs.texi (rnrs lists): Fix documentation of fold-left. Andy Wingo2016-06-231-4/+8
* Remove unused doc/maintDaniel Llorens2016-06-234-11823/+0
* `define!' instruction returns the variable...* doc/ref/vm.texi (Top-Level Environment Instructions): Update documentation. * libguile/_scm.h (SCM_OBJCODE_MINOR_VERSION): Bump, sadly. * module/system/vm/assembler.scm (*bytecode-minor-version*): Bump. * libguile/vm-engine.c (define!): Change to store variable in dst slot. * module/language/tree-il/compile-cps.scm (convert): * module/language/cps/compile-bytecode.scm (compile-function): Adapt to define! change. * module/language/cps/effects-analysis.scm (current-module): Fix define! effects. Incidentally here was the bug: in Guile 2.2 you can't have effects on different object kinds in one instruction, without reverting to &unknown-memory-kinds. * test-suite/tests/compiler.test ("regression tests"): Add a test. Andy Wingo2016-06-211-2/+2
* Document pretty-print #:max-expr-width...* doc/ref/misc-modules.texi (Pretty Printing): Document #:max-expr-width keyword argument. Fixes #17657. Andy Wingo2016-06-211-0/+3
* Document sigaction + SA_RESTART...* doc/ref/posix.texi (Signals): Document interaction between Guile's signal handling and SA_RESTART. Fixes #14640. Andy Wingo2016-06-211-0/+16
* Document char-ready? limitations....* doc/ref/api-io.texi (Venerable Port Interfaces): Document limitations of char-ready?. See http://debbugs.gnu.org/10627. Andy Wingo2016-06-201-0/+16
* 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 Wingo2016-06-201-1/+6
* Add reference to the lack of "non-greedy" variants...While describing special characters, remind the reader that "non-greedy" variants are not supported. They might not be familiar with POSIX extended regular expression and expect it to work. * doc/ref/api-regex.texi: Add "non-greedy" observation Diogo F. S. Ramos2016-06-191-4/+5
* Remove link to Emacs' regexp syntax...Linking to Emacs' regexps as an example of regexp syntax gives the wrong impression that Guile supports it, which is not true. * doc/ref/api-regex.texi: Remove link to Emacs' regexp syntax Diogo F. S. Ramos2016-06-191-4/+1
* Support `connect' on nonblocking sockets...* libguile/socket.c (scm_connect): * doc/ref/posix.texi (Network Sockets and Communication): Support connect on nonblocking ports. Andy Wingo2016-06-091-4/+6
* `accept' on nonblocking socket can return #f...* doc/ref/posix.texi (Network Sockets and Communication): * libguile/socket.c (scm_accept): Return #f if the socket is nonblocking and no connection is ready. Andy Wingo2016-06-091-7/+18