shithub: MicroHs

Download patch

ref: 603d55ac8401d2361873b6ae1b493c4a5579fdcf
parent: 07d3077a0836ba741ed37f0397045e4a38deefee
author: Lennart Augustsson <lennart.augustsson@epicgames.com>
date: Sun Feb 4 06:46:30 EST 2024

Make interactive gmhs work a little again.

--- a/ghc/PrimTable.hs
+++ b/ghc/PrimTable.hs
@@ -205,11 +205,14 @@
 
 cops :: [(String, Any)]
 cops =
-  [ comb "fputc" fputc
-  , comb "getTimeMilli" getTimeMilli
+  [ comb "getTimeMilli" getTimeMilli
+  , comb "fputc" fputc
   , comb "fgetc" fgetc
   , comb "fopen" fopen
   , comb "fclose" fclose
+  , comb "putb"  putb
+  , comb "add_FILE" add_FILE
+  , comb "add_utf8" add_utf8
   , comb "free"  free
   , comb "exp"   (fio exp)
   , comb "log"   (fio log)
@@ -236,6 +239,15 @@
 
     fio2 :: (Double -> Double -> Double) -> (Double -> Double -> IO Double)
     fio2 f = \ x y -> return (f x y)
+
+    add_FILE :: Handle -> IO Handle
+    add_FILE h = return h
+
+    add_utf8 :: Handle -> IO Handle
+    add_utf8 h = do hSetEncoding h utf8; return h
+
+    putb :: Int -> Handle -> IO ()
+    putb c h = hPutChar h (chr c)
 
     fputc :: Int -> Handle -> IO Int
     fputc c h = hPutChar h (chr c) >> return 0
--