(no subject)

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

(no subject)

larrry
Hi, 

Apologies for maybe cross-posting - been having trouble with getting my pharo mailing lists straight. I'm throwing this out there in case it turns out to be a bug. 

I'm running the Seaside one-click install on OS X Lion. 
Pharo1.3 
Latest update: #13302 

I can reliably cause my VM to freeze up and need to Force-Quit it from the OS. 

I'm implementing (copying) the probability distribution classes from the blue book. When I tried to create an instance of the Binomial class, the system hung. I can replicate the problem by sending the message #basicNew to ProbabilityDistribution. ProbabilityDistribution is a direct subclass of Stream and I haven't overridden or modified #basicNew. 

What's happening is that it fails in the BlockClosure [anObject doit], but only when I instantiate a member of this particular class hierarchy. In any attempt to instantiate a ProbabilityDistribution or its subclasses, a #doIt in a Workspace hits the line "self suspend" in the #terminate method of Process and the VM hangs there. 

I believe they had ProbabilityDistribution subclass from Stream because sampling from a distribution is like reading from a Stream, but I don't think any there's any actual shared code, so I switched the superclass of ProbabilityDistribution to Object and the code works fine now. 

If you want to replicate, just create a subclass Foo of Stream and send it the message #basicNew.

Thanks. 
Larry