Kratos

Latest version: v0.1.3

Safety actively analyzes 693883 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 7 of 11

0.0.22

Added
- Add ability to keep track of which definition has been generated from Python side

Changed
- Use up to 50% of CPU when compiling Python binding
- Improve parameter list and DPI code gen (removing unnecessary spaces)
- Expose context binding to Python

0.0.21

Added
- SystemVerilog interface support (123)
- Better integration ability to other Python-based generators
- Allow `enum` on port (public enum definition); 122
- Add context variables to `If` statement

Changed
- Pause on clock not enabled by default
- Reduce verbosity in enum creation; sort enum by values, not by name
- Automatically detect `<filesystem>` availability
- Merge static elaboration passes with `for` and `if`.

Fixed
- Numerous simulator issue fixes
- Fixed a known problem with astor-based code gen where long statement causes error (125)

0.0.20

Added
- Add past transform to change exception into assertion (116)
- Add a pass to fix the design hierarchy if Kratos is only used partially
- Add instance_id to breakpoint/assertin to support concurrency
- Add support for ndarray in kratos
- Add an event-driven IR-level simulator (120)

Changed
- Disable context variable if a particular fn_ln is given
- Gnerator ids are re-used acorss multile runs on dumped debug database
- Remove stmt after port decoupling

Fixed
- Fix a bug where adding a child to an IR node may affect its visit order

0.0.19

Added
- Add old verilog style module definition code gen (also stub)
- Add comment node
- Add pass to move top level assignemtn to always_comb
- Add check for mixing packed/unpacked array
- Add helper function in port bundle for creating clock and reset (110)
- Allow variable to be passed in always function
- Allow users realize fsm during design and expose state and enum variable
- Add a pass to find out signal drivers
- Add support not in pyast
- Add proper extension using SV syntax
- Add detection for duplicated enum names (114)
- Add Python3.8 support
- Add a pass to merge if statement

Changed
- Change the how comment works in top level blocks
- Change how packed variable works internally
- `get_local()` is now implement in C++
- Rename var/port packed with packed struct
- Generator names are now checked for keywords
- if to case/switch only happens if it's fully specified or has trailing else (115)

Fixed
- Fix bug in port decoupling algorithm where variable meta doesn't get carried over
- Fix linked variable move (105)
- Fix a bug where if predicate may not return a node in pyast

0.0.18.5

Added
- Add a pass to produce a verilog stub that can be fed into ancient systems
- Add automatic long assignment wrapping
- Add comment statement, which can be used in always block from Python

Changed
- Syntax for python wrapper for comment has changed to avoid naming conflict

0.0.18.4

Added
- Add assertion for port/var accessing

Changed
- remove os restriction on exception print ast_node;
- add check for stmt block add_stmt is null
- Put () around ternary

Fixed
- Fix wire merge stmt removal and assignment type
- Fix globals (with a hack on locals)
- Fix ne python binding

Page 7 of 11

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.