Use an external file to demonstrate the `autoref` role (the external file lets us `literalinclude` and `include` without writing out the source twice, while still showing all the different ways of using our custom roles).
Allow autoref to render `help *` as yoscrypt instead of trying to link when `*` starts with `<` or `-`, as in `help <command>` and `help -all`.
Fix autoref `help *` being linkable when there is a line break in the middle.
Add a sed command to the (top level) makefile for extract comment block for the specified cell. Works with both simlib.v and simcells.v (by abusing `%` pattern matching slightly to disambiguate which to search).
Split into cmd/cell sections. cmd json is in paragraphs, cell json is bullet points (and pending example).
Add (bullet point) section for warning flags.
Add note to `Pass::help()` about how each line should be a single `log()` call.
Also moved them to the bottom, instead of being under the "command help" heading.
Now includes more info about cells, and the custom sphinx domains/directives/roles we have.
Add comments in setup-build-env/action.yml for where to document prereqs (and the separation between build/run and test).
Add some initial (very basic) text for `test_suites.rst`, listing prereqs and how to run the tests (with subsections for the different optional tests, which is currently docs, functional and unit).
Add sphinx-inline-tabs, use it for tidying up prereq instructions based on OS/platform (mostly helpful in the test suites doc where there are multiple sections split by OS).
Also fixes some single backticks that should be double backtick.
- add `uv` to dependencies: saves builder(s) from manually having to manage a venv for python build dependencies
- when building wheels, pip automatically creates the environment with those dependencies, so no need for uv
- when running simply `make ENABLE_PYOSYS=1`, this is not the case. people attempting to `pip3 install --upgrade pybind11 cxxheaderparser` to add it to their system packages will be met with a scare message about "breaking system packages"
- update installation instructions to drop boost and add uv instead
- update ci scripts to use `macos-15[-intel]` (`macos-13` sunset in early december)
- Rewrite all Python features to use the pybind11 library instead of boost::python.
Unlike boost::python, pybind11 is a header-only library that is just included by Pyosys code, saving a lot of compile time on wheels.
- Factor out as much "translation" code from the generator into proper C++ files
- Fix running the embedded interpreter not supporting "from pyosys import libyosys as ys" like wheels
- Move Python-related elements to `pyosys` directory at the root of the repo
- Slight shift in bridging semantics:
- Containers are declared as "opaque types" and are passed by reference to Python - many methods have been implemented to make them feel right at home without the overhead/ambiguity of copying to Python and then copying back after mutation
- Monitor/Pass use "trampoline" pattern to support virual methods overridable in Python: virtual methods no longer require `py_` prefix
- Create really short test set for pyosys that just exercises basic functionality