Livt packages
Eccelerators.Cli
Version 1.4.1
Transport-independent, bounded command-line input, parsing, editing, and output for Livt FPGA applications.
Published files (23)
CHANGELOG.md
Changelog
All notable changes to this package are documented here.
1.4.1
Changed
- Prepare package discovery metadata and publish the README, changelog and license alongside the existing transport-independent CLI components.
- Update the Livt.IO dependency to 1.8.1.
1.4.0
Added
- Configurable line and output storage through
Cli<LINE_STORAGE, OUTPUT_STORAGE>. Each backend implementsIRam<byte>, has a parameterless constructor and provides at least 64 bytes. Consumers can select inferred RAM or a custom logic-array backend. - Storage parameters on
CliParser,CliOutputandCommandDispatcher, with independent line/output stores and matching dispatcher configuration. - Storage-backend regressions covering initialized data, capacity, wraparound and clear behavior, plus argument-index and offset boundary cases.
Changed
- Default scheduled CLI buffers to
Ram<byte, 64, MemoryStyle.Block>. Logical lengths guard reads, so initialization and clear do not require zeroed memory cells. Storage style remains a synthesis hint. - Document storage selection and ownership alongside transport integration.
Fixed
- Validate argument indices before adding the command-token offset, preventing signed overflow for large indices. Retain a bounded token index for hardware addressing. Invalid argument lengths and bytes return zero.
Compatibility and dependencies
- Ordinary
Cliconstruction continues to use default generic parameters. Consumers choosing custom storage must use matching types in their dispatcher and any command handlers that borrow the CLI. - Read public constants through the configured instance, such as
output.BUFFER_SIZE, when adapting type-qualified access to generic components. CompactCliretains its asynchronous line storage and streaming output behavior. Command capacities, parsing rules and output backpressure are unchanged.- Continue to depend on
Livt.IO 1.2.0; no new package dependency is required.
1.3.0
- Add optional
ICommand,ICommandRegistry,CommandRegistrationandCommandDispatcherfor constructor-registered command handlers. - Preserve first-match priority under output backpressure and centralize command completion after successful response acceptance.
- Let applications supply their own fallback, including an empty registry.
- Document command implementation, ownership and registration with an example.
- Test ordered dispatch, retries, idle dispatch, prompts and custom fallback independently of UART timing.
- Keep the existing
CliandCompactCliAPIs and theLivt.IO 1.2.0dependency unchanged; the command pattern is optional.
1.2.0
- Depend on
Livt.IO 1.2.0. - Migrate parser and output buffers to
DistributedRam<byte, 64>and compact terminal storage toAsynchronousDistributedRam8x64with explicit port wiring. - Preserve write-before-read semantics without requiring zero-filled memory.
- Verify buffered UART byte handoff, transmit backpressure and loopback input through the current Try-operation API.
- Register the compact echo regression and update transport integration examples.
1.1.0 - 2026-08-30
- Add
CompactCli, a free-text terminal with a distributed 64-byte line buffer, optional echo and backpressured streaming output for constrained FPGA applications. - Add opt-in free-text lines and complete raw-line byte access while preserving strict excessive-argument rejection by default.
1.0.0 - 2026-08-26
- Add a transport-independent, bounded FPGA command-line interface.
- Support CR, LF, CRLF, backspace, delete, optional echo, and prompts.
- Parse one command and up to eight whitespace-separated arguments.
- Provide atomic output writes and explicit transport backpressure.
- Use a 64-byte output FIFO suitable for resource-constrained FPGAs.
- Store the command line only once and use byte-wide bounded counters and token spans to reduce synthesized state and arithmetic width.
- Store the parser line and output FIFO in separate
Livt.IO.Ramcomponents to reduce LUT and flip-flop usage. - Cover disabled echo, input backpressure, failed atomic line writes, and full FIFO wraparound ordering in the test suite.