Today's changes.

This commit is contained in:
rsc 2004-03-25 23:03:22 +00:00
parent 0023dde326
commit cb27443abf
8 changed files with 87 additions and 6 deletions

31
NOTES
View file

@ -27,6 +27,25 @@ There are a few shell scripts already included in bin -- B, Bwait,
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.

3
TODO
View file

@ -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.

14
bin/9l
View file

@ -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

3
bin/awd Executable file
View file

@ -0,0 +1,3 @@
#!/bin/sh
label `pwd`

19
bin/g Executable file
View file

@ -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
}

11
bin/ps
View file

@ -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 |
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$$

View file

@ -10,6 +10,7 @@ plumb1()
;;
*firebird*)
$BROWSER -remote 'openURL('$i', new-window)'
;;
*firefox*)
$BROWSER -remote 'openURL('$i', new-window)'
;;

9
rcmain
View file

@ -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
}