TODO: Add description
If available in Hex, the package can be installed
by adding makeup_elixir
to your list of dependencies in mix.exs
:
def deps do
[
{:makeup_elixir, "~> 0.8.0"}
]
end
Documentation can be generated with ExDoc and published on HexDocs. Once published, the docs can be found at https://hexdocs.pm/makeup_elixir.
Should we inline parsec or not? Currently this can be done using a config option. By default, parsers are not inlined because inlining doubles compilation time.
-
Lexing speed: comparison; with inlined parsecs; without inlined parsecs. Very weird performance characteristics. Faster on average but extremely high latency in the worst case.
-
Compilation speed: comparison; with inlined parsecs; without inlined parsecs. As expected, compiling the inlined parsecs is much slower (about 2x slower)
Postprocessing the token lists using map lookup VS pattern matching
-
Lexing speed: comparison; map lookup; pattern matching. Very weird performance characteristics. Faster on average but extremely high latency in the worst case.
-
Compilation speed: comparison; map lookup; pattern matching.
This lexer used to use a very expensive operation to match some delimiters, which seemed to have supralinear complexity. Now, only a couple delimiters are parsed like this.