About

Metadata

  • Last updated , by vmchale
  • License BSD-3-Clause
  • Maintained by: vamchale@gmail.com

  • Lottery factor: 1

Links

Installation

Package Flags

Use the -f option with cabal commands to enable flags

    cross (off by default)

    Enable to ease cross-compiling

Readme

Kempe

Kempe is a stack-based language and toy compiler for x86_64 and aarch64. It requires the nasm assembler when targeting x86_64.

Inspiration is primarily from Mirth.

See manual here. There is also a tour of the compiler available here.

Installation

Installation is via cabal-install:

cabal install kempe

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 imports are not detected

  • Imports are kind of defective

Comparison

You may wish to use Mirth or Factor instead. Mirth is statically typed (similar to Kempe) but less mature.