# 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 - [x] PointerBackedClass - [x] testLuaArch included - [x] Statically linked NeoNucleus - [x] Null pointer checks - [x] 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