[squeak-dev] [BUG] [] storeString goes into a tight infinite loop on a cog vm.

David T. Lewis lewis at mail.msen.com
Fri Jun 3 00:19:29 UTC 2011


On Thu, Jun 02, 2011 at 04:16:25PM -0700, Eliot Miranda wrote:
> On Sun, May 29, 2011 at 4:01 PM, Jerome Peace
> <peace_the_dreamer at yahoo.com>wrote:
> 
> > Hi all,
> >
> > This is a two part question.
> >
> > First is this still a bad bug in cog?
> >
> 
> Nothing to do with Cog.  Also happens in the interpreter.  It's a
> manifestation of the limitations of storeOn:.
> 

Indeed. Since #storeString calls #storeOn:, try this to get a better
idea of why "[] storeString" might use too much memory:

  fs := FileStream fileNamed: 'nilBlock.dat'.
  [] storeOn: fs.
  fs close.

Dave

> 
> > I am using a March version of cog (3.9-7 ?). I have tried printing
> >
> > [] storeString
> >
> > in Sq11453 running on cog397 and on an earlier cog.
> >
> > The program goes into a tight infinite loop. It will not respond to a user
> > interrupt and AFAICT the only way out is to kill the  cog vm from the system
> > console. I originally found it on an older vm before trying to update to the
> > latest one I have downloaded.
> >
> > Second question is what was I really trying to say?
> >
> > I am collecting time to runs for a bunch of blocks. What I wanted to do was
> > to print each block next to its run time. I.E. from a block get a string
> > which if evaluated would be equivalent to the block. I thought that was what
> > store string was for. But for block it doesn't work. It didn't work in 3.9
> > though there you could at least interrupt the attempt.
> > printString is no help since it just tells me I have a closure. What
> > particular closure remains a mystery.
> >
> > It seems to me that in many cases storeString fails to do its stated
> > function.
> >
> > Anyway is there a known way to get from the block to a readable description
> > of it?
> >
> > Yours in curiosity and service, --Jerome Peace
> >
> >

> 




More information about the Squeak-dev mailing list