=== OpenBSD Project Ideas === * replace GNU ELF toolchain with FreeBSD's (suggested by Todd Miller) * add support for Intel's SHA-256 instructions (could use our existing AES-NI support as a template) * set up publicly available, regularly updated output of static or dynamic analysis tools run on the codebase (I've made a weak attempt at this for the Clang static analyzer) * ext2 filesystems on flash drives seem really slow - is there an easy way to improve performance? * fgetln(3) is a somewhat dangerous BSD idiom. Replace uses operating on NUL-terminated strings with POSIX's getline(3). (Pointed out by a commit from Ingo.) * mountd(8)'s error reporting is pretty dismal and seems to have false positives * clean up and clarify bc(1)'s man page (Ingo thinks it could use it) * The idioms for TAILQ_REMOVE(3) et al. constantly cause Clang's static analyzer to report false memory leaks. Is there an annotation or tweak that can fix this? * There's some old code in growfs(8) wrapped in #ifdef NOT_CURRENTLY. Does it still work? Does it make sense to keep it? * find base tools that don't test ferror() when reaching EOF (suggested by Marc Espie) * the following could use FAQ entries: - softraid and full-disk encryption - IPSEC - full nat-to PF configuration - PF queueing (the current entry only covers the now-removed ALTQ) * use these lists to find removable ports and report them to ports@openbsd.org: https://marc.info/?l=openbsd-ports&m=145901680821489&w=2 https://marc.info/?l=openbsd-ports&m=145901713521557&w=2 * POSIX requires that mmap(2) and munmap(2) fail when supplied with a length of 0. Our mmap fails, but our munmap performs no action and succeeds. Making mmap fail in this case was apparently painful because it broke some existing software. Someone should try adding a kernel printf to munmap and see what expects munmap(p, 0) to succeed. I plan on trying this sometime soon if no one beats me to it. (Suggested privately by another developer.)