MOO-cows Mailing List Archive

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

Re: New Server



> Brandon Gillespie drew these hieroglyphs:
> 
> heh, after that "life support" message, I see this.  well, I based my
> judgement off what I saw (or wasn't seeing) on the Coldstuff list.

Coldstuff has been rather dead for a while, primarily due in part to the
fact that all of the developers are online already, so the only use for
the list up to 1.0 has been to get a larger opinion on certain concepts. 

> >   * Cooperative multitasking.
> 
> Explain this, please?

MOO-style; we opted for this for many reasons.  ColdC 2.0 will have 
preemptive, but ColdC 2.0 will be much more than a simple mud-server 
language.

> >   * Secure language design, implementing public, private and native
> >     methods as well as the ability to lock methods as immutable (so they
> >     cannot be changed during regular execution) as well as the ability
> >     to dynamically bind built-in functions to specific objects.
> 
> dynamically binding built-in's.  Is that the same as a native method?

No, by default there is no access control to ANY function in the ColdC 
language.  This includes 'type()' and all other functions (as well as
'open_connection()' and 'bind_port()').  Rather than allowing the driver 
to presume to understand what your database wants, it simply provides you 
with the means to bind/lock a function to an object, meaning that ONLY that
object can call the function.  Calling the function from another object 
results in an error.

Native methods are much different in that they ARE a method, when called 
the interpreter finds the method and from there gets the native index
to the native method->C Function table (all of this is behind the scenes).

The advantage of this is people can extend the driver without breaking a 
database.  If database x uses certain native methods in driver a, and 
they drop back to using driver b which doesn't have them, the database 
will still load and run (infact, if you left regular method code with the 
natives it will still exist, and be used instead).

-Brandon Gillespie-


References:

Home | Subject Index | Thread Index