Why do Time, Date, DateAndTime etc walkback when sent the class message #new?

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

Why do Time, Date, DateAndTime etc walkback when sent the class message #new?

vinref
Pharo and Dolphin do not walkback, but return different times.

For Pharo, Time new returns midnight. For Dolphin, Time new returns the current time.

But walking back is unexpected behaviour, at least for me.

Vince

--
You received this message because you are subscribed to the Google Groups "VA Smalltalk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/va-smalltalk/7d8fd703-f8a3-4bcc-b5b8-0ffdc30efa37%40googlegroups.com.
Reply | Threaded
Open this post in threaded view
|

Re: Why do Time, Date, DateAndTime etc walkback when sent the class message #new?

Seth Berman
Hi Vince,

I don't see that they do walkback.
What version are we talking about and what is the walkback?

- Seth

On Sunday, September 22, 2019 at 8:28:37 PM UTC-4, Vince Refiti wrote:
Pharo and Dolphin do not walkback, but return different times.

For Pharo, Time new returns midnight. For Dolphin, Time new returns the current time.

But walking back is unexpected behaviour, at least for me.

Vince

--
You received this message because you are subscribed to the Google Groups "VA Smalltalk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/va-smalltalk/a8b2403f-98ac-4d51-88a5-1a1c4c878d1b%40googlegroups.com.
Reply | Threaded
Open this post in threaded view
|

Re: Why do Time, Date, DateAndTime etc walkback when sent the class message #new?

vinref
Hi

I was suspecting that some naughty person has altered a core class. I am going to have to hunt around for all the code that depends on this and fix it.

Debugger Stack Trace Report:
Error String: 'UndefinedObject does not understand <='
Resumable: false

UIProcess
    Name: (23/09/2019 10:16:09 AM)
    Process State: suspended
    Priority: 3

Executing in: LCTime>>#format_l:date:time:

System Configuration Dump


Copyright:

    VA Smalltalk V9.1 (32-bit); Image: 9.1 [413]
    VM Timestamp: 4.0, 07/18/18 (100)
    (C) Copyright Instantiations 1994, 2018.  All rights reserved.
    (C) Copyright International Business Machines Corp. 1994, 2006.  All rights reserved.

Time:  1:23:25 PM
Date:  23/09/2019

Platform:

    Virtual machine:  ES
    Bytecode version:  4.0
    Manager version:  4.00
    'OS' subsystem:  'WIN32s'
    'CLIM' subsystem:  'ES'
    'CP' subsystem:  'WIN32s'
    'CLDT' subsystem:  'ES'
    'CFS' subsystem:  'WIN32s'
    'SCI' subsystem:  'WIN'
    'CW' subsystem:  'WIN32s'
    'CPM' subsystem:  'ES'
    'CG' subsystem:  'WIN32s'
    'CPIC' subsystem:  'WIN32s'

Current user:  vgnet\vince.refiti

Connected Library:

    Pathname:  tims-repo.tg-ap.com :: c:\Vast9.1\tims.dat
    Library version:  6
    Size of library:  3166315216 bytes
    Has consistent EOF:  true
    Acquire read locks:  false
    Single user mode:  false
    Server address:  'tims-repo.tg-ap.com'

Library Access:

    Host system name:  None
    Use release lock mode:  true
    Native primitives library: 
    Emsrv primitives library: 

Memory:

    Total allocation:  119725652 bytes
    Available:  2324700 bytes
    Fixed Space:  31716 bytes
    New Space:  893556 bytes
    Old Space:  1430532 bytes

=============<STACK TRACE BEGINS>============
[] in <optimized block>(ExceptionalEvent class)>>#initializeSystemExceptions
    signal=Signal on Exception: (ExError) An error has occurred.
Signal>>#evaluate:
    self=Signal on Exception: (ExError) An error has occurred.
    aBlock=[] in ExceptionalEvent class>>#initializeSystemExceptions
Signal>>#evaluateDefaultHandler:
    self=Signal on Exception: (ExError) An error has occurred.
    aBlock=[] in ExceptionalEvent class>>#initializeSystemExceptions
ExceptionalEvent>>#applyDefaultHandler:
    self=Exception: (ExError) An error has occurred.
    aSignal=Signal on Exception: (ExError) An error has occurred.
    exception=Exception: (ExError) An error has occurred.
ExceptionalEvent>>#signalFor:
    self=Exception: (ExError) An error has occurred.
    aSignalOrExceptionSelector=Signal on Exception: (ExError) An error has occurred.
    handler=nil
ExceptionalEvent>>#signalWithArguments:
    self=Exception: (ExError) An error has occurred.
    arguments=('UndefinedObject does not understand <=')
ExceptionalEvent>>#signalWith:
    self=Exception: (ExError) An error has occurred.
    arg1='UndefinedObject does not understand <='
UndefinedObject(Object)>>#error:
    self=nil
    aString='UndefinedObject does not understand <='
MessageNotUnderstood>>#defaultAction
    self=Signal on Exception: (ExMessageNotUnderstood) An exception has occurred
[] in <optimized block>(Exception class)>>#newExceptionalEvent
    signal=Signal on Exception: (ExMessageNotUnderstood) An exception has occurred
MessageNotUnderstood(Exception)>>#evaluateDefaultHandler:
    self=Signal on Exception: (ExMessageNotUnderstood) An exception has occurred
    aBlock=[] in Exception class>>#newExceptionalEvent
ExceptionalEvent>>#applyDefaultHandler:
    self=Exception: (ExMessageNotUnderstood) An exception has occurred
    aSignal=Signal on Exception: (ExMessageNotUnderstood) An exception has occurred
    exception=Exception: (ExMessageNotUnderstood) An exception has occurred
ExceptionalEvent>>#signalFor:
    self=Exception: (ExMessageNotUnderstood) An exception has occurred
    aSignalOrExceptionSelector=Signal on Exception: (ExMessageNotUnderstood) An exception has occurred
    handler=nil
MessageNotUnderstood(Exception)>>#signal
    self=Signal on Exception: (ExMessageNotUnderstood) An exception has occurred
MessageNotUnderstood class(Exception class)>>#signalWith:
    self=MessageNotUnderstood
    signallerTag=(nil Message (#<=, (12)))
UndefinedObject(Object)>>#doesNotUnderstand:
    self=nil
    aMessage=Message (#<=, (12))
LCTime>>#format_l:date:time:
    self=a LCTime
    aStream=a WriteStream
    date=nil
    time=Could not print receiver
    hours=nil
[] in LCTime>>#printDate:time:on:usingFormat:
    self=a LCTime
    aDate=nil
    aTime=Could not print receiver
    aStream=a WriteStream
    aFormat=(#format_l:date:time: ':' #format_M:date:time: ':' #format_S:date:time: ' ' #format_p:date:time:)
    s=#format_l:date:time:
Array(ArrayedCollection)>>#do:
    self=(#format_l:date:time: ':' #format_M:date:time: ':' #format_S:date:time: ' ' #format_p:date:time:)
    aBlock=[] in LCTime>>#printDate:time:on:usingFormat:
LCTime>>#printDate:time:on:usingFormat:
    self=a LCTime
    aDate=nil
    aTime=Could not print receiver
    aStream=a WriteStream
    aFormat=(#format_l:date:time: ':' #format_M:date:time: ':' #format_S:date:time: ' ' #format_p:date:time:)
LCTime>>#printTime:on:
    self=a LCTime
    aTime=Could not print receiver
    aStream=a WriteStream
Time>>#printOn:
    self=Could not print receiver
    aStream=a WriteStream
Time(Object)>>#printString
    self=Could not print receiver
    writeStream=a WriteStream
StsTranscript(EtWindow)>>#displayEvaluatedSelectionIn:
    self=a StsTranscript
    textWidget=CwText(text)
    yPosition=242
    result=Could not print receiver
StsTranscript(EtWorkspace)>>#displayEvaluatedSelectionIn:
    self=a StsTranscript
    aTextWidget=CwText(text)
[] in StsTranscript(EtWorkspace)>>#menuEditDisplay
    self=a StsTranscript
    widget=CwText(text)
EmSystemConfiguration>>#showBusyCursorWhile:
    self=an EmSystemConfiguration
    aBlock=[] in EtWorkspace>>#menuEditDisplay
    shell=CwTopLevelShell(Transcript)
    window=a CgWindow
StsTranscript(EtWindow)>>#execShortOperation:
    self=a StsTranscript
    aBlock=[] in EtWorkspace>>#menuEditDisplay
StsTranscript(EtWorkspace)>>#menuEditDisplay
    self=a StsTranscript
    widget=CwText(text)
CwMenuPushButton>>#dispatchTo:
    self=a CwMenuPushButton
    receiver=a StsTranscript
    selectorOrDirectedMessage=#menuEditDisplay
CwMenu>>#simpleCallback:clientData:callData:
    self=a CwMenu
    w=CwPushButton(button_6)
    index=6
    callData=CwAnyCallbackData(
    reason -> 10
)
CwCallbackRec>>#callWith:callData:
    self=a CwCallbackRec
    aWidget=CwPushButton(button_6)
    callData=CwAnyCallbackData(
    reason -> 10
)
CwPushButton(CwBasicWidget)>>#callCallbackList:callData:
    self=CwPushButton(button_6)
    aCallbackList=OrderedCollection(a CwCallbackRec )
    callData=CwAnyCallbackData(
    reason -> 10
)
    callbacks=nil
    size=1
    rec1=nil
    rec2=nil
    rec3=nil
[] in CwRowColumn>>#simple:clientData:callData:
    self=CwRowColumn(~Edit)
    aRowColumn=CwRowColumn(~Edit)
    clientData=nil
    callData=CwRowColumnCallbackData(
    reason -> 10
    widget -> CwPushButton(button_6)
    data -> nil
    callbackData -> CwAnyCallbackData(
    reason -> 10
)
)
    data=CwAnyCallbackData(
    reason -> 10
)
    index=6
    list=OrderedCollection(a CwCallbackRec )
    child=CwPushButton(button_6)
OrderedCollection>>#do:
    self=OrderedCollection(CwPushButton(button_0) CwPushButton(button_1) CwSeparator(button_2) CwPushButton(button_2) CwPushButton(button_3) CwPushButton(button_4) CwSeparator(button_5) CwPushButton(button_5) CwPushButton(button_6) CwPushButton(button_7) CwPushButton(button_8) CwPushButton(button_9) CwSeparator(button_10) CwPushButton(button_10) CwPushButton(button_11) CwSeparator(button_12) CwCascadeButton(button_12) CwSeparator(button_13) CwPushButton(button_13) CwPushButton(button_14) CwPushButton(button_15) CwPushButton(button_16) )
    aBlock=[] in CwRowColumn>>#simple:clientData:callData:
CwRowColumn>>#simple:clientData:callData:
    self=CwRowColumn(~Edit)
    aRowColumn=CwRowColumn(~Edit)
    clientData=nil
    callData=CwRowColumnCallbackData(
    reason -> 10
    widget -> CwPushButton(button_6)
    data -> nil
    callbackData -> CwAnyCallbackData(
    reason -> 10
)
)
    data=CwAnyCallbackData(
    reason -> 10
)
    index=6
    list=OrderedCollection(a CwCallbackRec )
CwCallbackRec>>#callWith:callData:
    self=a CwCallbackRec
    aWidget=CwRowColumn(~Edit)
    callData=CwRowColumnCallbackData(
    reason -> 10
    widget -> CwPushButton(button_6)
    data -> nil
    callbackData -> CwAnyCallbackData(
    reason -> 10
)
)
CwRowColumn(CwBasicWidget)>>#callCallbackList:callData:
    self=CwRowColumn(~Edit)
    aCallbackList=OrderedCollection(a CwCallbackRec )
    callData=CwRowColumnCallbackData(
    reason -> 10
    widget -> CwPushButton(button_6)
    data -> nil
    callbackData -> CwAnyCallbackData(
    reason -> 10
)
)
    callbacks=nil
    size=1
    rec1=nil
    rec2=nil
    rec3=nil
CwRowColumn>>#entry:clientData:callData:
    self=CwRowColumn(~Edit)
    aWidget=CwPushButton(button_6)
    callbackList=OrderedCollection()
    callData=CwAnyCallbackData(
    reason -> 10
)
    entryCallData=CwRowColumnCallbackData(
    reason -> 10
    widget -> CwPushButton(button_6)
    data -> nil
    callbackData -> CwAnyCallbackData(
    reason -> 10
)
)
CwPushButton>>#callActivateCallback:
    self=CwPushButton(button_6)
    anEvent=an OSEvent
OSMenuItem(OSWidget)>>#callHandlers:with:
    self=OSMenuItem()
    handlers=#callActivateCallback:
    data=an OSEvent
DirectedMessage>>#send
    self=DirectedMessage (OSMenuItem(), #callHandlers:with:, (#callActivateCallback: an OSEvent))
OSEventManager class>>#runDeferredMessages
    self=OSEventManager
    messageAvailable=true
    message=DirectedMessage (OSMenuItem(), #callHandlers:with:, (#callActivateCallback: an OSEvent))
    state=true
OSWidget class>>#readAndDispatch
    self=OSWidget
    state=true
    gotEvent=true
CwAppContext>>#readAndDispatch
    self=a CwAppContext
AbtWindowSystemStartUp class(EsWindowSystemStartUp class)>>#messageLoop
    self=AbtWindowSystemStartUp
    lastEventTime=345053718
    appContext=a CwAppContext
[] in <optimized block>(UIProcess class)>>#forkUserInterface
[] in UIProcess(Process)>>#executeBlock:withArguments:
    self=UIProcess:(23/09/2019 10:16:09 AM){suspended,3}
    aBlock=[] in UIProcess class>>#forkUserInterface
    args=()
UIProcess(Process)>>#executeBlock:withArguments:
    self=UIProcess:(23/09/2019 10:16:09 AM){suspended,3}
    aBlock=[] in UIProcess class>>#forkUserInterface
    args=()
UIProcess(Process)>>#newProcessOn:stackSize:withArguments:named:
    self=UIProcess:(23/09/2019 10:16:09 AM){suspended,3}
    aBlock=[] in UIProcess class>>#forkUserInterface
    stackSize=1024
    args=()
    procName='(23/09/2019 10:16:09 AM)'
==============<STACK TRACE ENDS>=============

--
You received this message because you are subscribed to the Google Groups "VA Smalltalk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/va-smalltalk/a7cfb52c-3ef9-492e-915d-af2a45304c07%40googlegroups.com.
Reply | Threaded
Open this post in threaded view
|

Re: Why do Time, Date, DateAndTime etc walkback when sent the class message #new?

jtuchel
I can easily reproduce that:

Simply type 'Time new' into the Transcript, select it and press Ctrl-D.

I was really surprised to see this. The problem here is that all inst vars of the newly created Time instance are nil.
OTOH, I never thought about sending #new to Time. obviously ;-)

Joachim


Am Montag, 23. September 2019 05:25:37 UTC+2 schrieb Vince Refiti:
Hi

I was suspecting that some naughty person has altered a core class. I am going to have to hunt around for all the code that depends on this and fix it.

Debugger Stack Trace Report:
Error String: 'UndefinedObject does not understand <='
Resumable: false

UIProcess
    Name: (23/09/2019 10:16:09 AM)
    Process State: suspended
    Priority: 3

Executing in: LCTime>>#format_l:date:time:

System Configuration Dump


Copyright:

    VA Smalltalk V9.1 (32-bit); Image: 9.1 [413]
    VM Timestamp: 4.0, 07/18/18 (100)
    (C) Copyright Instantiations 1994, 2018.  All rights reserved.
    (C) Copyright International Business Machines Corp. 1994, 2006.  All rights reserved.

Time:  1:23:25 PM
Date:  23/09/2019

Platform:

    Virtual machine:  ES
    Bytecode version:  4.0
    Manager version:  4.00
    'OS' subsystem:  'WIN32s'
    'CLIM' subsystem:  'ES'
    'CP' subsystem:  'WIN32s'
    'CLDT' subsystem:  'ES'
    'CFS' subsystem:  'WIN32s'
    'SCI' subsystem:  'WIN'
    'CW' subsystem:  'WIN32s'
    'CPM' subsystem:  'ES'
    'CG' subsystem:  'WIN32s'
    'CPIC' subsystem:  'WIN32s'

Current user:  vgnet\vince.refiti

Connected Library:

    Pathname: xxxx :: c:\Vast9.1\tims.dat
    Library version:  6
    Size of library:  3166315216 bytes
    Has consistent EOF:  true
    Acquire read locks:  false
    Single user mode:  false
    Server address:  xxxx<a href="http://tims-repo.tg-ap.com" target="_blank" rel="nofollow" onmousedown="this.href=&#39;http://www.google.com/url?q\x3dhttp%3A%2F%2Ftims-repo.tg-ap.com\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNE5KZn4CK8wlvF7URN0edWFociIlw&#39;;return true;" onclick="this.href=&#39;http://www.google.com/url?q\x3dhttp%3A%2F%2Ftims-repo.tg-ap.com\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNE5KZn4CK8wlvF7URN0edWFociIlw&#39;;return true;">'

Library Access:

    Host system name:  None
    Use release lock mode:  true
    Native primitives library: 
    Emsrv primitives library: 

Memory:

    Total allocation:  119725652 bytes
    Available:  2324700 bytes
    Fixed Space:  31716 bytes
    New Space:  893556 bytes
    Old Space:  1430532 bytes

=============<STACK TRACE BEGINS>============
[] in <optimized block>(ExceptionalEvent class)>>#initializeSystemExceptions
    signal=Signal on Exception: (ExError) An error has occurred.
Signal>>#evaluate:
    self=Signal on Exception: (ExError) An error has occurred.
    aBlock=[] in ExceptionalEvent class>>#initializeSystemExceptions
Signal>>#evaluateDefaultHandler:
    self=Signal on Exception: (ExError) An error has occurred.
    aBlock=[] in ExceptionalEvent class>>#initializeSystemExceptions
ExceptionalEvent>>#applyDefaultHandler:
    self=Exception: (ExError) An error has occurred.
    aSignal=Signal on Exception: (ExError) An error has occurred.
    exception=Exception: (ExError) An error has occurred.
ExceptionalEvent>>#signalFor:
    self=Exception: (ExError) An error has occurred.
    aSignalOrExceptionSelector=Signal on Exception: (ExError) An error has occurred.
    handler=nil
ExceptionalEvent>>#signalWithArguments:
    self=Exception: (ExError) An error has occurred.
    arguments=('UndefinedObject does not understand <=')
ExceptionalEvent>>#signalWith:
    self=Exception: (ExError) An error has occurred.
    arg1='UndefinedObject does not understand <='
UndefinedObject(Object)>>#error:
    self=nil
    aString='UndefinedObject does not understand <='
MessageNotUnderstood>>#defaultAction
    self=Signal on Exception: (ExMessageNotUnderstood) An exception has occurred
[] in <optimized block>(Exception class)>>#newExceptionalEvent
    signal=Signal on Exception: (ExMessageNotUnderstood) An exception has occurred
MessageNotUnderstood(Exception)>>#evaluateDefaultHandler:
    self=Signal on Exception: (ExMessageNotUnderstood) An exception has occurred
    aBlock=[] in Exception class>>#newExceptionalEvent
ExceptionalEvent>>#applyDefaultHandler:
    self=Exception: (ExMessageNotUnderstood) An exception has occurred
    aSignal=Signal on Exception: (ExMessageNotUnderstood) An exception has occurred
    exception=Exception: (ExMessageNotUnderstood) An exception has occurred
ExceptionalEvent>>#signalFor:
    self=Exception: (ExMessageNotUnderstood) An exception has occurred
    aSignalOrExceptionSelector=Signal on Exception: (ExMessageNotUnderstood) An exception has occurred
    handler=nil
MessageNotUnderstood(Exception)>>#signal
    self=Signal on Exception: (ExMessageNotUnderstood) An exception has occurred
MessageNotUnderstood class(Exception class)>>#signalWith:
    self=MessageNotUnderstood
    signallerTag=(nil Message (#<=, (12)))
UndefinedObject(Object)>>#doesNotUnderstand:
    self=nil
    aMessage=Message (#<=, (12))
LCTime>>#format_l:date:time:
    self=a LCTime
    aStream=a WriteStream
    date=nil
    time=Could not print receiver
    hours=nil
[] in LCTime>>#printDate:time:on:usingFormat:
    self=a LCTime
    aDate=nil
    aTime=Could not print receiver
    aStream=a WriteStream
    aFormat=(#format_l:date:time: ':' #format_M:date:time: ':' #format_S:date:time: ' ' #format_p:date:time:)
    s=#format_l:date:time:
Array(ArrayedCollection)>>#do:
    self=(#format_l:date:time: ':' #format_M:date:time: ':' #format_S:date:time: ' ' #format_p:date:time:)
    aBlock=[] in LCTime>>#printDate:time:on:usingFormat:
LCTime>>#printDate:time:on:usingFormat:
    self=a LCTime
    aDate=nil
    aTime=Could not print receiver
    aStream=a WriteStream
    aFormat=(#format_l:date:time: ':' #format_M:date:time: ':' #format_S:date:time: ' ' #format_p:date:time:)
LCTime>>#printTime:on:
    self=a LCTime
    aTime=Could not print receiver
    aStream=a WriteStream
Time>>#printOn:
    self=Could not print receiver
    aStream=a WriteStream
Time(Object)>>#printString
    self=Could not print receiver
    writeStream=a WriteStream
StsTranscript(EtWindow)>>#displayEvaluatedSelectionIn:
    self=a StsTranscript
    textWidget=CwText(text)
    yPosition=242
    result=Could not print receiver
StsTranscript(EtWorkspace)>>#displayEvaluatedSelectionIn:
    self=a StsTranscript
    aTextWidget=CwText(text)
[] in StsTranscript(EtWorkspace)>>#menuEditDisplay
    self=a StsTranscript
    widget=CwText(text)
EmSystemConfiguration>>#showBusyCursorWhile:
    self=an EmSystemConfiguration
    aBlock=[] in EtWorkspace>>#menuEditDisplay
    shell=CwTopLevelShell(Transcript)
    window=a CgWindow
StsTranscript(EtWindow)>>#execShortOperation:
    self=a StsTranscript
    aBlock=[] in EtWorkspace>>#menuEditDisplay
StsTranscript(EtWorkspace)>>#menuEditDisplay
    self=a StsTranscript
    widget=CwText(text)
CwMenuPushButton>>#dispatchTo:
    self=a CwMenuPushButton
    receiver=a StsTranscript
    selectorOrDirectedMessage=#menuEditDisplay
CwMenu>>#simpleCallback:clientData:callData:
    self=a CwMenu
    w=CwPushButton(button_6)
    index=6
    callData=CwAnyCallbackData(
    reason -> 10
)
CwCallbackRec>>#callWith:callData:
    self=a CwCallbackRec
    aWidget=CwPushButton(button_6)
    callData=CwAnyCallbackData(
    reason -> 10
)
CwPushButton(CwBasicWidget)>>#callCallbackList:callData:
    self=CwPushButton(button_6)
    aCallbackList=OrderedCollection(a CwCallbackRec )
    callData=CwAnyCallbackData(
    reason -> 10
)
    callbacks=nil
    size=1
    rec1=nil
    rec2=nil
    rec3=nil
[] in CwRowColumn>>#simple:clientData:callData:
    self=CwRowColumn(~Edit)
    aRowColumn=CwRowColumn(~Edit)
    clientData=nil
    callData=CwRowColumnCallbackData(
    reason -> 10
    widget -> CwPushButton(button_6)
    data -> nil
    callbackData -> CwAnyCallbackData(
    reason -> 10
)
)
    data=CwAnyCallbackData(
    reason -> 10
)
    index=6
    list=OrderedCollection(a CwCallbackRec )
    child=CwPushButton(button_6)
OrderedCollection>>#do:
    self=OrderedCollection(CwPushButton(button_0) CwPushButton(button_1) CwSeparator(button_2) CwPushButton(button_2) CwPushButton(button_3) CwPushButton(button_4) CwSeparator(button_5) CwPushButton(button_5) CwPushButton(button_6) CwPushButton(button_7) CwPushButton(button_8) CwPushButton(button_9) CwSeparator(button_10) CwPushButton(button_10) CwPushButton(button_11) CwSeparator(button_12) CwCascadeButton(button_12) CwSeparator(button_13) CwPushButton(button_13) CwPushButton(button_14) CwPushButton(button_15) CwPushButton(button_16) )
    aBlock=[] in CwRowColumn>>#simple:clientData:callData:
CwRowColumn>>#simple:clientData:callData:
    self=CwRowColumn(~Edit)
    aRowColumn=CwRowColumn(~Edit)
    clientData=nil
    callData=CwRowColumnCallbackData(
    reason -> 10
    widget -> CwPushButton(button_6)
    data -> nil
    callbackData -> CwAnyCallbackData(
    reason -> 10
)
)
    data=CwAnyCallbackData(
    reason -> 10
)
    index=6
    list=OrderedCollection(a CwCallbackRec )
CwCallbackRec>>#callWith:callData:
    self=a CwCallbackRec
    aWidget=CwRowColumn(~Edit)
    callData=CwRowColumnCallbackData(
    reason -> 10
    widget -> CwPushButton(button_6)
    data -> nil
    callbackData -> CwAnyCallbackData(
    reason -> 10
)
)
CwRowColumn(CwBasicWidget)>>#callCallbackList:callData:
    self=CwRowColumn(~Edit)
    aCallbackList=OrderedCollection(a CwCallbackRec )
    callData=CwRowColumnCallbackData(
    reason -> 10
    widget -> CwPushButton(button_6)
    data -> nil
    callbackData -> CwAnyCallbackData(
    reason -> 10
)
)
    callbacks=nil
    size=1
    rec1=nil
    rec2=nil
    rec3=nil
CwRowColumn>>#entry:clientData:callData:
    self=CwRowColumn(~Edit)
    aWidget=CwPushButton(button_6)
    callbackList=OrderedCollection()
    callData=CwAnyCallbackData(
    reason -> 10
)
    entryCallData=CwRowColumnCallbackData(
    reason -> 10
    widget -> CwPushButton(button_6)
    data -> nil
    callbackData -> CwAnyCallbackData(
    reason -> 10
)
)
CwPushButton>>#callActivateCallback:
    self=CwPushButton(button_6)
    anEvent=an OSEvent
OSMenuItem(OSWidget)>>#callHandlers:with:
    self=OSMenuItem()
    handlers=#callActivateCallback:
    data=an OSEvent
DirectedMessage>>#send
    self=DirectedMessage (OSMenuItem(), #callHandlers:with:, (#callActivateCallback: an OSEvent))
OSEventManager class>>#runDeferredMessages
    self=OSEventManager
    messageAvailable=true
    message=DirectedMessage (OSMenuItem(), #callHandlers:with:, (#callActivateCallback: an OSEvent))
    state=true
OSWidget class>>#readAndDispatch
    self=OSWidget
    state=true
    gotEvent=true
CwAppContext>>#readAndDispatch
    self=a CwAppContext
AbtWindowSystemStartUp class(EsWindowSystemStartUp class)>>#messageLoop
    self=AbtWindowSystemStartUp
    lastEventTime=345053718
    appContext=a CwAppContext
[] in <optimized block>(UIProcess class)>>#forkUserInterface
[] in UIProcess(Process)>>#executeBlock:withArguments:
    self=UIProcess:(23/09/2019 10:16:09 AM){suspended,3}
    aBlock=[] in UIProcess class>>#forkUserInterface
    args=()
UIProcess(Process)>>#executeBlock:withArguments:
    self=UIProcess:(23/09/2019 10:16:09 AM){suspended,3}
    aBlock=[] in UIProcess class>>#forkUserInterface
    args=()
UIProcess(Process)>>#newProcessOn:stackSize:withArguments:named:
    self=UIProcess:(23/09/2019 10:16:09 AM){suspended,3}
    aBlock=[] in UIProcess class>>#forkUserInterface
    stackSize=1024
    args=()
    procName='(23/09/2019 10:16:09 AM)'
==============<STACK TRACE ENDS>=============

--
You received this message because you are subscribed to the Google Groups "VA Smalltalk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/va-smalltalk/088a0bee-632c-4f1a-92b3-9f6779824ecb%40googlegroups.com.
Reply | Threaded
Open this post in threaded view
|

Re: Why do Time, Date, DateAndTime etc walkback when sent the class message #new?

Seth Berman
Hi,

Ok, so I was just inspecting the results (i.e. debugPrintString) which does not produce a walkback, but displaying the results (i.e. printString) does.
No, this isn't a common case but I'll put in a case for these to address the walkback part.
Thanks Vince

- Seth


On Monday, September 23, 2019 at 2:18:15 AM UTC-4, Joachim Tuchel wrote:
I can easily reproduce that in VAST 9.1 64 Bits on Windwos 10:

Simply type 'Time new' into the Transcript, select it and press Ctrl-D.

I was really surprised to see this. The problem here is that all inst vars of the newly created Time instance are nil.
OTOH, I never thought about sending #new to Time. obviously ;-)

Joachim


Am Montag, 23. September 2019 05:25:37 UTC+2 schrieb Vince Refiti:
Hi

I was suspecting that some naughty person has altered a core class. I am going to have to hunt around for all the code that depends on this and fix it.

Debugger Stack Trace Report:
Error String: 'UndefinedObject does not understand <='
Resumable: false

UIProcess
    Name: (23/09/2019 10:16:09 AM)
    Process State: suspended
    Priority: 3

Executing in: LCTime>>#format_l:date:time:

System Configuration Dump


Copyright:

    VA Smalltalk V9.1 (32-bit); Image: 9.1 [413]
    VM Timestamp: 4.0, 07/18/18 (100)
    (C) Copyright Instantiations 1994, 2018.  All rights reserved.
    (C) Copyright International Business Machines Corp. 1994, 2006.  All rights reserved.

Time:  1:23:25 PM
Date:  23/09/2019

Platform:

    Virtual machine:  ES
    Bytecode version:  4.0
    Manager version:  4.00
    'OS' subsystem:  'WIN32s'
    'CLIM' subsystem:  'ES'
    'CP' subsystem:  'WIN32s'
    'CLDT' subsystem:  'ES'
    'CFS' subsystem:  'WIN32s'
    'SCI' subsystem:  'WIN'
    'CW' subsystem:  'WIN32s'
    'CPM' subsystem:  'ES'
    'CG' subsystem:  'WIN32s'
    'CPIC' subsystem:  'WIN32s'

Current user:  vgnet\vince.refiti

Connected Library:

    Pathname: xxxx :: c:\Vast9.1\tims.dat
    Library version:  6
    Size of library:  3166315216 bytes
    Has consistent EOF:  true
    Acquire read locks:  false
    Single user mode:  false
    Server address:  xxxx<a href="http://tims-repo.tg-ap.com" rel="nofollow" target="_blank" onmousedown="this.href=&#39;http://www.google.com/url?q\x3dhttp%3A%2F%2Ftims-repo.tg-ap.com\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNE5KZn4CK8wlvF7URN0edWFociIlw&#39;;return true;" onclick="this.href=&#39;http://www.google.com/url?q\x3dhttp%3A%2F%2Ftims-repo.tg-ap.com\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNE5KZn4CK8wlvF7URN0edWFociIlw&#39;;return true;">'

Library Access:

    Host system name:  None
    Use release lock mode:  true
    Native primitives library: 
    Emsrv primitives library: 

Memory:

    Total allocation:  119725652 bytes
    Available:  2324700 bytes
    Fixed Space:  31716 bytes
    New Space:  893556 bytes
    Old Space:  1430532 bytes

=============<STACK TRACE BEGINS>============
[] in <optimized block>(ExceptionalEvent class)>>#initializeSystemExceptions
    signal=Signal on Exception: (ExError) An error has occurred.
Signal>>#evaluate:
    self=Signal on Exception: (ExError) An error has occurred.
    aBlock=[] in ExceptionalEvent class>>#initializeSystemExceptions
Signal>>#evaluateDefaultHandler:
    self=Signal on Exception: (ExError) An error has occurred.
    aBlock=[] in ExceptionalEvent class>>#initializeSystemExceptions
ExceptionalEvent>>#applyDefaultHandler:
    self=Exception: (ExError) An error has occurred.
    aSignal=Signal on Exception: (ExError) An error has occurred.
    exception=Exception: (ExError) An error has occurred.
ExceptionalEvent>>#signalFor:
    self=Exception: (ExError) An error has occurred.
    aSignalOrExceptionSelector=Signal on Exception: (ExError) An error has occurred.
    handler=nil
ExceptionalEvent>>#signalWithArguments:
    self=Exception: (ExError) An error has occurred.
    arguments=('UndefinedObject does not understand <=')
ExceptionalEvent>>#signalWith:
    self=Exception: (ExError) An error has occurred.
    arg1='UndefinedObject does not understand <='
UndefinedObject(Object)>>#error:
    self=nil
    aString='UndefinedObject does not understand <='
MessageNotUnderstood>>#defaultAction
    self=Signal on Exception: (ExMessageNotUnderstood) An exception has occurred
[] in <optimized block>(Exception class)>>#newExceptionalEvent
    signal=Signal on Exception: (ExMessageNotUnderstood) An exception has occurred
MessageNotUnderstood(Exception)>>#evaluateDefaultHandler:
    self=Signal on Exception: (ExMessageNotUnderstood) An exception has occurred
    aBlock=[] in Exception class>>#newExceptionalEvent
ExceptionalEvent>>#applyDefaultHandler:
    self=Exception: (ExMessageNotUnderstood) An exception has occurred
    aSignal=Signal on Exception: (ExMessageNotUnderstood) An exception has occurred
    exception=Exception: (ExMessageNotUnderstood) An exception has occurred
ExceptionalEvent>>#signalFor:
    self=Exception: (ExMessageNotUnderstood) An exception has occurred
    aSignalOrExceptionSelector=Signal on Exception: (ExMessageNotUnderstood) An exception has occurred
    handler=nil
MessageNotUnderstood(Exception)>>#signal
    self=Signal on Exception: (ExMessageNotUnderstood) An exception has occurred
MessageNotUnderstood class(Exception class)>>#signalWith:
    self=MessageNotUnderstood
    signallerTag=(nil Message (#<=, (12)))
UndefinedObject(Object)>>#doesNotUnderstand:
    self=nil
    aMessage=Message (#<=, (12))
LCTime>>#format_l:date:time:
    self=a LCTime
    aStream=a WriteStream
    date=nil
    time=Could not print receiver
    hours=nil
[] in LCTime>>#printDate:time:on:usingFormat:
    self=a LCTime
    aDate=nil
    aTime=Could not print receiver
    aStream=a WriteStream
    aFormat=(#format_l:date:time: ':' #format_M:date:time: ':' #format_S:date:time: ' ' #format_p:date:time:)
    s=#format_l:date:time:
Array(ArrayedCollection)>>#do:
    self=(#format_l:date:time: ':' #format_M:date:time: ':' #format_S:date:time: ' ' #format_p:date:time:)
    aBlock=[] in LCTime>>#printDate:time:on:usingFormat:
LCTime>>#printDate:time:on:usingFormat:
    self=a LCTime
    aDate=nil
    aTime=Could not print receiver
    aStream=a WriteStream
    aFormat=(#format_l:date:time: ':' #format_M:date:time: ':' #format_S:date:time: ' ' #format_p:date:time:)
LCTime>>#printTime:on:
    self=a LCTime
    aTime=Could not print receiver
    aStream=a WriteStream
Time>>#printOn:
    self=Could not print receiver
    aStream=a WriteStream
Time(Object)>>#printString
    self=Could not print receiver
    writeStream=a WriteStream
StsTranscript(EtWindow)>>#displayEvaluatedSelectionIn:
    self=a StsTranscript
    textWidget=CwText(text)
    yPosition=242
    result=Could not print receiver
StsTranscript(EtWorkspace)>>#displayEvaluatedSelectionIn:
    self=a StsTranscript
    aTextWidget=CwText(text)
[] in StsTranscript(EtWorkspace)>>#menuEditDisplay
    self=a StsTranscript
    widget=CwText(text)
EmSystemConfiguration>>#showBusyCursorWhile:
    self=an EmSystemConfiguration
    aBlock=[] in EtWorkspace>>#menuEditDisplay
    shell=CwTopLevelShell(Transcript)
    window=a CgWindow
StsTranscript(EtWindow)>>#execShortOperation:
    self=a StsTranscript
    aBlock=[] in EtWorkspace>>#menuEditDisplay
StsTranscript(EtWorkspace)>>#menuEditDisplay
    self=a StsTranscript
    widget=CwText(text)
CwMenuPushButton>>#dispatchTo:
    self=a CwMenuPushButton
    receiver=a StsTranscript
    selectorOrDirectedMessage=#menuEditDisplay
CwMenu>>#simpleCallback:clientData:callData:
    self=a CwMenu
    w=CwPushButton(button_6)
    index=6
    callData=CwAnyCallbackData(
    reason -> 10
)
CwCallbackRec>>#callWith:callData:
    self=a CwCallbackRec
    aWidget=CwPushButton(button_6)
    callData=CwAnyCallbackData(
    reason -> 10
)
CwPushButton(CwBasicWidget)>>#callCallbackList:callData:
    self=CwPushButton(button_6)
    aCallbackList=OrderedCollection(a CwCallbackRec )
    callData=CwAnyCallbackData(
    reason -> 10
)
    callbacks=nil
    size=1
    rec1=nil
    rec2=nil
    rec3=nil
[] in CwRowColumn>>#simple:clientData:callData:
    self=CwRowColumn(~Edit)
    aRowColumn=CwRowColumn(~Edit)
    clientData=nil
    callData=CwRowColumnCallbackData(
    reason -> 10
    widget -> CwPushButton(button_6)
    data -> nil
    callbackData -> CwAnyCallbackData(
    reason -> 10
)
)
    data=CwAnyCallbackData(
    reason -> 10
)
    index=6
    list=OrderedCollection(a CwCallbackRec )
    child=CwPushButton(button_6)
OrderedCollection>>#do:
    self=OrderedCollection(CwPushButton(button_0) CwPushButton(button_1) CwSeparator(button_2) CwPushButton(button_2) CwPushButton(button_3) CwPushButton(button_4) CwSeparator(button_5) CwPushButton(button_5) CwPushButton(button_6) CwPushButton(button_7) CwPushButton(button_8) CwPushButton(button_9) CwSeparator(button_10) CwPushButton(button_10) CwPushButton(button_11) CwSeparator(button_12) CwCascadeButton(button_12) CwSeparator(button_13) CwPushButton(button_13) CwPushButton(button_14) CwPushButton(button_15) CwPushButton(button_16) )
    aBlock=[] in CwRowColumn>>#simple:clientData:callData:
CwRowColumn>>#simple:clientData:callData:
    self=CwRowColumn(~Edit)
    aRowColumn=CwRowColumn(~Edit)
    clientData=nil
    callData=CwRowColumnCallbackData(
    reason -> 10
    widget -> CwPushButton(button_6)
    data -> nil
    callbackData -> CwAnyCallbackData(
    reason -> 10
)
)
    data=CwAnyCallbackData(
    reason -> 10
)
    index=6
    list=OrderedCollection(a CwCallbackRec )
CwCallbackRec>>#callWith:callData:
    self=a CwCallbackRec
    aWidget=CwRowColumn(~Edit)
    callData=CwRowColumnCallbackData(
    reason -> 10
    widget -> CwPushButton(button_6)
    data -> nil
    callbackData -> CwAnyCallbackData(
    reason -> 10
)
)
CwRowColumn(CwBasicWidget)>>#callCallbackList:callData:
    self=CwRowColumn(~Edit)
    aCallbackList=OrderedCollection(a CwCallbackRec )
    callData=CwRowColumnCallbackData(
    reason -> 10
    widget -> CwPushButton(button_6)
    data -> nil
    callbackData -> CwAnyCallbackData(
    reason -> 10
)
)
    callbacks=nil
    size=1
    rec1=nil
    rec2=nil
    rec3=nil
CwRowColumn>>#entry:clientData:callData:
    self=CwRowColumn(~Edit)
    aWidget=CwPushButton(button_6)
    callbackList=OrderedCollection()
    callData=CwAnyCallbackData(
    reason -> 10
)
    entryCallData=CwRowColumnCallbackData(
    reason -> 10
    widget -> CwPushButton(button_6)
    data -> nil
    callbackData -> CwAnyCallbackData(
    reason -> 10
)
)
CwPushButton>>#callActivateCallback:
    self=CwPushButton(button_6)
    anEvent=an OSEvent
OSMenuItem(OSWidget)>>#callHandlers:with:
    self=OSMenuItem()
    handlers=#callActivateCallback:
    data=an OSEvent
DirectedMessage>>#send
    self=DirectedMessage (OSMenuItem(), #callHandlers:with:, (#callActivateCallback: an OSEvent))
OSEventManager class>>#runDeferredMessages
    self=OSEventManager
    messageAvailable=true
    message=DirectedMessage (OSMenuItem(), #callHandlers:with:, (#callActivateCallback: an OSEvent))
    state=true
OSWidget class>>#readAndDispatch
    self=OSWidget
    state=true
    gotEvent=true
CwAppContext>>#readAndDispatch
    self=a CwAppContext
AbtWindowSystemStartUp class(EsWindowSystemStartUp class)>>#messageLoop
    self=AbtWindowSystemStartUp
    lastEventTime=345053718
    appContext=a CwAppContext
[] in <optimized block>(UIProcess class)>>#forkUserInterface
[] in UIProcess(Process)>>#executeBlock:withArguments:
    self=UIProcess:(23/09/2019 10:16:09 AM){suspended,3}
    aBlock=[] in UIProcess class>>#forkUserInterface
    args=()
UIProcess(Process)>>#executeBlock:withArguments:
    self=UIProcess:(23/09/2019 10:16:09 AM){suspended,3}
    aBlock=[] in UIProcess class>>#forkUserInterface
    args=()
UIProcess(Process)>>#newProcessOn:stackSize:withArguments:named:
    self=UIProcess:(23/09/2019 10:16:09 AM){suspended,3}
    aBlock=[] in UIProcess class>>#forkUserInterface
    stackSize=1024
    args=()
    procName='(23/09/2019 10:16:09 AM)'
==============<STACK TRACE ENDS>=============

--
You received this message because you are subscribed to the Google Groups "VA Smalltalk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/va-smalltalk/24f0cee1-1b0b-4992-9357-9aca3120aaae%40googlegroups.com.