[Top][All Lists]
[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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Guile-commits] GNU Guile branch, stable-2.0, updated. v2.0.3-172-g967394b,
Ludovic Courtès <=