MakeupElixir
TODO: Add description
Installation
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.1.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.
Benchmarks
Schism: “inline vs no inline”
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)
Schism: “map lookup vs pattern matching”
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.
Schism: “parse delimiter pairs”
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.