Hi Eliot,
I've seen that you are consistently maintaining the MT version of the Cog, so I wonder what is his status. Is it usable?
Esteban
On 31 July 2013 13:42, Esteban Lorenzano estebanlm@gmail.com wrote:
Hi Eliot,
I've seen that you are consistently maintaining the MT version of the Cog, so I wonder what is his status. Is it usable?
I'm not Eliot, obviously :), but I run all the external package test suites for Squeak against Cog MT (in addition to running them against Cog and the Interpreter VM).
I've not seen any problems, apart from some log spam of the form "warning: VM parameter 48 indicates Process doesn't have threadId; VM will not thread".
frank
Esteban
On 31 July 2013 15:09, Frank Shearar frank.shearar@gmail.com wrote:
On 31 July 2013 13:42, Esteban Lorenzano estebanlm@gmail.com wrote:
Hi Eliot,
I've seen that you are consistently maintaining the MT version of the Cog, so I wonder what is his status. Is it usable?
I'm not Eliot, obviously :), but I run all the external package test suites for Squeak against Cog MT (in addition to running them against Cog and the Interpreter VM).
I've not seen any problems, apart from some log spam of the form "warning: VM parameter 48 indicates Process doesn't have threadId; VM will not thread".
that's what you should change in image, before VM can start using threading features:
Link subclass: #Process instanceVariableNames: 'suspendedContext priority myList threadId errorHandler name env' classVariableNames: 'PSKeys PSKeysSema' poolDictionaries: '' category: 'Kernel-Processes'
And then:
VirtualMachine class>>processHasThreadIdInstVar: aBoolean "The threaded VM needs to know if the 4th inst var of Process is threadId which it uses to control process-to-thread binding. This flag persists across snapshots, stored in the image header." aBoolean ifTrue: [self assert: (Process instVarNames at: 4) ='threadId']. self parameterAt: 48 put: ((self parameterAt: 48) bitClear: 1) + (aBoolean asBit) this is in Pharo for a while now. But we don't using CogitMT still.
frank
Esteban
On Jul 31, 2013, at 4:16 PM, Igor Stasenko siguctua@gmail.com wrote:
On 31 July 2013 15:09, Frank Shearar frank.shearar@gmail.com wrote:
On 31 July 2013 13:42, Esteban Lorenzano estebanlm@gmail.com wrote:
Hi Eliot,
I've seen that you are consistently maintaining the MT version of the Cog, so I wonder what is his status. Is it usable?
I'm not Eliot, obviously :), but I run all the external package test suites for Squeak against Cog MT (in addition to running them against Cog and the Interpreter VM).
I've not seen any problems, apart from some log spam of the form "warning: VM parameter 48 indicates Process doesn't have threadId; VM will not thread".
that's what you should change in image, before VM can start using threading features:
Link subclass: #Process instanceVariableNames: 'suspendedContext priority myList threadId errorHandler name env' classVariableNames: 'PSKeys PSKeysSema' poolDictionaries: '' category: 'Kernel-Processes'
And then:
VirtualMachine class>>processHasThreadIdInstVar: aBoolean "The threaded VM needs to know if the 4th inst var of Process is threadId which it uses to control process-to-thread binding. This flag persists across snapshots, stored in the image header." aBoolean ifTrue: [self assert: (Process instVarNames at: 4) ='threadId']. self parameterAt: 48 put: ((self parameterAt: 48) bitClear: 1) + (aBoolean asBit)
this is in Pharo for a while now. But we don't using CogitMT still.
yes, but I would like to think about it, that's why I asked :)
frank
Esteban
-- Best regards, Igor Stasenko.
On 31 July 2013 16:25, Esteban Lorenzano estebanlm@gmail.com wrote:
On Jul 31, 2013, at 4:16 PM, Igor Stasenko siguctua@gmail.com wrote:
On 31 July 2013 15:09, Frank Shearar frank.shearar@gmail.com wrote:
On 31 July 2013 13:42, Esteban Lorenzano estebanlm@gmail.com wrote:
Hi Eliot,
I've seen that you are consistently maintaining the MT version of the Cog, so I wonder what is his status. Is it usable?
I'm not Eliot, obviously :), but I run all the external package test suites for Squeak against Cog MT (in addition to running them against Cog and the Interpreter VM).
I've not seen any problems, apart from some log spam of the form "warning: VM parameter 48 indicates Process doesn't have threadId; VM will not thread".
that's what you should change in image, before VM can start using threading features:
Link subclass: #Process instanceVariableNames: 'suspendedContext priority myList threadId errorHandler name env' classVariableNames: 'PSKeys PSKeysSema' poolDictionaries: '' category: 'Kernel-Processes'
And then:
VirtualMachine class>>processHasThreadIdInstVar: aBoolean "The threaded VM needs to know if the 4th inst var of Process is threadId which it uses to control process-to-thread binding. This flag persists across snapshots, stored in the image header." aBoolean ifTrue: [self assert: (Process instVarNames at: 4) ='threadId']. self parameterAt: 48 put: ((self parameterAt: 48) bitClear: 1) + (aBoolean asBit)
this is in Pharo for a while now. But we don't using CogitMT still.
yes, but I would like to think about it, that's why I asked :)
yes, me too.. (my reply was not an answer to your question for sure)
Hi Esteban,
On Wed, Jul 31, 2013 at 5:42 AM, Esteban Lorenzano estebanlm@gmail.comwrote:
Hi Eliot,
I've seen that you are consistently maintaining the MT version of the Cog, so I wonder what is his status. Is it usable?
I have a very simple test case, a REPL loop that runs in parallel with the UI. This works. I had a more complex case that I have not maintained, a concurrent callout to the Mac file chooser dialog. The dialog uses (asynchronous, concurrent) callbacks to ask the client about valid file names. This nearly worked but I haven't had time to get back to it. (Another unmaintained test case is a concurrent interface to ODBC).
I think the scheme should work well but it requires work. I think the work is worth it, but I need to find the time, and I need a collaborator.
Esteban, I think this would be relevant for your Mac UI work, and would revolutionize the Squeak/Pharo FFI. But it is not an easy thing to develop (concurrency is never easy to deal with).
OR to put it another way,
On 31-07-2013, at 10:23 AM and 10:23AM, Eliot Miranda eliot.miranda@gmail.com wroted:
Butconit icursrenotncyan eis nasyever easthingy to to dedeal wveloithp -- sig error 'mind lost in thre*+++outofcheeseerror+++
tim -- tim Rowledge; tim@rowledge.org; http://www.rowledge.org/tim Fractured Idiom:- L'ETAT, C'EST MOE - All the world's a stooge
On 31 July 2013 18:33, tim Rowledge tim@rowledge.org wrote:
OR to put it another way,
On 31-07-2013, at 10:23 AM and 10:23AM, Eliot Miranda eliot.miranda@gmail.com wroted:
Butconit icursrenotncyan eis nasyever easthingy to to dedeal wveloithp -- sig error 'mind lost in thre*+++outofcheeseerror+++
I've actually seen that, in a FreeBSD /var/log/messages. Well, something a lot like it. Reading interleaved English is... entertaining!
frank
tim
tim Rowledge; tim@rowledge.org; http://www.rowledge.org/tim Fractured Idiom:- L'ETAT, C'EST MOE - All the world's a stooge
Hi Eliot,
Sorry for the delayed answer, I've been running with other issues :( Yes, I think this is important and I would like to allocate some time to work on it. I will start preparing a CI-job for the CogMT, next step would be to finish your cases. If you point me where to start, I can be your collaborator in this task :)
Esteban
On Jul 31, 2013, at 7:23 PM, Eliot Miranda eliot.miranda@gmail.com wrote:
Hi Esteban,
On Wed, Jul 31, 2013 at 5:42 AM, Esteban Lorenzano estebanlm@gmail.com wrote:
Hi Eliot,
I've seen that you are consistently maintaining the MT version of the Cog, so I wonder what is his status. Is it usable?
I have a very simple test case, a REPL loop that runs in parallel with the UI. This works. I had a more complex case that I have not maintained, a concurrent callout to the Mac file chooser dialog. The dialog uses (asynchronous, concurrent) callbacks to ask the client about valid file names. This nearly worked but I haven't had time to get back to it. (Another unmaintained test case is a concurrent interface to ODBC).
I think the scheme should work well but it requires work. I think the work is worth it, but I need to find the time, and I need a collaborator.
Esteban, I think this would be relevant for your Mac UI work, and would revolutionize the Squeak/Pharo FFI. But it is not an easy thing to develop (concurrency is never easy to deal with).
best, Eliot
vm-dev@lists.squeakfoundation.org