Compare commits
89
Commits
develop
...
boost-1.28.0
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0da5edddec | ||
|
|
3f2b94ef8a | ||
|
|
cece306b9c | ||
|
|
de815cfb81 | ||
|
|
f47551ec4d | ||
|
|
2839d0b524 | ||
|
|
b21f03ffbe | ||
|
|
353c3ca387 | ||
|
|
c712b9a9e9 | ||
|
|
8f438f1858 | ||
|
|
72996bdca6 | ||
|
|
8070b5b311 | ||
|
|
d22eaa3cde | ||
|
|
5a514ab02b | ||
|
|
b4e4c45a8d | ||
|
|
731174bb94 | ||
|
|
e55da695b5 | ||
|
|
80f7855286 | ||
|
|
99766370be | ||
|
|
70fb857214 | ||
|
|
fd52e7093c | ||
|
|
40ad8f8f12 | ||
|
|
756fdb2470 | ||
|
|
aa3bd206a6 | ||
|
|
392f6cdbca | ||
|
|
efe3a62150 | ||
|
|
5ccedd4df3 | ||
|
|
71d9dea4a9 | ||
|
|
8162342f1b | ||
|
|
2621a64876 | ||
|
|
987ba38057 | ||
|
|
12a646f4d3 | ||
|
|
b21d60ee92 | ||
|
|
04752a6a1e | ||
|
|
267c1ab2da | ||
|
|
c77ac5f272 | ||
|
|
ba8ac5114a | ||
|
|
596827a360 | ||
|
|
6477bdad18 | ||
|
|
59e74d14be | ||
|
|
a99aaacc21 | ||
|
|
e43784519c | ||
|
|
6484c3dd4d | ||
|
|
3bc122b132 | ||
|
|
544de7fa8f | ||
|
|
5aeec181f5 | ||
|
|
900ccea62f | ||
|
|
19a50132aa | ||
|
|
d8e36623a7 | ||
|
|
984d8f0570 | ||
|
|
2198154518 | ||
|
|
bbcb567f56 | ||
|
|
8772d166a6 | ||
|
|
b663d55891 | ||
|
|
096c49b017 | ||
|
|
51fac98a75 | ||
|
|
ea07615205 | ||
|
|
b71e9e92c8 | ||
|
|
7beed941e8 | ||
|
|
ddced9c057 | ||
|
|
842e28a5ce | ||
|
|
0b47a6ad8c | ||
|
|
5888707b4a | ||
|
|
9bfe7d871f | ||
|
|
3df95e6154 | ||
|
|
66249c1083 | ||
|
|
31500962ee | ||
|
|
274508591f | ||
|
|
683aded403 | ||
|
|
bb62506c9e | ||
|
|
99f7d513cf | ||
|
|
17ae422275 | ||
|
|
ed517b2212 | ||
|
|
71f166ccee | ||
|
|
d0f648df5b | ||
|
|
cd43917d3a | ||
|
|
3c6013e64d | ||
|
|
874f25d79a | ||
|
|
78c918f060 | ||
|
|
0b3a6d92fd | ||
|
|
61c3cbe4f3 | ||
|
|
2d56aa16db | ||
|
|
81507e38d1 | ||
|
|
ac0cf3ffe5 | ||
|
|
eb4eca19e8 | ||
|
|
7eebdbd86e | ||
|
|
55c7d40809 | ||
|
|
1a2b2dad31 | ||
|
|
4fff4e88e7 |
+97
-97
@@ -1,58 +1,54 @@
|
||||
[submodule "smart_ptr"]
|
||||
path = libs/smart_ptr
|
||||
url = ../smart_ptr.git
|
||||
fetchRecurseSubmodules = on-demand
|
||||
[submodule "integer"]
|
||||
path = libs/integer
|
||||
url = ../integer.git
|
||||
fetchRecurseSubmodules = on-demand
|
||||
[submodule "compose"]
|
||||
path = libs/compose
|
||||
url = ../compose.git
|
||||
fetchRecurseSubmodules = on-demand
|
||||
[submodule "random"]
|
||||
path = libs/random
|
||||
url = ../random.git
|
||||
[submodule "crc"]
|
||||
path = libs/crc
|
||||
url = ../crc.git
|
||||
fetchRecurseSubmodules = on-demand
|
||||
[submodule "any"]
|
||||
path = libs/any
|
||||
url = ../any.git
|
||||
fetchRecurseSubmodules = on-demand
|
||||
[submodule "utility"]
|
||||
path = libs/utility
|
||||
url = ../utility.git
|
||||
fetchRecurseSubmodules = on-demand
|
||||
[submodule "rational"]
|
||||
path = libs/rational
|
||||
url = ../rational.git
|
||||
[submodule "python"]
|
||||
path = libs/python
|
||||
url = ../python.git
|
||||
fetchRecurseSubmodules = on-demand
|
||||
[submodule "timer"]
|
||||
path = libs/timer
|
||||
url = ../timer.git
|
||||
fetchRecurseSubmodules = on-demand
|
||||
[submodule "functional"]
|
||||
path = libs/functional
|
||||
url = ../functional.git
|
||||
fetchRecurseSubmodules = on-demand
|
||||
[submodule "conversion"]
|
||||
path = libs/conversion
|
||||
url = ../conversion.git
|
||||
fetchRecurseSubmodules = on-demand
|
||||
[submodule "config"]
|
||||
path = libs/config
|
||||
url = ../config.git
|
||||
fetchRecurseSubmodules = on-demand
|
||||
[submodule "array"]
|
||||
path = libs/array
|
||||
url = ../array.git
|
||||
[submodule "rational"]
|
||||
path = libs/rational
|
||||
url = ../rational.git
|
||||
fetchRecurseSubmodules = on-demand
|
||||
[submodule "type_traits"]
|
||||
path = libs/type_traits
|
||||
url = ../type_traits.git
|
||||
[submodule "disjoint_sets"]
|
||||
path = libs/disjoint_sets
|
||||
url = ../disjoint_sets.git
|
||||
fetchRecurseSubmodules = on-demand
|
||||
[submodule "iterator"]
|
||||
path = libs/iterator
|
||||
url = ../iterator.git
|
||||
[submodule "math"]
|
||||
path = libs/math
|
||||
url = ../math.git
|
||||
fetchRecurseSubmodules = on-demand
|
||||
[submodule "regex"]
|
||||
path = libs/regex
|
||||
url = ../regex.git
|
||||
[submodule "concept_check"]
|
||||
path = libs/concept_check
|
||||
url = ../concept_check.git
|
||||
fetchRecurseSubmodules = on-demand
|
||||
[submodule "io"]
|
||||
path = libs/io
|
||||
url = ../io.git
|
||||
fetchRecurseSubmodules = on-demand
|
||||
[submodule "lambda"]
|
||||
path = libs/lambda
|
||||
url = ../lambda.git
|
||||
fetchRecurseSubmodules = on-demand
|
||||
[submodule "graph"]
|
||||
path = libs/graph
|
||||
@@ -62,87 +58,91 @@
|
||||
path = libs/static_assert
|
||||
url = ../static_assert.git
|
||||
fetchRecurseSubmodules = on-demand
|
||||
[submodule "function"]
|
||||
path = libs/function
|
||||
url = ../function.git
|
||||
fetchRecurseSubmodules = on-demand
|
||||
[submodule "concept_check"]
|
||||
path = libs/concept_check
|
||||
url = ../concept_check.git
|
||||
fetchRecurseSubmodules = on-demand
|
||||
[submodule "detail"]
|
||||
path = libs/detail
|
||||
url = ../detail.git
|
||||
fetchRecurseSubmodules = on-demand
|
||||
[submodule "disjoint_sets"]
|
||||
path = libs/disjoint_sets
|
||||
url = ../disjoint_sets.git
|
||||
fetchRecurseSubmodules = on-demand
|
||||
[submodule "property_map"]
|
||||
path = libs/property_map
|
||||
url = ../property_map.git
|
||||
fetchRecurseSubmodules = on-demand
|
||||
[submodule "python"]
|
||||
path = libs/python
|
||||
url = ../python.git
|
||||
fetchRecurseSubmodules = on-demand
|
||||
[submodule "test"]
|
||||
path = libs/test
|
||||
url = ../test.git
|
||||
fetchRecurseSubmodules = on-demand
|
||||
[submodule "any"]
|
||||
path = libs/any
|
||||
url = ../any.git
|
||||
fetchRecurseSubmodules = on-demand
|
||||
[submodule "crc"]
|
||||
path = libs/crc
|
||||
url = ../crc.git
|
||||
[submodule "functional"]
|
||||
path = libs/functional
|
||||
url = ../functional.git
|
||||
fetchRecurseSubmodules = on-demand
|
||||
[submodule "pool"]
|
||||
path = libs/pool
|
||||
url = ../pool.git
|
||||
fetchRecurseSubmodules = on-demand
|
||||
[submodule "thread"]
|
||||
path = libs/thread
|
||||
url = ../thread.git
|
||||
fetchRecurseSubmodules = on-demand
|
||||
[submodule "tuple"]
|
||||
path = libs/tuple
|
||||
url = ../tuple.git
|
||||
fetchRecurseSubmodules = on-demand
|
||||
[submodule "tokenizer"]
|
||||
path = libs/tokenizer
|
||||
url = ../tokenizer.git
|
||||
fetchRecurseSubmodules = on-demand
|
||||
[submodule "math"]
|
||||
path = libs/math
|
||||
url = ../math.git
|
||||
fetchRecurseSubmodules = on-demand
|
||||
[submodule "build"]
|
||||
path = tools/build
|
||||
url = ../build.git
|
||||
[submodule "test"]
|
||||
path = libs/test
|
||||
url = ../test.git
|
||||
fetchRecurseSubmodules = on-demand
|
||||
[submodule "compatibility"]
|
||||
path = libs/compatibility
|
||||
url = ../compatibility.git
|
||||
fetchRecurseSubmodules = on-demand
|
||||
[submodule "iterator"]
|
||||
path = libs/iterator
|
||||
url = ../iterator.git
|
||||
fetchRecurseSubmodules = on-demand
|
||||
[submodule "type_traits"]
|
||||
path = libs/type_traits
|
||||
url = ../type_traits.git
|
||||
fetchRecurseSubmodules = on-demand
|
||||
[submodule "bind"]
|
||||
path = libs/bind
|
||||
url = ../bind.git
|
||||
fetchRecurseSubmodules = on-demand
|
||||
[submodule "detail"]
|
||||
path = libs/detail
|
||||
url = ../detail.git
|
||||
fetchRecurseSubmodules = on-demand
|
||||
[submodule "preprocessor"]
|
||||
path = libs/preprocessor
|
||||
url = ../preprocessor.git
|
||||
fetchRecurseSubmodules = on-demand
|
||||
[submodule "lambda"]
|
||||
path = libs/lambda
|
||||
url = ../lambda.git
|
||||
[submodule "tuple"]
|
||||
path = libs/tuple
|
||||
url = ../tuple.git
|
||||
fetchRecurseSubmodules = on-demand
|
||||
[submodule "io"]
|
||||
path = libs/io
|
||||
url = ../io.git
|
||||
[submodule "regex"]
|
||||
path = libs/regex
|
||||
url = ../regex.git
|
||||
fetchRecurseSubmodules = on-demand
|
||||
[submodule "mpl"]
|
||||
path = libs/mpl
|
||||
url = ../mpl.git
|
||||
[submodule "integer"]
|
||||
path = libs/integer
|
||||
url = ../integer.git
|
||||
fetchRecurseSubmodules = on-demand
|
||||
[submodule "random"]
|
||||
path = libs/random
|
||||
url = ../random.git
|
||||
fetchRecurseSubmodules = on-demand
|
||||
[submodule "property_map"]
|
||||
path = libs/property_map
|
||||
url = ../property_map.git
|
||||
fetchRecurseSubmodules = on-demand
|
||||
[submodule "thread"]
|
||||
path = libs/thread
|
||||
url = ../thread.git
|
||||
fetchRecurseSubmodules = on-demand
|
||||
[submodule "array"]
|
||||
path = libs/array
|
||||
url = ../array.git
|
||||
fetchRecurseSubmodules = on-demand
|
||||
[submodule "function"]
|
||||
path = libs/function
|
||||
url = ../function.git
|
||||
fetchRecurseSubmodules = on-demand
|
||||
[submodule "smart_ptr"]
|
||||
path = libs/smart_ptr
|
||||
url = ../smart_ptr.git
|
||||
fetchRecurseSubmodules = on-demand
|
||||
[submodule "tokenizer"]
|
||||
path = libs/tokenizer
|
||||
url = ../tokenizer.git
|
||||
fetchRecurseSubmodules = on-demand
|
||||
[submodule "conversion"]
|
||||
path = libs/conversion
|
||||
url = ../conversion.git
|
||||
fetchRecurseSubmodules = on-demand
|
||||
[submodule "build"]
|
||||
path = tools/build
|
||||
url = ../build.git
|
||||
fetchRecurseSubmodules = on-demand
|
||||
[submodule "log"]
|
||||
path = libs/log
|
||||
url = ../log.git
|
||||
fetchRecurseSubmodules = on-demand
|
||||
|
||||
@@ -5,23 +5,10 @@
|
||||
# Set some important global variables if they haven't already been set by the
|
||||
# user on the command-line or in the environment
|
||||
|
||||
# Transitional - allows us to use this Jamrules file with the new Jambase under
|
||||
# development
|
||||
path-global BOOST_ROOT : $(gPROJECT_ROOT) ;
|
||||
|
||||
# Establish this as the root of the boost installation. Most targets will want
|
||||
# $(BOOST_ROOT) in their #include path. $(gTOP) is the name of the variable
|
||||
# containing the path from the invocation directory to the project root.
|
||||
path-global BOOST_ROOT : $($(gTOP)) ;
|
||||
|
||||
# Tell the build system where to find the rest of the build
|
||||
# system installation (e.g. toolset descriptions, variants)
|
||||
BOOST_BUILD_PATH ?= $(BOOST_ROOT)/tools/build ;
|
||||
|
||||
# This variable will surely need to be set specific to your installation, though
|
||||
# we may be able to provide better defaults for some systems. It is used by the
|
||||
# toolset(s) that use STLport
|
||||
STLPORT_ROOT ?= c:/downloads/STLPort-0601 ;
|
||||
|
||||
# The current version of Boost.
|
||||
BOOST_VERSION = 1.27.0 ;
|
||||
BOOST_VERSION ?= 1.28.0 ;
|
||||
|
||||
+1
-1
@@ -1,2 +1,2 @@
|
||||
BOOST_ROOT ?= $(.boost-build-file:D) ;
|
||||
BOOST_ROOT = $(.boost-build-file:D) ;
|
||||
boost-build tools/build ;
|
||||
|
||||
@@ -1,859 +0,0 @@
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<meta http-equiv="Content-Type"
|
||||
content="text/html; charset=iso-8859-1">
|
||||
<meta name="Template"
|
||||
content="C:\PROGRAM FILES\MICROSOFT OFFICE\OFFICE\html.dot">
|
||||
<meta name="GENERATOR" content="Microsoft FrontPage Express 2.0">
|
||||
<title></title>
|
||||
</head>
|
||||
|
||||
<body bgcolor="#FFFFFF" link="#0000FF" vlink="#800080">
|
||||
|
||||
<h2 align="center">A Proposal for the Boost Directory Structure</h2>
|
||||
|
||||
<p align="center">By John Maddock.</p>
|
||||
|
||||
<p>The following proposal consists of three sections: A list of
|
||||
requirements and objectives that the chosen structure must meet,
|
||||
a set of tools to facilitate working with boost, and an actual
|
||||
proposal for a structure that meets those requirements. In the
|
||||
past I have argued vociferously for a "do as little as
|
||||
possible" approach, however I have somewhat surprised myself
|
||||
by coming out in favour of a radical reorganisation here. In many
|
||||
ways though, the proposed directory structure is less important
|
||||
than its ability to meet the requirements listed below, nor is it
|
||||
the only structure that could arguably meet these requirements (especially
|
||||
as some requirements are contradictory). Finally a couple of
|
||||
caveats: All opinions expressed herein are my own; all ideas
|
||||
expressed herein belong to over people (especially the good ones!).
|
||||
Where possible credits are given, but my memory is far from
|
||||
infallible so speak up if you've been missed out.</p>
|
||||
|
||||
<h2 align="center">Requirements</h2>
|
||||
|
||||
<h3>Consistency</h3>
|
||||
|
||||
<blockquote>
|
||||
<p><b>Comment</b>: this should speak for itself.</p>
|
||||
</blockquote>
|
||||
|
||||
<h3>Discoverability</h3>
|
||||
|
||||
<p>That is a casual user browsing the directory structure should
|
||||
be able to immediately tell what belongs where.</p>
|
||||
|
||||
<blockquote>
|
||||
<p><b>Rationale</b>: some users read the documentation,
|
||||
others wander around aimlessly saying: "I wonder what's
|
||||
in here?", speak up if you recognise anyone!</p>
|
||||
<p><b>Rationale</b>: automated tools should be able to glean
|
||||
most of the information they need direct from the directory
|
||||
structure.</p>
|
||||
<p><b>Comment</b>: This is probably the most important
|
||||
requirement and guides the choice of many others.</p>
|
||||
</blockquote>
|
||||
|
||||
<h3>Boost is a single library</h3>
|
||||
|
||||
<blockquote>
|
||||
<p>From an end users perspective boost should appear to be a
|
||||
single library, with a single integrated build process etc.</p>
|
||||
<p><b>Rationale</b>: This makes life much more comfortable
|
||||
for end uses.</p>
|
||||
</blockquote>
|
||||
|
||||
<h3>Boost is a collection of separate libraries</h3>
|
||||
|
||||
<blockquote>
|
||||
<p><b>Rationale</b>: some libraries have an existence of
|
||||
their own outside of boost, this should be able to continue.</p>
|
||||
<p><b>Rationale</b>: different developers maintain individual
|
||||
boost libraries.</p>
|
||||
<p><b>Rationale</b>: as boost grows it may be necessary to
|
||||
split the library into multiple zip file downloads, each
|
||||
download should encapsulate one domain, and provide all the
|
||||
files necessary for that domain (that may mean that some
|
||||
files appear in more than one zip file).</p>
|
||||
<p><b>Rationale</b>: some users will want to split off (and
|
||||
maybe freeze) those parts of boost that are being used by a
|
||||
particular project. These sub-libraries can then be checked
|
||||
into the users own version control system (for example into a
|
||||
local cvs repository as a vendor branch), and maintained
|
||||
alongside the users own source for that project.</p>
|
||||
<p><b>Implication:</b> that there exists some mechanism for
|
||||
locating and separating off all the files associated with a
|
||||
particular boost library, this should also take into account
|
||||
dependencies (both for headers and for binary dependencies).</p>
|
||||
</blockquote>
|
||||
|
||||
<h3>Individual boost libraries can be checked out from the cvs
|
||||
repository</h3>
|
||||
|
||||
<blockquote>
|
||||
<p>For example "<code>cvs checkout regex</code>"
|
||||
would check out the regex library alone.</p>
|
||||
<p><b>Rationale</b>: This makes maintenance much easier
|
||||
especially when working with cvs-branches.</p>
|
||||
<p><b>Implication</b>: we could isolate libraries into
|
||||
separate directories, however that's only a partial solution
|
||||
which takes no account of library dependencies (something
|
||||
that's likely to become increasingly important). A better
|
||||
solution is to use cvs module-aliases: as a test case I've
|
||||
defined the regex library as a module-alias (this seems to
|
||||
work very well). In this case I had to specify dependencies
|
||||
by hand (an error prone process), much better would be a tool
|
||||
that produced a list of library aliases to insert directly
|
||||
into the cvs modules file.</p>
|
||||
</blockquote>
|
||||
|
||||
<h3>Boost libraries can have dependencies to other libraries</h3>
|
||||
|
||||
<blockquote>
|
||||
<p>There are three kinds of dependency possible:</p>
|
||||
<ol>
|
||||
<li>Libraries may depend upon the headers from other
|
||||
boost libraries; these dependencies can be worked out
|
||||
automatically.</li>
|
||||
<li>Libraries may depend upon binaries from other boost
|
||||
libraries; these dependencies can be worked out
|
||||
automatically (hint: if library X depends upon header
|
||||
H, and header H is from a library Y which has
|
||||
mandatory source code associated with it, then there
|
||||
is a binary dependency from X to Y).</li>
|
||||
<li>Some domain specific libraries may depend upon third
|
||||
party libraries (the python library for example).
|
||||
These dependencies can not be deduced, and will
|
||||
require meta-data to describe.</li>
|
||||
</ol>
|
||||
<p><b>Rationale: </b>these dependencies already exist in the
|
||||
boost library.</p>
|
||||
</blockquote>
|
||||
|
||||
<h3>Usable "as is"</h3>
|
||||
|
||||
<blockquote>
|
||||
<p>That is the library should be usable directly from the
|
||||
checked out cvs tree, or the extracted zip file, without a
|
||||
mandatory install process.</p>
|
||||
<p><b>Rationale:</b> For single user installations it is
|
||||
sufficient and often easier to work directly from the zip/cvs
|
||||
structure.</p>
|
||||
<p><b>Rationale: </b>For "occasional developers"
|
||||
this simplifies their ability to port/debug parts of the
|
||||
library, and then submit patches based on changes made,
|
||||
without having to get involved with "wrapper compilers"
|
||||
and other tools that have been suggested, which may or may
|
||||
not function on their platform with their toolset.</p>
|
||||
<p><b>Implication:</b> that all header files are located
|
||||
together, and not split between multiple library paths.</p>
|
||||
<p><b>Comments:</b> during the recent discussion it was
|
||||
suggested splitting the header files into separate
|
||||
directories under "boost-root/src/libname/boost",
|
||||
however this involves specifying a large number of -I options
|
||||
on the command line in order to be able to use boost direct
|
||||
from the cvs tree. One suggested workaround was to use a
|
||||
wrapper-compiler to pass the long list of includes to the
|
||||
compiler semi-automatically. However some compilers are
|
||||
integrated with their respective IDE's (this would make boost
|
||||
almost impossible to use from that IDE), other platforms/compilers
|
||||
have a restricted command line length (mingw32 is a
|
||||
particular culprit), the command line in such cases could
|
||||
easily become longer than the maximum permitted.</p>
|
||||
</blockquote>
|
||||
|
||||
<h3>Header include mechanism reflects library name</h3>
|
||||
|
||||
<blockquote>
|
||||
<p>We currently use:</p>
|
||||
<p><code>#include <boost/something.hpp></code></p>
|
||||
<p>which immediately informs a casual browser of the code
|
||||
that something.hpp is a part of the boost library and
|
||||
separates it from:</p>
|
||||
<p><code>#include <rw/thread.h> // this is Rogue Wave
|
||||
library</code></p>
|
||||
<p><b>Rationale</b>: This has worked well up to now and
|
||||
should be continued.</p>
|
||||
<p><b>Implication</b>: The boost-root/boost/ directory must
|
||||
continue to exist (although there are possible arguments in
|
||||
favour of making it boost-root/include/boost).</p>
|
||||
</blockquote>
|
||||
|
||||
<h3>Libraries can have "non-end user" header files.</h3>
|
||||
|
||||
<blockquote>
|
||||
<p>There are several kinds of header that come into this
|
||||
category:</p>
|
||||
<blockquote>
|
||||
<p><b>Power user headers</b>: headers that should only be
|
||||
used by experts.</p>
|
||||
<p><b>Headers for library reuse</b>: these headers can be
|
||||
used by other boost libraries, but should not be used by
|
||||
end users.</p>
|
||||
<p><b>Domain specific headers</b>: large domain specific
|
||||
libraries may have a large number of headers that should
|
||||
not make it into the main boost-root/boost/ header
|
||||
directory (graph for example).</p>
|
||||
<p><b>Implementation headers</b>: libraries may have
|
||||
headers that contain implementation code, these headers
|
||||
should never be included by anything except other headers
|
||||
<i>in this library</i>.</p>
|
||||
</blockquote>
|
||||
<p><b>Implication: </b>the main header directory may contain
|
||||
sub-directories as follows:</p>
|
||||
<blockquote>
|
||||
<p>boost-root/boost/library-name/ for all non-end user
|
||||
headers, including domain specific headers.</p>
|
||||
<p>boost-root/boost/library-name/detail/ for all
|
||||
implementation detail headers.</p>
|
||||
</blockquote>
|
||||
</blockquote>
|
||||
|
||||
<h3>Libraries can be combined into domains</h3>
|
||||
|
||||
<blockquote>
|
||||
<p>For example we may want to combine multiple math-related
|
||||
libraries into a single "numeric" domain. In this
|
||||
case each library in the domain would have it's own directory
|
||||
under the domain name directory - for example headers for the
|
||||
rational library may end up in boost-root/boost/numeric/rational/.</p>
|
||||
<p><b>Rationale</b>: the aim here is to prevent the number of
|
||||
top level libraries growing to an unmanageable number, and to
|
||||
allow a logical group of libraries to be accessed with a
|
||||
single name (for cvs checkouts or for building part of boost).</p>
|
||||
</blockquote>
|
||||
|
||||
<h3>Root directory name reflects boost version</h3>
|
||||
|
||||
<blockquote>
|
||||
<p>That is the name of the root directory in the zip file
|
||||
reflects the boost version number "boost_1_1_9/"
|
||||
etc, subsequent directories - like the boost header file
|
||||
directory - then split off from this.</p>
|
||||
<p><b>Rationale: </b>Allows developers to have multiple
|
||||
versions coexisting on their machine within a single
|
||||
directory structure, developers can switch between versions
|
||||
with a by changing their compilers include and library search
|
||||
paths only.</p>
|
||||
</blockquote>
|
||||
|
||||
<h3>Consistent handling of development code</h3>
|
||||
|
||||
<blockquote>
|
||||
<p>If there exists development or non-reviewed code in the
|
||||
cvs tree then it should not interfere with release code or
|
||||
exist in the same directory tree as the release code. Nor
|
||||
should development code appear in zip files.</p>
|
||||
<p><b>Rationale</b>: developers will typically work with
|
||||
either the latest release code, or the latest development
|
||||
code, they should be able to switch between them fairly
|
||||
easily.</p>
|
||||
<p><b>Rationale</b>: end users don't generally need to see
|
||||
development code, it unnecessarily duplicates what's already
|
||||
in the library and may lead to confusion as to what's release
|
||||
code and what's still in development.</p>
|
||||
<p><b>Implication</b>: There are a couple of ways of dealing
|
||||
with this.</p>
|
||||
<blockquote>
|
||||
<p><b>Method 1</b>: provide a subdirectory "<code>boost-root/development/library-name/</code>"
|
||||
that internally mirrors the directory structure of <code>boost-root/</code>,
|
||||
to contain development code for library "library-name".
|
||||
This has the advantage of being easy to work with, but
|
||||
requires setting multiple include and library search
|
||||
paths, it also complicates multiple development versions
|
||||
of the same library (for example multiple ports to new
|
||||
platforms may proceed in parallel).</p>
|
||||
<p><b>Method 2</b>: provide a separate top-level CVS
|
||||
directory for development code, development code could
|
||||
then be checked out with "<code>cvs checkout
|
||||
development"</code> instead of "<code>cvs
|
||||
checkout boost"</code>, otherwise this method is the
|
||||
same as Method 1 above, and has the same pros and cons.</p>
|
||||
<p><b>Method 3</b>: use a cvs branch for development work.
|
||||
This allows multiple development efforts to proceed in
|
||||
parallel, but may be harder to work with and keep in
|
||||
synch with the main branch.</p>
|
||||
</blockquote>
|
||||
<p>Ideally<b> </b>I see no reason why either method 1 or 2
|
||||
can't coexist with method 3, depending which method is easier
|
||||
for the task in hand. Personally I prefer (2) to (1), but
|
||||
that's just personal preference.</p>
|
||||
</blockquote>
|
||||
|
||||
<h3>Mandatory Source code is centrally located</h3>
|
||||
|
||||
<blockquote>
|
||||
<p>That is that there is some central directory (let's call
|
||||
it boost-root/src/) that contains all mandatory source files
|
||||
for a particular library in its sub-directories: boost-root/src/library1/,
|
||||
boost-root/src/library2/ etc.</p>
|
||||
<p><b>Rationale: </b>This ensures that the source is easily
|
||||
discoverable by the user; for example if a user suspects that
|
||||
there may be a bug in library X, and decides to try and debug
|
||||
the problem, they may want to add all the source code for
|
||||
library X directly to their project to facilitate debugging.
|
||||
(I appreciate that the build process <i>may</i> provide
|
||||
debugging versions of the library, but it is still often
|
||||
easier to add the source direct to the IDE's project,
|
||||
depending upon how well the IDE handles debugging of external
|
||||
libraries).</p>
|
||||
<p><b>Rationale: </b>some IDE's have search paths for source
|
||||
files as well as headers etc, this structure shortens the
|
||||
paths to mandatory source files (this is more of a feature
|
||||
request than a requirement).</p>
|
||||
</blockquote>
|
||||
|
||||
<h3>Directories containing documentation contain an index.html
|
||||
file, and nothing but documentation</h3>
|
||||
|
||||
<blockquote>
|
||||
<p><b>Rationale</b>: Some file browsers (KFM for example)
|
||||
will automatically display documentation when they see either
|
||||
index.htm or index.html in the current directory. Any other
|
||||
files located in that directory effectively become "hidden"
|
||||
from the user. Whether this is an annoyance or a great
|
||||
feature depends upon your point of view. Separating
|
||||
documentation into it's own sub-directory solves this problem
|
||||
(it happens to make installation of the documentation easier
|
||||
as well).</p>
|
||||
<p><b>Footnote</b>: actually KFM is usually quite intelligent
|
||||
about displaying documentation, however it does sometimes get
|
||||
it wrong.</p>
|
||||
</blockquote>
|
||||
|
||||
<h3>Boost supports an integrated build process</h3>
|
||||
|
||||
<blockquote>
|
||||
<p><b>Rationale</b>: Currently most boost libraries are
|
||||
"headers only", those that are not have their own
|
||||
build processes or none at all. This is confusing for the end
|
||||
user, especially as boost is likely to get much larger.</p>
|
||||
</blockquote>
|
||||
|
||||
<h3>Boost supports building of separate sub-libraries</h3>
|
||||
|
||||
<blockquote>
|
||||
<p><b>Rationale</b>: Building boost as a single monolithic
|
||||
library is likely to put end users off - especially as boost
|
||||
grows in size - few users will use all of boost in a single
|
||||
project (even if they use all of it at some time or another).</p>
|
||||
<p><b>Implication</b>: Build each boost library separately
|
||||
using a consistent naming scheme incorporating the library
|
||||
name and the compiler name: libboost_timer_gcc.so, libboost_regex_gcc.so,
|
||||
lib_boost_thread_gcc.so etc. Provide a monolithic version of
|
||||
the library as an option for those that want a simple life (this
|
||||
is mainly more appropriate for static libraries where unused
|
||||
library code doesn't make it into the executable).</p>
|
||||
</blockquote>
|
||||
|
||||
<h3>Boost supports multiple compiler build options.</h3>
|
||||
|
||||
<blockquote>
|
||||
<p><b>Rationale</b>: some compilers ship with multiple run-time
|
||||
libraries. For example the Borland C++ compiler comes with 6
|
||||
different runtimes, any third party libraries must be built
|
||||
with the same runtime options as the executable to which it
|
||||
will be linked, failure to observe this rule leads to hard to
|
||||
track down runtime crashes.</p>
|
||||
<p><b>Implication</b>: boost libraries must each be built
|
||||
multiple times with the same runtime variants that the
|
||||
compiler ships with. As before name mangling separates the
|
||||
variants: </p>
|
||||
</blockquote>
|
||||
|
||||
<pre> boost_regex_bc55_cw.lib
|
||||
boost_regex_bc55_cwi.lib
|
||||
boost_regex_bc55_cwi.dll
|
||||
boost_regex_bc55_cwm.lib
|
||||
boost_regex_bc55_cwmi.lib
|
||||
boost_regex_bc55_cwmi.dll
|
||||
boost_regex_bc55_cp.lib
|
||||
boost_regex_bc55_cpi.lib
|
||||
boost_regex_bc55_cpi.dll</pre>
|
||||
|
||||
<blockquote>
|
||||
<p>(for non-Borland users the suffixes chosen here reflect
|
||||
the names of Borland's own runtime libraries).</p>
|
||||
</blockquote>
|
||||
|
||||
<h3>Boost's build system uses the minimal amount of meta-data
|
||||
required.</h3>
|
||||
|
||||
<blockquote>
|
||||
<p><b>Rationale</b>: some meta-data is likely to be required,
|
||||
but to reduce maintenance requirements this should be as
|
||||
small as possible. Generally speaking the smaller the meta-data
|
||||
requirement the more likely it is that the build system is in
|
||||
synch with the library. The worst case would be hand-crafted
|
||||
makefiles (hard to maintain), the best case no meta-data at
|
||||
all; for example the directory structure describes the
|
||||
library well enough that makefiles (or their equivalent) can
|
||||
be automatically generated.</p>
|
||||
</blockquote>
|
||||
|
||||
<h3>Boost supports installation to a central location</h3>
|
||||
|
||||
<blockquote>
|
||||
<p><b>Rationale</b>: most unix variants more or less require
|
||||
an install step before using third party libraries, this also
|
||||
allows network installs (for multiple compilers and/or
|
||||
platforms if required), from a single source tree.</p>
|
||||
</blockquote>
|
||||
|
||||
<blockquote>
|
||||
<p><b>Implication</b>: Keep the boost directory structure as
|
||||
close as possible to the install structure to simplify the
|
||||
installation process (strictly speaking this is not an
|
||||
absolute requirement, but cross-platform installation is hard
|
||||
enough with making it any harder than it needs to be). The
|
||||
easiest way is to keep the documentation/header/build trees
|
||||
separate.</p>
|
||||
</blockquote>
|
||||
|
||||
<h3>The boost directory structure should be "optimally
|
||||
branched"</h3>
|
||||
|
||||
<blockquote>
|
||||
<p>This is a nebulous requirement that is based as much on
|
||||
personal preference as anything else.</p>
|
||||
<p><b>Rationale</b>: the directory structure is more "discoverable"
|
||||
if it branches consistently - that is with no directories
|
||||
with a massive number of entries.</p>
|
||||
<p><b>Implication</b>: where appropriate combine related
|
||||
libraries into domains.</p>
|
||||
<p><b>Implication</b>: avoid directories with a single sub-directory
|
||||
entry (redundancy).</p>
|
||||
</blockquote>
|
||||
|
||||
<h2 align="center">Proposed tools to aid boost management (build
|
||||
system)</h2>
|
||||
|
||||
<p>While writing the requirements above one theme kept
|
||||
reoccurring; that of interdependency of boost libraries, and the
|
||||
need for an automated tool to deal with this problem. In fact
|
||||
from a code-reuse point of view, we need a library that describes
|
||||
the boost library and determines library dependencies that can
|
||||
then be reused in multiple tools. In my view the gains in ease of
|
||||
management, and automatic generation of makefiles etc, means that
|
||||
these tools should be developed regardless of the actual
|
||||
directory structure chosen (although the code will probably be
|
||||
dependent upon the directory structure chosen).</p>
|
||||
|
||||
<h3>Dependency library</h3>
|
||||
|
||||
<blockquote>
|
||||
<p>This library would define two types:</p>
|
||||
<p><b>Library</b>: defines the files that belong to a
|
||||
particular library, plus header file dependencies and a list
|
||||
of binary dependencies to other boost libraries.</p>
|
||||
<p><b>Libraries</b>: a collection of Library objects, also
|
||||
maintains a database of which header belongs to which library
|
||||
(used to calculate binary dependencies).</p>
|
||||
<p>As far as is possible, these types should be able to load
|
||||
themselves directly from the boost directory structure, with
|
||||
only a minimal amount of meta-data used to describe the
|
||||
unusual cases.</p>
|
||||
</blockquote>
|
||||
|
||||
<h3>Paths library</h3>
|
||||
|
||||
<p>In order for the dependency library to do it's job it is
|
||||
necessary to iterate over a directory structure, join and split
|
||||
path names, and convert path names to/from a platform specific
|
||||
format. For example to insert relative-paths into makefiles which
|
||||
may be used on platforms other than the one on which the makefile
|
||||
is generated. Some, but by no means all, of this functionality is
|
||||
already covered by Dietmar Kühl's dir_it library.</p>
|
||||
|
||||
<h3>Automatic alias generation</h3>
|
||||
|
||||
<p>This is a short program that just iterates through a Libraries
|
||||
collection and prints out the dependencies, so that the result
|
||||
can be cut and pasted into the cvs modules file.</p>
|
||||
|
||||
<h3>Boost distiller</h3>
|
||||
|
||||
<p>This is almost the same program as the alias generator, but
|
||||
copies files to a new location instead of printing them out. Used
|
||||
to "distil" out a subset of the boost library (including
|
||||
dependencies). This can be used to: split boost into multiple (domain
|
||||
specific) zip files for easier download, or split out that subset
|
||||
of boost that is being used by a particular project (for
|
||||
integration with the project without getting the whole of boost).</p>
|
||||
|
||||
<h3>Build system</h3>
|
||||
|
||||
<p>By combining the description of the boost library contained in
|
||||
a Libraries object with a description of the compiler/platform in
|
||||
use, it is possible to do one of two things: directly build the
|
||||
library, or output compiler/platform specific makefiles for
|
||||
distribution with boost. For brevity I'm going to skip over a
|
||||
description of this here - my pencil and paper sketch has a list
|
||||
of around 14 points of variation between compilers, and another
|
||||
list of 7 options for each compiler configuration (release, debug,
|
||||
static, dynamic etc). Probably even this fairly long list is not
|
||||
complete.</p>
|
||||
|
||||
<p>I'm assuming that the build system will probably output
|
||||
makefiles in the first instance; apart from anything else, most
|
||||
compilers come with some kind of make, using this avoids the need
|
||||
for the end user to have to build/install any tools that do not
|
||||
ship with their compiler. Here I'm assuming that the boost
|
||||
library maintainers periodically generate the makefiles, and then
|
||||
ship them with the library.</p>
|
||||
|
||||
<h2 align="center">The directory structure</h2>
|
||||
|
||||
<table border="0" cellpadding="7" cellspacing="1" width="100%">
|
||||
<tr>
|
||||
<td valign="top" width="6%"> </td>
|
||||
<td valign="top" width="44%" bgcolor="#008080">Directory</td>
|
||||
<td valign="top" width="43%" bgcolor="#008080">Description</td>
|
||||
<td valign="top" width="7%"> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="top" width="6%"> </td>
|
||||
<td valign="top" width="44%" bgcolor="#C0C0C0">Boost-root/boost/</td>
|
||||
<td valign="top" width="43%" bgcolor="#C0C0C0">All entry
|
||||
point boost headers, mainly these should be called "library-name.hpp"</td>
|
||||
<td valign="top" width="7%"> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="top" width="6%"> </td>
|
||||
<td valign="top" width="44%" bgcolor="#C0C0C0">Boost-root/boost/library-name/</td>
|
||||
<td valign="top" width="43%" bgcolor="#C0C0C0">All domain
|
||||
specific headers, all "expert-user" non-entry
|
||||
point headers.</td>
|
||||
<td valign="top" width="7%"> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="top" width="6%"> </td>
|
||||
<td valign="top" width="44%" bgcolor="#C0C0C0">Boost-root/boost/library-name/detail/</td>
|
||||
<td valign="top" width="43%" bgcolor="#C0C0C0">All
|
||||
implementation private headers.</td>
|
||||
<td valign="top" width="7%"> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="top" width="6%"> </td>
|
||||
<td valign="top" width="44%" bgcolor="#C0C0C0">Boost-root/src/library-name/</td>
|
||||
<td valign="top" width="43%" bgcolor="#C0C0C0">All
|
||||
mandatory source files.</td>
|
||||
<td valign="top" width="7%"> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="top" width="6%"> </td>
|
||||
<td valign="top" width="44%" bgcolor="#C0C0C0">Boost-root/src/library-name/config/</td>
|
||||
<td valign="top" width="43%" bgcolor="#C0C0C0">Any
|
||||
private configuration code (for example autoconf scripts),
|
||||
if these grow then we could move to an integrated
|
||||
configure system in Boost-root/config/ but that isn't
|
||||
currently necessary.</td>
|
||||
<td valign="top" width="7%"> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="top" width="6%"> </td>
|
||||
<td valign="top" width="44%" bgcolor="#C0C0C0">Boost-root/src/library-name/build/</td>
|
||||
<td valign="top" width="43%" bgcolor="#C0C0C0">Temporary
|
||||
location for private build systems, until the boost-wide
|
||||
integrated build comes on line.</td>
|
||||
<td valign="top" width="7%"> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="top" width="6%"> </td>
|
||||
<td valign="top" width="44%" bgcolor="#C0C0C0">Boost-root/docs/</td>
|
||||
<td valign="top" width="43%" bgcolor="#C0C0C0">All common
|
||||
documentation.</td>
|
||||
<td valign="top" width="7%"> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="top" width="6%"> </td>
|
||||
<td valign="top" width="44%" bgcolor="#C0C0C0">Boost-root/docs/library-name/</td>
|
||||
<td valign="top" width="43%" bgcolor="#C0C0C0">All
|
||||
documentation for "library-name"; must include
|
||||
an index.htm file.</td>
|
||||
<td valign="top" width="7%"> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> </td>
|
||||
<td valign="top" bgcolor="#C0C0C0">Boost-root/licence</td>
|
||||
<td bgcolor="#C0C0C0">A "generic" boost licence
|
||||
that describes the minimal guarantees made by all boost
|
||||
libraries (free for commercial use etc), with sub-directories
|
||||
for those boost libraries that have their own licences (currently
|
||||
just regex and graph, but this number is likely to grow).</td>
|
||||
<td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="top" width="6%"> </td>
|
||||
<td valign="top" width="44%" bgcolor="#C0C0C0">Boost-root/tests/library-name/</td>
|
||||
<td valign="top" width="43%" bgcolor="#C0C0C0">All test
|
||||
programs for "library-name". These may be
|
||||
either: a single (multi-file) test program, multiple
|
||||
single file test programs, or multiple sub-directories (one
|
||||
for each test program).</td>
|
||||
<td valign="top" width="7%"> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="top" width="6%"> </td>
|
||||
<td valign="top" width="44%" bgcolor="#C0C0C0">Boost-root/examples/library-name/</td>
|
||||
<td valign="top" width="43%" bgcolor="#C0C0C0">All
|
||||
example programs for "library-name". These may
|
||||
be either: a single (multi-file) example program,
|
||||
multiple single file example programs, or multiple sub-directories
|
||||
(one for each example program).</td>
|
||||
<td valign="top" width="7%"> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="top" width="6%"> </td>
|
||||
<td valign="top" width="44%" bgcolor="#C0C0C0">Boost-root/tools/tool-name/</td>
|
||||
<td valign="top" width="43%" bgcolor="#C0C0C0">Contains
|
||||
all files required to build and use the specified tool (makefile
|
||||
generators etc).</td>
|
||||
<td valign="top" width="7%"> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="top" width="6%"> </td>
|
||||
<td valign="top" width="44%" bgcolor="#C0C0C0">Boost-root/build/</td>
|
||||
<td valign="top" width="43%" bgcolor="#C0C0C0">The boost
|
||||
build system. Consists of a collection of makefiles (one
|
||||
for each supported compiler), plus subdirectories: libs/
|
||||
for built libraries, bin/ for built dll's (win32 only)
|
||||
and obj/ for object files.</td>
|
||||
<td valign="top" width="7%"> </td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p>There are a couple of myths surrounding this structure that
|
||||
need exploding:</p>
|
||||
|
||||
<h4>It is hard to check in new libraries to the cvs repository</h4>
|
||||
|
||||
<p>Not true: if the submission arrives as a zip file containing
|
||||
the directory structure described above, then the command:</p>
|
||||
|
||||
<p><code>cvs import boost library-name library-name-sub</code></p>
|
||||
|
||||
<p>will import the whole of the <i>current</i> directory tree and
|
||||
"intermingle" it with the existing boost tree in the
|
||||
repository.</p>
|
||||
|
||||
<p>There is one caveat to this however: if the imported source
|
||||
contains some files that were already in the boost directory tree
|
||||
(probably not a common situation), then an additional merge and
|
||||
resolve conflicts step arises:</p>
|
||||
|
||||
<p>On the main branch working copy:</p>
|
||||
|
||||
<p><code>cvs checkout -jlibrary-name-sub boost</code></p>
|
||||
|
||||
<p>Resolve any conflicts, and then:</p>
|
||||
|
||||
<p><code>cvs commit</code></p>
|
||||
|
||||
<p>The latter two steps should not be necessary in most cases,
|
||||
and occur whatever directory structure is used (it is probably
|
||||
easier in most cases to resolve such conflicts manually before
|
||||
importing the new sources).</p>
|
||||
|
||||
<h4>It is hard to checkout or to commit individual boost
|
||||
libraries.</h4>
|
||||
|
||||
<p>By using cvs aliases (defined in the modules file) this
|
||||
situation does not arise, just specify the module/alias name when
|
||||
performing a checkout/commit.</p>
|
||||
|
||||
<h2 align="center">Migrating to the new structure</h2>
|
||||
|
||||
<p>This is probably the hardest and most painful part of the
|
||||
whole process. I'm going to suggest a migration method as follows:</p>
|
||||
|
||||
<ol>
|
||||
<li>Instigate a moratorium on cvs commits.</li>
|
||||
<li>Copy the files to the new structure and commit the
|
||||
changes, leaving the boost-root/libs/ directory in place
|
||||
for now.</li>
|
||||
<li>Fix html links, and documentation descriptions of file
|
||||
locations.</li>
|
||||
<li>Fix any library specific scripts/makefiles.</li>
|
||||
<li>Publish the new structure (as a zip-file beta
|
||||
distribution) and ask boost users/authors to check that
|
||||
everything looks OK.</li>
|
||||
<li>Delete the boost-root/libs/ directory (actually this is
|
||||
quite hard, as cvs has no method for removing whole
|
||||
directory trees).</li>
|
||||
<li>Lift the moratorium on changes.</li>
|
||||
<li>Publish the next boost revision with the new structure.</li>
|
||||
</ol>
|
||||
|
||||
<p>The whole process described above is quite likely to take 1-2
|
||||
weeks, during which no changes can be committed; this is going to
|
||||
require a fair amount of co-ordination between developers (actually
|
||||
this applies to any major change to the directory structure,
|
||||
irrespective of what the change is).</p>
|
||||
|
||||
<p>You will note that I haven't mentioned a time scale for the
|
||||
associated tools that I have suggested, probably these will need
|
||||
to be developed after the directory structure changes - although
|
||||
I believe it is possible to develop a minimal subset (the library
|
||||
description and alias generator) before making the changes if
|
||||
that is required.</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p>There were a couple of other directory structures that were
|
||||
evaluated while preparing this document:</p>
|
||||
|
||||
<p><i>The "half way house structure":</i></p>
|
||||
|
||||
<p>This is the same as the current structure, but moves mandatory
|
||||
source files to boost-root/src/libname. This is easier to migrate
|
||||
to from the current structure, but was felt to be neither one
|
||||
thing nor the other.</p>
|
||||
|
||||
<p><i>The "skinny root structure":</i></p>
|
||||
|
||||
<p>This was proposed by John David, and Lois Goldthwaite, and
|
||||
moves the contents of the current boost-root/libs/ directory into
|
||||
boost-root/boost/. My main objection to this proposal is that it
|
||||
is less "discoverable" than the one presented here - my
|
||||
immediate reaction was "where has everything gone" - I
|
||||
also dislike mixing headers and non-headers in the same tree.
|
||||
However I'm prepared to accept that this could just be due to
|
||||
personal bias.</p>
|
||||
|
||||
<h2 align="center">Acknowledgements</h2>
|
||||
|
||||
<p>The following people have had their ideas reused,
|
||||
reconstituted and reformulated :-)</p>
|
||||
|
||||
<p>Beman Dawes, Ed Brey, Walter E. Brown, John (EBo) David, Jeff
|
||||
Garland, Lois Goldthwaite, Jens Maurer, Jeff Squyres, Gary Powell
|
||||
and Daryle Walker.</p>
|
||||
|
||||
<p>
|
||||
<hr>
|
||||
<p>
|
||||
|
||||
<h2 align="center">An Alternative Directory Structure</h2>
|
||||
|
||||
<p align="center">By Jens Maurer</p>
|
||||
|
||||
I favor the following structure, which puts different emphasis on the
|
||||
some of the requirements.
|
||||
|
||||
<p>
|
||||
|
||||
<table border="1">
|
||||
|
||||
<tr>
|
||||
<th>Directory</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Boost-root/include/boost/</td>
|
||||
<td>All entry-point boost headers, mainly these should be called
|
||||
"library-name.hpp".</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Boost-root/include/boost/.../</td>
|
||||
<td>Domain-specific subdirectory; the "..." can be empty or
|
||||
arbitrarily nested while observing the "optimally branched"
|
||||
requirement.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Boost-root/include/boost/.../library-name/</td>
|
||||
<td>All domain-specific headers, all "expert-user" non-entry point
|
||||
headers.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Boost-root/include/boost/.../library-name/detail/</td>
|
||||
<td>All implementation private headers.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Boost-root/libs/.../</td>
|
||||
<td>Main directory for a given subdomain; the "..." can be empty or
|
||||
arbitrarily nested while observing the "optimally branched"
|
||||
requirement. The "..." must correspond to some "..." in the header
|
||||
tree. The directory should contain a "index.html" which links to all
|
||||
libraries and subdomains contained.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Boost-root/libs/.../library-name/</td>
|
||||
<td>Main directory for a given library.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Boost-root/libs/.../library-name/src/</td>
|
||||
<td>All mandatory source files for the library.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Boost-root/libs/.../library-name/build/</td>
|
||||
<td>Temporary location for private build system, until the boost-wide
|
||||
integrated build becomes available.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Boost-root/libs/.../library-name/config/</td>
|
||||
<td>Any private configuration code (for example, autoconf
|
||||
scripts).</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Boost-root/libs/.../library-name/doc/</td>
|
||||
<td>All documentation for the library.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Boost-root/libs/.../library-name/test/</td>
|
||||
<td>All regression tests for the library, suitable for the regression
|
||||
test suite. Due to test execution time constraints, not all of the tests
|
||||
may actually be added to "regression.cfg".</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Boost-root/libs/.../library-name/example/</td>
|
||||
<td>All example programs for "library-name". These may be either: a
|
||||
single (multi-file) example program, multiple single file example
|
||||
programs, or multiple sub-directories (one for each example
|
||||
program).</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Boost-root/tools/tool-name/</td>
|
||||
<td>Contains all files required to build and use the specified tool
|
||||
(makefile generators etc).</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Boost-root/build</td>
|
||||
<td>The boost build system (user front-end; tools go in the "tools"
|
||||
hierarchy). Details still hazy.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Boost-root/more/license.html</td>
|
||||
<td>A "generic" boost license that describes the minimal guarantee
|
||||
provided by all boost libraries. This should get a prominent link on
|
||||
the main boost page.</td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
|
||||
<p>
|
||||
Note that the "include" path component contains only one subdirectory
|
||||
"boost" and thus violates the "optimally branched" requirement. It
|
||||
helps with discoverability, though, because people know what to expect
|
||||
under any directory named "include", i.e. header files.
|
||||
|
||||
</body>
|
||||
</html>
|
||||
+1
-1
Submodule libs/any updated: 3f5bf4a199...534730c48e
+1
-1
Submodule libs/array updated: b87433497e...87fa92864f
+1
-1
Submodule libs/bind updated: b1bfd36270...18f4f3e721
+1
-1
Submodule libs/compatibility updated: 1235f5192d...9666f8727d
+1
-1
Submodule libs/compose updated: becadf3a9e...09debc0bd9
+1
-1
Submodule libs/concept_check updated: 9541fc6e06...07fec6e1e4
+1
-1
Submodule libs/config updated: d1c3bf73de...5d0d3b9c01
+1
-1
Submodule libs/conversion updated: 23e5f7cca3...c35f326490
+1
-1
Submodule libs/crc updated: 60d80ae3f1...5bebfcae2e
+1
-1
Submodule libs/detail updated: d9d6a970cf...e7c3036c12
+1
-1
Submodule libs/disjoint_sets updated: cd6f878fb0...06f94a9025
+1
-1
Submodule libs/function updated: 57ee7e962a...93e507526a
+1
-1
Submodule libs/functional updated: 3ad2408d42...537e765313
+1
-1
Submodule libs/graph updated: 1efa4097a2...d704ebba95
+1
-1
Submodule libs/integer updated: 41620a14f9...3de830b913
+1
-1
Submodule libs/io updated: 9a7bf6c9c4...9ddcf54e1c
+1
-1
Submodule libs/iterator updated: 3844edc4bf...4fbf41e5aa
+1
-1
Submodule libs/lambda updated: fcf0d30c4e...f31a02bbf4
Submodule
+1
Submodule libs/log added at 6a032b633e
+1
-1
Submodule libs/math updated: 842399c620...b24f030e68
-1
Submodule libs/mpl deleted from 2f7aa1c0ba
+1
-1
Submodule libs/pool updated: 495b540e05...444fc0a19e
+1
-1
Submodule libs/preprocessor updated: bf45543e2f...32116d3705
+1
-1
Submodule libs/property_map updated: 247ecc439a...457fe73930
+1
-1
Submodule libs/python updated: 09046c53ef...4835a84482
+1
-1
Submodule libs/random updated: 78e4693e75...5209313207
+1
-1
Submodule libs/rational updated: 16acf13b51...5b893bb965
+1
-1
Submodule libs/regex updated: 8d8a209d8b...d70ff7e20d
+1
-1
Submodule libs/smart_ptr updated: ecb0b4478b...d8a29ca735
+1
-1
Submodule libs/static_assert updated: 22bb032a79...177bdd98ad
+1
-1
Submodule libs/test updated: 8f26f55b9e...b440a02975
+1
-1
Submodule libs/thread updated: 7ba4fc4aed...0d3eb714b6
+1
-1
Submodule libs/timer updated: f3942aa8ef...17b1dfe79d
+1
-1
Submodule libs/tokenizer updated: 05420f1e8b...aa874be999
+1
-1
Submodule libs/tuple updated: 08be3cbe04...86502276c3
+1
-1
Submodule libs/type_traits updated: 390fc256eb...66c27914d8
+1
-1
Submodule libs/utility updated: 333d79b345...3ce98c0cfd
@@ -46,8 +46,12 @@ will let you know.</p>
|
||||
<li>Requests for help interpreting the C++ standard. Try the comp.std.c++
|
||||
newsgroup instead.</li>
|
||||
<li>Job offers.</li>
|
||||
<li>Requests for solutions to homework assignments
|
||||
</ul>
|
||||
<li>Requests for solutions to homework assignments.</ul>
|
||||
<h2>Message size</h2>
|
||||
<p>The mailing list software automatically limits message and attachment size to
|
||||
a reasonable amount, typically 75K, which is adjusted from time-to-time by the
|
||||
moderators.. This limit is a courtesy to those who rely on dial-up Internet
|
||||
access.</p>
|
||||
<h2>Prohibited behavior</h2>
|
||||
<p>Prohibited behavior will not be tolerated. The moderators will ban
|
||||
postings by abusers.</p>
|
||||
@@ -114,9 +118,9 @@ spent discussing where to put the bicycle shed (the parking lot would
|
||||
be a modern equivalent) because everyone
|
||||
understood the issues and felt comfortable discussing them. </p>
|
||||
<hr>
|
||||
<p>Revised <!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->25 January, 2002<!--webbot bot="Timestamp" i-checksum="38448" endspan -->
|
||||
<p>Revised <!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->13 May, 2002<!--webbot bot="Timestamp" i-checksum="13969" endspan -->
|
||||
</p>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
</html>
|
||||
+35
-20
@@ -102,33 +102,48 @@ CVS write access, please contact one of the
|
||||
|
||||
<h3>CVS <a name="Browser">Browser</a> access via WebCVS</h3>
|
||||
|
||||
For access to the CVS archive from any modern web browser, you can also use the <a href="http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/boost/boost/">web
|
||||
browser interface</a>. Try one of the color diffs to see how a file
|
||||
has changed over time.
|
||||
For access to the CVS archive from any modern web browser, you can
|
||||
also use the <a
|
||||
href="http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/boost/boost/">web
|
||||
browser interface</a>. Try one of the color diffs to see
|
||||
how a file has changed over time.
|
||||
|
||||
|
||||
|
||||
<h2><a name="Installation">Installation</a></h2>
|
||||
|
||||
Many boost libraries are implemented entirely within their header
|
||||
files. The only preparation for their use is to add the path for the
|
||||
parent directory of the boost headers sub-directory to your compiler's
|
||||
list of <code>#include</code> search directories.
|
||||
<p>
|
||||
For example, using Windows 2000, if you have unzipped release 1.20.2
|
||||
from boost_all.zip into the top level directory of your C drive, for
|
||||
Borland, GCC, and Metrowerks compilers add '-Ic:/boost_1_20_2' to the
|
||||
compiler command line, and for the Microsoft compiler add '/I
|
||||
"c:/boost_1_20_2"'. For IDE's, add 'c:/boost_1_20_2' (or whatever you
|
||||
have renamed it to) to the search list using the appropriate GUI
|
||||
dialog.
|
||||
Boost does not yet have a standardized installation process. There has
|
||||
been some interest in developing one; as of this writing <a
|
||||
href="../people/william_kempf.htm">Bill Kempf</a> has volunteered to
|
||||
coordinate and is gathering volunteers. If you have expertise in this
|
||||
area (particularly cross-platform expertise), and you would like to
|
||||
contribute, please announce your availability on the
|
||||
<a
|
||||
href="http://lists.boost.org/mailman/listinfo.cgi/boost-install">Boost
|
||||
Install</a> mailing list.
|
||||
|
||||
<p>
|
||||
Some Boost libraries are implemented as separate source files, and
|
||||
thus require compilation into object libraries before any use. See <a href="../tools/build/index.html">Building
|
||||
Boost Libraries</a> for an automatic tool to prepare such libraries.
|
||||
Some of the individual libraries also include make and/or project files
|
||||
for various compilers, but these will become obsolete as Boost.Build matures..
|
||||
|
||||
That said, preparing to use Boost in a development project is
|
||||
relatively straightforward. Most boost libraries are implemented
|
||||
entirely within their header files. The only preparation for their
|
||||
use is to add the boost root directory to your compiler's list of
|
||||
<code>#include<...></code> search paths. For example,
|
||||
using Windows 2000, if you have unzipped release 1.28.0 from
|
||||
boost_all.zip into the top level directory of your C drive, adding
|
||||
'-Ic:/boost_1_28_0' to the command line of most compilers is
|
||||
sufficient.
|
||||
|
||||
<p>
|
||||
The <a href="../libs/python/doc/index.html">Python</a>, <a
|
||||
href="../libs/regex/index.htm">Regex</a>, and <a
|
||||
href="../libs/thread/doc/index.html">Threads</a> libraries are
|
||||
implemented in part as separate source files, and thus require
|
||||
compilation before use. See <a
|
||||
href="../tools/build/index.html">Building Boost Libraries</a> for an
|
||||
automatic tool to prepare such libraries. Some of the individual
|
||||
libraries also include make and/or project files for various
|
||||
compilers, but every library also
|
||||
<p>
|
||||
|
||||
<hr>
|
||||
|
||||
@@ -122,6 +122,9 @@ there is consensus to accept the library, and if there are any conditions
|
||||
<p>In other words, it is the Review Manager's responsibility to make sure the
|
||||
review process works smoothly.</p>
|
||||
<h2>Notes for Library <a name="Submitters">Submitters</a></h2>
|
||||
<p>See <a href="submission_process.htm">Submission Process</a> for a description
|
||||
of the steps a library developer goes through to get a library accepted by
|
||||
Boost.</p>
|
||||
<p>A proposed library should remain stable during the review period; it will just
|
||||
confuse and irritate reviewers if there are numerous changes. It
|
||||
is, however, useful to upload fixes for serious bugs right away, particularly
|
||||
@@ -129,12 +132,8 @@ those which prevent reviewers from fully evaluating the library. Post a
|
||||
notice of such fixes on the mailing list.</p>
|
||||
<p>Library improvements suggested by reviewers should normally be held until
|
||||
after the completion of review period. If the suggested
|
||||
changes might affect reviewer's judgments, post a notice of the pending
|
||||
changes might affect reviewer's judgments, post a notice of the pending
|
||||
change on the mailing list.</p>
|
||||
<p>Once an accepted library is ready for inclusion on the Boost web site, the
|
||||
submitter is typically given Boost CVS write access, and expected to check-in
|
||||
and maintain the library in the CVS. Contact the moderators if you need write
|
||||
access or CVS use isn't possible for you.</p>
|
||||
<h2>Review <a name="Wizard">Wizard</a></h2>
|
||||
<p>The Review Wizard coordinates the formal review schedule:</p>
|
||||
<ul>
|
||||
@@ -161,7 +160,7 @@ access or CVS use isn't possible for you.</p>
|
||||
</ul>
|
||||
<hr>
|
||||
<p>Revised
|
||||
<!--webbot bot="Timestamp" s-type="EDITED" s-format="%d %B, %Y" startspan -->08 May, 2002<!--webbot bot="Timestamp" endspan i-checksum="13978" --></p>
|
||||
<!--webbot bot="Timestamp" s-type="EDITED" s-format="%d %B, %Y" startspan -->13 May, 2002<!--webbot bot="Timestamp" endspan i-checksum="13969" --></p>
|
||||
<p> </p>
|
||||
|
||||
</body>
|
||||
|
||||
+43
-17
@@ -20,19 +20,21 @@
|
||||
</tr>
|
||||
</table>
|
||||
<h1>Boost Mailing Lists</h1>
|
||||
<p>The mailing lists are the heart of the Boost community. You may read
|
||||
the lists via full-content email, email digests, or online via a web browser.
|
||||
Access via newsgroup (NNTP) is also provided.</p>
|
||||
<p>The <a
|
||||
href="http://lists.boost.org/mailman/listinfo.cgi/boost">main list</a>
|
||||
and its <a href="http://lists.boost.org/MailArchives/boost">archives</a>
|
||||
are maintained at the Open Systems Lab at Indiana University. The
|
||||
other lists are maintained via the <a
|
||||
href="http://www.yahoogroups.com">YahooGroups</a> mailing list
|
||||
service. See their <a
|
||||
href="http://help.yahoo.com/help/groups/">Help</a> pages for general
|
||||
support information.</p>
|
||||
<h2><a name="main">Boost</a> mailing list (also available via newsgroup)</h2>
|
||||
<p><a href="#main">Boost developers list</a><br>
|
||||
<a href="#archive">Archive for the Boost developers list</a><br>
|
||||
<a href="#users">Boost Users list</a><br>
|
||||
<a href="#announce">Boost Announce list</a></p>
|
||||
|
||||
<p>The mailing lists are the heart of the Boost community. You may read
|
||||
the lists via full-content email, email digests, or via newsgroup reader.</p>
|
||||
|
||||
<p>Hosting for the mailing lists is donated by the
|
||||
<a href="http://www.osl.iu.edu/">Open Systems Lab at Indiana University</a>.</p>
|
||||
<p>Access to Boost mailing lists via newsgroup (NNTP) is contributed by
|
||||
<a href="http://www.gmane.org/">GMANE</a>.</p>
|
||||
|
||||
<h2><a name="main">Boost</a> developers mailing list (also available via newsgroup)</h2>
|
||||
|
||||
<p>This is the main Boost mailing list. It is high volume (over 1000
|
||||
messages per month), very technical, and oriented toward Boost library
|
||||
developers. It is also read by many other members interested in watching the
|
||||
@@ -42,34 +44,58 @@ list. It is where the formal reviews of proposed libraries take place.
|
||||
Subscribe or unsubscribe at
|
||||
<a href="http://lists.boost.org/mailman/listinfo.cgi/boost">
|
||||
http://lists.boost.org/mailman/listinfo.cgi/boost</a></p>
|
||||
|
||||
<p>When we talk about the "members of Boost", we are talking about
|
||||
those signed up for this main mailing list.</p>
|
||||
|
||||
<p>For those who prefer to participate via an NNTP (<a name="newsgroup">newsgroup</a>) interface, a
|
||||
gateway to the Boost mailing list is available at
|
||||
<a href="news://news.gmane.org/gmane.comp.lib.boost.devel">
|
||||
news://news.gmane.org/gmane.comp.lib.boost.devel</a>. Postings to the newsgroup
|
||||
will only be accepted for the mailing list if from a
|
||||
<a href="http://lists.boost.org/mailman/listinfo.cgi/boost">subscribed</a> email
|
||||
address.</p>
|
||||
<a
|
||||
href="http://lists.boost.org/mailman/listinfo.cgi/boost">subscribed</a>
|
||||
email address, though you can configure your subscription settings to disable
|
||||
mail delivery if you prefer to read messages via the newsgroup.</p>
|
||||
|
||||
<p>For this list's members only, preliminary libraries under discussion are
|
||||
available from the YahooGroups <a href="http://www.yahoogroups.com/files/boost/">Files
|
||||
section</a> (formerly called the "vault").</p>
|
||||
<h2>Boost <a name="users">Users</a> mailing list</h2>
|
||||
|
||||
<h3><a name="archive">Archive</a> for Boost developers list </h3>
|
||||
|
||||
<p>A searchable <a href="http://aspn.activestate.com/ASPN/Mail/Archives/boost/">
|
||||
mailing list archive</a> has been generously contributed to
|
||||
the <a href="http://aspn.activestate.com">ActiveState Programmer
|
||||
Network</a> by <a href="http://aspn.activestate.com">ActiveState Corporation</a>.
|
||||
<a href="http://aspn.activestate.com">
|
||||
<img align="top"
|
||||
src="http://www.activestate.com/img/ASPN_logo_smallest.gif" width="65" height="20"></a><a href="http://www.activestate.com"><img align="top"
|
||||
src="http://aspn.activestate.com/ASPN/img/ASLogo_57x25.gif" width="57" height="25"></a>
|
||||
</p>
|
||||
|
||||
<h2>Boost <a name="users">Users</a> mailing list (also available via newsgroup)</h2>
|
||||
|
||||
<p>This list is oriented toward casual users of the Boost libraries. Feel
|
||||
free to post both "newbie" and more challenging questions. This
|
||||
list is relatively low volume (less than 100 per month). Subscribe or unsubscribe
|
||||
at the <a href="http://groups.yahoo.com/group/Boost-Users">Boost Users list home page</a>.</p>
|
||||
|
||||
<p>For those who prefer to participate via an NNTP (<a name="newsgroup">newsgroup</a>) interface, a
|
||||
gateway to the Boost mailing list is available at
|
||||
<a href="news://news.gmane.org/gmane.comp.lib.boost.user">
|
||||
news://news.gmane.org/gmane.comp.lib.boost.user</a>.</p>
|
||||
|
||||
<h2>Boost <a name="announce">Announce</a> mailing list</h2>
|
||||
|
||||
<p>This is an announce-only list for notification of upcoming software releases
|
||||
and formal reviews of proposed libraries. One to three messages per month.
|
||||
Subscribe or unsubscribe at the <a href="http://groups.yahoo.com/group/boost-announce">Boost
|
||||
Announce list home page</a>.</p>
|
||||
|
||||
<hr>
|
||||
<p>Revised <!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->06 May, 2002<!--webbot bot="Timestamp" endspan i-checksum="13974" -->
|
||||
<p>Revised
|
||||
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->15 May, 2002<!--webbot bot="Timestamp" endspan i-checksum="13973" -->
|
||||
</p>
|
||||
|
||||
</body>
|
||||
|
||||
+21
-22
@@ -2,7 +2,7 @@
|
||||
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
|
||||
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
|
||||
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
|
||||
<meta name="ProgId" content="FrontPage.Editor.Document">
|
||||
<title>Boost Library Submission Process</title>
|
||||
</head>
|
||||
@@ -20,9 +20,8 @@
|
||||
</tr>
|
||||
</table>
|
||||
<h1>Boost Library Submission Process</h1>
|
||||
<p>This page describes the process of getting a library accepted by Boost.
|
||||
The process is still evolving, so if you have suggestions for improvement by all
|
||||
means post them on the mailing list.</p>
|
||||
<p>This page describes the process a library developer goes through to get a
|
||||
library accepted by Boost.</p>
|
||||
<p>See the <a href="lib_guide.htm">Boost Library Requirements and Guidelines</a>
|
||||
page for issues of content.</p>
|
||||
<h3><b>Steps for getting a library accepted by Boost:</b></h3>
|
||||
@@ -39,7 +38,7 @@ page for issues of content.</p>
|
||||
</ul>
|
||||
<h2><a name="Learn">Learn</a> about Boost</h2>
|
||||
<p>Subscribe to the <a href="../index.htm#Mailing List">mailing list</a> for a
|
||||
while, or look through the <a href="http://www.yahoogroups.com/messages/boost">archives</a>.
|
||||
while, or look through the <a href="mailing_lists.htm#archive">archives</a>.
|
||||
Click around the <a href="../index.htm">web site</a>. Understand the <a href="lib_guide.htm">Requirements</a>.
|
||||
Read the rest of this page to learn about the process. Otherwise, you will
|
||||
just end up wasting everyone's time.</p>
|
||||
@@ -48,7 +47,7 @@ libraries by a process of discussion and refinement.</p>
|
||||
<p>If what you really want is a site that will just post your library without
|
||||
even looking at it, you should go elsewhere.</p>
|
||||
<h2>Determine <a name="interest">interest</a></h2>
|
||||
<p>Potential library submitters should use the <a href="../index.htm#Mailing List">mailing
|
||||
<p>Potential library submitters should use the Boost developers <a href="mailing_lists.htm">mailing
|
||||
list</a> as a forum to gauge interest a possible submission.</p>
|
||||
<p>A message might be as simple as "Is there any interest in a library
|
||||
which solves Traveling Salesperson problems in linear time?"</p>
|
||||
@@ -69,8 +68,8 @@ on the mailing list, sometimes a lot of discussion happens in private
|
||||
emails. For some libraries the process is over quickly, for others it goes
|
||||
on for months. It's often challenging, and sometimes leads off in
|
||||
completely unexpected directions. </p>
|
||||
<p>The <a href="http://www.yahoogroups.com/messages/boost">archive</a> of past
|
||||
messages is one way to see how this process worked for other boost
|
||||
<p>The <a href="mailing_lists.htm#archive">archive</a> of past
|
||||
messages is one way to see how this process worked for other Boost
|
||||
libraries.</p>
|
||||
<h2><a name="Submission">Submission</a> for review </h2>
|
||||
<p>All of the files which make up the library should be combined and compressed
|
||||
@@ -97,16 +96,12 @@ the form "Review Request: library" where <i>library</i> is replaced by
|
||||
the library name.</p>
|
||||
<p>See <a href="formal_review_process.htm">Formal Review Process</a> for
|
||||
details.</p>
|
||||
<p>Formal Review schedules are posted on the boost mailing list.. </p>
|
||||
<h2>Boost <a name="site posting">site posting</a> after acceptance</h2>
|
||||
<p>There are two ways that files are posted on the boost web site:</p>
|
||||
<ul>
|
||||
<li>Direct update of the boost CVS repository. This requires write
|
||||
access, and is primarily used for larger libraries, or for libraries
|
||||
maintained by very active boost developers.</li>
|
||||
<li>Packaging all files into a submission file (same content as for submission
|
||||
for review), and emailing it to the Boost webmaster <a href="mailto:bdawes@acm.org">bdawes@acm.org</a>.</li>
|
||||
</ul>
|
||||
<p>Formal Review schedules are posted on the <a href="mailing_lists.htm">mailing lists</a>. </p>
|
||||
<h2>Boost web <a name="site posting">site posting</a></h2>
|
||||
<p>Once an accepted library is ready for inclusion on the Boost web site, the
|
||||
submitter is typically given Boost CVS write access, and expected to check-in
|
||||
and maintain the library in the CVS. Contact the moderators if you need write
|
||||
access or CVS use isn't possible for you.</p>
|
||||
<h2><a name="People">People</a> page</h2>
|
||||
<p>If the boost.org web site doesn't already have your capsule biography
|
||||
and picture (optional, with not-too-serious pictures preferred), please
|
||||
@@ -117,11 +112,15 @@ common formats are acceptable. The preferred image size is 500x375 but the
|
||||
webmaster has photo editing software and can do the image preparation if
|
||||
necessary.</p>
|
||||
<h2><a name="Lifecycle">Lifecycle</a></h2>
|
||||
<p>Libraries are software; they lose their value over time if not
|
||||
maintained. Details still hazy.</p>
|
||||
<p>Libraries are software; they lose their value over time if not maintained.
|
||||
Postings on the Boost developers or users mailing lists can alert you to
|
||||
potential maintenance needs; please plan to maintain your library over time. If
|
||||
you no longer can or wish to maintain your library, please post a message on the
|
||||
Boost developers mailing list and help someone else take over as the library
|
||||
maintainer.</p>
|
||||
<hr>
|
||||
<p>Revised <!--webbot bot="Timestamp" s-type="EDITED" s-format="%d %B, %Y" startspan -->19 August, 2001<!--webbot bot="Timestamp" endspan i-checksum="34359" --></p>
|
||||
<p>Revised <!--webbot bot="Timestamp" s-type="EDITED" s-format="%d %B, %Y" startspan -->13 May, 2002<!--webbot bot="Timestamp" endspan i-checksum="13969" --></p>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
</html>
|
||||
+45
-15
@@ -12,7 +12,7 @@ Compiler Status: aix
|
||||
<h1>Compiler Status: aix</h1>
|
||||
|
||||
<p><b>System Configuration:</b> AIX 3 (CPU: 004042FC4C00)<br>
|
||||
<b>Run Date:</b> 08 Feb 2002 11:41 GMT</p>
|
||||
<b>Run Date:</b> 15 May 2002 07:53 GMT</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
@@ -60,6 +60,11 @@ Compiler Status: aix
|
||||
<td>Pass</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="../libs/bind/mem_fn_derived_test.cpp">libs/bind/mem_fn_derived_test.cpp</a></td>
|
||||
<td>run</td>
|
||||
<td>Pass</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="../libs/concept_check/concept_check_test.cpp">libs/concept_check/concept_check_test.cpp</a></td>
|
||||
<td>compile</td>
|
||||
<td>Pass</td>
|
||||
@@ -97,12 +102,12 @@ Compiler Status: aix
|
||||
<tr>
|
||||
<td><a href="../libs/function/test/function_test.cpp">libs/function/test/function_test.cpp</a></td>
|
||||
<td>run</td>
|
||||
<td><font color="#FF0000">Fail</font></td>
|
||||
<td>Pass</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="../libs/functional/function_test.cpp">libs/functional/function_test.cpp</a></td>
|
||||
<td>run</td>
|
||||
<td><font color="#FF0000">Fail</font></td>
|
||||
<td>Pass</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="../libs/graph/test/graph.cpp">libs/graph/test/graph.cpp</a></td>
|
||||
@@ -117,7 +122,7 @@ Compiler Status: aix
|
||||
<tr>
|
||||
<td><a href="../libs/integer/integer_test.cpp">libs/integer/integer_test.cpp</a></td>
|
||||
<td>run</td>
|
||||
<td>Pass</td>
|
||||
<td><font color="#FF0000">Fail</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="../libs/integer/integer_traits_test.cpp">libs/integer/integer_traits_test.cpp</a></td>
|
||||
@@ -125,6 +130,21 @@ Compiler Status: aix
|
||||
<td><font color="#FF0000">Fail</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="../libs/io/test/ios_state_test.cpp">libs/io/test/ios_state_test.cpp</a></td>
|
||||
<td>run</td>
|
||||
<td>Pass</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="../libs/lambda/test/bind_tests_simple.cpp">libs/lambda/test/bind_tests_simple.cpp</a></td>
|
||||
<td>run</td>
|
||||
<td><font color="#FF0000">Fail</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="../libs/lambda/test/operator_tests_simple.cpp">libs/lambda/test/operator_tests_simple.cpp</a></td>
|
||||
<td>run</td>
|
||||
<td><font color="#FF0000">Fail</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="../libs/math/test/common_factor_test.cpp">libs/math/test/common_factor_test.cpp</a></td>
|
||||
<td>run</td>
|
||||
<td><font color="#FF0000">Fail</font></td>
|
||||
@@ -187,12 +207,12 @@ Compiler Status: aix
|
||||
<tr>
|
||||
<td><a href="../libs/rational/rational_example.cpp">libs/rational/rational_example.cpp</a></td>
|
||||
<td>run</td>
|
||||
<td><font color="#FF0000">Fail</font></td>
|
||||
<td>Pass</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="../libs/rational/rational_test.cpp">libs/rational/rational_test.cpp</a></td>
|
||||
<td>run</td>
|
||||
<td><font color="#FF0000">Fail</font></td>
|
||||
<td>Pass</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="../libs/random/random_test.cpp">libs/random/random_test.cpp</a></td>
|
||||
@@ -225,6 +245,16 @@ Compiler Status: aix
|
||||
<td>Pass</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="../libs/smart_ptr/shared_ptr_test.cpp">libs/smart_ptr/shared_ptr_test.cpp</a></td>
|
||||
<td>run</td>
|
||||
<td>Pass</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="../libs/smart_ptr/shared_ptr_assign_fail.cpp">libs/smart_ptr/shared_ptr_assign_fail.cpp</a></td>
|
||||
<td>compile-fail</td>
|
||||
<td>Pass</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="../libs/static_assert/static_assert_test.cpp">libs/static_assert/static_assert_test.cpp</a></td>
|
||||
<td>compile</td>
|
||||
<td>Pass</td>
|
||||
@@ -297,12 +327,12 @@ Compiler Status: aix
|
||||
<tr>
|
||||
<td><a href="../libs/type_traits/tests/alignment_test.cpp">libs/type_traits/tests/alignment_test.cpp</a></td>
|
||||
<td>run</td>
|
||||
<td><font color="#FF0000">Fail</font></td>
|
||||
<td>Pass</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="../libs/type_traits/tests/arithmetic_traits_test.cpp">libs/type_traits/tests/arithmetic_traits_test.cpp</a></td>
|
||||
<td>run</td>
|
||||
<td><font color="#FF0000">Fail</font></td>
|
||||
<td>Pass</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="../libs/type_traits/tests/composite_traits_test.cpp">libs/type_traits/tests/composite_traits_test.cpp</a></td>
|
||||
@@ -312,17 +342,17 @@ Compiler Status: aix
|
||||
<tr>
|
||||
<td><a href="../libs/type_traits/tests/cv_traits_test.cpp">libs/type_traits/tests/cv_traits_test.cpp</a></td>
|
||||
<td>run</td>
|
||||
<td><font color="#FF0000">Fail</font></td>
|
||||
<td>Pass</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="../libs/type_traits/tests/is_function_test.cpp">libs/type_traits/tests/is_function_test.cpp</a></td>
|
||||
<td>run</td>
|
||||
<td><font color="#FF0000">Fail</font></td>
|
||||
<td>Pass</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="../libs/type_traits/tests/is_convertible_test.cpp">libs/type_traits/tests/is_convertible_test.cpp</a></td>
|
||||
<td>run</td>
|
||||
<td><font color="#FF0000">Fail</font></td>
|
||||
<td>Pass</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="../libs/type_traits/tests/is_same_test.cpp">libs/type_traits/tests/is_same_test.cpp</a></td>
|
||||
@@ -332,7 +362,7 @@ Compiler Status: aix
|
||||
<tr>
|
||||
<td><a href="../libs/type_traits/tests/object_type_traits_test.cpp">libs/type_traits/tests/object_type_traits_test.cpp</a></td>
|
||||
<td>run</td>
|
||||
<td><font color="#FF0000">Fail</font></td>
|
||||
<td>Pass</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="../libs/type_traits/tests/transform_traits_test.cpp">libs/type_traits/tests/transform_traits_test.cpp</a></td>
|
||||
@@ -352,7 +382,7 @@ Compiler Status: aix
|
||||
<tr>
|
||||
<td><a href="../libs/utility/compressed_pair_test.cpp">libs/utility/compressed_pair_test.cpp</a></td>
|
||||
<td>run</td>
|
||||
<td><font color="#FF0000">Fail</font></td>
|
||||
<td>Pass</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="../libs/utility/counting_iterator_test.cpp">libs/utility/counting_iterator_test.cpp</a></td>
|
||||
@@ -367,7 +397,7 @@ Compiler Status: aix
|
||||
<tr>
|
||||
<td><a href="../libs/utility/transform_iterator_test.cpp">libs/utility/transform_iterator_test.cpp</a></td>
|
||||
<td>run</td>
|
||||
<td><font color="#FF0000">Fail</font></td>
|
||||
<td>Pass</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="../libs/utility/indirect_iterator_test.cpp">libs/utility/indirect_iterator_test.cpp</a></td>
|
||||
@@ -377,7 +407,7 @@ Compiler Status: aix
|
||||
<tr>
|
||||
<td><a href="../libs/utility/iter_traits_gen_test.cpp">libs/utility/iter_traits_gen_test.cpp</a></td>
|
||||
<td>run</td>
|
||||
<td><font color="#FF0000">Fail</font></td>
|
||||
<td>Pass</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="../libs/utility/iter_adaptor_fail_expected1.cpp">libs/utility/iter_adaptor_fail_expected1.cpp</a></td>
|
||||
|
||||
@@ -12,7 +12,7 @@ Compiler Status: win32
|
||||
<h1>Compiler Status: win32</h1>
|
||||
|
||||
<p><b>System Configuration:</b> Microsoft Windows 32bit<br>
|
||||
<b>Run Date:</b> 09 May 2002 13:13 GMT</p>
|
||||
<b>Run Date:</b> 15 May 2002 21:02 GMT</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
@@ -202,7 +202,7 @@ Compiler Status: win32
|
||||
<td>Pass</td>
|
||||
<td>Pass</td>
|
||||
<td>Pass</td>
|
||||
<td><font color="#FF0000">Fail</font></td>
|
||||
<td>Pass</td>
|
||||
<td>Pass</td>
|
||||
<td>Pass</td>
|
||||
</tr>
|
||||
|
||||
+1
-1
Submodule tools/build updated: d35fafcf39...47a40e98f7
Reference in New Issue
Block a user