summaryrefslogtreecommitdiff
path: root/libcult/documentation
diff options
context:
space:
mode:
authorJörg Frings-Fürst <jff@merkur>2014-05-18 16:08:14 +0200
committerJörg Frings-Fürst <jff@merkur>2014-05-18 16:08:14 +0200
commita15cf65c44d5c224169c32ef5495b68c758134b7 (patch)
tree3419f58fc8e1b315ba8171910ee044c5d467c162 /libcult/documentation
Imported Upstream version 3.3.0.2upstream/3.3.0.2
Diffstat (limited to 'libcult/documentation')
-rw-r--r--libcult/documentation/BUGS2
-rw-r--r--libcult/documentation/CORE14
-rw-r--r--libcult/documentation/DESIGN12
-rw-r--r--libcult/documentation/DOC1
-rw-r--r--libcult/documentation/NOTES3
-rw-r--r--libcult/documentation/RELEASE1
-rw-r--r--libcult/documentation/THOGHTS1
-rw-r--r--libcult/documentation/TODO3
-rw-r--r--libcult/documentation/TODO-CLI7
-rw-r--r--libcult/documentation/TODO-EH5
-rw-r--r--libcult/documentation/TODO-META2
-rw-r--r--libcult/documentation/TODO-MM3
-rw-r--r--libcult/documentation/TODO-SCHED12
-rw-r--r--libcult/documentation/cli/index.xhtml106
-rw-r--r--libcult/documentation/default.css160
-rw-r--r--libcult/documentation/dr/index.xhtml57
-rw-r--r--libcult/documentation/eh/index.xhtml106
-rw-r--r--libcult/documentation/index.xhtml78
-rw-r--r--libcult/documentation/meta/index.xhtml70
-rw-r--r--libcult/documentation/mm/index.xhtml77
-rw-r--r--libcult/documentation/os/index.xhtml57
-rw-r--r--libcult/documentation/rtti/index.xhtml57
-rw-r--r--libcult/documentation/sched/index.xhtml57
-rw-r--r--libcult/documentation/trace/index.xhtml102
-rw-r--r--libcult/documentation/types/index.xhtml56
25 files changed, 1049 insertions, 0 deletions
diff --git a/libcult/documentation/BUGS b/libcult/documentation/BUGS
new file mode 100644
index 0000000..139597f
--- /dev/null
+++ b/libcult/documentation/BUGS
@@ -0,0 +1,2 @@
+
+
diff --git a/libcult/documentation/CORE b/libcult/documentation/CORE
new file mode 100644
index 0000000..76e1a69
--- /dev/null
+++ b/libcult/documentation/CORE
@@ -0,0 +1,14 @@
+* types
+
+* eh
+
+* trace
+
+* mm -> eh, sched
+
+* meta
+
+* rtti -> containers!!
+
+* sched -> eh, mm
+
diff --git a/libcult/documentation/DESIGN b/libcult/documentation/DESIGN
new file mode 100644
index 0000000..6d469a5
--- /dev/null
+++ b/libcult/documentation/DESIGN
@@ -0,0 +1,12 @@
+
+@@ First layer include language usage policies (e.g. namespaces, eh)
+ and base libraries:
+
+ eh, threading, memory management, tracing, containers
+
+@@ Tracing in libraries? Is it possible?
+
+
+
+
+ \ No newline at end of file
diff --git a/libcult/documentation/DOC b/libcult/documentation/DOC
new file mode 100644
index 0000000..a593886
--- /dev/null
+++ b/libcult/documentation/DOC
@@ -0,0 +1 @@
+@@ Update README, NEWS and INSTALL (from index.xhtml)
diff --git a/libcult/documentation/NOTES b/libcult/documentation/NOTES
new file mode 100644
index 0000000..81b48e5
--- /dev/null
+++ b/libcult/documentation/NOTES
@@ -0,0 +1,3 @@
+@@ SUS dlsym has some ideas about symbol interpositions.
+ This could be relevant to the problem of calling orginal
+ operator new.
diff --git a/libcult/documentation/RELEASE b/libcult/documentation/RELEASE
new file mode 100644
index 0000000..3a7f1ab
--- /dev/null
+++ b/libcult/documentation/RELEASE
@@ -0,0 +1 @@
+@@ copyright
diff --git a/libcult/documentation/THOGHTS b/libcult/documentation/THOGHTS
new file mode 100644
index 0000000..7bf1767
--- /dev/null
+++ b/libcult/documentation/THOGHTS
@@ -0,0 +1 @@
+@@ Access local resources the same way you access remote resources.
diff --git a/libcult/documentation/TODO b/libcult/documentation/TODO
new file mode 100644
index 0000000..a35515b
--- /dev/null
+++ b/libcult/documentation/TODO
@@ -0,0 +1,3 @@
+@@ installation
+
+@@ Add short description for each example. \ No newline at end of file
diff --git a/libcult/documentation/TODO-CLI b/libcult/documentation/TODO-CLI
new file mode 100644
index 0000000..242c0da
--- /dev/null
+++ b/libcult/documentation/TODO-CLI
@@ -0,0 +1,7 @@
+@@ I should not assume that Utility::CommandLine is the only mechanism
+ used to parse command line. Application developer may be using
+ different components that employ different command line parsers.
+ Thus it seem to me that I should use argv/argc as input/output
+ format.
+
+@@ Notion of a default command (e.g., a& --help).
diff --git a/libcult/documentation/TODO-EH b/libcult/documentation/TODO-EH
new file mode 100644
index 0000000..ed7c133
--- /dev/null
+++ b/libcult/documentation/TODO-EH
@@ -0,0 +1,5 @@
+@@ Since there is only one header in eh maybe I should just make it
+ top-level eh.hxx? One disadvantage of this is that I will have to
+ qualify it with cult::exception when I inherit class-specific
+ exception base (maybe it is not too bad actually).
+ \ No newline at end of file
diff --git a/libcult/documentation/TODO-META b/libcult/documentation/TODO-META
new file mode 100644
index 0000000..21eabd5
--- /dev/null
+++ b/libcult/documentation/TODO-META
@@ -0,0 +1,2 @@
+
+@@ Move meta tests from other places to meta/.
diff --git a/libcult/documentation/TODO-MM b/libcult/documentation/TODO-MM
new file mode 100644
index 0000000..7979d15
--- /dev/null
+++ b/libcult/documentation/TODO-MM
@@ -0,0 +1,3 @@
+@@ new with arbitrary alignment
+
+%% Does not work if thread is not the most derived type. See 12.7.5.
diff --git a/libcult/documentation/TODO-SCHED b/libcult/documentation/TODO-SCHED
new file mode 100644
index 0000000..eeea3bb
--- /dev/null
+++ b/libcult/documentation/TODO-SCHED
@@ -0,0 +1,12 @@
+@@ typedef std::thread_cancel in cult::os::sched?
+
+@@ maybe define USE_CXX_UNWIND or something in pthread.h
+ so I can detect that?
+
+@@ rename auto_lock to lock?
+
+@@ maybe add sched::exception: os::exception i.e., "scheduling exception"?
+
+@@ I am throwing exceptions in sched::thread that are not derived from
+ sched::exception.
+ \ No newline at end of file
diff --git a/libcult/documentation/cli/index.xhtml b/libcult/documentation/cli/index.xhtml
new file mode 100644
index 0000000..9c3f1a8
--- /dev/null
+++ b/libcult/documentation/cli/index.xhtml
@@ -0,0 +1,106 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
+
+<!--
+
+file : documentation/cli/index.xhtml
+author : Boris Kolpackov <boris@kolpackov.net>
+copyright : Copyright (c) 2005-2010 Boris Kolpackov
+license : GNU FDL v1.2; http://kolpackov.net/licenses/fdl-1.2.txt
+
+-->
+
+<head>
+
+ <title>libcult/documentation/cli</title>
+
+ <meta name="author" content="Boris Kolpackov"/>
+ <meta name="copyright" content="&copy; 2005-2010 Boris Kolpackov"/>
+ <meta name="keywords" content="libcult,c++,command,line,interface,option,argument"/>
+ <meta name="description" content="libcult/documentation/cli"/>
+
+ <link rel="stylesheet" type="text/css" href="../default.css"/>
+
+</head>
+
+<body>
+
+<div id="navigation">
+<p>
+<a href="../.."><code>libcult</code></a> <code>/</code>
+<a href=".."><code>documentation</code></a> <code>/</code>
+<code>cli</code>
+</p>
+</div>
+
+<div id="content">
+<p>The <em>libcult</em> command line interace library provides
+mechanisms for extracting informtaion from the command line. The
+following code fragment is from <code>libcult/examples/cli</code>:</p>
+
+<pre class="cxx">
+namespace
+{
+ extern Char const help[] = "help";
+ extern Char const version[] = "version";
+ extern Char const outdir[] = "outdir";
+}
+
+typedef
+CLI::Options&lt;help, Boolean,
+ version, Boolean,
+ outdir, String&gt;
+Options;
+
+Int
+main (Int argc, Char* argv[])
+{
+ try
+ {
+ Options options (CLI::parse&lt;Options&gt; (argc, argv));
+
+ if (options.value&lt;help&gt; ())
+ {
+ cerr &lt;&lt; "usage: " &lt;&lt; argv[0] &lt;&lt; " [--help] [--version] [--outdir &lt;dir&gt;]"
+ &lt;&lt; endl;
+ return 0;
+ }
+
+ if (options.value&lt;version&gt; ())
+ {
+ cerr &lt;&lt; argv[0] &lt;&lt; " 1.2.3" &lt;&lt; endl;
+ return 0;
+ }
+
+ if (String dir = options.value&lt;outdir&gt; ())
+ {
+ cerr &lt;&lt; "outdir: " &lt;&lt; dir &lt;&lt; endl;
+ }
+ }
+ catch (CLI::UnexpectedOption const&amp; e)
+ {
+ cerr &lt;&lt; "unexpected option " &lt;&lt; e.option () &lt;&lt;endl;
+ }
+ catch (CLI::OptionFormat const&amp; e)
+ {
+ cerr &lt;&lt; "bad format for " &lt;&lt; e.option () &lt;&lt; endl;
+ }
+}
+</pre>
+</div>
+
+<div id="docinfo">
+<p>Copyright &copy; 2005-2010 <a title="Boris Kolpackov"
+href="http://kolpackov.net">Boris Kolpackov</a>.</p>
+
+<div class="terms">
+Permission is granted to copy, distribute and/or modify this document under
+the terms of the <a href="http://kolpackov.net/licenses/fdl-1.2.txt">GNU Free
+Documentation License, version 1.2</a>; with no Invariant Sections, no
+Front-Cover Texts and no Back-Cover Texts.
+</div>
+</div>
+
+</body>
+</html>
diff --git a/libcult/documentation/default.css b/libcult/documentation/default.css
new file mode 100644
index 0000000..7242a94
--- /dev/null
+++ b/libcult/documentation/default.css
@@ -0,0 +1,160 @@
+body {
+ font-family : sans-serif;
+ font-weight : normal;
+
+ color : black;
+ background : white;
+
+ max-width : 42em;
+ padding : 2em 2em 2em 3em;
+ margin : 0 auto;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ font-family : sans-serif;
+ font-weight : 500;
+}
+
+h1 { font-size : 170%; }
+h2 { font-size : 145%; }
+h3 { font-size : 125%; }
+h4 { font-size : 110%; }
+h5 { font-size : 106%; }
+h6 { font-size : 100%; }
+
+
+p.indent {
+ margin-left : 1.5em;
+}
+
+
+/* table of content */
+ul.toc li {
+ padding : .4em 0em 0em 0em;
+}
+
+
+
+/* list of links */
+ul.menu {
+ list-style-type : none;
+}
+
+ul.menu li {
+ padding-top : 0.3em;
+ padding-bottom : 0.3em;
+}
+
+
+
+/* @@ I should probably use child selector here */
+/* list with multiline list-elements */
+ul.multiline li {
+ padding-top : 0.4em;
+ padding-bottom : 0.4em;
+}
+
+ol.multiline li {
+ padding-top : 0.4em;
+ padding-bottom : 0.4em;
+}
+
+dl.multiline dd {
+ padding-top : 0.4em;
+ padding-bottom : 0.4em;
+}
+
+/* code */
+
+code {
+ font-size : 114%;
+ font-family : monospace;
+}
+
+
+/* C++ code snippet */
+pre.cxx {
+
+ margin-top : 0em;
+ margin-bottom : 2em;
+
+ margin-left : 1em;
+}
+
+
+
+/* make code snippet */
+pre.make {
+
+ margin-top : 0em;
+ margin-bottom : 2em;
+
+ margin-left : 1em;
+}
+
+
+
+/* terminal output */
+pre.term {
+
+ margin-top : 0em;
+ margin-bottom : 2em;
+
+ margin-left : 1em;
+}
+
+
+/* Images */
+div.center {
+ text-align: center;
+}
+
+/* Navigation. */
+#navigation {
+ margin-top: 1em;
+ border-bottom: 1px dashed #000000;
+}
+
+#content {
+ margin-top: 2.5em;
+}
+
+
+/* Document info. */
+#docinfo {
+ margin-top: 4em;
+ border-top: 1px dashed #000000;
+ font-size: 70%;
+}
+
+/* distribution terms */
+div.terms {
+ font-size : 114%;
+ font-family : monospace;
+}
+
+
+
+/* Footnote */
+
+#footnote {
+ margin-top: 2em;
+}
+
+#footnote hr {
+ margin-left: 0;
+ margin-bottom: 1.5em;
+ width: 8em;
+ border-top: 1px solid #000000;
+ border-right: none;
+ border-bottom: none;
+ border-left: none;
+
+}
+
+#footnote p {
+ font-size: .91em;
+ text-indent: -0.8em;
+ padding-left: 0.8em;
+}
+
diff --git a/libcult/documentation/dr/index.xhtml b/libcult/documentation/dr/index.xhtml
new file mode 100644
index 0000000..0726adb
--- /dev/null
+++ b/libcult/documentation/dr/index.xhtml
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
+
+<!--
+
+file : documentation/dr/index.xhtml
+author : Boris Kolpackov <boris@kolpackov.net>
+copyright : Copyright (c) 2005-2010 Boris Kolpackov
+license : GNU FDL v1.2; http://kolpackov.net/licenses/fdl-1.2.txt
+
+-->
+
+<head>
+
+ <title>libcult/documentation/dr</title>
+
+ <meta name="author" content="Boris Kolpackov"/>
+ <meta name="copyright" content="&copy; 2005-2010 Boris Kolpackov"/>
+ <meta name="keywords" content="libcult,c++,data,representation,xdr"/>
+ <meta name="description" content="libcult/documentation/dr"/>
+
+ <link rel="stylesheet" type="text/css" href="../default.css"/>
+
+</head>
+
+<body>
+
+<div id="navigation">
+<p>
+<a href="../.."><code>libcult</code></a> <code>/</code>
+<a href=".."><code>documentation</code></a> <code>/</code>
+<code>dr</code>
+</p>
+</div>
+
+<div id="content">
+<p>The <em>libcult</em> data representation library provides serialization
+streams for reading/writing data representations. Only XDR is supported
+in current version.</p>
+</div>
+
+
+<div id="docinfo">
+<p>Copyright &copy; 2005-2010 <a title="Boris Kolpackov"
+href="http://kolpackov.net">Boris Kolpackov</a>.</p>
+
+<div class="terms">
+Permission is granted to copy, distribute and/or modify this document under
+the terms of the <a href="http://kolpackov.net/licenses/fdl-1.2.txt">GNU Free
+Documentation License, version 1.2</a>; with no Invariant Sections, no
+Front-Cover Texts and no Back-Cover Texts.
+</div>
+</div>
+
+</body>
+</html>
diff --git a/libcult/documentation/eh/index.xhtml b/libcult/documentation/eh/index.xhtml
new file mode 100644
index 0000000..7847c11
--- /dev/null
+++ b/libcult/documentation/eh/index.xhtml
@@ -0,0 +1,106 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
+
+<!--
+
+file : documentation/eh/index.xhtml
+author : Boris Kolpackov <boris@kolpackov.net>
+copyright : Copyright (c) 2005-2010 Boris Kolpackov
+license : GNU FDL v1.2; http://kolpackov.net/licenses/fdl-1.2.txt
+
+-->
+
+<head>
+
+ <title>libcult/documentation/eh</title>
+
+ <meta name="author" content="Boris Kolpackov"/>
+ <meta name="copyright" content="&copy; 2005-2010 Boris Kolpackov"/>
+ <meta name="keywords" content="libcult,c++,exception,handling"/>
+ <meta name="description" content="libcult/documentation/eh"/>
+
+ <link rel="stylesheet" type="text/css" href="../default.css"/>
+
+</head>
+
+<body>
+
+<div id="navigation">
+<p>
+<a href="../.."><code>libcult</code></a> <code>/</code>
+<a href=".."><code>documentation</code></a> <code>/</code>
+<code>eh</code>
+</p>
+</div>
+
+<div id="content">
+<p>The <code>libcult</code> exception handling library defines a base
+exception type to be used by the rest of <code>libcult</code>. It has
+a very basic interface:</p>
+
+<pre class="cxx">
+namespace Cult
+{
+ namespace EH
+ {
+ class Exception: public virtual std::exception
+ {
+ public:
+ virtual char const*
+ what () const throw ();
+ };
+ }
+}
+</pre>
+
+<p>It derives from <code>std::exception</code> to allow catching
+all exceptions with a single handler. Default implementation of the
+<code>what()</code> member function returns type-name of the exception.
+</p>
+
+<p>Every non-trivial library in <em>libcult</em> derives its own
+base exception which all library-defined exceptions inherit. This
+way you can catch all exceptions from a library with one handler.</p>
+
+<p>Sometimes it may seem convenient to further partition (by providing
+corresponding base classes) exceptions space into <em>logic</em>
+exceptions (shared by all implementations) and <em>implementation</em>
+exceptions. For example, if you pass an allocator illegal size 0 then
+the allocator throws an exception which can be classified as a logic
+exception. If, however, you passed valid size but there is not enough
+memory then the allocator throws an exception which can be classified
+as an implementation exception<sup><a href="#fn1">1</a></sup>.</p>
+
+<p>The problem with this approach lies in the fact that someone's logic
+exception is someone else's implementation exception. Consider, for
+instance, a buffer type that is implemented in terms of our allocator.
+If the buffer happened to request a memory block of size 0 and let
+the exception propagate through the interface boundaries it is no longer
+a logic exception.</p>
+
+
+<div id="footnote">
+<hr/>
+<p id="fn1"><sup>1</sup> It can be argued that the
+<code>NoMemory</code> exception should rather be classified
+as logic. However, let's assume there are allocator implementations
+that have infinite memory.</p>
+</div>
+
+</div>
+
+<div id="docinfo">
+<p>Copyright &copy; 2005-2010 <a title="Boris Kolpackov"
+href="http://kolpackov.net">Boris Kolpackov</a>.</p>
+
+<div class="terms">
+Permission is granted to copy, distribute and/or modify this document under
+the terms of the <a href="http://kolpackov.net/licenses/fdl-1.2.txt">GNU Free
+Documentation License, version 1.2</a>; with no Invariant Sections, no
+Front-Cover Texts and no Back-Cover Texts.
+</div>
+</div>
+
+</body>
+</html>
diff --git a/libcult/documentation/index.xhtml b/libcult/documentation/index.xhtml
new file mode 100644
index 0000000..cc2f45d
--- /dev/null
+++ b/libcult/documentation/index.xhtml
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
+
+<!--
+
+file : documentation/index.xhtml
+author : Boris Kolpackov <boris@kolpackov.net>
+copyright : Copyright (c) 2005-2010 Boris Kolpackov
+license : GNU FDL v1.2; http://kolpackov.net/licenses/fdl-1.2.txt
+
+-->
+
+<head>
+
+ <title>libcult/documentation</title>
+
+ <meta name="author" content="Boris Kolpackov"/>
+ <meta name="copyright" content="&copy; 2005-2010 Boris Kolpackov"/>
+ <meta name="keywords" content="c++,library"/>
+ <meta name="description" content="libcult/documentation"/>
+
+ <link rel="stylesheet" type="text/css" href="default.css"/>
+
+</head>
+
+<body>
+
+<div id="navigation">
+<p>
+<a href=".."><code>libcult</code></a> <code>/</code>
+<code>documentation</code>
+</p>
+</div>
+
+<div id="content">
+<p>A number of lower-level libraries are grouped to form a core. Certain
+organizational rules are relaxed for this group. For instance, libraries
+from the core are allowed to have cyclic dependecies and can inject names
+into the top-level namespace <code>cult</code>. Below is the list of
+libraries that currently constitute the core:</p>
+
+<ul class="menu">
+ <li><a href="eh/"><code>eh</code></a></li>
+ <li><a href="meta/"><code>meta</code></a></li>
+ <li><a href="mm/"><code>mm</code></a></li>
+ <li><a href="rtti/"><code>rtti</code></a></li>
+ <li><a href="sched/"><code>sched</code></a></li>
+ <li><a href="trace/"><code>trace</code></a></li>
+ <li><a href="types/"><code>types</code></a></li>
+</ul>
+
+<p>The rest of the libraries normally depend on the core but not
+vice-versa. Below is the list of them:</p>
+
+<ul class="menu">
+ <li><a href="cli/"><code>cli</code></a></li>
+ <!--li><a href="containers/"><code>containers</code></a></li -->
+ <li><a href="dr/"><code>dr</code></a></li>
+ <li><a href="os/"><code>os</code></a></li>
+</ul>
+</div>
+
+
+<div id="docinfo">
+<p>Copyright &copy; 2005-2010 <a title="Boris Kolpackov"
+href="http://kolpackov.net">Boris Kolpackov</a>.</p>
+
+<div class="terms">
+Permission is granted to copy, distribute and/or modify this document under
+the terms of the <a href="http://kolpackov.net/licenses/fdl-1.2.txt">GNU Free
+Documentation License, version 1.2</a>; with no Invariant Sections, no
+Front-Cover Texts and no Back-Cover Texts.
+</div>
+</div>
+
+</body>
+</html>
diff --git a/libcult/documentation/meta/index.xhtml b/libcult/documentation/meta/index.xhtml
new file mode 100644
index 0000000..15ae7a5
--- /dev/null
+++ b/libcult/documentation/meta/index.xhtml
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
+
+<!--
+
+file : documentation/meta/index.xhtml
+author : Boris Kolpackov <boris@kolpackov.net>
+copyright : Copyright (c) 2005-2010 Boris Kolpackov
+license : GNU FDL v1.2; http://kolpackov.net/licenses/fdl-1.2.txt
+
+-->
+
+<head>
+
+ <title>libcult/documentation/meta</title>
+
+ <meta name="author" content="Boris Kolpackov"/>
+ <meta name="copyright" content="&copy; 2005-2010 Boris Kolpackov"/>
+ <meta name="keywords" content="libcult,c++,meta,programming"/>
+ <meta name="description" content="libcult/documentation/meta"/>
+
+ <link rel="stylesheet" type="text/css" href="../default.css"/>
+
+</head>
+
+<body>
+
+<div id="navigation">
+<p>
+<a href="../.."><code>libcult</code></a> <code>/</code>
+<a href=".."><code>documentation</code></a> <code>/</code>
+<code>meta</code>
+</p>
+</div>
+
+<div id="content">
+<p>The <em>libcult</em> metaprogramming library provides a template
+metaprogramming framework, tests and transformations.</p>
+
+<p>Tests:</p>
+
+<ul class="menu">
+ <li><code>class_p</code></li>
+ <li><code>polymorphic_p</code></li>
+</ul>
+
+<p>Transformations:</p>
+
+<ul class="menu">
+ <li><code>remove_c</code></li>
+ <li><code>remove_v</code></li>
+ <li><code>remove_cv</code></li>
+</ul>
+</div>
+
+<div id="docinfo">
+<p>Copyright &copy; 2005-2010 <a title="Boris Kolpackov"
+href="http://kolpackov.net">Boris Kolpackov</a>.</p>
+
+<div class="terms">
+Permission is granted to copy, distribute and/or modify this document under
+the terms of the <a href="http://kolpackov.net/licenses/fdl-1.2.txt">GNU Free
+Documentation License, version 1.2</a>; with no Invariant Sections, no
+Front-Cover Texts and no Back-Cover Texts.
+</div>
+</div>
+
+</body>
+</html>
diff --git a/libcult/documentation/mm/index.xhtml b/libcult/documentation/mm/index.xhtml
new file mode 100644
index 0000000..8ed79d4
--- /dev/null
+++ b/libcult/documentation/mm/index.xhtml
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
+
+<!--
+
+file : documentation/mm/index.xhtml
+author : Boris Kolpackov <boris@kolpackov.net>
+copyright : Copyright (c) 2005-2010 Boris Kolpackov
+license : GNU FDL v1.2; http://kolpackov.net/licenses/fdl-1.2.txt
+
+-->
+
+<head>
+
+ <title>libcult/documentation/mm</title>
+
+ <meta name="author" content="Boris Kolpackov"/>
+ <meta name="copyright" content="&copy; 2005-2010 Boris Kolpackov"/>
+ <meta name="keywords" content="libcult,c++,memory,management"/>
+ <meta name="description" content="libcult/documentation/mm"/>
+
+ <link rel="stylesheet" type="text/css" href="../default.css"/>
+
+</head>
+
+<body>
+
+<div id="navigation">
+<p>
+<a href="../.."><code>libcult</code></a> <code>/</code>
+<a href=".."><code>documentation</code></a> <code>/</code>
+<code>mm</code>
+</p>
+</div>
+
+<div id="content">
+<p>The <em>libcult</em> memory management library provides
+non-intrusive reference counter and a couple of smart pointers.</p>
+
+<p>It also overrides and overloads default memory management operators
+(<code>operator new</code> and <code>operator delete</code>) to allow
+special service objects (reference counter being one of them) to be
+constructed in the memory block preceding the instance. This allows
+transparent <em>instrumentation</em> of objects with a special
+functionality like reference counting or locking.</p>
+
+<p>The two flavors of smart pointers are exclusive (called
+<code>Evptr</code>, from <b>e</b>xclusi<b>v</b>e
+<b>p</b>oin<b>t</b>e<b>r</b>) and shared (called <code>Shptr</code>,
+from <b>sh</b>ared <b>p</b>oin<b>t</b>e<b>r</b>) pointers.</p>
+
+<p>The exclusive pointer has semantics similar to <code>std::auto_ptr</code>
+(i.e., exclusive ownership of the object pointed to) except that it performs
+automatic copying of the object pointed to when copied or assigned to another
+exclusive pointer. Built-in copy-on-write optimization eliminates unnecessary
+copying when instances of exclusive pointers are returned from functions or
+stored in containers.</p>
+
+<p>The shared pointer has standard semantics of a reference-counting smart
+pointer.</p>
+</div>
+
+<div id="docinfo">
+<p>Copyright &copy; 2005-2010 <a title="Boris Kolpackov"
+href="http://kolpackov.net">Boris Kolpackov</a>.</p>
+
+<div class="terms">
+Permission is granted to copy, distribute and/or modify this document under
+the terms of the <a href="http://kolpackov.net/licenses/fdl-1.2.txt">GNU Free
+Documentation License, version 1.2</a>; with no Invariant Sections, no
+Front-Cover Texts and no Back-Cover Texts.
+</div>
+</div>
+
+</body>
+</html>
diff --git a/libcult/documentation/os/index.xhtml b/libcult/documentation/os/index.xhtml
new file mode 100644
index 0000000..62914fa
--- /dev/null
+++ b/libcult/documentation/os/index.xhtml
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
+
+<!--
+
+file : documentation/os/index.xhtml
+author : Boris Kolpackov <boris@kolpackov.net>
+copyright : Copyright (c) 2005-2010 Boris Kolpackov
+license : GNU FDL v1.2; http://kolpackov.net/licenses/fdl-1.2.txt
+
+-->
+
+<head>
+
+ <title>libcult/documentation/os</title>
+
+ <meta name="author" content="Boris Kolpackov"/>
+ <meta name="copyright" content="&copy; 2005-2010 Boris Kolpackov"/>
+ <meta name="keywords" content="libcult,os,net"/>
+ <meta name="description" content="libcult/documentation/os"/>
+
+ <link rel="stylesheet" type="text/css" href="../default.css"/>
+
+</head>
+
+<body>
+
+<div id="navigation">
+<p>
+<a href="../.."><code>libcult</code></a> <code>/</code>
+<a href=".."><code>documentation</code></a> <code>/</code>
+<code>os</code>
+</p>
+</div>
+
+<div id="content">
+<p>The <em>libcult</em> operating system library provides an object-oriented
+interface to the OS primitives as defined by the Single
+UNIX Specification. Only basic networking is supported in this
+version.</p>
+</div>
+
+<div id="docinfo">
+<p>Copyright &copy; 2005-2010 <a title="Boris Kolpackov"
+href="http://kolpackov.net">Boris Kolpackov</a>.</p>
+
+<div class="terms">
+Permission is granted to copy, distribute and/or modify this document under
+the terms of the <a href="http://kolpackov.net/licenses/fdl-1.2.txt">GNU Free
+Documentation License, version 1.2</a>; with no Invariant Sections, no
+Front-Cover Texts and no Back-Cover Texts.
+</div>
+</div>
+
+</body>
+</html>
diff --git a/libcult/documentation/rtti/index.xhtml b/libcult/documentation/rtti/index.xhtml
new file mode 100644
index 0000000..ff3238c
--- /dev/null
+++ b/libcult/documentation/rtti/index.xhtml
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
+
+<!--
+
+file : documentation/rtti/index.xhtml
+author : Boris Kolpackov <boris@kolpackov.net>
+copyright : Copyright (c) 2005-2010 Boris Kolpackov
+license : GNU FDL v1.2; http://kolpackov.net/licenses/fdl-1.2.txt
+
+-->
+
+<head>
+
+ <title>libcult/documentation/rtti</title>
+
+ <meta name="author" content="Boris Kolpackov"/>
+ <meta name="copyright" content="&copy; 2005-2010 Boris Kolpackov"/>
+ <meta name="keywords" content="libcult,c++,rtti,run-time,type,information"/>
+ <meta name="description" content="libcult/documentation/rtti"/>
+
+ <link rel="stylesheet" type="text/css" href="../default.css"/>
+
+</head>
+
+<body>
+
+<div id="navigation">
+<p>
+<a href="../.."><code>libcult</code></a> <code>/</code>
+<a href=".."><code>documentation</code></a> <code>/</code>
+<code>rtti</code>
+</p>
+</div>
+
+<div id="content">
+<p>The <em>libcult</em> run-time type information (rtti) library provides
+a convenience wrapper around <code>std::type_info</code> as well as
+facilities for optional extended type information (e.g., inheritance
+graph).</p>
+</div>
+
+<div id="docinfo">
+<p>Copyright &copy; 2005-2010 <a title="Boris Kolpackov"
+href="http://kolpackov.net">Boris Kolpackov</a>.</p>
+
+<div class="terms">
+Permission is granted to copy, distribute and/or modify this document under
+the terms of the <a href="http://kolpackov.net/licenses/fdl-1.2.txt">GNU Free
+Documentation License, version 1.2</a>; with no Invariant Sections, no
+Front-Cover Texts and no Back-Cover Texts.
+</div>
+</div>
+
+</body>
+</html>
diff --git a/libcult/documentation/sched/index.xhtml b/libcult/documentation/sched/index.xhtml
new file mode 100644
index 0000000..b685471
--- /dev/null
+++ b/libcult/documentation/sched/index.xhtml
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
+
+<!--
+
+file : documentation/sched/index.xhtml
+author : Boris Kolpackov <boris@kolpackov.net>
+copyright : Copyright (c) 2005-2010 Boris Kolpackov
+license : GNU FDL v1.2; http://kolpackov.net/licenses/fdl-1.2.txt
+
+-->
+
+<head>
+
+ <title>libcult/documentation/sched</title>
+
+ <meta name="author" content="Boris Kolpackov"/>
+ <meta name="copyright" content="&copy; 2005-2010 Boris Kolpackov"/>
+ <meta name="keywords" content="libcult,c++,scheduling,thread,lock,mutex"/>
+ <meta name="description" content="libcult/documentation/sched"/>
+
+ <link rel="stylesheet" type="text/css" href="../default.css"/>
+
+</head>
+
+<body>
+
+<div id="navigation">
+<p>
+<a href="../.."><code>libcult</code></a> <code>/</code>
+<a href=".."><code>documentation</code></a> <code>/</code>
+<code>sched</code>
+</p>
+</div>
+
+<div id="content">
+<p>The <em>libcult</em> scheduling library provides an object-oriented
+interface to POSIX thread primitives as defined by the Single
+UNIX Specification.</p>
+</div>
+
+
+<div id="docinfo">
+<p>Copyright &copy; 2005-2010 <a title="Boris Kolpackov"
+href="http://kolpackov.net">Boris Kolpackov</a>.</p>
+
+<div class="terms">
+Permission is granted to copy, distribute and/or modify this document under
+the terms of the <a href="http://kolpackov.net/licenses/fdl-1.2.txt">GNU Free
+Documentation License, version 1.2</a>; with no Invariant Sections, no
+Front-Cover Texts and no Back-Cover Texts.
+</div>
+</div>
+
+</body>
+</html>
diff --git a/libcult/documentation/trace/index.xhtml b/libcult/documentation/trace/index.xhtml
new file mode 100644
index 0000000..eb00f04
--- /dev/null
+++ b/libcult/documentation/trace/index.xhtml
@@ -0,0 +1,102 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
+
+<!--
+
+file : documentation/trace/index.xhtml
+author : Boris Kolpackov <boris@kolpackov.net>
+copyright : Copyright (c) 2005-2010 Boris Kolpackov
+license : GNU FDL v1.2; http://kolpackov.net/licenses/fdl-1.2.txt
+
+-->
+
+<head>
+
+ <title>libcult/documentation/trace</title>
+
+ <meta name="author" content="Boris Kolpackov"/>
+ <meta name="copyright" content="&copy; 2005-2010 Boris Kolpackov"/>
+ <meta name="keywords" content="libcult,c++,tracing"/>
+ <meta name="description" content="libcult/documentation/trace"/>
+
+ <link rel="stylesheet" type="text/css" href="../default.css"/>
+
+</head>
+
+<body>
+
+<div id="navigation">
+<p>
+<a href="../.."><code>libcult</code></a> <code>/</code>
+<a href=".."><code>documentation</code></a> <code>/</code>
+<code>trace</code>
+</p>
+</div>
+
+<div id="content">
+<p>The <em>libcult</em> trace library provides a general-purpose
+program tracing facility. The following code fragment can be found
+in <code>libcult/examples/trace</code>:</p>
+
+<pre class="cxx">
+struct foo {};
+
+std::ostream&amp;
+operator&lt;&lt; (std::ostream&amp; o, foo const&amp;)
+{
+ return o &lt;&lt; "::foo";
+}
+
+namespace trace = cult::trace;
+
+trace::stream tout ("main", 4);
+
+int
+main ()
+{
+ using trace::record;
+
+ trace::log::instance ().level (9);
+
+ record a ("main", 2);
+ a &lt;&lt; "notationally burdensome";
+ tout &lt;&lt; a;
+
+ record b ("main", 2);
+ tout &lt;&lt; (b &lt;&lt; "a bit better, but still burdensome");
+
+ tout &lt;&lt; (record ("main", 2) &lt;&lt; "this is"
+ &lt;&lt; " somewhat"
+ &lt;&lt; " twisted but nice to be able to");
+
+ tout &lt;&lt; "concise, using default level";
+
+ tout &lt;&lt; 9 &lt;&lt; "concise, using custom level";
+
+ foo f;
+
+ tout &lt;&lt; 3 &lt;&lt; f &lt;&lt; " " &lt;&lt; 5;
+}
+</pre>
+
+<p>Along with the proper implementation, a <em>null</em> implementation is
+provided which can be used to completely optimize trace code away. For details
+see the <a href="http://kolpackov.net/pipermail/notes/2004-July/000010.html">
+Inlining code away</a> essay.</p>
+</div>
+
+<div id="docinfo">
+<p>Copyright &copy; 2005-2010 <a title="Boris Kolpackov"
+href="http://kolpackov.net">Boris Kolpackov</a>.</p>
+
+<div class="terms">
+Permission is granted to copy, distribute and/or modify this document under
+the terms of the <a href="http://kolpackov.net/licenses/fdl-1.2.txt">GNU Free
+Documentation License, version 1.2</a>; with no Invariant Sections, no
+Front-Cover Texts and no Back-Cover Texts.
+</div>
+</div>
+
+</body>
+</html>
diff --git a/libcult/documentation/types/index.xhtml b/libcult/documentation/types/index.xhtml
new file mode 100644
index 0000000..07cb7db
--- /dev/null
+++ b/libcult/documentation/types/index.xhtml
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
+
+<!--
+
+file : documentation/types/index.xhtml
+author : Boris Kolpackov <boris@kolpackov.net>
+copyright : Copyright (c) 2005-2010 Boris Kolpackov
+license : GNU FDL v1.2; http://kolpackov.net/licenses/fdl-1.2.txt
+
+-->
+
+<head>
+
+ <title>libcult/documentation/types</title>
+
+ <meta name="author" content="Boris Kolpackov"/>
+ <meta name="copyright" content="&copy; 2005-2010 Boris Kolpackov"/>
+ <meta name="keywords" content="libcult,c++,types"/>
+ <meta name="description" content="libcult/documentation/types"/>
+
+ <link rel="stylesheet" type="text/css" href="../default.css"/>
+
+</head>
+
+<body>
+
+<div id="navigation">
+<p>
+<a href="../.."><code>libcult</code></a> <code>/</code>
+<a href=".."><code>documentation</code></a> <code>/</code>
+<code>types</code>
+</p>
+</div>
+
+<div id="content">
+<p>The <em>libcult</em> type library provides convenience aliases
+for basic c++ types (e.g., <code>wchar</code> and <code>size</code>)
+as well as a set of fixed-size integer types.</p>
+</div>
+
+<div id="docinfo">
+<p>Copyright &copy; 2005-2010 <a title="Boris Kolpackov"
+href="http://kolpackov.net">Boris Kolpackov</a>.</p>
+
+<div class="terms">
+Permission is granted to copy, distribute and/or modify this document under
+the terms of the <a href="http://kolpackov.net/licenses/fdl-1.2.txt">GNU Free
+Documentation License, version 1.2</a>; with no Invariant Sections, no
+Front-Cover Texts and no Back-Cover Texts.
+</div>
+</div>
+
+</body>
+</html>