The incomplete Guide to Lumiera Configuration
=============================================
:author: ct
:date: 8/2008

WARNING: this is a draft from the early days of Lumiera +
         IMHO, the whole topic ``Configuration'' requires further
         discussion and design.
+
-- -- Ichthyo

'''''''''''''
'''''''''''''

Order is roughly alphabetically, depending on the mood of the writer.
Defaults are noted if present. Not all are implemented yet.

General Introduction
--------------------

Lumiera uses plaintext files with a INI file like syntax for
configuration. This Syntax is strictly line based. There are only a
few syntactic elements.

TODO:describe config syntax here

Config Subsystem
----------------

The path where Lumiera searches its configuration. Single components are
separated by colons as in PATH and other such environment variables.
Here it might be handy that any Lumiera configuration can be
overridden by a environment variable:
'LUMIERA_CONFIG_PATH=somewhere:else lumiera ...'
A default are initialized at installation time, this is important to
bootstrap the whole configuration system.

 config.path


The config system check for a preferred format when writing config
entries. For each key 'foo.bar', these can be overridden with a key
'config.format.foo.bar' linking to the desired format.

 config.formatkey ='config.format.%s'


The following are links to the default formatting when no explicit
format is set for a key. Changing these to a wrong type will break the
system!

 config.formatdef.link < config.formatstr.link
 config.formatdef.number < config.formatstr.number.dec
 config.formatdef.real < config.formatstr.real
 config.formatdef.string < config.formatstr.string
 config.formatdef.word < config.formatstr.word
 config.formatdef.bool < config.formatstr.bool


This are the low level formating specifications for the buildin
types, DONT TOUCH THESE!

 config.formatstr.link = '< %s'
 config.formatstr.number.dec = '= %lld'
 config.formatstr.number.hex = '= 0x%llX'
 config.formatstr.number.oct = '= 0%llo'
 config.formatstr.real = '= %Lg'
 config.formatstr.real.dec = '= %Lf'
 config.formatstr.real.sci = '= %Le'
 config.formatstr.string = '= %s'
 config.formatstr.string.dquoted = '= \"%s\"'
 config.formatstr.string.quoted = '= ''%s'''
 config.formatstr.word = '= %s'
 config.formatstr.bool = '= %d'


Plugin System
-------------

The path where Lumiera searches its plugins. Single components are
separated by colons as in PATH and other such environment variables.
Here it might be handy that any Lumiera configuration can be
overridden by a environment variable:
'LUMIERA_PLUGIN_PATH=somewhere:else lumiera ...'
Sensible defaults are initialized at installation time.

 plugin.path


I/O Backend
-----------

File handling
~~~~~~~~~~~~~

How many filehandles the backend shall use [approx 2/3 of all available]

 backend.file.max_handles



Memory mapped Files
~~~~~~~~~~~~~~~~~~~

Address space limit (memory mapping)
Defaults:
3GiB on 32 bit arch
192TiB on 64 bit arch

 backend.mmap.as_limit

Default start size for mmaping windows.
128MB on 32 bit arch
2GB on 64 bit arch

 backend.mmap.window_size

How many memory mappings shall be established at most
Default 60000

 backend.mmap.max_maps
