Commit Diff


commit - 0023dde3260f4d6b085bed7d90bf8b1ca0daf77b
commit + cb27443abf3d6af6ab52377c71c843e619928433
blob - 7c6955065b2208d48858269988a4518fd806bc1b
blob + 5757e7082bd8c7300ce551b47fe0cb66926077e7
--- NOTES
+++ NOTES
@@ -27,6 +27,25 @@ There are a few shell scripts already included in bin 
 and samsave.  Arguably these directories should be broken up by
 architecture so that
 
+During the initial build of mk, you will likely see a message like
+
+	Assembler messages:
+	Error: can't open getcallerpc-386.s for reading
+	getcallerpc-386.s: No error
+
+This is not a problem.  The script tries to build getcallerpc
+from assembly and then C.  As long as one of them succeeds, great.
+
+There are various directories that are not built by default.
+They are listed in the BUGGERED definitions in src/mkfile and src/cmd/mkfile.
+These aren't built because they're not quite ready for prime time.
+Either they don't actually build or they haven't been very well tested.
+
+As of this writing, factotum is buggered because it's not done yet,
+and Venti and vac are buggered because they've hardly been tested
+and are in a state of flux (they were both quite rewritten for the port).
+	
+
 * Writing programs
 
 The bin/ directory contains shell scripts 9a, 9c, 9l, and 9ar that mimic
@@ -155,6 +174,13 @@ To check out from the anonymous CVS repository, use
 
 When prompted for a password, just hit enter.
 
+If there is already a /usr/local/plan9 directory (from a previous
+unpacking), remove it or move it out of the way.  You need write
+access to /usr/local in order to run the checkout, but after that
+you'll only need write access to the plan9 subtree.  I typically run
+the initial checkout as root and then chown -R rsc plan9 so that
+I can do things as rsc afterward.
+
 From then on, when you want to update, you can do
 
   cd /usr/local/plan9
@@ -173,6 +199,11 @@ you can run
 to generate the diff in a format that will be easy to apply.
 (You can also use this to see what you've changed.)
 
+  cvs diff -D20040101 -u
+
+shows you differences txixt your tree and the repository
+as of January 1, 2004.
+
 Running the cvs commands in /usr/local/plan9 makes them
 apply to the whole tree.  Running them in a subdirectory applies
 only to the code rooted there in the code.
blob - 7ca8745fa4b87cb779d566edf0eeeb5ff8e220c1
blob + 9aa4aa39bfc3f75dfe7d2121c16631bcd32c4d01
--- TODO
+++ TODO
@@ -20,3 +20,6 @@
 	  needs cleanup and release.  should be easy to add ext2,
 	  fat.  ntfs harder but possible.
 
+* win
+	need to make a real pty so that ^D etc. work.
+
blob - e510e4d649d747e0c1b92f08c3b8f26b37afcae5
blob + a7924e74c808434d0b502a3c28536bd0f2d5c856
--- bin/9l
+++ bin/9l
@@ -3,12 +3,24 @@
 extralibs=-lm
 tag="${SYSNAME:-`uname`}-${OBJTYPE:-`uname -m`}"
 case "$tag" in
-*FreeBSD*)	ld=gcc ;;
+*OpenBSD*)	ld=gcc
+		extralibs="$extralibs -lpthread"
+		;;
 *BSD*)		ld=gcc ;;
 *Linux*)	ld=gcc ;;
 *Darwin*)	ld=gcc ;;
 *SunOS*)	ld="${CC9:-cc} -g"
 		extralibs="$extralibs -lrt -lpthread -lsocket -lnsl"
+		# Record paths to shared libraries to avoid needing LD_LIBRARY_PATH 
+		for i in "$@"
+		do
+			case "$i" in
+			-L*)
+				s=`echo $i | sed 's/-L/-R/'`
+				extralibs="$extralibs $s"
+				;;
+			esac
+		done
 		;;
 *)
 	echo do not know how to link on "$tag" 1>&2
blob - /dev/null
blob + 4b1ab78eb6d0b60212088649611239374f401f07 (mode 755)
--- /dev/null
+++ bin/awd
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+label `pwd`
blob - /dev/null
blob + c9e8b92976d5c82247fa4c0918cda240a2262595 (mode 755)
--- /dev/null
+++ bin/g
@@ -0,0 +1,19 @@
+#!/usr/local/plan9/bin/rc
+
+flags=()
+while(! ~ $#* 1 && ~ $1 -*){
+	flags=($flags $1)
+	shift
+}
+
+switch($#*){
+case 0
+	echo 'usage: g [flags] pattern [files]' >[1=2]
+	exit 1
+case 1
+	9grep -n $flags -- $1 *.[Cbchm] *.cc *.py *.tex *.ms *.java /dev/null \
+	  |[2] {9grep -v '^(grep: can''t open \*|grep: \*\.)' >[1=2]; status=0}
+case *
+	9grep -n $flags -- $* /dev/null
+}
+
blob - 54678eb802bc520246d28678a7cfad1af2f897ad
blob + d7e0767f5ac7baf7aa6fed3470059f2e658c59c2
--- bin/ps
+++ bin/ps
@@ -15,6 +15,7 @@ BEGIN{
 	state["I"] = "Idle";
 	state["J"] = "Jail";
 	state["R"] = "Ready";
+	state["O"] = "Running";
 	state["S"] = "Sleep";
 	state["T"] = "Stopped";
 	state["Z"] = "Zombie";
@@ -65,8 +66,16 @@ function statestr(s)
 }
 !
 
-/bin/ps -axww -o 'user,pid,start,time,vsz,stat,command' | sed 1d |
-	awk -f /tmp/awk.xxx$$ | sort -n +1
+case "${SYSNAME:-`uname`}" in 
+SunOS)
+	/bin/ps -aA -o 'user,pid,stime,time,vsz,s,args' | sed 1d |
+		nawk -f /tmp/awk.xxx$$ | sort -n +1
+	;;
+*)
+	/bin/ps -axww -o 'user,pid,start,time,vsz,stat,command' | sed 1d |
+		awk -f /tmp/awk.xxx$$ | sort -n +1
+	;;
+esac
 
 rm -f /tmp/awk.xxx$$
 
blob - a597f2da65a31bebc6dca59ee5d430dc6fb8cb09
blob + 7ca1c7de609141eed048abdb1e98ad66ea0aa8cb
--- bin/web
+++ bin/web
@@ -10,6 +10,7 @@ plumb1()
 		;;
 	*firebird*)
 		$BROWSER -remote 'openURL('$i', new-window)'
+		;;
 	*firefox*)
 		$BROWSER -remote 'openURL('$i', new-window)'
 		;;
blob - c4dda4cddb3e406f16d1c4f7706abae6eddf99e7
blob + ad94b2991037b32a19e495f3d733328549fd8ee3
--- rcmain
+++ rcmain
@@ -10,15 +10,18 @@ case 1
 	prompt=($prompt '	')
 }
 if(~ $rcname ?.out) prompt=('broken! ' '	')
-if(flag p) path=/bin
+if(flag p) path=(/bin)
 if not{
 	finit
-	if(~ $#path 0) . <{/bin/sh -c 'echo $PATH |
+	if(~ $#path 0) {
+		path=(/bin /usr/bin)
+		. <{sh -c 'echo $PATH |
 				sed "s/^/path=(''/; s/$/'')/; s/:/'' ''/g"'}
+	}
 }
 fn sigexit
 if(! ~ $#cflag 0){
-	if(flag l && /bin/test -r $home/lib/profile) . $home/lib/profile
+	if(flag l && test -r $home/lib/profile) . $home/lib/profile
 	status=''
 	eval $cflag
 }