From: Michael D. Lowis Date: Tue, 22 Aug 2017 16:59:28 +0000 (-0400) Subject: broke up env prims to separate objects for linker optimization X-Git-Url: https://git.mdlowis.com/?a=commitdiff_plain;h=94b9213a5dbbcfa6a78d8c992b95998e4caee88b;p=archive%2Ftide-ocaml.git broke up env prims to separate objects for linker optimization --- 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 ()