⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hacking.txt

📁 Boost provides free peer-reviewed portable C++ source libraries. We emphasize libraries that work
💻 TXT
字号:
Copyright 2003, 2006 Vladimir PrusDistributed under the Boost Software License, Version 1.0.(See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)             ----------------------------------             Boost.Build contributor guidelines             ----------------------------------Boost.Build is an open-source project. This means that we welcome and appreciateall contributions --- be it ideas, bug reports, or patches. This documentcontains guidelines which helps to assure that development goes on smoothly, andchanges are made quickly.The guidelines are not mandatory, and you can decide for yourself which one tofollow. But note, that 10 mins that you spare writing a comment, for example,might lead to significally longer delay for everyone.Before contributing, make sure you are subscribed to our mailing list   boost-build@lists.boost.orgAdditional resources include   - The issue tracker     http://zigzag.cs.msu.su/boost.build   - commits mailing list:     boost-build@lists.sourceforge.net     http://sourceforge.net/mailarchive/forum.php?forum_id=9097BUGS and PATCHESBoth bugs and patches can be send to our mailing list.When reporting a bug, please try to provide the following information.   - What you did. A minimal reproducible testcase is very much appreciated.     Shell script with some annotations is much better than verbose description     of the problem. A regression test is the best (see test/test_system.html).   - What you got.   - What you expected.   - What version of Boost.Build and Boost.Jam did you use. If possible,     please try to test with the CVS HEAD state.When submitting a patch, please:  - make a single patch for a single logical change  - follow the policies and coding conventions below,  - send patches in unified diff format,    (using either "cvs diff -u" or "diff -u")  - provide a log message together with the patch  - put the patch and the log message as attachment to your email.The purpose of log message serves to communicate what was changed, and *why*.Without a good log message, you might spend a lot of time later, wondering wherea strange piece of code came from and why it was necessary.The good log message mentions each changed file and each rule/method, sayingwhat happend to it, and why. Consider, the following log message    Better direct request handling.     * new/build-request.jam       (directly-requested-properties-adjuster): Redo.     * new/targets.jam       (main-target.generate-really): Adjust properties here.     * new/virtual-target.jam       (register-actual-name): New rule.       (virtual-target.actualize-no-scanner): Call the above, to detected bugs,       where two virtual target correspond to one Jam target name.The log messages for the last two files are good. They tell what was changed.The change to the first file is clearly undercommented.It's OK to use terse log messages for uninteresting changes, like ones inducedby interface changes elsewhere.POLICIES.1. Testing.All serious changes must be tested. New rules must be tested by the module wherethey are declared. Test system (test/test_system.html) should be used to verifyuser-observable behaviour.2. Documentation.It turns out that it's hard to have too much comments, but it's easy to have toolittle. Please prepend each rule with a comment saying what the rule does andwhat arguments mean. Stop for a minute and consider if the comment makes sensefor anybody else, and completely describes what the rules does. Generic phraseslike "adjusts properties" are really not enough.When applicable, make changes to the user documentation as well.CODING CONVENTIONS.    1. All names of rules and variables are lowercase with "-" to separate    words.        rule call-me-ishmael ( ) ...    2. Names with dots in them are "intended globals". Ordinary globals use a    dot prefix:        .foobar        $(.foobar)    3. Pseudofunctions or associations are <parameter>.<property>:        $(argument).name = hello ;        $($(argument).name)    4. Class attribute names are prefixed with "self.":        self.x        $(self.x)    5. Builtin rules are called via their ALL_UPPERCASE_NAMES:        DEPENDS $(target) : $(sources) ;    6. Opening and closing braces go on separate lines:        if $(a)        {            #        }        else        {            #        }HTML DOCUMENTATION.    Please pass HTML files though HTML Tidy (http://tidy.sf.net) before    comitting. This has to important purposes:    - detecting bad HTML    - converting files to uniform indentation style, which inverses effect of      different editors and makes differences between revisions much smaller and      easy for review.    Alas, the way Tidy indents HTML differs between version. Please use the    version available at       http://tidy.sourceforge.net/src/old/tidy_src_020411.tgz    and "-i -wrap 78" command line parameters.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -