close Warning: Can't synchronize with repository "(default)" (/var/svn/tolp does not appear to be a Subversion repository.). Look in the Trac log for more information.

Version 5 (modified by Víctor de Buen Remiro, 16 years ago) (diff)

--

Modularity in TOL

In order to allow a big growning of libraries written in TOL it's neccessary to count with a well designed structure of modular development:

  1. Package: A package is an irreductible set of TOL files that are strongly related between themselves, having all them a common conceptual purpose. It is the minimal unity of modularity and will be encapsulated into a unique root NameBlock that must be handled as a compressed OIS module.
  2. Library: A library is a set of related packages that are organized in a directory tree whose root is called just like the library. Terminal directories have just one package each one. Intermediate directories have only conceptual purpose in order to aggregate related package in a hierarchical tree. A library must have just one main TOL file with a unique NameBlock that includes all packages as direct members. So, to acces to a specific package user will must write my_library::my_package independently of intermediate directories where the package is ubicated. A library has its own release identifier and must have a list of required libraries specifying minimum and maximum compatible releases of each one. TOL C++ built-in kernel will be considered as an special library required by all other libraries and non requiring any one.
  3. Repository: Generic purpose libraries, starting by StdLib, must be accesible from public or private, remote or local repositories i order to allow download and automatic update to last releases and also to specific ones for full libraries.