Commit Graph

14687 Commits

Author SHA1 Message Date
Krystine Sherwin dc8536013b
Docs: Add :cmd:title: directive
Calling :cmd:title:`<cmd>` will generate a cross reference to `<cmd>`, but unlike :cmd:ref: which displays a literal block and puts the title (short_help) in the hovertext (the title field of an a-ref), :cmd:title: will display "<cmd> - <short_help>" as plain text.
Thus replacing the previous use case of referring to :doc:`cmd/<cmd>`.
Also refactor util py scripts to have more descriptive names.
2025-01-29 09:27:23 +13:00
Krystine Sherwin a41de55f1d
cmdref: Export internal_flag to json
Commands flagged as internal will display a warning, just like experimental commands.
Drop `passes/tests` group in favour of `internal` group, which is automatically assigned for any command without an assigned group which is flagged as internal.
2025-01-29 09:27:23 +13:00
Krystine Sherwin f9c2b8040a
register.h: Add internal_flag to Pass
Update experimental pass warnings to use a shared function.  Reduces repetition, and also allows all of the warning flags to be combined (which at present is just experimental and the new internal).
Update `test_*` passes to call `internal()` in their constructors.
2025-01-29 09:27:23 +13:00
Krystine Sherwin ef0330f4a7
log_help: Refactor help content adding
Content is now added to the `ContentListing` rather than the `PrettyHelp`.
`open_*` methods return the `ContentListing` that was added instead of leaving a hanging continuation.
This allows for (e.g.) options to be added directly to optiongroups, instead of requiring that groups be closed before continuation.
This also means that all `PrettyHelp`s are a listing, with the actual log being called by the default `Pass::help()`; making the mode field redundant.
Added `PrettyHelp::log_help()` which replaces the `PrettyHelp::Mode::LOG` logic.
Added `ContentListing::back()` which just returns the last element of the underlying content vector.
Some of the content tracking was made redundant and removed, in particular `PrettyHelp::_current_listing` and `ContentListing::parent`.

Converted `ContentListing` to a class instead of a struct, adjusting constructors to match.
Added `ContentListing` constructor that accepts a `source_location`.

Update `HelpPass::dump_cmds_json()` for new log_help.
2025-01-29 09:27:23 +13:00
Krystine Sherwin 2598c32991
Docs: Show warning on experimental cmds 2025-01-29 09:27:23 +13:00
Krystine Sherwin 9c9a2777a1
cmdref: Add cmd titles
Display subheadings for each command.
Remove now redundant toc entry for `yosys> help <cmd>` line.
2025-01-29 09:27:23 +13:00
Krystine Sherwin 107020eb22
Rename help_v2 to formatted_help
Also add comments to `help()` and `formatted_help()` to clarify usage.
2025-01-29 09:27:23 +13:00
Krystine Sherwin b892002147
source_location: Try use __has_include 2025-01-29 09:27:22 +13:00
Krystine Sherwin a78ec2952a
register: Remove <filesystem>
Use `string::find_last_of()` instead.
Not sure how this works on windows, but it was already using '/' so at least it's not any worse.
2025-01-29 09:27:22 +13:00
Krystine Sherwin d60aa9519a
source_location: Auto detect library
Drop `ENABLE_SOURCE_LOCATION` flag.
2025-01-29 09:27:22 +13:00
Krystine Sherwin bc1a580677
Docs: docs/source/cmd is source only
i.e. we don't need to clean it, and we don't need to include it in the docs artifact
2025-01-29 09:27:22 +13:00
Krystine Sherwin 06c65e1bcc
Docs: Fix warnings
Changes a bunch of :doc:`/cmd/*` to :cmd:ref:`*` with the intention of changing it later to something that replicates the previous effect of displaying the commands `short_help`.
2025-01-29 09:27:22 +13:00
Krystine Sherwin 9e322aff8b
Docs: Downgrade missing cmdgroup warning
Log an info message, and put a warning for the content instead.
2025-01-29 09:27:22 +13:00
Krystine Sherwin fd40c523d7
dump_cmds_json: Output groups
Also output `pass->location.{file_name,line,function_name}()`.
If no group is given (i.e. it is "unknown"), attempt to automatically apply a group.
If we have source locations, this is based on path to the source file.
If we do not have source locations, try to match on the pass name instead.
2025-01-29 09:27:22 +13:00
Krystine Sherwin 56868a0f92
log_help: Add manual group support
Sets `chformal` group to "formal" for testing purposes
2025-01-29 09:27:22 +13:00
Krystine Sherwin 1a2acd8765
Move source_location to register.h
Revert `PrettyHelp::get_current()` for no args since we can use `Pass::location` instead.
2025-01-29 09:27:22 +13:00
Krystine Sherwin c874abf1e2
Docs: Group commands
Removes group parsing from command ref domain, instead relying on a 'groups' object in the cmds.json file.
`docs/source/cmd` is no longer ignored or cleaned.
2025-01-29 09:27:21 +13:00
Krystine Sherwin b93fbbc28f
dump_cmds_json: Fix auto formatting
- Command list for script passes
- Check buffer after loop
- Close options properly
- Ignore mismatched sigs e.g. `fsm_detect` on `fsm`
- Require double blank line before new signature
2025-01-29 09:27:21 +13:00
Krystine Sherwin e1c7dfbacb
docs: Working cmdref groups
Also adds note on source location if available.
2025-01-29 09:27:21 +13:00
Krystine Sherwin f7b168a2a1
log_help: Better location tracking
Assign root location in call to `PrettyHelp::get_current()`.
Set default `source_file` to `"unknown"`, since that appears to be the default value rather than `nullptr`.
2025-01-29 09:27:21 +13:00
Krystine Sherwin 3a2cf0b078
Makefile: Drop cmds rst from docs/prep 2025-01-29 09:27:21 +13:00
Krystine Sherwin 3444d96756
cmdref: Combine consecutive code blocks
Formatting is nicer when there is only one code block instead of multiple in a row, especially in pdf.
2025-01-29 09:27:21 +13:00
Krystine Sherwin e21d3503b4
Docs: Update cmdref domain
Compatible with `dump_cmds_json`.
2025-01-29 09:25:55 +13:00
Krystine Sherwin 4ac58dbeaa
Docs: Fix dump_cmds_json for PrettyHelp 2025-01-29 09:25:55 +13:00
Krystine Sherwin 12c3546d8c
log_help: {add,push,pop}_content helpers 2025-01-29 09:25:55 +13:00
Krystine Sherwin da81faae14
log_help: Json dumpable
Current modes are `LOG` and `LISTING`, which `log()` and store for conversion to json respectively.
Add `ContentListing` listing struct to (recursively) contain help data for conversion to a json object to be exported and used elsewhere (e.g. the docs).
Rather than formatting as rst we can just export with type information and do the conversion at the destination (i.e. in the python code which loads the domain for autodoc).
Implement `PrettyHelp::has_content()`.
Provide `PrettyHelp::get_content()` which returns a read-only list of the current content.
`PrettyHelp` constructor takes optional `Mode` enum to define format of help content.
Updates `PrettyHelp` methods to use a switch case for checking current mode, calling `log_abort()` in the default case (i.e. unsupported mode).
2025-01-29 09:25:55 +13:00
Krystine Sherwin 7c2c0791d0
log_help: Include source_location
Use `std::experimental::source_location` because clang support is `??`
Add `ENABLE_SOURCE_LOCATION` make variable and corresponding `YOSYS_ENABLE_SOURCE_LOCATION` define.
Dummy out the struct if disabled and check for null instead of using `#ifdef` blocks everywhere.
2025-01-29 09:25:55 +13:00
Krystine Sherwin 810781a655
log_help: Options can have content
Refactor `PrettyHelp::endgroup()` -> `PrettyHelp::close(int levels = 1)`.
2025-01-29 09:25:55 +13:00
Krystine Sherwin 11c632d4ba
WIP docs: Proto log_help
Define `PrettyHelp` class with methods for declaring different parts of help message.
Currently able to produce standard help messages as expected.
Updates chformal to use (only) the new help_v2.
Currently makes use of a global static to track the current help context, allowing register.h to live in blissful ignorance and instead rely on help_v2 implementations calling `auto *help = PrettyHelp::get_current();` and `return true;` to minimise impact on rebuilds (i.e. not requiring every source file to be recompiled).
2025-01-29 09:25:55 +13:00
Krystine Sherwin cb946f6f2b
Makefile: Add cmds.json to docs/prep 2025-01-29 09:24:27 +13:00
Krystine Sherwin a4526e73a6
Docs: Improve autoref
Fix `help $cell` type references, as well as actually implement the fallback to yoscrypt.
2025-01-29 09:24:27 +13:00
Krystine Sherwin fdb5bd3572
Docs: Proto doc_string approach for cmd help
Add `doc_string` field to `Pass` constructor
Add `docs/util/newcmdref.py` to contain command domain
Update `docs/util/cmdref.py` with `cmd:usage` and `cmd:optiongroup` for describing commands.
Functional, but WIP.
2025-01-29 09:24:26 +13:00
Krystine Sherwin 27792d8a5d
Docs: Test new pass help with chformal 2025-01-29 09:24:26 +13:00
Krystine Sherwin e5894a7a6f
Docs: WIP dump_cmds_json 2025-01-29 09:24:26 +13:00
Krystine Sherwin f066ccd75e
register: Add pass_usages and default help
Experimental new formatting for describing passes that can be rendered into the standard help format, as well as being more amenable to smarter formatting for web documentation.
2025-01-29 09:24:26 +13:00
Krystine Sherwin 9277ec10e1
json.h: Fix array template
Using `{begin|end}_object` inserts curly braces instead of square brackets, which can result in reordering (and may be syntactically incorrect?).
2025-01-29 09:24:26 +13:00
Krystine Sherwin 8b466de5be
Docs: Remove unused write_cell_rst function
The `help -write-rst-cells-manual` approach was made redundant by `help -dump-cells-json`.
2025-01-29 09:24:17 +13:00
github-actions[bot] 3d35f367cf Bump version 2025-01-24 00:20:25 +00:00
Catherine 3076803c9e
write_json: missing \n in help text. 2025-01-23 05:17:52 +00:00
github-actions[bot] 4a27d93b06 Bump version 2025-01-22 00:20:51 +00:00
Miodrag Milanovic e456f2e972 Next dev cycle 2025-01-21 15:26:22 +01:00
Miodrag Milanovic 427b5a251b Release version 0.49 2025-01-21 14:59:09 +01:00
Emil J da5c20dcfb
Merge pull request #4849 from YosysHQ/emil/hashlib-merge-top-ops
hashlib: merge hash_ops with hash_top_ops for plugin compat
2025-01-21 12:09:27 +01:00
Miodrag Milanovic d50849ea83 Copyright year update 2025-01-21 08:48:29 +01:00
github-actions[bot] 3f4f6c17d6 Bump version 2025-01-21 00:20:11 +00:00
Martin Povišer 0c95a76c97
Merge pull request #4856 from gadfort/synth-flatten
add support for passing flatten -separator to flatten in synth
2025-01-20 19:38:25 +01:00
Peter Gadfort 66545caa1b Merge branch 'main' into synth-flatten 2025-01-20 10:24:38 -07:00
N. Engelhardt f6517a5931
Merge pull request #4859 from YosysHQ/docs-preview-git_links
Fix links for view/edit source
2025-01-20 15:39:34 +00:00
Miodrag Milanović 2c6dc1ac83
Merge pull request #4858 from YosysHQ/update_latest-24.04
Update workflow(s) for ubuntu-latest == ubuntu-24.04
2025-01-20 16:34:46 +01:00
Emil J. Tywoniak a2c26a00f2 hashlib: document merged hash_top_ops with hash_ops 2025-01-20 16:25:52 +01:00