Pharo-dev
By thread
pharo-dev@lists.pharo.org
By month
Messages by month
- ----- 2026 -----
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- 1 participants
- 144633 messages
Re: [Pharo-dev] Pharo6 with Ubuntu and OSSubprocess/threaded heartbeat crashes and problems
by Alistair Grant
Hi Sabine,
The docket container will need to be privileged to adjust thread priority.
Cheers,
Alistair
(on phone)
On 5 Mar. 2018 12:44, "Sabine Manaa" <manaa.sabine(a)gmail.com> wrote:
We want to run Pharo6 with Ubuntu 16.04 Linux (in a Docker Image) and use
OSSubprocess.
For this, we use this vm: https://get.pharo.org/61+vmT
[1] tells me: "If you are installing under Linux, then you must use a
threaded heartbeat VM"
We also created a file /etc/security/limits.d/pharo.conf and put the
parameters in like described in the message [2] when startup. Also we log
out and in.
Question 1: the message (pthread_setschedparam failed: Operation not
permitted) comes again to the console each time we use OSSubprocess. As far
as I understand, it should disappear. Does this mean, that we did not edit
the pharo.conf correctly?
Question 2: after several uses of OSSubprocess within our application, Pharo
crashes (no PharoDebug.log) with the following messages [3].
How can we avoid this, what are we doing wrong?
Question 3: sometimes (!) when we load (exactly the same code loaded with a
script), we also get a crash, see [4]. Bug? wrong vm?
I am unhappy with this and it takes a lot of time. What are we doing wrong?
We want to run Pharo6 with OSSubprocess in Linux within a docker image for
our staging environment.
Help very welcome :-)
Sabine
[1]https://github.com/marianopeck/OSSubprocess
[2](https://github.com/OpenSmalltalk/opensmalltalk-
vm/releases/tag/r3732#linux)
[3]crash message
*** buffer overflow detected ***:
/spf/build/pharo-vm/lib/pharo/5.0-201707201942/pharo terminated
======= Backtrace: =========
/lib/i386-linux-gnu/libc.so.6(+0x67377)[0xf75f3377]
/lib/i386-linux-gnu/libc.so.6(__fortify_fail+0x68)[0xf7683708]
/lib/i386-linux-gnu/libc.so.6(+0xf58f8)[0xf76818f8]
/lib/i386-linux-gnu/libc.so.6(+0xf75fa)[0xf76835fa]
/spf/build/pharo-vm/lib/pharo/5.0-201707201942/pharo(
aioEnable+0x31)[0x80c9811]
/spf/build/pharo-vm/lib/pharo/5.0-201707201942/pharo[0x81215ee]
[0xa1010e0]
[0xa1c2bb8]
[0xa15f50c]
....a lot more
[4] PharoDebug.log
HERE_BE_DRAGONS_HERE
KeyNotFound: key #arg1 not found in Dictionary
5 March 2018 11:31:51.792142 am
VM: unix - i686 - linux-gnu - CoInterpreter VMMaker.oscog-eem.2254 uuid:
4f2c2cce-f4a2-469a-93f1-97ed941df0ad Jul 20 2017
StackToRegisterMappingCogit VMMaker.oscog-eem.2252 uuid:
2f3e9b0e-ecd3-4adf-b092-cce2e2587a5c Jul 20 2017
VM: 201707201942 https://github.com/OpenSmalltalk/opensmalltalk-vm.git $
Date: Thu Jul 20 12:42:21 2017 -0700 $ Plugins: 201707201942
https://github.com/OpenSmalltalk/opensmalltalk-vm.git $
Image: Pharo6.0 [Latest update: #60536]
Dictionary>>errorKeyNotFound:
Receiver: a Dictionary(#arg3->1 #tmp2->2 )
Arguments and temporary variables:
aKey: #arg1
Receiver's instance variables:
tally: 2
array: {nil. nil. #arg3->1. #tmp2->2. nil}
[ self errorKeyNotFound: key ] in Dictionary>>at:
Receiver: a Dictionary(#arg3->1 #tmp2->2 )
Arguments and temporary variables:
key: #arg1
Receiver's instance variables:
tally: 2
array: {nil. nil. #arg3->1. #tmp2->2. nil}
Dictionary>>at:ifAbsent:
Receiver: a Dictionary(#arg3->1 #tmp2->2 )
Arguments and temporary variables:
arg1: #arg1
arg2: [ self errorKeyNotFound: key ]
tmp1: nil
Receiver's instance variables:
tally: 2
array: {nil. nil. #arg3->1. #tmp2->2. nil}
Dictionary>>at:
Receiver: a Dictionary(#arg3->1 #tmp2->2 )
Arguments and temporary variables:
key: #arg1
Receiver's instance variables:
tally: 2
array: {nil. nil. #arg3->1. #tmp2->2. nil}
IRPushClosureCopy>>indexForVarNamed:
Receiver: pushClosureCopyCopiedValues: #() args: #(#arg3)
Arguments and temporary variables:
aName: #arg1
Receiver's instance variables:
sourceNode: RBBlockNode([ :arg3 |
| tmp2 |
tmp2 := arg3.
tmp2
nextPutAll: arg...etc...
bytecodeIndex: nil
sequence: an IRSequence (1)
destination: an IRSequence (3)
successor: nil
numArgs: nil
blockSequence: an IRSequence (2)
tempMap: a Dictionary(#arg3->1 #tmp2->2 )
copiedValues: #()
lastBlockSequence: an IRSequence (2)
arguments: #(#arg3)
IRTranslatorV2>>visitPushTemp:
Receiver: an IRTranslatorV2
Arguments and temporary variables:
tmp: pushTemp: #arg1
Receiver's instance variables:
gen: an IRBytecodeGenerator
currentScope: a Stack(pushClosureCopyCopiedValues: #()
args: #(#arg3) an
IRMeth...etc...
trailer: a CompiledMethodTrailer
tempVectorStack: a Stack()
compilationContext: a CompilationContext
IRPushTemp>>accept:
Receiver: pushTemp: #arg1
Arguments and temporary variables:
aVisitor: an IRTranslatorV2
Receiver's instance variables:
sourceNode: RBArgumentNode(arg1)
bytecodeIndex: nil
sequence: an IRSequence (2)
name: #arg1
IRTranslatorV2(IRVisitor)>>visitNode:
Receiver: an IRTranslatorV2
Arguments and temporary variables:
elem: pushTemp: #arg1
Receiver's instance variables:
gen: an IRBytecodeGenerator
currentScope: a Stack(pushClosureCopyCopiedValues: #()
args: #(#arg3) an
IRMeth...etc...
trailer: a CompiledMethodTrailer
tempVectorStack: a Stack()
compilationContext: a CompilationContext
IRTranslatorV2>>visitInstruction:
Receiver: an IRTranslatorV2
Arguments and temporary variables:
instr: pushTemp: #arg1
Receiver's instance variables:
gen: an IRBytecodeGenerator
currentScope: a Stack(pushClosureCopyCopiedValues: #()
args: #(#arg3) an
IRMeth...etc...
trailer: a CompiledMethodTrailer
tempVectorStack: a Stack()
compilationContext: a CompilationContext
[ :arg2 | self visitInstruction: arg2 ] in
IRTranslatorV2(IRVisitor)>>visitSequence:
Receiver: an IRTranslatorV2
Arguments and temporary variables:
arg1: an IRSequence (2)
arg2: pushTemp: #arg1
Receiver's instance variables:
gen: an IRBytecodeGenerator
currentScope: a Stack(pushClosureCopyCopiedValues: #()
args: #(#arg3) an
IRMeth...etc...
trailer: a CompiledMethodTrailer
tempVectorStack: a Stack()
compilationContext: a CompilationContext
OrderedCollection>>do:
Receiver: an OrderedCollection(pushTemp: #arg3 popIntoTemp: #tmp2
pushTemp:
#tmp2 pushDup pushTemp: ...etc...
Arguments and temporary variables:
<<error during printing>
Receiver's instance variables:
array: an Array(pushTemp: #arg3 popIntoTemp: #tmp2
pushTemp: #tmp2
pushDup push...etc...
firstIndex: 1
lastIndex: 25
IRSequence>>do:
Receiver: an IRSequence (2)
Arguments and temporary variables:
aBlock: [ :arg2 | self visitInstruction: arg2 ]
Receiver's instance variables:
sequence: an OrderedCollection(pushTemp: #arg3
popIntoTemp: #tmp2
pushTemp: #tm...etc...
orderNumber: 2
method: an IRMethod
IRTranslatorV2(IRVisitor)>>visitSequence:
Receiver: an IRTranslatorV2
Arguments and temporary variables:
arg1: an IRSequence (2)
Receiver's instance variables:
gen: an IRBytecodeGenerator
currentScope: a Stack(pushClosureCopyCopiedValues: #()
args: #(#arg3) an
IRMeth...etc...
trailer: a CompiledMethodTrailer
tempVectorStack: a Stack()
compilationContext: a CompilationContext
IRTranslatorV2>>visitSequence:
Receiver: an IRTranslatorV2
Arguments and temporary variables:
instructionSequence: an IRSequence (2)
Receiver's instance variables:
gen: an IRBytecodeGenerator
currentScope: a Stack(pushClosureCopyCopiedValues: #()
args: #(#arg3) an
IRMeth...etc...
trailer: a CompiledMethodTrailer
tempVectorStack: a Stack()
compilationContext: a CompilationContext
IRSequence>>accept:
Receiver: an IRSequence (2)
Arguments and temporary variables:
aVisitor: an IRTranslatorV2
Receiver's instance variables:
sequence: an OrderedCollection(pushTemp: #arg3
popIntoTemp: #tmp2
pushTemp: #tm...etc...
orderNumber: 2
method: an IRMethod
IRTranslatorV2(IRVisitor)>>visitNode:
Receiver: an IRTranslatorV2
Arguments and temporary variables:
elem: an IRSequence (2)
Receiver's instance variables:
gen: an IRBytecodeGenerator
currentScope: a Stack(pushClosureCopyCopiedValues: #()
args: #(#arg3) an
IRMeth...etc...
trailer: a CompiledMethodTrailer
tempVectorStack: a Stack()
compilationContext: a CompilationContext
[ :arg2 | self visitNode: arg2 ] in IRTranslatorV2(IRVisitor)>>visitNodes:
Receiver: an IRTranslatorV2
Arguments and temporary variables:
arg1: a SortedCollection(an IRSequence (1) an IRSequence
(2) an
IRSequence (3) ...etc...
arg2: an IRSequence (2)
Receiver's instance variables:
gen: an IRBytecodeGenerator
currentScope: a Stack(pushClosureCopyCopiedValues: #()
args: #(#arg3) an
IRMeth...etc...
trailer: a CompiledMethodTrailer
tempVectorStack: a Stack()
compilationContext: a CompilationContext
SortedCollection(OrderedCollection)>>do:
Receiver: a SortedCollection(an IRSequence (1) an IRSequence (2) an
IRSequence (3) an IRSequence (4)...etc...
Arguments and temporary variables:
<<error during printing>
Receiver's instance variables:
array: an Array(an IRSequence (1) an IRSequence (2) an
IRSequence (3) an
IRSequ...etc...
firstIndex: 1
lastIndex: 7
sortBlock: [ :arg2 :arg3 | arg2 orderNumber <= arg3
orderNumber ]
IRTranslatorV2(IRVisitor)>>visitNodes:
Receiver: an IRTranslatorV2
Arguments and temporary variables:
arg1: a SortedCollection(an IRSequence (1) an IRSequence
(2) an
IRSequence (3) ...etc...
Receiver's instance variables:
gen: an IRBytecodeGenerator
currentScope: a Stack(pushClosureCopyCopiedValues: #()
args: #(#arg3) an
IRMeth...etc...
trailer: a CompiledMethodTrailer
tempVectorStack: a Stack()
compilationContext: a CompilationContext
IRTranslatorV2>>visitSequences:
Receiver: an IRTranslatorV2
Arguments and temporary variables:
arg1: a SortedCollection(an IRSequence (1) an IRSequence
(2) an
IRSequence (3) ...etc...
Receiver's instance variables:
gen: an IRBytecodeGenerator
currentScope: a Stack(pushClosureCopyCopiedValues: #()
args: #(#arg3) an
IRMeth...etc...
trailer: a CompiledMethodTrailer
tempVectorStack: a Stack()
compilationContext: a CompilationContext
IRTranslatorV2>>visitMethod:
Receiver: an IRTranslatorV2
Arguments and temporary variables:
anIr: an IRMethod
Receiver's instance variables:
gen: an IRBytecodeGenerator
currentScope: a Stack(pushClosureCopyCopiedValues: #()
args: #(#arg3) an
IRMeth...etc...
trailer: a CompiledMethodTrailer
tempVectorStack: a Stack()
compilationContext: a CompilationContext
IRMethod>>accept:
Receiver: an IRMethod
Arguments and temporary variables:
aVisitor: an IRTranslatorV2
Receiver's instance variables:
sourceNode: logError: arg1 inContext: arg2
self
logStdErrorDuring: [ :arg3 |...etc...
startSequence: an IRSequence (1)
numArgs: 2
properties: nil
tempMap: a Dictionary(#arg1->1 #arg2->2 )
pragmas: an OrderedCollection()
additionalLiterals: an OCLiteralSet(#ifNotNil:)
compiledMethod: nil
compilationContext: a CompilationContext
irPrimitive: primitive 0
--
Sent from: http://forum.world.st/Pharo-Smalltalk-Developers-f1294837.html
March 5, 2018
[update 6.0] #60537
by Marcus Denker
⦠in the build queue:
60537
-----
21431 Monticello file out bug during bootstrap
https://pharo.fogbugz.com/f/cases/21431
March 5, 2018
Pharo6 with Ubuntu and OSSubprocess/threaded heartbeat crashes and problems
by Sabine Manaa
We want to run Pharo6 with Ubuntu 16.04 Linux (in a Docker Image) and use
OSSubprocess.
For this, we use this vm: https://get.pharo.org/61+vmT
[1] tells me: "If you are installing under Linux, then you must use a
threaded heartbeat VM"
We also created a file /etc/security/limits.d/pharo.conf and put the
parameters in like described in the message [2] when startup. Also we log
out and in.
Question 1: the message (pthread_setschedparam failed: Operation not
permitted) comes again to the console each time we use OSSubprocess. As far
as I understand, it should disappear. Does this mean, that we did not edit
the pharo.conf correctly?
Question 2: after several uses of OSSubprocess within our application, Pharo
crashes (no PharoDebug.log) with the following messages [3].
How can we avoid this, what are we doing wrong?
Question 3: sometimes (!) when we load (exactly the same code loaded with a
script), we also get a crash, see [4]. Bug? wrong vm?
I am unhappy with this and it takes a lot of time. What are we doing wrong?
We want to run Pharo6 with OSSubprocess in Linux within a docker image for
our staging environment.
Help very welcome :-)
Sabine
[1]https://github.com/marianopeck/OSSubprocess
[2](https://github.com/OpenSmalltalk/opensmalltalk-vm/releases/tag/r3732#lin…
[3]crash message
*** buffer overflow detected ***:
/spf/build/pharo-vm/lib/pharo/5.0-201707201942/pharo terminated
======= Backtrace: =========
/lib/i386-linux-gnu/libc.so.6(+0x67377)[0xf75f3377]
/lib/i386-linux-gnu/libc.so.6(__fortify_fail+0x68)[0xf7683708]
/lib/i386-linux-gnu/libc.so.6(+0xf58f8)[0xf76818f8]
/lib/i386-linux-gnu/libc.so.6(+0xf75fa)[0xf76835fa]
/spf/build/pharo-vm/lib/pharo/5.0-201707201942/pharo(aioEnable+0x31)[0x80c9811]
/spf/build/pharo-vm/lib/pharo/5.0-201707201942/pharo[0x81215ee]
[0xa1010e0]
[0xa1c2bb8]
[0xa15f50c]
....a lot more
[4] PharoDebug.log
HERE_BE_DRAGONS_HERE
KeyNotFound: key #arg1 not found in Dictionary
5 March 2018 11:31:51.792142 am
VM: unix - i686 - linux-gnu - CoInterpreter VMMaker.oscog-eem.2254 uuid:
4f2c2cce-f4a2-469a-93f1-97ed941df0ad Jul 20 2017
StackToRegisterMappingCogit VMMaker.oscog-eem.2252 uuid:
2f3e9b0e-ecd3-4adf-b092-cce2e2587a5c Jul 20 2017
VM: 201707201942 https://github.com/OpenSmalltalk/opensmalltalk-vm.git $
Date: Thu Jul 20 12:42:21 2017 -0700 $ Plugins: 201707201942
https://github.com/OpenSmalltalk/opensmalltalk-vm.git $
Image: Pharo6.0 [Latest update: #60536]
Dictionary>>errorKeyNotFound:
Receiver: a Dictionary(#arg3->1 #tmp2->2 )
Arguments and temporary variables:
aKey: #arg1
Receiver's instance variables:
tally: 2
array: {nil. nil. #arg3->1. #tmp2->2. nil}
[ self errorKeyNotFound: key ] in Dictionary>>at:
Receiver: a Dictionary(#arg3->1 #tmp2->2 )
Arguments and temporary variables:
key: #arg1
Receiver's instance variables:
tally: 2
array: {nil. nil. #arg3->1. #tmp2->2. nil}
Dictionary>>at:ifAbsent:
Receiver: a Dictionary(#arg3->1 #tmp2->2 )
Arguments and temporary variables:
arg1: #arg1
arg2: [ self errorKeyNotFound: key ]
tmp1: nil
Receiver's instance variables:
tally: 2
array: {nil. nil. #arg3->1. #tmp2->2. nil}
Dictionary>>at:
Receiver: a Dictionary(#arg3->1 #tmp2->2 )
Arguments and temporary variables:
key: #arg1
Receiver's instance variables:
tally: 2
array: {nil. nil. #arg3->1. #tmp2->2. nil}
IRPushClosureCopy>>indexForVarNamed:
Receiver: pushClosureCopyCopiedValues: #() args: #(#arg3)
Arguments and temporary variables:
aName: #arg1
Receiver's instance variables:
sourceNode: RBBlockNode([ :arg3 |
| tmp2 |
tmp2 := arg3.
tmp2
nextPutAll: arg...etc...
bytecodeIndex: nil
sequence: an IRSequence (1)
destination: an IRSequence (3)
successor: nil
numArgs: nil
blockSequence: an IRSequence (2)
tempMap: a Dictionary(#arg3->1 #tmp2->2 )
copiedValues: #()
lastBlockSequence: an IRSequence (2)
arguments: #(#arg3)
IRTranslatorV2>>visitPushTemp:
Receiver: an IRTranslatorV2
Arguments and temporary variables:
tmp: pushTemp: #arg1
Receiver's instance variables:
gen: an IRBytecodeGenerator
currentScope: a Stack(pushClosureCopyCopiedValues: #() args: #(#arg3) an
IRMeth...etc...
trailer: a CompiledMethodTrailer
tempVectorStack: a Stack()
compilationContext: a CompilationContext
IRPushTemp>>accept:
Receiver: pushTemp: #arg1
Arguments and temporary variables:
aVisitor: an IRTranslatorV2
Receiver's instance variables:
sourceNode: RBArgumentNode(arg1)
bytecodeIndex: nil
sequence: an IRSequence (2)
name: #arg1
IRTranslatorV2(IRVisitor)>>visitNode:
Receiver: an IRTranslatorV2
Arguments and temporary variables:
elem: pushTemp: #arg1
Receiver's instance variables:
gen: an IRBytecodeGenerator
currentScope: a Stack(pushClosureCopyCopiedValues: #() args: #(#arg3) an
IRMeth...etc...
trailer: a CompiledMethodTrailer
tempVectorStack: a Stack()
compilationContext: a CompilationContext
IRTranslatorV2>>visitInstruction:
Receiver: an IRTranslatorV2
Arguments and temporary variables:
instr: pushTemp: #arg1
Receiver's instance variables:
gen: an IRBytecodeGenerator
currentScope: a Stack(pushClosureCopyCopiedValues: #() args: #(#arg3) an
IRMeth...etc...
trailer: a CompiledMethodTrailer
tempVectorStack: a Stack()
compilationContext: a CompilationContext
[ :arg2 | self visitInstruction: arg2 ] in
IRTranslatorV2(IRVisitor)>>visitSequence:
Receiver: an IRTranslatorV2
Arguments and temporary variables:
arg1: an IRSequence (2)
arg2: pushTemp: #arg1
Receiver's instance variables:
gen: an IRBytecodeGenerator
currentScope: a Stack(pushClosureCopyCopiedValues: #() args: #(#arg3) an
IRMeth...etc...
trailer: a CompiledMethodTrailer
tempVectorStack: a Stack()
compilationContext: a CompilationContext
OrderedCollection>>do:
Receiver: an OrderedCollection(pushTemp: #arg3 popIntoTemp: #tmp2 pushTemp:
#tmp2 pushDup pushTemp: ...etc...
Arguments and temporary variables:
<<error during printing>
Receiver's instance variables:
array: an Array(pushTemp: #arg3 popIntoTemp: #tmp2 pushTemp: #tmp2
pushDup push...etc...
firstIndex: 1
lastIndex: 25
IRSequence>>do:
Receiver: an IRSequence (2)
Arguments and temporary variables:
aBlock: [ :arg2 | self visitInstruction: arg2 ]
Receiver's instance variables:
sequence: an OrderedCollection(pushTemp: #arg3 popIntoTemp: #tmp2
pushTemp: #tm...etc...
orderNumber: 2
method: an IRMethod
IRTranslatorV2(IRVisitor)>>visitSequence:
Receiver: an IRTranslatorV2
Arguments and temporary variables:
arg1: an IRSequence (2)
Receiver's instance variables:
gen: an IRBytecodeGenerator
currentScope: a Stack(pushClosureCopyCopiedValues: #() args: #(#arg3) an
IRMeth...etc...
trailer: a CompiledMethodTrailer
tempVectorStack: a Stack()
compilationContext: a CompilationContext
IRTranslatorV2>>visitSequence:
Receiver: an IRTranslatorV2
Arguments and temporary variables:
instructionSequence: an IRSequence (2)
Receiver's instance variables:
gen: an IRBytecodeGenerator
currentScope: a Stack(pushClosureCopyCopiedValues: #() args: #(#arg3) an
IRMeth...etc...
trailer: a CompiledMethodTrailer
tempVectorStack: a Stack()
compilationContext: a CompilationContext
IRSequence>>accept:
Receiver: an IRSequence (2)
Arguments and temporary variables:
aVisitor: an IRTranslatorV2
Receiver's instance variables:
sequence: an OrderedCollection(pushTemp: #arg3 popIntoTemp: #tmp2
pushTemp: #tm...etc...
orderNumber: 2
method: an IRMethod
IRTranslatorV2(IRVisitor)>>visitNode:
Receiver: an IRTranslatorV2
Arguments and temporary variables:
elem: an IRSequence (2)
Receiver's instance variables:
gen: an IRBytecodeGenerator
currentScope: a Stack(pushClosureCopyCopiedValues: #() args: #(#arg3) an
IRMeth...etc...
trailer: a CompiledMethodTrailer
tempVectorStack: a Stack()
compilationContext: a CompilationContext
[ :arg2 | self visitNode: arg2 ] in IRTranslatorV2(IRVisitor)>>visitNodes:
Receiver: an IRTranslatorV2
Arguments and temporary variables:
arg1: a SortedCollection(an IRSequence (1) an IRSequence (2) an
IRSequence (3) ...etc...
arg2: an IRSequence (2)
Receiver's instance variables:
gen: an IRBytecodeGenerator
currentScope: a Stack(pushClosureCopyCopiedValues: #() args: #(#arg3) an
IRMeth...etc...
trailer: a CompiledMethodTrailer
tempVectorStack: a Stack()
compilationContext: a CompilationContext
SortedCollection(OrderedCollection)>>do:
Receiver: a SortedCollection(an IRSequence (1) an IRSequence (2) an
IRSequence (3) an IRSequence (4)...etc...
Arguments and temporary variables:
<<error during printing>
Receiver's instance variables:
array: an Array(an IRSequence (1) an IRSequence (2) an IRSequence (3) an
IRSequ...etc...
firstIndex: 1
lastIndex: 7
sortBlock: [ :arg2 :arg3 | arg2 orderNumber <= arg3 orderNumber ]
IRTranslatorV2(IRVisitor)>>visitNodes:
Receiver: an IRTranslatorV2
Arguments and temporary variables:
arg1: a SortedCollection(an IRSequence (1) an IRSequence (2) an
IRSequence (3) ...etc...
Receiver's instance variables:
gen: an IRBytecodeGenerator
currentScope: a Stack(pushClosureCopyCopiedValues: #() args: #(#arg3) an
IRMeth...etc...
trailer: a CompiledMethodTrailer
tempVectorStack: a Stack()
compilationContext: a CompilationContext
IRTranslatorV2>>visitSequences:
Receiver: an IRTranslatorV2
Arguments and temporary variables:
arg1: a SortedCollection(an IRSequence (1) an IRSequence (2) an
IRSequence (3) ...etc...
Receiver's instance variables:
gen: an IRBytecodeGenerator
currentScope: a Stack(pushClosureCopyCopiedValues: #() args: #(#arg3) an
IRMeth...etc...
trailer: a CompiledMethodTrailer
tempVectorStack: a Stack()
compilationContext: a CompilationContext
IRTranslatorV2>>visitMethod:
Receiver: an IRTranslatorV2
Arguments and temporary variables:
anIr: an IRMethod
Receiver's instance variables:
gen: an IRBytecodeGenerator
currentScope: a Stack(pushClosureCopyCopiedValues: #() args: #(#arg3) an
IRMeth...etc...
trailer: a CompiledMethodTrailer
tempVectorStack: a Stack()
compilationContext: a CompilationContext
IRMethod>>accept:
Receiver: an IRMethod
Arguments and temporary variables:
aVisitor: an IRTranslatorV2
Receiver's instance variables:
sourceNode: logError: arg1 inContext: arg2
self
logStdErrorDuring: [ :arg3 |...etc...
startSequence: an IRSequence (1)
numArgs: 2
properties: nil
tempMap: a Dictionary(#arg1->1 #arg2->2 )
pragmas: an OrderedCollection()
additionalLiterals: an OCLiteralSet(#ifNotNil:)
compiledMethod: nil
compilationContext: a CompilationContext
irPrimitive: primitive 0
--
Sent from: http://forum.world.st/Pharo-Smalltalk-Developers-f1294837.html
March 5, 2018
[Pharo 7.0-dev] Build #648: 21493 Cleanup BIConfigurableFormatter
by ci-pharo-ci-jenkins2@inria.fr
There is a new Pharo build available!
The status of the build #648 was: SUCCESS.
The Pull Request #1025 was integrated: "21493 Cleanup BIConfigurableFormatter"
Pull request url: https://github.com/pharo-project/pharo/pull/1025
Issue Url: https://pharo.fogbugz.com/f/cases/21493
Build Url: https://ci.inria.fr/pharo-ci-jenkins2/job/Test%20pending%20pull%20request%2…
March 5, 2018
Re: [Pharo-dev] The 6.1 Space Monkey is unhappy
by Marcus Denker
>>
>> What needs to be done?
>>
>> -> your change can be accepted as we know it does not fail more fixes
>> -> then we need fix the tests in Pharo6
>> -> in a perfect world we would update the slice checker to only fail for
>> now test failing⦠(it used to be lille thatâ¦).
>
> I must say that It made the validation two times slower, fragile and
> led to the hiding of problems instead of solving themâ¦
>
Yes, true.
Marcus
March 5, 2018
Re: [Pharo-dev] The 6.1 Space Monkey is unhappy
by Pavel Krivanek
2018-03-05 10:54 GMT+01:00 Marcus Denker <marcus.denker(a)inria.fr>:
>
>
>> On 5 Mar 2018, at 10:27, Alistair Grant <akgrant0710(a)gmail.com> wrote:
>>
>> Hi Marcus,
>>
>> On 5 March 2018 at 09:23, Marcus Denker <marcus.denker(a)inria.fr> wrote:
>>>
>>>
>>>> On 5 Mar 2018, at 09:16, Alistair Grant <akgrant0710(a)gmail.com> wrote:
>>>>
>>>> Hi Esteban & Marcus,
>>>>
>>>> I'm getting repeated validation failures for:
>>>>
>>>> https://pharo.manuscript.com/f/cases/21431
>>>>
>>>>
>>>> It's the same set of tests that fail each time, and as far as I can
>>>> tell they have nothing to do with the patch I submitted.
>>>>
>>>> Do you know if this is happening on other tests?
>>>
>>> I saw that Saturday but decided to wait till Monday (weekends are important..).
>>>
>>> So: no, I have *no* idea what happened. From one CI run to the next,
>>> suddenly around 160 tests related to Calypso started failing due to a missing method.
>>>
>>> Now starting from sometime today, this problem stoped. The last failing PR checks
>>> fail due to different reasonsâ¦
>>>
>>> And I have no idea why.
>>>
>>> (And yes, we al know that
>>> 1) the PR checks need more compute power, too slow
>>> 2) we *need* to track down the reason why still *a lot* of times the PR fails
>>> even though it should not.
>>>
>>> The problem is that just keeping a build alive of this kind is a full time job.. that
>>> we have nobody doing, so many many people do as much as they can and we
>>> hope it will get betterâ¦.)
>>
>> Thanks for the update.
>>
>
> Oh, and it was completely unrelated. Your change is for Pharo6...
>
>> I took a look at the failures and it appears that
>>
>> BehaviorTest>>testBehaviorRespectsPolymorphismWithTraitBehavior
>> ClassDescriptionTest>>testClassDescriptionRespectsPolymorphismWithTraitDescription
>> ClassTest>>testClassRespectsPolymorphismWithTrait
>>
>> are all failing due to changes in Fuel - methods were changed from
>> traits to local methods.
>>
> Yes, the problem is that the monkey (the contribution checker) fails as soon
> as there are errors even in the main image.
>
> The last Pharo6 has these tests failing, so now all contribution checks for
> Pharo6 fail.
>
> What needs to be done?
>
> -> your change can be accepted as we know it does not fail more fixes
> -> then we need fix the tests in Pharo6
> -> in a perfect world we would update the slice checker to only fail for
> now test failing⦠(it used to be lille thatâ¦).
I must say that It made the validation two times slower, fragile and
led to the hiding of problems instead of solving them...
-- Pavel
>
> As I said: this is a full time jobâ¦
>
> Marcus
March 5, 2018
[Pharo 7.0-dev] Build #647: 21488 Remove unnecessary debug output/debig code from #testPrintNameOn
by ci-pharo-ci-jenkins2@inria.fr
There is a new Pharo build available!
The status of the build #647 was: SUCCESS.
The Pull Request #1021 was integrated: "21488 Remove unnecessary debug output/debig code from #testPrintNameOn"
Pull request url: https://github.com/pharo-project/pharo/pull/1021
Issue Url: https://pharo.fogbugz.com/f/cases/21488
Build Url: https://ci.inria.fr/pharo-ci-jenkins2/job/Test%20pending%20pull%20request%2…
March 5, 2018
Re: [Pharo-dev] The 6.1 Space Monkey is unhappy
by Marcus Denker
> On 5 Mar 2018, at 10:27, Alistair Grant <akgrant0710(a)gmail.com> wrote:
>
> Hi Marcus,
>
> On 5 March 2018 at 09:23, Marcus Denker <marcus.denker(a)inria.fr> wrote:
>>
>>
>>> On 5 Mar 2018, at 09:16, Alistair Grant <akgrant0710(a)gmail.com> wrote:
>>>
>>> Hi Esteban & Marcus,
>>>
>>> I'm getting repeated validation failures for:
>>>
>>> https://pharo.manuscript.com/f/cases/21431
>>>
>>>
>>> It's the same set of tests that fail each time, and as far as I can
>>> tell they have nothing to do with the patch I submitted.
>>>
>>> Do you know if this is happening on other tests?
>>
>> I saw that Saturday but decided to wait till Monday (weekends are important..).
>>
>> So: no, I have *no* idea what happened. From one CI run to the next,
>> suddenly around 160 tests related to Calypso started failing due to a missing method.
>>
>> Now starting from sometime today, this problem stoped. The last failing PR checks
>> fail due to different reasonsâ¦
>>
>> And I have no idea why.
>>
>> (And yes, we al know that
>> 1) the PR checks need more compute power, too slow
>> 2) we *need* to track down the reason why still *a lot* of times the PR fails
>> even though it should not.
>>
>> The problem is that just keeping a build alive of this kind is a full time job.. that
>> we have nobody doing, so many many people do as much as they can and we
>> hope it will get betterâ¦.)
>
> Thanks for the update.
>
Oh, and it was completely unrelated. Your change is for Pharo6...
> I took a look at the failures and it appears that
>
> BehaviorTest>>testBehaviorRespectsPolymorphismWithTraitBehavior
> ClassDescriptionTest>>testClassDescriptionRespectsPolymorphismWithTraitDescription
> ClassTest>>testClassRespectsPolymorphismWithTrait
>
> are all failing due to changes in Fuel - methods were changed from
> traits to local methods.
>
Yes, the problem is that the monkey (the contribution checker) fails as soon
as there are errors even in the main image.
The last Pharo6 has these tests failing, so now all contribution checks for
Pharo6 fail.
What needs to be done?
-> your change can be accepted as we know it does not fail more fixes
-> then we need fix the tests in Pharo6
-> in a perfect world we would update the slice checker to only fail for
now test failing⦠(it used to be lille thatâ¦).
As I said: this is a full time jobâ¦
Marcus
March 5, 2018
Pavel's ChangeLog week of 2018-02-26
by Pavel Krivanek
Hi,
Guille is working on the Iceberg improvements and he wanted to be able to
open a terminal window on top of the repository and interact with it via
the command line. So we looked at this issue because I already in December
made some experiments with the terminal emulation in Pharo.
In past, the Squeak had a working terminal emulation that used
PseudoTTYPlugin. The VM is not built with this code for a long time but I
tried to replace it with a small C library and then wrote an FFI interface
to it. Together with that, I ported most of the old code Squeak code to
Pharo.
With Guille we tried to avoid usage of such external library and wrote an
FFI interface to all the required LibC functions. We were successful but we
realized that there are several issues that are limiting us.
When you want to execute a separate process for the program that you want
to open in terminal (typically the Bash), you need to redirect the standard
IO files, create a fork of your process, do some additional initialization
in it and call 'exec' on it. In the parent process, you change redirected
IO files back to the original values.
But the problem is that between the FFI calls from Smalltalk the VM can do
a lot of things including garbage collection etc. On OS X the fork()
function has the following limitation described in man:
"There are limits to what you can do in the child process. To be totally
safe you should restrict your yourself to only executing async-signal safe
operations until such time as one of the exec functions is called. All
APIs, including global data symbols, in any framework or library should be
assumed to be unsafe after a fork() unless explicitly documented to be safe
or async-signal safe. If you need to use these frameworks in the child
process, you must exec. In this
situation it is reasonable to exec your-self. yourself."
As the result in most cases (but not all) the fork() and exec() pair from
the Smalltalk side fails on OS X. Linux does not have this limitation
however even there we found an issue. It is bound to the fact that fork()
makes a fork of all the parent process that uses the same resources. As
soon as Pharo is opened in a window and X11 is involved (the window wants
to be repainted), it can lead to the VM crash.
So we learned that unfortunately we currently cannot use image-only FFI
code for this task. We need a C library or VM plugin.
The repository of the terminal emulator is here:
https://github.com/pavel-krivanek/terminal
and can be loaded using the following code:
Metacello new
baseline: 'TerminalEmulator';
repository: 'github://pavel-krivanek/terminal/src';
load.
#TerminalEmulator asClass compileLibrary.
â
It compiles and links the small library with only one function using the
GCC so the machine needs to have a proper development environment.
The terminal emulator is in very early stage and has a lot of issues like
processes cleanup, drawing, keyboard input etc. etc. If you are interested
in it, feel free to contribute.
Cheers,
-- Pavel
March 5, 2018
Re: [Pharo-dev] The 6.1 Space Monkey is unhappy
by Alistair Grant
Hi Marcus,
On 5 March 2018 at 09:23, Marcus Denker <marcus.denker(a)inria.fr> wrote:
>
>
>> On 5 Mar 2018, at 09:16, Alistair Grant <akgrant0710(a)gmail.com> wrote:
>>
>> Hi Esteban & Marcus,
>>
>> I'm getting repeated validation failures for:
>>
>> https://pharo.manuscript.com/f/cases/21431
>>
>>
>> It's the same set of tests that fail each time, and as far as I can
>> tell they have nothing to do with the patch I submitted.
>>
>> Do you know if this is happening on other tests?
>
> I saw that Saturday but decided to wait till Monday (weekends are important..).
>
> So: no, I have *no* idea what happened. From one CI run to the next,
> suddenly around 160 tests related to Calypso started failing due to a missing method.
>
> Now starting from sometime today, this problem stoped. The last failing PR checks
> fail due to different reasonsâ¦
>
> And I have no idea why.
>
> (And yes, we al know that
> 1) the PR checks need more compute power, too slow
> 2) we *need* to track down the reason why still *a lot* of times the PR fails
> even though it should not.
>
> The problem is that just keeping a build alive of this kind is a full time job.. that
> we have nobody doing, so many many people do as much as they can and we
> hope it will get betterâ¦.)
Thanks for the update.
I took a look at the failures and it appears that
BehaviorTest>>testBehaviorRespectsPolymorphismWithTraitBehavior
ClassDescriptionTest>>testClassDescriptionRespectsPolymorphismWithTraitDescription
ClassTest>>testClassRespectsPolymorphismWithTrait
are all failing due to changes in Fuel - methods were changed from
traits to local methods.
I'll try and track down when the change was introduced and by whom,
but hopefully it is just a matter of updating the tests.
Cheers,
Alistair
March 5, 2018