Skip to content

0.8.0

Compare
Choose a tag to compare
@maciejhirsz maciejhirsz released this 28 Jun 23:01
· 194 commits to master since this release

Breaking changes

  • Minor, this release removes the JsonError::UnexpectedToken variant, as the tokenizer is no longer present.
  • All deprecated functions and methods have been removed.

No tokenizer

This version introduces a major overhaul of the parser. Initially, this project was born as a sidekick to a JavaScript parser of mine. Since JSON is a subset of JavaScript it was easy for me to reuse most of the parser and code generator.

The parser in HoneyBadger is, for very good reasons, using a separate tokenizer as an intermediate layer between source code and AST. JSON as it turns out is a very simple format, and having a tokenizer is very much an overkill. This release removes the tokenizer and makes the parser read directly from the byte source, which combined with a series of other tweaks increases parsing performance dramatically.

Much fix, very wow

Thanks to @dtolnay this release also includes a whole bunch of fixes to some edge cases of both the parser and code generator.