Skip to main content

A compiler for a simple language that compiles to Human Resource Machine assembly-like language

Project description

HRM Compiler
============

Work-in-progress compiler to have an high-level tool
to reason about problems in Human Resources Machines.

I hate pseudo-assembly, and I want to write a compiler.

## Install

```
virtualenv .hrm
source .hrm/bin/activate

pip install -e .
```

## Usage

`hrmc <script>`

## Examples

There is no formal doc about the accepted grammar (check _parser.py_),
but you can find some examples in the `examples` folder.

## Development

### Run tests

To run the unit tests, execute `pytest`.


### Run differential testing

To check that a new optimization does not introduces bugs, it is possible to
use [hrm-interpreter](https://github.com/alfateam123/hrm-interpreter)
and a custom script to compile the examples with different flags and run the different
builds.

To be able to perform this kind of testing:

1. install rust and cargo via rustup
2. clone and build `hrm-interpreter` in the parent directory of this repository
3. run `run_all_on_interpreter.py`

If something is wrong, you should see an AssertionError.


Project details


Download files

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

Source Distribution

hrmcompiler-0.2.0.tar.gz (9.8 kB view details)

Uploaded Source

Built Distribution

hrmcompiler-0.2.0-py3-none-any.whl (10.3 kB view details)

Uploaded Python 3

File details

Details for the file hrmcompiler-0.2.0.tar.gz.

File metadata

  • Download URL: hrmcompiler-0.2.0.tar.gz
  • Upload date:
  • Size: 9.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.1 setuptools/40.2.0 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.7.0

File hashes

Hashes for hrmcompiler-0.2.0.tar.gz
Algorithm Hash digest
SHA256 aa2e5eca448380d70cc262b51cb66154b95b607379c36ac6af7014e2d83aab88
MD5 87aed4232a17f1ad2ac191179ae039d4
BLAKE2b-256 1fbe33b3c2554e0564f3a4a7b2d2ba11270a9cd4df35601f92d396e760e9014b

See more details on using hashes here.

File details

Details for the file hrmcompiler-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: hrmcompiler-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 10.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.1 setuptools/40.2.0 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.7.0

File hashes

Hashes for hrmcompiler-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1d8f7393f18a5d9ad17f95467bfded58864dbf95d5a7bda37e401a627a738c0a
MD5 bae27307472c0b3cea4cd5166aa9a40d
BLAKE2b-256 0a60911b1616c66448d8d8c09e31a4a093c4aee6eb42d4f7d577d80824f4d840

See more details on using hashes here.

Supported by

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