1 @node Development Tools, , Debugging Tools, Top
2 @appendix Development Tools
4 Here are some tools that you might find useful while developing code.
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
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-*}.
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.
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
46 For more information, visit the @uref{https://www.cvshome.org/, , CVS
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, ,
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