rpms/umb-scheme/FC-4 umb-scheme-3.2-define.patch, NONE, 1.1 umb-scheme-3.2-forwarding.patch, NONE, 1.1 umb-scheme-3.2.spec, 1.17, 1.18

fedora-cvs-commits at redhat.com fedora-cvs-commits at redhat.com
Fri Jan 20 14:51:21 UTC 2006


Author: mlichvar

Update of /cvs/dist/rpms/umb-scheme/FC-4
In directory cvs.devel.redhat.com:/tmp/cvs-serv26783

Modified Files:
	umb-scheme-3.2.spec 
Added Files:
	umb-scheme-3.2-define.patch umb-scheme-3.2-forwarding.patch 
Log Message:
- fix crash when "(define name expr)" causes garbage collection
- fix forwarding objects, assumption that stack and heap are both in the same
  half of memory space is changed to more reasonable assumption that objects
  are at least two byte aligned; that should make umb-scheme usable again
  (#167017)


umb-scheme-3.2-define.patch:
 compiler.c |    6 +-----
 1 files changed, 1 insertion(+), 5 deletions(-)

--- NEW FILE umb-scheme-3.2-define.patch ---
--- scheme-3.2/compiler.c.orig	2006-01-20 15:11:27.000000000 +0100
+++ scheme-3.2/compiler.c	2006-01-20 15:13:33.000000000 +0100
@@ -147,15 +147,11 @@
 		    {
 			/* Basic form: (define name expr) */
 
-			Object	expr ; 
-
 			if ( Length( form ) != 3 )
 			{
 			    Display_Error("Bad syntax to define in: ", form);
 			}
 
-			expr = Third( form );
-
 			if ( !Is_Symbol( name ) )
 			{
 			    Display_Error("Bad syntax to define in: ", form);
@@ -191,7 +187,7 @@
 
 			Push( Value_Register );
 
-			Push( expr );
+			Push( Third( Top( 2 ) ) ); /* expr */
 			Compile_Object( Top( 1 ));
 			Push( Value_Register );
 

umb-scheme-3.2-forwarding.patch:
 architecture.h |   13 ++++---------
 portable.h     |   23 +----------------------
 2 files changed, 5 insertions(+), 31 deletions(-)

--- NEW FILE umb-scheme-3.2-forwarding.patch ---
--- scheme-3.2/portable.h.orig	2006-01-19 10:58:00.000000000 +0100
+++ scheme-3.2/portable.h	2006-01-19 10:58:28.000000000 +0100
@@ -57,28 +57,7 @@
 
 #define ALIGNMENT 8
 
-/* Processors (eg the Alpha) having 64-bit addresses require special casting
-   in the architecture module.  */
-
-#if defined(__alpha__)
-typedef long int Integral_Pointer;
-#else
-typedef int Integral_Pointer;
-#endif
-
-
-/* NEGATIVE_ADDRESSES is defined to be 1 iff memory addresses have a 1 in the 
-   highest bit; otherwise it is defined to be 0.  This is the usual case. */
-
-/* IF YOUR MACHINE HAS ADDRESSES WITH 1 IN THE HIGH-ORDER BIT THEN
-   CHANGE THIS:                                                          */
-
-#ifdef u3b2
-#define NEGATIVE_ADDRESSES 1
-#else
-#define NEGATIVE_ADDRESSES 0
-#endif
-
+typedef unsigned long Integral_Pointer;
 
 /* The following declarations ought not to be necessary for C environments
    that support the ANSI C Standard. */
--- scheme-3.2/architecture.h.orig	1996-01-21 23:15:48.000000000 +0100
+++ scheme-3.2/architecture.h	2006-01-19 10:58:22.000000000 +0100
@@ -95,16 +95,11 @@
 Import Object Move_Object();
 Import void Relocate();
 
-#if NEGATIVE_ADDRESSES
-	/* NEGATIVE_ADDRESSES defined in portable.h */
-#define Is_Forwarded(o) (((Integral_Pointer) Get_Type(o)) > 0)
-#else
-#define Is_Forwarded(o) (((Integral_Pointer) Get_Type(o)) < 0)
-#endif
-
-#define Get_Forwarding_Address(o) ((Object) (-((Integral_Pointer) Get_Type(o))))
+#define Is_Forwarded(o) (((Integral_Pointer) Get_Type(o)) & 1)
+#define Get_Forwarding_Address(o) \
+		((Object) (((Integral_Pointer) Get_Type(o)) & ~1))
 #define Set_Forwarding_Address(old,new) \
-		Get_Type(old) = (Scheme_Type) (-((Integral_Pointer)(new)))
+		Get_Type(old) = (Scheme_Type) ((Integral_Pointer)(new) | 1)
 
 /* General */
 Import Object Copy_Object();


Index: umb-scheme-3.2.spec
===================================================================
RCS file: /cvs/dist/rpms/umb-scheme/FC-4/umb-scheme-3.2.spec,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -r1.17 -r1.18
--- umb-scheme-3.2.spec	8 Sep 2005 07:57:29 -0000	1.17
+++ umb-scheme-3.2.spec	20 Jan 2006 14:51:19 -0000	1.18
@@ -1,7 +1,7 @@
 Summary: An implementation of the Scheme programming language.
 Name: umb-scheme
 Version: 3.2
-Release: 39.fc4
+Release: 39.fc4.1
 License: GPL SLIB
 Group: Development/Languages
 Source: ftp://ftp.cs.umb.edu/pub/scheme/umb-scheme-3.2.tar.bz2
@@ -15,6 +15,8 @@
 Patch5: umb-scheme-3.2-slib2c7.patch
 Patch6: umb-scheme-3.2-share.patch
 Patch7: umb-scheme-3.2-vi.patch
+Patch8: umb-scheme-3.2-forwarding.patch
+Patch9: umb-scheme-3.2-define.patch
 BuildRoot: %{_tmppath}/umb-scheme-root
 Prereq: /sbin/install-info
 BuildPrereq: texinfo
@@ -38,6 +40,8 @@
 %patch5 -p1 -b .slib2c7
 %patch6 -p1 -b .sharepatch
 %patch7 -p1 -b .vipatch
+%patch8 -p1 -b .forwardingpatch
+%patch9 -p1 -b .definepatch
 
 %build
 make CFLAGS="$RPM_OPT_FLAGS"
@@ -85,6 +89,13 @@
 %{_infodir}/umb-scheme.info.gz
 
 %changelog
+* Fri Jan 20 2006 Miroslav Lichvar <mlichvar at redhat.com> 3.2-39.fc4.1
+- fix crash when "(define name expr)" causes garbage collection
+- fix forwarding objects, assumption that stack and heap are both in the same
+  half of memory space is changed to more reasonable assumption that objects
+  are at least two byte aligned; that should make umb-scheme usable again
+  (#167017)
+
 * Thu Sep  8 2005 Jindrich Novy <jnovy at redhat.com> 3.2-39.fc4
 - don't install slib.info to avoid conflict with slib package
 




More information about the fedora-cvs-commits mailing list