Files
neonucleus/TODO.md
2026-04-04 02:26:06 +02:00

2.7 KiB

For MVP functionality

  • write a tester OS, basically a menu with tests to run
  • tmpdrive
  • tmpfs (reork the whole thing)
  • device info
  • userdata support

To re-evaluate

  • Exposing the internal non-resizing hashmap implementation.
  • More stack manipulation functions to allow libraries to have better APIs. (rotate)
  • Having a copy of the context stored directly in requests instead of having to use getComputerContext, as it simplifies the APIs and allows them to be made more portable.
  • Exposing more internal functions that may be useful to the user to prevent pointless rewriting and duplicate machine code.

Vanilla components needed

Not everything OC has (as a few of them are really MC-centered) but most of it.

  • data component (note: maybe add hamming code support?)
  • modem component
  • tunnel component
  • internet component
  • relay component (note: OCDoc still refers to it as access_point)
  • computer component
  • geolyzer component
  • net_splitter component
  • redstone component
  • motion_sensor component
  • printer3d component (note: maybe add signal for when printer completes?)
  • sign component
  • microcontroller component
  • hologram component
  • disk_drive component
  • note_block component

Custom components needed

  • oled component (OLED screen, a store of draw commands and resolution from NN's perspective)
  • ipu component, an Image Processing Unit. Can bind with oleds, and issues said draw commands
  • vt, a combination of a GPU, a screen and a keyboard with limited functionality. Offers direct operations on the video memory
  • (maybe) qpu component, a Quantum Processing Unit for quantum computing
  • radio_controller and radio_tower components, for radio telecommunications
  • (maybe) clock component for arbitrary precision time-keeping
  • led component for LED matrixes and/or LED lights
  • speaker component, allows playing audio by asking for binary samples and pushing a signal when it needs more
  • microphone component, allows reading audio from nearby sources
  • tape_drive component, compatible with Computronics
  • cd_drive to work with CDs (can be read-only, write-only or read-write)
  • serial component, for serial communications with other devices (USB?)
  • iron_noteblock component
  • colorful_lamp component
  • OpenSolidState flash storage

To make it good

  • make more stuff const if it can be. Gotta help out the optimizer
  • write a bunch of unit tests to ensure the public API works correctly
  • ensure OOMs are recoverable
  • do a hude audit for bugs at some point

To make it fast

NOTE: we're mostly bottlenecked by the architecture (typically a Lua VM) and the intentional bottlenecking from call costs.

  • make signals use a circular buffer instead of a simple array
  • use more arenas if possible