When compiling a project, Functional Developer produces a compiler database which models the project. The database provides a rich source of information to Functional Developer tools about the contents, properties, and relationships between source code definitions, libraries, and modules.
A project's compiler database is used when browsing and debugging the project, and is also used when compiling other projects that use the project.
The compiler database for a project does not exist until the project has been built for the first time. Before then, if you try to do anything that requires the database, the development environment will ask you if you want to create it.
Once the compiler database has been built, the development environment will ensure it is kept up to date with each recompilation of the project.
Functional Developer stores project files on disk for persistence between sessions. When you close a project, the development environment checks whether the database has changed since it was last saved, and if it has it asks you if you want to save the database. (You can use File > Save Compiler Database from the project window to save the compiler database at other times, if necessary.) When you re-open the project later, the database is read into memory from the disk file, if it exists.