New 9front release “the art of conversation”
dash 1
kernel and drivers
kernel: make sure the swap device has a reasonable capacity in setswapchan()
kernel: cleanup chan.c to consistenly use nil instead of 0 for pointers
kernel: consistent use of nil for pointer in sysfile.c
kernel: simplify syspipe()
kernel: make sure fd is in range in fdclose()
kernel: pipelined read ahead for the mount cache
kernel: clunk the cache when removing cache flag on a channel, only call cread() chen CCACHE flag is set
kernel: export mntattach() from devmnt.c avoiding bogus struct passing and special case in namec()
kernel: remove obsolete comment from namec()
kernel: cleanup qlock.c to use nil instead of 0 for pointers
kernel: dont rely on atoi() parsing hex for netif/devbridge
kernel: remove unused qstate() function
kernel: reject empty argv (argv[0] == nil) in sysexec()
kernel: make shargs() function static in sysproc.c
kernel: use Etoolong[] constant instead of string literal in validname0()
kernel: change vmemchr() length argument to ulong and simplify
kernel: limit syscallfmt user strings to 64K (as in validname)
kernel: fix indention in validname0()
kernel: validnamedup() the name argument for segattach()
kernel: limit argv[] strings to the USTKSIZE to avoid overflow
kernel: have to validate argv[] again when copying to the new stack
kernel: remove unused MAXCRYPT constant from portdat.h
kernel: fix Mheadache
kernel: pgrpcpy(), simplify Mount structure
kernel: mount flag is int not ulong, reduce size of Mount struct by putting mflag field in what would be wasted as padding
kernel: move “setargs” field in Proc structure after “nargs” and “args”
kernel: try freebroken() before killbig() (thanks aiju)
pc, pc64: set *bootscreen= when framebuffer changes
pc, pc64: replace atoi() calls with strtol() when hex can be expected
pc, pc64: remove unused psaux driver
zynq: remove unused variables from devqspi
devaoe: fix off by one in aoeerror(), consistent use of nil for pointers, error handling
devenv: avoid indirection, keep Evalue’s allocated in an array
devenv: simplify envremove(), cleanup
devether: duplicate flags when copying blocks (thanks erik quanstro)
devkbd: poll pc keyboard before blocking on kbd.q
devkbd: disable mosue/keyboard on shutdown, disable ps2 mouse on init, remove kbdenable()/kbdinit()
devmnt: dont reset readahead window when requested offset still has pending rpc
devmnt: use c->iounit instead of msize-IOHDRSZ to chunk reads and writes, reduce memory overhead for Mntrpc, mntalloc lock
devmnt: fix mntcache()
devtls: TLS1.1 explicit iv support
ether79c970: set mbps for proper queue sizes, assume gigabit ethernet for vmware
etheriwl: add pciid for Centrino Wireless-N 1000 (thanks qu7uux)
vgaigfx: remove #define MB, theres a MB enum in portdat.h
compilers and debuggers
cc: provide fake realloc() for getenv()
cc: improve (non-) side effect detection (thanks charle)
1c,2c,7c,kc,vc: honor suppress condition for outstring() in swt.c
vc: word align automatics
6l: fix vlong byte order when running on big endian machine (thanks erik quanstro)
acid -k: fix procenv() to new data structure
acid -k: fix intrcount() for amd64
libraries
ape: fix mktime() again
ape: implement altzone for tzset()
ape: fix build for objtype=spim
lib9p: return “write prohibited” error as documented in 9p(2) when srv->write is nil (thanks silasm)
lib9p: make reqqueueflush() use new threadint(), which will also cover channel operations
libauthsrv: readnvram() use vlong for nvroff, parse $nvlen/$nvoff with strtol() instead of atoi()
libc: make atoi() not parse c-style octal and hex numbers
libc: fix spim endianness
libc: fix wunlock() libthread deadlock
libcontrol: use strtol() to parse integer arguments
libcontrol: fix label memory leak
libhttpd: use strtol to parse decimal character references in httpunesc()
libmach: set correct endianness with little endian ELF32 mips binaries
libmach: remove useless error check from previous commit
libmach: remove redundant check for big endian
libmp: fix build for objtype=spim
libsec: increase handshake message buffer size (MaxChunk) to 32K (thanks sl)
libsec: TLS1.1 support (needs new devtls)
libsec: fix mistake breaking tlsServer() (thanks sl)
libsec: TLS1.2 client support
libsec: TLS1.2 server support, make cipher list with most prefered first
libthread: fix mistake, make “all” the default target again
libthread: use “interrupt” proc ctl message instead of posting a note for threadint()
cdproto: add spim
rootstub: add spim
programs
add /spim
aux/vga: sandybridge support for igfx (unfinished)
aux/vga: dont rely on atoi() being able to parse hex
bitsy: replace atoi() calls with strtol() when hex can be expected
bitsy/keyboard: do not rely on atoi() being able to parse hex
bullshit: app, deep-learning, responsive.
cpu: cleanup ssl code, make sure -p works for any auth method
crop: use strtol() instead of atoi()
cwfs64x: set permission of / to 0775 on ream
games/doom: implement filelength() (thanks quux)
games/doom: fix switch textures swapping in ultimate doom (thansk qu7uux)
games/doom: add bug compatibility switches (thanks qu7uux)
games/doom: fix ouchface not being shown when it should be (thanks qu7uux)
games/doom: display correct message on medkit pickup when health low (thanks qu7uux)
games/doom: fix config file never being loaded or saved (thanks qu7uux)
games/doom: fix unterminated comment causing sound bugs (from qu7uux)
games/doom: fix idclev cheat in doom2 and final doom (thanks qu7uux)
games/doom: fix gamma correction and key translation (thanks qu7uux)
games/doom: fix array offsets for respawn angle (thanks qu7uux)
gs: fix build for objtype=spim
gs: fix alignment bug in image_render_interpolate()
hjfs: fix abort() in givebuf()
hjfs: fix deadlocks
init: do not run $home/lib/profile when cd $home failed
iostats: add -C to usage
ip/httpfile: fix flushes, fix concurrent reads, set error string
ipv6on: fix search for ip attribute (thanks kenji arisawa)
jpg/ico: support for embedded png icons
jpg/ico: fix mkfile
kfs: set permission of / to 0775 on ream
mothra: support for inline images and
mothra: fix selurl()
mothra: cleanup url handling
mothra: fix double button hit
mothra: enable compiler warnings and type checking, cleanup
mothra: fix nil crash on missing name/src attributes for source/video/audio/embed/frame/iframe
mothra: show
mothra: fix crash
mount, srv: add -N flag to skip authentication and attach anonymously as “none”
page: fix deadlock, nil vs 0 for pointer comparsion, cleanup
python: use altzone
python: fix build for objtype=$spim
ratrace: avoid blank line prints, make writer the parent; various improvements
resample: simplify getint()
snoopy: dont rely on atoi() being able to parse hex
webcookies: fix isdomainmatch() (fixes livejournal.com login)
webcookies: fix implicit path cookie handling
webcookies: create lockfile with 0600 permission, always use create() with perm 0600 for rewriting jar
webcookies: use strtol() to parse HH:MM:SS
manual pages, documentation, misc
bio(2): Bterm() closes filedescriptor for Bfdopen() allocated buffer
import(4): clarify -E and -e options
rio(4): document “delete” wctl message (thanks mischief)
fortunes: If you want to do the work, I will review the results.