2.8 KiB
2.8 KiB
For MVP functionality
gpu,screenclass implementations- write a tester OS, basically a menu with tests to run
- move veeprom into NCL as tmpeeprom
- tmpdrive
- tmpfs
- 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.
datacomponent (note: maybe add hamming code support?)modemcomponenttunnelcomponentinternetcomponentrelaycomponent (note: OCDoc still refers to it asaccess_point)computercomponentgeolyzercomponentnet_splittercomponentredstonecomponentmotion_sensorcomponentprinter3dcomponent (note: maybe add signal for when printer completes?)signcomponentmicrocontrollercomponenthologramcomponentdisk_drivecomponentnote_blockcomponent
Custom components needed
oledcomponent (OLED screen, a store of draw commands and resolution from NN's perspective)ipucomponent, an Image Processing Unit. Can bind witholeds, and issues said draw commandsvt, a combination of a GPU, a screen and a keyboard with limited functionality. Offers direct operations on the video memory- (maybe)
qpucomponent, a Quantum Processing Unit for quantum computing radio_controllerandradio_towercomponents, for radio telecommunications- (maybe)
clockcomponent for arbitrary precision time-keeping ledcomponent for LED matrixes and/or LED lightsspeakercomponent, allows playing audio by asking for binary samples and pushing a signal when it needs moremicrophonecomponent, allows reading audio from nearby sourcestape_drivecomponent, compatible with Computronicscd_driveto work with CDs (can be read-only, write-only or read-write)serialcomponent, for serial communications with other devices (USB?)iron_noteblockcomponentcolorful_lampcomponent
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