All Projects → vmchale → kempe

vmchale / kempe

Licence: BSD-3-Clause license
Kempe is a compiled stack-based language

Programming Languages

haskell
3896 projects
c
50402 projects - #5 most used programming language
Vim Script
2826 projects
Makefile
30231 projects
shell
77523 projects
TeX
3793 projects
rust
11053 projects

Projects that are alternatives of or similar to kempe

Docker Homebridge
Homebridge Docker. HomeKit support for the impatient using Docker on x86_64, Raspberry Pi (armhf) and ARM64. Includes ffmpeg + libfdk-aac.
Stars: ✭ 1,847 (+3320.37%)
Mutual labels:  x86-64, aarch64
ArvernOS
💾 A minimal, experimental and "toy" monolithic kernel to learn about OS development // Work In Progress
Stars: ✭ 313 (+479.63%)
Mutual labels:  x86-64, aarch64
Rcore
Rust version of THU uCore OS. Linux compatible.
Stars: ✭ 2,175 (+3927.78%)
Mutual labels:  x86-64, aarch64
docker-dns-ad-blocker
A lightweight dnsmasq DNS server to block traffic to known ad servers with optional DNSCrypt support. Supports x86_64 and Raspberry Pi (armhf).
Stars: ✭ 78 (+44.44%)
Mutual labels:  x86-64, aarch64
lsp-dsp-lib
DSP library for signal processing
Stars: ✭ 37 (-31.48%)
Mutual labels:  x86-64, aarch64
Unisimd Assembler
SIMD macro assembler unified for ARM, MIPS, PPC and x86
Stars: ✭ 63 (+16.67%)
Mutual labels:  x86-64, aarch64
Mandibule
linux elf injector for x86 x86_64 arm arm64
Stars: ✭ 171 (+216.67%)
Mutual labels:  x86-64, aarch64
Cemu
Cheap EMUlator: lightweight multi-architecture assembly playground
Stars: ✭ 666 (+1133.33%)
Mutual labels:  x86-64, aarch64
Asmjit
Machine code generation for C++
Stars: ✭ 2,874 (+5222.22%)
Mutual labels:  x86-64, aarch64
Onednn
oneAPI Deep Neural Network Library (oneDNN)
Stars: ✭ 2,600 (+4714.81%)
Mutual labels:  x86-64, aarch64
Mir
A light-weight JIT compiler based on MIR (Medium Internal Representation)
Stars: ✭ 1,075 (+1890.74%)
Mutual labels:  x86-64, aarch64
profiler-api
The portable version of JetBrains profiler API for .NET Framework / .NET Core / .NET / .NET Standard / Mono
Stars: ✭ 21 (-61.11%)
Mutual labels:  x86-64, aarch64
Reko
Reko is a binary decompiler.
Stars: ✭ 942 (+1644.44%)
Mutual labels:  x86-64, aarch64
Chrysalisp
Parallel OS, with GUI, Terminal, OO Assembler, Class libraries, C-Script compiler, Lisp interpreter and more...
Stars: ✭ 1,205 (+2131.48%)
Mutual labels:  x86-64, aarch64
Rappel
A linux-based assembly REPL for x86, amd64, armv7, and armv8
Stars: ✭ 818 (+1414.81%)
Mutual labels:  x86-64, aarch64
Mcsema
Framework for lifting x86, amd64, aarch64, sparc32, and sparc64 program binaries to LLVM bitcode
Stars: ✭ 2,198 (+3970.37%)
Mutual labels:  x86-64, aarch64
Docker Cloudflare Ddns
A small amd64/ARM/ARM64 Docker image that allows you to use CloudFlare as a DDNS / DynDNS Provider.
Stars: ✭ 467 (+764.81%)
Mutual labels:  x86-64, aarch64
Remill
Library for lifting of x86, amd64, and aarch64 machine code to LLVM bitcode
Stars: ✭ 633 (+1072.22%)
Mutual labels:  x86-64, aarch64
Wag
WebAssembly compiler implemented in Go
Stars: ✭ 177 (+227.78%)
Mutual labels:  x86-64, aarch64
libcluon
libcluon is a small and efficient, single-file and header-only library written in modern C++ to power microservices.
Stars: ✭ 81 (+50%)
Mutual labels:  x86-64, aarch64

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].