86c47f471e7c3cb764cfd1aae939adcc2eeb4a0c
[pintos-anon] / doc / devel.texi
1 @node Development Tools, , Debugging Tools, Top
2 @appendix Development Tools
3
4 Here are some tools that you might find useful while developing code.
5
6 @menu
7 * Tags::                        
8 * CVS::                         
9 * SourceForge::                 
10 * VNC::                         
11 @end menu
12
13 @node Tags
14 @section Tags
15
16 Tags are an index to the functions and global variables declared in a
17 program.  Many editors, including Emacs and @command{vi}, can use
18 them.  The @file{Makefile} in @file{pintos/src} produces Emacs-style
19 tags with the command @code{make TAGS} or @command{vi}-style tags with
20 @code{make tags}.
21
22 In Emacs, use @kbd{M-.} to follow a tag in the current window,
23 @kbd{C-x 4 .} in a new window, or @kbd{C-x 5 .} in a new frame.  If
24 your cursor is on a symbol name for any of those commands, it becomes
25 the default target.  If a tag name has multiple definitions, @kbd{M-0
26 M-.} will jump to the next one.  To jump back to where you were before
27 you followed the last tag, use @kbd{M-*}.
28
29 @node CVS
30 @section CVS
31
32 CVS is a version-control system.  That is, you can use it to keep
33 track of multiple versions of files.  The idea is that you do some
34 work on your code and test it, then check it into the version-control
35 system.  If you decide that the work you've done since your last
36 check-in is no good, you can easily revert to the last checked-in
37 version.  Furthermore, you can retrieve any old version of your code
38 as of some given day and time.  The version control logs tell you who
39 made changes and when.
40
41 CVS is not the best version control system out there.  However, it's
42 free, it's ubiquitous, and it's fairly easy to use.  More to the
43 point, it's already available on the Leland machines you're using for
44 the projects.
45
46 For more information, visit the @uref{https://www.cvshome.org/, , CVS
47 home page}.
48
49 @node SourceForge
50 @section SourceForge
51
52 SourceForge is a web-based system for facilitating software
53 development.  It provides you with a version-control system (typically
54 CVS, as described above) and other tools for tracking your software.
55 You can use it to store files, track bugs, and post notes about
56 development progress.  It's also free.  You can set up your own
57 project in SourceForge at @uref{http://sourceforge.net, ,
58 sourceforge.net}.
59
60 @node VNC
61 @section VNC
62
63 VNC stands for Virtual Network Computing.  It is, in essence, a remote
64 display system which allows you to view a computing ``desktop''
65 environment not only on the machine where it is running, but from
66 anywhere on the Internet and from a wide variety of machine
67 architectures.  It is already installed on the Leland machines.  For
68 more information, look at the @uref{http://www.realvnc.com/, , VNC
69 Home Page}.