JNI bindings for NeoNucleus
- C 64.3%
- C++ 16.5%
- Java 9.7%
- Lua 7.1%
- Makefile 1.9%
- Other 0.5%
| .vscode | ||
| NeoNucleus@c26c51b500 | ||
| src | ||
| .clangd | ||
| .gitignore | ||
| .gitmodules | ||
| build.sh | ||
| Makefile | ||
| README.md | ||
| run.sh | ||
Carbon Hydrogen
NeoNucleus JNI bindings.
Dev Setup Notes
Java expects libcarbon.so on the src/native directory. This is the default unless you're not using the Makefile. Make sure to build NeoNucleus with make lib MODE=release, and place the libneonucleus.a on src/native. The same applies for TLA (testLuaArch), which must be built with make MODE=release.
Development
Carbon is currently being organized in "milestones", below they are.
Milestone 1
- PointerBackedClass
- testLuaArch included
- Statically linked NeoNucleus
- Null pointer checks
- Lua error in console
Milestone 2
- On-demand native structs
- NativeComponent, and java-defined Component(s)
- Make nn_EEPROM not PBC'd.
- JNIComponentHandler
- JNI Environment handler
- Java-side userdata fields
- Implement ncl screen
- Prevent more footguns (more error handling, etc...)
Milestone 3
- Implement all base nn_* functions
- Implement all ncl_* functions
- Custom Java architectures (JNI architecture handler)
- Auto-generate native structs in Java from a JSON file (?)
- Boot OpenOS
Milestone 4 (MVP release?)
- OS tests
- Carbon C library
- Fix/add missing javadoc comments
- Point Makefile to the submodule's files instead of copying them over (for NeoNucleus)
- Write a working emulator using Carbon or Hydrogen (NC-Telnet?)
- Begin work on Hydrogen