Le 26 mai 06 à 09:56, Stefan Urbanek a écrit :
Citát Quentin Mathé <[EMAIL PROTECTED]>:
Le 25 mai 06 ŕ 12:03, Nicolas Roard a écrit :
Really cool ! io_objc works fine on gnustep. Impressive !
in StepTalk it seems to be broken though (seems a problem not saving
the context)
Good news, I can give up on my buggy old version :-).
It works very well. Excellent work ! I got it working with StepTalk
(GNUstep) properly yesterday. I hacked IoLanguageEngine to have
Io_State kept value in an ivar. This way between each call to -
interpretScript:inContext: the context is maintained. The correct way
to do it would be to store Io_State in STContext instance I think.
How it works? Do you need some language-engine specific
configuration to be
saved into the STContext in a special way (different to context's
variables)?
We only need to store Io_State, it's a C structure, we may probably
just wrap it in an NSValue object part of STContext variables
dictionary.
For STContext, it could be better to provide an instance variable
which is just a hash table where language engine states are keyed by
language engine instances. That would allow :
- to pass a context accross language engines, without polluting
STContext variables dictionary
- to handle different execution contexts on language engine side
without having to set up a new language engine instance.
Finally well, it would be mandatory if it's not possible to wrap
Io_State in NSValue.
If yes, would it be thread safe - when two threads will be acessing
the same
(parent)context?
I don't really know. I think it's should be possible to have it
thread safe. It would be by running method calls as asynchronous
messages on Io runtime side.
Btw. how it is with bridging Objective-C objects with io? Is it
only isolated io
computation engine or can I pass objects in and out?
At this time, it's an isolated Io engine. It should be possible
easily to pass objects in and out since Io_State references the Lobby
(list of root objects in Io execution context). This could be
accomplished by calling C functions that set/update slots in Lobby.
Is it possible to implement STEngine createMethod:... for the io
language?
I think so. A method is an object in Io. Moreover any objects in Io
is just a key/value pairs list, each key/value pair is called a slot.
As a side note, I have been unable to load AppKit environment with
StepTalk, either stexec or stshell (using the flag -env AppKit).
What error are you getting?
I have to check on my GNUstep install. I don't remember right now.
Quentin.
--
Quentin Mathé
[EMAIL PROTECTED]
_______________________________________________
Etoile-dev mailing list
[email protected]
https://mail.gna.org/listinfo/etoile-dev