guile-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Guile-commits] 02/04: Update effective version to 3.0


From: Andy Wingo
Subject: [Guile-commits] 02/04: Update effective version to 3.0
Date: Mon, 22 May 2017 11:35:54 -0400 (EDT)

wingo pushed a commit to branch master
in repository guile.

commit b2c0e01bb48bea1876e8cb26e0f5ffac17069e9d
Author: Andy Wingo <address@hidden>
Date:   Mon May 22 14:13:20 2017 +0200

    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.
---
 .gitignore                                                |  4 ++--
 GUILE-VERSION                                             | 10 +++++-----
 README                                                    | 12 ++++++------
 doc/guile.1                                               |  2 +-
 doc/ref/api-evaluation.texi                               |  4 ++--
 doc/ref/api-options.texi                                  | 12 ++++++------
 doc/ref/guile-invoke.texi                                 |  6 +++---
 doc/ref/libguile-foreign-objects.texi                     | 12 +++++-------
 doc/ref/libguile-parallel.texi                            |  2 +-
 doc/ref/srfi-modules.texi                                 |  1 +
 libguile/_scm.h                                           |  6 +++---
 libguile/loader.c                                         | 15 ++++++++-------
 meta/Makefile.am                                          |  2 +-
 ...-2.2-uninstalled.pc.in => guile-3.0-uninstalled.pc.in} |  0
 meta/{guile-2.2.pc.in => guile-3.0.pc.in}                 |  0
 module/system/vm/assembler.scm                            |  4 ++--
 16 files changed, 46 insertions(+), 46 deletions(-)

diff --git a/.gitignore b/.gitignore
index 36f8972..dc8eeda 100644
--- a/.gitignore
+++ b/.gitignore
@@ -67,8 +67,8 @@ guile-procedures.txt
 guile-config/guile-config
 *.go
 TAGS
-/meta/guile-2.2.pc
-/meta/guile-2.2-uninstalled.pc
+/meta/guile-3.0.pc
+/meta/guile-3.0-uninstalled.pc
 gdb-pre-inst-guile
 cscope.out
 cscope.files
diff --git a/GUILE-VERSION b/GUILE-VERSION
index 223a293..a44c254 100644
--- a/GUILE-VERSION
+++ b/GUILE-VERSION
@@ -2,10 +2,10 @@
 
 # Note: `GUILE_VERSION' is defined in `configure.ac' using `git-version-gen'.
 GUILE_MAJOR_VERSION=2
-GUILE_MINOR_VERSION=2
-GUILE_MICRO_VERSION=2
+GUILE_MINOR_VERSION=3
+GUILE_MICRO_VERSION=0
 
-GUILE_EFFECTIVE_VERSION=2.2
+GUILE_EFFECTIVE_VERSION=3.0
 
 
 # All of the shared lib versioning info.  Right now, for this to work
@@ -16,7 +16,7 @@ GUILE_EFFECTIVE_VERSION=2.2
 # See libtool info pages for more information on how and when to
 # change these.
 
-LIBGUILE_INTERFACE_CURRENT=3
+LIBGUILE_INTERFACE_CURRENT=0
 LIBGUILE_INTERFACE_REVISION=0
-LIBGUILE_INTERFACE_AGE=2
+LIBGUILE_INTERFACE_AGE=0
 
LIBGUILE_INTERFACE="${LIBGUILE_INTERFACE_CURRENT}:${LIBGUILE_INTERFACE_REVISION}:${LIBGUILE_INTERFACE_AGE}"
diff --git a/README b/README
index 575ea5c..2636a7f 100644
--- a/README
+++ b/README
@@ -1,8 +1,8 @@
-This is version 2.2 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
-users of Guile-based applications a choice of languages.
+This is a prerelease of version 3.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 users of Guile-based applications a choice of languages.
 
 Please send bug reports to address@hidden
 
@@ -257,7 +257,7 @@ switches specific to Guile you may find useful in some 
circumstances.
 
 Cross building Guile  =====================================================
 
-As of Guile 2.2.x, the build process produces a library, libguile-2.2,
+As of Guile 3.0.x, the build process produces a library, libguile-3.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.
diff --git a/doc/guile.1 b/doc/guile.1
index 7b3d232..6097ac2 100644
--- a/doc/guile.1
+++ b/doc/guile.1
@@ -4,7 +4,7 @@
 .\" groff -man -Tascii foo.1
 .\"
 .\" title section date source manual
-.TH GUILE 1 "2011-03-04" GNU "GNU Guile 2.2"
+.TH GUILE 1 "2017-05-22" GNU "GNU Guile 3.0"
 .
 .SH NAME
 guile \- The GNU Project Extension Language
diff --git a/doc/ref/api-evaluation.texi b/doc/ref/api-evaluation.texi
index 7a4c8c9..98593ce 100644
--- a/doc/ref/api-evaluation.texi
+++ b/doc/ref/api-evaluation.texi
@@ -935,8 +935,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
address@hidden/usr/lib/guile/2.2/ccache/ice-9/popen.go}, and use it instead of
address@hidden/usr/share/guile/2.2/ice-9/popen.scm}.
address@hidden/usr/lib/guile/3.0/ccache/ice-9/popen.go}, and use it instead of
address@hidden/usr/share/guile/3.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
diff --git a/doc/ref/api-options.texi b/doc/ref/api-options.texi
index 0259b4b..4a9125e 100644
--- a/doc/ref/api-options.texi
+++ b/doc/ref/api-options.texi
@@ -60,13 +60,13 @@ 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/2.2/}
+i.e.@: @file{/usr/share/guile/3.0/}
 
 @lisp
-(version) @result{} "2.2.0"
-(effective-version) @result{} "2.2"
-(major-version) @result{} "2"
-(minor-version) @result{} "2"
+(version) @result{} "3.0.0"
+(effective-version) @result{} "3.0"
+(major-version) @result{} "3"
+(minor-version) @result{} "0"
 (micro-version) @result{} "0"
 @end lisp
 @end deffn
@@ -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/2.2}.
+for example @file{/usr/local/share/guile/3.0}.
 @end deffn
 
 @deffn {Scheme Procedure} %site-dir
diff --git a/doc/ref/guile-invoke.texi b/doc/ref/guile-invoke.texi
index a18984f..171a30a 100644
--- a/doc/ref/guile-invoke.texi
+++ b/doc/ref/guile-invoke.texi
@@ -373,7 +373,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/2.2/ccache)
+(. ../my-library /usr/local/lib/guile/3.0/ccache)
 @end example
 
 @item GUILE_LOAD_PATH
@@ -392,8 +392,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/2.2 \
-/usr/local/share/guile/site/2.2 \
+(. /usr/local/share/guile/3.0 \
+/usr/local/share/guile/site/3.0 \
 /usr/local/share/guile/site \
 /usr/local/share/guile \
 ../srfi)
diff --git a/doc/ref/libguile-foreign-objects.texi 
b/doc/ref/libguile-foreign-objects.texi
index 29e1f86..0603496 100644
--- a/doc/ref/libguile-foreign-objects.texi
+++ b/doc/ref/libguile-foreign-objects.texi
@@ -276,13 +276,11 @@ make_file (int fd)
 @cindex finalization
 
 Note that the finalizer may be invoked in ways and at times you might
-not expect.  In particular, if the user's Guile is built with support
-for threads, the finalizer may be called from any thread that is running
-Guile.  In Guile 2.0, finalizers are invoked via ``asyncs'', which
-interleaves them with running Scheme code; @pxref{Asyncs}.  In Guile 2.2
-there will be a dedicated finalization thread, to ensure that the
-finalization doesn't run within the critical section of any other thread
-known to Guile.
+not expect.  In a Guile built without threading support, finalizers are
+invoked via ``asyncs'', which interleaves them with running Scheme code;
address@hidden  If the user's Guile is built with support for threads,
+the finalizer will probably be called by a dedicated finalization
+thread, unless the user invokes @code{scm_run_finalizers ()} explicitly.
 
 In either case, finalizers run concurrently with the main program, and
 so they need to be async-safe and thread-safe.  If for some reason this
diff --git a/doc/ref/libguile-parallel.texi b/doc/ref/libguile-parallel.texi
index 166766e..75fcd88 100644
--- a/doc/ref/libguile-parallel.texi
+++ b/doc/ref/libguile-parallel.texi
@@ -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.0} or @code{guile-2.2}, as appropriate.
+ask for @code{guile-2.2} or @code{guile-3.0}, as appropriate.
 
 For effective version @value{EFFECTIVE-VERSION}, for example, you would
 invoke @code{pkg-config --cflags --libs address@hidden
diff --git a/doc/ref/srfi-modules.texi b/doc/ref/srfi-modules.texi
index 3d44156..ae1c610 100644
--- a/doc/ref/srfi-modules.texi
+++ b/doc/ref/srfi-modules.texi
@@ -151,6 +151,7 @@ The Guile core has the following features,
 guile
 guile-2  ;; starting from Guile 2.x
 guile-2.2  ;; starting from Guile 2.2
+guile-3.0  ;; starting from Guile 3.0
 r5rs
 srfi-0
 srfi-4
diff --git a/libguile/_scm.h b/libguile/_scm.h
index 093815d..2c505fa 100644
--- a/libguile/_scm.h
+++ b/libguile/_scm.h
@@ -247,9 +247,9 @@ void scm_ia64_longjmp (scm_i_jmp_buf *, int);
 #define SCM_OBJCODE_WORD_SIZE  SCM_CPP_STRINGIFY (SIZEOF_VOID_P)
 
 /* Major and minor versions must be single characters. */
-#define SCM_OBJCODE_MAJOR_VERSION 3
-#define SCM_OBJCODE_MINIMUM_MINOR_VERSION 9
-#define SCM_OBJCODE_MINOR_VERSION A
+#define SCM_OBJCODE_MAJOR_VERSION 4
+#define SCM_OBJCODE_MINIMUM_MINOR_VERSION 0
+#define SCM_OBJCODE_MINOR_VERSION 0
 #define SCM_OBJCODE_MAJOR_VERSION_STRING        \
   SCM_CPP_STRINGIFY(SCM_OBJCODE_MAJOR_VERSION)
 #define SCM_OBJCODE_MINOR_VERSION_STRING        \
diff --git a/libguile/loader.c b/libguile/loader.c
index 54bf1bf..d8816ab 100644
--- a/libguile/loader.c
+++ b/libguile/loader.c
@@ -87,7 +87,7 @@ static void register_elf (char *data, size_t len, char 
*frame_maps);
 enum bytecode_kind
   {
     BYTECODE_KIND_NONE,
-    BYTECODE_KIND_GUILE_2_2
+    BYTECODE_KIND_GUILE_3_0
   };
 
 static SCM
@@ -95,7 +95,7 @@ pointer_to_procedure (enum bytecode_kind bytecode_kind, char 
*ptr)
 {
   switch (bytecode_kind)
     {
-    case BYTECODE_KIND_GUILE_2_2:
+    case BYTECODE_KIND_GUILE_3_0:
       {
         return scm_i_make_program ((scm_t_uint32 *) ptr);
       }
@@ -294,12 +294,11 @@ process_dynamic_segment (char *base, Elf_Phdr *dyn_phdr,
             scm_t_uint16 minor = dyn[i].d_un.d_val & 0xffff;
             switch (major)
               {
-              case 0x0202:
-                bytecode_kind = BYTECODE_KIND_GUILE_2_2;
+              case 0x0300:
+                bytecode_kind = BYTECODE_KIND_GUILE_3_0;
                 if (minor < SCM_OBJCODE_MINIMUM_MINOR_VERSION)
                   return "incompatible bytecode version";
-                /* FIXME for 3.0: Go back to integers.  */
-                if (minor > SCM_OBJCODE_MINOR_VERSION_STRING[0])
+                if (minor > SCM_OBJCODE_MINOR_VERSION)
                   return "incompatible bytecode version";
                 break;
               default:
@@ -320,7 +319,7 @@ process_dynamic_segment (char *base, Elf_Phdr *dyn_phdr,
 
   switch (bytecode_kind)
     {
-    case BYTECODE_KIND_GUILE_2_2:
+    case BYTECODE_KIND_GUILE_3_0:
       if ((scm_t_uintptr) init % 4)
         return "unaligned DT_INIT";
       if ((scm_t_uintptr) entry % 4)
@@ -356,6 +355,8 @@ load_thunk_from_memory (char *data, size_t len, int 
is_read_only)
   SCM init = SCM_BOOL_F, entry = SCM_BOOL_F;
   char *frame_maps = 0;
 
+  errno = 0;
+
   if (len < sizeof *header)
     ABORT ("object file too small");
 
diff --git a/meta/Makefile.am b/meta/Makefile.am
index d49ebd9..acbd8e7 100644
--- a/meta/Makefile.am
+++ b/meta/Makefile.am
@@ -77,7 +77,7 @@ substitute =                                                  
                \
         -e "s|address@hidden@]|$$guild|g"                                      
        \
         -e "s|address@hidden@]|$$installed_guile|g"
 
-# Substitutions for dependencies that appear in 'guile-2.0.pc'.
+# Substitutions for dependencies that appear in 'guile-3.0.pc'.
 dependency_substitutions =                             \
   -e "s|address@hidden@]|$(BDW_GC_CFLAGS)|g"           \
   -e "s|address@hidden@]|$(BDW_GC_LIBS)|g"             \
diff --git a/meta/guile-2.2-uninstalled.pc.in b/meta/guile-3.0-uninstalled.pc.in
similarity index 100%
rename from meta/guile-2.2-uninstalled.pc.in
rename to meta/guile-3.0-uninstalled.pc.in
diff --git a/meta/guile-2.2.pc.in b/meta/guile-3.0.pc.in
similarity index 100%
rename from meta/guile-2.2.pc.in
rename to meta/guile-3.0.pc.in
diff --git a/module/system/vm/assembler.scm b/module/system/vm/assembler.scm
index 8d71dc5..1eb253f 100644
--- a/module/system/vm/assembler.scm
+++ b/module/system/vm/assembler.scm
@@ -1806,8 +1806,8 @@ needed."
 ;;;
 
 ;; FIXME: Define these somewhere central, shared with C.
-(define *bytecode-major-version* #x0202)
-(define *bytecode-minor-version* (char->integer #\A))
+(define *bytecode-major-version* #x0300)
+(define *bytecode-minor-version* 0)
 
 (define (link-dynamic-section asm text rw rw-init frame-maps)
   "Link the dynamic section for an ELF image with bytecode @var{text},



reply via email to

[Prev in Thread] Current Thread [Next in Thread]