* libguile/Makefile.am (libpath.h): Fix SCM_LIB_DIR to point to the
libdir, not pkglibdir. Add SCM_EXTENSIONS_DIR, for a dir to put in the
dynamic-link search path that's not managed by ldconfig or the like;
and put this dir in the "extensionsdir" key of %guile-build-info.
* libguile/dynl.c (sysdep_dynl_init): Rename the installed-libdir
environment var to GUILE_SYSTEM_EXTENSIONS_PATH (from
GUILE_SYSTEM_LTDL_PATH). Also add SCM_EXTENSIONS_DIR to the ltdl
search path in the default case.
* meta/uninstalled-env.in: Adapt override to match.
* meta/guile-2.0.pc.in: Add extensionsdir, so you can pkg-config
--variable=extensionsdir guile-2.0.
* libguile/Makefile.am (libpath.h): Fix pkgdatadir, pkglibdir, and
pkgincludedir entries. Add a new define, SCM_LIB_DIR.
* libguile/dynl.c (sysdep_dynl_init): Add the libdir to the libltdl
search path. Should fix
http://thread.gmane.org/gmane.lisp.guile.bugs/4289/focus=4296 -- that
is, it should allow guile to be invoked from whereever it is
installed, without munging LTDL_LIBRARY_PATH or the like variables.
There is a trick though -- during the build, we don't want to be
looking in the $libdir for loadable modules. So as with
GUILE_SYSTEM_PATH, we have GUILE_SYSTEM_LTDL_PATH.
* meta/uninstalled-env.in: Set GUILE_SYSTEM_LTDL_PATH to "" when
building.
* configure.ac: Rework gmp and unistring checks to use
AC_LIB_HAVE_LINKFLAGS, so that the compilation checks run with the
right -L/-l flags.
* libguile/Makefile.am (libguile_la_LIBADD): Adapt to need to add
$(LIBGMP) and $(LIBUNISTRING) here.
Hopefully this solves
http://article.gmane.org/gmane.lisp.guile.bugs/4288.
* libguile/Makefile.am:
* libguile/vectors.c:
* libguile/vectors.h:
* libguile/generalized-vectors.c:
* libguile/generalized-vectors.h: Move generic vector ops off into their
own file too. The implementation is now based on the generic
array-handle infrastructure.
* libguile.h:
* libguile/array-map.c:
* libguile/bitvectors.c:
* libguile/random.c:
* libguile/srfi-4.c: Update includers.
* libguile/arrays.h:
* libguile/arrays.c:
* libguile/generalized-arrays.h:
* libguile/generalized-arrays.c: Move some generic functionality out of
arrays.c to a new file.
* libguile/array-map.c:
* libguile/deprecated.c:
* libguile/init.c: Update includers.
* libguile/array-handle.c:
* libguile/array-handle.h: Move some parts of unif.c and unif.h to these
new files.
* libguile/unif.c:
* libguile/unif.h: Update includers. Since unif.h depends on the array
handle type, we include array-handle.h, which also means that there
will be no difference for our callers.
* libguile/init.c: Call scm_init_array_handle, though it does nothing as
of yet.
* libguile/Makefile.am: Adapt for new files.
* libguile/convert.c:
* libguile/convert.h:
* libguile/convert.i.c: Remove these functions, which were undocumented,
not in the libguile/ header, and thus unlikely to have been used.
* libguile/Makefile.am (libpath.h): Add definitions for SCM_CCACHE_DIR
and SCM_EFFECTIVE_VERSION. These are private, the header is not
installed. Add ccachedir to build-info. Rework some other build-info
definitions.
* libguile/load.c (scm_loc_load_compiled_path): New global, corresponding
to the new environment variable, GUILE_LOAD_COMPILED_PATH. Compiled
files will now be searched for in this path, and only in this path.
(scm_init_load_path): Init the load-compiled path too. We initialize it
with $pkglibdir/guile/$effective_version/ccache, and also with
$HOME/.guile-ccache/$effective_version/. This will respect the
libdir/datadir difference, and it is a preparation for automatic
compilation support.
(scm_primitive_load_path): Search only the GUILE_LOAD_COMPILED_PATH for
compiled files.
(scm_init_load): Cache scm_loc_load_compiled_path.
* libguile/__scm.h (SCM_API, SCM_INTERNAL): Take the reverse strategy: symbols will
be hidden by default, and only exported with SCM_API. In addition to working
on Mac OS, it has the several nice efficiency benefits on Linux, and unifies
codepaths with Win32.
* libguile/Makefile.am: Define BUILDING_LIBGUILE when building Guile.
* meta/guile-tools: Changed to be a scheme script. Instead of looking for
executables in a "scripts dir", we just look for modules in (scripts),
and load the modules directly.
* module/Makefile.am:
* module/scripts/: Move the scripts into module/ so they can be compiled.
Rename scripts from `foo' to `foo.scm'.
* libguile/Makefile.am: Invoke the snarf->texi code via guile-tools.
* configure.in:
* .gitignore: Update for changes.
* libguile/measure-hwm.scm: Remove.
* .gitignore: Update for removal.
* test-suite/standalone/test-fast-slot-ref.in:
* test-suite/standalone/test-use-srfi.in:
* am/guilec:
* check-guile.in: Revert back to normal guile invocation.
* libguile/Makefile.am: Don't make a stack calibration file, as the
getrlimit-based limit setting should work fine.
* am/guilec (.scm.go): Use `pre-inst-guile' and load
`stack-limit-calibration.scm'. This is particularly useful when
building the first `.go' files where the compiler is run using the
interpreter, which may end up using a lot of stack space.
* libguile/Makefile.am (BUILT_SOURCES): Add
`stack-limit-calibration.scm'.
(TESTS, TESTS_ENVIRONMENT): Remove.
(stack-limit-calibration.scm): Prepend `-' so that any errors during
the calibration are ignored.
* libguile/Makefile.am (guile_LDFLAGS): Remove `@DLPREOPEN@' since it
has no effect.
* libguile/guile.c (main): Don't invoke `LTDL_SET_PRELOADED_SYMBOLS ()'
since it had no effect given how we invoke `libtool'. It also fixes
compatibility issues when using libltdl 1.5 with a Libtool 2.2
package.
* libguile/Makefile.am (stack-limit-calibration.scm): Use $(srcdir), to
support building in a different directory.
(MOSTLYCLEANFILES): Add stack-limit-calibration.scm.
For explanation, see comments and text in the new file
libguile/measure-hwm.scm.
* .gitignore: Add libguile/stack-limit-calibration.scm.
* check-guile.in: Load libguile/stack-limit-calibration.scm.
* configure.in: Add AC_CONFIG_FILES to generate test-use-srfi from
test-use-srfi.in.
* libguile/Makefile.am (TESTS, TESTS_ENVIRONMENT,
stack-limit-calibration.scm): New targets, so that `make check'
calibrates the stack limit before running the Guile test suite.
* libguile/measure-hwm.scm: New file, calibrates stack limit for `make
check'.
* libguile/stackchk.c (scm_sys_get_stack_size): New primitive.
* libguile/stackchk.h (scm_sys_get_stack_size): New primitive
(declaration).
* test-suite/standalone/test-use-srfi: Renamed test-use-srfi.in, so
that ./configure can fill in variables in it.
* test-suite/standalone/test-use-srfi.in: Load
libguile/stack-limit-calibration.scm.