mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-04-30 03:40:34 +02:00
Bump version to 3.9.x
Headed towards a 4.0. The binary format will change slightly but incompatibly (e.g. renumbering of intrinsics). Having a new GC is enough of a change to warrant a minor version bump, and it's been 5 years so why not go major. * GUILE-VERSION (GUILE_EFFECTIVE_VERSION): Bump to 4.0. (GUILE_MICRO_VERSION, GUILE_MINOR_VERSION): Bump to 3.9.0. (LIBGUILE_INTERFACE_CURRENT, LIBGUILE_INTERFACE_AGE): Reset. * meta/guile-4.0.pc.in: * meta/guile-4.0-uninstalled.pc.in: Rename from guile-3.0. * .gitignore: Ignore pkg-config files with 4.0 effective version. * README: Update slightly. * doc/ref/api-evaluation.texi (Load Paths): * doc/ref/api-options.texi (Build Config): * doc/ref/guile-invoke.texi (Environment Variables): * doc/ref/history.texi (A Timeline of Selected Guile Releases): * doc/ref/libguile-parallel.texi (Parallel Installations): * doc/ref/srfi-modules.texi (SRFI-0): Update references to stable version in paths. * module/system/vm/assembler.scm (*bytecode-minor-version*): * libguile/loader.h (SCM_OBJCODE_MAJOR_VERSION): (SCM_OBJCODE_MINIMUM_MINOR_VERSION): (SCM_OBJCODE_MINOR_VERSION): Use the same major objcode version for now but bump the minor to 99. * meta/guile.m4 (GUILE_PKG, GUILE_PROGS): Check for Guile 4.0. * module/ice-9/boot-9.scm (%cond-expand-features): Add new cond-expand features.
This commit is contained in:
parent
27f0490801
commit
7696344634
15 changed files with 45 additions and 38 deletions
4
.gitignore
vendored
4
.gitignore
vendored
|
@ -136,8 +136,8 @@ INSTALL
|
|||
/meta/gdb-uninstalled-guile
|
||||
/meta/guild
|
||||
/meta/guile
|
||||
/meta/guile-3.0.pc
|
||||
/meta/guile-3.0-uninstalled.pc
|
||||
/meta/guile-4.0.pc
|
||||
/meta/guile-4.0-uninstalled.pc
|
||||
/meta/guile-config
|
||||
/meta/uninstalled-env
|
||||
/module/ice-9/eval.go.stamp
|
||||
|
|
|
@ -2,10 +2,10 @@
|
|||
|
||||
# Note: `GUILE_VERSION' is defined in `configure.ac' using `git-version-gen'.
|
||||
GUILE_MAJOR_VERSION=3
|
||||
GUILE_MINOR_VERSION=0
|
||||
GUILE_MICRO_VERSION=10
|
||||
GUILE_MINOR_VERSION=9
|
||||
GUILE_MICRO_VERSION=0
|
||||
|
||||
GUILE_EFFECTIVE_VERSION=3.0
|
||||
GUILE_EFFECTIVE_VERSION=4.0
|
||||
|
||||
|
||||
# All of the shared lib versioning info. Right now, for this to work
|
||||
|
@ -18,7 +18,7 @@ GUILE_EFFECTIVE_VERSION=3.0
|
|||
# '--disable-deprecated' builds. Generally speaking, within a stable
|
||||
# series, you increment CURRENT and AGE and set REVISION to 0.
|
||||
|
||||
LIBGUILE_INTERFACE_CURRENT=8
|
||||
LIBGUILE_INTERFACE_CURRENT=0
|
||||
LIBGUILE_INTERFACE_REVISION=0
|
||||
LIBGUILE_INTERFACE_AGE=7
|
||||
LIBGUILE_INTERFACE_AGE=0
|
||||
LIBGUILE_INTERFACE="${LIBGUILE_INTERFACE_CURRENT}:${LIBGUILE_INTERFACE_REVISION}:${LIBGUILE_INTERFACE_AGE}"
|
||||
|
|
4
README
4
README
|
@ -1,4 +1,4 @@
|
|||
This is version 3.0 of Guile, Project GNU's extension language library.
|
||||
This is version 4.0 of Guile, Project GNU's extension language library.
|
||||
Guile is an implementation of the Scheme programming language, packaged
|
||||
as a library that can be linked into applications to give them their own
|
||||
extension language. Guile supports other languages as well, giving
|
||||
|
@ -279,7 +279,7 @@ switches specific to Guile you may find useful in some circumstances.
|
|||
|
||||
Cross building Guile =====================================================
|
||||
|
||||
As of Guile 3.0.x, the build process produces a library, libguile-3.0,
|
||||
As of Guile 4.0.x, the build process produces a library, libguile-4.0,
|
||||
along with Guile "object files" containing bytecode to be interpreted by
|
||||
Guile's virtual machine. The bytecode format depends on the endianness
|
||||
and word size of the host CPU.
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
@c -*-texinfo-*-
|
||||
@c This is part of the GNU Guile Reference Manual.
|
||||
@c Copyright (C) 1996, 1997, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009,
|
||||
@c 2010, 2011, 2012, 2013, 2014, 2020, 2021 Free Software Foundation, Inc.
|
||||
@c 2010, 2011, 2012, 2013, 2014, 2020, 2021, 2025 Free Software Foundation, Inc.
|
||||
@c See the file guile.texi for copying conditions.
|
||||
|
||||
@node Read/Load/Eval/Compile
|
||||
|
@ -1025,8 +1025,8 @@ When @code{primitive-load-path} searches the @code{%load-compiled-path}
|
|||
for a corresponding compiled file for a relative path it does so by
|
||||
appending @code{.go} to the relative path. For example, searching for
|
||||
@code{ice-9/popen} could find
|
||||
@code{/usr/lib/guile/3.0/ccache/ice-9/popen.go}, and use it instead of
|
||||
@code{/usr/share/guile/3.0/ice-9/popen.scm}.
|
||||
@code{/usr/lib/guile/4.0/ccache/ice-9/popen.go}, and use it instead of
|
||||
@code{/usr/share/guile/4.0/ice-9/popen.scm}.
|
||||
|
||||
If @code{primitive-load-path} does not find a corresponding @code{.go}
|
||||
file in the @code{%load-compiled-path}, or the @code{.go} file is out of
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
@c -*-texinfo-*-
|
||||
@c This is part of the GNU Guile Reference Manual.
|
||||
@c Copyright (C) 1996, 1997, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
|
||||
@c 2008, 2009, 2010, 2011, 2012, 2013
|
||||
@c 2008, 2009, 2010, 2011, 2012, 2013, 2025
|
||||
@c Free Software Foundation, Inc.
|
||||
@c See the file guile.texi for copying conditions.
|
||||
|
||||
|
@ -60,12 +60,12 @@ The @code{effective-version} function returns the version name that
|
|||
should remain unchanged during a stable series. Currently that means
|
||||
that it omits the micro version. The effective version should be used
|
||||
for items like the versioned share directory name
|
||||
i.e.@: @file{/usr/share/guile/3.0/}
|
||||
i.e.@: @file{/usr/share/guile/4.0/}
|
||||
|
||||
@lisp
|
||||
(version) @result{} "3.0.0"
|
||||
(effective-version) @result{} "3.0"
|
||||
(major-version) @result{} "3"
|
||||
(version) @result{} "4.0.0"
|
||||
(effective-version) @result{} "4.0"
|
||||
(major-version) @result{} "4"
|
||||
(minor-version) @result{} "0"
|
||||
(micro-version) @result{} "0"
|
||||
@end lisp
|
||||
|
@ -87,7 +87,7 @@ party package) are installed. On Unix-like systems this is usually
|
|||
@file{/usr/share/guile/@var{GUILE_EFFECTIVE_VERSION}};
|
||||
|
||||
@noindent
|
||||
for example @file{/usr/local/share/guile/3.0}.
|
||||
for example @file{/usr/local/share/guile/4.0}.
|
||||
@end deffn
|
||||
|
||||
@deffn {Scheme Procedure} %site-dir
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
@c -*-texinfo-*-
|
||||
@c This is part of the GNU Guile Reference Manual.
|
||||
@c Copyright (C) 1996-1997,2000-2005,2010-2011,2013-2014,2016,2019,2021-2022
|
||||
@c Copyright (C) 1996-1997,2000-2005,2010-2011,2013-2014,2016,2019,2021-2022,2025
|
||||
@c Free Software Foundation, Inc.
|
||||
@c See the file guile.texi for copying conditions.
|
||||
|
||||
|
@ -375,7 +375,7 @@ Here is an example using the Bash shell that adds the current directory,
|
|||
@example
|
||||
$ export GUILE_LOAD_COMPILED_PATH=".:../my-library"
|
||||
$ guile -c '(display %load-compiled-path) (newline)'
|
||||
(. ../my-library /usr/local/lib/guile/3.0/ccache)
|
||||
(. ../my-library /usr/local/lib/guile/4.0/ccache)
|
||||
@end example
|
||||
|
||||
@item GUILE_LOAD_PATH
|
||||
|
@ -394,8 +394,8 @@ directory to @code{%load-path}, and adds the relative directory
|
|||
@example
|
||||
$ env GUILE_LOAD_PATH=".:...:../srfi" \
|
||||
guile -c '(display %load-path) (newline)'
|
||||
(. /usr/local/share/guile/3.0 \
|
||||
/usr/local/share/guile/site/3.0 \
|
||||
(. /usr/local/share/guile/4.0 \
|
||||
/usr/local/share/guile/site/4.0 \
|
||||
/usr/local/share/guile/site \
|
||||
/usr/local/share/guile \
|
||||
../srfi)
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
@c -*-texinfo-*-
|
||||
@c This is part of the GNU Guile Reference Manual.
|
||||
@c Copyright (C) 2008, 2010, 2011, 2013, 2018, 2020
|
||||
@c Copyright (C) 2008, 2010, 2011, 2013, 2018, 2020, 2025
|
||||
@c Free Software Foundation, Inc.
|
||||
@c See the file guile.texi for copying conditions.
|
||||
|
||||
|
@ -230,6 +230,9 @@ inlining of top-level bindings, better closure optimization, and better
|
|||
unboxing of integer and floating-point values. R7RS support was added,
|
||||
and R6RS support improved. The exception facility (throw and catch) was
|
||||
rewritten in terms of SRFI-34 exception handlers.
|
||||
|
||||
@item 4.0 -- 2025?
|
||||
Not yet released. New garbage collector.
|
||||
@end table
|
||||
|
||||
@node Status
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
@c -*-texinfo-*-
|
||||
@c This is part of the GNU Guile Reference Manual.
|
||||
@c Copyright (C) 1996, 1997, 2000, 2001, 2002, 2003, 2004, 2005, 2010, 2011,
|
||||
@c 2013-2014, 2021 Free Software Foundation, Inc.
|
||||
@c 2013-2014, 2021, 2025 Free Software Foundation, Inc.
|
||||
@c See the file guile.texi for copying conditions.
|
||||
|
||||
@node Parallel Installations
|
||||
|
@ -27,7 +27,7 @@ need to know which version of Guile to ask for, when they build against
|
|||
Guile. Guile solves this problem by installing a file to be read by the
|
||||
@code{pkg-config} utility, a tool to query installed packages by name.
|
||||
Guile encodes the version into its pkg-config name, so that users can
|
||||
ask for @code{guile-2.2} or @code{guile-3.0}, as appropriate.
|
||||
ask for @code{guile-3.0} or @code{guile-4.0}, as appropriate.
|
||||
|
||||
For effective version @value{EFFECTIVE-VERSION}, for example, you would
|
||||
invoke @code{pkg-config --cflags --libs guile-@value{EFFECTIVE-VERSION}}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
@c -*-texinfo-*-
|
||||
@c This is part of the GNU Guile Reference Manual.
|
||||
@c Copyright (C) 1996-1997, 2000-2004, 2006-2014, 2017-2020, 2023
|
||||
@c Copyright (C) 1996-1997, 2000-2004, 2006-2014, 2017-2020, 2023, 2025
|
||||
@c Free Software Foundation, Inc.
|
||||
@c Copyright (C) 2005-2006 Per Bothner
|
||||
@c See the file guile.texi for copying conditions.
|
||||
|
@ -157,6 +157,8 @@ guile-2 ;; starting from Guile 2.x
|
|||
guile-2.2 ;; starting from Guile 2.2
|
||||
guile-3 ;; starting from Guile 3.x
|
||||
guile-3.0 ;; starting from Guile 3.0
|
||||
guile-4 ;; starting from Guile 4.x
|
||||
guile-4.0 ;; starting from Guile 4.0
|
||||
r5rs
|
||||
r6rs
|
||||
r7rs
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* Copyright 2001,2009-2015,2018,2020,2021,2023
|
||||
/* Copyright 2001,2009-2015,2018,2020,2021,2023,2025
|
||||
Free Software Foundation, Inc.
|
||||
|
||||
This file is part of Guile.
|
||||
|
@ -38,9 +38,9 @@
|
|||
#define SCM_OBJCODE_WORD_SIZE SCM_CPP_STRINGIFY (SIZEOF_VOID_P)
|
||||
|
||||
/* Major and minor versions must be single characters. */
|
||||
#define SCM_OBJCODE_MAJOR_VERSION 4
|
||||
#define SCM_OBJCODE_MINIMUM_MINOR_VERSION 2
|
||||
#define SCM_OBJCODE_MINOR_VERSION 7
|
||||
#define SCM_OBJCODE_MAJOR_VERSION 3
|
||||
#define SCM_OBJCODE_MINIMUM_MINOR_VERSION 99
|
||||
#define SCM_OBJCODE_MINOR_VERSION 99
|
||||
#define SCM_OBJCODE_MAJOR_VERSION_STRING \
|
||||
SCM_CPP_STRINGIFY(SCM_OBJCODE_MAJOR_VERSION)
|
||||
#define SCM_OBJCODE_MINOR_VERSION_STRING \
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
## Autoconf macros for working with Guile.
|
||||
##
|
||||
## Copyright (C) 1998,2001, 2006, 2010, 2012, 2013, 2014, 2020 Free Software Foundation, Inc.
|
||||
## Copyright (C) 1998,2001, 2006, 2010, 2012, 2013, 2014, 2020, 2025 Free Software Foundation, Inc.
|
||||
##
|
||||
## This library is free software; you can redistribute it and/or
|
||||
## modify it under the terms of the GNU Lesser General Public License
|
||||
|
@ -47,8 +47,8 @@
|
|||
# for an available version of Guile.
|
||||
#
|
||||
# By default, this macro will search for the latest stable version of
|
||||
# Guile (e.g. 3.0), falling back to the previous stable version
|
||||
# (e.g. 2.2) if it is available. If no guile-@var{VERSION}.pc file is
|
||||
# Guile (e.g. 4.0), falling back to the previous stable version
|
||||
# (e.g. 3.0) if it is available. If no guile-@var{VERSION}.pc file is
|
||||
# found, an error is signaled. The found version is stored in
|
||||
# @var{GUILE_EFFECTIVE_VERSION}.
|
||||
#
|
||||
|
@ -64,7 +64,7 @@ AC_DEFUN([GUILE_PKG],
|
|||
if test "x$PKG_CONFIG" = x; then
|
||||
AC_MSG_ERROR([pkg-config is missing, please install it])
|
||||
fi
|
||||
_guile_versions_to_search="m4_default([$1], [3.0 2.2 2.0])"
|
||||
_guile_versions_to_search="m4_default([$1], [4.0 3.0])"
|
||||
if test -n "$GUILE_EFFECTIVE_VERSION"; then
|
||||
_guile_tmp=""
|
||||
for v in $_guile_versions_to_search; do
|
||||
|
@ -224,7 +224,7 @@ AC_DEFUN([GUILE_SITE_DIR],
|
|||
# as well.
|
||||
#
|
||||
# By default, this macro will search for the latest stable version of
|
||||
# Guile (e.g. 3.0). x.y or x.y.z versions can be specified. If an older
|
||||
# Guile (e.g. 4.0). x.y or x.y.z versions can be specified. If an older
|
||||
# version is found, the macro will signal an error.
|
||||
#
|
||||
# The effective version of the found @code{guile} is set to
|
||||
|
@ -240,7 +240,7 @@ AC_DEFUN([GUILE_SITE_DIR],
|
|||
AC_DEFUN([GUILE_PROGS],
|
||||
[_guile_required_version="m4_default([$1], [$GUILE_EFFECTIVE_VERSION])"
|
||||
if test -z "$_guile_required_version"; then
|
||||
_guile_required_version=3.0
|
||||
_guile_required_version=4.0
|
||||
fi
|
||||
|
||||
_guile_candidates=guile
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
;;; -*- mode: scheme; coding: utf-8; -*-
|
||||
|
||||
;;;; Copyright (C) 1995-2014, 2016-2024 Free Software Foundation, Inc.
|
||||
;;;; Copyright (C) 1995-2014, 2016-2025 Free Software Foundation, Inc.
|
||||
;;;;
|
||||
;;;; This library is free software; you can redistribute it and/or
|
||||
;;;; modify it under the terms of the GNU Lesser General Public
|
||||
|
@ -4488,6 +4488,8 @@ when none is available, reading FILE-NAME with READER."
|
|||
guile-2.2
|
||||
guile-3
|
||||
guile-3.0
|
||||
guile-4
|
||||
guile-4.0
|
||||
r5rs
|
||||
r6rs
|
||||
r7rs
|
||||
|
|
|
@ -2323,7 +2323,7 @@ needed."
|
|||
|
||||
;; FIXME: Define these somewhere central, shared with C.
|
||||
(define *bytecode-major-version* #x0300)
|
||||
(define *bytecode-minor-version* 7)
|
||||
(define *bytecode-minor-version* 99)
|
||||
|
||||
(define (link-dynamic-section asm text rw rw-init frame-maps)
|
||||
"Link the dynamic section for an ELF image with bytecode @var{text},
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue