$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
From: eric_at_[hidden]
Date: 2008-08-11 03:33:02
Author: eric_niebler
Date: 2008-08-11 03:33:00 EDT (Mon, 11 Aug 2008)
New Revision: 48080
URL: http://svn.boost.org/trac/boost/changeset/48080
Log:
merged from trunk
Added:
   branches/proto/v4/libs/proto/index.html
      - copied unchanged from r48079, /trunk/libs/proto/index.html
Properties modified: 
   branches/proto/v4/   (props changed)
Text files modified: 
   branches/proto/v4/doc/Jamfile.v2                        |     2                                         
   branches/proto/v4/libs/libraries.htm                    |     6 +                                       
   branches/proto/v4/libs/maintainers.txt                  |     7 +-                                      
   branches/proto/v4/libs/proto/doc/proto.xml              |     3                                         
   branches/proto/v4/libs/xpressive/doc/static_regexes.qbk |   113 +++++++++++++++++++++++++-------------- 
   branches/proto/v4/status/Jamfile.v2                     |     1                                         
   6 files changed, 84 insertions(+), 48 deletions(-)
Modified: branches/proto/v4/doc/Jamfile.v2
==============================================================================
--- branches/proto/v4/doc/Jamfile.v2	(original)
+++ branches/proto/v4/doc/Jamfile.v2	2008-08-11 03:33:00 EDT (Mon, 11 Aug 2008)
@@ -28,7 +28,7 @@
     <dependency>../libs/foreach/doc//foreach
     <dependency>../libs/mpi/doc//mpi
     <dependency>../libs/mpi/doc//mpi_autodoc.xml
-    <dependency>../libs/proto/doc//protodoc.xml
+    #<dependency>../libs/proto/doc//protodoc.xml
     <dependency>../libs/proto/doc//proto
     <dependency>../libs/typeof/doc//typeof
     <dependency>../libs/xpressive/doc//autodoc.xml
Modified: branches/proto/v4/libs/libraries.htm
==============================================================================
--- branches/proto/v4/libs/libraries.htm	(original)
+++ branches/proto/v4/libs/libraries.htm	2008-08-11 03:33:00 EDT (Mon, 11 Aug 2008)
@@ -49,7 +49,7 @@
       <dt>Generic Programming</dt>
       <dt>Template Metaprogramming</dt>
       <dt>Preprocessor Metaprogramming</dt>
-      <dt>Concurrent Programming
+      <dt>Concurrent Programming</dt>
       <dt>Math and numerics</dt>
       <dt>Correctness and testing</dt>
       <dt>Data structures</dt>
@@ -215,6 +215,8 @@
     <li>property map
         - Concepts defining interfaces which map key objects to
         value objects, from Jeremy Siek.</li>
+    <li>proto - Expression template library and compiler
+        construction toolkit for domain-specific embedded languages, from Eric Niebler.</li>
     <li>python - Reflects C++
         classes and functions into <a
         href="http://www.python.org">Python</a>, from Dave
@@ -463,6 +465,8 @@
     <li>mpl - Template metaprogramming
     framework of compile-time algorithms, sequences and metafunction classes,
     from Aleksey Gurtovoy.</li>
+    <li>proto - Expression template library and compiler
+        construction toolkit for domain-specific embedded languages, from Eric Niebler.</li>
     <li>static_assert
         - Static assertions (compile time assertions), from John
         Maddock.</li>
Modified: branches/proto/v4/libs/maintainers.txt
==============================================================================
--- branches/proto/v4/libs/maintainers.txt	(original)
+++ branches/proto/v4/libs/maintainers.txt	2008-08-11 03:33:00 EDT (Mon, 11 Aug 2008)
@@ -8,7 +8,7 @@
 # maintainers. When making changes to this file, please be careful
 # to closely follow the format of the library.
 
-accumulators          Eric Niebler <eric -at- boost-consulting.com>
+accumulators          Eric Niebler <eric -at- boostpro.com>
 algorithm/minmax      Herve Bronnimann <hbr -at- poly.edu>
 algorithm/string      Pavol Droba <droba -at- topmail.sk>
 any                   Alexander Nasonov <alexander.nasonov -at- gmail.com>
@@ -27,7 +27,7 @@
 dynamic_bitset        Jeremy Siek <jeremy.siek -at- gmail.com>
 exception             Emil Dotchevski <emil -at- revergestudios.com>
 filesystem            Beman Dawes <bdawes -at- acm.org>
-foreach               Eric Niebler <eric -at- boost-consulting.com>
+foreach               Eric Niebler <eric -at- boostpro.com>
 format                Samuel Krempp <krempp -at- crans.ens-cachan.fr>
 function              Douglas Gregor <dgregor -at- cs.indiana.edu>
 function_types        Tobias Schwinger <tschwinger -at- isonews2.com>
@@ -58,6 +58,7 @@
 preprocessor          Paul Mensonides <pmenso57 -at- comcast.net>
 program_options       Vladimir Prus <ghost -at- cs.msu.su>
 property_map          Douglas Gregor <dgregor -at- cs.indiana.edu>
+proto                 Eric Niebler <eric -at- boostpro.com>
 ptr_container         Thorsten Ottosen <nesotto -at- cs.auc.dk>
 python                David Abrahams <dave -at- boost-consulting.com>
 random                Jens Maurer <Jens.Maurer -at- gmx.net>
@@ -85,6 +86,6 @@
 utility/swap          Joseph Gauterin <joseph.gauterin -at- googlemail.com>
 variant               Eric Friedman <ericbrandon -at- gmail.com>
 wave                  Hartmut Kaiser <hartmut.kaiser -at- gmail.com>
-xpressive             Eric Niebler <eric -at- boost-consulting.com>
+xpressive             Eric Niebler <eric -at- boostpro.com>
 
 
Modified: branches/proto/v4/libs/proto/doc/proto.xml
==============================================================================
--- branches/proto/v4/libs/proto/doc/proto.xml	(original)
+++ branches/proto/v4/libs/proto/doc/proto.xml	2008-08-11 03:33:00 EDT (Mon, 11 Aug 2008)
@@ -1,5 +1,6 @@
 <?xml version="1.0" standalone="yes"?>
-<library-reference id="reference" xmlns:xi="http://www.w3.org/2001/XInclude">
+<!--id="reference"-->
+<library-reference xmlns:xi="http://www.w3.org/2001/XInclude">
   <title>Reference</title>
   <xi:include href="concepts/CallableTransform.xml"/>
   <xi:include href="concepts/ObjectTransform.xml"/>
Modified: branches/proto/v4/libs/xpressive/doc/static_regexes.qbk
==============================================================================
--- branches/proto/v4/libs/xpressive/doc/static_regexes.qbk	(original)
+++ branches/proto/v4/libs/xpressive/doc/static_regexes.qbk	2008-08-11 03:33:00 EDT (Mon, 11 Aug 2008)
@@ -141,60 +141,89 @@
 The table below lists the familiar regex constructs and their equivalents in
 static xpressive.
 
+[def _s1_       [globalref boost::xpressive::s1 s1]]
+[def _bos_      [globalref boost::xpressive::bos bos]]
+[def _eos_      [globalref boost::xpressive::eos eos]]
+[def _b_        [globalref boost::xpressive::_b _b]]
+[def _n_        [globalref boost::xpressive::_n _n]]
+[def _ln_       [globalref boost::xpressive::_ln _ln]]
+[def _d_        [globalref boost::xpressive::_d _d]]
+[def _w_        [globalref boost::xpressive::_w _w]]
+[def _s_        [globalref boost::xpressive::_s _s]]
+[def _alnum_    [globalref boost::xpressive::alnum alnum]]
+[def _alpha_    [globalref boost::xpressive::alpha alpha]]
+[def _blank_    [globalref boost::xpressive::blank blank]]
+[def _cntrl_    [globalref boost::xpressive::cntrl cntrl]]
+[def _digit_    [globalref boost::xpressive::digit digit]]
+[def _graph_    [globalref boost::xpressive::graph graph]]
+[def _lower_    [globalref boost::xpressive::lower lower]]
+[def _print_    [globalref boost::xpressive::print print]]
+[def _punct_    [globalref boost::xpressive::punct punct]]
+[def _space_    [globalref boost::xpressive::space space]]
+[def _upper_    [globalref boost::xpressive::upper upper]]
+[def _xdigit_   [globalref boost::xpressive::xdigit xdigit]]
+[def _set_      [globalref boost::xpressive::set set]]
+[def _repeat_   [funcref boost::xpressive::repeat repeat]]
+[def _range_    [funcref boost::xpressive::range range]]
+[def _icase_    [funcref boost::xpressive::icase icase]]
+[def _before_   [funcref boost::xpressive::before before]]
+[def _after_    [funcref boost::xpressive::after after]]
+[def _keep_     [funcref boost::xpressive::keep keep]]
+
 [table Perl syntax vs. Static xpressive syntax
     [[Perl]               [Static xpressive]                              [Meaning]]
-    [[[^.]]               [`_`]                                           [any character (assuming Perl's /s modifier).]]
+    [[[^.]]               [[globalref boost::xpressive::_ `_`]]           [any character (assuming Perl's /s modifier).]]
     [[[^ab]]              [`a >> b`]                                      [sequencing of [^a] and [^b] sub-expressions.]]
     [[[^a|b]]             [`a | b`]                                       [alternation of [^a] and [^b] sub-expressions.]]
-    [[[^(a)]]             [`(s1= a)`]                                     [group and capture a back-reference.]]
+    [[[^(a)]]             [`(_s1_= a)`]                                   [group and capture a back-reference.]]
     [[[^(?:a)]]           [`(a)`]                                         [group and do not capture a back-reference.]]
-    [[[^\1]]              [`s1`]                                          [a previously captured back-reference.]]
+    [[[^\1]]              [`_s1_`]                                        [a previously captured back-reference.]]
     [[[^a*]]              [`*a`]                                          [zero or more times, greedy.]]
     [[[^a+]]              [`+a`]                                          [one or more times, greedy.]]
     [[[^a?]]              [`!a`]                                          [zero or one time, greedy.]]
-    [[[^a{n,m}]]          [`repeat<n,m>(a)`]                              [between [^n] and [^m] times, greedy.]]
+    [[[^a{n,m}]]          [`_repeat_<n,m>(a)`]                            [between [^n] and [^m] times, greedy.]]
     [[[^a*?]]             [`-*a`]                                         [zero or more times, non-greedy.]]
     [[[^a+?]]             [`-+a`]                                         [one or more times, non-greedy.]]
     [[[^a??]]             [`-!a`]                                         [zero or one time, non-greedy.]]
-    [[[^a{n,m}?]]         [`-repeat<n,m>(a)`]                             [between [^n] and [^m] times, non-greedy.]]
-    [[[^^]]               [`bos`]                                         [beginning of sequence assertion.]]
-    [[[^$]]               [`eos`]                                         [end of sequence assertion.]]
-    [[[^\b]]              [`_b`]                                          [word boundary assertion.]]
-    [[[^\B]]              [`~_b`]                                         [not word boundary assertion.]]
-    [[[^\\n]]             [`_n`]                                          [literal newline.]]
-    [[[^.]]               [`~_n`]                                         [any character except a literal newline (without Perl's /s modifier).]]
-    [[[^\\r?\\n|\\r]]     [`_ln`]                                         [logical newline.]]
-    [[[^\[^\\r\\n\]]]     [`~_ln`]                                        [any single character not a logical newline.]]
-    [[[^\w]]              [`_w`]                                          [a word character, equivalent to set\[alnum | '_'\].]]
-    [[[^\W]]              [`~_w`]                                         [not a word character, equivalent to ~set\[alnum | '_'\].]]
-    [[[^\d]]              [`_d`]                                          [a digit character.]]
-    [[[^\D]]              [`~_d`]                                         [not a digit character.]]
-    [[[^\s]]              [`_s`]                                          [a space character.]]
-    [[[^\S]]              [`~_s`]                                         [not a space character.]]
-    [[[^\[:alnum:\]]]     [`alnum`]                                       [an alpha-numeric character.]]
-    [[[^\[:alpha:\]]]     [`alpha`]                                       [an alphabetic character.]]
-    [[[^\[:blank:\]]]     [`blank`]                                       [a horizontal white-space character.]]
-    [[[^\[:cntrl:\]]]     [`cntrl`]                                       [a control character.]]
-    [[[^\[:digit:\]]]     [`digit`]                                       [a digit character.]]
-    [[[^\[:graph:\]]]     [`graph`]                                       [a graphable character.]]
-    [[[^\[:lower:\]]]     [`lower`]                                       [a lower-case character.]]
-    [[[^\[:print:\]]]     [`print`]                                       [a printing character.]]
-    [[[^\[:punct:\]]]     [`punct`]                                       [a punctuation character.]]
-    [[[^\[:space:\]]]     [`space`]                                       [a white-space character.]]
-    [[[^\[:upper:\]]]     [`upper`]                                       [an upper-case character.]]
-    [[[^\[:xdigit:\]]]    [`xdigit`]                                      [a hexadecimal digit character.]]
-    [[[^\[0-9\]]]         [`range('0','9')`]                              [characters in range `'0'` through `'9'`.]]
+    [[[^a{n,m}?]]         [`-_repeat_<n,m>(a)`]                           [between [^n] and [^m] times, non-greedy.]]
+    [[[^^]]               [`_bos_`]                                       [beginning of sequence assertion.]]
+    [[[^$]]               [`_eos_`]                                       [end of sequence assertion.]]
+    [[[^\b]]              [`_b_`]                                         [word boundary assertion.]]
+    [[[^\B]]              [`~_b_`]                                        [not word boundary assertion.]]
+    [[[^\\n]]             [`_n_`]                                         [literal newline.]]
+    [[[^.]]               [`~_n_`]                                        [any character except a literal newline (without Perl's /s modifier).]]
+    [[[^\\r?\\n|\\r]]     [`_ln_`]                                        [logical newline.]]
+    [[[^\[^\\r\\n\]]]     [`~_ln_`]                                       [any single character not a logical newline.]]
+    [[[^\w]]              [`_w_`]                                         [a word character, equivalent to set\[alnum | '_'\].]]
+    [[[^\W]]              [`~_w_`]                                        [not a word character, equivalent to ~set\[alnum | '_'\].]]
+    [[[^\d]]              [`_d_`]                                         [a digit character.]]
+    [[[^\D]]              [`~_d_`]                                        [not a digit character.]]
+    [[[^\s]]              [`_s_`]                                         [a space character.]]
+    [[[^\S]]              [`~_s_`]                                        [not a space character.]]
+    [[[^\[:alnum:\]]]     [`_alnum_`]                                     [an alpha-numeric character.]]
+    [[[^\[:alpha:\]]]     [`_alpha_`]                                     [an alphabetic character.]]
+    [[[^\[:blank:\]]]     [`_blank_`]                                     [a horizontal white-space character.]]
+    [[[^\[:cntrl:\]]]     [`_cntrl_`]                                     [a control character.]]
+    [[[^\[:digit:\]]]     [`_digit_`]                                     [a digit character.]]
+    [[[^\[:graph:\]]]     [`_graph_`]                                     [a graphable character.]]
+    [[[^\[:lower:\]]]     [`_lower_`]                                     [a lower-case character.]]
+    [[[^\[:print:\]]]     [`_print_`]                                     [a printing character.]]
+    [[[^\[:punct:\]]]     [`_punct_`]                                     [a punctuation character.]]
+    [[[^\[:space:\]]]     [`_space_`]                                     [a white-space character.]]
+    [[[^\[:upper:\]]]     [`_upper_`]                                     [an upper-case character.]]
+    [[[^\[:xdigit:\]]]    [`_xdigit_`]                                    [a hexadecimal digit character.]]
+    [[[^\[0-9\]]]         [`_range_('0','9')`]                            [characters in range `'0'` through `'9'`.]]
     [[[^\[abc\]]]         [`as_xpr('a') | 'b' |'c'`]                      [characters `'a'`, `'b'`, or `'c'`.]]
-    [[[^\[abc\]]]         [`(set= 'a','b','c')`]                          [['same as above]]]
-    [[[^\[0-9abc\]]]      [`set[ range('0','9') | 'a' | 'b' | 'c' ]`]     [characters `'a'`, `'b'`, `'c'` or  in range `'0'` through `'9'`.]]
-    [[[^\[0-9abc\]]]      [`set[ range('0','9') | (set= 'a','b','c') ]`]  [['same as above]]]
-    [[[^\[^abc\]]]        [`~(set= 'a','b','c')`]                         [not characters `'a'`, `'b'`, or `'c'`.]]
-    [[[^(?i:['stuff])]]   [`icase(`[^['stuff]]`)`]                        [match ['stuff] disregarding case.]]
-    [[[^(?>['stuff])]]    [`keep(`[^['stuff]]`)`]                         [independent sub-expression, match ['stuff] and turn off backtracking.]]
-    [[[^(?=['stuff])]]    [`before(`[^['stuff]]`)`]                       [positive look-ahead assertion, match if before ['stuff] but don't include ['stuff] in the match.]]
-    [[[^(?!['stuff])]]    [`~before(`[^['stuff]]`)`]                      [negative look-ahead assertion, match if not before ['stuff].]]
-    [[[^(?<=['stuff])]]   [`after(`[^['stuff]]`)`]                        [positive look-behind assertion, match if after ['stuff] but don't include ['stuff] in the match. (['stuff] must be constant-width.)]]
-    [[[^(?<!['stuff])]]   [`~after(`[^['stuff]]`)`]                       [negative look-behind assertion, match if not after ['stuff]. (['stuff] must be constant-width.)]]
+    [[[^\[abc\]]]         [`(_set_= 'a','b','c')`]                        [['same as above]]]
+    [[[^\[0-9abc\]]]      [`_set_[ _range_('0','9') | 'a' | 'b' | 'c' ]`] [characters `'a'`, `'b'`, `'c'` or  in range `'0'` through `'9'`.]]
+    [[[^\[0-9abc\]]]      [`_set_[ _range_('0','9') | (_set_= 'a','b','c') ]`]  [['same as above]]]
+    [[[^\[^abc\]]]        [`~(_set_= 'a','b','c')`]                       [not characters `'a'`, `'b'`, or `'c'`.]]
+    [[[^(?i:['stuff])]]   [`_icase_(`[^['stuff]]`)`]                      [match ['stuff] disregarding case.]]
+    [[[^(?>['stuff])]]    [`_keep_(`[^['stuff]]`)`]                       [independent sub-expression, match ['stuff] and turn off backtracking.]]
+    [[[^(?=['stuff])]]    [`_before_(`[^['stuff]]`)`]                     [positive look-ahead assertion, match if before ['stuff] but don't include ['stuff] in the match.]]
+    [[[^(?!['stuff])]]    [`~_before_(`[^['stuff]]`)`]                    [negative look-ahead assertion, match if not before ['stuff].]]
+    [[[^(?<=['stuff])]]   [`_after_(`[^['stuff]]`)`]                      [positive look-behind assertion, match if after ['stuff] but don't include ['stuff] in the match. (['stuff] must be constant-width.)]]
+    [[[^(?<!['stuff])]]   [`~_after_(`[^['stuff]]`)`]                     [negative look-behind assertion, match if not after ['stuff]. (['stuff] must be constant-width.)]]
 ]
 \n
 
Modified: branches/proto/v4/status/Jamfile.v2
==============================================================================
--- branches/proto/v4/status/Jamfile.v2	(original)
+++ branches/proto/v4/status/Jamfile.v2	2008-08-11 03:33:00 EDT (Mon, 11 Aug 2008)
@@ -98,6 +98,7 @@
     preprocessor/test           # test-suite preprocessor
     program_options/test        # test-suite program_options
     property_map/test           # test-suite property_map
+    proto/test                  # test-suite proto
     ptr_container/test          # test-suite ptr_container
     python/test                 # test-suite python
     random/test                 # test-suite random