shithub: MicroHs

Download patch

ref: d936e4f983d54e6728d874920905da3e685b698c
parent: 6dd14a51e82d8586f9eca77443e01dc5990c0a2e
parent: f9424ba979aaabce0a328e31b3f6a6730679a5e6
author: Lennart Augustsson <lennart@augustsson.net>
date: Fri Jan 10 16:27:04 EST 2025

Merge pull request #85 from konsumlamm/primitive

Add missing primitives in `translate` & remove unused primitive

--- a/src/MicroHs/Translate.hs
+++ b/src/MicroHs/Translate.hs
@@ -110,6 +110,7 @@
   ("equal", primitive "equal"),
   ("scmp", primitive "scmp"),
   ("icmp", primitive "icmp"),
+  ("ucmp", primitive "ucmp"),
   ("rnf", primitive "rnf"),
   ("IO.>>=", primitive "IO.>>="),
   ("IO.>>", primitive "IO.>>"),
@@ -134,6 +135,7 @@
   ("toDbl", primitive "toDbl"),
   ("toFunPtr", primitive "toFunPtr"),
   ("A.alloc", primitive "A.alloc"),
+  ("A.copy", primitive "A.copy"),
   ("A.size", primitive "A.size"),
   ("A.read", primitive "A.read"),
   ("A.write", primitive "A.write"),
--- a/src/runtime/eval.c
+++ b/src/runtime/eval.c
@@ -200,7 +200,7 @@
                 T_IO_CCBIND,
                 T_IO_SERIALIZE, T_IO_DESERIALIZE,
                 T_IO_STDIN, T_IO_STDOUT, T_IO_STDERR, T_IO_GETARGREF,
-                T_IO_PERFORMIO, T_IO_GETTIMEMILLI, T_IO_PRINT, T_CATCH,
+                T_IO_PERFORMIO, T_IO_PRINT, T_CATCH,
                 T_IO_CCALL, T_IO_GC, T_DYNSYM,
                 T_NEWCASTRINGLEN, T_PEEKCASTRING, T_PEEKCASTRINGLEN,
                 T_BSAPPEND, T_BSAPPEND3, T_BSEQ, T_BSNE, T_BSLT, T_BSLE, T_BSGT, T_BSGE, T_BSCMP,
@@ -233,7 +233,7 @@
   "C'BIND",
   "IO_SERIALIZE", "IO_DESERIALIZE",
   "IO_STDIN", "IO_STDOUT", "IO_STDERR", "IO_GETARGREF",
-  "IO_PERFORMIO", "IO_GETTIMEMILLI", "IO_PRINT", "CATCH",
+  "IO_PERFORMIO", "IO_PRINT", "CATCH",
   "IO_CCALL", "IO_GC", "DYNSYM",
   "NEWCASTRINGLEN", "PEEKCASTRING", "PEEKCASTRINGLEN",
   "BSFROMUTF8",
@@ -749,7 +749,6 @@
   { "IO.stdout", T_IO_STDOUT },
   { "IO.stderr", T_IO_STDERR },
   { "IO.getArgRef", T_IO_GETARGREF },
-  { "IO.getTimeMilli", T_IO_GETTIMEMILLI },
   { "IO.performIO", T_IO_PERFORMIO },
   { "IO.gc", T_IO_GC },
   { "raise", T_RAISE },
@@ -2208,7 +2207,6 @@
   case T_IO_PRINT: putsb("IO.print", f); break;
   case T_IO_DESERIALIZE: putsb("IO.deserialize", f); break;
   case T_IO_GETARGREF: putsb("IO.getArgRef", f); break;
-  case T_IO_GETTIMEMILLI: putsb("IO.getTimeMilli", f); break;
   case T_IO_PERFORMIO: putsb("IO.performIO", f); break;
   case T_IO_GC: putsb("IO.gc", f); break;
   case T_RAISE: putsb("raise", f); break;
@@ -3439,7 +3437,6 @@
   case T_IO_PRINT:
   case T_IO_DESERIALIZE:
   case T_IO_GETARGREF:
-  case T_IO_GETTIMEMILLI:
   case T_IO_CCALL:
   case T_CATCH:
   case T_NEWCASTRINGLEN: