Bundle Files - Spicery/Nutmeg GitHub Wiki

The output of the compiler is a bundle file, which is Nutmeg's equivalent of an executable file. It contains all the assets for the Nutmeg runner to execute the compiled program and, optionally, to debug it.

Under the hood a bundle-file is a SQLITE database. A key table is the BINDINGS table, which maps identifier names to their code-tree.

Tables

Table Bindings

IdName Value FileName
Name of an identifier Code-tree value (JSON) Source file

Table Annotations

This table records important annotations such as @command and @unittest. The composite primary key is the identifier name plus the annotation-key. This table makes the old EntryPoints table obsolete.

IdName AnnotationKey AnnotationValue
Identifier name An annotation name A JSON value (not used at present)

Table DependsOn

IdName Needs
Name of an identifier that may be used as an entry-point Identifier that must be loaded to support it

Table SourceFiles

FileName Contents
Source file Contents of the source file