Nmfu

Latest version: v0.5.5

Safety actively analyzes 613750 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 4

0.5.5

This is a minor bugfix and documentation release.

Bugs Fixed

- Finish actions applied immediately prior to a potentially-empty match are no longer dropped by `DFA.append_after`. (3, cd28251, 53bbc12)

Infrastructure Changes

- Added note to documentation about the lack of generality with `$last` (666e240)
- Fix cross-references in documentation (5e00f1b)
- Remove mentions of deprecated snaps (0dc8a68)
- Show failing testcase for integration tests in assertion message (37ef846)

0.5.4

This is a minor feature release, adding packed enums.

New Features

- The command-line flag `-fuse-packed-enums` has been added which causes any generated C enums to be declared with `__attribute__((packed))` for potentially less memory use. (bff55badafc78f070356071618bfc957a35ce4c3)

0.5.3

This is a minor dependency update release, which should only serve to solve potential dependency conflicts.

Infrastructure Changes

- Changed version requirement on lark to allow any `1.x` version, instead of only `1.0.x` (adb1e94)

0.5.2

This is a minor bugfix release, fixing a few bugs with binary strings and duplicate definition detection.

Bugs Fixed

- Duplicate macro arguments are now properly considered errors (d793494)
- Strings containing quotes or which are specified as binary strings are now properly written in generated C files (c7b0052)
- Removed redundant conditions in `DFA.append_after` (ddef270)

Infrastructure Changes

- Fixed badges on [readthedocs](https://nmfu.rtfd.io) (a1467c0)
- Added a few new test cases (55d93de)

0.5.1

This is a minor bugfix release.

Bugs Fixed

- Fixed the accept state used for empty try-catch handlers not getting added to the DFA, which could cause the parser to sometimes incorrectly terminate early (6b62704)

Infrastructure Changes

- Adjusted how AppImages are created, and marked them as terminal apps (1a6b80f, f22a022)

0.5.0

This is a major feature release, greatly expanding the capabilities of case statements, as well as adding more ways to communicate from the parser to the calling code.

NOTE: snaps are no longer packaged for `nmfu` (due to CI issues), if you install `nmfu` via `snap`, please migrate either to installing from PyPI (perhaps via `pipx`) or use the AppImages.

New Features

- The "greedy" case modifier, which loosens the ambiguity requirements on case blocks: (52e5418)
- Ambiguity between a completed match and checking for a longer match of another branch are resolved to consume the least characters in the conditional matches.
- Ambiguity between multiple branches can be explicitly clarified with priorities.
- Finish codes: explicit finish statements can now return custom status codes, instead of just always giving `_DONE` (1ffe4d4)
- Yield: parsers can now interrupt execution with a return code and be restarted; for example to build a lexer (1ffe4d4, 41b2c23)

The existing examples have been updated to take advantage of these features, as well as a new example demonstrating greedy case statements and yielding in the context of a simple lexer.

Bugs Fixed

- Loops that have (possibly conditional) breaks before any matching statements no longer think they're infinite (a687b3b)
- Fix over-eager fallthrough shortcircuit optimizations involving condition points (55a38d8)
- Fix over-sensitive detection for infinite fallthrough loops (a5c65df)
- `append_after` no longer diverts error handling transitions on its own when dealing with proxy states; now instead just replicates the error/nonerror status and lets the normal handling take place (2, 3f3f524, 03c23e6)
- Try-except blocks now use a simpler representation for exception handlers that consume no characters, which fixes various cases of missed actions with `outofspace` handlers (6bad7c1, 74f3e9a)

Infrastructure Changes

- Tests now use finish codes to better check correctness (9f1c20e, 9d0b812)
- Various examples/docs have been updated to use finish codes instead of result enumerations (976fc60, a777a5e)
- New lexer example demonstrating yield functionality (a9a96a8)
- Various documentation improvements:
- Better syntax highlighting (2527e74, 4d52e5c, ee68d8f, dd6223f, d779af1)
- New tutorial describing the lexer example (b693a8a)
- Documentation for the new greedy case and yield/finish codes (b9e96a8, 4e47875)
- Updated to lark 1.0 (f3dd61e)
- Appimages now build against Ubuntu 20.04 as their base (9dc256c)
- Disable auto-building of snaps due to CI problems (the snapcraft.yml file is still present in case you still need them) (d7b771d)
- Debug dumper improvements:
- Now highlights error-handling transitions in orange (4cf606d)
- Now properly visualizes transitions with actions defined as diverting to "undefined" instead of just hiding them (7cf4a5a)

Page 1 of 4

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.