Suggest a line limit of 79 characters.
[pintos-anon] / doc / standards.texi
index 7af266e9c10b9cecb5be44f8ae190acf9a8048ef..ab0f01a15c4965c0641f787d606059e90ee7bc3b 100644 (file)
@@ -39,13 +39,23 @@ follows the @uref{http://www.gnu.org/prep/standards_toc.html, , GNU
 Coding Standards}.  We encourage you to follow the applicable parts of
 them too, especially chapter 5, ``Making the Best Use of C.''  Using a
 different style won't cause actual problems, but it's ugly to see
-gratuitous differences in style from one function to another.
+gratuitous differences in style from one function to another.  If your
+code is too ugly, it will cost you points.
 
-Pintos comments sometimes refer to outside standards or
+Please limit C source file lines to at most 79 characters long.
+
+Pintos comments sometimes refer to external standards or
 specifications by writing a name inside square brackets, like this:
 @code{[IA32-v3]}.  These names refer to the reference names used in
 this documentation (@pxref{References}).
 
+If you remove existing Pintos code, please delete it from your source
+file entirely.  Don't just put it into a comment or a conditional
+compilation directive, because that makes the resulting code hard to
+read.  We're only going to do a compile in the directory for the current
+project, so you don't need to make sure that the previous projects also
+compile.
+
 @node Conditional Compilation
 @section Conditional Compilation
 
@@ -69,17 +79,19 @@ compile properly without the need for any new macros to be defined.
 There are a few exceptions:
 
 @itemize @bullet
-@item
-Problem 1-2, @func{thread_join}.  Some other code expects
-@code{THREAD_JOIN_IMPLEMENTED} to be defined once you've implemented
-this function.
-
 @item
 Problem 1-4, the advanced scheduler.  We must be able to turn this on
 and off with a compile-time directive.  You must use the macro name we
 specify for that part.  @xref{Problem 1-4 Advanced Scheduler}, for
 details.
 
+@item
+Problem 3-2, paging to and from disk.  Your page replacement policy must
+default to LRU-like replacement, but we must be able to choose a random
+replacement policy with a compile-time directive.  You must use the
+macro name we specify for that part.  @xref{Problem 3-2 Paging To and
+From Disk}, for details.
+
 @item
 Code written for extra credit may be included conditionally.  If the
 extra credit code changes the normally expected functionality of the
@@ -192,7 +204,7 @@ terminator and it has performance problems besides.  Again, use
 @func{strlcpy}.
 
 @item strcat
-Same issue as @func{strcpy}, but substitute @func{strlcat}.
+Same issue as @func{strcpy}.  Use @func{strlcat} instead.
 Again, refer to comments in its source code in @code{lib/string.c} for
 documentation.