llvm.org GIT mirror llvm / 669ed45
Subversionify the documentation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38442 91177308-0d34-0410-b5e6-96231b3b80d8 Reid Spencer 12 years ago
12 changed file(s) with 68 addition(s) and 81 deletion(s). Raw diff Collapse all Expand all
121121
122122 File Headers
123123
124

Every source file should have a header on it that

125 describes the basic purpose of the file. If a file does not have a header, it
126 should not be checked into CVS. Most source trees will probably have a standard
124

Every source file should have a header on it that describes the basic

125 purpose of the file. If a file does not have a header, it should not be
126 checked into Subversion. Most source trees will probably have a standard
127127 file header format. The standard format for the LLVM source tree looks like
128128 this:

129129
4545
4646
  • Attract both users and developers to the LLVM project.
  • 4747
  • Make life as simple and easy for contributors as possible.
  • 48
  • Keep the top of tree CVS/SVN trees as stable as possible.
  • 48
  • Keep the top of Subversion trees as stable as possible.
  • 4949
    5050
    5151

    This policy is aimed at frequent contributors to LLVM. People interested in

    9292

    When making a patch for review, the goal is to make it as easy for the

    9393 reviewer to read it as possible. As such, we recommend that you:

    9494
    95
  • Make your patch against the CVS HEAD (main development trunk),
  • 96 not a branch, and not an old version of LLVM. This makes it easy to
    97 apply the patch.
    95
  • Make your patch against the Subversion trunk, not a branch, and not an
  • 96 old version of LLVM. This makes it easy to apply the patch.
    9897
    9998
  • Similarly, patches should be submitted soon after they are generated.
  • 10099 Old patches may not apply correctly if the underlying code changes between
    101100 the time the patch was created and the time it is applied.
    102101
    103102
  • Patches should be made with this command:
  • 104
    cvs diff -Ntdup -5
    103
    svn diff -x -u
    105104 or with the utility utils/mkpatch, which makes it easy to read the
    106105 diff.
    107106
    140139

    Developers should participate in code reviews as both reviewers and

    141140 reviewees. If someone is kind enough to review your code, you should
    142141 return the favor for someone else. Note that anyone is welcome to review
    143 and give feedback on a patch, but only people with CVS write access can
    144 approve it.

    142 and give feedback on a patch, but only people with Subversion write access
    143 can approve it.

    145144
    146145
    147146
    366365 changes. Despite this, once set, the attribution of a file never changes.
    367366 Revision control keeps an accurate history of contributions.
    368367
  • Developers should maintain their entry in the
  • 369 CREDITS.txt
    368 CREDITS.txt
    370369 file to summarize their contributions.
    371370
  • Commit comments should contain correct attribution of the person who
  • 372371 submitted the patch if that person is not the committer (i.e. when a
    3838
  • The configure script finds the right C compiler, but it uses the
  • 3939 LLVM linker from a previous build. What do I do?
    4040
  • When creating a dynamic library, I get a strange GLIBC error.
  • 41
  • I've updated my source tree from CVS, and now my build is trying to use a
  • 42 file/directory that doesn't exist.
    41
  • I've updated my source tree from Subversion, and now my build is trying
  • 42 to use a file/directory that doesn't exist.
    4343
  • I've modified a Makefile in my source tree, but my build tree keeps using
  • 4444 the old version. What do I do?
    4545
  • I've upgraded to a new version of LLVM, and I get strange build
  • 4949
  • Compiling LLVM with GCC 3.3.2 fails, what should I do?
  • 5050
  • When I use the test suite, all of the C Backend tests fail. What is
  • 5151 wrong?
    52
  • After CVS update, rebuilding gives the error "No rule to make
  • 52
  • After Subversion update, rebuilding gives the error "No rule to make
  • 5353 target".
    5454
  • The llvmc program gives me errors/doesn't
  • 5555 work.
    256256
    257257
    258258
    259

    I've updated my source tree from CVS, and now my build is trying to use a

    260 file/directory that doesn't exist.

    259

    I've updated my source tree from Subversion, and now my build is trying to

    260 use a file/directory that doesn't exist.

    261261
    262262
    263263
    357357
    358358
    359359
    360

    After CVS update, rebuilding gives the error "No rule to make target".

    360

    After Subversion update, rebuilding gives the error

    361 "No rule to make target".

    361362
    362363
    363364
    371372
    372373
    373374
    374

    This may occur anytime files are moved within the CVS repository or removed

    375 entirely. In this case, the best solution is to erase all .d files,
    376 which list dependencies for source files, and rebuild:

    375

    This may occur anytime files are moved within the Subversion repository or

    376 removed entirely. In this case, the best solution is to erase all
    377 .d files, which list dependencies for source files, and rebuild:

    377378
    378379
    379380
    
                      
                    
    408409 available through a special version of GCC that LLVM calls the
    409410 C Front End

    410411

    There is an incomplete version of a Java front end available in the

    411 llvm-java CVS repository. There is no documentation on this yet so
    412 java module. There is no documentation on this yet so
    412413 you'll need to download the code, compile it, and try it.

    413

    In the examples/BFtoLLVM directory is a translator for the

    414 BrainF*** language (2002 Language Specification).

    415

    In the projects/Stacker directory is a compiler and runtime

    414

    In the stacker module is a compiler and runtime

    416415 library for the Stacker language, a "toy" language loosely based on Forth.

    417416

    The PyPy developers are working on integrating LLVM into the PyPy backend

    418417 so that PyPy language can translate to LLVM.

    9898
  • cd llvm
  • 9999
    100100
    101
  • With anonymous CVS access:
  • 101
  • With anonymous Subversion access:
  • 102102
    103103
  • cd where-you-want-llvm-to-live
  • 104
  • cvs -d
  • 105 :pserver:anon@llvm-cvs.cs.uiuc.edu:/var/cvs/llvm login
    106
  • Hit the return key when prompted for the password.
  • 107
  • cvs -z3 -d :pserver:anon@llvm-cvs.cs.uiuc.edu:/var/cvs/llvm
  • 108 co llvm
    104
  • svn co http://llvm.org/svn/llvm-project/llvm-top/trunk llvm-top
  • 105
    106
  • make checkout MODULE=llvm
  • 109107
  • cd llvm
  • 110
  • cvs up -P -d
  • 111108
    112109
    113110
    127124
    128125
    129126
    130

    It is strongly encouraged that you get the latest version from CVS. Much

    131 progress has been made since the 1.4 release.

    127

    It is strongly encouraged that you get the latest version from Subversion as

    128 changes are continually making the VS support better.

    132129
    133130
    134131
    138138 The Release Manager tags his/her llvm, llvm-test, and llvm-gcc working
    139139 directories with
    140140 "ROOT_RELEASE_XX" where XX is the major and minor
    141 release numbers (you can't have . in a cvs tag name). So, for Release 1.2,
    142 XX=12 and for Release 1.10, XX=110.
    141 release numbers. So, for Release 1.2, XX=12 and for Release 1.10, XX=110.
    143142
    144143

    145144 cvs tag ROOT_RELEASE_XX
    179178
    180179

    181180 After creating the llvm release branch, update the release branch's autoconf/configure.ac
    182 version from X.Xcvs to just X.X. Update it on mainline as well to be the next version
    183 (X.X+1cvs).
    181 version from X.Xsvn to just X.X. Update it on mainline as well to be the next version
    182 (X.X+1svn).
    184183

    185184
    186185
    315314
    316315
    317316

    318 Check out the llvm-www module from cvs. Create a new subdirectory X.X in the
    319 releases directory. Place the llvm, llvm-test, llvm-gcc source, and llvm-gcc
    317 Check out the website module from Subversion. Create a new
    318 subdirectory X.X in the releases directory. Place the llvm, llvm-test,
    319 llvm-gcc source, and llvm-gcc
    320320 binaries in this new directory. Copy the llvm/docs and LICENSE.txt files
    321321 into this new directory. Update the releases/download.html file with the new release.
    322322 Update the releases/index.html with the new release. Finally, update the main page (
    6666
    6767
  • All information necessary to reproduce the problem.
  • 6868
  • The reduced test-case that triggers the bug.
  • 69
  • The location where you obtained LLVM (if not from our CVS
  • 69
  • The location where you obtained LLVM (if not from our Subversion
  • 7070 repository).
    7171
    7272
    1313 PROJ_OBJ_DIR = .
    1414 DOXYGEN = doxygen
    1515 # Extract version number from the AC_INT line in configure.ac
    16 # AC_INIT([[llvm]],[[2.1cvs]],[llvmbugs@cs.uiuc.edu])
    16 # AC_INIT([[llvm]],[[2.1svn]],[llvmbugs@cs.uiuc.edu])
    1717 PACKAGE_VERSION = $(shell grep AC_INIT ../autoconf/configure.ac | sed -e 's/^[^0-9]*\([0-9_.a-zA-Z-]*\).*/\1/' )
    1818
    1919 $(PROJ_OBJ_DIR)/doxygen.cfg: doxygen.cfg.in
    8787 the name of your project.
    8888
    8989
  • 90 If you downloaded LLVM using CVS, remove all the directories named CVS (and all
    91 the files therein) from your project's new source tree. This will keep CVS
    92 from thinking that your project is inside llvm/projects/sample.
    93
    90 If you downloaded LLVM using Subversion, remove all the directories named .svn
    91 (and all the files therein) from your project's new source tree. This will
    92 keep Subversion from thinking that your project is inside
    93 llvm/trunk/projects/sample.
    9494
    9595
  • Add your source code and Makefiles to your source tree.
  • 9696
    4242 href="http://mail.cs.uiuc.edu/mailman/listinfo/llvmdev">LLVM developer's mailing
    4343 list is a good place to send them.

    4444
    45

    Note that if you are reading this file from CVS or the main LLVM web page,

    45

    Note that if you are reading this file from a Subversion checkout or the

    46 main LLVM web page,
    4647 this document applies to the next release, not the current one. To see
    4748 the release notes for the current or previous releases, see the
    4849 href="http://llvm.org/releases/">releases page.

    831832

    A wide variety of additional information is available on the

    832833 href="http://llvm.org">LLVM web page, in particular in the
    833834 href="http://llvm.org/docs/">documentation section. The web page also
    834 contains versions of the API documentation which is up-to-date with the CVS
    835 version of the source code.
    835 contains versions of the API documentation which is up-to-date with the
    836 Subversion version of the source code.
    836837 You can access versions of these documents specific to this release by going
    837838 into the "llvm/doc/" directory in the LLVM tree.

    838839
    13021302 sure you have the llvm sources in llvm
    13031303 (see Getting Started) and then use these
    13041304 commands:
    
                      
                    
    1305 cd llvm/projects
    1306 cvs co llvm-stacker
    1305 svn co http://llvm.org/svn/llvm-project/llvm-top/trunk llvm-top
    1306 cd llvm-top
    1307 make build MODULE=stacker
    13071308

    13081309

    Under the projects/llvm-stacker directory you will find the

    13091310 implementation of the Stacker compiler, as follows:

    105105
    106106
    107107
    108

    The tests are located in two separate CVS modules. The basic feature and

    109 regression tests are in the main "llvm" module under the directory
    110 llvm/test. A more comprehensive test suite that includes whole
    111 programs in C and C++ is in the llvm-test module. This module should
    112 be checked out to the llvm/projects directory. When you
    113 configure the llvm module, the llvm-test module
    114 will be automatically configured. Alternatively, you can configure the
    115 llvm-test module manually.

    108

    The tests are located in two separate Subversion modules. The basic feature

    109 and regression tests are in the main "llvm" module under the directory
    110 llvm/test. A more comprehensive test suite that includes whole
    111 programs in C and C++ is in the test-suite module. This module should
    112 be checked out to the llvm/projects directory as llvm-test (for
    113 historical purpose). When you configure the llvm module,
    114 the llvm-test directory will be automatically configured.
    115 Alternatively, you can configure the test-suite module manually.

    116116

    To run all of the simple tests in LLVM using DejaGNU, use the master Makefile

    117117 in the llvm/test directory:

    118118
    
                      
                    
    139139
    140140
    
                      
                    
    141141 % cd llvm/projects
    142 % cvs co llvm-test
    142 % svn co http://llvm.org/svn/llvm-project/test-suite/trunk llvm-test
    143143 % cd llvm-test
    144144 % ./configure --with-llvmsrc=$LLVM_SRC_ROOT --with-llvmobj=$LLVM_OBJ_ROOT
    145145 % gmake
    200200 programs generated as well as the speed with which LLVM compiles, optimizes, and
    201201 generates code.

    202202
    203

    All "whole program" tests are located in the llvm-test CVS

    203

    All "whole program" tests are located in the test-suite Subversion

    204204 module.

    205205
    206206
    237237 piece of LLVM assembly language code, often distilled from an actual
    238238 application or benchmark.

    239239
    240
  • llvm-test
  • 241 <p>The llvm-test CVS module contains programs that can be compiled
    240 <li>test-suite
    241

    The test-suite module contains programs that can be compiled

    242242 with LLVM and executed. These programs are compiled using the native compiler
    243243 and various LLVM backends. The output from the program compiled with the
    244244 native compiler is assumed correct; the results from the other programs are
    616616

    617617
    618618
  • cd into the llvm/projects directory
  • 619
  • check out the llvm-test module with:
  • 620 <tt>cvs -d :pserver:anon@llvm.org:/var/cvs/llvm co -PR llvm-test
    619 <li>check out the test-suite module with:
    620 svn co http://llvm.org/svn/llvm-project/test-suite/trunk llvm-test
    621621 This will get the test suite into llvm/projects/llvm-test
    622622
  • configure the test suite. You can do this one of two ways:
  • 623623
    759759 machine, take a look at the comments at the top of the
    760760 utils/NewNightlyTest.pl file. If you decide to set up a nightly tester
    761761 please choose a unique nickname and invoke utils/NewNightlyTest.pl
    762 with the "-nickname [yournickname]" command line option. We usually run it
    763 from a crontab entry that looks like this:

    764
    765
    766
    
                      
                    
    767 5 3 * * * $HOME/llvm/utils/NewNightlyTest.pl -parallel -nickname Nickname \
    768 $CVSROOT $HOME/buildtest $HOME/cvs/testresults
    769
    770
    771
    772

    Or, you can create a shell script to encapsulate the running of the script.

    762 with the "-nickname [yournickname]" command line option.
    763
    764

    You can create a shell script to encapsulate the running of the script.

    773765 The optimized x86 Linux nightly test is run from just such a script:

    774766
    775767
    776768
    
                      
                    
    777769 #!/bin/bash
    778770 BASE=/proj/work/llvm/nightlytest
    779 export CVSROOT=:pserver:anon@llvm.org:/var/cvs/llvm
    780771 export BUILDDIR=$BASE/build
    781772 export WEBDIR=$BASE/testresults
    782773 export LLVMGCCDIR=/proj/work/llvm/cfrontend/install
    785776 cd $BASE
    786777 cp /proj/work/llvm/llvm/utils/NewNightlyTest.pl .
    787778 nice ./NewNightlyTest.pl -nice -release -verbose -parallel -enable-linscan \
    788 -nickname NightlyTester -noexternals 2>&1 > output.log
    779 -nickname NightlyTester -noexternals > output.log 2>&1
    789780
    790781
    791782
    160160 (tarball)
    161161
    162162
    163
  • CVSWeb CVS Tree
  • 164 Browser
    163
  • ViewVC Repository Browser
  • 165164
    166165
    167166
    245244 closed, and when people submit patches to be included in LLVM. It is higher
    246245 volume than the LLVMdev list.
    247246
    248
  • The CVS Commits
  • 247
  • The Commits
  • 249248 Archive: This list contains all commit messages that are made when LLVM
    250 developers commit code changes to the CVS archive. It is useful for those who
    249 developers commit code changes to the repository. It is useful for those who
    251250 want to stay on the bleeding edge of LLVM development. This list is very high
    252251 volume.
    253252