feat(third_party/bazel): Check in rules_haskell from Tweag

This commit is contained in:
Vincent Ambo 2019-07-04 11:18:12 +01:00
parent 2eb1dc26e4
commit f723b8b878
479 changed files with 51484 additions and 0 deletions

View file

@ -0,0 +1,29 @@
load(
"@io_tweag_rules_haskell//haskell:haskell.bzl",
"cc_haskell_import",
"haskell_library",
"haskell_toolchain_library",
)
haskell_toolchain_library(name = "base")
haskell_library(
name = "add-one-hs",
srcs = ["One.hs"],
deps = [":base"],
)
cc_haskell_import(
name = "add-one-so",
dep = ":add-one-hs",
)
cc_test(
name = "add-one",
srcs = [
"main.c",
":add-one-so",
],
visibility = ["//visibility:public"],
deps = ["@ghc//:threaded-rts"],
)

View file

@ -0,0 +1,6 @@
module One () where
add_one_hs :: Int -> Int
add_one_hs x = x + 1
foreign export ccall add_one_hs :: Int -> Int

View file

@ -0,0 +1,11 @@
#include <stdio.h>
#include "HsFFI.h"
extern HsInt add_one_hs(HsInt a0);
int main(int argc, char *argv[]) {
hs_init(&argc, &argv);
printf("Adding one to 5 through Haskell is %ld\n", add_one_hs(5));
hs_exit();
return 0;
}