* gnu/packages/algebra.scm (symmetrica): New variable. * gnu/packages/patches/symmetrica-bruch.patch: * gnu/packages/patches/symmetrica-int32.patch: * gnu/packages/patches/symmetrica-return_values.patch: * gnu/packages/patches/symmetrica-sort_sum_rename.patch: New files. * gnu/local.mk (dist_patch_DATA): Add patches.
		
			
				
	
	
		
			37 lines
		
	
	
	
		
			918 B
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
	
		
			918 B
		
	
	
	
		
			Diff
		
	
	
	
	
	
diff -ru src/def.h c/def.h
 | 
						|
--- src/def.h	2007-12-06 17:30:56.000000000 +0100
 | 
						|
+++ c/def.h	2013-10-19 18:42:55.118745730 +0200
 | 
						|
@@ -2,14 +2,9 @@
 | 
						|
 /* INT should always be 4 byte */
 | 
						|
 #ifndef DEF_H
 | 
						|
 
 | 
						|
-
 | 
						|
-#ifdef __alpha
 | 
						|
-typedef  int INT;
 | 
						|
-typedef unsigned  int  UINT;
 | 
						|
-#else /* __alpha */
 | 
						|
-typedef long INT;
 | 
						|
-typedef unsigned long UINT;
 | 
						|
-#endif /* __alpha */
 | 
						|
+#include <stdint.h>
 | 
						|
+typedef int32_t INT;
 | 
						|
+typedef uint32_t UINT;
 | 
						|
 
 | 
						|
 #include <stdio.h>
 | 
						|
 #include <memory.h>
 | 
						|
@@ -65,10 +60,13 @@
 | 
						|
 
 | 
						|
 
 | 
						|
 /* definitionen fuer object.c */
 | 
						|
-typedef INT OBJECTKIND;   /* 4 byte */
 | 
						|
+/* NOTE: partition code assumes that there is no unused space in the
 | 
						|
+ * object struct when an INT is stored. This requires both OBJECTKIND
 | 
						|
+ * and OBJECTSELF to have a size equal to a machine word. */
 | 
						|
+typedef intptr_t OBJECTKIND;
 | 
						|
 
 | 
						|
 typedef union {
 | 
						|
-	INT ob_INT;
 | 
						|
+	intptr_t ob_INT;
 | 
						|
 	INT * ob_INTpointer;
 | 
						|
 	char *ob_charpointer;
 | 
						|
 	struct bruch *ob_bruch;
 |