X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?p=pintos-anon;a=blobdiff_plain;f=doc%2Fdevel.texi;h=588f1857474ca5b109d4f63b543b968c64ff2e36;hp=86c47f471e7c3cb764cfd1aae939adcc2eeb4a0c;hb=919347c164606c3f1544b2e8bd62f505aeda80a1;hpb=9cb684d97af902ab238b658d40b155cc33e2dcc7 diff --git a/doc/devel.texi b/doc/devel.texi index 86c47f4..588f185 100644 --- a/doc/devel.texi +++ b/doc/devel.texi @@ -1,13 +1,23 @@ -@node Development Tools, , Debugging Tools, Top +@node Development Tools @appendix Development Tools Here are some tools that you might find useful while developing code. @menu -* Tags:: -* CVS:: -* SourceForge:: -* VNC:: +* Tags:: +* cscope:: +@ifset recommendcvs +* CVS:: +@end ifset +@ifset recommendgit +* Git:: +@end ifset +@ifset recommendvnc +* VNC:: +@end ifset +@ifset recommendcygwin +* Cygwin:: +@end ifset @end menu @node Tags @@ -23,9 +33,50 @@ In Emacs, use @kbd{M-.} to follow a tag in the current window, @kbd{C-x 4 .} in a new window, or @kbd{C-x 5 .} in a new frame. If your cursor is on a symbol name for any of those commands, it becomes the default target. If a tag name has multiple definitions, @kbd{M-0 -M-.} will jump to the next one. To jump back to where you were before +M-.} jumps to the next one. To jump back to where you were before you followed the last tag, use @kbd{M-*}. +@node cscope +@section cscope + +The @command{cscope} program also provides an index to functions and +variables declared in a program. It has some features that tag +facilities lack. Most notably, it can find all the points in a +program at which a given function is called. + +The @file{Makefile} in @file{pintos/src} produces @command{cscope} +indexes when it is invoked as @code{make cscope}. Once the index has +been generated, run @command{cscope} from a shell command line; no +command-line arguments are normally necessary. Then use the arrow +keys to choose one of the search criteria listed near the bottom of +the terminal, type in an identifier, and hit @key{Enter}. +@command{cscope} will then display the matches in the upper part of +the terminal. You may use the arrow keys to choose a particular +match; if you then hit @key{Enter}, @command{cscope} will invoke the +default system editor@footnote{This is typically @command{vi}. To +exit @command{vi}, type @kbd{: q @key{Enter}}.} and position the +cursor on that match. To start a new search, type @key{Tab}. To exit +@command{cscope}, type @kbd{Ctrl-d}. + +Emacs and some versions of @command{vi} have their own interfaces to +@command{cscope}. For information on how to use these interface, +visit @url{http://cscope.sourceforge.net, the @command{cscope} home +page}. + +@ifset recommendgit +@node Git +@section Git + +It's crucial that you use a source code control system to manage your +Pintos code. This will allow you to keep track of your changes +and coordinate changes made by different people in the project. For this +class we recommend that you use Git; if you followed the instructions on +getting started, a Git repository will already have been created for you. +If you don't already know how to use Git, we recommend that you read +the @uref{http://git-scm.com/book, , Pro Git} book online. +@end ifset + +@ifset recommendcvs @node CVS @section CVS @@ -38,25 +89,17 @@ version. Furthermore, you can retrieve any old version of your code as of some given day and time. The version control logs tell you who made changes and when. -CVS is not the best version control system out there. However, it's -free, it's ubiquitous, and it's fairly easy to use. More to the -point, it's already available on the Leland machines you're using for -the projects. +CVS is not the best version control system out there, but it's +free, it's fairly easy to use, and it's already installed in most +Unix-like environments. For more information, visit the @uref{https://www.cvshome.org/, , CVS home page}. -@node SourceForge -@section SourceForge - -SourceForge is a web-based system for facilitating software -development. It provides you with a version-control system (typically -CVS, as described above) and other tools for tracking your software. -You can use it to store files, track bugs, and post notes about -development progress. It's also free. You can set up your own -project in SourceForge at @uref{http://sourceforge.net, , -sourceforge.net}. +@include localcvsinstructions.texi +@end ifset +@ifset recommendvnc @node VNC @section VNC @@ -64,6 +107,22 @@ VNC stands for Virtual Network Computing. It is, in essence, a remote display system which allows you to view a computing ``desktop'' environment not only on the machine where it is running, but from anywhere on the Internet and from a wide variety of machine -architectures. It is already installed on the Leland machines. For -more information, look at the @uref{http://www.realvnc.com/, , VNC +architectures. It is already installed on the lab machines. +For more information, look at the @uref{http://www.realvnc.com/, , VNC Home Page}. +@end ifset + +@ifset recommendcygwin +@node Cygwin +@section Cygwin + +@uref{http://cygwin.com/, ,Cygwin} provides a Linux-compatible environment +for Windows. It includes ssh client and an X11 server, Cygwin/X. If your +primary work environment is Windows, you will find Cygwin/X extremely +useful for these projects. Install Cygwin/X, then start the X server +and open a new xterm. The X11 server also allows you to run pintos while +displaying the bochs- or qemu-emulated console on your Windows desktop. +@end ifset + +@localdevelopmenttools{} +