Skip to content

Commit

Permalink
cmdref: Export internal_flag to json
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
KrystalDelusion committed Jan 28, 2025
1 parent f9c2b80 commit a41de55
Show file tree
Hide file tree
Showing 5 changed files with 19 additions and 11 deletions.
5 changes: 5 additions & 0 deletions docs/source/cmd/index_internal.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
internal
------------------

.. autocmdgroup:: internal
:members:
5 changes: 0 additions & 5 deletions docs/source/cmd/index_passes_tests.rst

This file was deleted.

1 change: 1 addition & 0 deletions docs/source/cmd_ref.rst
Original file line number Diff line number Diff line change
Expand Up @@ -19,4 +19,5 @@ Command line reference
/cmd/index_formal
/cmd/index_passes*
/cmd/index_techlibs
/cmd/index_internal
/cmd/index_other
9 changes: 8 additions & 1 deletion docs/util/newcmdref.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ class YosysCmd:
source_line: int
source_func: str
experimental_flag: bool
internal_flag: bool

def __init__(
self,
Expand All @@ -62,7 +63,8 @@ def __init__(
source_file: str = "",
source_line: int = 0,
source_func: str = "",
experimental_flag: bool = False
experimental_flag: bool = False,
internal_flag: bool = False,
) -> None:
self.name = name
self.title = title
Expand All @@ -72,6 +74,7 @@ def __init__(
self.source_line = source_line
self.source_func = source_func
self.experimental_flag = experimental_flag
self.internal_flag = internal_flag

class YosysCmdGroupDocumenter(Documenter):
objtype = 'cmdgroup'
Expand Down Expand Up @@ -344,6 +347,10 @@ def add_content(self, more_content: Any | None) -> None:
self.add_line(f'.. warning:: This command is experimental', source_name, source_line)
self.add_line('\n', source_name)

if self.object.internal_flag:
self.add_line(f'.. warning:: This command is intended for internal developer use only', source_name, source_line)
self.add_line('\n', source_name)

def render(content_list: YosysCmdContentListing, indent: int=0):
content_source = content_list.source_file or source_name
indent_str = ' '*indent
Expand Down
10 changes: 5 additions & 5 deletions kernel/register.cc
Original file line number Diff line number Diff line change
Expand Up @@ -938,7 +938,6 @@ struct HelpPass : public Pass {
auto name = it.first;
auto pass = it.second;
auto title = pass->short_help;
auto experimental_flag = pass->experimental_flag;

auto cmd_help = PrettyHelp();
auto has_pretty_help = pass->formatted_help();
Expand Down Expand Up @@ -1078,7 +1077,9 @@ struct HelpPass : public Pass {
if (!cmd_help.has_group()) {
string source_file = pass->location.file_name();
bool has_source = source_file.compare("unknown") != 0;
if (source_file.find("backends/") == 0 || (!has_source && name.find("read_") == 0))
if (pass->internal_flag)
cmd_help.group = "internal";
else if (source_file.find("backends/") == 0 || (!has_source && name.find("read_") == 0))
cmd_help.group = "backends";
else if (source_file.find("frontends/") == 0 || (!has_source && name.find("write_") == 0))
cmd_help.group = "frontends";
Expand All @@ -1102,8 +1103,6 @@ struct HelpPass : public Pass {
cmd_help.group = "passes/opt";
else if (name.find("proc") == 0)
cmd_help.group = "passes/proc";
else if (name.find("test") == 0)
cmd_help.group = "passes/tests";
}

if (groups.count(cmd_help.group) == 0) {
Expand All @@ -1122,7 +1121,8 @@ struct HelpPass : public Pass {
json.entry("source_file", pass->location.file_name());
json.entry("source_line", pass->location.line());
json.entry("source_func", pass->location.function_name());
json.entry("experimental_flag", experimental_flag);
json.entry("experimental_flag", pass->experimental_flag);
json.entry("internal_flag", pass->internal_flag);
json.end_object();
}
json.end_object();
Expand Down

0 comments on commit a41de55

Please sign in to comment.