]> git.mdlowis.com Git - archive/tide-ocaml.git/commitdiff
broke up env prims to separate objects for linker optimization
authorMichael D. Lowis <mike.lowis@gentex.com>
Tue, 22 Aug 2017 16:59:28 +0000 (12:59 -0400)
committerMichael D. Lowis <mike.lowis@gentex.com>
Tue, 22 Aug 2017 16:59:28 +0000 (12:59 -0400)
.gitignore [new file with mode: 0644]
Makefile
env_get.c [new file with mode: 0644]
env_set.c [moved from envprims.c with 54% similarity]
env_unset.c [new file with mode: 0644]
tide.ml

diff --git a/.gitignore b/.gitignore
new file mode 100644 (file)
index 0000000..4bc34cf
--- /dev/null
@@ -0,0 +1,6 @@
+*.o
+*.cmo
+*.cmx
+*.cma
+*.cmxa
+*.cmi
index 5d3082a8a99b7f96a54db71fbac9cee90e79de58..553d4836797c0db00988bc642b4db9c2e99bd2d0 100644 (file)
--- 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 (file)
index 0000000..2f6f427
--- /dev/null
+++ b/env_get.c
@@ -0,0 +1,12 @@
+#include <curses.h>
+#include <caml/mlvalues.h>
+#include <caml/memory.h>
+#include <caml/alloc.h>
+#include <caml/custom.h>
+#include <stdlib.h>
+
+CAMLprim value env_get(value var) {
+    CAMLparam1(var);
+    puts("bar");
+    CAMLreturn(caml_copy_string(""));
+}
similarity index 54%
rename from envprims.c
rename to env_set.c
index f37e47b941920b256ddee5ce8c0fc476c6947720..5c0a9d59d39146701dbbdad4b59273e265f3afa7 100644 (file)
+++ 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 (file)
index 0000000..88646ef
--- /dev/null
@@ -0,0 +1,12 @@
+#include <curses.h>
+#include <caml/mlvalues.h>
+#include <caml/memory.h>
+#include <caml/alloc.h>
+#include <caml/custom.h>
+#include <stdlib.h>
+
+CAMLprim value env_unset(value var) {
+    CAMLparam1(var);
+    puts("baz");
+    CAMLreturn(Val_int(0));
+}
diff --git a/tide.ml b/tide.ml
index e6b98c478634b4e859ae8d13c4c7b3b0eba14672..72b725790ce85cc96fb8fa697eb3dbeb46cd32d9 100644 (file)
--- 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
   ()