seal5


Nameseal5 JSON
Version 0.1.2 PyPI version JSON
download
home_pagehttps://github.com/tum-ei-eda/seal5
SummarySeal5 Project
upload_time2024-05-23 07:45:44
maintainerNone
docs_urlNone
authorTUM Department of Electrical and Computer Engineering - Chair of Electronic Design Automation
requires_python>=3.8
licenseApache License 2.0
keywords seal5
VCS
bugtrack_url
requirements gitpython pyyaml m2isar importlib_resources dacite mako
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Seal5


[![pypi package](https://badge.fury.io/py/seal5.svg)](https://pypi.org/project/seal5)
[![readthedocs](https://readthedocs.org/projects/seal5/badge/?version=latest)](https://seal5.readthedocs.io/en/latest/?version=latest)
[![GitHub license](https://img.shields.io/github/license/tum-ei-eda/seal5.svg)](https://github.com/tum-ei-eda/seal5/blob/main/LICENSE)

[![demo workflow](https://github.com/tum-ei-eda/seal5/actions/workflows/demo.yml/badge.svg)](https://github.com/tum-ei-eda/seal5/actions/workflows/demo.yml)

TODO: Summary

## Prerequisites

To be able to run the examples, make sure to clone the Seal5 repo using the `--recursive` flag. Otherwise run the following command to fetch (and update) the referenced submodules.

```sh
git submodule update --init --recursive
```

### Ubuntu Packages

First, a set of APT packages needs to be installed:

```sh
sudo apt install python3-pip python3-venv cmake make ninja-build
```

### Python Requirements

First, setup a virtual environment with Python v3.8 or newer.

Install all required python packages using the follow8n* command:

`pip install -r requirements.txt`.

For development (linting, packaging,...) there are a few more dependencies which can be installed via:

`pip install -r requirements_dev.txt`.

### Installation

**Warning:** It is highly recommended to install `seal5` into a new virtual environment. Follow these steps to initialize and enter a venv in your seal5 repo directory:

```sh
# alternative: python3 -m venv venv
virtualenv -p python3.8 venv
source venv/bin/activate
```

#### From PyPI

TODO: Publish after open-source release.

#### Local Development Version

First prepare your shell by executing `export PYTHONPATH=$(pwd):$PYTHONPATH` inside the seal5 repository. Then you should be able to use Seal5 without needing to reinstall it.

Alternatively you should be able to use `pip install -e .`.

## Usage

### Python API

The flow can be sketched as follows (see Example below for functional code!):

```python
# Create flow
seal5_flow = Seal5Flow(...)
# Initialize LLVM repo and .seal5 directories
seal5_flow.initialize(...)
# Optional: remove artifacts from previous builds
seal5_flow.reset(...)
# Install Seal5 dependencies (CDSL2LLVM/PatternGen)
seal5_flow.setup(...)
# Load CoreDSL2+CFG files (Git config, filters,...)
seal5_flow.load(...)
# Transform Seal5 model (Extract side effects, operands,...)
seal5_flow.transform(...)
# Generate patches based on Seal5 model (ISel patterns, RISC-V features,...)
seal5_flow.generate(...)
# Apply generated (and manual) patches to LLVM codebase
seal5_flow.patch(...)
# Build patches LLVM (This will take a while)
seal5_flow.build(...)
# Run LLVM+Seal5 tests to verify functionality
seal5_flow.test(...)
# Combine patches and install LLVM
seal5_flow.deploy(...)
# Archive final LLVM (optionally inclusing logs, reports,...)
seal5_flow.export(...)
# Optional: Cleanup all artifacts
seal5_flow.cleanup(...)
```

### Command-Line Interface

TODO: Not yet implemented...

## Examples

See [`examples/demo.py`](examples/demo.py) for example of end-to-end flow!

## Documentation

TODO: Sphinx Documentation / GitHub Pages

## Limitations

See [here](./LIMITATIONS.md).

## CI/CD Flow

We added a (manual) CI job to run the `examples/demo.py` script via GitHub actions.

## Contributions

Seal5 issue tracker: https://github.com/tum-ei-eda/seal5/issues

CoreDSL2LLVM/PatternGen issue tracker: https://github.com/mathis-s/CoreDSL2LLVM/issues

## References

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/tum-ei-eda/seal5",
    "name": "seal5",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "seal5",
    "author": "TUM Department of Electrical and Computer Engineering - Chair of Electronic Design Automation",
    "author_email": "philipp.van-kempen@tum.de",
    "download_url": "https://files.pythonhosted.org/packages/08/b5/9f567f298377348179dc738c13e1112ea3802fec8eee6f9340f02ab4230a/seal5-0.1.2.tar.gz",
    "platform": null,
    "description": "# Seal5\n\n\n[![pypi package](https://badge.fury.io/py/seal5.svg)](https://pypi.org/project/seal5)\n[![readthedocs](https://readthedocs.org/projects/seal5/badge/?version=latest)](https://seal5.readthedocs.io/en/latest/?version=latest)\n[![GitHub license](https://img.shields.io/github/license/tum-ei-eda/seal5.svg)](https://github.com/tum-ei-eda/seal5/blob/main/LICENSE)\n\n[![demo workflow](https://github.com/tum-ei-eda/seal5/actions/workflows/demo.yml/badge.svg)](https://github.com/tum-ei-eda/seal5/actions/workflows/demo.yml)\n\nTODO: Summary\n\n## Prerequisites\n\nTo be able to run the examples, make sure to clone the Seal5 repo using the `--recursive` flag. Otherwise run the following command to fetch (and update) the referenced submodules.\n\n```sh\ngit submodule update --init --recursive\n```\n\n### Ubuntu Packages\n\nFirst, a set of APT packages needs to be installed:\n\n```sh\nsudo apt install python3-pip python3-venv cmake make ninja-build\n```\n\n### Python Requirements\n\nFirst, setup a virtual environment with Python v3.8 or newer.\n\nInstall all required python packages using the follow8n* command:\n\n`pip install -r requirements.txt`.\n\nFor development (linting, packaging,...) there are a few more dependencies which can be installed via:\n\n`pip install -r requirements_dev.txt`.\n\n### Installation\n\n**Warning:** It is highly recommended to install `seal5` into a new virtual environment. Follow these steps to initialize and enter a venv in your seal5 repo directory:\n\n```sh\n# alternative: python3 -m venv venv\nvirtualenv -p python3.8 venv\nsource venv/bin/activate\n```\n\n#### From PyPI\n\nTODO: Publish after open-source release.\n\n#### Local Development Version\n\nFirst prepare your shell by executing `export PYTHONPATH=$(pwd):$PYTHONPATH` inside the seal5 repository. Then you should be able to use Seal5 without needing to reinstall it.\n\nAlternatively you should be able to use `pip install -e .`.\n\n## Usage\n\n### Python API\n\nThe flow can be sketched as follows (see Example below for functional code!):\n\n```python\n# Create flow\nseal5_flow = Seal5Flow(...)\n# Initialize LLVM repo and .seal5 directories\nseal5_flow.initialize(...)\n# Optional: remove artifacts from previous builds\nseal5_flow.reset(...)\n# Install Seal5 dependencies (CDSL2LLVM/PatternGen)\nseal5_flow.setup(...)\n# Load CoreDSL2+CFG files (Git config, filters,...)\nseal5_flow.load(...)\n# Transform Seal5 model (Extract side effects, operands,...)\nseal5_flow.transform(...)\n# Generate patches based on Seal5 model (ISel patterns, RISC-V features,...)\nseal5_flow.generate(...)\n# Apply generated (and manual) patches to LLVM codebase\nseal5_flow.patch(...)\n# Build patches LLVM (This will take a while)\nseal5_flow.build(...)\n# Run LLVM+Seal5 tests to verify functionality\nseal5_flow.test(...)\n# Combine patches and install LLVM\nseal5_flow.deploy(...)\n# Archive final LLVM (optionally inclusing logs, reports,...)\nseal5_flow.export(...)\n# Optional: Cleanup all artifacts\nseal5_flow.cleanup(...)\n```\n\n### Command-Line Interface\n\nTODO: Not yet implemented...\n\n## Examples\n\nSee [`examples/demo.py`](examples/demo.py) for example of end-to-end flow!\n\n## Documentation\n\nTODO: Sphinx Documentation / GitHub Pages\n\n## Limitations\n\nSee [here](./LIMITATIONS.md).\n\n## CI/CD Flow\n\nWe added a (manual) CI job to run the `examples/demo.py` script via GitHub actions.\n\n## Contributions\n\nSeal5 issue tracker: https://github.com/tum-ei-eda/seal5/issues\n\nCoreDSL2LLVM/PatternGen issue tracker: https://github.com/mathis-s/CoreDSL2LLVM/issues\n\n## References\n",
    "bugtrack_url": null,
    "license": "Apache License 2.0",
    "summary": "Seal5 Project",
    "version": "0.1.2",
    "project_urls": {
        "Homepage": "https://github.com/tum-ei-eda/seal5"
    },
    "split_keywords": [
        "seal5"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "1d63f1f1bef31ff2df37739f70696e10024e0e78522e0afd7bd2e7471e03969f",
                "md5": "563ce2d11c49684123a43ed35f297aac",
                "sha256": "36d3a2283921cebfc6334c5431ef282cab8cda88bba112cdb2750eed8a2cf86c"
            },
            "downloads": -1,
            "filename": "seal5-0.1.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "563ce2d11c49684123a43ed35f297aac",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 134391,
            "upload_time": "2024-05-23T07:45:41",
            "upload_time_iso_8601": "2024-05-23T07:45:41.997554Z",
            "url": "https://files.pythonhosted.org/packages/1d/63/f1f1bef31ff2df37739f70696e10024e0e78522e0afd7bd2e7471e03969f/seal5-0.1.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "08b59f567f298377348179dc738c13e1112ea3802fec8eee6f9340f02ab4230a",
                "md5": "f00962892f18956bd3d9be29168d0d6c",
                "sha256": "b65266073424db87c091daacc8d0b1c9f9c55f4bde9a0dfa51b1192abe4cbb09"
            },
            "downloads": -1,
            "filename": "seal5-0.1.2.tar.gz",
            "has_sig": false,
            "md5_digest": "f00962892f18956bd3d9be29168d0d6c",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 75079,
            "upload_time": "2024-05-23T07:45:44",
            "upload_time_iso_8601": "2024-05-23T07:45:44.851468Z",
            "url": "https://files.pythonhosted.org/packages/08/b5/9f567f298377348179dc738c13e1112ea3802fec8eee6f9340f02ab4230a/seal5-0.1.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-05-23 07:45:44",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "tum-ei-eda",
    "github_project": "seal5",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "gitpython",
            "specs": []
        },
        {
            "name": "pyyaml",
            "specs": []
        },
        {
            "name": "m2isar",
            "specs": []
        },
        {
            "name": "importlib_resources",
            "specs": []
        },
        {
            "name": "dacite",
            "specs": []
        },
        {
            "name": "mako",
            "specs": []
        }
    ],
    "lcname": "seal5"
}
        
Elapsed time: 0.52649s