Hi all,
This is a two part question.
First is this still a bad bug in cog?
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
I think you should send #decompile to the block.
Cheers, Richo
On Sun, May 29, 2011 at 8:01 PM, Jerome Peace peace_the_dreamer@yahoo.comwrote:
Hi all,
This is a two part question.
First is this still a bad bug in cog?
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
On Sun, May 29, 2011 at 4:01 PM, Jerome Peace peace_the_dreamer@yahoo.comwrote:
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:.
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
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@yahoo.comwrote:
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
squeak-dev@lists.squeakfoundation.org