guile-commits
[Top][All Lists]
Advanced

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

[Guile-commits] GNU Guile branch, stable-2.0, updated. v2.0.3-172-g96739


From: Ludovic Courtès
Subject: [Guile-commits] GNU Guile branch, stable-2.0, updated. v2.0.3-172-g967394b
Date: Sun, 22 Jan 2012 22:29:54 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU Guile".

http://git.savannah.gnu.org/cgit/guile.git/commit/?id=967394bca716f70b65bdb243b748859a1e3ab8a6

The branch, stable-2.0 has been updated
       via  967394bca716f70b65bdb243b748859a1e3ab8a6 (commit)
       via  0fc9040fa248c7d964966a568749d1398a457cd8 (commit)
       via  17cc6e40a9ba5db9b0ff003a9a277ba43a72a067 (commit)
      from  ad432bc8317c33899efc29854550b67f3d7babf7 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 967394bca716f70b65bdb243b748859a1e3ab8a6
Author: Ludovic Courtès <address@hidden>
Date:   Sun Jan 22 23:22:45 2012 +0100

    Augment `release.org'.
    
    * doc/release.org: Mention debbugs and address@hidden'.

commit 0fc9040fa248c7d964966a568749d1398a457cd8
Author: Ludovic Courtès <address@hidden>
Date:   Sun Jan 22 23:20:50 2012 +0100

    Parenthesize and type `SCM_FRAME' macros; check layout of `scm_vm_frame'.
    
    * libguile/frames.c: Add compile-time assertions on the layout of
      `struct scm_vm_frame'.
      (RELOC): Parenthesize and type VAL.
    
    * libguile/frames.h (SCM_FRAME_STRUCT): Write in terms of
      `SCM_FRAME_DATA_ADDRESS'.
      (SCM_FRAME_DATA_ADDRESS): Parenthesize and type FP.
      (SCM_FRAME_SET_DYNAMIC_LINK): Write in terms of
      `SCM_FRAME_DYNAMIC_LINK'.
    
    * libguile/vm.c (RELOC): Parenthesize and type SCM_P.

commit 17cc6e40a9ba5db9b0ff003a9a277ba43a72a067
Author: Ludovic Courtès <address@hidden>
Date:   Sat Jan 21 16:35:58 2012 +0100

    Relax `asm-to-bytecode.test' for when target CPU == native CPU.
    
    * test-suite/tests/asm-to-bytecode.test (native-cpu, native-word-size):
      New procedures.
      (test-target): When the target is the native CPU, use the native word
      size instead of WORD-SIZE.

-----------------------------------------------------------------------

Summary of changes:
 doc/release.org                       |   10 ++++++++++
 libguile/frames.c                     |   11 +++++++++--
 libguile/frames.h                     |    7 ++++---
 libguile/vm.c                         |    5 +++--
 test-suite/tests/asm-to-bytecode.test |   20 ++++++++++++++++++--
 5 files changed, 44 insertions(+), 9 deletions(-)

diff --git a/doc/release.org b/doc/release.org
index 0d18be3..462c705 100644
--- a/doc/release.org
+++ b/doc/release.org
@@ -6,6 +6,10 @@ This document describes the typical release process for Guile 
2.0.
 
 * Preparing & uploading the tarball
 
+** M-x debbugs-gnu
+
+… or http://bugs.gnu.org/guile, for an idea of things to fix.
+
 ** Update Gnulib
 
 The commit log's first line should be "Update Gnulib to X", where X is
@@ -49,6 +53,12 @@ If you're still in a good mood, you may also want to check 
on porter
 boxes for other OSes.  The GNU/Hurd people have 
[[http://www.gnu.org/software/hurd/public_hurd_boxen.html][porter boxes]], so 
does
 the [[http://www.opencsw.org/standards/build_farm][OpenCSW Solaris Team]].
 
+
+*** Post a pre-release announcement to address@hidden'
+
+Send a link to 
[[http://hydra.nixos.org/job/gnu/guile-2-0/tarball/latest/download-by-type/file/source-dist][the
 latest tarball]].  This will allow readers to test on
+possibly weird platforms and report any bugs.
+
 ** Update `GUILE-VERSION'
 
 For stable releases, make sure to update the SONAME appropriately.  To
diff --git a/libguile/frames.c b/libguile/frames.c
index 2e83cde..c7505b2 100644
--- a/libguile/frames.c
+++ b/libguile/frames.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001, 2009, 2010, 2011 Free Software Foundation, Inc.
+/* Copyright (C) 2001, 2009, 2010, 2011, 2012 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
@@ -24,9 +24,16 @@
 #include <string.h>
 #include "_scm.h"
 #include "frames.h"
+#include <verify.h>
+
+/* Make sure assumptions on the layout of `struct scm_vm_frame' hold.  */
+verify (sizeof (SCM) == sizeof (SCM *));
+verify (sizeof (struct scm_vm_frame) == 5 * sizeof (SCM));
+verify (offsetof (struct scm_vm_frame, dynamic_link) == 0);
 
 
-#define RELOC(frame, val) (val + SCM_VM_FRAME_OFFSET (frame))
+#define RELOC(frame, val)                              \
+  (((SCM *) (val)) + SCM_VM_FRAME_OFFSET (frame))
 
 SCM
 scm_c_make_frame (SCM stack_holder, SCM *fp, SCM *sp,
diff --git a/libguile/frames.h b/libguile/frames.h
index ffb577a..eaed79d 100644
--- a/libguile/frames.h
+++ b/libguile/frames.h
@@ -70,9 +70,10 @@ struct scm_vm_frame
   SCM stack[1]; /* Variable-length */
 };
 
-#define SCM_FRAME_STRUCT(fp)           ((struct scm_vm_frame*)(((SCM*)(fp)) - 
4))
+#define SCM_FRAME_STRUCT(fp)                           \
+  ((struct scm_vm_frame *) SCM_FRAME_DATA_ADDRESS (fp))
 
-#define SCM_FRAME_DATA_ADDRESS(fp)     (fp - 4)
+#define SCM_FRAME_DATA_ADDRESS(fp)     (((SCM *) (fp)) - 4)
 #define SCM_FRAME_STACK_ADDRESS(fp)    (SCM_FRAME_STRUCT (fp)->stack)
 #define SCM_FRAME_UPPER_ADDRESS(fp)    ((SCM*)&SCM_FRAME_STRUCT 
(fp)->return_address)
 #define SCM_FRAME_LOWER_ADDRESS(fp)    ((SCM*)SCM_FRAME_STRUCT (fp))
@@ -91,7 +92,7 @@ struct scm_vm_frame
 #define SCM_FRAME_DYNAMIC_LINK(fp)              \
   (SCM_FRAME_STRUCT (fp)->dynamic_link)
 #define SCM_FRAME_SET_DYNAMIC_LINK(fp, dl)      \
-  SCM_FRAME_STRUCT (fp)->dynamic_link = (dl)
+  SCM_FRAME_DYNAMIC_LINK (fp) = (dl)
 #define SCM_FRAME_VARIABLE(fp,i)                \
   (SCM_FRAME_STRUCT (fp)->stack[i])
 #define SCM_FRAME_PROGRAM(fp)                   \
diff --git a/libguile/vm.c b/libguile/vm.c
index 49df5cb..8fae656 100644
--- a/libguile/vm.c
+++ b/libguile/vm.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001, 2009, 2010, 2011 Free Software Foundation, Inc.
+/* Copyright (C) 2001, 2009, 2010, 2011, 2012 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
@@ -280,7 +280,8 @@ vm_reinstate_partial_continuation (SCM vm, SCM cont, SCM 
intwinds,
   cp = SCM_VM_CONT_DATA (cont);
   base = SCM_FRAME_UPPER_ADDRESS (vp->fp) + 1;
 
-#define RELOC(scm_p) (scm_p + cp->reloc + (base - cp->stack_base))
+#define RELOC(scm_p)                                           \
+  (((SCM *) (scm_p)) + cp->reloc + (base - cp->stack_base))
 
   if ((base - vp->stack_base) + cp->stack_size + n + 1 > vp->stack_size)
     scm_misc_error ("vm-engine",
diff --git a/test-suite/tests/asm-to-bytecode.test 
b/test-suite/tests/asm-to-bytecode.test
index edb9bfd..d36b33d 100644
--- a/test-suite/tests/asm-to-bytecode.test
+++ b/test-suite/tests/asm-to-bytecode.test
@@ -1,6 +1,6 @@
 ;;;; Assembly to bytecode compilation -*- mode: scheme; coding: utf-8; -*-
 ;;;;
-;;;;   Copyright (C) 2010, 2011 Free Software Foundation, Inc.
+;;;;   Copyright (C) 2010, 2011, 2012 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
@@ -129,6 +129,12 @@
                (string=? (target-vendor) vendor)
                (string=? (target-os) os)))))))
 
+(define (native-cpu)
+  (with-target %host-type target-cpu))
+
+(define (native-word-size)
+  ((@ (system foreign) sizeof) '*))
+
 (define %objcode-cookie-size
   (string-length "GOOF----LE-8-2.0"))
 
@@ -139,7 +145,17 @@
       (lambda (p get-objcode)
         (with-target triplet
           (lambda ()
-            (let ((b (compile-bytecode
+            (let ((word-size
+                   ;; When the target is the native CPU, rather trust
+                   ;; the native CPU's word size.  This is because
+                   ;; Debian's `sparc64-linux-gnu' port, for instance,
+                   ;; actually has a 32-bit user-land, for instance (see
+                   ;; <http://www.debian.org/ports/sparc/#sparc64bit>
+                   ;; for details.)
+                   (if (string=? (native-cpu) (target-cpu))
+                       (native-word-size)
+                       word-size))
+                  (b (compile-bytecode
                       '(load-program () 16 #f
                                      (assert-nargs-ee/locals 1)
                                      (make-int8 77)


hooks/post-receive
-- 
GNU Guile



reply via email to

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