9FRONT “SKIN OF EVIL” RELEASED
http://gabe.felloff.net/usr/cinap_lenrek/9front/9front-7233.24d21d7c0868.iso.gz.torrent
DASH 1 MANUAL
Online: http://fqa.9front.org/dash1.skinofevil.pdf
Print: http://9front.org/propaganda/books
THANKS: miron lukyanov
KERNEL AND DRIVERS
bootrc: add nora6= option to disable automatic ipv6 configuration
bootrc: handle automatic ip configuration on gbe media
bootrc: fix $rootdir and $rootspec handling (thanks lucio)
kernel: exec support for arm64 binaries
kernel: export freepages() function so it can be used in mmurelease()
kernel: get rid of TSTKTOP, USTKTOP is the end of user address space
kernel: get rid of KSTKSIZE alias for KSTACK
kernel: get rid of PTR2UINT() and UINT2PTR() macros
kernel: get rid of checkpagerefs() debugging
kernel: include lock pointer in error report, stop spamming lockloop prints when we are panicing
kernel: insert memory barrier in the scheduler before setting up->mach = nil
kernel: remove ptclbsum dependencies from configs
ktrace: arm64 support
qio: handle common case in trimblock()
bcm: add pl011 uart driver, dont touch line control while uart is enabled
bcm: don’t call nil on PADDR() in dmaaddr(), return busdram dummy address
bcm: don’t use PADDR() to convert bus address to physical in vcore
bcm: dont assume PHYSDRAM 0 in dmaaddr(), fix dmaioaddr()
bcm: include sdmmc in pi kernel configuration
bcm: list devswap only once in devtab array
bcm: move CONFADDR parsing into bootargs.c, simplify initcode start() args handling
bcm: move fiq saved pc adjust into lexception.s so it can be shared with arm64
bcm: move interrupt handling out of trap.c into irq.c, add irq.c to mkfile
bcm: move okay() from uartmini.c to devarch.c
bcm: make sure fiq is on enabled on cpu0
bcm64: add experimental work in progress arm64 kernel for raspberry pi 3
bcm64: get rid of usb workaround delay
bcm64: map framebuffer write-through to allow unaligned access
bcm64: provide idlehands() function
bcm64: use MOVP instruction for saving and restoring registers
bcm64: use exclusive monitor on nrdy to wake up idlehands()
pc, pc64: fix %.*s format in multibootargs
pc, pc64: properly track dependencies for mem.h on autogenerated apbootstrap.h and reboot.h targets
pc, pc64: pci: add AMD FCH LPC bridge to southbridges
pc, pc64: devarch: recognize AMD Ryzen model
pc64: properly handle faulterror in faultamd64()
devdraw: get rid of softscreen==0xa110c hack and make attachscreen() return Memdata*
devdraw: simplify drawgen()
devip: fix block list handling for icmp/icmp6, use proper MinAdvise for icmp6
devip: fix fragment forwarding
devip: fix ip fragmentation handling issues with header options
devip: handle packet too big advise for icmp6, remove fragment header
devip: ignore icmp advise about laggard fragments
devip: ignore reserved fragment offset bits
devip: ignore the evil bit in fragment info field
devip: ipv6 loopback ::1 has link-local scope
devip: reject bad numeric ports (such as 9fs -> 9)
devip: remove unused eipconvtet.c and ptclbsum.c files
devip: simplify ip reassembly functions, getting rid of Ipfrag.hlen
devip: tcp: Don’t respond to FIN-less ACKs during TIME-WAIT (thanks Barret Rhoden)
devip: use common code in icmp for handling advise
devip: use parseipandmask() for ipifc and route control message parsing
devip: zero fragment offset after reassembly, remove tos magic, cleanup
devip: avoid media bind/unbind kproc reader startup race, simplify etherbind
devip: do not lock selftab in ipselftabread(), remove unused fields from Ipself
devip: make sure ifc is bound in add6 ctl command
devip: remove unused c->car qlock, avoid potential deadlock in ipifcregisterproxy()
devip: reset speed and delay on bind, adjust burst on mtu change, ifc->m nil check, consistent error strings
devsd: fix panic when using “delpart” to remove a partition that was already removed
devswap: simplify, don’t panic when writing swapfile fails
devtls: remove static “already” flag in tlsinit(). this function is only run once.
audiohda: add support for Gemini-Lake audio in Intel NUC nuc7pjyh (thanks sam-d)
audiohda: recognize AMD Family 17h hd audio controller
ether8169: fix thinkpad A485 ethernet (thanks mischief)
ether82563, ether82598, etherx550: round rbsz to multiple of 1K
ether82563: fix bogus FCA write and link detection for i217
ether82563: use 9018 byte mtu from datasheet for i217, i218, i219
ether82563: work around spurious jumbo packets on i217 (thanks k0ga)
ether82598: fix multicast filter (thanks aiju, joe9)
etherx550: add intel 10GB ethernet controlller x550 driver (thanks joe9)
igfx: add support for 915gm
nusb/audio: fix %.*s format usage
nusb/disk: implement 64 bit lba read/write commands (16 byte commands)
nusb/disk: don’t unnecessarily unstall devices.
nusb/kb: fix continuous scrollwheel delta not being reported (thanks sam-d)
nusb/usbd: fix dump %U formatter
nusb/usbd: stop sending port enable commands
nusb/usbd: work around devices that ignore the high byte of wLength in control transfer reads
nusbrc: detect “keyboardio model 01”, appears as multifunction device with IAD csp(0102EF) (thanks sam-d)
usbdwc: enable Slowbuilkin workarround, improve split transaction timing, handle erroring sleep(), debugging
usbxhci: make stuck usb transactions interruptible.
wifi: fix %.*s format in wifictl
COMPILERS AND DEBUGGERS
7c: add arm64 c compiler and assembler (thanks Charles Forsyth)
7a: fix indexreg operations, fix post increment operands
7c: don’t emit SXTW for non-register source operand
7c: fix long to vlong/pointer conversion, avoid negative immediate offsets
7c: fix registerization of vlong constants
7l: add arm64 linker from Charles Forsyth (initial sync)
7l: add missing AFMOVD with EXT/AUTO/LOREG operands to optab
7l: deal with huge (negative or > 24bit) register offsets, fix LACON, avoid DWORD in constant pool when we can sign extend
7l: fix bitcon instruction selection and encoding
7l: fix vlong constants in literal pool for non-MOV instructions
7l: there’s no BIC* $bimm variant
7l: implement MOVP instruction
5c: dont substitute (destination) registers contained in MOVM reglist
[5678vq]c: fix .safe node type for FUNC() = FUNC() sugen
cc: fix %.*s format usage in lexer “token too long” error
acid: add arm64 support
dtracy: avoid dmachlock() race
dtracy: avoid pointer to integer truncation warning on amd64
dtracy: fix &&
dtracy: fix conditional branch generation
LIBRARIES
ape: initial support for arm64
ape: fix malloc to deal with more than 4GB of memory on 64 bit systems
lib9p: fix zero msize abort() due to unknown version (thanks kvik)
libauthsrv: authdial smprint() out of memory autism
libc: Sand edges down on GBIT64()/PBIT64() macros.
libc: initial arm64 support
libc: fix NaN check precedence bug in modf() (thanks BurnZeZ)
libc: provide arm64 assembly versions for memmove() and memset()
libc: use MOVP instruction for arm64 memmove() and memset()
libip: don’t reject ipmask in v6 form for v4 address
libip: move optimized 386 assembly version of ptclbsum() from kernel to libip
libip: prefer v4 over v6 for myipaddr()
libip: replace v4parsecidr() with new parseipandmask()
libip: return -1 in parseipmask() and parseipandmask() when mask is not ipv4 and v4 argument was set
libmach: initial arm64 support
libmach: support for MOVP instruction disassembly for arm64
libmemdraw: handle memarc() phi == 0 and phi <= -360, keep alpha in bounds
libmemdraw: remove static Point p00 and use ZP instead
libmp: add dummy mkfile for arm64
libndb: provide parseipmask() v4 argument in subnet(), use snprint() instead of sprint()
libpanel: fix %.*s format in pl_snarfentry()
libsec: dummy mkfile for arm64
libthread: initial support for arm64
PROGRAMS
abaco: fix %.*s format in findctype()
atazz: fix %.*s format in special command processing
aux/depend: fix %.*s format in path concatenation
aux/statusmsg: fix %.*s format
aux/wpa: fix %.*s format in debug prints
awk: fix nextfile crash (thanks leetspete)
cifs: fix pruning of . and .. directory entries (thanks steve simon)
cwfs: fix %.*s format in cmd_printconf()
dossrv: make GLONG() return ulong, handle getsect() error in dostat()
dossrv: use 64 bit vlong for sectors
gs: arm64 support
gs: avoid stupid shifts by casting to uint64_t
hgfs: fix %.*s usage in walk
ip/6in4: use parseipandmask(), use ipvmp() instead of equivip6()
ip/ayiya: use parseipandmask(), use ipvmp() instead of equivip6()
ip/cifsd: fix %.*s format xdirflush() path
ip/dhcpd: add rootserverip read in lookupip() (thanks k0ga)
ip/dhcpd: change swap to rootserver (thanks k0ga)
ip/dhcpd: provide v4 argument for parseipmask()
ip/dhcpd: remove undocumented dhcpgroup mechanism, group related ndb attributes together
ip/dhcpd: send vendor ndb attribute if available (thanks k0ga)
ip/ipconfig, ndb/dns, libndb: handle parseipmask() errors
ip/ipconfig: format ipmask with %M instead of %I
ip/ipconfig: use defaults for loopback
ip/ipconfig: use ewrite() to enable routing command for sendra
ip/ipconfig: use new parseipandmask() function
ip/ppp: fix %.*s format in debug print
ip/pppoe: fix %.*s format in debug prints
ip/rip: use new parseipandmask() function
ip/socksd: fix %.*s format in dialstring
ip/tftpd: fix %.*s format for homedir path
ip/tinc: 4096 bit RSA, (passive) pmtu discovery, fix udpfd close() race, cleanup
ip/tinc: fix mistake from previous commit
ip/tinc: honor TcpOnly and IndirectData settings, script support, prefer incoming udp connections
ip/tinc: use new parseipandmask() to parse subnets, use ipcmp()/ipmove(), remove prefixlen
ip/torrent: fix %.*s format in dialstring
ip/torrent: avoid trying to fetch blocks past file
mk: fix closing random fd from uninitialized stack variable (thanks BurnZeZ, mycroftiv)
ndb/dns: provide v4 argument to parseipmask(), use snprint() instead of sprint()
postscript: use PI
python: arm64 support
python: clean and nuke pgen and libpython.a for all $CPUS
python: remove /$objtype/lib/ape/libpython.a, track graminit.h dependencies, remove graminit.c
ratfs: implement ipv6 support, replace v4parsecidr() with parseipandmask()
rc: clear out redirections on “rfork F” (RFCFDG)
ssh: add experimental mux mode
ssh: don’t assume error messages are ASCII. format number of complete runes, not bytes.
ssh: implement -W option for making remote tcp connections
ssh: print usage for unknown flags, cleanup
sshnet: actually make sure ssh established connection before exiting main proc
sshnet: allow 0 port
sshnet: bring back sshnet using ssh(1) mux mode
sshnet: don’t leak “Dialing” connections when “connect” ctl write gets interrupted
sshnet: don’t leak error string
sshnet: fix eof and close handling, use proper packet size, cleanup
sshnet: fix memory leak
sshnet: fix write count for ctl message writes
sshnet: get rid of Announced state, simplify
sshnet: implement listen (port forwarding)
sshnet: pass on open failure error message, simplify
sshnet: reduce memory consumption by lowering stack sizes
tcs: clean up old port code, and avoid writing 0 to stdout
troff: fix -ms mug (thanks aksr)
upas/fs: don’t put messages on the lru that cannot be uncached
upas/fs: fix %.*s format usage
upas/fs: fix infinite loop in putcache (again)
upas/fs: include mkupas in mkfile last to get default target
upas/fs: release mailbox syncing lock after encountering error
upas/fs: remove unused function pop3log
upas/ned: fix %.*s format in parsesearch(), improve mkfile
upas/scanmail: fix %.*s format in xprint(), improve mkfile
upas/smtp: fix %.*s format for challenge in smtpcram()
upas/smtpd: implement ipv6 support for ip blacklist, replace v4parsecidr() with parseipandmask()
uptime: rewrite in awk
vmx: build vmx only for 386 or amd64
vmx: check for draw initialization errors
vt: dont make fs procs hang around when closing rio window
vt: fix %.*s in sendnchars()
walk: remove unused depth argument from dofile()
wadfs: avoid comma operator after PBIT32() macros
webfs: bracket literal ipv6 host in “Host:” header
webfs: properly handle %.*s in url path and debug prints
DOCUMENTATION
dhcpd(8), ndb(6): group related ndb attributes together
dhcpd(8), ndb(6): update documentation (thanks k0ga)
dtracy(1): fix print(2) reference
ip(3): document TCP ctl close command
mach(2): fix byteswapping function signatures
memdraw(2): remove references to iprint()
plan9.ini(8): add USB section, documenting various usb options
plan9.ini(8), boot(8): clarify the use of $rootdir and $rootspec
rsa(8): add example for tinc(8) (thanks k0ga, qwx)
segment(3): use bind -c in examples (thanks henesy)
ssh(1): add sshnet(4) reference
sshnet(4): add documentation
sshnet(4): fix user@host syntax, add BUGS section, add ip(3) reference
thread(2): threadsetname takes a fmt string
added walk(1)
OTHER
arm64: add mkfile
/sys/lib/plumb/basic: make plumbing page bookmarks work with relative paths (thanks Tobias Heinicke)
fix DST begin/end timestamps for South Australia
fortunes: Open source may not be safe if it has no super excellent moderator.
inst/startether: skip ipv6 auto configuration when nora6 was specified
dist/mkfile: aux/stub -d /n/src9/usr to avoid overbinding /usr in case /n/src9 an / alias
dist/mkfile: add *.pi3.img target for ARM64 raspberry pi3
distproto: add /lib/ndb/dhcp/ and /lib/news/ directory (thanks lyndon)
rootstub: add /sys/lib/dist/ndb/dhcp/
rootstub: create arm and mips directories in /usr/glenda/bin (thanks timclassic)
rootstub: create arm64 directories
vgadb: add t43p 1600x1200 panel entry
lib: update pci database
timezones: add India (thanks joe9)