wal-lang


Namewal-lang JSON
Version 0.8.0 PyPI version JSON
download
home_pagehttps://wal-lang.org
SummaryWal - Wavefile Analysis Language
upload_time2024-01-29 17:06:21
maintainer
docs_urlNone
authorLucas Klemmer
requires_python>=3.9, <4
license
keywords verilog vhdl vcd fst development hardware rtl simulation verification fpga
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # WAL the Waveform Analysis Language
[![Test and Build](https://github.com/ics-jku/wal/actions/workflows/python-app.yml/badge.svg)](https://github.com/ics-jku/wal/actions/workflows/python-app.yml)

<p align="center">
  <img src="https://wal-lang.org/static/logo.svg?" alt="The Waveform Analysis language logo" width="200"/>
</p>

Welcome to the Waveform Analysis Language (WAL) repository. This domain-specific language aims at enabling automated and sophisticated analysis of hardware waveforms. In WAL, hardware-specific things such as signals and simulation time are treated as first-class citizens of the language.

## Installation from PyPi
WAL is available from [PyPi](https://pypi.org/project/wal-lang/)!
> pip install wal-lang --user

On some systems, pip does not add WALs installation path to the PATH variable. If the "wal" command is not available after installation please add the installation path, e.g. ~/.local/bin on Ubuntu, to your PATH variable.

To get the latest development version of WAL you can clone this repository.
After that, follow the instructions for your OS below inside the cloned directory.

## Installation from Source
For Ubuntu (22.04 LTS):
```
sudo apt install git cmake python3-cffi python3.10-venv python3-pip build-essential -y
git clone https://github.com/ics-jku/wal.git
cd wal
PYTHON=python3 make install
echo "export PATH=\$PATH:$HOME/.local/bin" >> ~/.bashrc
```

For Fedora (36):
```
sudo dnf install git cmake g++ zlib-devel python3-devel -y
git clone https://github.com/ics-jku/wal.git
cd wal
make install
```

For OpenSuse Tumbleweed:
```
sudo zypper install git cmake gcc-c++ zlib-devel python3-devel
git clone https://github.com/ics-jku/wal.git
cd wal
make install
```

### Support for fst waveforms
To add support for the fst filetype to WAL, install the `pylibfst` package.
```
pip install --user pylibfst
```

### PyPy and Pyston Support
WAL also supports the alternative Python implementations PyPy and Pyston.
Both alternative implementations can lead to substantial speedups in a lot of scenarios.
To install WAL with an alternative implementation change the *PYTHON* variable in the Makefile or install with `PYTHON=pypy3 make install`.

If you are using PyPy you must also have the python-dev package installed for PyPy3.
On Ubuntu this package can be installed with 'sudo apt install pypy3-dev'.

## Documentation
The WAL Programmer Manual is available on [wal-lang.org](https://wal-lang.org/documentation/core).

## Examples
To get an impression of WAL you can check out [basic examples](https://github.com/ics-jku/wal/tree/main/examples/basics).
Also, this ASCII cast [ASCII Cast](https://asciinema.org/a/I8fQknySyaZqNjXAA8Ej7wOoq), shows how the WAL REPL is used to compare two RISCV cores.

### WAWK
[WAWK](https://github.com/ics-jku/wal/tree/main/wawk) is a project building on top of the WAL language. It combines the waveform analysis of WAL with the programming Style of AWK.
Internally, WAWK is transpiled to WAL expressions, showcasing how new languages can be build on top of WAL.

## Publications
The initial paper on WAL was presented at ASPDAC'22 and can be downloaded here: https://www.ics.jku.at/files/2022ASPDAC_WAL.pdf.
The examples from the paper can be found in the *examples* folder.

If you like WAL or found it useful, you can cite our paper as follows:

```
@InProceedings{KG:2022,
  author        = {Lucas Klemmer and Daniel Gro{\ss}e},
  title         = {{WAL:} A Novel Waveform Analysis Language for Advanced Design Understanding and Debugging},
  booktitle     = {ASP Design Automation Conf.},
  year          = 2022
}

```

WAL was also used in other publications for [processor analysis](https://doi.org/10.1145/3489517.3530623), [Spade HDL integration](https://doi.org/10.1109/FDL59689.2023.10272204), [pipeline visualization](https://ics.jku.at/files/2023RISCVSummit_DSLforVisualizingPipelines.pdf), and for a novel [debug methodology](https://ics.jku.at/files/2024ASPDAC_WAL-VirtualSignals.pdf).

## Emacs Mode
A basic major mode for Emacs is available [here](https://github.com/LucasKl/wal-major-mode).

            

Raw data

            {
    "_id": null,
    "home_page": "https://wal-lang.org",
    "name": "wal-lang",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.9, <4",
    "maintainer_email": "",
    "keywords": "verilog,VHDL,vcd,fst,development,hardware,rtl,simulation,verification,FPGA",
    "author": "Lucas Klemmer",
    "author_email": "support@wal-lang.org",
    "download_url": "https://files.pythonhosted.org/packages/95/e4/d6413e5c97c81e56a8b1a9e29ed4978919dd3a4e8e01899358a0a52bf444/wal-lang-0.8.0.tar.gz",
    "platform": null,
    "description": "# WAL the Waveform Analysis Language\n[![Test and Build](https://github.com/ics-jku/wal/actions/workflows/python-app.yml/badge.svg)](https://github.com/ics-jku/wal/actions/workflows/python-app.yml)\n\n<p align=\"center\">\n  <img src=\"https://wal-lang.org/static/logo.svg?\" alt=\"The Waveform Analysis language logo\" width=\"200\"/>\n</p>\n\nWelcome to the Waveform Analysis Language (WAL) repository. This domain-specific language aims at enabling automated and sophisticated analysis of hardware waveforms. In WAL, hardware-specific things such as signals and simulation time are treated as first-class citizens of the language.\n\n## Installation from PyPi\nWAL is available from [PyPi](https://pypi.org/project/wal-lang/)!\n> pip install wal-lang --user\n\nOn some systems, pip does not add WALs installation path to the PATH variable. If the \"wal\" command is not available after installation please add the installation path, e.g. ~/.local/bin on Ubuntu, to your PATH variable.\n\nTo get the latest development version of WAL you can clone this repository.\nAfter that, follow the instructions for your OS below inside the cloned directory.\n\n## Installation from Source\nFor Ubuntu (22.04 LTS):\n```\nsudo apt install git cmake python3-cffi python3.10-venv python3-pip build-essential -y\ngit clone https://github.com/ics-jku/wal.git\ncd wal\nPYTHON=python3 make install\necho \"export PATH=\\$PATH:$HOME/.local/bin\" >> ~/.bashrc\n```\n\nFor Fedora (36):\n```\nsudo dnf install git cmake g++ zlib-devel python3-devel -y\ngit clone https://github.com/ics-jku/wal.git\ncd wal\nmake install\n```\n\nFor OpenSuse Tumbleweed:\n```\nsudo zypper install git cmake gcc-c++ zlib-devel python3-devel\ngit clone https://github.com/ics-jku/wal.git\ncd wal\nmake install\n```\n\n### Support for fst waveforms\nTo add support for the fst filetype to WAL, install the `pylibfst` package.\n```\npip install --user pylibfst\n```\n\n### PyPy and Pyston Support\nWAL also supports the alternative Python implementations PyPy and Pyston.\nBoth alternative implementations can lead to substantial speedups in a lot of scenarios.\nTo install WAL with an alternative implementation change the *PYTHON* variable in the Makefile or install with `PYTHON=pypy3 make install`.\n\nIf you are using PyPy you must also have the python-dev package installed for PyPy3.\nOn Ubuntu this package can be installed with 'sudo apt install pypy3-dev'.\n\n## Documentation\nThe WAL Programmer Manual is available on [wal-lang.org](https://wal-lang.org/documentation/core).\n\n## Examples\nTo get an impression of WAL you can check out [basic examples](https://github.com/ics-jku/wal/tree/main/examples/basics).\nAlso, this ASCII cast [ASCII Cast](https://asciinema.org/a/I8fQknySyaZqNjXAA8Ej7wOoq), shows how the WAL REPL is used to compare two RISCV cores.\n\n### WAWK\n[WAWK](https://github.com/ics-jku/wal/tree/main/wawk) is a project building on top of the WAL language. It combines the waveform analysis of WAL with the programming Style of AWK.\nInternally, WAWK is transpiled to WAL expressions, showcasing how new languages can be build on top of WAL.\n\n## Publications\nThe initial paper on WAL was presented at ASPDAC'22 and can be downloaded here: https://www.ics.jku.at/files/2022ASPDAC_WAL.pdf.\nThe examples from the paper can be found in the *examples* folder.\n\nIf you like WAL or found it useful, you can cite our paper as follows:\n\n```\n@InProceedings{KG:2022,\n  author        = {Lucas Klemmer and Daniel Gro{\\ss}e},\n  title         = {{WAL:} A Novel Waveform Analysis Language for Advanced Design Understanding and Debugging},\n  booktitle     = {ASP Design Automation Conf.},\n  year          = 2022\n}\n\n```\n\nWAL was also used in other publications for [processor analysis](https://doi.org/10.1145/3489517.3530623), [Spade HDL integration](https://doi.org/10.1109/FDL59689.2023.10272204), [pipeline visualization](https://ics.jku.at/files/2023RISCVSummit_DSLforVisualizingPipelines.pdf), and for a novel [debug methodology](https://ics.jku.at/files/2024ASPDAC_WAL-VirtualSignals.pdf).\n\n## Emacs Mode\nA basic major mode for Emacs is available [here](https://github.com/LucasKl/wal-major-mode).\n",
    "bugtrack_url": null,
    "license": "",
    "summary": "Wal - Wavefile Analysis Language",
    "version": "0.8.0",
    "project_urls": {
        "Homepage": "https://wal-lang.org"
    },
    "split_keywords": [
        "verilog",
        "vhdl",
        "vcd",
        "fst",
        "development",
        "hardware",
        "rtl",
        "simulation",
        "verification",
        "fpga"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "343c1de30e9c8071054469147a9b9fa6ac281b860dc499f13834b6a7670d81de",
                "md5": "76a841804b59365d0afdc5d8d3c5ae60",
                "sha256": "1a8d6fddddedb51f270e5041dca148e89fa27b25cdb9bf5ab6b0ec1adf1c8278"
            },
            "downloads": -1,
            "filename": "wal_lang-0.8.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "76a841804b59365d0afdc5d8d3c5ae60",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9, <4",
            "size": 64836,
            "upload_time": "2024-01-29T17:06:17",
            "upload_time_iso_8601": "2024-01-29T17:06:17.961078Z",
            "url": "https://files.pythonhosted.org/packages/34/3c/1de30e9c8071054469147a9b9fa6ac281b860dc499f13834b6a7670d81de/wal_lang-0.8.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "95e4d6413e5c97c81e56a8b1a9e29ed4978919dd3a4e8e01899358a0a52bf444",
                "md5": "f883ef7ef45056526bd4595487ea3127",
                "sha256": "8f4030489d8c57d12bf165bbf2dbbcfb759f3b550cb017f11619d32faa934785"
            },
            "downloads": -1,
            "filename": "wal-lang-0.8.0.tar.gz",
            "has_sig": false,
            "md5_digest": "f883ef7ef45056526bd4595487ea3127",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9, <4",
            "size": 54686,
            "upload_time": "2024-01-29T17:06:21",
            "upload_time_iso_8601": "2024-01-29T17:06:21.166678Z",
            "url": "https://files.pythonhosted.org/packages/95/e4/d6413e5c97c81e56a8b1a9e29ed4978919dd3a4e8e01899358a0a52bf444/wal-lang-0.8.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-01-29 17:06:21",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "wal-lang"
}
        
Elapsed time: 0.16885s