MetaEng Revision 007

After a suggestion from forum/IRC-goer lancevorgin (aka stosw), I have taken another step to making MetaEng more friendly.

If you read (I think Part 2), you knew that functions were called as dummy CFuncObjects. That has now changed. Functions are now separate objects, referred to as ICallables. CallFunction/PrepareArray/GetFunction are now removed from IScript, giving:

ICallable *IScript::GetCallable()
ICallable::Execute()
ICallable::PrepareArray()

This was a very logical move, and I thank lance for pushing me to it. As functions are now abstract objects, this leads the way for:

MetaEng without Connectors
Lambda functions
Easier memory management
Calling functions in functions/classes

While we’re a long way away from MetaEng without connectors, it’s an idea for the future that lance has shown is viable, and ICallable will become more powerful in order to adapt (with properties such as parent functions (for lambda functions) and parent classes (for member functions)), in order to abstract complicated design structures that are available in modern scripting languages.

Leave a Reply

You must be logged in to post a comment.