1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-04-29 19:30:36 +02:00
Commit graph

129 commits

Author SHA1 Message Date
Werner Lemberg
25c9440e4d
Add LIB_GETRANDOM to Libs.private in .pc files
The omission was discovered while cross-compiling LilyPond with mingw
11.0.1: without this addition, linking with libguile causes the error

  undefined reference to `BCryptGenRandom'

* meta/Makefile.am (dependency_substitutions): Add ‘LIB_GETRANDOM’.
* meta/guile-3.0-uninstalled.pc.in (Libs.private): Likewise.
* meta/guile-3.0.pc.in (Libs.private): Likewise.
* NEWS: Update.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-02-28 22:12:03 +01:00
Andy Wingo
1120efe375 Fix race in check-guile to make needless guile-procedures symlink
* check-guile.in (top_srcdir): Don't try to make guile-procedures.tx, as
this races with multiple checkers, and it's gross.
* meta/uninstalled-env.in (GUILE_DOCSTRINGS_PATH): Instead when
uninstalled, use this variable.
* module/ice-9/documentation.scm (documentation-files): Remove the
current directory from the search path for documentation files; this was
always a hack.  Instead allow GUILE_DOCSTRINGS_PATH to override the
built-in search path.
2024-06-23 11:13:18 +02:00
Arsen Arsenović
ddc5e63b00 build: Use PKG_INSTALL_DIR
This allows users to adjust their pkg-config install location.

* configure.ac: Call PKG_INSTALLDIR.
* meta/Makefile.am (pkgconfigdir): Remove.  It will be defined
automatically by the PKG_INSTALLDIR invocation.
2024-06-18 16:12:11 +02:00
Morgan Smith
c7d170c5d1
Fix typos throughout codebase.
* NEWS:
* README:
* doc/r5rs/r5rs.texi:
* doc/ref/api-data.texi:
* doc/ref/api-debug.texi:
* doc/ref/api-evaluation.texi:
* doc/ref/api-io.texi:
* doc/ref/api-macros.texi:
* doc/ref/api-procedures.texi:
* doc/ref/api-scheduling.texi:
* doc/ref/api-undocumented.texi:
* doc/ref/libguile-concepts.texi:
* doc/ref/posix.texi:
* doc/ref/srfi-modules.texi:
* doc/ref/vm.texi:
* doc/ref/web.texi:
* examples/box-dynamic-module/box.c:
* examples/box-dynamic/box.c:
* examples/box-module/box.c:
* examples/box/box.c:
* examples/safe/safe:
* examples/scripts/README:
* examples/scripts/hello:
* gc-benchmarks/larceny/twobit-input-long.sch:
* gc-benchmarks/larceny/twobit-smaller.sch:
* gc-benchmarks/larceny/twobit.sch:
* libguile/expand.c:
* libguile/load.c:
* libguile/net_db.c:
* libguile/scmsigs.c:
* libguile/srfi-14.c:
* libguile/threads.c:
* meta/guile.m4:
* module/ice-9/match.upstream.scm:
* module/ice-9/ports.scm:
* module/language/cps/graphs.scm:
* module/scripts/doc-snarf.scm:
* module/srfi/srfi-19.scm:
* module/system/repl/command.scm:
* test-suite/tests/srfi-18.test:
Fix typos.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-07-16 22:09:01 +02:00
Andy Wingo
9b9149a5bf Rework bootstrap to be reproducible
* configure.ac:
* Makefile.am (SUBDIRS): Replace bootstrap/ with stage0, stage1, and
stage2.
* am/bootstrap.am: Include all files and all rules.
* meta/build-env.in (GUILE_AUTO_COMPILE): Always turn off
auto-compilation.  Take a GUILE_BOOTSTRAP_STAGE argument, which can be
stage0, stage1, stage2, or unset.  Adapt the load-compiled path
accordingly.
* meta/uninstalled-env.in: Include .go files from stage2.
* module/Makefile.am: Rework to use boostrap.am.
* module/system/base/optimize.scm (available-optimizations): Punt the
inlinable-exports machinery to -O2.
* stage0/Makefile.am:
* stage1/Makefile.am:
* stage2/Makefile.am: New files.
2022-02-01 14:50:40 +01:00
Andy Wingo
aa5455ea98 Bignums avoid both custom GMP allocator and finalizers
* libguile/deprecated.c (make_bignum): Move here from numbers.c, to
support scm_i_long2big etc.
(scm_i_big2dbl):
(scm_i_long2big):
(scm_i_ulong2big):
(scm_i_clonebig):
(scm_i_normbig): Deprecate.
(scm_install_gmp_memory_functions): Deprecate, happily!  SCM bignums now
have digits allocated inline with the bignum itself, so they are
completely transparent to the GC already.  The price is that if GMP ever
allocates digits via the MPZ API, those digits then have to be copied
back into managed memory.  But we avoid having to install finalizers and
we avoid having to muck with GMP's allocator.
* libguile/numbers.c (scm_from_mpz): Use scm_integer_from_mpz.
(scm_init_numbers): Never muck with GMP's allocators.
* doc/ref/guile-invoke.texi (Environment Variables): Remove note about
GUILE_INSTALL_GMP_MEMORY_FUNCTIONS.
* meta/build-env.in: No need to set GUILE_INSTALL_GMP_MEMORY_FUNCTIONS.
2022-01-13 09:37:17 +01:00
Andy Wingo
75babf8df9 Add GUILE_INSTALL_GMP_MEMORY_FUNCTIONS to NEWS; use at build-time
* NEWS (GUILE_INSTALL_GMP_MEMORY_FUNCTIONS): Update
* libguile/numbers.c: Add needed include.
* meta/build-env.in (GUILE_INSTALL_GMP_MEMORY_FUNCTIONS): Set when
building Guile.
2021-04-27 21:23:08 +02:00
Ludovic Courtès
449f50dd84 meta: Increment serial number in 'guile.m4'.
* meta/guile.m4: Bump "serial", for all the changes made since commit
5ad3881631 (2010).
2020-08-24 15:19:14 +02:00
Mathieu Lirzin
02a31d6885 GUILE_PKG bails out when 'pkg-config' is missing
* meta/guile.m4 (GUILE_PKG): Ensure that 'pkg-config' is available. Use
AC_REQUIRE for PKG_PROG_PKG_CONFIG to avoid unnecessary invocations.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2020-05-27 22:25:28 +02:00
Andy Wingo
0ad3986504 GUILE_PKG finds guile-3.0
* meta/guile.m4 (GUILE_PKG): Drop 1.8 from default versions to look for,
  and add 3.0.
2020-03-03 21:25:22 +01:00
Andy Wingo
3e22eef52c Fix guile-config for Guile 3.0
* meta/guile-config.in (guile-module): Use pkg-config for effective
  version.
2018-10-07 16:59:34 +02:00
Andy Wingo
cfe2279fea Merge remote-tracking branch 'origin/stable-2.2' 2017-05-31 21:54:26 +02:00
Andy Wingo
9846178c69 Update guile.m4 to check for 2.2 by default
* meta/guile.m4 (GUILE_PKG): Update default Guile versions to 2.2.
2017-05-31 21:52:15 +02:00
Andy Wingo
96bb1b50e1 guile.m4 fix for 3.0 prereleases
* meta/guile.m4 (GUILE_PROGS): Allow prereleases of Guile with a new
  major version.
2017-05-31 21:51:22 +02:00
Andy Wingo
5b5acba03d guile.m4 fix for 3.0 prereleases
* meta/guile.m4 (GUILE_PROGS): Allow prereleases of Guile with a new
  major version.
2017-05-31 21:50:09 +02:00
Andy Wingo
b2c0e01bb4 Update effective version to 3.0
* GUILE-VERSION: Bump version to 2.3.0, and effective version to 3.0.
* .gitignore:
* README:
* doc/guile.1:
* doc/ref/api-evaluation.texi:
* doc/ref/api-options.texi:
* doc/ref/guile-invoke.texi:
* doc/ref/libguile-foreign-objects.texi:
* doc/ref/libguile-parallel.texi:
* doc/ref/srfi-modules.texi: Update to 3.0.
* libguile/_scm.h (SCM_OBJCODE_MAJOR_VERSION):
(SCM_OBJCODE_MINIMUM_MINOR_VERSION, SCM_OBJCODE_MINOR_VERSION): Bump
bytecode version for fallback path.
* libguile/loader.c: Update to avoid loading version 2.2 bytecode
files.
* meta/guile-3.0-uninstalled.pc.in:
* meta/guile-3.0.pc.in: Rename.
* module/system/vm/assembler.scm (*bytecode-major-version*):
(*bytecode-minor-version*): Write the new bytecode version.
2017-05-22 14:15:40 +02:00
Freja Nordsiek
30814fc64b GUILE_SITE_DIR: Update to find compiled site directories
* meta/guile.m4 (GUILE_SITE_DIR): Update to find compiled site
  directories.
* meta/guile-2.2.pc.in: Add entry for site-ccache directory.
2017-03-15 08:50:26 +01:00
Freja Nordsiek
036cc149e6 Fixed reversed version order bug in GUILE_PROGS Autoconf macro.
* meta/guile.m4 (GUILE_PROGS): Build version in correct order.
2017-03-14 15:42:38 +01:00
Andy Wingo
c50c3a47b3 configure detects which set of prebuilt binaries to use
* 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.
2017-03-14 09:49:17 +01:00
Freja Nordsiek
b6d3ab6c0f Fixed specific version of guile search in autoconf macro GUILE_PROGS.
* meta/guile.m4 (GUILE_PROGS): Search for guile with suffixes
  first ('-X.Y' and 'X.Y' where X.Y denotes the version) before
  searching for guile with no suffix.  Patch co-authored by Andy Wingo.
2017-02-23 10:38:44 +01:00
Andy Wingo
867316ffcd build-env: prebuilt .go files are in srcdir
* meta/build-env.in (GUILE_LOAD_COMPILED_PATH): Look for prebuilt files
  in the srcdir, not the builddir.
2016-07-11 09:26:25 +02:00
Andy Wingo
38f23e75a5 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.
2016-07-10 14:10:26 +02:00
Andy Wingo
e264117e1b Fix uninstalled-env bug that put prebuilt/ in front
* meta/uninstalled-env.in (top_builddir): Fix bug whereby
  meta/uninstalled-env run within meta-uninstalled-env, as happens
  sometimes, would move the prebuilt dir to the front.
2016-06-27 22:47:06 +02:00
David Pirotte
ed39782c2a Fixing GUILE_PROGS wrong versioning checks
* meta/guile.m4: Fixing GUILE_PROGS versioning checks were wrong and
  incomplete, leading to false errors like: "... checking for Guile
  version >= 2.0.11... configure: error: Guile 2.0.11 required, but
  2.1.3 found".

  thanks to Colomban Wendling, aka b4n, who also suggested this fix
  during a chat on #autotools while helping me wrt another autotool
  related problem I was nvestigating.
2016-06-27 10:07:13 +02:00
Andy Wingo
eccdeb6cc6 Distribute prebuilt bootstraps for common hosts
* am/bootstrap.am: New file, factored out of bootstrap/Makefile.am.
* bootstrap/Makefile.am: Use bootstrap.am.

* prebuilt/Makefile.am:
* prebuilt/i686-pc-linux-gnu/Makefile.am:
* prebuilt/mips-unknown-linux-gnu/Makefile.am:
* prebuilt/x86_64-unknown-linux-gnu/Makefile.am: New files.

* configure.ac: Output the prebuilt/ makefiles.
* Makefile.am: Descend into prebuilt/ when making dist.

* meta/uninstalled-env.in: Arrange to put prebuilt/ in the beginning of
  the GUILE_LOAD_COMPILED_PATH.  Also fix a case where bootstrap/ wasn't
  being correctly added to the load path.
2016-01-29 10:21:44 +01:00
Andy Wingo
4339cb9fc1 Fix uninstalled-env bug that preferred bootstrap/ to module/
* meta/uninstalled-env.in (top_builddir): Whoops!  We were
  preferring bootstrap/ unoptimized .go files to module/ optimized .go
  files.  Fix!
2015-10-25 11:46:58 +00:00
Andy Wingo
5f4ac529e1 Use a bootstrapped -O0 compiler to compile the -O2 Guile
This reduces total build time to around 30 minutes or so.

* Makefile.am (SUBDIRS): Visit bootstrap/ before module/.

* bootstrap/Makefile.am: New file.

* configure.ac: Generate bootstrap/Makefile.

* meta/uninstalled-env.in (top_builddir): Add bootstrap/ to the
  GUILE_LOAD_COMPILED_PATH.

* module/Makefile.am: Simplify to just sort files in alphabetical order;
  since bootstrap/ was already compiled, we don't need to try to
  optimize compilation order.  Although the compiler will get faster as
  more of the compiler itself is optimized, this isn't a significant
  enough effect to worry about.
2015-10-23 13:29:03 +00:00
Mark H Weaver
9331f40a2d build: Use pipe symbol instead of comma for substitutions.
* meta/Makefile.am (substitute): Use pipe symbol instead of comma for
  substitutions.
2015-03-07 00:13:36 -05:00
Andy Wingo
1fc3fc11ff Merge commit '47ca15c7df' 2015-01-22 13:33:07 +01:00
Andy Wingo
7c6ce75e2c Merge commit '7c433cbbce'
Conflicts:
	meta/Makefile.am
2015-01-22 13:32:59 +01:00
Andy Wingo
12dfe6568c Merge commit '5fac1a7ada'
Conflicts:
	configure.ac
	doc/ref/libguile-parallel.texi
2015-01-22 13:30:25 +01:00
Andy Wingo
086bbcc874 Merge commit 'fdd319e9bd' 2015-01-22 13:04:34 +01:00
Ludovic Courtès
47ca15c7df build: Better handle substitutions in 'guile-2.0.pc' & co.
* meta/Makefile.am (dependency_substitutions): Use '|' as the separate
  instead of ','.  See <http://hydra.nixos.org/build/17684751>.
2014-12-06 15:57:23 +01:00
Ludovic Courtès
7c433cbbce build: Add missing substitutions for 'guile-2.0.pc'.
This is a followup to 5fac1a7.

* meta/Makefile.am (substitute): Add GUILE_* and LIBGUILE_* substitutions,
  and $(dependency_substitutions).
  (dependency_substitutions): New variable.
2014-12-03 23:09:12 +01:00
Ludovic Courtès
5fac1a7ada Add the 'guild' and 'guile' variables to 'guile-2.0.pc'.
* configure.ac: Remove meta/guile-2.0.pc and
  meta/guile-2.0-uninstalled.pc from 'AC_CONFIG_FILES'.
* meta/Makefile.am (substitute): New variable.
  (guile-2.0.pc, guile-2.0-uninstalled.pc): New targets.
  (guile-config, guild): Use $(substitute) instead of duplicated sed
  script.
  (CLEANFILES): Add the .pc files.
* meta/guile-2.0.pc.in (bindir, guild, guile): New variables.
* doc/ref/libguile-parallel.texi (Parallel Installations): Document the
  'guild' and 'guile' pkg-config variables.
2014-12-03 18:59:36 +01:00
Thomas Klausner
03242f398f Avoid bash-specific '==' comparison operator in guile.m4.
Fixes <http://bugs.gnu.org/18898>.

* meta/guile.m4 (GUILE_PROGS): Use '=' instead of the bash-specific '=='
  comparison operator in 'test' call.
2014-11-11 22:43:51 -05:00
Ludovic Courtès
fd584ec670 build: Clean up rules for meta/{guild,guile-config}.
* meta/Makefile.am (guile-config, guild): Avoid useless 'cat'
  invocation'.  Quote all occurrences of '@'.
  Suggested by Eric Blake <eblake@redhat.com>.
2014-04-24 23:49:26 +02:00
Ludovic Courtès
7a85f2b68c build: Clean up rules for meta/{guild,guile-config}.
* meta/Makefile.am (guile-config, guild): Avoid useless 'cat'
  invocation'.  Quote all occurrences of '@'.
  Suggested by Eric Blake <eblake@redhat.com>.
2014-04-24 23:46:20 +02:00
Ludovic Courtès
4a81f5b5d3 build: Honor program name transformation in 'guild'.
* configure.ac: Remove erroneous 'guile_program_name' substitute; see
  <https://lists.gnu.org/archive/html/autoconf/2014-04/msg00010.html>
  for details.  Remove 'meta/guild' config file.
* meta/Makefile.am (guild): New target.
  (CLEANFILES): Add 'guild'.
* meta/guild.in: Remove 'prefix' and 'exec_prefix' definitions; use
  @installed_guile@.
2014-04-24 11:55:27 +02:00
Ludovic Courtès
d80b6acf19 build: Honor program name transformation in 'guild'.
* configure.ac: Remove erroneous 'guile_program_name' substitute; see
  <https://lists.gnu.org/archive/html/autoconf/2014-04/msg00010.html>
  for details.  Remove 'meta/guild' config file.
* meta/Makefile.am (guild): New target.
  (CLEANFILES): Add 'guild'.
* meta/guild.in: Remove 'prefix' and 'exec_prefix' definitions; use
  @installed_guile@.
2014-04-24 11:51:19 +02:00
Andy Wingo
b61025ce0f guile.m4 tweaks
* meta/guile.m4 (GUILE_PKG): Don't print "checking for guile 2.0" if
  we've already found 2.2.  Print the correct effective version at the
  end.
  (GUILE_PROGS): Allow prereleases, whose micro version does not yet
  match the effective version.  Default to the already-chosen effective
  version.
2014-02-11 22:49:01 -05:00
Andy Wingo
fc3192dc8e guile.m4 tweaks
* meta/guile.m4 (GUILE_PKG): Don't print "checking for guile 2.0" if
  we've already found 2.2.  Print the correct effective version at the
  end.
  (GUILE_PROGS): Allow prereleases, whose micro version does not yet
  match the effective version.  Default to the already-chosen effective
  version.
2014-02-11 20:59:38 +01:00
Mark H Weaver
1df515a077 Merge branch 'stable-2.0'
Conflicts:
	module/system/vm/traps.scm
	test-suite/tests/peval.test
2014-01-09 02:52:34 -05:00
Aleix Conchillo Flaque
ecf0498df5 allow specifying a required version in GUILE_PROGS
* meta/guile.m4: GUILE_PROGS now takes an optional argument to specify a
  required Guile version. By default, it requires Guile >= 2.0. A micro
  version can also be specified (e.g. GUILE_PROGS([2.0.10])).

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2013-12-21 22:01:45 +01:00
Mark H Weaver
f6f4feb0a2 Merge remote-tracking branch 'origin/stable-2.0'
Conflicts:
	GUILE-VERSION
	libguile/array-map.c
	libguile/fports.h
	libguile/gc.h
	libguile/inline.h
	libguile/ports.c
	libguile/ports.h
	libguile/print.c
	libguile/r6rs-ports.c
	libguile/read.c
	test-suite/tests/00-socket.test
2013-04-14 02:48:33 -04:00
Mark H Weaver
dac5e6491b Do not add $(EXEEXT) to guild or guile-tools.
* meta/Makefile.am (install-exec-hook): Do not add $(EXEEXT) to guild or
  guile-tools.
2013-04-10 09:02:47 -04:00
Mark H Weaver
26d148066f Merge remote-tracking branch 'origin/stable-2.0'
Conflicts:
	configure.ac
	libguile/deprecated.c
	libguile/deprecated.h
	libguile/filesys.h
	libguile/fluids.c
	libguile/fports.c
	libguile/gc.c
	libguile/guile.c
	libguile/numbers.c
	libguile/objcodes.c
	libguile/r6rs-ports.c
	libguile/smob.c
	libguile/socket.c
	libguile/threads.h
	module/language/scheme/decompile-tree-il.scm
	module/language/tree-il/peval.scm
	test-suite/tests/syncase.test
2013-03-28 05:09:53 -04:00
Ludovic Courtès
570fdeceac build: Use portable sed constructs.
Partly fixes <http://bugs.gnu.org/14042>.
Reported by Marc Girod <marc.girod@gmail.com>.

* meta/Makefile.am (guile-config): Use separate "s" expressions to
  accommodate Solaris sed.
2013-03-25 22:27:37 +01:00
Andy Wingo
ccd0ae1fbb guile.m4 allows selection of guile 2.0, 1.8, etc.
* meta/guile.m4 (GUILE_PKG): New macro, chooses a version of Guile
  against which to compile.
  (GUILE_FLAGS, GUILE_PROGS): Rewrite to call GUILE_PKG as necessary, to
  respect any previous call to GUILE_PKG, and to not require
  guile-tools.
2013-03-10 23:34:50 +01:00
Andy Wingo
9ddf06dcee fix in-tree guile reference
* meta/guile.in (GUILE): Add @EXEEXT@ for libguile/guile reference, for
  MinGW compiles.
2013-03-09 10:29:57 +01:00