v 2.3

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
9 messages Options
Reply | Threaded
Open this post in threaded view
|

v 2.3

J Pfersich
Does anyone have problems with 2.3? Mine compiles on 2 platforms but wont run.
The first just exits with a return code of 1(Mac OSX 10.3.9); on SuSE Linux
9.3, it seg faults.

Oh well, back to 2.2d.



_______________________________________________
help-smalltalk mailing list
[hidden email]
http://lists.gnu.org/mailman/listinfo/help-smalltalk
Reply | Threaded
Open this post in threaded view
|

Re: v 2.3

S11001001
J Pfersich wrote:
> Does anyone have problems with 2.3? Mine compiles on 2 platforms but
> wont run.
> The first just exits with a return code of 1(Mac OSX 10.3.9); on SuSE
> Linux 9.3, it seg faults.

Is the Mac OS X platform x86 or PPC?  What about the SuSE?  What options
did you compile with?  What's your version of GCC?

> <smalltalker2> does anyone have problems with 2.3. mine compiles on 2          
>                platforms but wont run.                                          
> <smalltalker2> first just exits with a return code of 1, the other seg faults

We're happy to help in #gnu-smalltalk, but we aren't always around.

--
Stephen Compall
http://scompall.nocandysw.com/blog
##smalltalk,#gnu-smalltalk on Freenode IRC


_______________________________________________
help-smalltalk mailing list
[hidden email]
http://lists.gnu.org/mailman/listinfo/help-smalltalk
Reply | Threaded
Open this post in threaded view
|

Re: v 2.3

Brad Watson
In reply to this post by J Pfersich
J

At the moment, Im getting:

whitebearded1@molly:~/src/smalltalk$ gst
GNU Smalltalk ready

st> whitebearded1@molly:~/src/smalltalk$ cd
whitebearded1@molly:~$ gst
gst: Aborted
(ip 4)HomedAssociation(Association)>>#hash
(ip 8)Set>>#findIndex:
(ip 4)Set(HashedCollection)>>#findIndexOrNil:
(ip 4)Set(HashedCollection)>>#remove:ifAbsent:
(ip 6)Set(Collection)>>#mourn:
(ip 6)HomedAssociation>>#mourn
(ip 4)[] in ProcessorScheduler>>#initialize
(ip 20)Array(SequenceableCollection)>>#do:
(ip 6)[] in ProcessorScheduler>>#initialize
(ip 4)[] in BlockClosure>>#newProcessWith:
(ip 22)[] in Process>>#onBlock:at:suspend:
(ip 8)<unwind> BlockClosure>>#on:do:
(ip 14)[] in Process>>#onBlock:at:suspend:
(ip 2)<unwind> BlockClosure>>#ensure:
(ip 10)[] in Process>>#onBlock:at:suspend:
(ip 14)BlockContext class>>#fromClosure:parent:
Aborted
whitebearded1@molly:~$

It works if my current directory isthe installation directory and doesnt when Im in a different directory....

Regards,

Brad Watson

----- Original Message ----
From: J Pfersich <[hidden email]>
To: GNU Smalltalk <[hidden email]>
Sent: Friday, December 8, 2006 4:41:37 PM
Subject: [Help-smalltalk] v 2.3

Does anyone have problems with 2.3? Mine compiles on 2 platforms but wont run.
The first just exits with a return code of 1(Mac OSX 10.3.9); on SuSE Linux
9.3, it seg faults.

Oh well, back to 2.2d.



_______________________________________________
help-smalltalk mailing list
[hidden email]
http://lists.gnu.org/mailman/listinfo/help-smalltalk





 
____________________________________________________________________________________
Do you Yahoo!?
Everyone is raving about the all-new Yahoo! Mail beta.
http://new.mail.yahoo.com


_______________________________________________
help-smalltalk mailing list
[hidden email]
http://lists.gnu.org/mailman/listinfo/help-smalltalk
Reply | Threaded
Open this post in threaded view
|

Re: v 2.3

Brad Watson
In reply to this post by J Pfersich
And then from the gst smalltalk source directory I ran:

whitebearded1@molly:~/src/smalltalk$ sudo gst-load GTK
Loading /usr/local/share/smalltalk/gtk/GtkDecl.st
Loading /usr/local/share/smalltalk/gtk/Libs.st
Loading /usr/local/share/smalltalk/gtk/Structs.st
Loading /usr/local/share/smalltalk/gtk/MoreStructs.st
Recompiling classes...
Recompiling class: GTK.GtkRequisition class
Recompiling selector: #sizeof
Recompiling classes...
Recompiling classes...
Recompiling class: GTK.GdkEventButton class
Recompiling selector: #sizeof
Recompiling classes...
Recompiling class: GTK.GdkEventMotion class
Recompiling selector: #sizeof
Recompiling classes...
Recompiling class: GTK.GdkEventConfigure class
Recompiling selector: #sizeof
Loading /usr/local/share/smalltalk/gtk/Enums.st
Loading /usr/local/share/smalltalk/gtk/Funcs.st
Loading /usr/local/share/smalltalk/gtk/MoreFuncs.st
Loading /usr/local/share/smalltalk/gtk/GtkImpl.st
whitebearded1@molly:~/src/smalltalk$ gst

whitebearded1@molly:~/src/smalltalk$ gst
GNU Smalltalk ready

st> whitebearded1@molly:~/src/smalltalk$
whitebearded1@molly:~/src/smalltalk$ cd
whitebearded1@molly:~$ gst
GNU Smalltalk ready

I.e. It's "happy" again.


Regards,

Brad Watson

----- Original Message ----
From: J Pfersich <[hidden email]>
To: GNU Smalltalk <[hidden email]>
Sent: Friday, December 8, 2006 4:41:37 PM
Subject: [Help-smalltalk] v 2.3

Does anyone have problems with 2.3? Mine compiles on 2 platforms but wont run.
The first just exits with a return code of 1(Mac OSX 10.3.9); on SuSE Linux
9.3, it seg faults.

Oh well, back to 2.2d.



_______________________________________________
help-smalltalk mailing list
[hidden email]
http://lists.gnu.org/mailman/listinfo/help-smalltalk





 
____________________________________________________________________________________
Any questions? Get answers on any topic at www.Answers.yahoo.com.  Try it now.


_______________________________________________
help-smalltalk mailing list
[hidden email]
http://lists.gnu.org/mailman/listinfo/help-smalltalk
Reply | Threaded
Open this post in threaded view
|

Re: v 2.3

Mike Anderson-3
In reply to this post by J Pfersich
J Pfersich wrote:
> Does anyone have problems with 2.3? Mine compiles on 2 platforms but
> wont run.
> The first just exits with a return code of 1(Mac OSX 10.3.9); on SuSE
> Linux 9.3, it seg faults.
>
> Oh well, back to 2.2d.

Well, I've just compiled 2.3 on OS X Tiger PPC without any configure
options, and it runs fine, both within the build directory and also
invoked from another directory. I haven't 'make install'ed it, though.

Mike


_______________________________________________
help-smalltalk mailing list
[hidden email]
http://lists.gnu.org/mailman/listinfo/help-smalltalk
Reply | Threaded
Open this post in threaded view
|

Re: v 2.3

Paolo Bonzini
In reply to this post by Brad Watson
> It works if my current directory isthe installation directory
> and doesnt when Im in a different directory....

Can you do a "strace gst" in the failing case, and mail it to me
privately (and gzipped)?

Paolo


_______________________________________________
help-smalltalk mailing list
[hidden email]
http://lists.gnu.org/mailman/listinfo/help-smalltalk
Reply | Threaded
Open this post in threaded view
|

Re: v 2.3

Paolo Bonzini
In reply to this post by Brad Watson

> st> whitebearded1@molly:~/src/smalltalk$ cd
> whitebearded1@molly:~$ gst
> gst: Aborted
> (ip 4)HomedAssociation(Association)>>#hash

I got another report privately about this, and I could reproduce it if I
ran "Finish.st" manually instead of letting make install run it.  (The
other report was slightly different, but both involve a bug in the
handling of weak objects). The attached patch should fix it.

I'll release 2.3.1 some time after I get confirmation that the fix works.

Paolo

2006-12-12  Paolo Bonzini  <[hidden email]>

        * libgst/oop.c (_gst_check_oop_table): New.
        (_gst_global_gc): Call it.
        (mark_ephemeron_oops): Proceed recursively if marking of the
        ephemerons' slots finds more ephemerons.

--- orig/libgst/oop.c
+++ mod/libgst/oop.c
@@ -541,6 +548,44 @@ _gst_dump_oop_table()
           _gst_display_oop_short (oop);
       }
 }
+
+void
+_gst_check_oop_table ()
+{
+  OOP oop, lastOOP;
+
+  for (oop = _gst_mem.ot_base, lastOOP = &_gst_mem.ot[_gst_mem.ot_size];
+       oop < lastOOP; oop++)
+    {
+      gst_object object;
+      OOP *scanPtr;
+      int n;
+
+      if (!IS_OOP_VALID_GC (oop))
+ continue;
+
+      object = OOP_TO_OBJ (oop);
+      scanPtr = &object->objClass;
+      if (oop->flags & F_CONTEXT)
+        {
+          gst_method_context ctx;
+          intptr_t methodSP;
+          ctx = (gst_method_context) object;
+          methodSP = TO_INT (ctx->spOffset);
+          n = ctx->contextStack + methodSP + 1 - object->data;
+        }
+      else
+        n = NUM_OOPS (object) + 1;
+
+      while (n--)
+        {
+  OOP pointedOOP = *scanPtr++;
+  if (IS_OOP (pointedOOP)
+      && (!IS_OOP_ADDR (pointedOOP) || !IS_OOP_VALID_GC (pointedOOP)))
+            abort ();
+ }
+    }
+}
 
 
 void
@@ -1063,6 +1119,7 @@ _gst_global_gc (int next_allocation)
   _gst_mem.live_flags |= F_REACHABLE;
   check_weak_refs ();
   _gst_restore_object_pointers ();
+  _gst_check_oop_table ();
   reset_incremental_gc (_gst_mem.ot);
 
   update_stats (&stats.timeOfLastGlobalGC,
@@ -1985,7 +2042,7 @@ mark_oops (void)
 void
 mark_ephemeron_oops (void)
 {
-  OOP *pOOP, *base;
+  OOP *pOOP, *pDeadOOP, *base;
   int i, size;
 
   /* Make a local copy of the buffer */
@@ -2009,9 +2066,9 @@ mark_ephemeron_oops (void)
       key->flags |= F_REACHABLE;
     }
 
-  for (pOOP = base, i = size; i--; pOOP++)
+  for (pOOP = pDeadOOP = base, i = size; i--; )
     {
-      OOP oop = *pOOP;
+      OOP oop = *pOOP++;
       gst_object obj = OOP_TO_OBJ(oop);
       OOP key = obj->data[0];
       int num = NUM_OOPS(obj);
@@ -2024,10 +2081,10 @@ mark_ephemeron_oops (void)
       for (j = 1; j < num; j++)
         MAYBE_MARK_OOP (obj->data[j]);
 
-      /* Remember that above we cleared F_EPHEMERON is the key
+      /* Remember that above we cleared F_EPHEMERON if the key
          is alive.  */
       if (!IS_OOP_MARKED (key) && (oop->flags & F_EPHEMERON))
-        _gst_add_buf_pointer (oop);
+        *pDeadOOP++ = oop;
 
       /* Ok, now mark the key.  */
       MAYBE_MARK_OOP (key);
@@ -2035,6 +2092,12 @@ mark_ephemeron_oops (void)
       /* Restore the flag in case it was cleared.  */
       oop->flags |= F_EPHEMERON;
     }
+
+  /* If more ephemerons were reachable from the object, go on...  */
+  if (_gst_buffer_size ())
+    mark_ephemeron_oops ();
+
+  _gst_add_buf_data (base, (char *) pDeadOOP - (char *) base);
 }
 
 #define TAIL_MARK_OOP(newOOP) BEGIN_MACRO { \

_______________________________________________
help-smalltalk mailing list
[hidden email]
http://lists.gnu.org/mailman/listinfo/help-smalltalk
Reply | Threaded
Open this post in threaded view
|

Re: Re: v 2.3

J Pfersich
In reply to this post by S11001001
At 06:46 PM 12/8/2006 -0600, Stephen Compall wrote:
>J Pfersich wrote:
>>Does anyone have problems with 2.3? Mine compiles on 2 platforms but wont
>>run.
>>The first just exits with a return code of 1(Mac OSX 10.3.9); on SuSE
>>Linux 9.3, it seg faults.
>
>Is the Mac OS X platform x86 or PPC?

PPC

>  What about the SuSE?

x86_64

>What options did you compile with?

the standard ones

>  What's your version of GCC?

Mac 10.3.9 uses 3.3 and SuSE uses 3.3.5
The thing is, 2.2d compiles and runs perfectly.


>><smalltalker2> does anyone have problems with 2.3. mine compiles on
>>2
>>                platforms but wont
>> run.
>><smalltalker2> first just exits with a return code of 1, the other seg faults
>
>We're happy to help in #gnu-smalltalk, but we aren't always around.
>
>--
>Stephen Compall
>http://scompall.nocandysw.com/blog
>##smalltalk,#gnu-smalltalk on Freenode IRC
>
>
>_______________________________________________
>help-smalltalk mailing list
>[hidden email]
>http://lists.gnu.org/mailman/listinfo/help-smalltalk



_______________________________________________
help-smalltalk mailing list
[hidden email]
http://lists.gnu.org/mailman/listinfo/help-smalltalk
Reply | Threaded
Open this post in threaded view
|

Re: Re: v 2.3

Paolo Bonzini
>> Is the Mac OS X platform x86 or PPC?
>
> PPC
>
>>  What about the SuSE?
>
> x86_64
>
> The thing is, 2.2d compiles and runs perfectly.

2.3.1 should be better (dunno about Mac OS X as I cannot reproduce it,
but the bug fixes in this release should be pretty generic).

Paolo



_______________________________________________
help-smalltalk mailing list
[hidden email]
http://lists.gnu.org/mailman/listinfo/help-smalltalk