feat(third_party/bazel): Check in rules_haskell from Tweag
This commit is contained in:
parent
2eb1dc26e4
commit
f723b8b878
479 changed files with 51484 additions and 0 deletions
29
third_party/bazel/rules_haskell/examples/rts/BUILD.bazel
vendored
Normal file
29
third_party/bazel/rules_haskell/examples/rts/BUILD.bazel
vendored
Normal 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"],
|
||||
)
|
6
third_party/bazel/rules_haskell/examples/rts/One.hs
vendored
Normal file
6
third_party/bazel/rules_haskell/examples/rts/One.hs
vendored
Normal 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
|
11
third_party/bazel/rules_haskell/examples/rts/main.c
vendored
Normal file
11
third_party/bazel/rules_haskell/examples/rts/main.c
vendored
Normal 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;
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue