guile-cvs
[Top][All Lists]
Advanced

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

guile/guile-core/libguile ChangeLog num2integra...


From: Mikael Djurfeldt
Subject: guile/guile-core/libguile ChangeLog num2integra...
Date: Thu, 20 Sep 2001 04:02:40 -0400

CVSROOT:        /cvs
Module name:    guile
Branch:         branch_release-1-6
Changes by:     Mikael Djurfeldt <address@hidden>       01/09/20 04:02:40

Modified files:
        guile-core/libguile: ChangeLog num2integral.i.c 

Log message:
        * num2integral.i.c (NUM2INTEGRAL): Report an error when these
        routines are passed an inexact.  This change in behavior is
        motivated by concordance with R5RS: It is more common that a
        primitive doesn't want to accept an inexact for an exact.

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/ChangeLog.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.1465.2.20&tr2=1.1465.2.21&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/num2integral.i.c.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.4.2.1&tr2=1.4.2.2&r1=text&r2=text

Patches:
Index: guile/guile-core/libguile/ChangeLog
diff -u guile/guile-core/libguile/ChangeLog:1.1509 
guile/guile-core/libguile/ChangeLog:1.1510
--- guile/guile-core/libguile/ChangeLog:1.1509  Sat Sep 15 17:56:52 2001
+++ guile/guile-core/libguile/ChangeLog Mon Sep 17 16:32:53 2001
@@ -1,9 +1,26 @@
+2001-09-17  Dirk Herrmann  <address@hidden>
+
+        The following patch partially undoes my patch from 2001-06-30,
+       where I added the function scm_gc_mark_cell_conservatively.  The
+       function is buggy, since it breaks guile during conservative
+       marking if a pointer on the stack points directly into the list of
+       free cells on the heap:  With conservative cell marking this will
+       cause the whole free list to be scanned and marked - boom!
+
+       * gc.c (allocated_mark, MARK, heap_segment,
+       scm_gc_mark_cell_conservatively, scm_init_storage), gc.h
+       (scm_gc_mark_cell_conservatively):  Remove function 
+       scm_gc_mark_cell_conservatively and update the corresponding
+       comments and uses accordingly.  Thanks to Christopher Cramer for
+       the patch.  (Minor corrections by me.)
+
 2001-09-15  Gary Houston  <address@hidden>
 
        * root.h (scm_root_state): removed the continuation_stack and
        continuation_stack_ptr members, which have no apparent purpose.
        (scm_continuation_stack, scm_continuation_stack_ptr): #defines
        removed.
+
        * root.c (root_mark), init.c (restart_stack, start_stack), gc
        (scm_igc): remove all references to contination_stack and
        continuation_stack_ptr, avoiding allocation of a vector and
Index: guile/guile-core/libguile/num2integral.i.c
diff -u guile/guile-core/libguile/num2integral.i.c:1.5 
guile/guile-core/libguile/num2integral.i.c:1.6
--- guile/guile-core/libguile/num2integral.i.c:1.5      Mon Jul 16 06:22:38 2001
+++ guile/guile-core/libguile/num2integral.i.c  Sat Sep  1 13:17:50 2001
@@ -47,8 +47,10 @@
           res = new;
         }
     
-#ifndef UNSIGNED
       if (SCM_BIGSIGN (num))
+#ifdef UNSIGNED
+        scm_out_of_range (s_caller, num);
+#else
         {
           res = -res;
           if (res <= 0)
@@ -56,6 +58,7 @@
           else
             scm_out_of_range (s_caller, num);
         }
+#endif
       else
         {
           if (res >= 0)
@@ -63,8 +66,7 @@
           else
             scm_out_of_range (s_caller, num);
         }
-#endif
-      
+
       return res;
     }
   else if (SCM_REALP (num))



reply via email to

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