Pidgin v3.0.0 Release Notes

  • โœ‚ Removed

    • โœ‚ Removed support for .NET 4 and .NET Core 3.1. Pidgin is now a .NET 5 library.

    โž• Added

    • ๐Ÿ“œ Published the (previously internal) TokenStream API. You can now write parsers which consume custom input streams.
    • ๐Ÿ‘Œ Support for resumable parsing, through the ResumableTokenStream class.
    • An experimental API for writing your own parsers by subclassing Parser.

    ๐Ÿ”„ Changed

    • ๐Ÿ“œ Parser.Real is now a property and not a method.
    • โšก๏ธ A new design for computing source positions. posCalculator now returns a SourcePosDelta struct representing the amount of text covered by a token, rather than updating the current source position in place.
      • Performance improvements in the code which computes source positions.
    • ๐Ÿ‘€ The Parse methods in ParseExtensions now take an IConfiguration object as an optional parameter (instead of a posCalculator func).
      • If you were using posCalculator, you can instead subclass DefaultConfiguration and override the PosCalculator property.
    • ๐ŸŽ Performance improvements across the board thanks to a new Span-based implementation.
    • ๐ŸŽ Performance improvements in SkipWhitespaces.
    • ๐Ÿ‘ท A new CI build system based on GitHub Actions.