shithub: wiki.9front.org

ref: 416e728ea8ea985c6f179ce90296e000cae3a65d
dir: /todo.md/

View raw version
# TODO lists

## 9front

- ACPI events available to userspace
  - Certain hardware has buttons that seemingly do not produce any key
    presses when running 9front.  Things like brightness control, touchpad
    toggle, power off button and so on.  Those are quite often closely
    tied to ACPI, and the firmware is responsible - it's supposed to send
    the needed events to the OS. The issue is that OS (9front) currently
    does not do anything to set up the receiving of such events.  As a
    start, setting up a callback inside the kernel and passing those
    events via some file to the userspace would be ideal.

- Wifi
  - Support for 5GHz and performance fixes (see bounties)
  - USB wifi support

- Drivers
  - Intel Wifi 6 AX201/AX210 driver (see bounties)
  - Intel 82599 driver through 10Gbit SFP (see bounties)
  - Wacom PS/2 devices (see bounties)
  - Intel graphics: multihead support; support for new cards

- vmx(3)
  - SVM support
  - Performance improvements

- draw(3) improvements
  - Better font rendering/caching; OTF/TTF support; right-to-left support
  - Affine transforms, anti-aliasing?
  - Faster alpha handling

- Better benchmarking, profiling, fuzzing tools
  - dtracy(1): language improvements: local storage, tagging across fork/exec, etc.;
    add trace points

## Applications

- Mail
  - Most users want to send mail and access remote mailboxes.  
    Some want to set up their own mailing system.  
    None want to set up an early 90's style BigCorp mailing system.
    
    Our mailing system should reflect this by making the
    basic user mail setup very simple. Only access information and
    credentials oughta be provided by the user, the rest should come
    set up with sensible defaults.

- nedmail(1)
  - The documentation is incomplete and its usage spread between the
    manpage and the `help` command, in addition to some undocumented
    commands.  This MUST be fixed.

- plumber(4)
  - Implement `attr` object for the `matches` verb.

- torrent(8)
  - Missing magnet/DHT and peer discovery

- gefs(4)
  - Testing and performance improvements


## Languages

- C
  - Fuller support for inline keyword
  - Switch expressions with vlongs on 32bit arches

- go
  - Full arm64 support (see bounties)

## Libraries

- libframe
  - Reimplement or replace with something better

- libc
  - Better, faster strtod (important for eg. awk(1))
  - malloc(2): faster allocator and alloc sizes over 2Gb

## Games

- Emulators
  - N64
  - PSX
  - SMS
  - TG-16
  - md(1): Sega CD, 32X support
  - libretro port?

- fteqw, with Quake 3 and Half-Life support

## Alien formats

- File systems
  - NTFS
  - exfat
  - FAT: determine used and free space on FAT volumes

- Compression
  - 7z, lzma

- Documents
  - djvu
  - chm
  - pdf: searchable documents (see: pdffs)

## Alien software

- Networking
  - ssh server (see bounties)
  - TLS 1.3 support
  - EAP-TLS for wired networks

- Enterprise™
  - vcardfs (see bounties)
  - OneDrive fs (see bounties)


## See also
- [Full bounties list](http://fqa.9front.org/appendixb.html)
- [Works in progress](wip)