[C++] Compile-Time Reflection Branch

Gabriel Dos Reis gdr@integrable-solutions.net
Mon Feb 10 23:22:00 GMT 2003


Phil Edwards <phil@jaj.com> writes:

| On Tue, Jan 28, 2003 at 12:02:30PM +0100, Gabriel Dos_Reis wrote:
| >   I've created a branch based on mainline, named "cxx-reflection-branch".
| > It purpose is to provide testbed for future extensions (to ISO C++ or
| > GNU C++) supporting compile-time reflection.
| 
| Are there guidelines somewhere for how to handle checkins and merges
| with regard to changelog entries?  For example, the tree-ssa branch has
| "ChangeLog.tree-saa" files in whatever directory they change.  I don't
| know what they use for a log entry in the main changelog whenever merges
| take place, though.
| 
| What are the rules for changes on this branch?
| 
| Maybe something like
| 
|     http://gcc.gnu.org/projects/tree-ssa/
| 
| somewhere?  (Although this work is not so big as tree-ssa yet.)

The below is largely based on tree-ssa/index.html.

Any comments?

-- Gaby

Index: index.html
===================================================================
RCS file: index.html
diff -N index.html
*** /dev/null	1 Jan 1970 00:00:00 -0000
--- index.html	10 Feb 2003 23:19:02 -0000
***************
*** 0 ****
--- 1,75 ----
+ <html>
+ <head>
+ <title>Compile Time Reflection and Template Meta-Programming in C++</title>
+ </head>
+ 
+ <body>
+ <h1>Compile Time Reflection for C++</h1>
+ 
+ <p>This works is part of the effort of providing support for compile
+ time reflection in C++.  A basic example of such feature is the   
+ type traits proposal by John Maddock.  More generally, this project
+ aims at providing support for compile-time features that enhance and
+ facilitate development of C++ libraries and application programs.</p> 
+ 
+ 
+ <h1>Template Meta-Programming</h1>
+ 
+ <p>This sub-project aims at implementing and providing experience with
+ features that improve support for template meta-programming and
+ constrained genericity in C++.</p>
+ 
+ <h3>Contributing</h3>
+ 
+ <p>Checkout the <code>cxx-reflection-branch</code> branch
+ following the instructions found in the <a href="../../cvs.html">CVS
+ documentation</a>.</p> 
+ 
+ <p>When posting to the development lists, please mark messages and patches with
+ <code>[cxx-reflection]</code> in the subject.  As this is a branch, and not
+ the mainline, the usual maintainer rules do not apply.  This branch is
+ maintained by <a href="mailto:gdosreis@sophia.inria.fr">Gabriel Dos Reis
+ <gdosreis@sophia.inria.fr></a>.  Approval from the usual
+ maintainers will be needed when submitting patches from the branch
+ onto the mainline.</p> 
+ 
+ <h3>Branch stability</h3>
+ 
+ <p>While this is an experimental branch and people are encouraged to
+ add new features to it, default bootstraps and c-torture, C++ and Java
+ tests <em>must always work</em> before a patch is allowed in the
+ branch.  If you want to contribute a new feature that is still not
+ complete, you should:</p>
+ 
+ <ol>
+ <li>Add a new -f flag to enable your code.</li>
+ <li>Document the new -f flag in doc/invoke.texi.</li>
+ <li>Configure and bootstrap the compiler with all the default front ends
+     enabled.</li>
+ <li>Run <code>make check</code> with no new regressions.</li>
+ </ol>
+ 
+ <p>Patches that break default bootstraps will be removed (if a
+ fix is not immediately obvious).</p>
+ 
+ <p>When submitting patches that implement new fonctionalities, please
+ include a reference to the paper and/or book where you are getting the
+ complete syntactic and semantic specifications from.  If it's your own
+ research work, include a Technical Report, Thesis or Paper reference
+ for it.</p> 
+ 
+ <p>There are regular mainline merges about 3 or 4 times a month.  The
+ latest merge tag is always added to GCC's version string.  A merge may
+ be postponed if there is major breakage in mainline.</p>
+ 
+ <p>Work from the branch will be incorporated into mainline only when if 
+ <ol> 
+ <li>it can be proved that it provides better way to implement an
+ existing standard feature; or</li>
+ <li>it aims at implementing features under standardization; or <li>
+ <li>its specifications are clearly written in Standardeze and its
+ usefulness is acknowledged and accepted by the C++ front-end maintainers.
+ </ol>
+ 
+ </body>
+ </html>




More information about the Gcc mailing list