New 9front release “IT´S EASY BUT YOU ARE COMPLICATED”

torrent

direct download

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