enigma icon indicating copy to clipboard operation
enigma copied to clipboard

database of symbols

Open Decencies opened this issue 1 year ago • 6 comments

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.

Decencies avatar Jul 15 '23 23:07 Decencies