packages feed

kempe-0.1.1.2: README.md

# Kempe

Kempe is a stack-based language and toy compiler for x86_64. It requires the
[nasm](https://nasm.us/) assembler.

Inspiration is primarily from [Mirth](https://github.com/mirth-lang/mirth).

See manual
[here](http://hackage.haskell.org/package/kempe/src/docs/manual.pdf).

## Installation

Installation is via [cabal-install](https://www.haskell.org/cabal/):

```
cabal install kempe --constraint='kempe -no-par'
```

For shell completions put the following in your `~/.bashrc` or
`~/.bash_profile`:

```
eval "$(kc --bash-completion-script kc)"
```

## Defects

  * Errors don't have position information
  * Monomorphization fails on recursive polymorphic functions

    Hopefully this isn't too sinful; I can't think of any examples of recursive
    polymorphic functions
  * Can't export or call C functions with more than 6 arguments; can't call or
    export large arguments (i.e. structs) passed by value.

    This is less of an impediment than it sounds like.
  * Cyclic module imports are not detected
  * Modules (imports) are kind of defective

### Comparison

You may wish to use [Mirth](https://github.com/mirth-lang/mirth/) or
[Factor](https://factorcode.org/) instead. Mirth is statically typed (similar to
Kempe) but less mature.