Boost logo

Boost-Commit :

From: sixtrillion_at_[hidden]
Date: 2007-07-07 21:52:46


Author: sixtrillion
Date: 2007-07-07 21:52:44 EDT (Sat, 07 Jul 2007)
New Revision: 7386
URL: http://svn.boost.org/trac/boost/changeset/7386

Log:
Proofreading

Text files modified:
   sandbox/libs/extension/doc/factories.qbk | 3
   sandbox/libs/extension/doc/html/boost_extension/appendices.html | 10 +-
   sandbox/libs/extension/doc/html/boost_extension/appendices/appendix_a.html | 16 ++--
   sandbox/libs/extension/doc/html/boost_extension/factories.html | 13 ++-
   sandbox/libs/extension/doc/html/boost_extension/info.html | 18 ++--
   sandbox/libs/extension/doc/html/boost_extension/introduction.html | 6
   sandbox/libs/extension/doc/html/boost_extension/performance_analysis.html | 121 ++++++++++++++++++++++++++++++++++++++-
   sandbox/libs/extension/doc/html/boost_extension/shared_libraries.html | 12 +-
   sandbox/libs/extension/doc/html/boost_extension/tutorials.html | 37 ++++++++---
   sandbox/libs/extension/doc/html/boost_extension/tutorials/tutorial01.html | 8 +-
   sandbox/libs/extension/doc/html/boost_extension/tutorials/tutorial02.html | 10 +-
   sandbox/libs/extension/doc/html/boost_extension/tutorials/tutorial03.html | 12 +-
   sandbox/libs/extension/doc/html/boost_extension/tutorials/tutorial04.html | 26 ++++----
   sandbox/libs/extension/doc/html/boost_extension/tutorials/tutorial05.html | 20 +++---
   sandbox/libs/extension/doc/html/boost_extension/tutorials/tutorial06.html | 10 +-
   sandbox/libs/extension/doc/html/index.html | 8 +-
   sandbox/libs/extension/doc/performance_analysis.qbk | 27 ++++----
   sandbox/libs/extension/doc/shared_libraries.qbk | 2
   sandbox/libs/extension/doc/tutorials.qbk | 14 ++-
   sandbox/libs/extension/examples/Jamfile.v2 | 30 +++++++--
   sandbox/libs/extension/test/Jamfile.v2 | 5
   sandbox/libs/extension/test/hello_world_test.cpp | 2
   22 files changed, 278 insertions(+), 132 deletions(-)

Modified: sandbox/libs/extension/doc/factories.qbk
==============================================================================
--- sandbox/libs/extension/doc/factories.qbk (original)
+++ sandbox/libs/extension/doc/factories.qbk 2007-07-07 21:52:44 EDT (Sat, 07 Jul 2007)
@@ -7,6 +7,7 @@
 
 [section:factories Factories]
 
-Insert content here.
+Factories are generated automatically. In the future, this section will contain
+more information about methods.
 
 [endsect]
\ No newline at end of file

Modified: sandbox/libs/extension/doc/html/boost_extension/appendices.html
==============================================================================
--- sandbox/libs/extension/doc/html/boost_extension/appendices.html (original)
+++ sandbox/libs/extension/doc/html/boost_extension/appendices.html 2007-07-07 21:52:44 EDT (Sat, 07 Jul 2007)
@@ -1,13 +1,13 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title> Appendices</title>
+<title>Appendices</title>
 <link rel="stylesheet" href="../boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.72.0">
 <link rel="start" href="../index.html" title="Chapter 1. Boost.Extension 1.0">
 <link rel="up" href="../index.html" title="Chapter 1. Boost.Extension 1.0">
-<link rel="prev" href="performance_analysis.html" title=" Performance Analysis">
-<link rel="next" href="appendices/appendix_a.html" title=" Appendix A - Windows Export and Import Declarations">
+<link rel="prev" href="performance_analysis.html" title="Performance Analysis">
+<link rel="next" href="appendices/appendix_a.html" title="Appendix A - Windows Export and Import Declarations">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%">
@@ -27,7 +27,7 @@
 <a name="boost_extension.appendices"></a> Appendices</h2></div></div></div>
 <div class="toc"><dl><dt><span class="section"> Appendix A - Windows Export and Import Declarations</span></dt></dl></div>
 </div>
-<table width="100%"><tr>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
 <td align="right"><small>Copyright © 2007 Jeremy Pack, Mariano G. Consoni</small></td>
 </tr></table>

Modified: sandbox/libs/extension/doc/html/boost_extension/appendices/appendix_a.html
==============================================================================
--- sandbox/libs/extension/doc/html/boost_extension/appendices/appendix_a.html (original)
+++ sandbox/libs/extension/doc/html/boost_extension/appendices/appendix_a.html 2007-07-07 21:52:44 EDT (Sat, 07 Jul 2007)
@@ -1,12 +1,12 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title> Appendix A - Windows Export and Import Declarations</title>
+<title>Appendix A - Windows Export and Import Declarations</title>
 <link rel="stylesheet" href="../../boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.72.0">
 <link rel="start" href="../../index.html" title="Chapter 1. Boost.Extension 1.0">
-<link rel="up" href="../appendices.html" title=" Appendices">
-<link rel="prev" href="../appendices.html" title=" Appendices">
+<link rel="up" href="../appendices.html" title="Appendices">
+<link rel="prev" href="../appendices.html" title="Appendices">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%">
@@ -39,10 +39,10 @@
         or exported from the current module. The Multiple Inheritance sample shows
         how this is done.
       </p>
-<a name="boost_extension.appendices.appendix_a.warning"></a><h3>
-<a name="id2576093"></a>
+<a name="boost_extension.appendices.appendix_a.warning"></a><h4>
+<a name="id997866"></a>
         Warning
- </h3>
+ </h4>
 <p>
         Now for a word of warning that many of you will ignore: In the great majority
         of cases, even if non-header-only implementation inheritance across shared
@@ -63,7 +63,7 @@
         </li>
 </ul></div>
 </div>
-<table width="100%"><tr>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
 <td align="right"><small>Copyright © 2007 Jeremy Pack, Mariano G. Consoni</small></td>
 </tr></table>

Modified: sandbox/libs/extension/doc/html/boost_extension/factories.html
==============================================================================
--- sandbox/libs/extension/doc/html/boost_extension/factories.html (original)
+++ sandbox/libs/extension/doc/html/boost_extension/factories.html 2007-07-07 21:52:44 EDT (Sat, 07 Jul 2007)
@@ -1,13 +1,13 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title> Factories</title>
+<title>Factories</title>
 <link rel="stylesheet" href="../boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.72.0">
 <link rel="start" href="../index.html" title="Chapter 1. Boost.Extension 1.0">
 <link rel="up" href="../index.html" title="Chapter 1. Boost.Extension 1.0">
-<link rel="prev" href="tutorials/tutorial06.html" title=" Tutorial 6">
-<link rel="next" href="shared_libraries.html" title=" Shared Libraries">
+<link rel="prev" href="tutorials/tutorial06.html" title="Tutorial 6">
+<link rel="next" href="shared_libraries.html" title="Shared Libraries">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%">
@@ -26,10 +26,11 @@
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
 <a name="boost_extension.factories"></a> Factories</h2></div></div></div>
 <p>
- Insert content here.
+ Factories are generated automatically. In the future, this section will contain
+ more information about methods.
     </p>
 </div>
-<table width="100%"><tr>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
 <td align="right"><small>Copyright © 2007 Jeremy Pack, Mariano G. Consoni</small></td>
 </tr></table>

Modified: sandbox/libs/extension/doc/html/boost_extension/info.html
==============================================================================
--- sandbox/libs/extension/doc/html/boost_extension/info.html (original)
+++ sandbox/libs/extension/doc/html/boost_extension/info.html 2007-07-07 21:52:44 EDT (Sat, 07 Jul 2007)
@@ -1,13 +1,13 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title> Info Classes</title>
+<title>Info Classes</title>
 <link rel="stylesheet" href="../boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.72.0">
 <link rel="start" href="../index.html" title="Chapter 1. Boost.Extension 1.0">
 <link rel="up" href="../index.html" title="Chapter 1. Boost.Extension 1.0">
-<link rel="prev" href="shared_libraries.html" title=" Shared Libraries">
-<link rel="next" href="performance_analysis.html" title=" Performance Analysis">
+<link rel="prev" href="shared_libraries.html" title="Shared Libraries">
+<link rel="next" href="performance_analysis.html" title="Performance Analysis">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%">
@@ -168,7 +168,7 @@
       word as arguments.
     </p>
 <p>
- Now we could start using that information in the main code. Rerieving Info
+ Now we could start using that information in the main code. Retrieving Info
       class is easy, you should just call <code class="literal">get_info()</code> method of
       the factory.
     </p>
@@ -194,9 +194,9 @@
       And we get the following output:
     </p>
 <div class="informaltable">
-<h4>
-<a name="id2575920"></a>
- </h4>
+<h5>
+<a name="id997466"></a>
+ </h5>
 <table class="table">
 <colgroup><col></colgroup>
 <tbody><tr><td><code class="literal">hola is hello in spanish<br> mundo! is world! in spanish<br>
@@ -228,7 +228,7 @@
       Tutorial 5 describes a more complex example of the use of the Info class.
     </p>
 </div>
-<table width="100%"><tr>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
 <td align="right"><small>Copyright © 2007 Jeremy Pack, Mariano G. Consoni</small></td>
 </tr></table>

Modified: sandbox/libs/extension/doc/html/boost_extension/introduction.html
==============================================================================
--- sandbox/libs/extension/doc/html/boost_extension/introduction.html (original)
+++ sandbox/libs/extension/doc/html/boost_extension/introduction.html 2007-07-07 21:52:44 EDT (Sat, 07 Jul 2007)
@@ -1,9 +1,9 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title> Introduction</title>
+<title>Introduction</title>
 <link rel="stylesheet" href="../boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.72.0">
 <link rel="start" href="../index.html" title="Chapter 1. Boost.Extension 1.0">
 <link rel="up" href="../index.html" title="Chapter 1. Boost.Extension 1.0">
 <link rel="prev" href="../index.html" title="Chapter 1. Boost.Extension 1.0">
@@ -60,7 +60,7 @@
       </li>
 </ol></div>
 </div>
-<table width="100%"><tr>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
 <td align="right"><small>Copyright © 2007 Jeremy Pack, Mariano G. Consoni</small></td>
 </tr></table>

Modified: sandbox/libs/extension/doc/html/boost_extension/performance_analysis.html
==============================================================================
--- sandbox/libs/extension/doc/html/boost_extension/performance_analysis.html (original)
+++ sandbox/libs/extension/doc/html/boost_extension/performance_analysis.html 2007-07-07 21:52:44 EDT (Sat, 07 Jul 2007)
@@ -1,13 +1,13 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title> Performance Analysis</title>
+<title>Performance Analysis</title>
 <link rel="stylesheet" href="../boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.72.0">
 <link rel="start" href="../index.html" title="Chapter 1. Boost.Extension 1.0">
 <link rel="up" href="../index.html" title="Chapter 1. Boost.Extension 1.0">
-<link rel="prev" href="info.html" title=" Info Classes">
-<link rel="next" href="appendices.html" title=" Appendices">
+<link rel="prev" href="info.html" title="Info Classes">
+<link rel="next" href="appendices.html" title="Appendices">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%">
@@ -26,10 +26,119 @@
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
 <a name="boost_extension.performance_analysis"></a> Performance Analysis</h2></div></div></div>
 <p>
- Insert content here.
+ In this section we will discuss the performance of the library. We'll focus
+ on the overhead added in comparison with <code class="literal">dlopen/dlclose</code>
+ or <code class="literal">LoadLibrary/CloseLibrary</code> approaches, describing three
+ benchmarks and their results.
+ </p>
+<p>
+ Finally we will discuss a small benchmark comparing two ways of using the library,
+ using the optional boost::function.
+ </p>
+<a name="boost_extension.performance_analysis.first_comparison"></a><h2>
+<a name="id997599"></a>
+ First comparison
+ </h2>
+<p>
+ The first benchmarks show how much overhead is incurred by using Boost.Extension
+ instead of just using standard shared library opening and calling functions.
+ </p>
+<p>
+ The extra work done by Boost.Extension is primarily for registering classes
+ - this benchmark assumes that without Boost.Extension, no classes are registered.
+ </p>
+<p>
+ Then we made a benchmark opening the same library with both approaches and
+ calling a method of the exported interface. This is done a lot of times in
+ order to be able to measure the times. This benchmark is implemented in <code class="literal">benchmarks/plain_old_approach.cpp
+ </code>.
+ </p>
+<p>
+ For 1000 iterations results (in an AMD XP 2500) are:
+ </p>
+<div class="orderedlist"><ol type="1">
+<li>
+<span class="bold"><strong>Direct system calls</strong></span>: 0.09 secs
+ </li>
+<li>
+<span class="bold"><strong>Boost.Extension</strong></span>: 0.33 secs
+ </li>
+</ol></div>
+<p>
+ So Boost.Extension is (aprox.) three times slower.
+ </p>
+<a name="boost_extension.performance_analysis.multiple_calls_and_libraries"></a><h2>
+<a name="id997676"></a>
+ Multiple calls and libraries
+ </h2>
+<p>
+ Having a first idea about the comparison we advanced with two new benchmarks.
+ </p>
+<p>
+ The first opens a library one time and then calls a method of the implementation
+ multiple times. We wanted to see with this benchmark if the call overhead of
+ one individual method is different between both approaches.
+ </p>
+<p>
+ Results are very similar, they vary from run to run so the overhead is minimum.
+ </p>
+<p>
+ This benchmark is implemented in <code class="literal">benchmarks/multiple_class.hpp</code>.
+ </p>
+<p>
+ The second addresses a different issue. The overhead of opening a library.
+ In order to be measurable we had to open a lot of libraries (and then calls
+ a method of each one). To avoid generating a lot of code we just generated
+ a library and copied it (using <code class="literal">boost::filesystem</code>) with different
+ names. We tested the code loading 500, 1.000 and 2.000 libraries.
+ </p>
+<p>
+ Results (for 500 libraries):
+ </p>
+<div class="orderedlist"><ol type="1">
+<li>
+<span class="bold"><strong>Direct system calls</strong></span>: 0.07 secs
+ </li>
+<li>
+<span class="bold"><strong>Boost.Extension</strong></span>: 0.21 secs
+ </li>
+</ol></div>
+<p>
+ The difference is similar to the first example
+ </p>
+<p>
+ We can conclude that the overhead is mainly in the library loading part not
+ in the calls. Moreover, we have done some profiling and discovered that most
+ of the overhead is spent in memory allocations caused by the use of STL strings
+ to identify the implementations. There are various ways that this overhead
+ can be eliminated. Strings are just the default type information stored, and
+ this can be replaced with other types of unique identifiers. On some platforms
+ (current OS X, for instance), this overhead can be avoided because of the way
+ RTTI works across shared libraries.
+ </p>
+<a name="boost_extension.performance_analysis.boost__function_overhead"></a><h2>
+<a name="id997670"></a>
+ boost::function overhead
+ </h2>
+<p>
+ Besides the comparison of Boost.Extension vs. direct system calls we evaluated
+ different alternatives among features of the library.
+ </p>
+<p>
+ As our philosophy is to try to depend of the fewest libraries (including Boost
+ libraries) we present the option to use or not boost::function in Boost.Extension.
+ </p>
+<p>
+ In <code class="literal">plain_old_approach_bf.cpp</code> we use our first benchmark
+ to compare the usage of boost::function in the implementation of Boost.Extension.
+ </p>
+<p>
+ Results are that overhead is not noticeable. Because of this, it is quite possible
+ that we will remove the non-Boost.Function option completely, once we've analyzed
+ how much of the rest of Boost would then be required for using Boost.Extension.
     </p>
 </div>
-<table width="100%"><tr>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
 <td align="right"><small>Copyright © 2007 Jeremy Pack, Mariano G. Consoni</small></td>
 </tr></table>

Modified: sandbox/libs/extension/doc/html/boost_extension/shared_libraries.html
==============================================================================
--- sandbox/libs/extension/doc/html/boost_extension/shared_libraries.html (original)
+++ sandbox/libs/extension/doc/html/boost_extension/shared_libraries.html 2007-07-07 21:52:44 EDT (Sat, 07 Jul 2007)
@@ -1,13 +1,13 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title> Shared Libraries</title>
+<title>Shared Libraries</title>
 <link rel="stylesheet" href="../boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.72.0">
 <link rel="start" href="../index.html" title="Chapter 1. Boost.Extension 1.0">
 <link rel="up" href="../index.html" title="Chapter 1. Boost.Extension 1.0">
-<link rel="prev" href="factories.html" title=" Factories">
-<link rel="next" href="info.html" title=" Info Classes">
+<link rel="prev" href="factories.html" title="Factories">
+<link rel="next" href="info.html" title="Info Classes">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%">
@@ -26,10 +26,10 @@
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
 <a name="boost_extension.shared_libraries"></a> Shared Libraries</h2></div></div></div>
 <p>
- Insert content here.
+ Content not yet created.
     </p>
 </div>
-<table width="100%"><tr>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
 <td align="right"><small>Copyright © 2007 Jeremy Pack, Mariano G. Consoni</small></td>
 </tr></table>

Modified: sandbox/libs/extension/doc/html/boost_extension/tutorials.html
==============================================================================
--- sandbox/libs/extension/doc/html/boost_extension/tutorials.html (original)
+++ sandbox/libs/extension/doc/html/boost_extension/tutorials.html 2007-07-07 21:52:44 EDT (Sat, 07 Jul 2007)
@@ -3,11 +3,11 @@
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
 <title>Tutorials</title>
 <link rel="stylesheet" href="../boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.72.0">
 <link rel="start" href="../index.html" title="Chapter 1. Boost.Extension 1.0">
 <link rel="up" href="../index.html" title="Chapter 1. Boost.Extension 1.0">
-<link rel="prev" href="introduction.html" title=" Introduction">
-<link rel="next" href="tutorials/tutorial01.html" title=" Tutorial 1">
+<link rel="prev" href="introduction.html" title="Introduction">
+<link rel="next" href="tutorials/tutorial01.html" title="Tutorial 1">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%">
@@ -34,15 +34,32 @@
 <dt><span class="section"> Tutorial 6</span></dt>
 </dl></div>
 <p>
- Only the first and second tutorials are currently complete. The first tutorial
- is a basic hello world example. The second tutorial is a more complex example
- involving multiple inheritance, virtual inheritance, and inheritance across
- shared libraries. The tutorial code can be found in the examples folder. They
- all share the same Jamfile, but the Jamfile contents are separated out for
- each tutorial.
+ There are currently five tutorials (the sixth is a placeholder).
+ </p>
+<p>
+ The first tutorial is a basic hello world example.
+ </p>
+<p>
+ The second tutorial is a more complex example involving multiple inheritance,
+ virtual inheritance, and inheritance across shared libraries.
+ </p>
+<p>
+ The third tutorial shows how to register classes with multi parameter constructors.
+ </p>
+<p>
+ The fourth tutorial is a about multiple library loading, with some strange
+ cases like loading the same library many times and loading very similar classes.
+ </p>
+<p>
+ The fifth tutorial is an advanced example of using the Info template parameter.
+ There is a simpler usage of this parameter in the examples/info folder as well.
+ </p>
+<p>
+ The tutorial code can be found in the examples folder. They all share the same
+ Jamfile, but the Jamfile contents are separated out for each tutorial.
     </p>
 </div>
-<table width="100%"><tr>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
 <td align="right"><small>Copyright © 2007 Jeremy Pack, Mariano G. Consoni</small></td>
 </tr></table>

Modified: sandbox/libs/extension/doc/html/boost_extension/tutorials/tutorial01.html
==============================================================================
--- sandbox/libs/extension/doc/html/boost_extension/tutorials/tutorial01.html (original)
+++ sandbox/libs/extension/doc/html/boost_extension/tutorials/tutorial01.html 2007-07-07 21:52:44 EDT (Sat, 07 Jul 2007)
@@ -1,13 +1,13 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title> Tutorial 1</title>
+<title>Tutorial 1</title>
 <link rel="stylesheet" href="../../boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.72.0">
 <link rel="start" href="../../index.html" title="Chapter 1. Boost.Extension 1.0">
 <link rel="up" href="../tutorials.html" title="Tutorials">
 <link rel="prev" href="../tutorials.html" title="Tutorials">
-<link rel="next" href="tutorial02.html" title=" Tutorial 2">
+<link rel="next" href="tutorial02.html" title="Tutorial 2">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%">
@@ -161,7 +161,7 @@
         shared library (dll, so, dylib etc.) is renamed correctly.
       </p>
 </div>
-<table width="100%"><tr>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
 <td align="right"><small>Copyright © 2007 Jeremy Pack, Mariano G. Consoni</small></td>
 </tr></table>

Modified: sandbox/libs/extension/doc/html/boost_extension/tutorials/tutorial02.html
==============================================================================
--- sandbox/libs/extension/doc/html/boost_extension/tutorials/tutorial02.html (original)
+++ sandbox/libs/extension/doc/html/boost_extension/tutorials/tutorial02.html 2007-07-07 21:52:44 EDT (Sat, 07 Jul 2007)
@@ -1,13 +1,13 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title> Tutorial 2</title>
+<title>Tutorial 2</title>
 <link rel="stylesheet" href="../../boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.72.0">
 <link rel="start" href="../../index.html" title="Chapter 1. Boost.Extension 1.0">
 <link rel="up" href="../tutorials.html" title="Tutorials">
-<link rel="prev" href="tutorial01.html" title=" Tutorial 1">
-<link rel="next" href="tutorial03.html" title=" Tutorial 3">
+<link rel="prev" href="tutorial01.html" title="Tutorial 1">
+<link rel="next" href="tutorial03.html" title="Tutorial 3">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%">
@@ -163,7 +163,7 @@
 <p>
       </p>
 </div>
-<table width="100%"><tr>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
 <td align="right"><small>Copyright © 2007 Jeremy Pack, Mariano G. Consoni</small></td>
 </tr></table>

Modified: sandbox/libs/extension/doc/html/boost_extension/tutorials/tutorial03.html
==============================================================================
--- sandbox/libs/extension/doc/html/boost_extension/tutorials/tutorial03.html (original)
+++ sandbox/libs/extension/doc/html/boost_extension/tutorials/tutorial03.html 2007-07-07 21:52:44 EDT (Sat, 07 Jul 2007)
@@ -1,13 +1,13 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title> Tutorial 3</title>
+<title>Tutorial 3</title>
 <link rel="stylesheet" href="../../boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.72.0">
 <link rel="start" href="../../index.html" title="Chapter 1. Boost.Extension 1.0">
 <link rel="up" href="../tutorials.html" title="Tutorials">
-<link rel="prev" href="tutorial02.html" title=" Tutorial 2">
-<link rel="next" href="tutorial04.html" title=" Tutorial 4">
+<link rel="prev" href="tutorial02.html" title="Tutorial 2">
+<link rel="next" href="tutorial04.html" title="Tutorial 4">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%">
@@ -159,10 +159,10 @@
       </p>
 <p>
         It is expected that at this point you can create your own classes with multi-argument
- contructors and use them via Boost.extensions without problems.
+ constructors and use them via Boost.extensions without problems.
       </p>
 </div>
-<table width="100%"><tr>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
 <td align="right"><small>Copyright © 2007 Jeremy Pack, Mariano G. Consoni</small></td>
 </tr></table>

Modified: sandbox/libs/extension/doc/html/boost_extension/tutorials/tutorial04.html
==============================================================================
--- sandbox/libs/extension/doc/html/boost_extension/tutorials/tutorial04.html (original)
+++ sandbox/libs/extension/doc/html/boost_extension/tutorials/tutorial04.html 2007-07-07 21:52:44 EDT (Sat, 07 Jul 2007)
@@ -1,13 +1,13 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title> Tutorial 4</title>
+<title>Tutorial 4</title>
 <link rel="stylesheet" href="../../boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.72.0">
 <link rel="start" href="../../index.html" title="Chapter 1. Boost.Extension 1.0">
 <link rel="up" href="../tutorials.html" title="Tutorials">
-<link rel="prev" href="tutorial03.html" title=" Tutorial 3">
-<link rel="next" href="tutorial05.html" title=" Tutorial 5">
+<link rel="prev" href="tutorial03.html" title="Tutorial 3">
+<link rel="next" href="tutorial05.html" title="Tutorial 5">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%">
@@ -101,7 +101,7 @@
       </p>
 <p>
         Also note that we are using the Info int to store some kind of "version",
- and then we could diferrentiate the classes by its int (see Info class tutorial
+ and then we could differentiate the classes by its int (see Info class tutorial
         for more information on this).
       </p>
 <p>
@@ -146,9 +146,9 @@
         We get the following output:
       </p>
 <div class="informaltable">
-<h4>
-<a name="id2568197"></a>
- </h4>
+<h5>
+<a name="id972427"></a>
+ </h5>
 <table class="table">
 <colgroup><col></colgroup>
 <tbody><tr><td>
@@ -159,7 +159,7 @@
 </div>
 <p>
         The first "hello world" is returned by the first version of the
- library, and the second and third retruned by the second version.
+ library, and the second and third returned by the second version.
       </p>
 <p>
         Finally, we will show another example similar to the former but in this case
@@ -243,9 +243,9 @@
         The output is:
       </p>
 <div class="informaltable">
-<h4>
-<a name="id2569302"></a>
- </h4>
+<h5>
+<a name="id973504"></a>
+ </h5>
 <table class="table">
 <colgroup><col></colgroup>
 <tbody><tr><td>
@@ -259,7 +259,7 @@
         into the same factory.
       </p>
 </div>
-<table width="100%"><tr>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
 <td align="right"><small>Copyright © 2007 Jeremy Pack, Mariano G. Consoni</small></td>
 </tr></table>

Modified: sandbox/libs/extension/doc/html/boost_extension/tutorials/tutorial05.html
==============================================================================
--- sandbox/libs/extension/doc/html/boost_extension/tutorials/tutorial05.html (original)
+++ sandbox/libs/extension/doc/html/boost_extension/tutorials/tutorial05.html 2007-07-07 21:52:44 EDT (Sat, 07 Jul 2007)
@@ -1,13 +1,13 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title> Tutorial 5</title>
+<title>Tutorial 5</title>
 <link rel="stylesheet" href="../../boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.72.0">
 <link rel="start" href="../../index.html" title="Chapter 1. Boost.Extension 1.0">
 <link rel="up" href="../tutorials.html" title="Tutorials">
-<link rel="prev" href="tutorial04.html" title=" Tutorial 4">
-<link rel="next" href="tutorial06.html" title=" Tutorial 6">
+<link rel="prev" href="tutorial04.html" title="Tutorial 4">
+<link rel="next" href="tutorial06.html" title="Tutorial 6">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%">
@@ -99,7 +99,7 @@
 <p>
         Apart from that we need some protocol information like the server address,
         port or modes. This data is needed for each protocol and each protocol maybe
- could have differente implementations with different servers or ports.
+ could have different implementations with different servers or ports.
       </p>
 <p>
         Of course our Info class is a perfect solution to store this data. But in
@@ -180,7 +180,7 @@
 <p>
       </p>
 <p>
- Finally let's use our implementation for an hypotetical connection:
+ Finally let's use our implementation for an hypothetical connection:
       </p>
 <p>
         
@@ -236,9 +236,9 @@
         And we get the following output:
       </p>
 <div class="informaltable">
-<h4>
-<a name="id2573510"></a>
- </h4>
+<h5>
+<a name="id977604"></a>
+ </h5>
 <table class="table">
 <colgroup><col></colgroup>
 <tbody><tr><td><code class="literal">MSN hostname: msn.messenger.com<br> Jabber hostname:
@@ -254,7 +254,7 @@
         The complete code is in the <code class="literal">examples/info/im</code> directory.
       </p>
 </div>
-<table width="100%"><tr>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
 <td align="right"><small>Copyright © 2007 Jeremy Pack, Mariano G. Consoni</small></td>
 </tr></table>

Modified: sandbox/libs/extension/doc/html/boost_extension/tutorials/tutorial06.html
==============================================================================
--- sandbox/libs/extension/doc/html/boost_extension/tutorials/tutorial06.html (original)
+++ sandbox/libs/extension/doc/html/boost_extension/tutorials/tutorial06.html 2007-07-07 21:52:44 EDT (Sat, 07 Jul 2007)
@@ -1,13 +1,13 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title> Tutorial 6</title>
+<title>Tutorial 6</title>
 <link rel="stylesheet" href="../../boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.72.0">
 <link rel="start" href="../../index.html" title="Chapter 1. Boost.Extension 1.0">
 <link rel="up" href="../tutorials.html" title="Tutorials">
-<link rel="prev" href="tutorial05.html" title=" Tutorial 5">
-<link rel="next" href="../factories.html" title=" Factories">
+<link rel="prev" href="tutorial05.html" title="Tutorial 5">
+<link rel="next" href="../factories.html" title="Factories">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%">
@@ -29,7 +29,7 @@
         Insert content here.
       </p>
 </div>
-<table width="100%"><tr>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
 <td align="right"><small>Copyright © 2007 Jeremy Pack, Mariano G. Consoni</small></td>
 </tr></table>

Modified: sandbox/libs/extension/doc/html/index.html
==============================================================================
--- sandbox/libs/extension/doc/html/index.html (original)
+++ sandbox/libs/extension/doc/html/index.html 2007-07-07 21:52:44 EDT (Sat, 07 Jul 2007)
@@ -3,9 +3,9 @@
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
 <title>Chapter 1. Boost.Extension 1.0</title>
 <link rel="stylesheet" href="boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.72.0">
 <link rel="start" href="index.html" title="Chapter 1. Boost.Extension 1.0">
-<link rel="next" href="boost_extension/introduction.html" title=" Introduction">
+<link rel="next" href="boost_extension/introduction.html" title="Introduction">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%">
@@ -24,7 +24,7 @@
 <a name="boost_extension"></a>Chapter 1. Boost.Extension 1.0</h2></div>
 <div><p class="copyright">Copyright © 2007 Jeremy Pack, Mariano G. Consoni</p></div>
 <div><div class="legalnotice">
-<a name="id2552220"></a><p>
+<a name="id965072"></a><p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>
@@ -52,7 +52,7 @@
 </dl>
 </div>
 </div>
-<table width="100%"><tr>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"><small><p>Last revised: April 30, 2007 at 12:00:00 GMT</p></small></td>
 <td align="right"><small></small></td>
 </tr></table>

Modified: sandbox/libs/extension/doc/performance_analysis.qbk
==============================================================================
--- sandbox/libs/extension/doc/performance_analysis.qbk (original)
+++ sandbox/libs/extension/doc/performance_analysis.qbk 2007-07-07 21:52:44 EDT (Sat, 07 Jul 2007)
@@ -1,5 +1,5 @@
 [/ Boost.Extension - performance analysis ]
-[/ Copyright 2007 Mariano G. Consoni ]
+[/ Copyright 2007 Mariano G. Consoni and Jeremy Pack]
 [/ Distributed under the Boost Software License, Version 1.0. (See]
 [/ accompanying file LICENSE_1_0.txt or copy at ]
 [/ http://www.boost.org/LICENSE_1_0.txt) ]
@@ -8,22 +8,20 @@
 [section:performance_analysis Performance Analysis]
 
 In this section we will discuss the performance of the library. We'll focus
-in the overhead added in comparison with [^ dlopen/dlclose] or
+on the overhead added in comparison with [^ dlopen/dlclose] or
 [^ LoadLibrary/CloseLibrary] approaches, describing three benchmarks
 and their results.
 
 Finally we will discuss a small benchmark comparing two ways of using the
-library, depending or not of boost::function.
+library, using the optional boost::function.
 
 [h1 First comparison]
 
-First, we wanted to know how much is the overhead of using Boost.Extension
-instead of direct operating system calls.
+The first benchmarks show how much overhead is incurred by using Boost.Extension
+instead of just using standard shared library opening and calling functions.
 
-As you may know, Boost.Extension uses this system calls but of course has
-some intermediate structures that allows the programmer a much more
-friendlier use of the implementations. Of course any intermediate step in
-the process costs time, so we wanted to know how much that time is.
+The extra work done by Boost.Extension is primarily for registering classes - this
+benchmark assumes that without Boost.Extension, no classes are registered.
 
 Then we made a benchmark opening the same library with both approaches
 and calling a method of the exported interface. This is done a lot of times in
@@ -68,9 +66,10 @@
 We can conclude that the overhead is mainly in the library loading part not in the calls.
 Moreover, we have done some profiling and discovered
 that most of the overhead is spent in memory allocations caused by the use of
-STL strings to identify the implementations. We are currently analyzing if this
-overhead could be lowered.
-
+STL strings to identify the implementations. There are various ways that this overhead
+can be eliminated. Strings are just the default type information stored, and this can
+be replaced with other types of unique identifiers. On some platforms (current OS X, for instance),
+this overhead can be avoided because of the way RTTI works across shared libraries.
 
 [h1 boost::function overhead]
 
@@ -83,7 +82,9 @@
 In [^plain_old_approach_bf.cpp] we use our first benchmark to compare the usage
 of boost::function in the implementation of Boost.Extension.
 
-Results are that overhead is not noticeable.
+Results are that overhead is not noticeable. Because of this, it is quite possible
+that we will remove the non-Boost.Function option completely, once we've analyzed
+how much of the rest of Boost would then be required for using Boost.Extension.
 
 
 [endsect]
\ No newline at end of file

Modified: sandbox/libs/extension/doc/shared_libraries.qbk
==============================================================================
--- sandbox/libs/extension/doc/shared_libraries.qbk (original)
+++ sandbox/libs/extension/doc/shared_libraries.qbk 2007-07-07 21:52:44 EDT (Sat, 07 Jul 2007)
@@ -7,6 +7,6 @@
 
 [section:shared_libraries Shared Libraries]
 
-Insert content here.
+Content not yet created.
 
 [endsect]
\ No newline at end of file

Modified: sandbox/libs/extension/doc/tutorials.qbk
==============================================================================
--- sandbox/libs/extension/doc/tutorials.qbk (original)
+++ sandbox/libs/extension/doc/tutorials.qbk 2007-07-07 21:52:44 EDT (Sat, 07 Jul 2007)
@@ -1,5 +1,5 @@
 [/ Boost.Extension - tutorials ]
-[/ Copyright 2007 Mariano G. Consoni ]
+[/ Copyright 2007 Mariano G. Consoni and Jeremy Pack ]
 [/ Distributed under the Boost Software License, Version 1.0. (See]
 [/ accompanying file LICENSE_1_0.txt or copy at ]
 [/ http://www.boost.org/LICENSE_1_0.txt) ]
@@ -13,18 +13,20 @@
 [include tutorial5.qbk]
 [include tutorial6.qbk]
 
-We have written five tutorials until now.
+There are currently five tutorials (the sixth is a placeholder).
 
-The first tutorial is a basic hello world example. The second tutorial is a more
-complex example involving multiple inheritance, virtual inheritance, and inheritance
+The first tutorial is a basic hello world example.
+
+The second tutorial is a more complex example involving multiple inheritance, virtual inheritance, and inheritance
 across shared libraries.
 
 The third tutorial shows how to register classes with multi parameter constructors.
+
 The fourth tutorial is a about multiple library loading, with some strange cases
 like loading the same library many times and loading very similar classes.
 
-The fifth tutorial is an advanced example of using the Info class. You could see
-a basic example in the Info class section too.
+The fifth tutorial is an advanced example of using the Info template parameter. There is a simpler
+usage of this parameter in the examples/info folder as well.
 
 The tutorial code can be found in the examples folder. They all share the same
 Jamfile, but the Jamfile contents are separated out for each tutorial.

Modified: sandbox/libs/extension/examples/Jamfile.v2
==============================================================================
--- sandbox/libs/extension/examples/Jamfile.v2 (original)
+++ sandbox/libs/extension/examples/Jamfile.v2 2007-07-07 21:52:44 EDT (Sat, 07 Jul 2007)
@@ -20,6 +20,8 @@
       <include>../../../
       <include>$(BOOST_ROOT)
       <toolset>gcc:<find-static-library>dl
+ <toolset>gcc:<linkflags>"-Wl,-rpath,'$ORIGIN'"
+ <toolset>darwin:<define>DYLD_LIBRARY_PATH=./
     :
     ;
 
@@ -54,8 +56,18 @@
 ;
 exe MultipleInheritance : multiple_inheritance/main_mi.cpp Computer Vehicle ;
 
-lib RegistryLibrary : registry/registry_library.cpp : <link>shared ;
-exe RegistryExample : registry/registry_example.cpp ;
+#lib RegistryLibrary : registry/registry_library.cpp : <link>shared ;
+#exe RegistryExample : registry/registry_example.cpp ;
+
+stage ../stage :
+ HelloWorld HelloWorldLib
+ MultilanguageWord MultilanguageHelloWorld
+ Vehicle Boat FlyingCar Car Plane
+ CarOfTheFuture MultipleInheritance
+ # RegistryLibrary
+ Computer
+ # RegistryExample
+ ;
 
 install ../bin :
   HelloWorld HelloWorldLib
@@ -63,11 +75,13 @@
   MultilanguageWord MultilanguageHelloWorld
   IM IMPlugins
   Vehicle Boat FlyingCar Car Plane
- CarOfTheFuture MultipleInheritance RegistryLibrary Computer
- RegistryExample
+ CarOfTheFuture MultipleInheritance
+ # RegistryLibrary
+ Computer
+ # RegistryExample
   :
- # <install-dependencies>on
- # <install-type>EXE
- # <install-type>SHARED_LIB
- # <install-type>LIB
+ <install-dependencies>on
+ <install-type>EXE
+ <install-type>SHARED_LIB
+ <install-type>LIB
   ;

Modified: sandbox/libs/extension/test/Jamfile.v2
==============================================================================
--- sandbox/libs/extension/test/Jamfile.v2 (original)
+++ sandbox/libs/extension/test/Jamfile.v2 2007-07-07 21:52:44 EDT (Sat, 07 Jul 2007)
@@ -22,6 +22,7 @@
       <toolset>gcc:<find-static-library>boost_filesystem
       <toolset>gcc:<find-static-library>boost_unit_test_framework
       <toolset>gcc:<find-static-library>dl
+ <toolset>darwin:<define>DYLD_LIBRARY_PATH=../bin/
     :
     ;
 
@@ -31,12 +32,12 @@
   [ run zone_test.cpp ]
   [ run construction.cpp ]
   [ run hello_world_test.cpp ]
- [ run lib_caching_test.cpp ]
+ # [ run lib_caching_test.cpp ]
   [ run versions_test.cpp ]
   [ run parameters_test.cpp ]
   [ run multiple_inheritance_test.cpp ]
   [ run extension_test.cpp ]
   [ run counted_factory_test.cpp ]
- [ run registry_test.cpp ]
+ # [ run registry_test.cpp ]
 :
 ;

Modified: sandbox/libs/extension/test/hello_world_test.cpp
==============================================================================
--- sandbox/libs/extension/test/hello_world_test.cpp (original)
+++ sandbox/libs/extension/test/hello_world_test.cpp 2007-07-07 21:52:44 EDT (Sat, 07 Jul 2007)
@@ -24,7 +24,7 @@
 BOOST_AUTO_TEST_CASE(hello_world_example)
 {
   // check if the library can be loaded
- shared_library l((std::string("libHelloWorldLib") + ".extension").c_str());
+ shared_library l((std::string("../bin/libHelloWorldLib") + ".extension").c_str());
   BOOST_CHECK_EQUAL( l.open(), true );
 
   // check if the factory can return the functor


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk