Telling Smalltalk to not do windowsey kinds of things - headless application tips?

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

Telling Smalltalk to not do windowsey kinds of things - headless application tips?

Carl Gundel-2
When I start my runtime application I launch it without opening any windows, but it isn't getting that far.  Instead it is throwing errors while trying to open windows and such.  Why is that?  How can I tell my packaged application not to do any GUI stuff which apparently isn't working because not all that stuff is packaged anyways.

My application doesn't have a GUI.

What is the simplest way to do a headless image?  I find the documentation hard to follow.

Thanks,

-Carl

Two examples follow:

Walkback at 9:03:15 AM on 7/2/2015
AbtShellView does not understand createMigrationItemNamed:inMenu:
[] in EpRuntimeStartUp class(EsWindowSystemStartUp class)>>#outputWalkback:process:
  receiver = EpRuntimeStartUp
  arg1 = 'AbtShellView does not understand createMigrationItemNamed:inMenu:'
  arg2 = UIProcess:(7/2/2015 9:03:14 AM){running,3}
  temp1 = 'C:\VA Smalltalk\8.6\walkback.log'
  temp2 = -1
  temp3 = a CfsWriteFileStream
EsCompactBlockContextTemplate(Block)>>#valueWithErrorHandler:oldHandler:onReturnDo:
  receiver = [] in EsWindowSystemStartUp class>>#outputWalkback:process:
  arg1 = [] in Block>>#when:do:exitWith:retryReturn:
  arg2 = nil
  arg3 = []
EsCompactBlockContextTemplate(Block)>>#when:do:exitWith:retryReturn:
  receiver = [] in EsWindowSystemStartUp class>>#outputWalkback:process:
  arg1 = an ExceptionalEventCollection
  arg2 = [] in EsWindowSystemStartUp class>>#outputWalkback:process:
  arg3 = [] in Block>>#when:do:
  arg4 = an Object
  temp1 = [] in Block>>#when:do:exitWith:retryReturn:
  temp2 = [] in Block>>#when:do:exitWith:retryReturn:
  temp3 = nil
EsCompactBlockContextTemplate(Block)>>#when:do:
  receiver = [] in EsWindowSystemStartUp class>>#outputWalkback:process:
  arg1 = an ExceptionalEventCollection
  arg2 = [] in EsWindowSystemStartUp class>>#outputWalkback:process:
  temp1 = an Object
  temp2 = nil
EpRuntimeStartUp class(EsWindowSystemStartUp class)>>#outputWalkback:process:
  receiver = EpRuntimeStartUp
  arg1 = 'AbtShellView does not understand createMigrationItemNamed:inMenu:'
  arg2 = UIProcess:(7/2/2015 9:03:14 AM){running,3}
  temp1 = 'C:\VA Smalltalk\8.6\walkback.log'
  temp2 = -1
  temp3 = a CfsWriteFileStream
EpRuntimeStartUp class(EsImageStartUp class)>>#outputWalkback:
  receiver = EpRuntimeStartUp
  arg1 = 'AbtShellView does not understand createMigrationItemNamed:inMenu:'
EpRuntimeStartUp class>>#reportError:resumable:startBP:
  receiver = EpRuntimeStartUp
  arg1 = 'AbtShellView does not understand createMigrationItemNamed:inMenu:'
  arg2 = false
  arg3 = 452
UIProcess(Process)>>#reportError:resumable:
  receiver = UIProcess:(7/2/2015 9:03:14 AM){running,3}
  arg1 = 'AbtShellView does not understand createMigrationItemNamed:inMenu:'
  arg2 = false
  temp1 = 452
[optimized] in ExceptionalEvent class>>#initializeSystemExceptions
  blockarg1 = Signal on Exception: (ExError) An error has occurred.
Signal>>#evaluate:
  receiver = Signal on Exception: (ExError) An error has occurred.
  arg1 = [] in ExceptionalEvent class>>#initializeSystemExceptions
Signal>>#evaluateDefaultHandler:
  receiver = Signal on Exception: (ExError) An error has occurred.
  arg1 = [] in ExceptionalEvent class>>#initializeSystemExceptions
ExceptionalEvent>>#applyDefaultHandler:
  receiver = Exception: (ExError) An error has occurred.
  arg1 = Signal on Exception: (ExError) An error has occurred.
  temp1 = Exception: (ExError) An error has occurred.
ExceptionalEvent>>#signalFor:
  receiver = Exception: (ExError) An error has occurred.
  arg1 = Signal on Exception: (ExError) An error has occurred.
  temp1 = nil
ExceptionalEvent>>#signalWithArguments:
  receiver = Exception: (ExError) An error has occurred.
  arg1 = ('AbtShellView does not understand createMigrationItemNamed:inMenu:')
ExceptionalEvent>>#signalWith:
  receiver = Exception: (ExError) An error has occurred.
  arg1 = 'AbtShellView does not understand createMigrationItemNamed:inMenu:'
AbtShellView(Object)>>#error:
  receiver = an AbtShellView('Window')
  arg1 = 'AbtShellView does not understand createMigrationItemNamed:inMenu:'
MessageNotUnderstood>>#defaultAction
  receiver = Signal on Exception: (ExMessageNotUnderstood) An exception has occurred
[optimized] in Exception class>>#newExceptionalEvent
  blockarg1 = Signal on Exception: (ExMessageNotUnderstood) An exception has occurred
MessageNotUnderstood(Exception)>>#evaluateDefaultHandler:
  receiver = Signal on Exception: (ExMessageNotUnderstood) An exception has occurred
  arg1 = [] in Exception class>>#newExceptionalEvent
ExceptionalEvent>>#applyDefaultHandler:
  receiver = Exception: (ExMessageNotUnderstood) An exception has occurred
  arg1 = Signal on Exception: (ExMessageNotUnderstood) An exception has occurred
  temp1 = Exception: (ExMessageNotUnderstood) An exception has occurred
ExceptionalEvent>>#signalFor:
  receiver = Exception: (ExMessageNotUnderstood) An exception has occurred
  arg1 = Signal on Exception: (ExMessageNotUnderstood) An exception has occurred
  temp1 = nil
MessageNotUnderstood(Exception)>>#signal
  receiver = Signal on Exception: (ExMessageNotUnderstood) An exception has occurred
MessageNotUnderstood(Exception)>>#signal:
  receiver = Signal on Exception: (ExMessageNotUnderstood) An exception has occurred
  arg1 = 'an AbtShellView(''Window'') does not understand Message (#createMigrationItemNamed:inMenu:, (''Base Migration'' an AbtCwMenuView(''ApplicationsMigratePulldown'')))'
MessageNotUnderstood class>>#signalWith:
  receiver = MessageNotUnderstood
  arg1 = (an AbtShellView('Window') Message (#createMigrationItemNamed:inMenu:, ('Base Migration' an AbtCwMenuView('ApplicationsMigratePulldown'))))
AbtShellView(Object)>>#doesNotUnderstand:
  receiver = an AbtShellView('Window')
  arg1 = Message (#createMigrationItemNamed:inMenu:, ('Base Migration' an AbtCwMenuView('ApplicationsMigratePulldown')))
Message>>#sendTo:
  receiver = Message (#createMigrationItemNamed:inMenu:, ('Base Migration' an AbtCwMenuView('ApplicationsMigratePulldown')))
  arg1 = an AbtShellView('Window')
AbtApplicationsOrganizerView(AbtAppBldrPart)>>#doesNotUnderstand:
  receiver = an AbtApplicationsOrganizerView
  arg1 = Message (#createMigrationItemNamed:inMenu:, ('Base Migration' an AbtCwMenuView('ApplicationsMigratePulldown')))
[] in AbtApplicationsOrganizerView>>#createApplicationsMigrateMenu:
  receiver = an AbtApplicationsOrganizerView
  arg1 = ##pulldown
  temp1 = an AbtCwMenuView('ApplicationsMigratePulldown')
  temp2 = AbtOrderedDictionary((#createMigrationItemNamed:inMenu: #enableMigrationItemNamed:inMenu:) )
  temp3 = (#createMigrationItemNamed:inMenu: #enableMigrationItemNamed:inMenu:)
  blockarg1 = 'Base Migration' -> (#createMigrationItemNamed:inMenu: #enableMigrationItemNamed:inMenu:)
[] in AbtOrderedDictionary(EsOrderedDictionary)>>#associationsDo:
  receiver = AbtOrderedDictionary((#createMigrationItemNamed:inMenu: #enableMigrationItemNamed:inMenu:) )
  arg1 = [] in AbtApplicationsOrganizerView>>#createApplicationsMigrateMenu:
  blockarg1 = 'Base Migration'
  blockarg2 = 1
OrderedCollection>>#doWithIndex:
  receiver = OrderedCollection('Base Migration' )
  arg1 = [] in EsOrderedDictionary>>#associationsDo:
AbtOrderedDictionary(EsOrderedDictionary)>>#associationsDo:
  receiver = AbtOrderedDictionary((#createMigrationItemNamed:inMenu: #enableMigrationItemNamed:inMenu:) )
  arg1 = [] in AbtApplicationsOrganizerView>>#createApplicationsMigrateMenu:
AbtApplicationsOrganizerView>>#createApplicationsMigrateMenu:
  receiver = an AbtApplicationsOrganizerView
  arg1 = ##pulldown
  temp1 = an AbtCwMenuView('ApplicationsMigratePulldown')
  temp2 = AbtOrderedDictionary((#createMigrationItemNamed:inMenu: #enableMigrationItemNamed:inMenu:) )
  temp3 = (#createMigrationItemNamed:inMenu: #enableMigrationItemNamed:inMenu:)
AbtApplicationsOrganizerView>>#createApplicationsMenu:
  receiver = an AbtApplicationsOrganizerView
  arg1 = ##pulldown
  temp1 = an AbtCwMenuView('ApplicationsPulldown')
  temp2 = an AbtApplicationsOrganizer
AbtApplicationsOrganizerView>>#createMenuBar:
  receiver = an AbtApplicationsOrganizerView
  arg1 = ##pulldown
  temp1 = an AbtCwMenuView('MenuBar')
AbtApplicationsOrganizerView>>#createMenus
  receiver = an AbtApplicationsOrganizerView
  temp1 = nil
  temp2 = nil
  temp3 = nil
  temp4 = nil
  temp5 = nil
AbtApplicationsOrganizerView>>#initializeWindow
  receiver = an AbtApplicationsOrganizerView
  temp1 = an AbtContainerIconTreeView('ApplicationsContainer')
  temp2 = nil
DirectedMessage>>#abrSend
  receiver = DirectedMessage (an AbtApplicationsOrganizerView, #initializeWindow, ())
[optimized] in AbtDependentsCollection>>#signalEvent
  blockarg1 = DirectedMessage (an AbtApplicationsOrganizerView, #initializeWindow, ())
OrderedCollection>>#do:
  receiver = OrderedCollection(DirectedMessage (an AbtApplicationsOrganizerView, #initializeWindow, ()) )
  arg1 = [] in AbtDependentsCollection>>#signalEvent
AbtDependentsCollection>>#signalEvent
  receiver = an AbtDependentsCollection
AbtShellView(AbtPart)>>#callHandlers:
  receiver = an AbtShellView('Window')
  arg1 = an AbtDependentsCollection
AbtShellView(AbtBasicView)>>#signalAboutToOpenWidget
  receiver = an AbtShellView('Window')
AbtShellView>>#setPostCreationSettings
  receiver = an AbtShellView('Window')
AbtShellView>>#openWidget
  receiver = an AbtShellView('Window')
  temp1 = true
AbtApplicationsOrganizerView(AbtAppBldrView)>>#openWidget
  receiver = an AbtApplicationsOrganizerView
AbtApplicationsOrganizerView>>#openWidget
  receiver = an AbtApplicationsOrganizerView
[] in AbtApplicationsOrganizerView class>>#restart
  receiver = AbtApplicationsOrganizerView
  temp1 = nil
  temp2 = an AbtApplicationsOrganizerView
  blocktemp1 = nil
EmSystemConfiguration>>#showBusyCursorWhile:
  receiver = an EmSystemConfiguration
  arg1 = [] in AbtApplicationsOrganizerView class>>#restart
  temp1 = nil
  temp2 = nil
AbtApplicationsOrganizerView class>>#restart
  receiver = AbtApplicationsOrganizerView
  temp1 = nil
  temp2 = an AbtApplicationsOrganizerView
[optimized] in AbtOrganizerApp class>>#startUp
CwAppContext>>#processBackgroundGraphicRequests
  receiver = a CwAppContext
  temp1 = [] in AbtOrganizerApp class>>#startUp
  temp2 = 1
  temp3 = true
CwAppContext>>#readAndDispatch
  receiver = a CwAppContext
EpRuntimeStartUp class(EsWindowSystemStartUp class)>>#messageLoop
  receiver = EpRuntimeStartUp
  temp1 = nil
  temp2 = a CwAppContext
[optimized] in UIProcess class>>#forkUserInterface
[] in UIProcess(Process)>>#executeBlock:withArguments:
  receiver = UIProcess:(7/2/2015 9:03:14 AM){running,3}
  arg1 = [] in UIProcess class>>#forkUserInterface
  arg2 = ()
UIProcess(Process)>>#executeBlock:withArguments:
  receiver = UIProcess:(7/2/2015 9:03:14 AM){running,3}
  arg1 = [] in UIProcess class>>#forkUserInterface
  arg2 = ()
UIProcess(Process)>>#newProcessOn:stackSize:withArguments:named:
  receiver = UIProcess:(7/2/2015 9:03:14 AM){running,3}
  arg1 = [] in UIProcess class>>#forkUserInterface
  arg2 = 1024
  arg3 = ()
  arg4 = '(7/2/2015 9:03:14 AM)'


Walkback at 9:03:21 AM on 7/2/2015
UndefinedObject does not understand abtAsPartType
[] in EpRuntimeStartUp class(EsWindowSystemStartUp class)>>#outputWalkback:process:
  receiver = EpRuntimeStartUp
  arg1 = 'UndefinedObject does not understand abtAsPartType'
  arg2 = Process:15232{running,2}
  temp1 = 'C:\VA Smalltalk\8.6\walkback.log'
  temp2 = -1
  temp3 = a CfsWriteFileStream
EsCompactBlockContextTemplate(Block)>>#valueWithErrorHandler:oldHandler:onReturnDo:
  receiver = [] in EsWindowSystemStartUp class>>#outputWalkback:process:
  arg1 = [] in Block>>#when:do:exitWith:retryReturn:
  arg2 = nil
  arg3 = []
EsCompactBlockContextTemplate(Block)>>#when:do:exitWith:retryReturn:
  receiver = [] in EsWindowSystemStartUp class>>#outputWalkback:process:
  arg1 = an ExceptionalEventCollection
  arg2 = [] in EsWindowSystemStartUp class>>#outputWalkback:process:
  arg3 = [] in Block>>#when:do:
  arg4 = an Object
  temp1 = [] in Block>>#when:do:exitWith:retryReturn:
  temp2 = [] in Block>>#when:do:exitWith:retryReturn:
  temp3 = nil
EsCompactBlockContextTemplate(Block)>>#when:do:
  receiver = [] in EsWindowSystemStartUp class>>#outputWalkback:process:
  arg1 = an ExceptionalEventCollection
  arg2 = [] in EsWindowSystemStartUp class>>#outputWalkback:process:
  temp1 = an Object
  temp2 = nil
EpRuntimeStartUp class(EsWindowSystemStartUp class)>>#outputWalkback:process:
  receiver = EpRuntimeStartUp
  arg1 = 'UndefinedObject does not understand abtAsPartType'
  arg2 = Process:15232{running,2}
  temp1 = 'C:\VA Smalltalk\8.6\walkback.log'
  temp2 = -1
  temp3 = a CfsWriteFileStream
EpRuntimeStartUp class(EsImageStartUp class)>>#outputWalkback:
  receiver = EpRuntimeStartUp
  arg1 = 'UndefinedObject does not understand abtAsPartType'
EpRuntimeStartUp class>>#reportError:resumable:startBP:
  receiver = EpRuntimeStartUp
  arg1 = 'UndefinedObject does not understand abtAsPartType'
  arg2 = false
  arg3 = 238
Process>>#reportError:resumable:
  receiver = Process:15232{running,2}
  arg1 = 'UndefinedObject does not understand abtAsPartType'
  arg2 = false
  temp1 = 238
[optimized] in ExceptionalEvent class>>#initializeSystemExceptions
  blockarg1 = Signal on Exception: (ExError) An error has occurred.
Signal>>#evaluate:
  receiver = Signal on Exception: (ExError) An error has occurred.
  arg1 = [] in ExceptionalEvent class>>#initializeSystemExceptions
Signal>>#evaluateDefaultHandler:
  receiver = Signal on Exception: (ExError) An error has occurred.
  arg1 = [] in ExceptionalEvent class>>#initializeSystemExceptions
ExceptionalEvent>>#applyDefaultHandler:
  receiver = Exception: (ExError) An error has occurred.
  arg1 = Signal on Exception: (ExError) An error has occurred.
  temp1 = Exception: (ExError) An error has occurred.
ExceptionalEvent>>#signalFor:
  receiver = Exception: (ExError) An error has occurred.
  arg1 = Signal on Exception: (ExError) An error has occurred.
  temp1 = nil
ExceptionalEvent>>#signalWithArguments:
  receiver = Exception: (ExError) An error has occurred.
  arg1 = ('UndefinedObject does not understand abtAsPartType')
ExceptionalEvent>>#signalWith:
  receiver = Exception: (ExError) An error has occurred.
  arg1 = 'UndefinedObject does not understand abtAsPartType'
UndefinedObject(Object)>>#error:
  receiver = nil
  arg1 = 'UndefinedObject does not understand abtAsPartType'
MessageNotUnderstood>>#defaultAction
  receiver = Signal on Exception: (ExMessageNotUnderstood) An exception has occurred
[optimized] in Exception class>>#newExceptionalEvent
  blockarg1 = Signal on Exception: (ExMessageNotUnderstood) An exception has occurred
MessageNotUnderstood(Exception)>>#evaluateDefaultHandler:
  receiver = Signal on Exception: (ExMessageNotUnderstood) An exception has occurred
  arg1 = [] in Exception class>>#newExceptionalEvent
ExceptionalEvent>>#applyDefaultHandler:
  receiver = Exception: (ExMessageNotUnderstood) An exception has occurred
  arg1 = Signal on Exception: (ExMessageNotUnderstood) An exception has occurred
  temp1 = Exception: (ExMessageNotUnderstood) An exception has occurred
ExceptionalEvent>>#signalFor:
  receiver = Exception: (ExMessageNotUnderstood) An exception has occurred
  arg1 = Signal on Exception: (ExMessageNotUnderstood) An exception has occurred
  temp1 = nil
MessageNotUnderstood(Exception)>>#signal
  receiver = Signal on Exception: (ExMessageNotUnderstood) An exception has occurred
MessageNotUnderstood(Exception)>>#signal:
  receiver = Signal on Exception: (ExMessageNotUnderstood) An exception has occurred
  arg1 = 'nil does not understand Message (#abtAsPartType, ())'
MessageNotUnderstood class>>#signalWith:
  receiver = MessageNotUnderstood
  arg1 = (nil Message (#abtAsPartType, ()))
UndefinedObject(Object)>>#doesNotUnderstand:
  receiver = nil
  arg1 = Message (#abtAsPartType, ())
[optimized] in AbtPartsCatalog class>>#preloadPaletteGraphics
  blockarg1 = nil
OrderedCollection>>#do:
  receiver = OrderedCollection(#AbtShellView #AbtFormView #AbtGroupBoxView #AbtScrolledWindowView #AbtPortablePMNotebookView #AbtPortableWINNotebookView #AbtPortableNotebookPageView #WkNotebookView #WkSplitBar nil )
  arg1 = [] in AbtPartsCatalog class>>#preloadPaletteGraphics
[] in AbtPartsCatalog class>>#preloadPaletteGraphics
  receiver = AbtPartsCatalog
  temp1 = OrderedCollection(an AbtPartsCategory an AbtPartsCategory an AbtPartsCategory an AbtPartsCategory an AbtPartsCategory an AbtPartsCategory an AbtPartsCategory an AbtPartsCategory an AbtPartsCategory an AbtPartsCategory an AbtPartsCategory )
  temp2 = an AbtIconDescriptor
  blockarg1 = an AbtPartsCategory
OrderedCollection>>#do:
  receiver = OrderedCollection(an AbtPartsCategory an AbtPartsCategory an AbtPartsCategory an AbtPartsCategory an AbtPartsCategory an AbtPartsCategory an AbtPartsCategory an AbtPartsCategory an AbtPartsCategory an AbtPartsCategory an AbtPartsCategory )
  arg1 = [] in AbtPartsCatalog class>>#preloadPaletteGraphics
AbtPartsCatalog class>>#preloadPaletteGraphics
  receiver = AbtPartsCatalog
  temp1 = OrderedCollection(an AbtPartsCategory an AbtPartsCategory an AbtPartsCategory an AbtPartsCategory an AbtPartsCategory an AbtPartsCategory an AbtPartsCategory an AbtPartsCategory an AbtPartsCategory an AbtPartsCategory an AbtPartsCategory )
  temp2 = an AbtIconDescriptor
[optimized] in AbtEditPartsCatalogSubApp class>>#startUp
[] in Process>>#executeBlock:withArguments:
  receiver = Process:15232{running,2}
  arg1 = [] in AbtEditPartsCatalogSubApp class>>#startUp
  arg2 = ()
Process>>#executeBlock:withArguments:
  receiver = Process:15232{running,2}
  arg1 = [] in AbtEditPartsCatalogSubApp class>>#startUp
  arg2 = ()
Process>>#newProcessOn:stackSize:withArguments:named:
  receiver = Process:15232{running,2}
  arg1 = [] in AbtEditPartsCatalogSubApp class>>#startUp
  arg2 = 1024
  arg3 = ()
  arg4 = '15232'

--
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 post to this group, send email to [hidden email].
Visit this group at http://groups.google.com/group/va-smalltalk.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Telling Smalltalk to not do windowsey kinds of things - headless application tips?

Carl Gundel-2
Ok, I see a reference to AbtHeadlessRuntimeStartUp in the docs, but this class doesn't appear in the packager control panel tab 'startup code' and I don't see it as something I can load.  There is an application I can find it in?

Thanks,

-Carl

On Thursday, July 2, 2015 at 9:34:00 AM UTC-4, Carl Gundel wrote:
When I start my runtime application I launch it without opening any windows, but it isn't getting that far.  Instead it is throwing errors while trying to open windows and such.  Why is that?  How can I tell my packaged application not to do any GUI stuff which apparently isn't working because not all that stuff is packaged anyways.

My application doesn't have a GUI.

What is the simplest way to do a headless image?  I find the documentation hard to follow.

Thanks,

-Carl

Two examples follow:

Walkback at 9:03:15 AM on 7/2/2015
AbtShellView does not understand createMigrationItemNamed:inMenu:
[] in EpRuntimeStartUp class(EsWindowSystemStartUp class)>>#outputWalkback:process:
  receiver = EpRuntimeStartUp
  arg1 = 'AbtShellView does not understand createMigrationItemNamed:inMenu:'
  arg2 = UIProcess:(7/2/2015 9:03:14 AM){running,3}
  temp1 = 'C:\VA Smalltalk\8.6\walkback.log'
  temp2 = -1
  temp3 = a CfsWriteFileStream
EsCompactBlockContextTemplate(Block)>>#valueWithErrorHandler:oldHandler:onReturnDo:
  receiver = [] in EsWindowSystemStartUp class>>#outputWalkback:process:
  arg1 = [] in Block>>#when:do:exitWith:retryReturn:
  arg2 = nil
  arg3 = []
EsCompactBlockContextTemplate(Block)>>#when:do:exitWith:retryReturn:
  receiver = [] in EsWindowSystemStartUp class>>#outputWalkback:process:
  arg1 = an ExceptionalEventCollection
  arg2 = [] in EsWindowSystemStartUp class>>#outputWalkback:process:
  arg3 = [] in Block>>#when:do:
  arg4 = an Object
  temp1 = [] in Block>>#when:do:exitWith:retryReturn:
  temp2 = [] in Block>>#when:do:exitWith:retryReturn:
  temp3 = nil
EsCompactBlockContextTemplate(Block)>>#when:do:
  receiver = [] in EsWindowSystemStartUp class>>#outputWalkback:process:
  arg1 = an ExceptionalEventCollection
  arg2 = [] in EsWindowSystemStartUp class>>#outputWalkback:process:
  temp1 = an Object
  temp2 = nil
EpRuntimeStartUp class(EsWindowSystemStartUp class)>>#outputWalkback:process:
  receiver = EpRuntimeStartUp
  arg1 = 'AbtShellView does not understand createMigrationItemNamed:inMenu:'
  arg2 = UIProcess:(7/2/2015 9:03:14 AM){running,3}
  temp1 = 'C:\VA Smalltalk\8.6\walkback.log'
  temp2 = -1
  temp3 = a CfsWriteFileStream
EpRuntimeStartUp class(EsImageStartUp class)>>#outputWalkback:
  receiver = EpRuntimeStartUp
  arg1 = 'AbtShellView does not understand createMigrationItemNamed:inMenu:'
EpRuntimeStartUp class>>#reportError:resumable:startBP:
  receiver = EpRuntimeStartUp
  arg1 = 'AbtShellView does not understand createMigrationItemNamed:inMenu:'
  arg2 = false
  arg3 = 452
UIProcess(Process)>>#reportError:resumable:
  receiver = UIProcess:(7/2/2015 9:03:14 AM){running,3}
  arg1 = 'AbtShellView does not understand createMigrationItemNamed:inMenu:'
  arg2 = false
  temp1 = 452
[optimized] in ExceptionalEvent class>>#initializeSystemExceptions
  blockarg1 = Signal on Exception: (ExError) An error has occurred.
Signal>>#evaluate:
  receiver = Signal on Exception: (ExError) An error has occurred.
  arg1 = [] in ExceptionalEvent class>>#initializeSystemExceptions
Signal>>#evaluateDefaultHandler:
  receiver = Signal on Exception: (ExError) An error has occurred.
  arg1 = [] in ExceptionalEvent class>>#initializeSystemExceptions
ExceptionalEvent>>#applyDefaultHandler:
  receiver = Exception: (ExError) An error has occurred.
  arg1 = Signal on Exception: (ExError) An error has occurred.
  temp1 = Exception: (ExError) An error has occurred.
ExceptionalEvent>>#signalFor:
  receiver = Exception: (ExError) An error has occurred.
  arg1 = Signal on Exception: (ExError) An error has occurred.
  temp1 = nil
ExceptionalEvent>>#signalWithArguments:
  receiver = Exception: (ExError) An error has occurred.
  arg1 = ('AbtShellView does not understand createMigrationItemNamed:inMenu:')
ExceptionalEvent>>#signalWith:
  receiver = Exception: (ExError) An error has occurred.
  arg1 = 'AbtShellView does not understand createMigrationItemNamed:inMenu:'
AbtShellView(Object)>>#error:
  receiver = an AbtShellView('Window')
  arg1 = 'AbtShellView does not understand createMigrationItemNamed:inMenu:'
MessageNotUnderstood>>#defaultAction
  receiver = Signal on Exception: (ExMessageNotUnderstood) An exception has occurred
[optimized] in Exception class>>#newExceptionalEvent
  blockarg1 = Signal on Exception: (ExMessageNotUnderstood) An exception has occurred
MessageNotUnderstood(Exception)>>#evaluateDefaultHandler:
  receiver = Signal on Exception: (ExMessageNotUnderstood) An exception has occurred
  arg1 = [] in Exception class>>#newExceptionalEvent
ExceptionalEvent>>#applyDefaultHandler:
  receiver = Exception: (ExMessageNotUnderstood) An exception has occurred
  arg1 = Signal on Exception: (ExMessageNotUnderstood) An exception has occurred
  temp1 = Exception: (ExMessageNotUnderstood) An exception has occurred
ExceptionalEvent>>#signalFor:
  receiver = Exception: (ExMessageNotUnderstood) An exception has occurred
  arg1 = Signal on Exception: (ExMessageNotUnderstood) An exception has occurred
  temp1 = nil
MessageNotUnderstood(Exception)>>#signal
  receiver = Signal on Exception: (ExMessageNotUnderstood) An exception has occurred
MessageNotUnderstood(Exception)>>#signal:
  receiver = Signal on Exception: (ExMessageNotUnderstood) An exception has occurred
  arg1 = 'an AbtShellView(''Window'') does not understand Message (#createMigrationItemNamed:inMenu:, (''Base Migration'' an AbtCwMenuView(''ApplicationsMigratePulldown'')))'
MessageNotUnderstood class>>#signalWith:
  receiver = MessageNotUnderstood
  arg1 = (an AbtShellView('Window') Message (#createMigrationItemNamed:inMenu:, ('Base Migration' an AbtCwMenuView('ApplicationsMigratePulldown'))))
AbtShellView(Object)>>#doesNotUnderstand:
  receiver = an AbtShellView('Window')
  arg1 = Message (#createMigrationItemNamed:inMenu:, ('Base Migration' an AbtCwMenuView('ApplicationsMigratePulldown')))
Message>>#sendTo:
  receiver = Message (#createMigrationItemNamed:inMenu:, ('Base Migration' an AbtCwMenuView('ApplicationsMigratePulldown')))
  arg1 = an AbtShellView('Window')
AbtApplicationsOrganizerView(AbtAppBldrPart)>>#doesNotUnderstand:
  receiver = an AbtApplicationsOrganizerView
  arg1 = Message (#createMigrationItemNamed:inMenu:, ('Base Migration' an AbtCwMenuView('ApplicationsMigratePulldown')))
[] in AbtApplicationsOrganizerView>>#createApplicationsMigrateMenu:
  receiver = an AbtApplicationsOrganizerView
  arg1 = ##pulldown
  temp1 = an AbtCwMenuView('ApplicationsMigratePulldown')
  temp2 = AbtOrderedDictionary((#createMigrationItemNamed:inMenu: #enableMigrationItemNamed:inMenu:) )
  temp3 = (#createMigrationItemNamed:inMenu: #enableMigrationItemNamed:inMenu:)
  blockarg1 = 'Base Migration' -> (#createMigrationItemNamed:inMenu: #enableMigrationItemNamed:inMenu:)
[] in AbtOrderedDictionary(EsOrderedDictionary)>>#associationsDo:
  receiver = AbtOrderedDictionary((#createMigrationItemNamed:inMenu: #enableMigrationItemNamed:inMenu:) )
  arg1 = [] in AbtApplicationsOrganizerView>>#createApplicationsMigrateMenu:
  blockarg1 = 'Base Migration'
  blockarg2 = 1
OrderedCollection>>#doWithIndex:
  receiver = OrderedCollection('Base Migration' )
  arg1 = [] in EsOrderedDictionary>>#associationsDo:
AbtOrderedDictionary(EsOrderedDictionary)>>#associationsDo:
  receiver = AbtOrderedDictionary((#createMigrationItemNamed:inMenu: #enableMigrationItemNamed:inMenu:) )
  arg1 = [] in AbtApplicationsOrganizerView>>#createApplicationsMigrateMenu:
AbtApplicationsOrganizerView>>#createApplicationsMigrateMenu:
  receiver = an AbtApplicationsOrganizerView
  arg1 = ##pulldown
  temp1 = an AbtCwMenuView('ApplicationsMigratePulldown')
  temp2 = AbtOrderedDictionary((#createMigrationItemNamed:inMenu: #enableMigrationItemNamed:inMenu:) )
  temp3 = (#createMigrationItemNamed:inMenu: #enableMigrationItemNamed:inMenu:)
AbtApplicationsOrganizerView>>#createApplicationsMenu:
  receiver = an AbtApplicationsOrganizerView
  arg1 = ##pulldown
  temp1 = an AbtCwMenuView('ApplicationsPulldown')
  temp2 = an AbtApplicationsOrganizer
AbtApplicationsOrganizerView>>#createMenuBar:
  receiver = an AbtApplicationsOrganizerView
  arg1 = ##pulldown
  temp1 = an AbtCwMenuView('MenuBar')
AbtApplicationsOrganizerView>>#createMenus
  receiver = an AbtApplicationsOrganizerView
  temp1 = nil
  temp2 = nil
  temp3 = nil
  temp4 = nil
  temp5 = nil
AbtApplicationsOrganizerView>>#initializeWindow
  receiver = an AbtApplicationsOrganizerView
  temp1 = an AbtContainerIconTreeView('ApplicationsContainer')
  temp2 = nil
DirectedMessage>>#abrSend
  receiver = DirectedMessage (an AbtApplicationsOrganizerView, #initializeWindow, ())
[optimized] in AbtDependentsCollection>>#signalEvent
  blockarg1 = DirectedMessage (an AbtApplicationsOrganizerView, #initializeWindow, ())
OrderedCollection>>#do:
  receiver = OrderedCollection(DirectedMessage (an AbtApplicationsOrganizerView, #initializeWindow, ()) )
  arg1 = [] in AbtDependentsCollection>>#signalEvent
AbtDependentsCollection>>#signalEvent
  receiver = an AbtDependentsCollection
AbtShellView(AbtPart)>>#callHandlers:
  receiver = an AbtShellView('Window')
  arg1 = an AbtDependentsCollection
AbtShellView(AbtBasicView)>>#signalAboutToOpenWidget
  receiver = an AbtShellView('Window')
AbtShellView>>#setPostCreationSettings
  receiver = an AbtShellView('Window')
AbtShellView>>#openWidget
  receiver = an AbtShellView('Window')
  temp1 = true
AbtApplicationsOrganizerView(AbtAppBldrView)>>#openWidget
  receiver = an AbtApplicationsOrganizerView
AbtApplicationsOrganizerView>>#openWidget
  receiver = an AbtApplicationsOrganizerView
[] in AbtApplicationsOrganizerView class>>#restart
  receiver = AbtApplicationsOrganizerView
  temp1 = nil
  temp2 = an AbtApplicationsOrganizerView
  blocktemp1 = nil
EmSystemConfiguration>>#showBusyCursorWhile:
  receiver = an EmSystemConfiguration
  arg1 = [] in AbtApplicationsOrganizerView class>>#restart
  temp1 = nil
  temp2 = nil
AbtApplicationsOrganizerView class>>#restart
  receiver = AbtApplicationsOrganizerView
  temp1 = nil
  temp2 = an AbtApplicationsOrganizerView
[optimized] in AbtOrganizerApp class>>#startUp
CwAppContext>>#processBackgroundGraphicRequests
  receiver = a CwAppContext
  temp1 = [] in AbtOrganizerApp class>>#startUp
  temp2 = 1
  temp3 = true
CwAppContext>>#readAndDispatch
  receiver = a CwAppContext
EpRuntimeStartUp class(EsWindowSystemStartUp class)>>#messageLoop
  receiver = EpRuntimeStartUp
  temp1 = nil
  temp2 = a CwAppContext
[optimized] in UIProcess class>>#forkUserInterface
[] in UIProcess(Process)>>#executeBlock:withArguments:
  receiver = UIProcess:(7/2/2015 9:03:14 AM){running,3}
  arg1 = [] in UIProcess class>>#forkUserInterface
  arg2 = ()
UIProcess(Process)>>#executeBlock:withArguments:
  receiver = UIProcess:(7/2/2015 9:03:14 AM){running,3}
  arg1 = [] in UIProcess class>>#forkUserInterface
  arg2 = ()
UIProcess(Process)>>#newProcessOn:stackSize:withArguments:named:
  receiver = UIProcess:(7/2/2015 9:03:14 AM){running,3}
  arg1 = [] in UIProcess class>>#forkUserInterface
  arg2 = 1024
  arg3 = ()
  arg4 = '(7/2/2015 9:03:14 AM)'


Walkback at 9:03:21 AM on 7/2/2015
UndefinedObject does not understand abtAsPartType
[] in EpRuntimeStartUp class(EsWindowSystemStartUp class)>>#outputWalkback:process:
  receiver = EpRuntimeStartUp
  arg1 = 'UndefinedObject does not understand abtAsPartType'
  arg2 = Process:15232{running,2}
  temp1 = 'C:\VA Smalltalk\8.6\walkback.log'
  temp2 = -1
  temp3 = a CfsWriteFileStream
EsCompactBlockContextTemplate(Block)>>#valueWithErrorHandler:oldHandler:onReturnDo:
  receiver = [] in EsWindowSystemStartUp class>>#outputWalkback:process:
  arg1 = [] in Block>>#when:do:exitWith:retryReturn:
  arg2 = nil
  arg3 = []
EsCompactBlockContextTemplate(Block)>>#when:do:exitWith:retryReturn:
  receiver = [] in EsWindowSystemStartUp class>>#outputWalkback:process:
  arg1 = an ExceptionalEventCollection
  arg2 = [] in EsWindowSystemStartUp class>>#outputWalkback:process:
  arg3 = [] in Block>>#when:do:
  arg4 = an Object
  temp1 = [] in Block>>#when:do:exitWith:retryReturn:
  temp2 = [] in Block>>#when:do:exitWith:retryReturn:
  temp3 = nil
EsCompactBlockContextTemplate(Block)>>#when:do:
  receiver = [] in EsWindowSystemStartUp class>>#outputWalkback:process:
  arg1 = an ExceptionalEventCollection
  arg2 = [] in EsWindowSystemStartUp class>>#outputWalkback:process:
  temp1 = an Object
  temp2 = nil
EpRuntimeStartUp class(EsWindowSystemStartUp class)>>#outputWalkback:process:
  receiver = EpRuntimeStartUp
  arg1 = 'UndefinedObject does not understand abtAsPartType'
  arg2 = Process:15232{running,2}
  temp1 = 'C:\VA Smalltalk\8.6\walkback.log'
  temp2 = -1
  temp3 = a CfsWriteFileStream
EpRuntimeStartUp class(EsImageStartUp class)>>#outputWalkback:
  receiver = EpRuntimeStartUp
  arg1 = 'UndefinedObject does not understand abtAsPartType'
EpRuntimeStartUp class>>#reportError:resumable:startBP:
  receiver = EpRuntimeStartUp
  arg1 = 'UndefinedObject does not understand abtAsPartType'
  arg2 = false
  arg3 = 238
Process>>#reportError:resumable:
  receiver = Process:15232{running,2}
  arg1 = 'UndefinedObject does not understand abtAsPartType'
  arg2 = false
  temp1 = 238
[optimized] in ExceptionalEvent class>>#initializeSystemExceptions
  blockarg1 = Signal on Exception: (ExError) An error has occurred.
Signal>>#evaluate:
  receiver = Signal on Exception: (ExError) An error has occurred.
  arg1 = [] in ExceptionalEvent class>>#initializeSystemExceptions
Signal>>#evaluateDefaultHandler:
  receiver = Signal on Exception: (ExError) An error has occurred.
  arg1 = [] in ExceptionalEvent class>>#initializeSystemExceptions
ExceptionalEvent>>#applyDefaultHandler:
  receiver = Exception: (ExError) An error has occurred.
  arg1 = Signal on Exception: (ExError) An error has occurred.
  temp1 = Exception: (ExError) An error has occurred.
ExceptionalEvent>>#signalFor:
  receiver = Exception: (ExError) An error has occurred.
  arg1 = Signal on Exception: (ExError) An error has occurred.
  temp1 = nil
ExceptionalEvent>>#signalWithArguments:
  receiver = Exception: (ExError) An error has occurred.
  arg1 = ('UndefinedObject does not understand abtAsPartType')
ExceptionalEvent>>#signalWith:
  receiver = Exception: (ExError) An error has occurred.
  arg1 = 'UndefinedObject does not understand abtAsPartType'
UndefinedObject(Object)>>#error:
  receiver = nil
  arg1 = 'UndefinedObject does not understand abtAsPartType'
MessageNotUnderstood>>#defaultAction
  receiver = Signal on Exception: (ExMessageNotUnderstood) An exception has occurred
[optimized] in Exception class>>#newExceptionalEvent
  blockarg1 = Signal on Exception: (ExMessageNotUnderstood) An exception has occurred
MessageNotUnderstood(Exception)>>#evaluateDefaultHandler:
  receiver = Signal on Exception: (ExMessageNotUnderstood) An exception has occurred
  arg1 = [] in Exception class>>#newExceptionalEvent
ExceptionalEvent>>#applyDefaultHandler:
  receiver = Exception: (ExMessageNotUnderstood) An exception has occurred
  arg1 = Signal on Exception: (ExMessageNotUnderstood) An exception has occurred
  temp1 = Exception: (ExMessageNotUnderstood) An exception has occurred
ExceptionalEvent>>#signalFor:
  receiver = Exception: (ExMessageNotUnderstood) An exception has occurred
  arg1 = Signal on Exception: (ExMessageNotUnderstood) An exception has occurred
  temp1 = nil
MessageNotUnderstood(Exception)>>#signal
  receiver = Signal on Exception: (ExMessageNotUnderstood) An exception has occurred
MessageNotUnderstood(Exception)>>#signal:
  receiver = Signal on Exception: (ExMessageNotUnderstood) An exception has occurred
  arg1 = 'nil does not understand Message (#abtAsPartType, ())'
MessageNotUnderstood class>>#signalWith:
  receiver = MessageNotUnderstood
  arg1 = (nil Message (#abtAsPartType, ()))
UndefinedObject(Object)>>#doesNotUnderstand:
  receiver = nil
  arg1 = Message (#abtAsPartType, ())
[optimized] in AbtPartsCatalog class>>#preloadPaletteGraphics
  blockarg1 = nil
OrderedCollection>>#do:
  receiver = OrderedCollection(#AbtShellView #AbtFormView #AbtGroupBoxView #AbtScrolledWindowView #AbtPortablePMNotebookView #AbtPortableWINNotebookView #AbtPortableNotebookPageView #WkNotebookView #WkSplitBar nil )
  arg1 = [] in AbtPartsCatalog class>>#preloadPaletteGraphics
[] in AbtPartsCatalog class>>#preloadPaletteGraphics
  receiver = AbtPartsCatalog
  temp1 = OrderedCollection(an AbtPartsCategory an AbtPartsCategory an AbtPartsCategory an AbtPartsCategory an AbtPartsCategory an AbtPartsCategory an AbtPartsCategory an AbtPartsCategory an AbtPartsCategory an AbtPartsCategory an AbtPartsCategory )
  temp2 = an AbtIconDescriptor
  blockarg1 = an AbtPartsCategory
OrderedCollection>>#do:
  receiver = OrderedCollection(an AbtPartsCategory an AbtPartsCategory an AbtPartsCategory an AbtPartsCategory an AbtPartsCategory an AbtPartsCategory an AbtPartsCategory an AbtPartsCategory an AbtPartsCategory an AbtPartsCategory an AbtPartsCategory )
  arg1 = [] in AbtPartsCatalog class>>#preloadPaletteGraphics
AbtPartsCatalog class>>#preloadPaletteGraphics
  receiver = AbtPartsCatalog
  temp1 = OrderedCollection(an AbtPartsCategory an AbtPartsCategory an AbtPartsCategory an AbtPartsCategory an AbtPartsCategory an AbtPartsCategory an AbtPartsCategory an AbtPartsCategory an AbtPartsCategory an AbtPartsCategory an AbtPartsCategory )
  temp2 = an AbtIconDescriptor
[optimized] in AbtEditPartsCatalogSubApp class>>#startUp
[] in Process>>#executeBlock:withArguments:
  receiver = Process:15232{running,2}
  arg1 = [] in AbtEditPartsCatalogSubApp class>>#startUp
  arg2 = ()
Process>>#executeBlock:withArguments:
  receiver = Process:15232{running,2}
  arg1 = [] in AbtEditPartsCatalogSubApp class>>#startUp
  arg2 = ()
Process>>#newProcessOn:stackSize:withArguments:named:
  receiver = Process:15232{running,2}
  arg1 = [] in AbtEditPartsCatalogSubApp class>>#startUp
  arg2 = 1024
  arg3 = ()
  arg4 = '15232'

--
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 post to this group, send email to [hidden email].
Visit this group at http://groups.google.com/group/va-smalltalk.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Telling Smalltalk to not do windowsey kinds of things - headless application tips?

jtuchel
Carl,

If you wanz to build a headless Image, you have to look at Cross Packaging or XD Packaging. The process isn't hard, but it starts with loading the Server feature and you need to learn about active and passive images. I am not at my PC right now, so I cannot tell you which book in the docs to consult, but I hope I could give you a starting point. Are you coming to Brescia? If so, I would be happy to show you how we do it for Kobtolino.

Joachim

--
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 post to this group, send email to [hidden email].
Visit this group at http://groups.google.com/group/va-smalltalk.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Telling Smalltalk to not do windowsey kinds of things - headless application tips?

Santiago Cardoso Geller-3
Hi Carl.
You can start reading this section from the online documentation:

http://www.instantiations.com/docs/861/wwhelp/wwhimpl/js/html/wwhelp.htm#href=sv/server16.html

As Joachim mentioned, you first must load the "ST: Server Workbench, Base" feature.

After that you will see a new option at Transcript Menu: XD
https://www.dropbox.com/s/0eqllzi2zi0eife/1.png?dl=0

From that menu you will be able to create passive images.
https://www.dropbox.com/s/9j90hq28oissnik/2.png?dl=0

You must select the image type (Windows / UNIX) and the features that you want to be loaded on the new image:
https://www.dropbox.com/s/jo7c84q9rla66t3/3.png?dl=0

https://www.dropbox.com/s/j07hj865ylc4r5c/4.png?dl=0

Then you can switch from Development and Passive image.
https://www.dropbox.com/s/wmkqnqr37k3hyct/5.png?dl=0

Packaging instructions should be loaded at Development Image.

AbtHeadlessRuntimeStartUp class will be available at Passive image. You must package your headless from the passive image.

Regards,
Santiago

On Thu, Jul 2, 2015 at 12:14 PM, Joachim Tuchel <[hidden email]> wrote:
Carl,

If you wanz to build a headless Image, you have to look at Cross Packaging or XD Packaging. The process isn't hard, but it starts with loading the Server feature and you need to learn about active and passive images. I am not at my PC right now, so I cannot tell you which book in the docs to consult, but I hope I could give you a starting point. Are you coming to Brescia? If so, I would be happy to show you how we do it for Kobtolino.

Joachim

--
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 post to this group, send email to [hidden email].
Visit this group at http://groups.google.com/group/va-smalltalk.
For more options, visit https://groups.google.com/d/optout.

--
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 post to this group, send email to [hidden email].
Visit this group at http://groups.google.com/group/va-smalltalk.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Telling Smalltalk to not do windowsey kinds of things - headless application tips?

Carl Gundel-2
Wow, thanks for your help guys.

I have to say, this aspect of VA Smalltalk is impressive and interesting.  It is also more complicated than any Smalltalk packaging scheme I've ever seen.  Too many options make it a bit bewildering but this may be solved by rethinking documentation.

Please work on making all this easier.  A series of videos showing how to use the packaging schemes and tools might help a lot.

Thanks again.

-Carl

On Thursday, July 2, 2015 at 12:36:12 PM UTC-4, Santiago Cardoso Geller wrote:
Hi Carl.
You can start reading this section from the online documentation:

<a href="http://www.instantiations.com/docs/861/wwhelp/wwhimpl/js/html/wwhelp.htm#href=sv/server16.html" target="_blank" rel="nofollow" onmousedown="this.href='http://www.google.com/url?q\75http%3A%2F%2Fwww.instantiations.com%2Fdocs%2F861%2Fwwhelp%2Fwwhimpl%2Fjs%2Fhtml%2Fwwhelp.htm%23href%3Dsv%2Fserver16.html\46sa\75D\46sntz\0751\46usg\75AFQjCNFhiApGBq8qkH6PFwgxrVdGQa-wyw';return true;" onclick="this.href='http://www.google.com/url?q\75http%3A%2F%2Fwww.instantiations.com%2Fdocs%2F861%2Fwwhelp%2Fwwhimpl%2Fjs%2Fhtml%2Fwwhelp.htm%23href%3Dsv%2Fserver16.html\46sa\75D\46sntz\0751\46usg\75AFQjCNFhiApGBq8qkH6PFwgxrVdGQa-wyw';return true;">http://www.instantiations.com/docs/861/wwhelp/wwhimpl/js/html/wwhelp.htm#href=sv/server16.html

As Joachim mentioned, you first must load the "ST: Server Workbench, Base" feature.

After that you will see a new option at Transcript Menu: XD
<a href="https://www.dropbox.com/s/0eqllzi2zi0eife/1.png?dl=0" target="_blank" rel="nofollow" onmousedown="this.href='https://www.google.com/url?q\75https%3A%2F%2Fwww.dropbox.com%2Fs%2F0eqllzi2zi0eife%2F1.png%3Fdl%3D0\46sa\75D\46sntz\0751\46usg\75AFQjCNHjZafX-2wOh_MAQGLsLLG9OzSGOA';return true;" onclick="this.href='https://www.google.com/url?q\75https%3A%2F%2Fwww.dropbox.com%2Fs%2F0eqllzi2zi0eife%2F1.png%3Fdl%3D0\46sa\75D\46sntz\0751\46usg\75AFQjCNHjZafX-2wOh_MAQGLsLLG9OzSGOA';return true;">https://www.dropbox.com/s/0eqllzi2zi0eife/1.png?dl=0

From that menu you will be able to create passive images.
<a href="https://www.dropbox.com/s/9j90hq28oissnik/2.png?dl=0" target="_blank" rel="nofollow" onmousedown="this.href='https://www.google.com/url?q\75https%3A%2F%2Fwww.dropbox.com%2Fs%2F9j90hq28oissnik%2F2.png%3Fdl%3D0\46sa\75D\46sntz\0751\46usg\75AFQjCNFqSFgXNlK7xCTnep82-0B-lJJfNA';return true;" onclick="this.href='https://www.google.com/url?q\75https%3A%2F%2Fwww.dropbox.com%2Fs%2F9j90hq28oissnik%2F2.png%3Fdl%3D0\46sa\75D\46sntz\0751\46usg\75AFQjCNFqSFgXNlK7xCTnep82-0B-lJJfNA';return true;">https://www.dropbox.com/s/9j90hq28oissnik/2.png?dl=0

You must select the image type (Windows / UNIX) and the features that you want to be loaded on the new image:
<a href="https://www.dropbox.com/s/jo7c84q9rla66t3/3.png?dl=0" target="_blank" rel="nofollow" onmousedown="this.href='https://www.google.com/url?q\75https%3A%2F%2Fwww.dropbox.com%2Fs%2Fjo7c84q9rla66t3%2F3.png%3Fdl%3D0\46sa\75D\46sntz\0751\46usg\75AFQjCNGamBp6Rq76BjqqmhRHkoP7Wfgecw';return true;" onclick="this.href='https://www.google.com/url?q\75https%3A%2F%2Fwww.dropbox.com%2Fs%2Fjo7c84q9rla66t3%2F3.png%3Fdl%3D0\46sa\75D\46sntz\0751\46usg\75AFQjCNGamBp6Rq76BjqqmhRHkoP7Wfgecw';return true;">https://www.dropbox.com/s/jo7c84q9rla66t3/3.png?dl=0

<a href="https://www.dropbox.com/s/j07hj865ylc4r5c/4.png?dl=0" target="_blank" rel="nofollow" onmousedown="this.href='https://www.google.com/url?q\75https%3A%2F%2Fwww.dropbox.com%2Fs%2Fj07hj865ylc4r5c%2F4.png%3Fdl%3D0\46sa\75D\46sntz\0751\46usg\75AFQjCNFLlp3hrwHrdEPJAVRYoxJ2Wj6a5w';return true;" onclick="this.href='https://www.google.com/url?q\75https%3A%2F%2Fwww.dropbox.com%2Fs%2Fj07hj865ylc4r5c%2F4.png%3Fdl%3D0\46sa\75D\46sntz\0751\46usg\75AFQjCNFLlp3hrwHrdEPJAVRYoxJ2Wj6a5w';return true;">https://www.dropbox.com/s/j07hj865ylc4r5c/4.png?dl=0

Then you can switch from Development and Passive image.
<a href="https://www.dropbox.com/s/wmkqnqr37k3hyct/5.png?dl=0" target="_blank" rel="nofollow" onmousedown="this.href='https://www.google.com/url?q\75https%3A%2F%2Fwww.dropbox.com%2Fs%2Fwmkqnqr37k3hyct%2F5.png%3Fdl%3D0\46sa\75D\46sntz\0751\46usg\75AFQjCNEa6TWtOYMli15sHVDe4Dh4v8BFhQ';return true;" onclick="this.href='https://www.google.com/url?q\75https%3A%2F%2Fwww.dropbox.com%2Fs%2Fwmkqnqr37k3hyct%2F5.png%3Fdl%3D0\46sa\75D\46sntz\0751\46usg\75AFQjCNEa6TWtOYMli15sHVDe4Dh4v8BFhQ';return true;">https://www.dropbox.com/s/wmkqnqr37k3hyct/5.png?dl=0

Packaging instructions should be loaded at Development Image.

AbtHeadlessRuntimeStartUp class will be available at Passive image. You must package your headless from the passive image.

Regards,
Santiago

On Thu, Jul 2, 2015 at 12:14 PM, Joachim Tuchel <<a href="javascript:" target="_blank" gdf-obfuscated-mailto="fyDwwepsOswJ" rel="nofollow" onmousedown="this.href='javascript:';return true;" onclick="this.href='javascript:';return true;">jtu...@...> wrote:
Carl,

If you wanz to build a headless Image, you have to look at Cross Packaging or XD Packaging. The process isn't hard, but it starts with loading the Server feature and you need to learn about active and passive images. I am not at my PC right now, so I cannot tell you which book in the docs to consult, but I hope I could give you a starting point. Are you coming to Brescia? If so, I would be happy to show you how we do it for Kobtolino.

Joachim

--
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 <a href="javascript:" target="_blank" gdf-obfuscated-mailto="fyDwwepsOswJ" rel="nofollow" onmousedown="this.href='javascript:';return true;" onclick="this.href='javascript:';return true;">va-smalltalk...@googlegroups.com.
To post to this group, send email to <a href="javascript:" target="_blank" gdf-obfuscated-mailto="fyDwwepsOswJ" rel="nofollow" onmousedown="this.href='javascript:';return true;" onclick="this.href='javascript:';return true;">va-sma...@....
Visit this group at <a href="http://groups.google.com/group/va-smalltalk" rel="nofollow" target="_blank" onmousedown="this.href='http://groups.google.com/group/va-smalltalk';return true;" onclick="this.href='http://groups.google.com/group/va-smalltalk';return true;">http://groups.google.com/group/va-smalltalk.
For more options, visit <a href="https://groups.google.com/d/optout" rel="nofollow" target="_blank" onmousedown="this.href='https://groups.google.com/d/optout';return true;" onclick="this.href='https://groups.google.com/d/optout';return true;">https://groups.google.com/d/optout.

--
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 post to this group, send email to [hidden email].
Visit this group at http://groups.google.com/group/va-smalltalk.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Telling Smalltalk to not do windowsey kinds of things - headless application tips?

Louis LaBrunda
Hi Carl,

If you are running on Windows, you should look into running your headless programs as Windows NT services.  It has the advantage of starting the program when windows boots, having windows restart it if it crashes and running the program without having any particular user logged on and more.

Lou


On Thursday, July 2, 2015 at 4:17:06 PM UTC-4, Carl Gundel wrote:
Wow, thanks for your help guys.

I have to say, this aspect of VA Smalltalk is impressive and interesting.  It is also more complicated than any Smalltalk packaging scheme I've ever seen.  Too many options make it a bit bewildering but this may be solved by rethinking documentation.

Please work on making all this easier.  A series of videos showing how to use the packaging schemes and tools might help a lot.

Thanks again.

-Carl

On Thursday, July 2, 2015 at 12:36:12 PM UTC-4, Santiago Cardoso Geller wrote:
Hi Carl.
You can start reading this section from the online documentation:

<a href="http://www.instantiations.com/docs/861/wwhelp/wwhimpl/js/html/wwhelp.htm#href=sv/server16.html" rel="nofollow" target="_blank" onmousedown="this.href='http://www.google.com/url?q\75http%3A%2F%2Fwww.instantiations.com%2Fdocs%2F861%2Fwwhelp%2Fwwhimpl%2Fjs%2Fhtml%2Fwwhelp.htm%23href%3Dsv%2Fserver16.html\46sa\75D\46sntz\0751\46usg\75AFQjCNFhiApGBq8qkH6PFwgxrVdGQa-wyw';return true;" onclick="this.href='http://www.google.com/url?q\75http%3A%2F%2Fwww.instantiations.com%2Fdocs%2F861%2Fwwhelp%2Fwwhimpl%2Fjs%2Fhtml%2Fwwhelp.htm%23href%3Dsv%2Fserver16.html\46sa\75D\46sntz\0751\46usg\75AFQjCNFhiApGBq8qkH6PFwgxrVdGQa-wyw';return true;">http://www.instantiations.com/docs/861/wwhelp/wwhimpl/js/html/wwhelp.htm#href=sv/server16.html

As Joachim mentioned, you first must load the "ST: Server Workbench, Base" feature.

After that you will see a new option at Transcript Menu: XD
<a href="https://www.dropbox.com/s/0eqllzi2zi0eife/1.png?dl=0" rel="nofollow" target="_blank" onmousedown="this.href='https://www.google.com/url?q\75https%3A%2F%2Fwww.dropbox.com%2Fs%2F0eqllzi2zi0eife%2F1.png%3Fdl%3D0\46sa\75D\46sntz\0751\46usg\75AFQjCNHjZafX-2wOh_MAQGLsLLG9OzSGOA';return true;" onclick="this.href='https://www.google.com/url?q\75https%3A%2F%2Fwww.dropbox.com%2Fs%2F0eqllzi2zi0eife%2F1.png%3Fdl%3D0\46sa\75D\46sntz\0751\46usg\75AFQjCNHjZafX-2wOh_MAQGLsLLG9OzSGOA';return true;">https://www.dropbox.com/s/0eqllzi2zi0eife/1.png?dl=0

From that menu you will be able to create passive images.
<a href="https://www.dropbox.com/s/9j90hq28oissnik/2.png?dl=0" rel="nofollow" target="_blank" onmousedown="this.href='https://www.google.com/url?q\75https%3A%2F%2Fwww.dropbox.com%2Fs%2F9j90hq28oissnik%2F2.png%3Fdl%3D0\46sa\75D\46sntz\0751\46usg\75AFQjCNFqSFgXNlK7xCTnep82-0B-lJJfNA';return true;" onclick="this.href='https://www.google.com/url?q\75https%3A%2F%2Fwww.dropbox.com%2Fs%2F9j90hq28oissnik%2F2.png%3Fdl%3D0\46sa\75D\46sntz\0751\46usg\75AFQjCNFqSFgXNlK7xCTnep82-0B-lJJfNA';return true;">https://www.dropbox.com/s/9j90hq28oissnik/2.png?dl=0

You must select the image type (Windows / UNIX) and the features that you want to be loaded on the new image:
<a href="https://www.dropbox.com/s/jo7c84q9rla66t3/3.png?dl=0" rel="nofollow" target="_blank" onmousedown="this.href='https://www.google.com/url?q\75https%3A%2F%2Fwww.dropbox.com%2Fs%2Fjo7c84q9rla66t3%2F3.png%3Fdl%3D0\46sa\75D\46sntz\0751\46usg\75AFQjCNGamBp6Rq76BjqqmhRHkoP7Wfgecw';return true;" onclick="this.href='https://www.google.com/url?q\75https%3A%2F%2Fwww.dropbox.com%2Fs%2Fjo7c84q9rla66t3%2F3.png%3Fdl%3D0\46sa\75D\46sntz\0751\46usg\75AFQjCNGamBp6Rq76BjqqmhRHkoP7Wfgecw';return true;">https://www.dropbox.com/s/jo7c84q9rla66t3/3.png?dl=0

<a href="https://www.dropbox.com/s/j07hj865ylc4r5c/4.png?dl=0" rel="nofollow" target="_blank" onmousedown="this.href='https://www.google.com/url?q\75https%3A%2F%2Fwww.dropbox.com%2Fs%2Fj07hj865ylc4r5c%2F4.png%3Fdl%3D0\46sa\75D\46sntz\0751\46usg\75AFQjCNFLlp3hrwHrdEPJAVRYoxJ2Wj6a5w';return true;" onclick="this.href='https://www.google.com/url?q\75https%3A%2F%2Fwww.dropbox.com%2Fs%2Fj07hj865ylc4r5c%2F4.png%3Fdl%3D0\46sa\75D\46sntz\0751\46usg\75AFQjCNFLlp3hrwHrdEPJAVRYoxJ2Wj6a5w';return true;">https://www.dropbox.com/s/j07hj865ylc4r5c/4.png?dl=0

Then you can switch from Development and Passive image.
<a href="https://www.dropbox.com/s/wmkqnqr37k3hyct/5.png?dl=0" rel="nofollow" target="_blank" onmousedown="this.href='https://www.google.com/url?q\75https%3A%2F%2Fwww.dropbox.com%2Fs%2Fwmkqnqr37k3hyct%2F5.png%3Fdl%3D0\46sa\75D\46sntz\0751\46usg\75AFQjCNEa6TWtOYMli15sHVDe4Dh4v8BFhQ';return true;" onclick="this.href='https://www.google.com/url?q\75https%3A%2F%2Fwww.dropbox.com%2Fs%2Fwmkqnqr37k3hyct%2F5.png%3Fdl%3D0\46sa\75D\46sntz\0751\46usg\75AFQjCNEa6TWtOYMli15sHVDe4Dh4v8BFhQ';return true;">https://www.dropbox.com/s/wmkqnqr37k3hyct/5.png?dl=0

Packaging instructions should be loaded at Development Image.

AbtHeadlessRuntimeStartUp class will be available at Passive image. You must package your headless from the passive image.

Regards,
Santiago

On Thu, Jul 2, 2015 at 12:14 PM, Joachim Tuchel <[hidden email]> wrote:
Carl,

If you wanz to build a headless Image, you have to look at Cross Packaging or XD Packaging. The process isn't hard, but it starts with loading the Server feature and you need to learn about active and passive images. I am not at my PC right now, so I cannot tell you which book in the docs to consult, but I hope I could give you a starting point. Are you coming to Brescia? If so, I would be happy to show you how we do it for Kobtolino.

Joachim

--
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 va-smalltalk...@googlegroups.com.
To post to this group, send email to [hidden email].
Visit this group at <a href="http://groups.google.com/group/va-smalltalk" rel="nofollow" target="_blank" onmousedown="this.href='http://groups.google.com/group/va-smalltalk';return true;" onclick="this.href='http://groups.google.com/group/va-smalltalk';return true;">http://groups.google.com/group/va-smalltalk.
For more options, visit <a href="https://groups.google.com/d/optout" rel="nofollow" target="_blank" onmousedown="this.href='https://groups.google.com/d/optout';return true;" onclick="this.href='https://groups.google.com/d/optout';return true;">https://groups.google.com/d/optout.

--
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 post to this group, send email to [hidden email].
Visit this group at http://groups.google.com/group/va-smalltalk.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: [Bulk] Re: Telling Smalltalk to not do windowsey kinds of things - headless application tips?

Instantiations mailing list
Hi Carl,

in addition to that I would consider logging into the Windows event registry. There is code included in the VAST repository for that. It allows for easier analysis compared to logfiles.

Sebastian

Am 03.07.2015 um 05:08 schrieb Louis LaBrunda:
Hi Carl,

If you are running on Windows, you should look into running your headless programs as Windows NT services.  It has the advantage of starting the program when windows boots, having windows restart it if it crashes and running the program without having any particular user logged on and more.

Lou


On Thursday, July 2, 2015 at 4:17:06 PM UTC-4, Carl Gundel wrote:
Wow, thanks for your help guys.

I have to say, this aspect of VA Smalltalk is impressive and interesting.  It is also more complicated than any Smalltalk packaging scheme I've ever seen.  Too many options make it a bit bewildering but this may be solved by rethinking documentation.

Please work on making all this easier.  A series of videos showing how to use the packaging schemes and tools might help a lot.

Thanks again.

-Carl

On Thursday, July 2, 2015 at 12:36:12 PM UTC-4, Santiago Cardoso Geller wrote:
Hi Carl.
You can start reading this section from the online documentation:

<a moz-do-not-send="true" href="http://www.instantiations.com/docs/861/wwhelp/wwhimpl/js/html/wwhelp.htm#href=sv/server16.html" rel="nofollow" target="_blank" onmousedown="this.href='http://www.google.com/url?q\75http%3A%2F%2Fwww.instantiations.com%2Fdocs%2F861%2Fwwhelp%2Fwwhimpl%2Fjs%2Fhtml%2Fwwhelp.htm%23href%3Dsv%2Fserver16.html\46sa\75D\46sntz\0751\46usg\75AFQjCNFhiApGBq8qkH6PFwgxrVdGQa-wyw';return true;" onclick="this.href='http://www.google.com/url?q\75http%3A%2F%2Fwww.instantiations.com%2Fdocs%2F861%2Fwwhelp%2Fwwhimpl%2Fjs%2Fhtml%2Fwwhelp.htm%23href%3Dsv%2Fserver16.html\46sa\75D\46sntz\0751\46usg\75AFQjCNFhiApGBq8qkH6PFwgxrVdGQa-wyw';return true;">http://www.instantiations.com/docs/861/wwhelp/wwhimpl/js/html/wwhelp.htm#href=sv/server16.html

As Joachim mentioned, you first must load the "ST: Server Workbench, Base" feature.

After that you will see a new option at Transcript Menu: XD
<a moz-do-not-send="true" href="https://www.dropbox.com/s/0eqllzi2zi0eife/1.png?dl=0" rel="nofollow" target="_blank" onmousedown="this.href='https://www.google.com/url?q\75https%3A%2F%2Fwww.dropbox.com%2Fs%2F0eqllzi2zi0eife%2F1.png%3Fdl%3D0\46sa\75D\46sntz\0751\46usg\75AFQjCNHjZafX-2wOh_MAQGLsLLG9OzSGOA';return true;" onclick="this.href='https://www.google.com/url?q\75https%3A%2F%2Fwww.dropbox.com%2Fs%2F0eqllzi2zi0eife%2F1.png%3Fdl%3D0\46sa\75D\46sntz\0751\46usg\75AFQjCNHjZafX-2wOh_MAQGLsLLG9OzSGOA';return true;">https://www.dropbox.com/s/0eqllzi2zi0eife/1.png?dl=0

From that menu you will be able to create passive images.
<a moz-do-not-send="true" href="https://www.dropbox.com/s/9j90hq28oissnik/2.png?dl=0" rel="nofollow" target="_blank" onmousedown="this.href='https://www.google.com/url?q\75https%3A%2F%2Fwww.dropbox.com%2Fs%2F9j90hq28oissnik%2F2.png%3Fdl%3D0\46sa\75D\46sntz\0751\46usg\75AFQjCNFqSFgXNlK7xCTnep82-0B-lJJfNA';return true;" onclick="this.href='https://www.google.com/url?q\75https%3A%2F%2Fwww.dropbox.com%2Fs%2F9j90hq28oissnik%2F2.png%3Fdl%3D0\46sa\75D\46sntz\0751\46usg\75AFQjCNFqSFgXNlK7xCTnep82-0B-lJJfNA';return true;">https://www.dropbox.com/s/9j90hq28oissnik/2.png?dl=0

You must select the image type (Windows / UNIX) and the features that you want to be loaded on the new image:
<a moz-do-not-send="true" href="https://www.dropbox.com/s/jo7c84q9rla66t3/3.png?dl=0" rel="nofollow" target="_blank" onmousedown="this.href='https://www.google.com/url?q\75https%3A%2F%2Fwww.dropbox.com%2Fs%2Fjo7c84q9rla66t3%2F3.png%3Fdl%3D0\46sa\75D\46sntz\0751\46usg\75AFQjCNGamBp6Rq76BjqqmhRHkoP7Wfgecw';return true;" onclick="this.href='https://www.google.com/url?q\75https%3A%2F%2Fwww.dropbox.com%2Fs%2Fjo7c84q9rla66t3%2F3.png%3Fdl%3D0\46sa\75D\46sntz\0751\46usg\75AFQjCNGamBp6Rq76BjqqmhRHkoP7Wfgecw';return true;">https://www.dropbox.com/s/jo7c84q9rla66t3/3.png?dl=0

<a moz-do-not-send="true" href="https://www.dropbox.com/s/j07hj865ylc4r5c/4.png?dl=0" rel="nofollow" target="_blank" onmousedown="this.href='https://www.google.com/url?q\75https%3A%2F%2Fwww.dropbox.com%2Fs%2Fj07hj865ylc4r5c%2F4.png%3Fdl%3D0\46sa\75D\46sntz\0751\46usg\75AFQjCNFLlp3hrwHrdEPJAVRYoxJ2Wj6a5w';return true;" onclick="this.href='https://www.google.com/url?q\75https%3A%2F%2Fwww.dropbox.com%2Fs%2Fj07hj865ylc4r5c%2F4.png%3Fdl%3D0\46sa\75D\46sntz\0751\46usg\75AFQjCNFLlp3hrwHrdEPJAVRYoxJ2Wj6a5w';return true;">https://www.dropbox.com/s/j07hj865ylc4r5c/4.png?dl=0

Then you can switch from Development and Passive image.
<a moz-do-not-send="true" href="https://www.dropbox.com/s/wmkqnqr37k3hyct/5.png?dl=0" rel="nofollow" target="_blank" onmousedown="this.href='https://www.google.com/url?q\75https%3A%2F%2Fwww.dropbox.com%2Fs%2Fwmkqnqr37k3hyct%2F5.png%3Fdl%3D0\46sa\75D\46sntz\0751\46usg\75AFQjCNEa6TWtOYMli15sHVDe4Dh4v8BFhQ';return true;" onclick="this.href='https://www.google.com/url?q\75https%3A%2F%2Fwww.dropbox.com%2Fs%2Fwmkqnqr37k3hyct%2F5.png%3Fdl%3D0\46sa\75D\46sntz\0751\46usg\75AFQjCNEa6TWtOYMli15sHVDe4Dh4v8BFhQ';return true;">https://www.dropbox.com/s/wmkqnqr37k3hyct/5.png?dl=0

Packaging instructions should be loaded at Development Image.

AbtHeadlessRuntimeStartUp class will be available at Passive image. You must package your headless from the passive image.

Regards,
Santiago

On Thu, Jul 2, 2015 at 12:14 PM, Joachim Tuchel <[hidden email]> wrote:
Carl,

If you wanz to build a headless Image, you have to look at Cross Packaging or XD Packaging. The process isn't hard, but it starts with loading the Server feature and you need to learn about active and passive images. I am not at my PC right now, so I cannot tell you which book in the docs to consult, but I hope I could give you a starting point. Are you coming to Brescia? If so, I would be happy to show you how we do it for Kobtolino.

Joachim

--
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 va-smalltalk...@googlegroups.com.
To post to this group, send email to [hidden email].
Visit this group at <a moz-do-not-send="true" href="http://groups.google.com/group/va-smalltalk" rel="nofollow" target="_blank" onmousedown="this.href='http://groups.google.com/group/va-smalltalk';return true;" onclick="this.href='http://groups.google.com/group/va-smalltalk';return true;">http://groups.google.com/group/va-smalltalk.
For more options, visit <a moz-do-not-send="true" href="https://groups.google.com/d/optout" rel="nofollow" target="_blank" onmousedown="this.href='https://groups.google.com/d/optout';return true;" onclick="this.href='https://groups.google.com/d/optout';return true;">https://groups.google.com/d/optout.

--
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 post to this group, send email to [hidden email].
Visit this group at http://groups.google.com/group/va-smalltalk.
For more options, visit https://groups.google.com/d/optout.

--
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 post to this group, send email to [hidden email].
Visit this group at http://groups.google.com/group/va-smalltalk.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Telling Smalltalk to not do windowsey kinds of things - headless application tips?

Richard Sargent
Administrator
In reply to this post by Carl Gundel-2
On Thursday, July 2, 2015 at 6:34:00 AM UTC-7, Carl Gundel wrote:
When I start my runtime application I launch it without opening any windows, but it isn't getting that far.  Instead it is throwing errors while trying to open windows and such.  Why is that?  How can I tell my packaged application not to do any GUI stuff which apparently isn't working because not all that stuff is packaged anyways.

You can also subclass EsImageStartUp or EsNlsImageStartUp with your own handling of their various responsibilities, The Serer Smalltalk approach might be simpler.

I previously told you to check the logs produced by the packager. Start with app.es (I think that's the correct name). Until you are packaging only the applications you want, your application will perform in unexpected ways. You will never find the last error. The tools are trying to help you, but you are ignoring their help.



My application doesn't have a GUI.

What is the simplest way to do a headless image?  I find the documentation hard to follow.

Thanks,

-Carl

Two examples follow:

Walkback at 9:03:15 AM on 7/2/2015
AbtShellView does not understand createMigrationItemNamed:inMenu:
[] in EpRuntimeStartUp class(EsWindowSystemStartUp class)>>#outputWalkback:process:
  receiver = EpRuntimeStartUp
  arg1 = 'AbtShellView does not understand createMigrationItemNamed:inMenu:'
  arg2 = UIProcess:(7/2/2015 9:03:14 AM){running,3}
  temp1 = 'C:\VA Smalltalk\8.6\walkback.log'
  temp2 = -1
  temp3 = a CfsWriteFileStream
EsCompactBlockContextTemplate(Block)>>#valueWithErrorHandler:oldHandler:onReturnDo:
  receiver = [] in EsWindowSystemStartUp class>>#outputWalkback:process:
  arg1 = [] in Block>>#when:do:exitWith:retryReturn:
  arg2 = nil
  arg3 = []
EsCompactBlockContextTemplate(Block)>>#when:do:exitWith:retryReturn:
  receiver = [] in EsWindowSystemStartUp class>>#outputWalkback:process:
  arg1 = an ExceptionalEventCollection
  arg2 = [] in EsWindowSystemStartUp class>>#outputWalkback:process:
  arg3 = [] in Block>>#when:do:
  arg4 = an Object
  temp1 = [] in Block>>#when:do:exitWith:retryReturn:
  temp2 = [] in Block>>#when:do:exitWith:retryReturn:
  temp3 = nil
EsCompactBlockContextTemplate(Block)>>#when:do:
  receiver = [] in EsWindowSystemStartUp class>>#outputWalkback:process:
  arg1 = an ExceptionalEventCollection
  arg2 = [] in EsWindowSystemStartUp class>>#outputWalkback:process:
  temp1 = an Object
  temp2 = nil
EpRuntimeStartUp class(EsWindowSystemStartUp class)>>#outputWalkback:process:
  receiver = EpRuntimeStartUp
  arg1 = 'AbtShellView does not understand createMigrationItemNamed:inMenu:'
  arg2 = UIProcess:(7/2/2015 9:03:14 AM){running,3}
  temp1 = 'C:\VA Smalltalk\8.6\walkback.log'
  temp2 = -1
  temp3 = a CfsWriteFileStream
EpRuntimeStartUp class(EsImageStartUp class)>>#outputWalkback:
  receiver = EpRuntimeStartUp
  arg1 = 'AbtShellView does not understand createMigrationItemNamed:inMenu:'
EpRuntimeStartUp class>>#reportError:resumable:startBP:
  receiver = EpRuntimeStartUp
  arg1 = 'AbtShellView does not understand createMigrationItemNamed:inMenu:'
  arg2 = false
  arg3 = 452
UIProcess(Process)>>#reportError:resumable:
  receiver = UIProcess:(7/2/2015 9:03:14 AM){running,3}
  arg1 = 'AbtShellView does not understand createMigrationItemNamed:inMenu:'
  arg2 = false
  temp1 = 452
[optimized] in ExceptionalEvent class>>#initializeSystemExceptions
  blockarg1 = Signal on Exception: (ExError) An error has occurred.
Signal>>#evaluate:
  receiver = Signal on Exception: (ExError) An error has occurred.
  arg1 = [] in ExceptionalEvent class>>#initializeSystemExceptions
Signal>>#evaluateDefaultHandler:
  receiver = Signal on Exception: (ExError) An error has occurred.
  arg1 = [] in ExceptionalEvent class>>#initializeSystemExceptions
ExceptionalEvent>>#applyDefaultHandler:
  receiver = Exception: (ExError) An error has occurred.
  arg1 = Signal on Exception: (ExError) An error has occurred.
  temp1 = Exception: (ExError) An error has occurred.
ExceptionalEvent>>#signalFor:
  receiver = Exception: (ExError) An error has occurred.
  arg1 = Signal on Exception: (ExError) An error has occurred.
  temp1 = nil
ExceptionalEvent>>#signalWithArguments:
  receiver = Exception: (ExError) An error has occurred.
  arg1 = ('AbtShellView does not understand createMigrationItemNamed:inMenu:')
ExceptionalEvent>>#signalWith:
  receiver = Exception: (ExError) An error has occurred.
  arg1 = 'AbtShellView does not understand createMigrationItemNamed:inMenu:'
AbtShellView(Object)>>#error:
  receiver = an AbtShellView('Window')
  arg1 = 'AbtShellView does not understand createMigrationItemNamed:inMenu:'
MessageNotUnderstood>>#defaultAction
  receiver = Signal on Exception: (ExMessageNotUnderstood) An exception has occurred
[optimized] in Exception class>>#newExceptionalEvent
  blockarg1 = Signal on Exception: (ExMessageNotUnderstood) An exception has occurred
MessageNotUnderstood(Exception)>>#evaluateDefaultHandler:
  receiver = Signal on Exception: (ExMessageNotUnderstood) An exception has occurred
  arg1 = [] in Exception class>>#newExceptionalEvent
ExceptionalEvent>>#applyDefaultHandler:
  receiver = Exception: (ExMessageNotUnderstood) An exception has occurred
  arg1 = Signal on Exception: (ExMessageNotUnderstood) An exception has occurred
  temp1 = Exception: (ExMessageNotUnderstood) An exception has occurred
ExceptionalEvent>>#signalFor:
  receiver = Exception: (ExMessageNotUnderstood) An exception has occurred
  arg1 = Signal on Exception: (ExMessageNotUnderstood) An exception has occurred
  temp1 = nil
MessageNotUnderstood(Exception)>>#signal
  receiver = Signal on Exception: (ExMessageNotUnderstood) An exception has occurred
MessageNotUnderstood(Exception)>>#signal:
  receiver = Signal on Exception: (ExMessageNotUnderstood) An exception has occurred
  arg1 = 'an AbtShellView(''Window'') does not understand Message (#createMigrationItemNamed:inMenu:, (''Base Migration'' an AbtCwMenuView(''ApplicationsMigratePulldown'')))'
MessageNotUnderstood class>>#signalWith:
  receiver = MessageNotUnderstood
  arg1 = (an AbtShellView('Window') Message (#createMigrationItemNamed:inMenu:, ('Base Migration' an AbtCwMenuView('ApplicationsMigratePulldown'))))
AbtShellView(Object)>>#doesNotUnderstand:
  receiver = an AbtShellView('Window')
  arg1 = Message (#createMigrationItemNamed:inMenu:, ('Base Migration' an AbtCwMenuView('ApplicationsMigratePulldown')))
Message>>#sendTo:
  receiver = Message (#createMigrationItemNamed:inMenu:, ('Base Migration' an AbtCwMenuView('ApplicationsMigratePulldown')))
  arg1 = an AbtShellView('Window')
AbtApplicationsOrganizerView(AbtAppBldrPart)>>#doesNotUnderstand:
  receiver = an AbtApplicationsOrganizerView
  arg1 = Message (#createMigrationItemNamed:inMenu:, ('Base Migration' an AbtCwMenuView('ApplicationsMigratePulldown')))
[] in AbtApplicationsOrganizerView>>#createApplicationsMigrateMenu:
  receiver = an AbtApplicationsOrganizerView
  arg1 = ##pulldown
  temp1 = an AbtCwMenuView('ApplicationsMigratePulldown')
  temp2 = AbtOrderedDictionary((#createMigrationItemNamed:inMenu: #enableMigrationItemNamed:inMenu:) )
  temp3 = (#createMigrationItemNamed:inMenu: #enableMigrationItemNamed:inMenu:)
  blockarg1 = 'Base Migration' -> (#createMigrationItemNamed:inMenu: #enableMigrationItemNamed:inMenu:)
[] in AbtOrderedDictionary(EsOrderedDictionary)>>#associationsDo:
  receiver = AbtOrderedDictionary((#createMigrationItemNamed:inMenu: #enableMigrationItemNamed:inMenu:) )
  arg1 = [] in AbtApplicationsOrganizerView>>#createApplicationsMigrateMenu:
  blockarg1 = 'Base Migration'
  blockarg2 = 1
OrderedCollection>>#doWithIndex:
  receiver = OrderedCollection('Base Migration' )
  arg1 = [] in EsOrderedDictionary>>#associationsDo:
AbtOrderedDictionary(EsOrderedDictionary)>>#associationsDo:
  receiver = AbtOrderedDictionary((#createMigrationItemNamed:inMenu: #enableMigrationItemNamed:inMenu:) )
  arg1 = [] in AbtApplicationsOrganizerView>>#createApplicationsMigrateMenu:
AbtApplicationsOrganizerView>>#createApplicationsMigrateMenu:
  receiver = an AbtApplicationsOrganizerView
  arg1 = ##pulldown
  temp1 = an AbtCwMenuView('ApplicationsMigratePulldown')
  temp2 = AbtOrderedDictionary((#createMigrationItemNamed:inMenu: #enableMigrationItemNamed:inMenu:) )
  temp3 = (#createMigrationItemNamed:inMenu: #enableMigrationItemNamed:inMenu:)
AbtApplicationsOrganizerView>>#createApplicationsMenu:
  receiver = an AbtApplicationsOrganizerView
  arg1 = ##pulldown
  temp1 = an AbtCwMenuView('ApplicationsPulldown')
  temp2 = an AbtApplicationsOrganizer
AbtApplicationsOrganizerView>>#createMenuBar:
  receiver = an AbtApplicationsOrganizerView
  arg1 = ##pulldown
  temp1 = an AbtCwMenuView('MenuBar')
AbtApplicationsOrganizerView>>#createMenus
  receiver = an AbtApplicationsOrganizerView
  temp1 = nil
  temp2 = nil
  temp3 = nil
  temp4 = nil
  temp5 = nil
AbtApplicationsOrganizerView>>#initializeWindow
  receiver = an AbtApplicationsOrganizerView
  temp1 = an AbtContainerIconTreeView('ApplicationsContainer')
  temp2 = nil
DirectedMessage>>#abrSend
  receiver = DirectedMessage (an AbtApplicationsOrganizerView, #initializeWindow, ())
[optimized] in AbtDependentsCollection>>#signalEvent
  blockarg1 = DirectedMessage (an AbtApplicationsOrganizerView, #initializeWindow, ())
OrderedCollection>>#do:
  receiver = OrderedCollection(DirectedMessage (an AbtApplicationsOrganizerView, #initializeWindow, ()) )
  arg1 = [] in AbtDependentsCollection>>#signalEvent
AbtDependentsCollection>>#signalEvent
  receiver = an AbtDependentsCollection
AbtShellView(AbtPart)>>#callHandlers:
  receiver = an AbtShellView('Window')
  arg1 = an AbtDependentsCollection
AbtShellView(AbtBasicView)>>#signalAboutToOpenWidget
  receiver = an AbtShellView('Window')
AbtShellView>>#setPostCreationSettings
  receiver = an AbtShellView('Window')
AbtShellView>>#openWidget
  receiver = an AbtShellView('Window')
  temp1 = true
AbtApplicationsOrganizerView(AbtAppBldrView)>>#openWidget
  receiver = an AbtApplicationsOrganizerView
AbtApplicationsOrganizerView>>#openWidget
  receiver = an AbtApplicationsOrganizerView
[] in AbtApplicationsOrganizerView class>>#restart
  receiver = AbtApplicationsOrganizerView
  temp1 = nil
  temp2 = an AbtApplicationsOrganizerView
  blocktemp1 = nil
EmSystemConfiguration>>#showBusyCursorWhile:
  receiver = an EmSystemConfiguration
  arg1 = [] in AbtApplicationsOrganizerView class>>#restart
  temp1 = nil
  temp2 = nil
AbtApplicationsOrganizerView class>>#restart
  receiver = AbtApplicationsOrganizerView
  temp1 = nil
  temp2 = an AbtApplicationsOrganizerView
[optimized] in AbtOrganizerApp class>>#startUp
CwAppContext>>#processBackgroundGraphicRequests
  receiver = a CwAppContext
  temp1 = [] in AbtOrganizerApp class>>#startUp
  temp2 = 1
  temp3 = true
CwAppContext>>#readAndDispatch
  receiver = a CwAppContext
EpRuntimeStartUp class(EsWindowSystemStartUp class)>>#messageLoop
  receiver = EpRuntimeStartUp
  temp1 = nil
  temp2 = a CwAppContext
[optimized] in UIProcess class>>#forkUserInterface
[] in UIProcess(Process)>>#executeBlock:withArguments:
  receiver = UIProcess:(7/2/2015 9:03:14 AM){running,3}
  arg1 = [] in UIProcess class>>#forkUserInterface
  arg2 = ()
UIProcess(Process)>>#executeBlock:withArguments:
  receiver = UIProcess:(7/2/2015 9:03:14 AM){running,3}
  arg1 = [] in UIProcess class>>#forkUserInterface
  arg2 = ()
UIProcess(Process)>>#newProcessOn:stackSize:withArguments:named:
  receiver = UIProcess:(7/2/2015 9:03:14 AM){running,3}
  arg1 = [] in UIProcess class>>#forkUserInterface
  arg2 = 1024
  arg3 = ()
  arg4 = '(7/2/2015 9:03:14 AM)'


Walkback at 9:03:21 AM on 7/2/2015
UndefinedObject does not understand abtAsPartType
[] in EpRuntimeStartUp class(EsWindowSystemStartUp class)>>#outputWalkback:process:
  receiver = EpRuntimeStartUp
  arg1 = 'UndefinedObject does not understand abtAsPartType'
  arg2 = Process:15232{running,2}
  temp1 = 'C:\VA Smalltalk\8.6\walkback.log'
  temp2 = -1
  temp3 = a CfsWriteFileStream
EsCompactBlockContextTemplate(Block)>>#valueWithErrorHandler:oldHandler:onReturnDo:
  receiver = [] in EsWindowSystemStartUp class>>#outputWalkback:process:
  arg1 = [] in Block>>#when:do:exitWith:retryReturn:
  arg2 = nil
  arg3 = []
EsCompactBlockContextTemplate(Block)>>#when:do:exitWith:retryReturn:
  receiver = [] in EsWindowSystemStartUp class>>#outputWalkback:process:
  arg1 = an ExceptionalEventCollection
  arg2 = [] in EsWindowSystemStartUp class>>#outputWalkback:process:
  arg3 = [] in Block>>#when:do:
  arg4 = an Object
  temp1 = [] in Block>>#when:do:exitWith:retryReturn:
  temp2 = [] in Block>>#when:do:exitWith:retryReturn:
  temp3 = nil
EsCompactBlockContextTemplate(Block)>>#when:do:
  receiver = [] in EsWindowSystemStartUp class>>#outputWalkback:process:
  arg1 = an ExceptionalEventCollection
  arg2 = [] in EsWindowSystemStartUp class>>#outputWalkback:process:
  temp1 = an Object
  temp2 = nil
EpRuntimeStartUp class(EsWindowSystemStartUp class)>>#outputWalkback:process:
  receiver = EpRuntimeStartUp
  arg1 = 'UndefinedObject does not understand abtAsPartType'
  arg2 = Process:15232{running,2}
  temp1 = 'C:\VA Smalltalk\8.6\walkback.log'
  temp2 = -1
  temp3 = a CfsWriteFileStream
EpRuntimeStartUp class(EsImageStartUp class)>>#outputWalkback:
  receiver = EpRuntimeStartUp
  arg1 = 'UndefinedObject does not understand abtAsPartType'
EpRuntimeStartUp class>>#reportError:resumable:startBP:
  receiver = EpRuntimeStartUp
  arg1 = 'UndefinedObject does not understand abtAsPartType'
  arg2 = false
  arg3 = 238
Process>>#reportError:resumable:
  receiver = Process:15232{running,2}
  arg1 = 'UndefinedObject does not understand abtAsPartType'
  arg2 = false
  temp1 = 238
[optimized] in ExceptionalEvent class>>#initializeSystemExceptions
  blockarg1 = Signal on Exception: (ExError) An error has occurred.
Signal>>#evaluate:
  receiver = Signal on Exception: (ExError) An error has occurred.
  arg1 = [] in ExceptionalEvent class>>#initializeSystemExceptions
Signal>>#evaluateDefaultHandler:
  receiver = Signal on Exception: (ExError) An error has occurred.
  arg1 = [] in ExceptionalEvent class>>#initializeSystemExceptions
ExceptionalEvent>>#applyDefaultHandler:
  receiver = Exception: (ExError) An error has occurred.
  arg1 = Signal on Exception: (ExError) An error has occurred.
  temp1 = Exception: (ExError) An error has occurred.
ExceptionalEvent>>#signalFor:
  receiver = Exception: (ExError) An error has occurred.
  arg1 = Signal on Exception: (ExError) An error has occurred.
  temp1 = nil
ExceptionalEvent>>#signalWithArguments:
  receiver = Exception: (ExError) An error has occurred.
  arg1 = ('UndefinedObject does not understand abtAsPartType')
ExceptionalEvent>>#signalWith:
  receiver = Exception: (ExError) An error has occurred.
  arg1 = 'UndefinedObject does not understand abtAsPartType'
UndefinedObject(Object)>>#error:
  receiver = nil
  arg1 = 'UndefinedObject does not understand abtAsPartType'
MessageNotUnderstood>>#defaultAction
  receiver = Signal on Exception: (ExMessageNotUnderstood) An exception has occurred
[optimized] in Exception class>>#newExceptionalEvent
  blockarg1 = Signal on Exception: (ExMessageNotUnderstood) An exception has occurred
MessageNotUnderstood(Exception)>>#evaluateDefaultHandler:
  receiver = Signal on Exception: (ExMessageNotUnderstood) An exception has occurred
  arg1 = [] in Exception class>>#newExceptionalEvent
ExceptionalEvent>>#applyDefaultHandler:
  receiver = Exception: (ExMessageNotUnderstood) An exception has occurred
  arg1 = Signal on Exception: (ExMessageNotUnderstood) An exception has occurred
  temp1 = Exception: (ExMessageNotUnderstood) An exception has occurred
ExceptionalEvent>>#signalFor:
  receiver = Exception: (ExMessageNotUnderstood) An exception has occurred
  arg1 = Signal on Exception: (ExMessageNotUnderstood) An exception has occurred
  temp1 = nil
MessageNotUnderstood(Exception)>>#signal
  receiver = Signal on Exception: (ExMessageNotUnderstood) An exception has occurred
MessageNotUnderstood(Exception)>>#signal:
  receiver = Signal on Exception: (ExMessageNotUnderstood) An exception has occurred
  arg1 = 'nil does not understand Message (#abtAsPartType, ())'
MessageNotUnderstood class>>#signalWith:
  receiver = MessageNotUnderstood
  arg1 = (nil Message (#abtAsPartType, ()))
UndefinedObject(Object)>>#doesNotUnderstand:
  receiver = nil
  arg1 = Message (#abtAsPartType, ())
[optimized] in AbtPartsCatalog class>>#preloadPaletteGraphics
  blockarg1 = nil
OrderedCollection>>#do:
  receiver = OrderedCollection(#AbtShellView #AbtFormView #AbtGroupBoxView #AbtScrolledWindowView #AbtPortablePMNotebookView #AbtPortableWINNotebookView #AbtPortableNotebookPageView #WkNotebookView #WkSplitBar nil )
  arg1 = [] in AbtPartsCatalog class>>#preloadPaletteGraphics
[] in AbtPartsCatalog class>>#preloadPaletteGraphics
  receiver = AbtPartsCatalog
  temp1 = OrderedCollection(an AbtPartsCategory an AbtPartsCategory an AbtPartsCategory an AbtPartsCategory an AbtPartsCategory an AbtPartsCategory an AbtPartsCategory an AbtPartsCategory an AbtPartsCategory an AbtPartsCategory an AbtPartsCategory )
  temp2 = an AbtIconDescriptor
  blockarg1 = an AbtPartsCategory
OrderedCollection>>#do:
  receiver = OrderedCollection(an AbtPartsCategory an AbtPartsCategory an AbtPartsCategory an AbtPartsCategory an AbtPartsCategory an AbtPartsCategory an AbtPartsCategory an AbtPartsCategory an AbtPartsCategory an AbtPartsCategory an AbtPartsCategory )
  arg1 = [] in AbtPartsCatalog class>>#preloadPaletteGraphics
AbtPartsCatalog class>>#preloadPaletteGraphics
  receiver = AbtPartsCatalog
  temp1 = OrderedCollection(an AbtPartsCategory an AbtPartsCategory an AbtPartsCategory an AbtPartsCategory an AbtPartsCategory an AbtPartsCategory an AbtPartsCategory an AbtPartsCategory an AbtPartsCategory an AbtPartsCategory an AbtPartsCategory )
  temp2 = an AbtIconDescriptor
[optimized] in AbtEditPartsCatalogSubApp class>>#startUp
[] in Process>>#executeBlock:withArguments:
  receiver = Process:15232{running,2}
  arg1 = [] in AbtEditPartsCatalogSubApp class>>#startUp
  arg2 = ()
Process>>#executeBlock:withArguments:
  receiver = Process:15232{running,2}
  arg1 = [] in AbtEditPartsCatalogSubApp class>>#startUp
  arg2 = ()
Process>>#newProcessOn:stackSize:withArguments:named:
  receiver = Process:15232{running,2}
  arg1 = [] in AbtEditPartsCatalogSubApp class>>#startUp
  arg2 = 1024
  arg3 = ()
  arg4 = '15232'

--
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 post to this group, send email to [hidden email].
Visit this group at http://groups.google.com/group/va-smalltalk.
For more options, visit https://groups.google.com/d/optout.