Plan 9 from Bell Labs’s /usr/web/sources/contrib/geoff/changed.commentary

Copyright © 2009 Alcatel-Lucent.
Distributed under the Lucent Public License version 1.02.
Download the Plan 9 distribution.


	Changes to my system since 8 Aug 2019

In general, I've tried to reduce dependence on APE by converting
programs to native Plan 9.  I'm making use of bigger systems (16 and
32 GB) and have given venti and fossil gigabytes each for caching.
I'm using a 386 PC to run gs since gs on amd64 suicides on files that
386 gs handles.  I use uintptr instead of ulong in more places to hold
memory addresses, sizes & offsets; and thus different print formats.
I made more effort to compile with normal CFLAGS, especially in APE,
and to use standard headers in APE.

Both Kernels

There was more refactoring and deleting of unused code, notably
sysexec().  I'm making less use of the UINT2PTR and PTR2UINT macros,
and the uint8_t type.  I've tried to eliminate use of sprint().  I now
enable pc engines APU2 dram ecc.  I now use libc's ptclbsum().  I
avoid identifier `m' except for global Mach*, and avoid `dev' other
than chan->dev.  I removed inferno dregs and the unused #I/bootp.

renamed igbe .c files: igbe -> igbepci; igbepcie -> igbe.

9

minimise diffs with 9k.
multiboot stuff moved from dat.h to multiboot.h.
share e820 code with pcexp.
remove pcibios support.
remove pciaddlist(); it wasn't actually common code.
pc/rebootcode.s: smaller, passes multiboot registers.
pc/sdahci.c and sdata.c: use leputl() and beput(v)l.
pcboot/bootld.c: move warp64.c here.
pcexp/expand.c: cope with fat exec header for amd64.
pcexp/expand.l.s: add enternextkernel() which sets multiboot registers.
pcexp/mkfile: start segments on ulong boundaries to align data.
port/devmnt.c: use 9k's interface.

9k

I pushed I/O port use out to segregate it somewhat.
deprecated drivers of old devices, notably (E)ISA and PCI.
syscall() is almost completely portable; moved to port.
386/pci.c: deprecate old pci config methods.
ip/ethermedium: remove gbe.
k10/arch*.c: cope with idiot hypervisors that don't advertise monitor & mwait;
	better cpu & speed detection; use pause instruction in delay loops.
k10/devarch.c: deprecate access to IO ports (only ever used by vga).
k10/fpu.c: debugging infrequent #NM panic from _fnclex.
k10/main.c: further failed attempts at reboot by loading kernel directly.
k10/mem.h: bigger KSEGs.
k10/trap.c: ignore initial spurious (hungover?) interrupts.
port/devmnt.c: bigger MAXRPC, as in 9.
port/page.c: clean up initial allocations.
port/qmalloc.c: more use of uintptr, now handles allocations > 2³².

Commands

avoid *scanf, link commands with -lnofp if they don't use %[efg] print formats.
	avoids FP conversions, reduces command sizes, thus kernel sizes.
6c: revert attempt at bitfields wider than 32 bits.
7i: change identifier to make it compile
aux/vga: fiddle with vesa again
awk: convert from posix to plan 9 native;
	mainly needs mb*/wc*, system, popen, environment loading at start.
compress: convert to plan 9
cpu: comments, clarity, avoid limits
dd: clarity, more libc use
eqn: convert to plan 9
file: less silly hex
fossil: tweak allocation caps
grap: convert to plan 9
gs: fruitlessly try to make it work in cases that work on 386 but suicide on
	amd64; omit inkjet drivers that 6[cl] can't cope with.
lp/lpsend: convert to Plan 9
pic: convert to Plan 9
troff: convert to Plan 9
venti: omit hproc for size reduction; tweak allocations

Libraries

libauthsrv/readnvram.c: include arch "amd64" under "pc"
libbio/bstdio.c: stdio implemented on top of bio as an experiment
libc/9sys/^(ctime tm2sec)^.c: break out _readtimezone().
libc/9sys/getpid.c: avoid system call by using Tos->pid
libc/9sys/qlock.c: initialize ql at run time for data seg size reduction
libc/amd64/^(atom memmove)^.s: reduce src size
libc/amd64/^(getcallerpc main9p)^.s: fix profiling
libc/amd64/memset.s: tried bigger stride to no effect, reverted
libc/port/^(malloc pool)^.c: allow larger allocations
libc/port/profile.c: fix for amd64 and 64-bit systems generally
libc/port/reg*.c: regression tests
libip/ptclbsum.c: being less clever yields faster code
libregexp/regcomp.h: crank up NSUBEXP for kernel mkfile.
	dynamic allocation would be good, but awkward to arrange.
libstdio/vfprintf.c: cope with nil ptr for %s arg
libstdio/vfscanf.c: de-uglify

Bell Labs OSI certified Powered by Plan 9

(Return to Plan 9 Home Page)

Copyright © 2009 Alcatel-Lucent. All Rights Reserved.
Comments to webmaster@plan9.bell-labs.com.