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-179-g2b264


From: Ludovic Courtès
Subject: [Guile-commits] GNU Guile branch, stable-2.0, updated. v2.0.3-179-g2b264d7
Date: Tue, 24 Jan 2012 22:48:39 +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=2b264d7e4fb649955ade1814527b6eb6f34f4e18

The branch, stable-2.0 has been updated
       via  2b264d7e4fb649955ade1814527b6eb6f34f4e18 (commit)
       via  228e9ec137be1e7a2bc05641f975b52d1ad84416 (commit)
      from  5765c5a82ce3891faff02c0bcc603cc0fe5ae36d (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 2b264d7e4fb649955ade1814527b6eb6f34f4e18
Author: Ludovic Courtès <address@hidden>
Date:   Tue Jan 24 23:39:43 2012 +0100

    Work around instruction reordering on SPARC and HPPA in the VM.
    
    Fixes part of <http://bugs.gnu.org/10520>.
    Reported by Bruno Haible <address@hidden>.
    
    * libguile/vm-i-system.c (COMPILER_BARRIER): New macro.
      (halt, return, return_values): Insert compiler barrier after each
      assignment to `fp'.

commit 228e9ec137be1e7a2bc05641f975b52d1ad84416
Author: Ludovic Courtès <address@hidden>
Date:   Tue Jan 24 10:03:02 2012 +0100

    vlist: Use (ice-9 format).
    
    * module/ice-9/vlist.scm: Use (ice-9 format).

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

Summary of changes:
 libguile/vm-i-system.c |   25 +++++++++++++++++++++----
 module/ice-9/vlist.scm |    3 ++-
 2 files changed, 23 insertions(+), 5 deletions(-)

diff --git a/libguile/vm-i-system.c b/libguile/vm-i-system.c
index 474fe78..7a7bccc 100644
--- a/libguile/vm-i-system.c
+++ b/libguile/vm-i-system.c
@@ -1,5 +1,6 @@
-/* Copyright (C) 2001,2008,2009,2010,2011 Free Software Foundation, Inc.
- * 
+/* Copyright (C) 2001, 2008, 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
  * as published by the Free Software Foundation; either version 3 of
@@ -19,6 +20,17 @@
 
 /* This file is included in vm_engine.c */
 
+/* Compiler barrier, to prevent instruction reordering, apparently due
+   to a bug in GCC 4.3.2 on sparc-linux-gnu and on hppa2.0-linux-gnu.
+   See <http://bugs.gnu.org/10520>, for details.  */
+
+#ifdef __GNUC__
+# define COMPILER_BARRIER  __asm__ __volatile__ ("")
+#else
+# define COMPILER_BARRIER  do { } while (0)
+#endif
+
+
 
 /*
  * Basic operations
@@ -55,6 +67,7 @@ VM_DEFINE_INSTRUCTION (1, halt, "halt", 0, 0, 0)
        stack */
     ip = SCM_FRAME_RETURN_ADDRESS (fp);
     fp = SCM_FRAME_DYNAMIC_LINK (fp);
+    COMPILER_BARRIER;
     NULLSTACK (old_sp - sp);
   }
   
@@ -1267,6 +1280,7 @@ VM_DEFINE_INSTRUCTION (67, return, "return", 0, 1, 1)
     sp = SCM_FRAME_LOWER_ADDRESS (fp);
     ip = SCM_FRAME_RETURN_ADDRESS (fp);
     fp = SCM_FRAME_DYNAMIC_LINK (fp);
+    COMPILER_BARRIER;
 
 #ifdef VM_ENABLE_STACK_NULLING
     NULLSTACK (old_sp - sp);
@@ -1302,7 +1316,8 @@ VM_DEFINE_INSTRUCTION (68, return_values, 
"return/values", 1, -1, -1)
       sp = SCM_FRAME_LOWER_ADDRESS (fp) - 1;
       ip = SCM_FRAME_MV_RETURN_ADDRESS (fp);
       fp = SCM_FRAME_DYNAMIC_LINK (fp);
-        
+      COMPILER_BARRIER;
+
       /* Push return values, and the number of values */
       for (i = 0; i < nvalues; i++)
         *++sp = vals[i+1];
@@ -1322,7 +1337,8 @@ VM_DEFINE_INSTRUCTION (68, return_values, 
"return/values", 1, -1, -1)
       sp = SCM_FRAME_LOWER_ADDRESS (fp) - 1;
       ip = SCM_FRAME_RETURN_ADDRESS (fp);
       fp = SCM_FRAME_DYNAMIC_LINK (fp);
-        
+      COMPILER_BARRIER;
+
       /* Push first value */
       *++sp = vals[1];
              
@@ -1713,6 +1729,7 @@ VM_DEFINE_INSTRUCTION (93, assert_nargs_ee_locals, 
"assert-nargs-ee/locals", 1,
   NEXT;
 }
 
+#undef COMPILER_BARRIER
 
 /*
 (defun renumber-ops ()
diff --git a/module/ice-9/vlist.scm b/module/ice-9/vlist.scm
index a62bf59..0ed4b6d 100644
--- a/module/ice-9/vlist.scm
+++ b/module/ice-9/vlist.scm
@@ -1,6 +1,6 @@
 ;;; -*- mode: scheme; coding: utf-8; -*-
 ;;;
-;;; Copyright (C) 2009, 2010, 2011 Free Software Foundation, Inc.
+;;; Copyright (C) 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
@@ -21,6 +21,7 @@
   #:use-module (srfi srfi-9)
   #:use-module (srfi srfi-9 gnu)
   #:use-module (srfi srfi-26)
+  #:use-module (ice-9 format)
 
   #:export (vlist? vlist-cons vlist-head vlist-tail vlist-null?
             vlist-null list->vlist vlist-ref vlist-drop vlist-take


hooks/post-receive
-- 
GNU Guile



reply via email to

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