Skip to main content

The Kirin Toolchain for building compilers and interpreters.

Project description

KIRIN

CI codecov Supported Python versions

Kernel Intermediate Representation INfrastructure

[!IMPORTANT]

This project is in the early stage of development. API and features are subject to change. If you are concerned about the stability of the APIs, consider pinning the version of Kirin in your project.

Installation

Install via uv (Recommended)

uv add kirin-toolchain

Install via pip

pip install kirin-toolchain

Documentation

The documentation is available at https://queracomputing.github.io/kirin/latest/. We are at an early stage of completing the documentation with more details and examples, so comments and contributions are most welcome!

Community

  • Slack: join our Slack.
  • GitHub Discussions: discussion board for questions, feature requests, and more. GitHub Discussions.

Projects using Kirin

Quantum Computing

We are actively using Kirin at QuEra Computing. Here are some open-source eDSLs for quantum computing that we have developed using Kirin:

  • bloqade.qasm2: This is an eDSL for quantum computing that uses Kirin to define an eDSL for the Quantum Assembly Language (QASM) 2.0. It demonstrates how to create multiple dialects using Kirin, run custom analysis and rewrites, and generate code from the dialects (back to QASM 2.0 in this case).
  • bloqade.stim: This is an eDSL for quantum computing that uses Kirin to define an eDSL for the STIM language. It demonstrates how to create multiple dialects using Kirin, run custom analysis and rewrites, and generate code from the dialects (back to Stim in this case).
  • bloqade.qBraid: This example demonstrates how to lower from an existing representation into the Kirin IR by using the visitor pattern.

Roadmap

We use github issues to track the roadmap. There are more feature requests and proposals in the issues. Here are some of the most wanted features we wish to implement before a beta release:

  • Initial version of the IR
  • Interpretation framework
  • Basic analysis and transformations (e.g. constant folding, type inference, etc.)
  • Documentation
  • proper stack trace for errors (#13)
  • text format (#199)
  • Integration with LLVM (#294)
  • Integration with MLIR (IRDL) (#293)
  • IR serialization + deserialization (#291)

Proposal for the roadmap and feature requests are welcome!

License

Apache License 2.0 with LLVM Exceptions

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

kirin_toolchain-0.17.20.tar.gz (1.2 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

kirin_toolchain-0.17.20-py3-none-any.whl (228.0 kB view details)

Uploaded Python 3

File details

Details for the file kirin_toolchain-0.17.20.tar.gz.

File metadata

  • Download URL: kirin_toolchain-0.17.20.tar.gz
  • Upload date:
  • Size: 1.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for kirin_toolchain-0.17.20.tar.gz
Algorithm Hash digest
SHA256 77acb67126e4e2722182e4519f5f9a59de4bc2e3f578a465439be108f3dcc4ed
MD5 a6b907f25c0dfa40a4555b18d4938411
BLAKE2b-256 81fc75a5a63f9adcced0c5e8da766d7aef134e906527a4826e328b774192e9c9

See more details on using hashes here.

Provenance

The following attestation bundles were made for kirin_toolchain-0.17.20.tar.gz:

Publisher: release.yml on QuEraComputing/kirin

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kirin_toolchain-0.17.20-py3-none-any.whl.

File metadata

File hashes

Hashes for kirin_toolchain-0.17.20-py3-none-any.whl
Algorithm Hash digest
SHA256 65c066c623c45cefd33e2aaaf2e459c98ec8e7dd510e8037845776a0213f5d37
MD5 f9d0c03d883b45d18588a5a555882ebe
BLAKE2b-256 0e78eb5b2c0ff9ec691c634fa041564e1afe08ca30873d413dc003e6a2afc4ed

See more details on using hashes here.

Provenance

The following attestation bundles were made for kirin_toolchain-0.17.20-py3-none-any.whl:

Publisher: release.yml on QuEraComputing/kirin

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page