Age | Commit message (Collapse) | Author | Files | Lines |
|
* test-suite/tests/ports.test (define-module): don't use (ice-9 popen)
(if-supported): new syntax
(pipe:write, pipe:write): disable if no popen provided
(line-counter): disable if no popen provided
|
|
* test-suite/tests/ports.test ("valid wide mode string"): copy string
|
|
* test-suite/tests/popen.test (if-supported): disable when popen not provided
|
|
* test-suite/tests/00-socket.test (AF_UNIX/SOCK_DGRAM, AF_UNIX/SOCK_STREAM): don't throw 'unresolved
|
|
Cygwin's fork is incompatible with Guile's thread and GC model
* libguile/posix.c (HAVE_FORK) [__CYGWIN__]: #undef HAVE_FORK when __CYGWIN__
|
|
* libguile/finalizers.c (produce_sem, consume_sem, finalization_data_lock) [SEMAPHORE]: new static vars
(notify_finalizers, notify_forking) [SEMAPHORE]: new static variables
(notify_finalizers_to_run) [SEMAPHORE]: use producer/consumer pattern
(notify_about_to_fork) [SEMAPHORE]: use producer/consumer pattern
(read_finalization_pipe_data) [SEMAPHORE]: use producer/consumer pattern
(scm_set_automatic_finalization_enabled) [SEMAPHORE]: init new static vars
(scm_init_finalizer_thread) [SEMAPHORE]: init new static vars
* libguile/scmsigs.c (produce_sem, consume_sem, signal_data_lock, notify_signal): new static vars
(take_signal) [SEMAPHORE]: use new vars
(read_signal_pipe_data) [SEMAPHORE]: use new vars
(start_signal_delivery_thread) [SEMAPHORE]: init new vars
(scm_i_close_signal_pipe) [SEMAPHORE]: destroy new vars
|
|
|
|
* test-suite/tests/00-repl-server.test (call-with-repl-server): throw if no fork provided
* test-suite/tests/00-socket.test (primitive-fork-if-available): new help procedure
(bind/sockaddr, AF_UNIX/SOCK_STREAM): use helper func
* test-suite/tests/ports.test ("pipe, fdopen, and line buffering"): throw if no fork provided
|
|
* libguile/programs.c (try_parse_arity): Add a case for
assert-nargs-ee/locals.
|
|
For some systems, ECONNABORTED is a failure condition for reading from closed sockets.
* test-suite/tests/00-repl-server.test (HTTP inter-protocol attack): modified
|
|
* 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.
|
|
* module/ice-9/psyntax.scm (make-syntax-object): Change to make
new-style syntax objects.
* module/ice-9/psyntax-pp.scm: Regenerate.
* module/ice-9/compile-psyntax.scm (squeeze-syntax-object): Change to be
functional.
(squeeze-constant): Likewise.
(squeeze-tree-il): Likewise.
(translate-literal-syntax-objects): New pass. The compiler can embed
literal syntax objects into compiled objects, but syntax can no longer
be read/written; otherwise users could forge syntax objects. So for
the bootstrap phase, rewrite literal constants to calls to
make-syntax.
|
|
* module/ice-9/psyntax.scm: Baby steps towards support of a new
representation of syntax objects.
* module/ice-9/psyntax-pp.scm: Regenerate.
|
|
* libguile/Makefile.am (libguile_@GUILE_EFFECTIVE_VERSION@_la_SOURCES):
(DOT_X_FILES, DOT_DOC_FILES, noinst_HEADERS): Add syntax.c and
syntax.h.
* libguile/evalext.c (scm_self_evaluating_p):
* libguile/goops.c (class_syntax, scm_class_of, scm_goops_early_init):
* libguile/init.c (scm_init_guile):
* libguile/print.c (iprin1):
* libguile/tags.h (scm_tc7_syntax):
* module/oop/goops.scm (<syntax>):
* module/system/base/types.scm (%tc7-syntax, cell->object):
* module/system/vm/disassembler.scm (code-annotation): Wire up the new
data type.
* libguile/syntax.c:
* libguile/syntax.h: New files.
* module/ice-9/boot-9.scm: Move new definitions to (system syntax
internal).
* module/system/syntax.scm (print-syntax): New helper.
* module/system/vm/assembler.scm (statically-allocatable?)
(intern-constant, link-data): Arrange to be able to write syntax
objects into images.
* module/language/cps/types.scm (&syntax): New type. Remove
&hash-table; it was never detected, an internal binding, and we need
the bit to avoid going into bignum territory.
|
|
* module/ice-9/psyntax.scm (%syntax-module): Rename from syntax-module
in order to make room for a new syntax-module primitive binding.
* module/ice-9/psyntax-pp.scm: Regenerate.
* module/ice-9/boot-9.scm: Push syntax bindings into an internal
module.
* module/system/syntax.scm: New file.
* module/Makefile.am (SOURCES): Add system/syntax.scm.
|
|
* .gitignore: add *.exe
|
|
* module/ice-9/i18n.scm (%locale-dump): modified
|
|
* libguile/i18n.c (scm_nl_langinfo): unpack INT_P_SEP_BY_SPACE as bool
* test-suite/tests/i18n.test (nl-langinfo et al.): new tests
|
|
* module/ice-9/i18n.scm (%locale-dump): new procedure
|
|
* test-suite/tests/i18n.test ("nl-langinfo et al."): new tests
|
|
* test-suite/tests/i18n.test ("nl-langinfo et al."): new tests
|
|
* module/ice-9/i18n.scm (locale-monetary-digit-grouping): renamed to locale-monetary grouping
(monetary-amount->locale-string): use renamed procedure
* test-suite/tests/i18n.test (%french-locale): add LC_MONETARY
(%french-utf8-locale): add LC_MONETARY
("nl-langinfo et al."): tests for locale-monetary-grouping
|
|
* module/web/client.scm (open-socket-for-uri): Use 'block instead of
_IOFBF.
|
|
* module/web/client.scm: Don't export 'open-connection-for-uri', which
doesn't exist.
|
|
* prebuilt/Makefile.am (EXTRA_DIST): Add generic prebuilt links.
|
|
* module/ice-9/command-line.scm (version-etc):
* module/system/repl/common.scm (*version*): Update release year.
|
|
* GUILE-VERSION (GUILE_MINOR_VERSION, GUILE_MICRO_VERSION): Bump.
(LIBGUILE_INTERFACE_CURRENT): Incrememt to indicate that we now have a
defined libtool ABI "interface" of 1, that we support no other
interface (yet), and that this is the 0th revision of that interface.
|
|
* meta/guile.m4 (GUILE_SITE_DIR): Update to find compiled site
directories.
* meta/guile-2.2.pc.in: Add entry for site-ccache directory.
|
|
* test-suite/tests/eval.test ("promises"): Increase clear pass rate on
this test.
|
|
* test-suite/tests/alist.test: Update unresolved cases to match current
behavior. Bogus but stable :/
|
|
* configure.ac: Add 'dist-lzip' Automake option.
|
|
* meta/guile.m4 (GUILE_PROGS): Build version in correct order.
|
|
* NEWS: Update for 2.2.0.
|
|
* configure.ac: Use detected endianness and word size to automatically
select which set of prebuilt binaries to use.
* meta/build-env.in (top_builddir):
* meta/uninstalled-env.in (top_builddir): Update to use
SCM_PREBUILT_BINARIES for prebuilt entry in GUILE_LOAD_COMPILED_PATH.
* prebuilt/32-bit-big-endian:
* prebuilt/32-bit-little-endian:
* prebuilt/64-bit-little-endian: New links.
* prebuilt/x86_64-pc-linux-gnu: Remove this link now that it's unneeded.
|
|
* module/language/cps/effects-analysis.scm (expression-effects): Prompts
cause &all-effects. I tried to limit this change to CSE but it was
actually LICM that was borked, so better to be conservative
* test-suite/tests/control.test ("escape-only continuations"): Add
test.
|
|
* libguile/finalizers.c (async_gc_finalizer):
(scm_i_register_async_gc_callback): Replace "weak gc callback"
mechanism with "async gc callback" mechanism. Very similar but the
new API is designed to be called a bounded number of times, to avoid
running afoul of libgc heuristics.
* libguile/weak-list.h: New internal header.
* libguile/Makefile.am (noinst_HEADERS): Add weak-list.h.
* libguile/weak-set.c (vacuum_all_weak_sets):
(scm_c_make_weak_set, scm_init_weak_set):
* libguile/weak-table.c (vacuum_all_weak_tables):
(scm_c_make_weak_table, scm_init_weak_table): Arrange to vacuum all
weak sets from a single async GC callback, and likewise for weak
tables.
Thanks to Ludovic Courtès for tracking this bug down!
|
|
* GUILE-VERSION (GUILE_MICRO_VERSION): Bump.
|
|
This reverts commit 62f08b8f38990c1849ea61cd622f84b3d2611cd9, which was
causing failing texi2dvi runs.
|
|
* NEWS: Update for 2.1.8.
|
|
* libguile/atomics-internal.h (scm_atomic_subtract_uint32):
(scm_atomic_compare_and_swap_uint32, scm_atomic_set_pointer):
(scm_atomic_ref_pointer, scm_atomic_set_scm):
(scm_atomic_ref_scm, scm_atomic_swap_scm):
(scm_atomic_compare_and_swap_scm): Use C11 atomic types if we have
loaded C11 stdatomic.h.
|
|
* doc/ref/scheme-ideas.texi: the some way -> the same way
* doc/ref/scheme-intro.texi: Use @math inside a texinfo command (turns out
$math$ is not processed in this context and thus is not rendered correctly).
|
|
* doc/ref/vm.texi (Inlined Scheme Instructions): Add string-set!.
* libguile/vm-engine.c (string-set!): New opcode.
* module/ice-9/rdelim.scm (read-string): Reimplement in terms of a
geometrically growing list of strings, to reduce total heap usage when
reading big files.
* module/language/cps/compile-bytecode.scm (compile-function): Add
string-set! support.
* module/language/cps/types.scm (string-set!): Update for &u64 index.
* module/language/tree-il/compile-cps.scm (convert): Unbox index to
string-set!.
* module/system/vm/assembler.scm (system): Export string-set!.
|
|
* libguile/ports.c (update_port_position): Only fetch line if we need to
increment it.
|
|
This bug was introduced by 35a90592501ebde7e7ddbf2486ca9d315e317d09.
* module/language/cps/specialize-numbers.scm (specialize-operations):
Check that both operands are real as a condition for
specialize-f64-comparison.
* test-suite/tests/numbers.test: Add test.
|
|
* module/language/cps/compile-bytecode.scm (compile-function): Check for
fallthrough after $kclause too; possible to need to jump if clause
tails are contified.
* module/language/cps/contification.scm (compute-contification-candidates):
Enable inter-clause contification.
|
|
* module/language/cps/compile-bytecode.scm (compile-function):
* module/language/cps/slot-allocation.scm ($allocation)
(lookup-nlocals, compute-frame-size, allocate-slots): Adapt to
have one frame size per function, for all clauses.
|
|
* module/statprof.scm (gcprof): Remove handle-interrupts trampoline from
captured stacks.
|
|
* module/statprof.scm (profile-signal-handler): Cut an additional stack
frame, corresponding to the handle-interrupts trampoline added
recently.
|
|
* module/statprof.scm (with-statprof): Pass #:display-style to 'statprof'.
|
|
* module/system/vm/linker.scm (*lcm-page-size*): Rename
from *page-size*, change to 64 KB.
* libguile/loader.c (load_thunk_from_memory): Only require page size
alignment, knowing that although Guile might emit ELF with 64k
alignment, it only really needs page alignment.
|