aboutsummaryrefslogtreecommitdiff
path: root/app/Store.hs
Commit message (Collapse)AuthorAgeFilesLines
* lintingYuchen Pei2022-08-181-1/+0
| | | | - disambiguate things
* Delete trailing whitespace (#42)Avi Dessauer2019-08-211-6/+6
|
* Code cleanup: fix warningsalexwl2019-05-171-1/+9
|
* Add support for GHC 8.6.4alexwl2019-03-141-0/+5
|
* Optimize memory usage of haskell-code-serveralexwl2019-01-231-0/+125
This commit adds an option to create an on-disk key-value store that contains all the data from PackageInfo of each indexed package in a queriable form. The store can be used by haskell-code-server to respond to API requests. The main benefit of using the store, compared to deserializing and loading PackageInfo of each package into memory, is reduced memory usage (approximately 7 times for a set of Haskell packages). The key-value store on disk consists of two files: 'index' and 'values'. 'index' is a small file that contains a map from strings to locations in a 'values' file. 'index' file should be deserialized and loaded into memory. 'values' is a large file that contains serialized Haskell data structures. 'values' file can be either read directly (without deserializing) or memory-mapped.