# New Server

Brandon Gillespie (brandon@tombstone.sunrem.com)
Mon, 22 Apr 1996 15:58:12 PDT

- Messages sorted by:[ date ][ thread ][ subject ][ author ]

    > 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-