nom v7.1.0 Release Notes

Release Date: 2021-11-04 // 8 months ago
  • Thanks

    • @nickelc
    • @Stargateur
    • @NilsIrl
    • ๐Ÿ‘ฏ @clonejo
    • @Strytyp
    • @schubart
    • @jihchi
    • @nipunn1313
    • @Gungy2
    • @Drumato
    • @Alexhuszagh
    • @Aehmlo
    • @homersimpsons
    • @dne
    • @epage
    • @saiintbrisson
    • @pymongo

    ๐Ÿ”„ Changed

    • ๐Ÿ“š documentation fixes
    • ๐Ÿ›  Ci fixes
    • ๐ŸŽ the move to minimal-lexical for float parsing introduced bugs that cannot be resolved right now, so this version moves back to using the standard lib' parser. This is a performance regression*. If you have specific requirements around float parsing, you are strongly encouraged to use recognize_float and another library to convert to a f32 or f64

    โž• Added

    • alt now works with 1 elment tuples

Previous changes from v7.0.0

  • ๐Ÿš€ This release fixes dependency compilation issues and strengthen the minimum supported Rust version (MSRV) policy. This is also the first release without the macros that were used since nom's beginning.

    Thanks

    • @djc
    • @homersimpsons
    • @lo48576
    • @myrrlyn
    • @RalXYZ
    • @nickelc
    • @cenodis

    โž• Added

    • take_until1 combinator
    • more to_owned implementations
    • 0๏ธโƒฃ fail: a parser that always fail, useful as default condition in other combinators
    • ๐Ÿ“œ text to number parsers: in the character::streaming and character::complete modules, there are parsers named i8, u16, u32, u64, u128 and u8 ,u16, u32, u64, u128 that recognize decimal digits and directly convert to a number in the target size (checking for max int size)

    โœ‚ Removed

    • ๐Ÿšš now that function combinators are the main way to write parsers, the old macro combinators are confusing newcomers. THey have been removed
    • ๐Ÿšš the BitSlice input type from bitvec has been moved into the nom-bitvec crate. nom does not depend on bitvec now
    • ๐Ÿšš regex parsers have been moved into the nom-regex crate. nom does not depend on regex now
    • ๐Ÿ“œ ErrorKind::PArseTo was not needed anymore

    ๐Ÿ”„ Changed

    • ๐Ÿ˜Œ relax trait bounds
    • ๐ŸŽ some performance fixes
    • split_at_position* functions should now be guaranteed panic free
    • ๐Ÿ“œ the lexical-core crate used for float parsing has now been replaced with minimal-lexical: the new crate is faster to compile, faster to parse, and has no dependencies

    ๐Ÿ›  Fixed

    • infinite loop in escaped combinator
    • many_m_n now fails if min > max