Is there any information how to use UFI for calling dynamically shared ObjC libraries ?
you do not need UFFI for that, you already have the Alien-MacOS* packages (not loaded by default, but you can find it at www.squeaksource.com/Alien <http://www.squeaksource.com/Alien>, I need to prepare a configuration and add a catalog entry for it). then you can do nice things like this: :)
On 26 Oct 2016, at 05:03, Dimitris Chloupis <kilon.alios@gmail.com> wrote:
Is there any information how to use UFI for calling dynamically shared ObjC libraries ?
EDIT: doing that config right now.
On 26 Oct 2016, at 10:38, Esteban Lorenzano <estebanlm@gmail.com> wrote:
you do not need UFFI for that, you already have the Alien-MacOS* packages (not loaded by default, but you can find it at www.squeaksource.com/Alien <http://www.squeaksource.com/Alien>, I need to prepare a configuration and add a catalog entry for it).
then you can do nice things like this:
<Screen Shot 2016-10-26 at 10.37.54.png>
:)
On 26 Oct 2016, at 05:03, Dimitris Chloupis <kilon.alios@gmail.com <mailto:kilon.alios@gmail.com>> wrote:
Is there any information how to use UFI for calling dynamically shared ObjC libraries ?
Done, there is a config for AlienObjectiveC that will appear in Catalog tomorrow (you can already use it): Metacello new smalltalkhubUser: 'Pharo' project: 'MetaRepoForPharo50'; configuration: 'AlienObjectiveC'; load. Esteban
On 26 Oct 2016, at 10:55, Dimitris Chloupis <kilon.alios@gmail.com> wrote:
On Wed, Oct 26, 2016 at 11:53 AM Esteban Lorenzano <estebanlm@gmail.com <mailto:estebanlm@gmail.com>> wrote: EDIT: doing that config right now.
Thanks mate, take your time :)
Unfortunately does not load it says that a package conflicts with Alien-core :( "PackageConflictError: Package/Tag can not be added because it conflicts with package Alien tag Core RPackageOrganizer>>validateCanBeAddedPackageName:tagName: Debug [ (packageName includes: $-) ifFalse: [ ^ self ]. ^ self validateCanBeAddedPackageName: (packageName copyUpToLast: $-) tagName: (packageName copyAfterLast: $-) , (tagName ifNotNil: [ '-' , tagName ] ifNil: [ '' ]) ] in RPackageOrganizer>>validateCanBeAddedPackageName:tagName: in Block: [ (packageName includes: $-)... IdentityDictionary(Dictionary)>>at:ifAbsent: RPackageOrganizer>>packageNamed:ifAbsent: RPackageOrganizer>>validateCanBeAddedPackageName:tagName: RPackageOrganizer>>validateCanBeAddedPackage: RPackageOrganizer>>registerPackage: RPackage>>register [ (RPackage named: aString asSymbol) register ] in RPackageOrganizer>>registerPackageNamed: in Block: [ (RPackage named: aString asSymbol) register ] IdentityDictionary(Dictionary)>>at:ifAbsent: RPackageOrganizer>>packageNamed:ifAbsent: RPackageOrganizer>>registerPackageNamed: MCVersionLoader>>ensurePackage: [ self ensurePackage: version package. self loadWithNameLike: version info name ] in [ | version | version := versions first. [ self ensurePackage: version package. self loadWithNameLike: version info name ] asJob title: 'Loading ' , version info name asString; run ] in MCVersionLoader>>load in Block: [ self ensurePackage: version package.... BlockClosure>>cull: [ ^ block cull: self ] in [ self prepareForRunning. CurrentJob value: self during: [ ^ block cull: self ] ] in Job>>run in Block: [ ^ block cull: self ] [ p psValueAt: index put: anObject. aBlock value ] in CurrentJob(DynamicVariable)>>value:during: in Block: [ p psValueAt: index put: anObject.... BlockClosure>>ensure: CurrentJob(DynamicVariable)>>value:during: CurrentJob class(DynamicVariable class)>>value:during: [ self prepareForRunning. CurrentJob value: self during: [ ^ block cull: self ] ] in Job>>run in Block: [ self prepareForRunning.... BlockClosure>>ensure: Job>>run [ | version | version := versions first. [ self ensurePackage: version package. self loadWithNameLike: version info name ] asJob title: 'Loading ' , version info name asString; run ] in MCVersionLoader>>load in Block: Debug [ (packageName includes: $-) ifFalse: [ ^ self ]. ^ self validateCanBeAddedPackageName: (packageName copyUpToLast: $-) tagName: (packageName copyAfterLast: $-) , (tagName ifNotNil: [ '-' , tagName ] ifNil: [ '' ]) ] in RPackageOrganizer>>validateCanBeAddedPackageName:tagName: in Block: [ (packageName includes: $-)... IdentityDictionary(Dictionary)>>at:ifAbsent: RPackageOrganizer>>packageNamed:ifAbsent: RPackageOrganizer>>validateCanBeAddedPackageName:tagName: RPackageOrganizer>>validateCanBeAddedPackage: RPackageOrganizer>>registerPackage: RPackage>>register [ (RPackage named: aString asSymbol) register ] in RPackageOrganizer>>registerPackageNamed: in Block: [ (RPackage named: aString asSymbol) register ] IdentityDictionary(Dictionary)>>at:ifAbsent: RPackageOrganizer>>packageNamed:ifAbsent: RPackageOrganizer>>registerPackageNamed: MCVersionLoader>>ensurePackage: [ self ensurePackage: version package. self loadWithNameLike: version info name ] in [ | version | version := versions first. [ self ensurePackage: version package. self loadWithNameLike: version info name ] asJob title: 'Loading ' , version info name asString; run ] in MCVersionLoader>>load in Block: [ self ensurePackage: version package.... BlockClosure>>cull: [ ^ block cull: self ] in [ self prepareForRunning. CurrentJob value: self during: [ ^ block cull: self ] ] in Job>>run in Block: [ ^ block cull: self ] [ p psValueAt: index put: anObject. aBlock value ] in CurrentJob(DynamicVariable)>>value:during: in Block: [ p psValueAt: index put: anObject.... BlockClosure>>ensure: CurrentJob(DynamicVariable)>>value:during: CurrentJob class(DynamicVariable class)>>value:during: [ self prepareForRunning. CurrentJob value: self during: [ ^ block cull: self ] ] in Job>>run in Block: [ self prepareForRunning.... BlockClosure>>ensure: Job>>run [ | version | version := versions first. [ self ensurePackage: version package. self loadWithNameLike: version info name ] asJob title: 'Loading ' , version info name asString; run ] in MCVersionLoader>>load in Block: RPackageConflictError: Package/Tag can not be added because it conflicts with package Alien tag Core RPackageOrganizer>>validateCanBeAddedPackageName:tagName: [ (packageName includes: $-) ifFalse: [ ^ self ]. ^ self validateCanBeAddedPackageName: (packageName copyUpToLast: $-) tagName: (packageName copyAfterLast: $-) , (tagName ifNotNil: [ '-' , tagName ] ifNil: [ '' ]) ] in RPackageOrganizer>>validateCanBeAddedPackageName:tagName: in Block: [ (packageName includes: $-)... IdentityDictionary(Dictionary)>>at:ifAbsent: RPackageOrganizer>>packageNamed:ifAbsent: RPackageOrganizer>>validateCanBeAddedPackageName:tagName: RPackageOrganizer>>validateCanBeAddedPackage: RPackageOrganizer>>registerPackage: RPackage>>register [ (RPackage named: aString asSymbol) register ] in RPackageOrganizer>>registerPackageNamed: in Block: [ (RPackage named: aString asSymbol) register ] IdentityDictionary(Dictionary)>>at:ifAbsent: RPackageOrganizer>>packageNamed:ifAbsent: RPackageOrganizer>>registerPackageNamed: MCVersionLoader>>ensurePackage: [ self ensurePackage: version package. self loadWithNameLike: version info name ] in [ | version | version := versions first. [ self ensurePackage: version package. self loadWithNameLike: version info name ] asJob title: 'Loading ' , version info name asString; run ] in MCVersionLoader>>load in Block: [ self ensurePackage: version package.... BlockClosure>>cull: [ ^ block cull: self ] in [ self prepareForRunning. CurrentJob value: self during: [ ^ block cull: self ] ] in Job>>run in Block: [ ^ block cull: self ] [ p psValueAt: index put: anObject. aBlock value ] in CurrentJob(DynamicVariable)>>value:during: in Block: [ p psValueAt: index put: anObject.... BlockClosure>>ensure: CurrentJob(DynamicVariable)>>value:during: CurrentJob class(DynamicVariable class)>>value:during: [ self prepareForRunning. CurrentJob value: self during: [ ^ block cull: self ] ] in Job>>run in Block: [ self prepareForRunning.... BlockClosure>>ensure: Job>>run [ | version | version := versions first. [ self ensurePackage: version package. self loadWithNameLike: version info name ] asJob title: 'Loading ' , version info name asString; run ] in MCVersionLoader>>load in Block: " On Wed, Oct 26, 2016 at 11:39 AM Esteban Lorenzano <estebanlm@gmail.com> wrote:
you do not need UFFI for that, you already have the Alien-MacOS* packages (not loaded by default, but you can find it at www.squeaksource.com/Alien, I need to prepare a configuration and add a catalog entry for it).
then you can do nice things like this:
:)
On 26 Oct 2016, at 05:03, Dimitris Chloupis <kilon.alios@gmail.com> wrote:
Is there any information how to use UFI for calling dynamically shared ObjC libraries ?
why nobody listens to me? :â( :â( I said you need to load the Alien-MacOSX* packages, not a configuration :) now you have a configuration, you can check it in my previous mail. Esteban ps: btw, there is a problem with callbacks I will fix now⦠these packages has not been used since a lot of time...
On 26 Oct 2016, at 10:53, Dimitris Chloupis <kilon.alios@gmail.com> wrote:
Unfortunately does not load it says that a package conflicts with Alien-core :(
"PackageConflictError: Package/Tag can not be added because it conflicts with package Alien tag Core RPackageOrganizer>>validateCanBeAddedPackageName:tagName: Debug [ (packageName includes: $-) ifFalse: [ ^ self ]. ^ self validateCanBeAddedPackageName: (packageName copyUpToLast: $-) tagName: (packageName copyAfterLast: $-) , (tagName ifNotNil: [ '-' , tagName ] ifNil: [ '' ]) ] in RPackageOrganizer>>validateCanBeAddedPackageName:tagName: in Block: [ (packageName includes: $-)... IdentityDictionary(Dictionary)>>at:ifAbsent: RPackageOrganizer>>packageNamed:ifAbsent: RPackageOrganizer>>validateCanBeAddedPackageName:tagName: RPackageOrganizer>>validateCanBeAddedPackage: RPackageOrganizer>>registerPackage: RPackage>>register [ (RPackage named: aString asSymbol) register ] in RPackageOrganizer>>registerPackageNamed: in Block: [ (RPackage named: aString asSymbol) register ] IdentityDictionary(Dictionary)>>at:ifAbsent: RPackageOrganizer>>packageNamed:ifAbsent: RPackageOrganizer>>registerPackageNamed: MCVersionLoader>>ensurePackage: [ self ensurePackage: version package. self loadWithNameLike: version info name ] in [ | version | version := versions first. [ self ensurePackage: version package. self loadWithNameLike: version info name ] asJob title: 'Loading ' , version info name asString; run ] in MCVersionLoader>>load in Block: [ self ensurePackage: version package.... BlockClosure>>cull: [ ^ block cull: self ] in [ self prepareForRunning. CurrentJob value: self during: [ ^ block cull: self ] ] in Job>>run in Block: [ ^ block cull: self ] [ p psValueAt: index put: anObject. aBlock value ] in CurrentJob(DynamicVariable)>>value:during: in Block: [ p psValueAt: index put: anObject.... BlockClosure>>ensure: CurrentJob(DynamicVariable)>>value:during: CurrentJob class(DynamicVariable class)>>value:during: [ self prepareForRunning. CurrentJob value: self during: [ ^ block cull: self ] ] in Job>>run in Block: [ self prepareForRunning.... BlockClosure>>ensure: Job>>run [ | version | version := versions first. [ self ensurePackage: version package. self loadWithNameLike: version info name ] asJob title: 'Loading ' , version info name asString; run ] in MCVersionLoader>>load in Block: Debug [ (packageName includes: $-) ifFalse: [ ^ self ]. ^ self validateCanBeAddedPackageName: (packageName copyUpToLast: $-) tagName: (packageName copyAfterLast: $-) , (tagName ifNotNil: [ '-' , tagName ] ifNil: [ '' ]) ] in RPackageOrganizer>>validateCanBeAddedPackageName:tagName: in Block: [ (packageName includes: $-)... IdentityDictionary(Dictionary)>>at:ifAbsent: RPackageOrganizer>>packageNamed:ifAbsent: RPackageOrganizer>>validateCanBeAddedPackageName:tagName: RPackageOrganizer>>validateCanBeAddedPackage: RPackageOrganizer>>registerPackage: RPackage>>register [ (RPackage named: aString asSymbol) register ] in RPackageOrganizer>>registerPackageNamed: in Block: [ (RPackage named: aString asSymbol) register ] IdentityDictionary(Dictionary)>>at:ifAbsent: RPackageOrganizer>>packageNamed:ifAbsent: RPackageOrganizer>>registerPackageNamed: MCVersionLoader>>ensurePackage: [ self ensurePackage: version package. self loadWithNameLike: version info name ] in [ | version | version := versions first. [ self ensurePackage: version package. self loadWithNameLike: version info name ] asJob title: 'Loading ' , version info name asString; run ] in MCVersionLoader>>load in Block: [ self ensurePackage: version package.... BlockClosure>>cull: [ ^ block cull: self ] in [ self prepareForRunning. CurrentJob value: self during: [ ^ block cull: self ] ] in Job>>run in Block: [ ^ block cull: self ] [ p psValueAt: index put: anObject. aBlock value ] in CurrentJob(DynamicVariable)>>value:during: in Block: [ p psValueAt: index put: anObject.... BlockClosure>>ensure: CurrentJob(DynamicVariable)>>value:during: CurrentJob class(DynamicVariable class)>>value:during: [ self prepareForRunning. CurrentJob value: self during: [ ^ block cull: self ] ] in Job>>run in Block: [ self prepareForRunning.... BlockClosure>>ensure: Job>>run [ | version | version := versions first. [ self ensurePackage: version package. self loadWithNameLike: version info name ] asJob title: 'Loading ' , version info name asString; run ] in MCVersionLoader>>load in Block: RPackageConflictError: Package/Tag can not be added because it conflicts with package Alien tag Core RPackageOrganizer>>validateCanBeAddedPackageName:tagName: [ (packageName includes: $-) ifFalse: [ ^ self ]. ^ self validateCanBeAddedPackageName: (packageName copyUpToLast: $-) tagName: (packageName copyAfterLast: $-) , (tagName ifNotNil: [ '-' , tagName ] ifNil: [ '' ]) ] in RPackageOrganizer>>validateCanBeAddedPackageName:tagName: in Block: [ (packageName includes: $-)... IdentityDictionary(Dictionary)>>at:ifAbsent: RPackageOrganizer>>packageNamed:ifAbsent: RPackageOrganizer>>validateCanBeAddedPackageName:tagName: RPackageOrganizer>>validateCanBeAddedPackage: RPackageOrganizer>>registerPackage: RPackage>>register [ (RPackage named: aString asSymbol) register ] in RPackageOrganizer>>registerPackageNamed: in Block: [ (RPackage named: aString asSymbol) register ] IdentityDictionary(Dictionary)>>at:ifAbsent: RPackageOrganizer>>packageNamed:ifAbsent: RPackageOrganizer>>registerPackageNamed: MCVersionLoader>>ensurePackage: [ self ensurePackage: version package. self loadWithNameLike: version info name ] in [ | version | version := versions first. [ self ensurePackage: version package. self loadWithNameLike: version info name ] asJob title: 'Loading ' , version info name asString; run ] in MCVersionLoader>>load in Block: [ self ensurePackage: version package.... BlockClosure>>cull: [ ^ block cull: self ] in [ self prepareForRunning. CurrentJob value: self during: [ ^ block cull: self ] ] in Job>>run in Block: [ ^ block cull: self ] [ p psValueAt: index put: anObject. aBlock value ] in CurrentJob(DynamicVariable)>>value:during: in Block: [ p psValueAt: index put: anObject.... BlockClosure>>ensure: CurrentJob(DynamicVariable)>>value:during: CurrentJob class(DynamicVariable class)>>value:during: [ self prepareForRunning. CurrentJob value: self during: [ ^ block cull: self ] ] in Job>>run in Block: [ self prepareForRunning.... BlockClosure>>ensure: Job>>run [ | version | version := versions first. [ self ensurePackage: version package. self loadWithNameLike: version info name ] asJob title: 'Loading ' , version info name asString; run ] in MCVersionLoader>>load in Block: "
On Wed, Oct 26, 2016 at 11:39 AM Esteban Lorenzano <estebanlm@gmail.com <mailto:estebanlm@gmail.com>> wrote: you do not need UFFI for that, you already have the Alien-MacOS* packages (not loaded by default, but you can find it at www.squeaksource.com/Alien <http://www.squeaksource.com/Alien>, I need to prepare a configuration and add a catalog entry for it).
then you can do nice things like this:
:)
On 26 Oct 2016, at 05:03, Dimitris Chloupis <kilon.alios@gmail.com <mailto:kilon.alios@gmail.com>> wrote:
Is there any information how to use UFI for calling dynamically shared ObjC libraries ?
<Screen Shot 2016-10-26 at 10.37.54.png><Screen Shot 2016-10-26 at 10.37.54.png>
I always listen , and I did try it, same problem I am innocent your Honor Pharo Configuration worked great :) Do you think its worth taking a stab at Mars, is this how it works on macos ? On Wed, Oct 26, 2016 at 12:54 PM Esteban Lorenzano <estebanlm@gmail.com> wrote: why nobody listens to me? :â( :â( I said you need to load the Alien-MacOSX* packages, not a configuration :) now you have a configuration, you can check it in my previous mail. Esteban ps: btw, there is a problem with callbacks I will fix now⦠these packages has not been used since a lot of time... On 26 Oct 2016, at 10:53, Dimitris Chloupis <kilon.alios@gmail.com> wrote: Unfortunately does not load it says that a package conflicts with Alien-core :( "PackageConflictError: Package/Tag can not be added because it conflicts with package Alien tag Core RPackageOrganizer>>validateCanBeAddedPackageName:tagName: Debug [ (packageName includes: $-) ifFalse: [ ^ self ]. ^ self validateCanBeAddedPackageName: (packageName copyUpToLast: $-) tagName: (packageName copyAfterLast: $-) , (tagName ifNotNil: [ '-' , tagName ] ifNil: [ '' ]) ] in RPackageOrganizer>>validateCanBeAddedPackageName:tagName: in Block: [ (packageName includes: $-)... IdentityDictionary(Dictionary)>>at:ifAbsent: RPackageOrganizer>>packageNamed:ifAbsent: RPackageOrganizer>>validateCanBeAddedPackageName:tagName: RPackageOrganizer>>validateCanBeAddedPackage: RPackageOrganizer>>registerPackage: RPackage>>register [ (RPackage named: aString asSymbol) register ] in RPackageOrganizer>>registerPackageNamed: in Block: [ (RPackage named: aString asSymbol) register ] IdentityDictionary(Dictionary)>>at:ifAbsent: RPackageOrganizer>>packageNamed:ifAbsent: RPackageOrganizer>>registerPackageNamed: MCVersionLoader>>ensurePackage: [ self ensurePackage: version package. self loadWithNameLike: version info name ] in [ | version | version := versions first. [ self ensurePackage: version package. self loadWithNameLike: version info name ] asJob title: 'Loading ' , version info name asString; run ] in MCVersionLoader>>load in Block: [ self ensurePackage: version package.... BlockClosure>>cull: [ ^ block cull: self ] in [ self prepareForRunning. CurrentJob value: self during: [ ^ block cull: self ] ] in Job>>run in Block: [ ^ block cull: self ] [ p psValueAt: index put: anObject. aBlock value ] in CurrentJob(DynamicVariable)>>value:during: in Block: [ p psValueAt: index put: anObject.... BlockClosure>>ensure: CurrentJob(DynamicVariable)>>value:during: CurrentJob class(DynamicVariable class)>>value:during: [ self prepareForRunning. CurrentJob value: self during: [ ^ block cull: self ] ] in Job>>run in Block: [ self prepareForRunning.... BlockClosure>>ensure: Job>>run [ | version | version := versions first. [ self ensurePackage: version package. self loadWithNameLike: version info name ] asJob title: 'Loading ' , version info name asString; run ] in MCVersionLoader>>load in Block: Debug [ (packageName includes: $-) ifFalse: [ ^ self ]. ^ self validateCanBeAddedPackageName: (packageName copyUpToLast: $-) tagName: (packageName copyAfterLast: $-) , (tagName ifNotNil: [ '-' , tagName ] ifNil: [ '' ]) ] in RPackageOrganizer>>validateCanBeAddedPackageName:tagName: in Block: [ (packageName includes: $-)... IdentityDictionary(Dictionary)>>at:ifAbsent: RPackageOrganizer>>packageNamed:ifAbsent: RPackageOrganizer>>validateCanBeAddedPackageName:tagName: RPackageOrganizer>>validateCanBeAddedPackage: RPackageOrganizer>>registerPackage: RPackage>>register [ (RPackage named: aString asSymbol) register ] in RPackageOrganizer>>registerPackageNamed: in Block: [ (RPackage named: aString asSymbol) register ] IdentityDictionary(Dictionary)>>at:ifAbsent: RPackageOrganizer>>packageNamed:ifAbsent: RPackageOrganizer>>registerPackageNamed: MCVersionLoader>>ensurePackage: [ self ensurePackage: version package. self loadWithNameLike: version info name ] in [ | version | version := versions first. [ self ensurePackage: version package. self loadWithNameLike: version info name ] asJob title: 'Loading ' , version info name asString; run ] in MCVersionLoader>>load in Block: [ self ensurePackage: version package.... BlockClosure>>cull: [ ^ block cull: self ] in [ self prepareForRunning. CurrentJob value: self during: [ ^ block cull: self ] ] in Job>>run in Block: [ ^ block cull: self ] [ p psValueAt: index put: anObject. aBlock value ] in CurrentJob(DynamicVariable)>>value:during: in Block: [ p psValueAt: index put: anObject.... BlockClosure>>ensure: CurrentJob(DynamicVariable)>>value:during: CurrentJob class(DynamicVariable class)>>value:during: [ self prepareForRunning. CurrentJob value: self during: [ ^ block cull: self ] ] in Job>>run in Block: [ self prepareForRunning.... BlockClosure>>ensure: Job>>run [ | version | version := versions first. [ self ensurePackage: version package. self loadWithNameLike: version info name ] asJob title: 'Loading ' , version info name asString; run ] in MCVersionLoader>>load in Block: RPackageConflictError: Package/Tag can not be added because it conflicts with package Alien tag Core RPackageOrganizer>>validateCanBeAddedPackageName:tagName: [ (packageName includes: $-) ifFalse: [ ^ self ]. ^ self validateCanBeAddedPackageName: (packageName copyUpToLast: $-) tagName: (packageName copyAfterLast: $-) , (tagName ifNotNil: [ '-' , tagName ] ifNil: [ '' ]) ] in RPackageOrganizer>>validateCanBeAddedPackageName:tagName: in Block: [ (packageName includes: $-)... IdentityDictionary(Dictionary)>>at:ifAbsent: RPackageOrganizer>>packageNamed:ifAbsent: RPackageOrganizer>>validateCanBeAddedPackageName:tagName: RPackageOrganizer>>validateCanBeAddedPackage: RPackageOrganizer>>registerPackage: RPackage>>register [ (RPackage named: aString asSymbol) register ] in RPackageOrganizer>>registerPackageNamed: in Block: [ (RPackage named: aString asSymbol) register ] IdentityDictionary(Dictionary)>>at:ifAbsent: RPackageOrganizer>>packageNamed:ifAbsent: RPackageOrganizer>>registerPackageNamed: MCVersionLoader>>ensurePackage: [ self ensurePackage: version package. self loadWithNameLike: version info name ] in [ | version | version := versions first. [ self ensurePackage: version package. self loadWithNameLike: version info name ] asJob title: 'Loading ' , version info name asString; run ] in MCVersionLoader>>load in Block: [ self ensurePackage: version package.... BlockClosure>>cull: [ ^ block cull: self ] in [ self prepareForRunning. CurrentJob value: self during: [ ^ block cull: self ] ] in Job>>run in Block: [ ^ block cull: self ] [ p psValueAt: index put: anObject. aBlock value ] in CurrentJob(DynamicVariable)>>value:during: in Block: [ p psValueAt: index put: anObject.... BlockClosure>>ensure: CurrentJob(DynamicVariable)>>value:during: CurrentJob class(DynamicVariable class)>>value:during: [ self prepareForRunning. CurrentJob value: self during: [ ^ block cull: self ] ] in Job>>run in Block: [ self prepareForRunning.... BlockClosure>>ensure: Job>>run [ | version | version := versions first. [ self ensurePackage: version package. self loadWithNameLike: version info name ] asJob title: 'Loading ' , version info name asString; run ] in MCVersionLoader>>load in Block: " On Wed, Oct 26, 2016 at 11:39 AM Esteban Lorenzano <estebanlm@gmail.com> wrote: you do not need UFFI for that, you already have the Alien-MacOS* packages (not loaded by default, but you can find it at www.squeaksource.com/Alien, I need to prepare a configuration and add a catalog entry for it). then you can do nice things like this: :) On 26 Oct 2016, at 05:03, Dimitris Chloupis <kilon.alios@gmail.com> wrote: Is there any information how to use UFI for calling dynamically shared ObjC libraries ? <Screen Shot 2016-10-26 at 10.37.54.png><Screen Shot 2016-10-26 at 10.37.54.png>
Le 26/10/16 à 12:22, Dimitris Chloupis a écrit :
I always listen , and I did try it, same problem
I am innocent your Honor
Pharo Configuration worked great :) Do you think its worth taking a stab at Mars, is this how it works on macos ? Yes :) What would be super cool is a spec binding :)
Stef
Well maybe it's time to give Spec another try , maybe this time I will like it But then I always had a weird taste I am also flirting with idea of QT maybe with the support of my Python bridge it will give even the ability to design the GUIs using QTCreator. Fun fun fun, I love experiments.... wish me luck ;) On Wed, 26 Oct 2016 at 18:34, stepharo <stepharo@free.fr> wrote: Le 26/10/16 à 12:22, Dimitris Chloupis a écrit : I always listen , and I did try it, same problem I am innocent your Honor Pharo Configuration worked great :) Do you think its worth taking a stab at Mars, is this how it works on macos ? Yes :) What would be super cool is a spec binding :) Stef
2016-10-26 10:38 GMT+02:00 Esteban Lorenzano <estebanlm@gmail.com>:
you do not need UFFI for that, you already have the Alien-MacOS* packages (not loaded by default, but you can find it at www.squeaksource.com/Alien, I need to prepare a configuration and add a catalog entry for it).
then you can do nice things like this:
Nice
participants (4)
-
Denis Kudriashov -
Dimitris Chloupis -
Esteban Lorenzano -
stepharo