From 94b9213a5dbbcfa6a78d8c992b95998e4caee88b Mon Sep 17 00:00:00 2001 From: "Michael D. Lowis" Date: Tue, 22 Aug 2017 12:59:28 -0400 Subject: [PATCH] broke up env prims to separate objects for linker optimization --- .gitignore | 6 ++++++ Makefile | 3 ++- env_get.c | 12 ++++++++++++ envprims.c => env_set.c | 12 ------------ env_unset.c | 12 ++++++++++++ tide.ml | 2 -- 6 files changed, 32 insertions(+), 15 deletions(-) create mode 100644 .gitignore create mode 100644 env_get.c rename envprims.c => env_set.c (54%) create mode 100644 env_unset.c diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4bc34cf --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ +*.o +*.cmo +*.cmx +*.cma +*.cmxa +*.cmi diff --git a/Makefile b/Makefile index 5d3082a..553d483 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,6 @@ # Toolchain Configuration #------------------------------------------------------------------------------- +# -nostdlib - Reimplement the Pervasives module to not suck. ifeq ($(NATIVE), 1) OC = ocamlopt OCFLAGS = @@ -25,7 +26,7 @@ all: tide clean: $(RM) tide *.cm* *.o *.a -env.$(LIBEXT): env.$(OBJEXT) envprims.o +env.$(LIBEXT): env.$(OBJEXT) env_set.o env_get.o env_unset.o tide: env.$(LIBEXT) tide.$(OBJEXT) # Implicit Rule Definitions diff --git a/env_get.c b/env_get.c new file mode 100644 index 0000000..2f6f427 --- /dev/null +++ b/env_get.c @@ -0,0 +1,12 @@ +#include +#include +#include +#include +#include +#include + +CAMLprim value env_get(value var) { + CAMLparam1(var); + puts("bar"); + CAMLreturn(caml_copy_string("")); +} diff --git a/envprims.c b/env_set.c similarity index 54% rename from envprims.c rename to env_set.c index f37e47b..5c0a9d5 100644 --- a/envprims.c +++ b/env_set.c @@ -10,15 +10,3 @@ CAMLprim value env_set(value var, value val) { puts("foo"); CAMLreturn(Val_int(0)); } - -CAMLprim value env_get(value var) { - CAMLparam1(var); - puts("bar"); - CAMLreturn(caml_copy_string("")); -} - -CAMLprim value env_unset(value var) { - CAMLparam1(var); - puts("baz"); - CAMLreturn(Val_int(0)); -} diff --git a/env_unset.c b/env_unset.c new file mode 100644 index 0000000..88646ef --- /dev/null +++ b/env_unset.c @@ -0,0 +1,12 @@ +#include +#include +#include +#include +#include +#include + +CAMLprim value env_unset(value var) { + CAMLparam1(var); + puts("baz"); + CAMLreturn(Val_int(0)); +} diff --git a/tide.ml b/tide.ml index e6b98c4..72b7257 100644 --- a/tide.ml +++ b/tide.ml @@ -1,8 +1,6 @@ open Env -open Printf let () = let foo = Env.set "foo" "bar" in let bar = Env.get "foo" in - let baz = Env.unset "foo" in () -- 2.52.0