Skip to content
lkedves edited this page Oct 25, 2011 · 8 revisions

The first implementation environment (and probably the only one made by me) is written in plain old C language. The first thing to do is to make the dust API, through which all the other components will be accessible.

Basic concepts

No parameters

The dust surrounds the running code invisibly, it is like the 'this' pointer in a C++ code: you can see it but you can't change it, and you don't have to pass it in parameters because it is there in all the member functions (although you have to pass it to static or external functions). Dust knows the current context internally, through a thread local pointer to a context information block. You don't get this information through incoming parameters, and you don't have to pass them when calling other functions. Dust knows the current context, and whenever you call a dust API function, it is there.

First tasks

  • Dust API
    Create the dust header with the API calls.

  • Memory management
    Allocate and release memory blocks.

  • Collections
    Dynamic growing and shrinking arrays, structures, maps.

  • Machine info block
    Sizes of the native data; endianness

  • Context information
    A very limited first version of context management, in order to store the context information for the current call.

  • Threading
    Thread local pointer to context information to access the context info. Later to be extended to real thread management.

  • Instance management
    To manage entity instances (this is the first because type management depends on type descriptor entities).

  • Type management
    Starter type manager

  • Binary manager
    Jump tables for type message processors

  • Channel / call management
    The first message to an entity

Clone this wiki locally