FFI load script no longer works .... (Re: [squeak-dev] ODBC package and mySQL driver for 4.4?)

Frank Shearar frank.shearar at gmail.com
Fri Dec 21 22:58:17 UTC 2012


On 21 December 2012 22:46, H. Hirzel <hannes.hirzel at gmail.com> wrote:
> Benoit,
>
> yes, indeed,
>
> (Installer repository: 'http://source.squeak.org/FFI')
>   install: 'FFI-Pools';
>   install: 'FFI-Kernel';
>   install: 'FFI-Tests';
>   install: 'FFI-Win32';
>   install: 'FFI-MacOS';
>   install: 'FFI-Unix'.
>
> No longer works with 4.4-12320.
>
> It used to work two or three months ago...

You need the "allow underscore selectors" preference set to load the
FFI. I can't remember the magic to do that, but it ought to be part of
the install script.

frank

> --Hannes
>
> --Hannes
>
> On 12/21/12, Benoit St-Jean <bstjean at yahoo.com> wrote:
>> Hi Hannes,
>>
>> Just tried what you told me...  Well, there's a MNU when loading in 4.4.
>> Here's the stack:
>>
>> -----------------------------------------------------------------------------------------
>>
>> To: squeak-dev at lists.squeakfoundation.org
>> Subject: [BUG]ClassBuilder(Object)>>error:
>>
>> here insert explanation of what you were doing, suspect changes you've made
>> and so forth.
>>
>> 21 December 2012 5:31:33.375 pm
>>
>> VM: Win32 - Smalltalk
>> Image: Squeak4.3 [latest update: #11864]
>>
>> SecurityManager state:
>> Restricted: false
>> FileAccess: true
>> SocketAccess: true
>> Working Dir C:\Data\Squeak\Squeak 4.3 All-In-One\Contents\Resources
>> Trusted Dir C:\Data\Squeak\Squeak 4.3 All-In-One\Contents\Resources\Benoit
>> St-Jean
>> Untrusted Dir C:\Documents and Settings\Benoit St-Jean\My Documents\My
>> Squeak
>>
>> ClassBuilder(Object)>>error:
>>     Receiver: a ClassBuilder
>>     Arguments and temporary variables:
>>         aString:     'WS is multiply defined'
>>     Receiver's instance variables:
>>         environ:     Smalltalk globals "a SystemDictionary with lots of
>> globals"
>>         classMap:     nil
>>         instVarMap:     an IdentityDictionary()
>>         progress:     nil
>>         maxClassIndex:     nil
>>         currentClassIndex:     nil
>>
>> ClassBuilder>>validateClassvars:from:forSuper:
>>     Receiver: a ClassBuilder
>>     Arguments and temporary variables:
>> <<error during printing>
>>     Receiver's instance variables:
>>         environ:     Smalltalk globals "a SystemDictionary with lots of
>> globals"
>>         classMap:     nil
>>         instVarMap:     an IdentityDictionary()
>>         progress:     nil
>>         maxClassIndex:     nil
>>         currentClassIndex:     nil
>>
>> [] in
>> ClassBuilder>>name:inEnvironment:subclassOf:type:instanceVariableNames:classVariableNames:poolDictionaries:category:unsafe:
>>     Receiver: a ClassBuilder
>>     Arguments and temporary variables:
>> <<error during printing>
>>     Receiver's instance variables:
>>         environ:     Smalltalk globals "a SystemDictionary with lots of
>> globals"
>>         classMap:     nil
>>         instVarMap:     an IdentityDictionary()
>>         progress:     nil
>>         maxClassIndex:     nil
>>         currentClassIndex:     nil
>>
>> BlockClosure>>ensure:
>>     Receiver: [closure] in
>> ClassBuilder>>name:inEnvironment:subclassOf:type:instanceVariableNames:classV...etc...
>>     Arguments and temporary variables:
>>         aBlock:     [closure] in
>> ClassBuilder>>name:inEnvironment:subclassOf:type:instanceV...etc...
>>         complete:     nil
>>         returnValue:     nil
>>     Receiver's instance variables:
>>         outerContext:
>> ClassBuilder>>name:inEnvironment:subclassOf:type:instanceVariable...etc...
>>         startpc:     332
>>         numArgs:     0
>>
>> ClassBuilder>>name:inEnvironment:subclassOf:type:instanceVariableNames:classVariableNames:poolDictionaries:category:unsafe:
>>     Receiver: a ClassBuilder
>>     Arguments and temporary variables:
>>         className:     #Win32Constants
>>         env:     Smalltalk globals "a SystemDictionary with lots of globals"
>>         newSuper:     SharedPool
>>         type:     #normal
>>         instVarString:     ''
>>         classVarString:     'COLOR_ACTIVEBORDER COLOR_ACTIVECAPTION
>> COLOR_APPWORKSPACE COLO...etc...
>>         poolString:     ''
>>         category:     #'FFI-Win32-Examples'
>>         unsafe:     false
>>         oldClass:     nil
>>         instVars:     #()
>>         classVars:     #(#COLOR #ACTIVEBORDER #COLOR #ACTIVECAPTION #COLOR
>> #APPWORKSPACE #C...etc...
>>         copyOfOldClass:     nil
>>         newClass:     #(nil)
>>     Receiver's instance variables:
>>         environ:     Smalltalk globals "a SystemDictionary with lots of
>> globals"
>>         classMap:     nil
>>         instVarMap:     an IdentityDictionary()
>>         progress:     nil
>>         maxClassIndex:     nil
>>         currentClassIndex:     nil
>>
>> ClassBuilder>>name:inEnvironment:subclassOf:type:instanceVariableNames:classVariableNames:poolDictionaries:category:
>>     Receiver: a ClassBuilder
>>     Arguments and temporary variables:
>>         className:     #Win32Constants
>>         env:     Smalltalk globals "a SystemDictionary with lots of globals"
>>         newSuper:     SharedPool
>>         type:     #normal
>>         instVarString:     ''
>>         classVarString:     'COLOR_ACTIVEBORDER COLOR_ACTIVECAPTION
>> COLOR_APPWORKSPACE COLO...etc...
>>         poolString:     ''
>>         category:     #'FFI-Win32-Examples'
>>     Receiver's instance variables:
>>         environ:     Smalltalk globals "a SystemDictionary with lots of
>> globals"
>>         classMap:     nil
>>         instVarMap:     an IdentityDictionary()
>>         progress:     nil
>>         maxClassIndex:     nil
>>         currentClassIndex:     nil
>>
>> [] in MCClassDefinition>>createClass
>>     Receiver: a MCClassDefinition(Win32Constants)
>>     Arguments and temporary variables:
>> <<error during printing>
>>     Receiver's instance variables:
>>         name:     #Win32Constants
>>         superclassName:     #SharedPool
>>         variables:     an OrderedCollection(a
>> MCClassVariableDefinition(COLOR_ACTIVEBORDER)...etc...
>>         category:     #'FFI-Win32-Examples'
>>         type:     #normal
>>         comment:     ''
>>         commentStamp:     ''
>>         traitComposition:     nil
>>         classTraitComposition:     nil
>>
>> BlockClosure>>on:do:
>>     Receiver: [closure] in MCClassDefinition>>createClass
>>     Arguments and temporary variables:
>>         exception:     an ExceptionSet
>>         handlerAction:     [closure] in MCClassDefinition>>createClass
>>         handlerActive:     true
>>     Receiver's instance variables:
>>         outerContext:     MCClassDefinition>>createClass
>>         startpc:     120
>>         numArgs:     0
>>
>> MCClassDefinition>>createClass
>>     Receiver: a MCClassDefinition(Win32Constants)
>>     Arguments and temporary variables:
>>         superClass:     SharedPool
>>         composition:     nil
>>         class:     #(nil)
>>     Receiver's instance variables:
>>         name:     #Win32Constants
>>         superclassName:     #SharedPool
>>         variables:     an OrderedCollection(a
>> MCClassVariableDefinition(COLOR_ACTIVEBORDER)...etc...
>>         category:     #'FFI-Win32-Examples'
>>         type:     #normal
>>         comment:     ''
>>         commentStamp:     ''
>>         traitComposition:     nil
>>         classTraitComposition:     nil
>>
>> MCClassDefinition>>load
>>     Receiver: a MCClassDefinition(Win32Constants)
>>     Arguments and temporary variables:
>>         class:     nil
>>     Receiver's instance variables:
>>         name:     #Win32Constants
>>         superclassName:     #SharedPool
>>         variables:     an OrderedCollection(a
>> MCClassVariableDefinition(COLOR_ACTIVEBORDER)...etc...
>>         category:     #'FFI-Win32-Examples'
>>         type:     #normal
>>         comment:     ''
>>         commentStamp:     ''
>>         traitComposition:     nil
>>         classTraitComposition:     nil
>>
>> [] in [] in [] in MCPackageLoader>>basicLoad
>>     Receiver: a MCPackageLoader
>>     Arguments and temporary variables:
>> <<error during printing>
>>     Receiver's instance variables:
>>         requirements:     #()
>>         unloadableDefinitions:     a SortedCollection()
>>         obsoletions:     a Dictionary()
>>         additions:     an OrderedCollection(a
>> MCOrganizationDefinition(#(#'FFI-Win32-Exampl...etc...
>>         removals:     an OrderedCollection()
>>         errorDefinitions:     an OrderedCollection(a
>> MCClassDefinition(Win32Constants))
>>         provisions:     a Set(#UpdatingRectangleMorph #FormTest
>> #SystemDictionary #HSVColor...etc...
>>         methodAdditions:     an OrderedCollection(a MethodAddition a
>> MethodAddition a Metho...etc...
>>
>> [] in [] in OrderedCollection(Collection)>>do:displayingProgress:every:
>>     Receiver: an OrderedCollection(a MCClassDefinition(Win32Constants))
>>     Arguments and temporary variables:
>> <<error during printing>
>>     Receiver's instance variables:
>>         array:     {a MCClassDefinition(Win32Constants) . nil . nil . nil .
>> nil . nil . nil...etc...
>>         firstIndex:     1
>>         lastIndex:     1
>>
>> OrderedCollection>>do:
>>     Receiver: an OrderedCollection(a MCClassDefinition(Win32Constants))
>>     Arguments and temporary variables:
>>         aBlock:     [closure] in [] in
>> OrderedCollection(Collection)>>do:displayingProgress...etc...
>>         index:     1
>>     Receiver's instance variables:
>>         array:     {a MCClassDefinition(Win32Constants) . nil . nil . nil .
>> nil . nil . nil...etc...
>>         firstIndex:     1
>>         lastIndex:     1
>>
>> [] in OrderedCollection(Collection)>>do:displayingProgress:every:
>>     Receiver: an OrderedCollection(a MCClassDefinition(Win32Constants))
>>     Arguments and temporary variables:
>> <<error during printing>
>>     Receiver's instance variables:
>>         array:     {a MCClassDefinition(Win32Constants) . nil . nil . nil .
>> nil . nil . nil...etc...
>>         firstIndex:     1
>>         lastIndex:     1
>>
>> [] in [] in MorphicUIManager>>displayProgress:at:from:to:during:
>>     Receiver: a MorphicUIManager
>>     Arguments and temporary variables:
>> <<error during printing>
>>     Receiver's instance variables:
>>         toolBuilder:     nil
>>
>> BlockClosure>>on:do:
>>     Receiver: [closure] in [] in
>> MorphicUIManager>>displayProgress:at:from:to:during:
>>     Arguments and temporary variables:
>>         exception:     ProgressNotification
>>         handlerAction:     [closure] in [] in
>> MorphicUIManager>>displayProgress:at:from:to:...etc...
>>         handlerActive:     true
>>     Receiver's instance variables:
>>         outerContext:     [] in
>> MorphicUIManager>>displayProgress:at:from:to:during:
>>         startpc:     86
>>         numArgs:     0
>>
>> [] in MorphicUIManager>>displayProgress:at:from:to:during:
>>     Receiver: a MorphicUIManager
>>     Arguments and temporary variables:
>> <<error during printing>
>>     Receiver's instance variables:
>>         toolBuilder:     nil
>>
>> BlockClosure>>ensure:
>>     Receiver: [closure] in
>> MorphicUIManager>>displayProgress:at:from:to:during:
>>     Arguments and temporary variables:
>>         aBlock:     [closure] in
>> MorphicUIManager>>displayProgress:at:from:to:during:
>>         complete:     nil
>>         returnValue:     nil
>>     Receiver's instance variables:
>>         outerContext:
>> MorphicUIManager>>displayProgress:at:from:to:during:
>>         startpc:     79
>>         numArgs:     0
>>
>> MorphicUIManager>>displayProgress:at:from:to:during:
>>     Receiver: a MorphicUIManager
>>     Arguments and temporary variables:
>>         titleString:     ''
>>         aPoint:     512 at 356
>>         minVal:     0
>>         maxVal:     1
>>         workBlock:     [closure] in
>> OrderedCollection(Collection)>>do:displayingProgress:ev...etc...
>>         progress:     [closure] in
>> SystemProgressMorph>>position:label:min:max:
>>         result:     #(nil)
>>     Receiver's instance variables:
>>         toolBuilder:     nil
>>
>>
>> --- The full stack ---
>> ClassBuilder(Object)>>error:
>> ClassBuilder>>validateClassvars:from:forSuper:
>> [] in
>> ClassBuilder>>name:inEnvironment:subclassOf:type:instanceVariableNames:classVariableNames:poolDictionaries:category:unsafe:
>> BlockClosure>>ensure:
>> ClassBuilder>>name:inEnvironment:subclassOf:type:instanceVariableNames:classVariableNames:poolDictionaries:category:unsafe:
>> ClassBuilder>>name:inEnvironment:subclassOf:type:instanceVariableNames:classVariableNames:poolDictionaries:category:
>> [] in MCClassDefinition>>createClass
>> BlockClosure>>on:do:
>> MCClassDefinition>>createClass
>> MCClassDefinition>>load
>> [] in [] in [] in MCPackageLoader>>basicLoad
>> [] in [] in OrderedCollection(Collection)>>do:displayingProgress:every:
>> OrderedCollection>>do:
>> [] in OrderedCollection(Collection)>>do:displayingProgress:every:
>> [] in [] in MorphicUIManager>>displayProgress:at:from:to:during:
>> BlockClosure>>on:do:
>> [] in MorphicUIManager>>displayProgress:at:from:to:during:
>> BlockClosure>>ensure:
>> MorphicUIManager>>displayProgress:at:from:to:during:
>>  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
>> ProgressInitiationException>>defaultResumeValue
>> ProgressInitiationException(Exception)>>resume
>> ProgressInitiationException>>defaultAction
>> UndefinedObject>>handleSignal:
>> MethodContext(ContextPart)>>handleSignal:
>> MethodContext(ContextPart)>>handleSignal:
>> MethodContext(ContextPart)>>handleSignal:
>> MethodContext(ContextPart)>>handleSignal:
>> ProgressInitiationException(Exception)>>signal
>> ProgressInitiationException>>display:at:from:to:during:
>> ProgressInitiationException class>>display:at:from:to:during:
>> ByteString(String)>>displayProgressAt:from:to:during:
>> ByteString(String)>>displayProgressFrom:to:during:
>> OrderedCollection(Collection)>>do:displayingProgress:every:
>> OrderedCollection(Collection)>>do:displayingProgress:
>> [] in [] in MCPackageLoader>>basicLoad
>> BlockClosure>>on:do:
>> [] in MCPackageLoader>>basicLoad
>> BlockClosure>>ensure:
>> MCPackageLoader>>basicLoad
>> [] in MCPackageLoader>>loadWithNameLike:
>> BlockClosure>>ensure:
>> MCPackageLoader>>useChangeSetNamed:during:
>> MCPackageLoader>>useNewChangeSetNamedLike:during:
>> MCPackageLoader>>loadWithNameLike:
>> MCVersionLoader>>load
>> [] in InstallerMonticello>>basicInstall
>> BlockClosure>>on:do:
>> BlockClosure>>valueSupplyingAnswers:
>> BlockClosure>>valueSuppressingMessages:supplyingAnswers:
>> InstallerMonticello(Installer)>>withAnswersDo:
>> InstallerMonticello>>basicInstall
>> [] in InstallerMonticello(Installer)>>installLogging
>> InstallerMonticello(Installer)>>logErrorDuring:
>> InstallerMonticello(Installer)>>installLogging
>> InstallerMonticello(Installer)>>install
>> InstallerMonticello(Installer)>>install:
>> UndefinedObject>>DoIt
>> Compiler>>evaluate:in:to:notifying:ifFail:logged:
>> [] in SmalltalkEditor(TextEditor)>>evaluateSelectionAndDo:
>> BlockClosure>>on:do:
>> SmalltalkEditor(TextEditor)>>evaluateSelectionAndDo:
>> -- and more not shown --
>>
>>
>> -----------------------------------------------------------------------------------------
>>
>>
>> -----------------
>> Benoit St-Jean
>> Yahoo! Messenger: bstjean
>> A standpoint is an intellectual horizon of radius zero.
>> (Albert Einstein)
>>
>>
>>>________________________________
>>> From: H. Hirzel <hannes.hirzel at gmail.com>
>>>To: squeak-dev at lists.squeakfoundation.org
>>>Sent: Friday, December 21, 2012 4:16:12 PM
>>>Subject: [squeak-dev] ODBC package and mySQL driver for 4.4?
>>>
>>>On 12/21/12, Benoit St-Jean <bstjean at yahoo.com> wrote:
>>>> The more urgent is the ODBC package.  We used to load it with a "prereq"
>>>> of
>>>> executing "ScriptLoader loadFFI" but the loadFFi method has vanished...
>>>>
>>>> Second items that is important, the MySQL Driver...  That one I have not
>>>> tried yet...
>>>
>>>
>>>For the FFI part
>>>-----------------------
>>>
>>>To load the FFI see menu 'help' / 'extending the system' and there
>>>
>>>you find
>>>
>>>"FFI: http://source.squeak.org/FFI.html"
>>>(Installer repository: 'http://source.squeak.org/FFI')
>>>    install: 'FFI-Pools';
>>>    install: 'FFI-Kernel';
>>>    install: 'FFI-Tests';
>>>    install: 'FFI-Win32';
>>>    install: 'FFI-MacOS';
>>>    install: 'FFI-Unix'.
>>>
>>>
>>>--Hannes
>>>
>>>
>>>
>>>
>


More information about the Squeak-dev mailing list