• Stars
    star
    130
  • Rank 275,932 (Top 6 %)
  • Language
    Haskell
  • License
    Other
  • Created about 9 years ago
  • Updated almost 6 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A Common Intermediate Language backend for Idris 1

idris-cil Build Status

A Common Intermediate Language backend for Idris.

Why

Because programmers targeting the CLR deserve a modern pure functional language with dependent types.

Usage

Given a Main.idr file:

module Main

main : IO ()
main = putStrLn "Hello, Idris!"

Compile it to cil and execute it with .NET Core:

idris --codegen cil Main.idr -o HelloWorld.exe \
  && dotnet HelloWorld.exe

The resulting assemblies can also be used with Mono or Unity.

Installing

It's important that the version of the Idris executable matches the version used to build idris-cil:

git clone [email protected]:bamboo/idris-cil
cd idris-cil
stack install idris
stack install

Contributing

Issue reports and PRs are welcome.

Brought to you by @bamboo, @sangamon and contributors.

License

BSD3

Requirements

.NET Core 1.1 with ilasm

Install ilasm using nuget:

dotnet new console -o ilasm-setup
cd ilasm-setup
dotnet add package runtime.osx.10.10-x64.Microsoft.NETCore.ILAsm
cd .. && rm -fr ilasm-setup

Replace the runtime.osx.10.10-x64 prefix above with the right value for your system, for instance, ubuntu.14.04-x64.

Add ilasm to your PATH with something like:

export PATH=$(find $HOME/.nuget/packages -name ilasm | xargs dirname):$PATH

If you get an error from ilasm saying it cannot load libcoreclr.dylib, add the dotnet/shared dir to DYLD_LIBRARY_PATH:

export DYLD_LIBRARY_PATH=/usr/local/share/dotnet/shared/Microsoft.NETCore.App/1.1.2:$DYLD_LIBRARY_PATH

More Repositories

1

unityscript

A JavaScript implementation based on the Boo programming language.
Boo
69
star
2

IdrisUnityPlayground

Experiments in Idris / Unity integration.
Idris
49
star
3

idris2dart

The Dart backend for Idris 2.
Idris
47
star
4

idris2-lsp-vscode

Visual Studio Code integration for the Idris 2 language server
TypeScript
26
star
5

purescript-electron

PureScript FFI bindings for the Electron API (This repository is no longer maintained)
PureScript
25
star
6

boojay

java backend for the boo programming language
Boo
20
star
7

Bamboo.Prevalence

Prevalence engine for .net.
C#
18
star
8

kotlinconf2019

Complete source code for the demos of my KotlinConf 2019 presentation - Implementing the Gradle Kotlin DSL
Kotlin
14
star
9

purescript-electron-quickstart

Quick start for a purely PureScript based Electron project
PureScript
9
star
10

monolipse

Mono Development Tools for Eclipse including code highlighting and incremental compilation for boo, boojay and c#.
Java
9
star
11

idris-hamt

Idris Hash Array Mapped Trie
Idris
6
star
12

livity4unity

Livity Public Repository
JavaScript
5
star
13

idris-codegen-sexp

Idris Simplified Expressions backend
Haskell
4
star
14

classloader-vis

The Gradle ClassLoader hierarchy visualization tool
Clojure
3
star
15

idris2-dash-docset

Dash docset for Idris 2 libraries
Makefile
2
star
16

purescript-playground

Playful PureScript Projects
PureScript
2
star
17

idris-game-of-life

An implementation of Conway's Game Of Life in Idris
Idris
2
star
18

masakari

Metascript macro library for functional programming with mori
JavaScript
2
star
19

clojure-retrofit-spike

A simple example on how to play with retrofit in a clojure project.
Clojure
2
star
20

aws-docker-gocd

An experiment in using gocd for continuous delivery of a node app to aws using docker containers
Shell
1
star
21

Boo.Ide

IDE support for boo based languages (including unityscript).
1
star
22

boo-pack

Emacs boo language mode packaged for emacs-live.
Emacs Lisp
1
star
23

yanc

Yet another node clojurescript experiment
Clojure
1
star
24

gradle-stable-build-services

Gradle Stable Build Services example
Kotlin
1
star
25

mjsish

Metascript interactive shell and IDE supporting tools
JavaScript
1
star
26

system-composition

Functional system composition
JavaScript
1
star
27

kotlin-sam-with-receiver-repro

Kotlin
1
star
28

minimal-sam-with-receiver-repro

A minimal Gradle Kotlin DSL project using the sam-with-receiver plugin.
Kotlin
1
star
29

krust-template

Kotlin on the outside, Rust on the inside, exchanging messages asynchronously.
Kotlin
1
star
30

sneerkell

The Sneer in Haskell Experiment
Haskell
1
star
31

artifacts

Personal Ivy artifact repository
Groovy
1
star
32

livity-frameworks

Open source Livity components
C#
1
star
33

gulp-mjs

A gulp plugin to compile metascript files.
JavaScript
1
star
34

wm2020-hackathon-idris-click

A metronome app written in Idris 2
JavaScript
1
star