The source files of the Tycoon Store are located in the directory ${TYCOON_ROOT}/tsp2 (the '2' indicates that there was a first version of the Tycoon Store). In this directory the different Tycoon Store implementations are located in subdirectories, e.g. the memory store in tymem and the single user store in tysin. There are also some general header files, e.g. tsp.h and tspmacros.h, and the generic intern/extern algorithm in tsplinio.c located here. The files implementing the Tycoon Store are all prefixed with tsp.
The derived object files are located in host dependent subdirectories. The actual used store implementation is linked symbolically to ${TYCOON_ROOT}/tsp2/${TYCOON_HOST}/libtsp.so. This path is wired into tmlink.c in the Tycoon Machine.
To call a TSP function from TL use the library name given by runtimeCore.tspLibraryName(). This name is recognized by the Tycoon Machine link mechanism in tmlink.c.
The source files of the Tycoon Runtime System are located in the directory ${TYCOON_ROOT}/tm2 (together with the Tycoon Machine). The files are prefixed by rt.
The derived object files are located in host dependent subdirectories.
To call a runtime system function from TL use the library name given by runtimeCore.libraryName(). [## is this also correct for functions that are not bound statically in tmstatic.c???] This name is recognized by the Tycoon Machine link mechanism in tmlink.c.
There should be no references to store or machine dependent features in other C files. So ports and changes of the store or machine implementation can be localized here. But be aware that TL modules may bind to the store or machine functions that are marked by DLLEXPORT!
The source files of the Tycoon Machine are located in the directory ${TYCOON_ROOT}/tm2 (the '2' indicates that there was a first version of the Tycoon Machine). The files are prefixed by tm.
The derived object files are located in host dependent subdirectories.
To call a Tycoon Machine function from TL use the library name given by runtimeCore.libraryName(). [## is this also correct for functions that are not bound statically in tmstatic.c???] This name is recognized by the Tycoon Machine link mechanism in tmlink.c.
While the Tycoon Machine implements the functionality of the byte code interpreter and the Runtime System abstracts from the operating system, the Tycoon Language needs other C functions to provide functionality that cannot be (sufficiently) expressed in TL. If this functionality does not depend on the Tycoon Store or Machine it should be located in auxiliary modules (see below). But if Tycoon Store/Machine specific functions are needed that are not provided by the Tycoon Store/Machine and that could not be placed in a Tycoon Store/Machine file, modules supporting the Tycoon Language should be written.
The source files of the Tycoon Language Support are located in the directory ${TYCOON_ROOT}/tm2 . The files are prefixed by tl. (Note that there may be also other files supporting other Tycoon languages, e.g. prefixed by tool for the TooL language.)
The derived object files are located in host dependent subdirectories.
To call a Tycoon Language Support function from TL use the library name given by runtimeCore.libraryName(). [## is this also correct for functions that are not bound statically in tmstatic.c???] This name is recognized by the Tycoon Machine link mechanism in tmlink.c.
The derived object files are located in one host dependent subdirectory. The path of this directory is wired into tmlink.c.
To call a auxiliary function from TL use the library name given by runtimeCore.dynamicLibraryName(lib) where lib is the name of the auxiliary C module where the function is defined. This name is prefixed and so recognized by the Tycoon Machine link mechanism in tmlink.c.