This lets Guile build on OS X (tested on 10.14) with the system-provided
libreadline.
* acinclude.m4 (GUILE_READLINE): Check for rl_get_keymap_name instead of
rl_get_keymap. The system provided libreadline is an alias to libedit,
which has _keymap but not _keymap_name, and Guile uses both.
* guile-readline/readline.c: Adjust the include guard.
* acinclude.m4 (GUILE_ENABLE_JIT): For MIPS, PPC, sparc, ia64, hppa,
s390, and alpha: mark JIT as unavailable. Only architectures left are
x86-64, i686, aarch64, and armv7. If JIT is available, enable it by
default; previously only x86-64 and i686 were supported.
* acinclude.m4: Disable JIT by default on not-x86-64. Although I got
JIT mostly working on 32-bit x86, I got nondeterministic segfaults
deep in lightning, on that platform; perhaps indicating a bug in the
optimizer. After a day of poking and not solving the problem, I think
that I don't want the complexity of Lightning's node representation,
especially on platforms that get less testing. In the future we'll
use the lightning backends without the node layer.
* NEWS: Update.
* libguile/jit.c: Wrap the whole thing in ENABLE_JIT.
* libguile/threads.c (on_thread_exit):
* libguile/vm.c (scm_call_n):
* libguile/init.c (scm_i_init_guile):
* libguile/vm-engine.c (VM_NAME): Wrap calls into jit.c with ENABLE_JIT.
* configure.ac: Move up AC_CANONICAL_TARGET, as autoconf was complaining
about it coming after AC_ARG_PROGRAM.
* acinclude.m4 (GUILE_ENABLE_JIT): Fix to honor --enable-jit arg.
* GUILE-VERSION:
* acinclude.m4:
* guile-readline/LIBGUILEREADLINE-VERSION:
* guile-readline/Makefile.am: Rename libguile-readline-v-18.so to
guile-readline.so, and install it to the extensions dir instead of the
libdir.
* guile-readline/ice-9/readline.scm: Load guile-readline instead of
libguile-readline-v-18.
This is equivalent to the previous situation, but more easily
maintainable.
* acinclude.m4 (gl_CLOCK_TIME): Remove.
* configure.ac: Remove explicit use of `gl_CLOCK_TIME'.
* m4/gnulib-cache.m4 (gl_MODULES): Add `clock-time'.
* gnulib-local/m4/clock_time.m4.diff: New file.
* Makefile.am (EXTRA_DIST): Add it.
* acinclude.m4 (gl_CLOCK_TIME): If both clock_gettime and
clock_getcpuclockid are present without -lrt and -lposix4, don't add
any libs to LIB_CLOCK_GETTIME. Thanks to taylanbarirli@gmail.com.
* configure.ac: Remove code that determines the values of the `iconveh_'
constants. Use `GUILE_UNISTRING_ICONVEH_VALUES'. instead.
* acinclude.m4 (GUILE_UNISTRING_CONSTANT,
GUILE_UNISTRING_ICONVEH_VALUES): New macros.
* acinclude.m4 (gl_CLOCK_TIME):
* configure.ac: Locally include gl_CLOCK_TIME. To be fixed properly
when gnulib updates their license to reflect the actual BSD state of
things.
* libguile/Makefile.am (libguile_@GUILE_EFFECTIVE_VERSION@_la_LDFLAGS):
Add -lrt for clock_gettime, if needed.
* meta/guile-2.0-uninstalled.pc.in:
* meta/guile-2.0.pc.in: Likewise, in Libs.private.
* acinclude.m4 (GUILE_READLINE): Check for rl_catch_signals and
rl_catch_sigwinch.
* guile-readline/readline.c (scm_init_readline): If we can, turn off
readline's signal handling, because we can do our own.
(scm_readline): Use dynwinds to handle resetting readline's state on
nonlocal exit, not catches.
(unwind_readline): Rename from handle_error.
* acinclude.m4, configure.ac, examples/compat/acinclude.m4: Properly
quote the first argument for `AC_DEFINE' and `AC_DEFINE_UNQUOTED'.
* .x-sc_m4_quote_check: New file.
* acinclude.m4 (GUILE_READLINE): New macro, based on the former
`guile-readline/configure.ac'.
* configure.ac: Remove `AC_CONFIG_SUBDIRS' invocation. Add
`GUILE_READLINE' invocation. Produce files under `guile-readline'.
* guile-readline/Makefile.am: Conditionalize the meat under
`HAVE_READLINE'.
(INCLUDES): Rename to...
(AM_CPPFLAGS): this. Users updates.
(AM_CFLAGS): New variable.
(libguilereadline_v_@LIBGUILEREADLINE_MAJOR@_la_LIBADD): Add
$(READLINE_LIBS).
* guile-readline/readline.c: Include <config.h>.
* guile-readline/configure.ac, guile-readline/autogen.sh: Remove.