diff options
author | Eelco Dolstra <e.dolstra@tudelft.nl> | 2003-06-16T13·33+0000 |
---|---|---|
committer | Eelco Dolstra <e.dolstra@tudelft.nl> | 2003-06-16T13·33+0000 |
commit | 822794001cb4260b8c04a7bd2d50d890edae709a (patch) | |
tree | c4c3a86f638422c8d756752050ebcbb45eba2ee7 /src/globals.hh | |
parent | b9f09b3268bf0c3d9ecd512dd3a0aa1247550cc2 (diff) |
* Started implementing the new evaluation model.
* Lots of refactorings. * Unit tests.
Diffstat (limited to 'src/globals.hh')
-rw-r--r-- | src/globals.hh | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/src/globals.hh b/src/globals.hh new file mode 100644 index 000000000000..d4fe4b370f2a --- /dev/null +++ b/src/globals.hh @@ -0,0 +1,60 @@ +#ifndef __GLOBALS_H +#define __GLOBALS_H + +#include <string> + +using namespace std; + + +/* Database names. */ + +/* dbRefs :: Hash -> FileName + + Maintains a mapping from hashes to filenames within the NixValues + directory. This mapping is for performance only; it can be + reconstructed unambiguously. The reason is that names in this + directory are not printed hashes but also might carry some + descriptive element (e.g., "aterm-2.0-ae749a..."). Without this + mapping, looking up a value would take O(n) time because we would + need to read the entire directory. */ +extern string dbRefs; + +/* dbNFs :: Hash -> Hash + + Each pair (h1, h2) in this mapping records the fact that the value + referenced by h2 is a normal form obtained by evaluating the value + referenced by value h1. +*/ +extern string dbNFs; + +/* dbNetSources :: Hash -> URL + + Each pair (hash, url) in this mapping states that the value + identified by hash can be obtained by fetching the value pointed + to by url. + + TODO: this should be Hash -> [URL] + + TODO: factor this out into a separate tool? */ +extern string dbNetSources; + + +/* Path names. */ + +/* nixValues is the directory where all Nix values (both files and + directories, and both normal and non-normal forms) live. */ +extern string nixValues; + +/* nixLogDir is the directory where we log evaluations. */ +extern string nixLogDir; + +/* nixDB is the file name of the Berkeley DB database where we + maintain the dbXXX mappings. */ +extern string nixDB; + + +/* Initialize the databases. */ +void initDB(); + + +#endif /* !__GLOBALS_H */ |