enigma
enigma copied to clipboard
database of symbols
The enigma core should construct a database of symbols, and their references for the program. This will (in theory) enable the projects to load faster once the database has been built.
The database should store symbols for:
- Classes
- Fields
- Methods
- Parameters / Locals
When a program is initially analyzed, the database is built. Upon next launch, the program will load the symbol tree from the database into memory (lazily?)
This will cut down the unecassary computational costs when re-analyzing the program.
Some considerations for the file format: We should use a constant-pool like approach, for example: (
<cls> java/lang/Object # entry 0 <name> equals # entry 1 <desc> (0)V # entry 2 <method> 0 1 2 # entry 3
This is done to save storage space when building the database, and it's also primarly how the JVM structures it's class-file constant pool.