Skip to content

Roadmap for Compiling SQLite3

Elliot Chance edited this page Jan 18, 2019 · 5 revisions

The ultimate milestone for the c2go project is to be able to compile and run SQLite3 without modification. This is certainly no small task. This page outlines the steps going forward that would need to happen.

  1. COMPLETE (v0.14.0 - #204): Have c2go produce an output file with sqlite3.c on Mac. Basically prove that c2go can parse the source code without panicking for any reason. Once this is done it should be added to the build process.
  2. COMPLETE (v0.14.1 - #208): Have c2go produce an output file with sqlite3.c on linux (including all clang versions supported). This should also be added to the build process.
  3. COMPLETE: Nested case statements (#211).
  4. All generated files should not contain raw syntax errors. That is, making sure the Go AST is valid, even if the logic is wrong or incomplete.
  5. All generated files should now have assertions activated and their equivalent Go produced.
  6. All header files used by SQLite3 now implemented. Not all of the listed header files are needed, but do appear in the SQLite3 file. Some of them are already implemented for partly of all of their functions: stdarg.h, stdint.h, inttypes.h, stdio.h, stdlib.h, string.h, assert.h, stddef.h, time.h, sys/sysctl.h, malloc/malloc.h, libkern/OSAtomic.h, pthread.h.
  7. Being able to successfully compile sqlite3.go (without any errors).
  8. Being able to run the SQLite3 test suite (I believe this is a bunch of TCL tests).
  9. Having all tests pass in the test suite.
Clone this wiki locally