diff options
Diffstat (limited to 'libcult/documentation')
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="© 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<help, Boolean, + version, Boolean, + outdir, String> +Options; + +Int +main (Int argc, Char* argv[]) +{ + try + { + Options options (CLI::parse<Options> (argc, argv)); + + if (options.value<help> ()) + { + cerr << "usage: " << argv[0] << " [--help] [--version] [--outdir <dir>]" + << endl; + return 0; + } + + if (options.value<version> ()) + { + cerr << argv[0] << " 1.2.3" << endl; + return 0; + } + + if (String dir = options.value<outdir> ()) + { + cerr << "outdir: " << dir << endl; + } + } + catch (CLI::UnexpectedOption const& e) + { + cerr << "unexpected option " << e.option () <<endl; + } + catch (CLI::OptionFormat const& e) + { + cerr << "bad format for " << e.option () << endl; + } +} +</pre> +</div> + +<div id="docinfo"> +<p>Copyright © 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="© 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 © 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="© 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 © 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="© 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 © 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="© 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 © 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="© 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 © 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="© 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 © 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="© 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 © 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="© 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 © 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="© 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& +operator<< (std::ostream& o, foo const&) +{ + return o << "::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 << "notationally burdensome"; + tout << a; + + record b ("main", 2); + tout << (b << "a bit better, but still burdensome"); + + tout << (record ("main", 2) << "this is" + << " somewhat" + << " twisted but nice to be able to"); + + tout << "concise, using default level"; + + tout << 9 << "concise, using custom level"; + + foo f; + + tout << 3 << f << " " << 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 © 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="© 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 © 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> |