Age | Commit message (Collapse) | Author |
|
From RFC7231 and RFC5646.
The ABNF for language tags is terrible. It makes parsing efficiently
a big challenge and the result is this huge ugly set of functions.
Thankfully triq allows us to make sure the implementation is correct.
A large number of examples has also been extracted from both RFCs.
The various ?IS_ALPHA(C), ?IS_TOKEN(C) and so on have received a
change: they now use 'orelse' instead of ';'. This is because in
this new code we need to check more than one character per clause.
The compilation time for this module increased dramatically.
Apparently happens because the guards are too big. Using ranges
($a =< C =< $z) instead of the current solution makes compilation
much faster, but the function executes twice as slow which is not
acceptable.
|
|
From RFC7232.
Nearly twice as fast as current Cowboy code.
|
|
Detected by triq.
|
|
From RFC7231.
This code is more than twice faster as the current Cowboy code,
while filtering out more bad cases.
|
|
From RFC7231.
This code is more than twice faster as the current Cowboy code,
while filtering out more bad cases.
|
|
This is a new implementation that has been measured to be up
to 33% faster than the implementation that was in Cowboy.
|