ocaml-gospel / gospel

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

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

Closed shym closed 11 months ago

shym commented 12 months 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 11 months 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.