1*404b540aSrobert<?xml version="1.0" encoding="ISO-8859-1"?> 2*404b540aSrobert<!DOCTYPE html 3*404b540aSrobert PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 4*404b540aSrobert "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 5*404b540aSrobert 6*404b540aSrobert<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 7*404b540aSrobert<head> 8*404b540aSrobert <title>How to contribute</title> 9*404b540aSrobert<link rel="StyleSheet" href="../lib3styles.css" type="text/css" /> 10*404b540aSrobert<link rel="Start" href="../documentation.html" type="text/html" 11*404b540aSrobert title="GNU C++ Standard Library" /> 12*404b540aSrobert<link rel="Help" href="../faq/index.html" type="text/html" title="F.A.Q." /> 13*404b540aSrobert</head> 14*404b540aSrobert<!--990301 slightly modified version of the GCC contribute.html file--> 15*404b540aSrobert<!-- #include virtual="/include/header-subpages.html"--> 16*404b540aSrobert<body> 17*404b540aSrobert<h2>How to contribute</h2> 18*404b540aSrobert<p> The Standard C++ Library v3, follows an open development 19*404b540aSrobertmodel. Active contributors are assigned maintainer-ship 20*404b540aSrobertresponsibility, and given write access to the CVS repository. First 21*404b540aSroberttime contributors should follow this procedure: 22*404b540aSrobert</p> 23*404b540aSrobert 24*404b540aSrobert<hr /> 25*404b540aSrobert<h4>ONE : read the documentation</h4> 26*404b540aSrobert 27*404b540aSrobert<ul> 28*404b540aSrobert <li> Get and read the relevant sections of the C++ language 29*404b540aSrobertspecification. Copies of the full ISO 14882 standard are available on 30*404b540aSrobertline via the ISO mirror site for committee members. Non-members, or 31*404b540aSrobertthose who have not paid for the privilege of sitting on the committee 32*404b540aSrobertand sustained their two meeting commitment for voting rights, may get 33*404b540aSroberta copy of the standard from their respective national standards 34*404b540aSrobertorganization. In the USA, this national standards organization is ANSI 35*404b540aSrobertand their web-site is right 36*404b540aSrobert 37*404b540aSrobert <a href="http://www.ansi.org">here.</a> 38*404b540aSrobert(And if you've already registered with them, clicking this link will take you to directly to the place where you can 39*404b540aSrobert<a href="http://webstore.ansi.org/ansidocstore/product.asp?sku=ISO%2FIEC+14882%3A2003">buy the standard on-line.)</a> 40*404b540aSrobert</li> 41*404b540aSrobert 42*404b540aSrobert<li> The library working group bugs, and known defects, can be obtained here: 43*404b540aSrobert <a href="http://www.open-std.org/jtc1/sc22/wg21/">http://www.open-std.org/jtc1/sc22/wg21 </a> 44*404b540aSrobert</li> 45*404b540aSrobert 46*404b540aSrobert<li> The newsgroup dedicated to standardization issues is comp.std.c++: this FAQ for this group is quite useful and can be found <a href="http://www.jamesd.demon.co.uk/csc/faq.html"> here </a>. 47*404b540aSrobert</li> 48*404b540aSrobert 49*404b540aSrobert <li> Peruse the <a href="http://www.gnu.org/prep/standards_toc.html">GNU Coding Standards</a>, and chuckle when you hit the part about "Using Languages Other Than C." 50*404b540aSrobert</li> 51*404b540aSrobert 52*404b540aSrobert <li> Be familiar with the extensions that preceded these general GNU rules. These style issues for libstdc++ can be found in the file C++STYLE, located in the root level of the distribution, or <a href="C++STYLE"> here. </a> 53*404b540aSrobert</li> 54*404b540aSrobert 55*404b540aSrobert <li> And last but certainly not least, read the library-specific information found <a href="../documentation.html"> here.</a> 56*404b540aSrobert</li> 57*404b540aSrobert 58*404b540aSrobert</ul> 59*404b540aSrobert 60*404b540aSrobert 61*404b540aSrobert 62*404b540aSrobert<hr /> 63*404b540aSrobert<h4>TWO : copyright assignment</h4> 64*404b540aSrobert<p> 65*404b540aSrobertSmall changes can be accepted without a copyright assignment form on 66*404b540aSrobertfile. New code and additions to the library need completed copyright 67*404b540aSrobertassignment form on file at the FSF. Note: your employer may be required 68*404b540aSrobertto fill out appropriate disclaimer forms as well. 69*404b540aSrobert</p> 70*404b540aSrobert 71*404b540aSrobert<p> Historically, the libstdc++ assignment form added the following question: 72*404b540aSrobert</p> 73*404b540aSrobert 74*404b540aSrobert<code>[Which Belgian comic book character is better, Tintin or 75*404b540aSrobertAsterix, and why?]</code> 76*404b540aSrobert 77*404b540aSrobert<p> 78*404b540aSrobertWhile not strictly necessary, humoring the maintainers and answering 79*404b540aSrobertthis question would be appreciated. 80*404b540aSrobert</p> 81*404b540aSrobert 82*404b540aSrobert<p> 83*404b540aSrobertFor more information about getting a copyright assignment, please see 84*404b540aSrobert<a href=http://www.gnu.org/prep/maintain_4.html#SEC4=> Legal Issues</a> 85*404b540aSrobert</p> 86*404b540aSrobert 87*404b540aSrobert<p> 88*404b540aSrobertPlease contact <a href="mailto:bkoz+assign@redhat.com">Benjamin 89*404b540aSrobertKosnik</a> if you are confused about the assignment or have general 90*404b540aSrobertlicensing questions. When requesting an assignment form from <a 91*404b540aSrobertHREF="mailto:assign@gnu.org">assign@gnu.org</a>, please cc 92*404b540aSrobertthe above libstdc++ maintainer so that progress can be monitored. 93*404b540aSrobert</p> 94*404b540aSrobert 95*404b540aSrobert 96*404b540aSrobert<hr /> 97*404b540aSrobert<h4>THREE : submitting patches</h4> 98*404b540aSrobert 99*404b540aSrobert<p> 100*404b540aSrobertEvery patch must have several pieces of information before it can be 101*404b540aSrobertproperly evaluated. Ideally (and to ensure the fastest possible 102*404b540aSrobertresponse from the maintainers) it would have all of these pieces: 103*404b540aSrobert</p> 104*404b540aSrobert 105*404b540aSrobert<ul> 106*404b540aSrobert 107*404b540aSrobert <li> A description of the bug and how your patch fixes this bug. For 108*404b540aSrobert new features a description of the feature and your implementation. </li> 109*404b540aSrobert 110*404b540aSrobert <li> A ChangeLog entry as plain text; see the various ChangeLog files 111*404b540aSrobert for format and content. If using you are using emacs as your editor, 112*404b540aSrobert simply position the insertion point at the beginning of your change 113*404b540aSrobert and hit CX-4a to bring up the appropriate ChangeLog 114*404b540aSrobert entry. See--magic! Similar functionality also exists for vi. </li> 115*404b540aSrobert 116*404b540aSrobert <li> A testsuite submission or sample program that will easily and 117*404b540aSrobert simply show the existing error or test new functionality. </li> 118*404b540aSrobert 119*404b540aSrobert <li> The patch itself. If you are accessing the CVS repository at 120*404b540aSrobert Cygnus, use "cvs update; cvs diff -c3p NEW"; else, use "diff -c3p OLD 121*404b540aSrobert NEW" ... If your version of diff does not support these options, then 122*404b540aSrobert get the latest version of GNU diff. </li> 123*404b540aSrobert 124*404b540aSrobert <li> When you have all these pieces, bundle them up in a mail message 125*404b540aSrobertand send it to libstdc++@gcc.gnu.org. All patches and related 126*404b540aSrobertdiscussion should be sent to the libstdc++ mailing list. </li> 127*404b540aSrobert 128*404b540aSrobert</ul> 129*404b540aSrobert 130*404b540aSrobert</body> 131*404b540aSrobert</html> 132*404b540aSrobert 133