New 9front release “IT´S EASY BUT YOU ARE COMPLICATED”
kernel and drivers:
kernel: only complain about no images when theres nothing more to reclaim
kernel: use nil for pointers instead of 0, zero channel umc and dirrock in newchan()
kernel: xinit() use ulong for page counts, cleanup
kernel: fix todfix() race
kernel: make noswap flag exclude processes from killbig() if not eve, reset noswap flag on exec
bcm: apply richards fix for mmukmap (from /n/sources/patch/bcm-mmukmap-bug)
pc, pc64: initial machine check architecture support
pc, pc64: make pc kaddr() check reject -KZERO address (thanks aiju)
pc, pc64: fix off by one error in _multibootentry
pc64: preserve user extern registers R14 and R15 across syscalls, use Ureg.bp (RARG) for syscall number
pc64: dont save/restore DS/ES/FS/GS segment registers on syscall or interrupt, they are ignored in long mode.
pc64: cleanup syscallentry()
pc64: fix wrong Ureg* argument on note handler (thanks _sl!)
pc64: enable ether8139 in kernel config (thanks hiro)
add support for huawei e220 3g modem
add AHCI support for Intel 8 Series/C220 Series Chipset Family SATA Controller. (from sources)
add support for Intel C226 chipset PCI (from sources)
ether8139: fix pointer truncation by ulong cast, use mallocalign() ether8139: fix pointer to smaller int tuncation warning on amd64
devenv: prevent non-hostowner from creating or removing variables in ‘#ec’, cleanup
devmnt: fix potential race with mntflushfree(), remove mntstats, 0 vs nil cleanup
devproc: fix proccrlmemio bugs
devproc: fix syscalltrace error handling, conistent use of nil for pointers
ip: fix missed unlocks and waserror handlers
ip: fix memory leak in ipicadd6()
ip: set arp entry for own v6 address when not tentative
nusb: implement aijus stable uniqueue device names
nusb/kb: delete code for keyboard boot protocol handling, just use hid parser
nusb/ptp: do maxpkt reads to avoid babble error with usb 2.0 devices (thanks mischief!)
nusb/serial: implement flushes
nusbrc: ensure rpi ethernet always appears as /net/etherU0
boot: dont print errors if ethernet has no ifstats file, can happen with usb ethernet
compilers and debuggers:
5a, 5l: add LDREX/STREX/CLREX instructions
8c, 6c: generate enam.c file, just like 5c
acid: fix notestk() on amd64
programs:
5e: push ERRMAX for note message on stack avoiding unaligned stack pointer
5e: fix signed long multiply
abaco: fix double free race of p->status string (thanks BurnZeZ for the proc snap)
acme: fix crash: Get D in a new window with D being an existing directory
aux/8prefix: fix usage
cwfs: fix 32bit multiplication overflows for allocation sizes (thanks kenji okomoto)
cwfs: add optional uid argument to allow command, unify permission override code
exportfs: use argv0 instead of hardcoding “/bin/exportfs” in openmount(), dont use 0 for nil
exportfs: remove getsbuf() nil check, can’t happen
exportfs: simplify freefile() code
expr: fix missing type declarations for match(), which broke on amd64 as pointers dont fit into a long
fstype: fix kfs detection (thanks kenji okomoto)
ftpd: dont skip unmountnet() and return proper error string from dialdata()
ftpfs: dont convert names to latin when string is valid utf-8
games/doom: fix alignment issues for arm
games/md: add -2 -3 -a and trailing newline to usage
games/snes: add -a -h -m -T to usage
import: make aan (-p flag) work in “backwards mode” (-B)
iostats: reimplement iostats as a 9p filter instead of duplicating exportfs
iostats: dont prefix /bin to argv[0] when already absolute or relative path
iostats: isolate fs from interrupt notes
iostats: remove unused fcallfmt, dont leak our mount pipe end into exportfs proc
iostats: properly distribute exit status and give usefull error messages
ipconfig: cleanup code duplication in ip6cfg()
ipconfig: fix readipifc() memory leaks in recvra6 and sendra6 processes
ndb/dns: fix nil dereference crash with convM2DNS() returning reqmsg.qd == nil
page: fix deadlock with addpage (thanks BurnZeZ for the stacktraces)
ping: don’t spin when we get error reading icmp connection, print error and sleep
ptp: fix alignment assumptions for amd64
python: disable symlink and readlink compile options, ape has no reasonable way emulating it
ratrace: make multithreaded ratraces less confusing (for mischief)
rc: fix slow Xqdol(), avoid recursion in conclist(), estrdup(), avoid copying
rc-httpd/handlers/serve-static: restore simple test for file type and hardcode max_age to 1 hour (thanks eekee)
samterm: fix ctrl-b crash when cmd window resized (thanks revex)
secstore: read server from $secstore environment variable
secstore: improve error messages, newSConn() can’t fail
spred: add sprite editor
sysinfo: add cpuid info
tftpd: fix error string packet overflow in nak(), fix syslog reporting
tftpfs: make sure path is null terminated
unzip: fix usage
upas/fs: disable imap mail fetch pipeline due to race
usps: yet another update
libraries:
lib9p: remove executable bit from /sys/src/lib9p/ramfs.c
libdraw: add missing borderop() (thanks aiju)
libframe: use correct text color on frinsert depending on selection (thanks sl)
libmach: fix break point instruction for little endian MIPS (from sources)
ndb/common: add ipv6-icmp, ipv6-nonxt, ipv6-opts, bootps
documentation:
add 9pqueue(2), medium to low quality manpage.
nintendo(1): document snes
sega(1): add man page for games/md (and potential future sega emulators)
fortunes: it´s easy but you are complicated