ocaml-gospel / gospel

A tool-agnostic formal specification language for OCaml.
https://ocaml-gospel.github.io/gospel
MIT License
128 stars 16 forks source link

Preprocessor uses a _lot_ of memory (and consequently of GC time) #336

Closed shym closed 1 year ago

shym commented 1 year ago

To test the performance of gospel pps, I’ve generated .mli files by concatenating copies of test/vocal/Vector.mli in a format:

module Block0 = sig
(* copy of Vector.mli *)
end
module Block1 = sig
...

Results:

(So note that the allocated_words and time are not linear)

shym commented 1 year ago

353 might be enough to fix this, even though it still loads the whole source into memory. Otherwise we should go into a fully streaming preprocessor.