[Pharo-project] 1.3 OneCick with Cog VM

Igor Stasenko siguctua at gmail.com
Fri Sep 9 20:55:24 CEST 2011


On 9 September 2011 20:43, John Toohey <jt at parspro.com> wrote:
> This happened after a VM crash, when I try to restart I get this in
> the log. Isn't the error caused by the isEmptyOrNil primitive? Is
> there anyway for me to access the image now?
>

an error caused by a primitive failure with invalid socket:

SocketStream>>receiveData
>>        Receiver: SocketStream[inbuf:4kb/outbuf:4kb]
>>        Arguments and temporary variables:
>>
>>        Receiver's instance variables:
>>                recentlyRead:   716
>>                socket:         a Socket[invalidSocketHandle]
>>                inBuffer:       'CONNECTED
>> session:ID:John-Tooheys-MacBook-Pro.local-56368-1315585750...etc...
>>                outBuffer:      'SUBSCRIBE
>> destination: /topic/parspro-core.juliet-core-events


looks like your image was saved with socket being open and upon
restart it tries to read data from it.
This , of course , causing failure and leads to error signaled.

If you want to track down the error, there is an option in system settings:
'Make a snapshot of new version before quit
On unhandled exception, save a new version of image before quit'
in 'Headless mode' group.

> On Fri, Sep 9, 2011 at 14:38, Igor Stasenko <siguctua at gmail.com> wrote:
>> On 9 September 2011 20:31, John Toohey <jt at parspro.com> wrote:
>>> I am experiencing a lot of random crashes with this VM on OSX 10.6. It
>>> just crashed again, and this time I cannot get it to restart. It seems
>>> to be crashing in a socket receive class. The stack trace is here :-
>>>
>>
>> This is not a crash, it just quits to OS due to error at startup.
>> To avoid imminent leave to OS, put an error handler around your startup code
>> (i guess it is in CoreMQStompConnection somewhere?).
>>
>>
>>
>>> THERE_BE_DRAGONS_HERE
>>> MessageNotUnderstood: PrimitiveFailed>>isEmptyOrNil
>>> 9 September 2011 2:28:41 pm
>>>
>>> VM: Mac OS - intel - 1067 - Croquet Closure Cog VM [CoInterpreter
>>> VMMaker-oscog-IgorStasenko.123] 21.0
>>> Image: Pharo1.3 [Latest update: #13298]
>>>
>>> PrimitiveFailed(Object)>>doesNotUnderstand: #isEmptyOrNil
>>>        Receiver: PrimitiveFailed: primitive #primSocketReceiveDataAvailable:
>>> in a Socket[invalidSocketHandl...etc...
>>>        Arguments and temporary variables:
>>>                t1:     isEmptyOrNil
>>>                t2:     MessageNotUnderstood: PrimitiveFailed>>isEmptyOrNil
>>>                t3:     nil
>>>        Receiver's instance variables:
>>>                messageText:    'primitive #primSocketReceiveDataAvailable: in a
>>> Socket[invalidSoc...etc...
>>>                tag:    nil
>>>                signaler:       a Socket[invalidSocketHandle]
>>>                signalContext:  PrimitiveFailed(Exception)>>signal
>>>                handlerContext:         BlockClosure>>on:do:
>>>                outerContext:   nil
>>>                selector:       #primSocketReceiveDataAvailable:
>>>
>>>
>>> [:t1 |
>>> | t2 |
>>> t1 << self class name.
>>>        (t2 := self messageText) isEmptyOrNil
>>>                ifFalse: [t1 << ': ' << t2]] in Error(Exception)>>description
>>>        Receiver: <<error during printing>>
>>>        Arguments and temporary variables:
>>>                t1:     a WriteStream 'Error'
>>>                t2:     PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in
>>> a Socket[inv...etc...
>>>        Receiver's instance variables:
>>>                messageText:    PrimitiveFailed: primitive
>>> #primSocketReceiveDataAvailable: in a S...etc...
>>>                tag:    nil
>>>                signaler:       a CoreMQStompConnection connectResponse: CONNECTED
>>> session: ID:John-T...etc...
>>>                signalContext:  Error(Exception)>>signal
>>>                handlerContext:         nil
>>>                outerContext:   nil
>>>
>>>
>>> String class(SequenceableCollection class)>>new:streamContents:
>>>        Receiver: String
>>>        Arguments and temporary variables:
>>>                t1:     100
>>>                t2:     [:t1 |
>>> | t2 |
>>> t1 << self class name.
>>>        (t2 := self messageText) isEmptyOrNi...etc...
>>>                t3:     a WriteStream 'Error'
>>>        Receiver's instance variables:
>>>                superclass:     ArrayedCollection
>>>                methodDict:     a MethodDictionary(size 303)
>>>                format:         2
>>>                instanceVariables:      nil
>>>                organization:   ('*Compiler-Kernel' inviolateInstanceVariableNames
>>> isLegalInstVar...etc...
>>>                subclasses:     {ByteString. WideString. Symbol}
>>>                name:   #String
>>>                classPool:      a Dictionary(#AsciiOrder->#[0 1 2 3 4 5 6 7 8 9 10 11 12
>>> 13 14 15 16...etc...
>>>                sharedPools:    nil
>>>                environment:    a SystemDictionary(lots of globals)
>>>                category:       #'Collections-Strings'
>>>                traitComposition:       {}
>>>                localSelectors:         nil
>>>
>>>
>>> String class(SequenceableCollection class)>>streamContents:
>>>        Receiver: String
>>>        Arguments and temporary variables:
>>>                t1:     [:t1 |
>>> | t2 |
>>> t1 << self class name.
>>>        (t2 := self messageText) isEmptyOrNi...etc...
>>>        Receiver's instance variables:
>>>                superclass:     ArrayedCollection
>>>                methodDict:     a MethodDictionary(size 303)
>>>                format:         2
>>>                instanceVariables:      nil
>>>                organization:   ('*Compiler-Kernel' inviolateInstanceVariableNames
>>> isLegalInstVar...etc...
>>>                subclasses:     {ByteString. WideString. Symbol}
>>>                name:   #String
>>>                classPool:      a Dictionary(#AsciiOrder->#[0 1 2 3 4 5 6 7 8 9 10 11 12
>>> 13 14 15 16...etc...
>>>                sharedPools:    nil
>>>                environment:    a SystemDictionary(lots of globals)
>>>                category:       #'Collections-Strings'
>>>                traitComposition:       {}
>>>                localSelectors:         nil
>>>
>>>
>>> Error(Exception)>>description
>>>        Receiver: <<error during printing>>
>>>        Arguments and temporary variables:
>>>
>>>        Receiver's instance variables:
>>>                messageText:    PrimitiveFailed: primitive
>>> #primSocketReceiveDataAvailable: in a S...etc...
>>>                tag:    nil
>>>                signaler:       a CoreMQStompConnection connectResponse: CONNECTED
>>> session: ID:John-T...etc...
>>>                signalContext:  Error(Exception)>>signal
>>>                handlerContext:         nil
>>>                outerContext:   nil
>>>
>>>
>>> StartupUIManager(NonInteractiveUIManager)>>unhandledErrorDefaultAction:
>>>        Receiver: a StartupUIManager
>>>        Arguments and temporary variables:
>>> <<error during printing>
>>>        Receiver's instance variables:
>>>                uiManager:      a MorphicUIManager
>>>                doNotQuitOnRestart:     false
>>>
>>>
>>> UnhandledError>>defaultAction
>>>        Receiver: UnhandledError
>>>        Arguments and temporary variables:
>>>
>>>        Receiver's instance variables:
>>>                messageText:    nil
>>>                tag:    nil
>>>                signaler:       <<error during printing>>
>>>
>>> UndefinedObject>>handleSignal:
>>>        Receiver: nil
>>>        Arguments and temporary variables:
>>>                t1:     UnhandledError
>>>        Receiver's instance variables:
>>> nil
>>>
>>> MethodContext(ContextPart)>>handleSignal:
>>>        Receiver: BlockClosure>>on:do:
>>>        Arguments and temporary variables:
>>>                t1:     UnhandledError
>>>                t2:     nil
>>>        Receiver's instance variables:
>>>                sender:         [[[[self announceNextCommand]
>>>                on: ConnectionTimedOut
>>>                do: [:t1 | nil...etc...
>>>                pc:     17
>>>                stackp:         3
>>>                method:         (BlockClosure>>#on:do: "a CompiledMethod(137625600)")
>>>                closureOrNil:   nil
>>>                receiver:       [[[self announceNextCommand]
>>>                on: ConnectionTimedOut
>>>                do: [:t1 | ni...etc...
>>>
>>>
>>> MethodContext(ContextPart)>>handleSignal:
>>>        Receiver: BlockClosure>>on:do:
>>>        Arguments and temporary variables:
>>>                t1:     UnhandledError
>>>                t2:     nil
>>>        Receiver's instance variables:
>>>                sender:         [[[self announceNextCommand]
>>>                on: ConnectionTimedOut
>>>                do: [:t1 | nil]...etc...
>>>                pc:     17
>>>                stackp:         3
>>>                method:         (BlockClosure>>#on:do: "a CompiledMethod(137625600)")
>>>                closureOrNil:   nil
>>>                receiver:       [self announceNextCommand]
>>>
>>>
>>> UnhandledError(Exception)>>signal
>>>        Receiver: UnhandledError
>>>        Arguments and temporary variables:
>>>
>>>        Receiver's instance variables:
>>>                messageText:    nil
>>>                tag:    nil
>>>                signaler:       <<error during printing>>
>>>
>>> UnhandledError class>>signalForException:
>>>        Receiver: UnhandledError
>>>        Arguments and temporary variables:
>>> <<error during printing>
>>>        Receiver's instance variables:
>>>                superclass:     Exception
>>>                methodDict:     a
>>> MethodDictionary(#defaultAction->(UnhandledError>>#defaultAction
>>> ...etc...
>>>                format:         144
>>>                instanceVariables:      #('exception')
>>>                organization:   ('*UIManager' defaultAction)
>>> ('as yet unclassified' exception exc...etc...
>>>                subclasses:     nil
>>>                name:   #UnhandledError
>>>                classPool:      nil
>>>                sharedPools:    nil
>>>                environment:    a SystemDictionary(lots of globals)
>>>                category:       #'Kernel-Exceptions'
>>>                traitComposition:       nil
>>>                localSelectors:         nil
>>>
>>>
>>> Error>>defaultAction
>>>        Receiver: <<error during printing>>
>>>        Arguments and temporary variables:
>>>
>>>        Receiver's instance variables:
>>>                messageText:    PrimitiveFailed: primitive
>>> #primSocketReceiveDataAvailable: in a S...etc...
>>>                tag:    nil
>>>                signaler:       a CoreMQStompConnection connectResponse: CONNECTED
>>> session: ID:John-T...etc...
>>>                signalContext:  Error(Exception)>>signal
>>>                handlerContext:         nil
>>>                outerContext:   nil
>>>
>>>
>>> UndefinedObject>>handleSignal:
>>>        Receiver: nil
>>>        Arguments and temporary variables:
>>> <<error during printing>
>>>        Receiver's instance variables:
>>> nil
>>>
>>> MethodContext(ContextPart)>>handleSignal:
>>>        Receiver: BlockClosure>>on:do:
>>>        Arguments and temporary variables:
>>> <<error during printing>
>>>        Receiver's instance variables:
>>>                sender:         [[[[self announceNextCommand]
>>>                on: ConnectionTimedOut
>>>                do: [:t1 | nil...etc...
>>>                pc:     17
>>>                stackp:         3
>>>                method:         (BlockClosure>>#on:do: "a CompiledMethod(137625600)")
>>>                closureOrNil:   nil
>>>                receiver:       [[[self announceNextCommand]
>>>                on: ConnectionTimedOut
>>>                do: [:t1 | ni...etc...
>>>
>>>
>>> MethodContext(ContextPart)>>handleSignal:
>>>        Receiver: BlockClosure>>on:do:
>>>        Arguments and temporary variables:
>>> <<error during printing>
>>>        Receiver's instance variables:
>>>                sender:         [[[self announceNextCommand]
>>>                on: ConnectionTimedOut
>>>                do: [:t1 | nil]...etc...
>>>                pc:     17
>>>                stackp:         3
>>>                method:         (BlockClosure>>#on:do: "a CompiledMethod(137625600)")
>>>                closureOrNil:   nil
>>>                receiver:       [self announceNextCommand]
>>>
>>>
>>> Error(Exception)>>signal
>>>        Receiver: <<error during printing>>
>>>        Arguments and temporary variables:
>>>
>>>        Receiver's instance variables:
>>>                messageText:    PrimitiveFailed: primitive
>>> #primSocketReceiveDataAvailable: in a S...etc...
>>>                tag:    nil
>>>                signaler:       a CoreMQStompConnection connectResponse: CONNECTED
>>> session: ID:John-T...etc...
>>>                signalContext:  Error(Exception)>>signal
>>>                handlerContext:         nil
>>>                outerContext:   nil
>>>
>>>
>>> Error(Exception)>>signal:
>>>        Receiver: <<error during printing>>
>>>        Arguments and temporary variables:
>>>                t1:     PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in
>>> a Socket[inv...etc...
>>>        Receiver's instance variables:
>>>                messageText:    PrimitiveFailed: primitive
>>> #primSocketReceiveDataAvailable: in a S...etc...
>>>                tag:    nil
>>>                signaler:       a CoreMQStompConnection connectResponse: CONNECTED
>>> session: ID:John-T...etc...
>>>                signalContext:  Error(Exception)>>signal
>>>                handlerContext:         nil
>>>                outerContext:   nil
>>>
>>>
>>> CoreMQStompConnection(Object)>>error:
>>>        Receiver: a CoreMQStompConnection connectResponse: CONNECTED
>>> session: ID:John-Tooheys-MacBook-Pro.lo...etc...
>>>        Arguments and temporary variables:
>>>                t1:     PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in
>>> a Socket[inv...etc...
>>>        Receiver's instance variables:
>>>                stream:         SocketStream[inbuf:4kb/outbuf:4kb]
>>>                connectResponse:        CONNECTED
>>> session: ID:John-Tooheys-MacBook-Pro.local-56368-131...etc...
>>>                subscriptions:  an OrderedCollection('/topic/parspro-core.juliet-core-events')
>>>                commandDestination:     '/topic/parspro-core.juliet-core-events'
>>>                process:        a Process in nil
>>>                logger:         a JulietLogger
>>>
>>>
>>> [:t1 |
>>> self logger error: 'Error in startAnnouncing e --> ' , t1 greaseString.
>>>        self error: t1.
>>>        t1 return] in [[[[self announceNextCommand]
>>>                on: ConnectionTimedOut
>>>                do: [:t1 | nil]] repeat.
>>>        nil]
>>>                on: Error
>>>                do: [:t1 |
>>>                        self logger error: 'Error in startAnnouncing e --> ' , t1 greaseString.
>>>                        self error: t1.
>>>                        t1 return]] in CoreMQStompConnection>>startAnnouncing
>>>        Receiver: a CoreMQStompConnection connectResponse: CONNECTED
>>> session: ID:John-Tooheys-MacBook-Pro.lo...etc...
>>>        Arguments and temporary variables:
>>>                t1:     PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in
>>> a Socket[inv...etc...
>>>        Receiver's instance variables:
>>>                stream:         SocketStream[inbuf:4kb/outbuf:4kb]
>>>                connectResponse:        CONNECTED
>>> session: ID:John-Tooheys-MacBook-Pro.local-56368-131...etc...
>>>                subscriptions:  an OrderedCollection('/topic/parspro-core.juliet-core-events')
>>>                commandDestination:     '/topic/parspro-core.juliet-core-events'
>>>                process:        a Process in nil
>>>                logger:         a JulietLogger
>>>
>>>
>>> BlockClosure>>cull:
>>>        Receiver: [:t1 |
>>> self logger error: 'Error in startAnnouncing e --> ' , t1 greaseString.
>>>        self erro...etc...
>>>        Arguments and temporary variables:
>>>                t1:     PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in
>>> a Socket[inv...etc...
>>>        Receiver's instance variables:
>>>                outerContext:   [[[[self announceNextCommand]
>>>                on: ConnectionTimedOut
>>>                do: [:t1...etc...
>>>                startpc:        118
>>>                numArgs:        1
>>>
>>>
>>> [(self tempAt: 2)
>>>                cull: t1] in MethodContext(ContextPart)>>handleSignal:
>>>        Receiver: BlockClosure>>on:do:
>>>        Arguments and temporary variables:
>>>                t1:     PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in
>>> a Socket[inv...etc...
>>>        Receiver's instance variables:
>>>                sender:         [[[[self announceNextCommand]
>>>                on: ConnectionTimedOut
>>>                do: [:t1 | nil...etc...
>>>                pc:     17
>>>                stackp:         3
>>>                method:         (BlockClosure>>#on:do: "a CompiledMethod(137625600)")
>>>                closureOrNil:   nil
>>>                receiver:       [[[self announceNextCommand]
>>>                on: ConnectionTimedOut
>>>                do: [:t1 | ni...etc...
>>>
>>>
>>> BlockClosure>>ensure:
>>>        Receiver: [(self tempAt: 2)
>>>                cull: t1]
>>>        Arguments and temporary variables:
>>>                aBlock:         [self tempAt: 3 put: true]
>>>                complete:       nil
>>>                returnValue:    nil
>>>        Receiver's instance variables:
>>>                outerContext:   MethodContext(ContextPart)>>handleSignal:
>>>                startpc:        98
>>>                numArgs:        0
>>>
>>>
>>> MethodContext(ContextPart)>>handleSignal:
>>>        Receiver: BlockClosure>>on:do:
>>>        Arguments and temporary variables:
>>>                t1:     PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in
>>> a Socket[inv...etc...
>>>                t2:     nil
>>>        Receiver's instance variables:
>>>                sender:         [[[[self announceNextCommand]
>>>                on: ConnectionTimedOut
>>>                do: [:t1 | nil...etc...
>>>                pc:     17
>>>                stackp:         3
>>>                method:         (BlockClosure>>#on:do: "a CompiledMethod(137625600)")
>>>                closureOrNil:   nil
>>>                receiver:       [[[self announceNextCommand]
>>>                on: ConnectionTimedOut
>>>                do: [:t1 | ni...etc...
>>>
>>>
>>> MethodContext(ContextPart)>>handleSignal:
>>>        Receiver: BlockClosure>>on:do:
>>>        Arguments and temporary variables:
>>>                t1:     PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in
>>> a Socket[inv...etc...
>>>                t2:     nil
>>>        Receiver's instance variables:
>>>                sender:         [[[self announceNextCommand]
>>>                on: ConnectionTimedOut
>>>                do: [:t1 | nil]...etc...
>>>                pc:     17
>>>                stackp:         3
>>>                method:         (BlockClosure>>#on:do: "a CompiledMethod(137625600)")
>>>                closureOrNil:   nil
>>>                receiver:       [self announceNextCommand]
>>>
>>>
>>> PrimitiveFailed(Exception)>>signal
>>>        Receiver: PrimitiveFailed: primitive #primSocketReceiveDataAvailable:
>>> in a Socket[invalidSocketHandl...etc...
>>>        Arguments and temporary variables:
>>>
>>>        Receiver's instance variables:
>>>                messageText:    'primitive #primSocketReceiveDataAvailable: in a
>>> Socket[invalidSoc...etc...
>>>                tag:    nil
>>>                signaler:       a Socket[invalidSocketHandle]
>>>                signalContext:  PrimitiveFailed(Exception)>>signal
>>>                handlerContext:         BlockClosure>>on:do:
>>>                outerContext:   nil
>>>                selector:       #primSocketReceiveDataAvailable:
>>>
>>>
>>> PrimitiveFailed class(SelectorException class)>>signalFor:
>>>        Receiver: PrimitiveFailed
>>>        Arguments and temporary variables:
>>>                t1:     #primSocketReceiveDataAvailable:
>>>        Receiver's instance variables:
>>>                superclass:     SelectorException
>>>                methodDict:     a
>>> MethodDictionary(#standardMessageText->(PrimitiveFailed>>#standar...etc...
>>>                format:         144
>>>                instanceVariables:      nil
>>>                organization:   ('printing' standardMessageText)
>>>
>>>                subclasses:     nil
>>>                name:   #PrimitiveFailed
>>>                classPool:      nil
>>>                sharedPools:    nil
>>>                environment:    a SystemDictionary(lots of globals)
>>>                category:       #'Kernel-Exceptions'
>>>                traitComposition:       {}
>>>                localSelectors:         nil
>>>
>>>
>>> Socket(Object)>>primitiveFailed:
>>>        Receiver: a Socket[invalidSocketHandle]
>>>        Arguments and temporary variables:
>>>                t1:     #primSocketReceiveDataAvailable:
>>>        Receiver's instance variables:
>>>                semaphore:      a Semaphore()
>>>                socketHandle:   #[162 57 106 78 0 0 0 0 128 42 86 0]
>>>                readSemaphore:  a Semaphore()
>>>                writeSemaphore:         a Semaphore()
>>>
>>>
>>> Socket(Object)>>primitiveFailed
>>>        Receiver: a Socket[invalidSocketHandle]
>>>        Arguments and temporary variables:
>>>
>>>        Receiver's instance variables:
>>>                semaphore:      a Semaphore()
>>>                socketHandle:   #[162 57 106 78 0 0 0 0 128 42 86 0]
>>>                readSemaphore:  a Semaphore()
>>>                writeSemaphore:         a Semaphore()
>>>
>>>
>>> Socket>>primSocketReceiveDataAvailable:
>>>        Receiver: a Socket[invalidSocketHandle]
>>>        Arguments and temporary variables:
>>>                t1:     #[162 57 106 78 0 0 0 0 128 42 86 0]
>>>        Receiver's instance variables:
>>>                semaphore:      a Semaphore()
>>>                socketHandle:   #[162 57 106 78 0 0 0 0 128 42 86 0]
>>>                readSemaphore:  a Semaphore()
>>>                writeSemaphore:         a Semaphore()
>>>
>>>
>>> Socket>>waitForDataFor:ifClosed:ifTimedOut:
>>>        Receiver: a Socket[invalidSocketHandle]
>>>        Arguments and temporary variables:
>>>                t1:     45
>>>                t2:     [ConnectionClosed signal: 'Connection closed while waiting for data.']
>>>                t3:     [ConnectionTimedOut signal: 'Data receive timed out.']
>>>                t4:     2210099
>>>                t5:     45000
>>>        Receiver's instance variables:
>>>                semaphore:      a Semaphore()
>>>                socketHandle:   #[162 57 106 78 0 0 0 0 128 42 86 0]
>>>                readSemaphore:  a Semaphore()
>>>                writeSemaphore:         a Semaphore()
>>>
>>>
>>> Socket>>waitForDataFor:
>>>        Receiver: a Socket[invalidSocketHandle]
>>>        Arguments and temporary variables:
>>>                t1:     45
>>>        Receiver's instance variables:
>>>                semaphore:      a Semaphore()
>>>                socketHandle:   #[162 57 106 78 0 0 0 0 128 42 86 0]
>>>                readSemaphore:  a Semaphore()
>>>                writeSemaphore:         a Semaphore()
>>>
>>>
>>> Socket>>receiveDataSignallingTimeout:into:startingAt:
>>>        Receiver: a Socket[invalidSocketHandle]
>>>        Arguments and temporary variables:
>>>                t1:     45
>>>                t2:     'CONNECTED
>>> session:ID:John-Tooheys-MacBook-Pro.local-56368-1315585750288-4:...etc...
>>>                t3:     796
>>>        Receiver's instance variables:
>>>                semaphore:      a Semaphore()
>>>                socketHandle:   #[162 57 106 78 0 0 0 0 128 42 86 0]
>>>                readSemaphore:  a Semaphore()
>>>                writeSemaphore:         a Semaphore()
>>>
>>>
>>> SocketStream>>receiveData
>>>        Receiver: SocketStream[inbuf:4kb/outbuf:4kb]
>>>        Arguments and temporary variables:
>>>
>>>        Receiver's instance variables:
>>>                recentlyRead:   716
>>>                socket:         a Socket[invalidSocketHandle]
>>>                inBuffer:       'CONNECTED
>>> session:ID:John-Tooheys-MacBook-Pro.local-56368-1315585750...etc...
>>>                outBuffer:      'SUBSCRIBE
>>> destination: /topic/parspro-core.juliet-core-events
>>>
>>>
>>>
>>> On Thu, Sep 8, 2011 at 10:05, Marcus Denker <marcus.denker at inria.fr> wrote:
>>>>
>>>> On Sep 8, 2011, at 3:59 PM, John Toohey wrote:
>>>>
>>>>> Hi,
>>>>> Is there a 1.3 OneClick build available with the Cog VM, or should I
>>>>> just down load the linux and OSX Cog builds from the Jenkins server?
>>>>
>>>> The script on the hudson is old... we need to update it. And move everything
>>>> from hudson to jenkins. And, and...
>>>>
>>>> So for now:
>>>>
>>>>        https://gforge.inria.fr/frs/download.php/28922/Pharo-1.3-OneClick.zip
>>>>
>>>> hand-build one-click with Cog as build from https://ci.lille.inria.fr/pharo/view/Cog/
>>>>
>>>>> often run into problems with having different VMs/Plugin on different
>>>>> servers, and like the idea of having both Liux and OSX supported in
>>>>> one package, where I can just update the image.
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Marcus Denker -- http://marcusdenker.de
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>> --
>>> ~JT
>>>
>>>
>>
>>
>>
>> --
>> Best regards,
>> Igor Stasenko AKA sig.
>>
>
>
>
> --
> ~JT
>



-- 
Best regards,
Igor Stasenko AKA sig.


More information about the Pharo-project mailing list