Re: [Pharo-project] How to subclass Process and have it used by spawned blocks?
Stefan the first link I sent was wrong (obviously) did you check the second? Stef On Sep 29, 2010, at 9:55 PM, Stefan Marr wrote:
Stef, I had a look at the description of these fixes, but it does not look like there is something related in it.
Eliot, the requested output is below. But as far as I can see, it is identical. Have verified it also in the Squeak 4.1 image, all three produce the same bytecode.
Perhaps it not the compiler directly but some closure related code?
Thanks Stefan
Pharo 1.1: (Erlang class>>#spawn:) abstractSymbolic
'<primitive: 19> pushLit: Process pushTemp: 0 closureNumCopied: 1 numArgs: 0 bytes 51 to 59 pushConstant: 1 send: #halt (0 args) pop pushTemp: 0 send: #value (0 args) pop pushLit: Processor send: #terminateActive (0 args) blockReturn send: #asContext (0 args) pushLit: Processor send: #activePriority (0 args) send: #forContext:priority: (2 args) popIntoTemp: 1 pushTemp: 1 send: #resume (0 args) pop pushTemp: 1 returnTop '
Pharo 1.1: (Erlang class>>#spawn:) symbolic. '<primitive: 19> 45 <41> pushLit: Process 46 <10> pushTemp: 0 47 <8F 10 00 09> closureNumCopied: 1 numArgs: 0 bytes 51 to 59 51 <76> pushConstant: 1 52 <D3> send: halt 53 <87> pop 54 <10> pushTemp: 0 55 <C9> send: value 56 <87> pop 57 <45> pushLit: Processor 58 <D4> send: terminateActive 59 <7D> blockReturn 60 <D2> send: asContext 61 <45> pushLit: Processor 62 <D6> send: activePriority 63 <F0> send: forContext:priority: 64 <69> popIntoTemp: 1 65 <11> pushTemp: 1 66 <D7> send: resume 67 <87> pop 68 <11> pushTemp: 1 69 <7C> returnTop '
Squeak 4.2: (Erlang class>>#spawn:) abstractSymbolic. '<primitive: 19> pushLit: Process pushTemp: 0 closureNumCopied: 1 numArgs: 0 bytes 51 to 59 pushConstant: 1 send: #halt (0 args) pop pushTemp: 0 send: #value (0 args) pop pushLit: Processor send: #terminateActive (0 args) blockReturn send: #asContext (0 args) pushLit: Processor send: #activePriority (0 args) send: #forContext:priority: (2 args) popIntoTemp: 1 pushTemp: 1 send: #resume (0 args) pop pushTemp: 1 returnTop '
Squeak 4.2: (Erlang class>>#spawn:) symbolic.
'<primitive: 19> 45 <41> pushLit: Process 46 <10> pushTemp: 0 47 <8F 10 00 09> closureNumCopied: 1 numArgs: 0 bytes 51 to 59 51 <76> pushConstant: 1 52 <D3> send: halt 53 <87> pop 54 <10> pushTemp: 0 55 <C9> send: value 56 <87> pop 57 <45> pushLit: Processor 58 <D4> send: terminateActive 59 <7D> blockReturn 60 <D2> send: asContext 61 <45> pushLit: Processor 62 <D6> send: activePriority 63 <F0> send: forContext:priority: 64 <69> popIntoTemp: 1 65 <11> pushTemp: 1 66 <D7> send: resume 67 <87> pop 68 <11> pushTemp: 1 69 <7C> returnTop '
On 29 Sep 2010, at 20:29, Stéphane Ducasse wrote:
and http://code.google.com/p/pharo/issues/list?cursor=2818
Stef
spawn: aBlock "Answer an ErlProcess running the code given in the parameter. The process isscheduled." | proc | <primitive: 19> "Simulation guard" proc := Process forContext: [1 halt. aBlock value. Processor terminateActive] asContext priority: Processor activePriority. proc resume. ^ proc
-- Stefan Marr Software Languages Lab Vrije Universiteit Brussel Pleinlaan 2 / B-1050 Brussels / Belgium http://soft.vub.ac.be/~smarr Phone: +32 2 629 2974 Fax: +32 2 629 3525
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Yes, had a look at http://code.google.com/p/pharo/issues/detail?id=2818 There are a lot todos but nothing which sounds like it is related to my symptoms. However, since the bytecode is equal to what Squeak 4.2 produces and where it works, I would guess, that the compiler is not the problem. Best regards Stefan On 29 Sep 2010, at 22:32, Stéphane Ducasse wrote:
Stefan the first link I sent was wrong (obviously) did you check the second?
Stef
On Sep 29, 2010, at 9:55 PM, Stefan Marr wrote:
Stef, I had a look at the description of these fixes, but it does not look like there is something related in it.
Eliot, the requested output is below. But as far as I can see, it is identical. Have verified it also in the Squeak 4.1 image, all three produce the same bytecode.
Perhaps it not the compiler directly but some closure related code?
Thanks Stefan
Pharo 1.1: (Erlang class>>#spawn:) abstractSymbolic
'<primitive: 19> pushLit: Process pushTemp: 0 closureNumCopied: 1 numArgs: 0 bytes 51 to 59 pushConstant: 1 send: #halt (0 args) pop pushTemp: 0 send: #value (0 args) pop pushLit: Processor send: #terminateActive (0 args) blockReturn send: #asContext (0 args) pushLit: Processor send: #activePriority (0 args) send: #forContext:priority: (2 args) popIntoTemp: 1 pushTemp: 1 send: #resume (0 args) pop pushTemp: 1 returnTop '
Pharo 1.1: (Erlang class>>#spawn:) symbolic. '<primitive: 19> 45 <41> pushLit: Process 46 <10> pushTemp: 0 47 <8F 10 00 09> closureNumCopied: 1 numArgs: 0 bytes 51 to 59 51 <76> pushConstant: 1 52 <D3> send: halt 53 <87> pop 54 <10> pushTemp: 0 55 <C9> send: value 56 <87> pop 57 <45> pushLit: Processor 58 <D4> send: terminateActive 59 <7D> blockReturn 60 <D2> send: asContext 61 <45> pushLit: Processor 62 <D6> send: activePriority 63 <F0> send: forContext:priority: 64 <69> popIntoTemp: 1 65 <11> pushTemp: 1 66 <D7> send: resume 67 <87> pop 68 <11> pushTemp: 1 69 <7C> returnTop '
Squeak 4.2: (Erlang class>>#spawn:) abstractSymbolic. '<primitive: 19> pushLit: Process pushTemp: 0 closureNumCopied: 1 numArgs: 0 bytes 51 to 59 pushConstant: 1 send: #halt (0 args) pop pushTemp: 0 send: #value (0 args) pop pushLit: Processor send: #terminateActive (0 args) blockReturn send: #asContext (0 args) pushLit: Processor send: #activePriority (0 args) send: #forContext:priority: (2 args) popIntoTemp: 1 pushTemp: 1 send: #resume (0 args) pop pushTemp: 1 returnTop '
Squeak 4.2: (Erlang class>>#spawn:) symbolic.
'<primitive: 19> 45 <41> pushLit: Process 46 <10> pushTemp: 0 47 <8F 10 00 09> closureNumCopied: 1 numArgs: 0 bytes 51 to 59 51 <76> pushConstant: 1 52 <D3> send: halt 53 <87> pop 54 <10> pushTemp: 0 55 <C9> send: value 56 <87> pop 57 <45> pushLit: Processor 58 <D4> send: terminateActive 59 <7D> blockReturn 60 <D2> send: asContext 61 <45> pushLit: Processor 62 <D6> send: activePriority 63 <F0> send: forContext:priority: 64 <69> popIntoTemp: 1 65 <11> pushTemp: 1 66 <D7> send: resume 67 <87> pop 68 <11> pushTemp: 1 69 <7C> returnTop '
On 29 Sep 2010, at 20:29, Stéphane Ducasse wrote:
and http://code.google.com/p/pharo/issues/list?cursor=2818
Stef
spawn: aBlock "Answer an ErlProcess running the code given in the parameter. The process isscheduled." | proc | <primitive: 19> "Simulation guard" proc := Process forContext: [1 halt. aBlock value. Processor terminateActive] asContext priority: Processor activePriority. proc resume. ^ proc
-- Stefan Marr Software Languages Lab Vrije Universiteit Brussel Pleinlaan 2 / B-1050 Brussels / Belgium http://soft.vub.ac.be/~smarr Phone: +32 2 629 2974 Fax: +32 2 629 3525
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
-- Stefan Marr Software Languages Lab Vrije Universiteit Brussel Pleinlaan 2 / B-1050 Brussels / Belgium http://soft.vub.ac.be/~smarr Phone: +32 2 629 2974 Fax: +32 2 629 3525
participants (2)
-
Stefan Marr -
Stéphane Ducasse