Robert O'Callahan
2f81c55389
Make mfp const methods thread-safe.
...
In particular, we make the parent links relaxed atomics so concurrent
`ifind()` calls are safe.
This may appear to cause a tiny performance regression but as discussed
in https://yosyshq.discourse.group/t/parallel-optmergepass-implementation/87/16
this is probably just noise.
2025-10-06 22:44:01 +00:00
Krystine Sherwin
da2e021e3b
abc9.cc: Use -r for &dch
...
Avoids "ABC: The command has to terminate. Boxes are not in a topological order." error during `&if`.
2025-10-06 14:07:40 +01:00
github-actions[bot]
637665c9d3
Bump version
2025-10-04 00:21:39 +00:00
Miodrag Milanović
ed4eb6d331
Merge pull request #5406 from YosysHQ/verific_import_err_print_src
...
verific: print source location of problematic object on import error
2025-10-03 14:05:05 +02:00
N. Engelhardt
0b6adf832b
verific: print source location of problematic object on import error (if available)
2025-10-03 12:57:49 +02:00
Mohamed Gaber
440e331ae0
docs: proofread pyosys.rst
...
Primarily address feedback from @KrystalDelusion (thanks!)
2025-10-03 11:54:44 +03:00
Mohamed Gaber
93fae3c606
docs: write small guide for using pyosys
2025-10-03 11:54:44 +03:00
Mohamed Gaber
80fcce64da
pyosys: fix ref-only classes, implicit conversions
...
+ cleanup
2025-10-03 11:54:44 +03:00
Mohamed Gaber
c8404bf86b
pyosys/hashlib: equivalence operators
2025-10-03 11:54:44 +03:00
Mohamed Gaber
447a6cb3f0
misc: WITH_PYTHON -> YOSYS_ENABLE_PYTHON
...
For consistency.
Also trying a new thing: only rebuilding objects that use the pybind11 library. The idea is these are the only objects that include the Python/pybind headers and thus the only ones that depend on the Python ABI in any capacity, so other objects can be reused across wheel builds. This has the potential to cut down build times.
2025-10-03 11:54:44 +03:00
Mohamed Gaber
dc88906c91
tests/pyosys: print log on failed test, fix make clean
2025-10-03 11:54:44 +03:00
Mohamed Gaber
54799bb8be
pyosys: globals, set operators for opaque types
...
There is so much templating going on that compiling wrappers.cc now takes 1m1.668s on an Apple M4…
2025-10-03 11:54:44 +03:00
Mohamed Gaber
384f7431fd
pyosys: rewrite wrapper generator
...
[skip ci]
2025-10-03 11:54:44 +03:00
Mohamed Gaber
88be728353
pyosys: rewrite using pybind11
...
- 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
2025-10-03 11:54:44 +03:00
Akash Levy
623c54d513
Only do SFCU if has VHDL
2025-10-02 06:02:39 -07:00
Akash Levy
6021168b03
Add back VHDL support
2025-10-02 00:39:33 -07:00
Akash Levy
aa16191b80
Merge branch 'YosysHQ:main' into main
2025-10-01 22:22:07 -07:00
Akash Levy
a353716202
Update fanoutbuf
2025-10-01 20:59:36 -07:00
Akash Levy
66abd04b5a
Remove annotate_logic_depth
2025-10-01 20:57:51 -07:00
Akash Levy
c8d8c4f408
Add fanoutbuf pass
2025-10-01 19:23:45 -07:00
Akash Levy
17e3ed3258
Remove annotate_unqcoef (for now)
2025-10-01 19:23:13 -07:00
github-actions[bot]
f7120e9c2a
Bump version
2025-10-02 00:22:09 +00:00
Jannis Harder
058766da22
Merge pull request #5393 from sifferman/ifdef_tran
...
Added ifndef SIMLIB_NOCONNECT
2025-10-01 21:05:44 +02:00
Ethan Sifferman
d5beb65d30
added SIMLIB_VERILATOR_COMPAT
2025-10-01 10:19:25 -07:00
Emil J
2872847ea5
Merge pull request #5403 from rocallahan/idstring-empty
...
Optimize `IdString::empty()`
2025-10-01 11:23:59 +02:00
Robert O'Callahan
d45223976a
Optimize IdString::empty()
...
I actually saw this take 0.6% of the time in an `opt_clean` pass (under Module::check()).
Trivial issue, but the fix is also trivial and simple.
2025-10-01 02:49:03 +00:00
Robert O'Callahan
915ad949f9
Limit the maximum size of parsed RTLIL constants to 1 Gb.
...
Without this check it's trivially easy to crash Yosys with a tiny RTLIL input
by specifying a constant with very large width. Fuzz testers love hitting this
over and over again.
2025-10-01 02:17:22 +00:00
Robert O'Callahan
ac4cb5e460
Implement a handwritten recursive-descent RTLIL parser with minimal copying
2025-10-01 02:17:22 +00:00
github-actions[bot]
01eaaa4b90
Bump version
2025-10-01 00:26:18 +00:00
Robert O'Callahan
7f550468ea
Update RTLIL text representation docs
2025-09-30 21:39:19 +00:00
Robert O'Callahan
db3d9a1baf
When adding named elements to an RTLIL::Module, std::move the name to avoid refcount churn
2025-09-30 21:39:18 +00:00
Robert O'Callahan
86d8dd6224
Add a moving assignment operator for IdString to avoid refcount churn
2025-09-30 21:39:18 +00:00
Robert O'Callahan
39c6e06e3d
Add an IdString(std::string_view) constructor for efficiency when we already know the string length
2025-09-30 21:39:18 +00:00
Robert O'Callahan
6b43fca8df
Make the Const string constructor take the string by value and move it into the const
2025-09-30 21:39:18 +00:00
Akash Levy
40f562475e
Smallfix
2025-09-30 14:18:23 -07:00
Akash Levy
dee059bee8
Fix minor Yosys issues
2025-09-30 12:05:36 -07:00
Akash Levy
c26f38faeb
Merge branch 'YosysHQ:main' into main
2025-09-30 11:14:33 -07:00
Emil J
7719beb4ae
Merge pull request #5349 from rocallahan/cleanup-hashops
...
Reduce hashops verbiage in `OptMergePass`
2025-09-30 19:34:44 +02:00
Emil J
60c551f961
Merge pull request #5400 from YosysHQ/emil/github-contribution-template-update
...
Update contribution templates
2025-09-30 11:03:49 +02:00
Emil J. Tywoniak
dc7764e247
.github: typos
2025-09-30 11:03:19 +02:00
Miodrag Milanović
330a5fc101
Merge pull request #5402 from YosysHQ/micko/extensions
...
Force linking log_compat when extensions are linked
2025-09-30 09:10:04 +02:00
Miodrag Milanovic
e6fa0223c8
Force linking log_compat when extensions are linked
2025-09-30 08:44:31 +02:00
Akash Levy
16215b8786
Merge upstream
2025-09-29 20:58:56 -07:00
Akash Levy
93a24fe275
Put back is_mostly_const
2025-09-29 20:56:58 -07:00
Akash Levy
313c7e4b95
Fix wreduce using queueing algorithm
2025-09-29 20:28:55 -07:00
github-actions[bot]
5fd2aecd90
Bump version
2025-09-30 00:23:05 +00:00
Emil J. Tywoniak
b86cc0d9b3
docs: replace Slack with Discourse in extensions writing guide
2025-09-29 23:20:06 +02:00
Emil J. Tywoniak
b2adaeec69
.github: replace Slack and GitHub Discussions with Discourse in issue templates
2025-09-29 23:03:54 +02:00
Emil J. Tywoniak
4c17ac5ac2
.github: suggest Discourse in PR template
2025-09-29 23:03:29 +02:00
Akash Levy
d36bc8231f
Revert wreduce to initial state
2025-09-29 12:44:30 -07:00