3
0
Fork 0
mirror of https://github.com/YosysHQ/yosys synced 2025-04-12 04:03:45 +00:00
Commit graph

14915 commits

Author SHA1 Message Date
Krystine Sherwin 7d7c32d056
Makefile: Fix chformal.cc copy 2025-03-21 10:41:29 +13:00
Krystine Sherwin 032ab8e444
Drop <cmd>.rst dump 2025-03-21 10:34:40 +13:00
Krystine Sherwin 84dbdb4b6b
flatten: Move to hierarchy folder 2025-03-21 10:31:05 +13:00
Krystine Sherwin 9966c5cd2d
Docs: Naming techlibs 2025-03-21 10:28:48 +13:00
Krystine Sherwin 925b00dd94
cmdref: Groups and group names 2025-03-21 10:28:48 +13:00
Krystine Sherwin 1161dfd274
Docs: Include internal cmds in toctree
Also fixing some missing refs (using single backticks instead of double).
2025-03-21 10:28:48 +13:00
Krystine Sherwin 45225d1391
synthprop: Use override keyword
`formatted_help()` introduced the override keyword, which means that the other two methods that were marked as virtual instead raised a warning about inconsistent use of override.  This fixes that by bringing the synthprop (more) in line with the rest of the code-base.
2025-03-21 10:28:48 +13:00
Krystine Sherwin b9f0fabff0
docs/internal: Add note on synth_* script highlighting 2025-03-21 10:28:48 +13:00
Krystine Sherwin ebd6d5f85b
cmdref: Drop optiongroups
Linking to optiongroups doesn't add *that* much, and is kind of a pain; meanwhile having the optiongroups adds an extra level of indentation.
Instead of options needing to be in an option group, they instead go in either the root node or nested in a usage node.  Putting them in a usage node allows for more-or-less the previous behaviour but without making it the default.
2025-03-21 10:28:48 +13:00
Krystine Sherwin a2433ba34b
cmdref: Format help_script() output as yoscrypt
Or at least all of the synth commands, because they have the same preceding text.
Except `synth_fabulous`, because that has unconditional `read_verilog`s at the start.  Which seems like a bad idea and and not compatible with `-run`?
2025-03-21 10:28:48 +13:00
Krystine Sherwin b1c9097a12
cmdref: codeblock language now works
Add `options` map for setting `ContentListing` options with key:val pairs; currently only used with `ContentListing::codeblock()` language arg.
Fix generated codeblock rst to print each line of code with indentation, and change it to use explicit an `code-block` so we can set a language on it.
2025-03-21 10:28:48 +13:00
Krystine Sherwin fb944ca0fb
cmdref: Drop pmgen index 2025-03-21 10:28:47 +13:00
Krystine Sherwin 435e3d5fc1
cmdref: Split passes/status from passes/cmds
Rename passes/cmds from "General passes" to "Design modification".
More `yosys.h` includes.

cmdref: Split passes/status from passes/cmds

Rename passes/cmds from "General passes" to "Design modification".
More `yosys.h` includes.
2025-03-21 10:28:47 +13:00
Krystine Sherwin 40b207d625
cmdref: Assign rmports to greenpak group
Also tidy `#include`s.
2025-03-21 10:28:47 +13:00
Krystine Sherwin 6f96f9c373
Docs: Title for index_internal 2025-03-21 10:28:47 +13:00
Krystine Sherwin 753b418a8b
Docs: Skeleton documentation for writing command help
Use `chformal` as example, comparing the `autocmd` output with `ChformalPass::formal_help()`, the json dump from the `ContentListing`, the command line output, and the RST generated (using `autocmd_rst`).
Includes bullet points on each step for more information.
Should eventually end up in `yosys_internals/extending_yosys/contributing.rst`, but it currently lives in `cmd/index_internal.rst` to avoid merge conflicts since cell help documentation is still WIP.
Also exports chformal source and help output to `docs/source/generated` during `make docs/prep`.
2025-03-21 10:28:47 +13:00
Krystine Sherwin b4ccaf8c08
autocmd_rst: autodoc for generated RST
Adds `autocmd_rst` directive, which effectively calls `autocmd` for the same command, but wraps it in a code-block in order to render the raw RST generated.
2025-03-21 10:26:13 +13:00
Krystine Sherwin 97b9a4c095
cmd_documenter: Fix option_spec
Need to copy parent class `option_spec` to retain default options (e.g. `:noindex:`).
2025-03-21 10:26:13 +13:00
Krystine Sherwin 07b6a35553
Docs: Option lists have yoscrypt highlights 2025-03-21 10:26:13 +13:00
Krystine Sherwin d1d419cb51
cmdref: Assigning cmds to formal group
Give formal index a proper title.
Use `Pass::formatted_help()` to assign the group, but still return `false` because the help text still comes from `Pass::help()`.
Tidy up some of the affected files' includes to make use of the shared `yosys.h` includes.
2025-03-21 10:26:12 +13:00
Krystine Sherwin a74aeb1301
Docs: Grouping changes
Keep techlibs folder hierarchy.
techlibs/* and passes/* groups are now nested under index_techlibs and index_passes respectively, with most (all?) of the passes/* pages getting proper headings, as well as backends/frontends/kernel.  `index_passes_techmap` also references `index_techlibs`.
Split command reference toc in twain, one with maxdepth=2 and one with maxdepth=3, since passes and techlibs now have an extra level of nesting.
Move the `cmd_ref` link to the command reference, instead of top of the page.
Remove `index_internal` and `index_other` from the toc, and mark the pages as orphan. Internal commands get a note callout after the command reference toc (although this doesn't work for the pdf build), while other commands are linked in the warning for missing `source_location` (since that *should* be the only time when there are any commands in the "unknown" group).
Update autodoc extension versions, and mark the directives extension as not `parallel_read_safe` (it might be, but I'm not sure about how the xref lookups work if it is parallel so better to be safe).
2025-03-21 10:26:12 +13:00
Krystine Sherwin 598b41406c
Docs: Don't force READTHEDOCS on local
readthedocs detection should only trigger on actual readthedocs builds.
2025-03-21 10:26:12 +13:00
Krystine Sherwin 024bfcdc53
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-03-21 10:26:12 +13:00
Krystine Sherwin a898ade473
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-03-21 10:26:12 +13:00
Krystine Sherwin b9485ce094
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-03-21 10:26:12 +13:00
Krystine Sherwin f4ad934542
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-03-21 10:26:12 +13:00
Krystine Sherwin bce73af324
Docs: Show warning on experimental cmds 2025-03-21 10:26:12 +13:00
Krystine Sherwin a3125ce892
cmdref: Add cmd titles
Display subheadings for each command.
Remove now redundant toc entry for `yosys> help <cmd>` line.
2025-03-21 10:26:11 +13:00
Krystine Sherwin 68cb02d9f3
Rename help_v2 to formatted_help
Also add comments to `help()` and `formatted_help()` to clarify usage.
2025-03-21 10:26:11 +13:00
Krystine Sherwin 34c514bf96
source_location: Try use __has_include 2025-03-21 10:26:11 +13:00
Krystine Sherwin d244b4a101
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-03-21 10:26:11 +13:00
Krystine Sherwin 2575f87381
source_location: Auto detect library
Drop `ENABLE_SOURCE_LOCATION` flag.
2025-03-21 10:26:11 +13:00
Krystine Sherwin 343758371d
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-03-21 10:26:11 +13:00
Krystine Sherwin 49907914c4
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-03-21 10:26:11 +13:00
Krystine Sherwin 11af1a275b
Docs: Downgrade missing cmdgroup warning
Log an info message, and put a warning for the content instead.
2025-03-21 10:26:11 +13:00
Krystine Sherwin 07c2666447
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-03-21 10:26:10 +13:00
Krystine Sherwin aedc13ab7f
log_help: Add manual group support
Sets `chformal` group to "formal" for testing purposes
2025-03-21 10:26:10 +13:00
Krystine Sherwin 1efd3aeb7d
Move source_location to register.h
Revert `PrettyHelp::get_current()` for no args since we can use `Pass::location` instead.
2025-03-21 10:26:10 +13:00
Krystine Sherwin 431cb2d1b9
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-03-21 10:26:10 +13:00
Krystine Sherwin 620dcd8a38
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-03-21 10:26:10 +13:00
Krystine Sherwin 35498ae3f6
docs: Working cmdref groups
Also adds note on source location if available.
2025-03-21 10:26:10 +13:00
Krystine Sherwin a0da79981b
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-03-21 10:26:10 +13:00
Krystine Sherwin 4e88f86414
Makefile: Drop cmds rst from docs/prep 2025-03-21 10:26:10 +13:00
Krystine Sherwin 59bcd7ce14
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-03-21 10:25:46 +13:00
Krystine Sherwin 69fa0f9fef
Docs: Update cmdref domain
Compatible with `dump_cmds_json`.
2025-03-21 10:25:46 +13:00
Krystine Sherwin 0e1434ac0c
Docs: Fix dump_cmds_json for PrettyHelp 2025-03-21 10:25:45 +13:00
Krystine Sherwin fd5e420edd
log_help: {add,push,pop}_content helpers 2025-03-21 10:25:45 +13:00
Krystine Sherwin 09dfbea6df
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-03-21 10:25:45 +13:00
Krystine Sherwin a7da7d3a56
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-03-21 10:25:45 +13:00
Krystine Sherwin 40e6fe8263
log_help: Options can have content
Refactor `PrettyHelp::endgroup()` -> `PrettyHelp::close(int levels = 1)`.
2025-03-21 10:25:45 +13:00