9FRONT “MACS” Released

torrent

direct download

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