nom v7.1.0 Release Notes

Release Date: 2021-11-04 // over 2 years 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