help-smalltalk
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Help-smalltalk] Using Smalltalk as a scripting language


From: Roland Plüss
Subject: Re: [Help-smalltalk] Using Smalltalk as a scripting language
Date: Wed, 28 Oct 2009 17:58:19 +0100
User-agent: Thunderbird 2.0.0.23 (X11/20090926)

>> If not what is the preferred way to handle
>> errors? hijacking #doesNotUnderstand in the Object class ( including
>> #halt and company )?
>
> Hijacking SystemExceptions.UnhandledException>>#defaultAction sounds
> better.
>
> Even better would be to define #debuggerClass in the superclasses that
> your scripts are supposed to subclass.  The #debuggerClass will be
> sent the class method #open:.
What kind of class is #debuggerClass supposed to return? Of course I
could simply make a class with only #open but I'd like to use the proper
superclass for this situation to avoid breaking potential future gst
versions.
> You can test "x == gst_interpreter_proxy.nilOOP".  You can of course
> define your own IS_NIL macro.  However gst_class_name_to_oop returns
> NULL (not nil) if the class is not found; I'll update the docs.
That would be nice. In fact would it be possible to use doxygen style
documentation? They are very helpful to developers as they contain what
is important: function signatures and possible values.

I forgot one question. From looking through the docs I get it that to
map a c++ class to gst I have to create a struct which is then mapped to
smalltalk. Now I'm still trying to wrap my head around how exactly this
is supposed to work. I'm assuming
http://www.gnu.org/software/smalltalk/manual/html_node/Object-representation.html#Object-representation
is the way to handle this. There it is described how to structure this
struct and how to get it from an OOP. Now what I don't get are a couple
of things.

How is this class registered. Meaning how does gst know about the new
class? It's written there that you define a class in smalltalk as in the
example. But where is the gluing made between the c struct and the
appropriate smalltalk class? How do I register a method in a class which
is a c function? In the docs it is mentioned that you have to use a
register function but it seems as far as I get it that it works only for
adding a function to the system class ( in an example this is written
vmProxy->defineCFunc("Tcl_Eval", Tcl_Eval) which does not seem to define
a class OOP in any way ). Is there another function for adding a c
function as a smalltalk method to a class or is this the same function
with a different signature? ( I'm missing the function signature so I'm
a bit at a loss on how it is actually called ). If I can wrap my head
around these two things I think I know all it takes to get the show running.

-- 
Yours sincerely
Plüss Roland

Leader and Head Programmer
- Game: Epsylon ( http://epsylon.rptd.ch/ ,
http://www.moddb.com/games/4057/epsylon )
- Game Engine: Drag(en)gine ( http://dragengine.rptd.ch ,
http://www.moddb.com/engines/9/dragengine )
- Normal Map Generator: DENormGen ( http://epsylon.rptd.ch/denormgen.php )

Attachment: signature.asc
Description: OpenPGP digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]