9FRONT “MACS” Released
kernel and drivers:
add _nsec() syscall 53 for binary compatibility with labs distribution
kernel: fix read size calculation in pio() demand load
kernel: simplify fdclose()
kernel: remove wrong and needles mapsize check in newseg() (thanks Yoann Padioleau)
kernel: dont use atomic increment for Proc.nlocks, maintain Lock.m for lock(), use uintptr intstead of long for pc values
kernel: remove Block refcounting (thanks erik)
kernel: move syscall.$O target from config to mkfile
kernel: remove xinc()/xdec()
kernel: new pagecache, remove Lock from page, use cmpswap for Ref instead of Lock
kernel: fix cooperative scheduling for wired processes
kernel: make use of nil and 0 consistent in proc.c
pc: initiate machine reset only from boot processors in mpshutdown()
pc: clip rectangles before sending them to the hardware in flushmemscreen
pc, pc64: simplify reboot code
pc64: remove cpuserver bigboy hack and honor *kernelpercent=
pc64: fix ulongs for address of devarchs realmodemem file
pc64: allocate palloc.pages from upages
pc64: use 2MB pages for preallocpages()
pc64: fix for unsigned comparsion of (top - base) >= size
pc64: dont trap xinc()/xdec() overflow/underflow, delete unused atomic functions
pc64: implement checkmmu() debug function
pc64: remove unneeded parens in pmap()
pc64: use pc/pcrandom.$O instead of port/random.$O for RDRAND instruction support
pc64: fix MS2HZ (thanks Anthony Martin)
xen: import xen 32 bit paravirtual kernel from /n/sources/xen
xen: fix early console
audiohda: add Intel 8 Series/C220 Series support
devproc: fix close and closefiles procctl
devproc: handle 64bit address writes to /proc/n/mem files
ether8169: support for RTL8168G
ether8169: use u16int instead of u8int for C+ command register (thanks pavel / erik)
nusbrc: dont fork usb drivers into background
sdvirtio: experimental support for virtio-scsi
swap: make sure swap address sticks arround until page is written to swap
compilers and debuggers:
6a, 6c, 6l: fix copy propagation
programs:
acid: remove imagepagerefs() acid function
cpu: remove duplicate environment and chdir($home) code (thanks qrstuv)
cpurc, termrc: clarify comments by removing lies
ed: dont pass string constants to mktemp()
file: detect NES and SEGA rom files, detect djvu files, fix newline
g: add *.cpp
games/md: new Sega Megadrive/Genesis emulator
games/nes: support Battle City two players mode with joypads
games/snes: fix -T
iostats: dont sysfatal on 9p read error due to program termination
iostats: add -C flag to enable mount cache
ip/torrent: fix usage, add -A option to set user-agent
ip/torrent: use “torrent” as default user agent
nusb/usbd: serialize /dev/usbevent processing
samterm: use 4K stacks for amd64 (thanks burnzez)
webfs: explicitely unmount old /mnt/web (thanks BurnZeZ)
libraries:
ape/stdio: set errno to EMFILE when running out of streams
libauth: dont print blobs in auth_proxy error strings
libc: avoid static table and supurious reads in nsec()
libc: declare pooldump in pool.h. the manual says it is public
libsec: fix dsagen 64-bit bug (thanks rsc)
libsec: use u32int instead of uint when we need 32 bit (thanks erik)
libstdio: avoid issues with aliasing in dtoa() on amd64 (from 9atom, thanks to erik and charles)
documentation:
dougfacts: remove html corruption and end file with newline
fortunes: i believe any successful Plan 9 distro will need to provide some transparency in the change review process. – Skip Tavakkolian