shithub: MicroHs

Download patch

ref: e6ffa92753c499c3a1bec2c95b418a6d09ee94a9
parent: 662c9dd76afa73d6f0ed6c9e235d4e9ad071edbf
author: Lennart Augustsson <lennart.augustsson@epicgames.com>
date: Mon Aug 21 14:21:50 EDT 2023

Get rid of unused EBad

--- a/comb/mhs.comb
+++ b/comb/mhs.comb
@@ -1,3 +1,3 @@
 v3.0
-658
-(($A :0 ((_486 _440) ((($S' ($C ((($C' ($S' _486)) ($C _2)) (($B ($B (_486 _514))) ((($C' ($S' $C)) ((($C' ($C' $C)) ((($C' ($C' ($C' $S'))) (($B ($B ($B $C))) ((($C' ($C' ($C' ($C' $C)))) ((($C' ($C' ($C' ($C' ($S' $B))))) ((($C' ($C' ($C' ($C' ($C' $S))))) ((($C' ($C' ($C' $B))) (($B ($B ($B ($C' $C)))) ((($C' ($C' ($C' ($C' ($C' $S'))))) (($B ($B ($B ($B ($B $C))))) ((($C' ($C' ($C' ($C' ($C' ($C' $B)))))) ((($C' ($C' ($C' ($S' ($C' $B))))) (($B ($B ($B ($B ($B $B))))) ((($C' ($C' ($C' ($C' $B)))) ((($S' $B) (($B $B) (($B $B) (($B $C') (($B ($S' _487)) ((($C' $B) (($B _571) (($B _504) ((($C' _608) _8) 0)))) (($B (_571 _507)) (($B (_518 "top level defns: ")) _468)))))))) ((($S' $B) (($B $B) (($B ($C' $B)) (($B ($B $B)) (($B ($B _487)) ((($C' $B) (($B _571) (($B _504) ((($C' _608) _8) 1)))) (_503 ($T (($B ($B (_571 _507))) ((($C' $B) _518) (($B (_518 " = ")) _229))))))))))) ((($C' $B) ((($S' $C') (($B $C') (($B $C') _9))) ((($S' $B) (($B ($C' ($C' _487))) ((($C' $B) (($B $B) (($B _571) (($B _509) _11)))) (($B ($B (_518 _1))) (($B (($C' _518) _468)) (_518 (($O 10) $K))))))) (($B ($B (_486 _514))) ((($C' $B) (($B $B) (($B _571) (($B _504) ((($C' _608) _8) 0))))) (($B ($B (_571 _507))) (($B ($B (_518 "final pass            "))) ((($C' ($C' _518)) (($B ($B (_481 6))) (($B ($B _468)) _602))) "ms")))))))) _3)))) _465))) (($B (($C' $C) (($B ($C _523)) _229))) (($C _536) (_551 0))))) (($B ($C $B)) (($B ($B ($C $B))) (($B ($B ($B $K))) (($B ($B ($B ($B (_518 "(($A :"))))) (($B ($B (($C' $B) (($B _518) _468)))) (($B ($B ($B (_518 (($O 32) $K))))) ((($C' $B) (($B ($C' _518)) ($B _229))) (($B (_518 ") ")) (($C _518) (($O 41) $K))))))))))))) (($B $Y) ((($C' ($C' $S)) ((($C' ($C' $S)) ((($C' $B) $P) ((($S' ($C' $B)) ($B _206)) $I))) (($B $K) $K))) $K))))) $T)) (($B (($S' _571) (($B _568) (($B (_571 _616)) (($B (_518 "main: findIdent: ")) _300))))) ($C _458)))) (($B ($B _462)) (($B (($C' _520) (($B $T) (($B ($C $B)) (($B ($B ($B $K))) ((($C' ($C' ($C' $O))) ($B ($C $P))) $K)))))) (($C _536) (_551 0)))))) (($B (_571 _205)) (($B (_518 (($O 95) $K))) _468))))) ($T $A))) ($T $K))) (($B $Y) $K)))))) (($S (($S ((($S' _7) (($B _535) (_522 (_479 "-v")))) ((_550 _479) "-r"))) (($B (_516 (($O 46) $K))) (($B _570) (_521 ((_540 _593) "-i")))))) (($B (_571 _545)) ((($C' _518) (($B _570) (_521 ((_540 _593) "-o")))) (($O "out.comb") $K))))) (($B (($S (($C ((($C' _604) _535) 1)) (_616 "Usage: uhs [-v] [-r] [-iPATH] [-oFILE] ModuleName"))) _545)) (_522 ((_572 _613) ((_572 (_479 (($O 45) $K))) (_533 1)))))))) (($A :1 "v3.0\10&") (($A :2 ((($S' ($S' _486)) _16) (($B ($B ($B (_486 _514)))) ((($C' ($C' $B)) (($B ($B ($C' (($S' _487) (($B (_571 _505)) (($B (_571 (_534 1000000))) _38)))))) (($B ($B ($B ($B (_486 _514))))) ((($C' $B) (($B ($C' $B)) (($B ($B ($C' _487))) ((($C' $B) (($B $B) (($B _571) (($B _504) ((($C' _608) _8) 0))))) (($B ($B (_571 _507))) (($B ($B (_518 "combinator conversion "))) ((($C' ($C' _518)) (($B ($B (_481 6))) (($B ($B _468)) _602))) "ms"))))))) (($B ($B _488)) (($B $P) (($C _302) "main"))))))) (_520 ($T ((($C' ($C' $O)) ((($C' $B) $P) _232)) $K))))))) (($A :3 ($T (($C ((($C' $C') (($B ($S' ($B (_571 _6)))) ($C $C))) (($B ($B $Y)) (($B ($B ($B _199))) (($C' ($C' _520)) (($B ($B $T)) ((($C' ($C' ($C' ($C' $O)))) (($B ($B (($C' $B) $P))) ($B _4))) $K))))))) (($B (($S' _571) (($B _568) (($B (_571 _616)) (_518 "not found "))))) ($C _200))))) (($A :4 ((($C' $C) ((($S' $C) ((($C' ($C' $S')) (($S $P) ((($S' ($C' $B)) (($B ($B _6)) _4)) _4))) (($B $K) $K))) ((($C' ($C' $C)) (($B (($C' $C) (($B ($P _6)) $K))) ((($C' $B) _4) _231))) (($B (_571 (_568 (_616 "primlookup")))) (($C (_554 _479)) _5))))) (_616 "trans: impossible"))) (($A :5 (($O (($P (($O 66) $K)) $B)) (($O (($P (($O 79) $K)) $O)) (($O (($P (($O 75) $K)) $K)) (($O (($P "C'") $C')) (($O (($P (($O 67) $K)) $C)) (($O (($P (($O 65) $K)) $A)) (($O (($P "S'") $S')) (($O (($P (($O 80) $K)) $P)) (($O (($P (($O 73) $K)) $I)) (($O (($P (($O 83) $K)) $S)) (($O (($P (($O 84) $K)) $T)) (($O (($P (($O 89) $K)) $Y)) (($O (($P "B'") $B')) (($O (($P (($O 43) $K)) $+)) (($O (($P (($O 45) $K)) $-))
\ No newline at end of file
+657
+(($A :0 ((_485 _439) ((($S' ($C ((($C' ($S' _485)) ($C _2)) (($B ($B (_485 _513))) ((($C' ($S' $C)) ((($C' ($C' $C)) ((($C' ($C' ($C' $S'))) (($B ($B ($B $C))) ((($C' ($C' ($C' ($C' $C)))) ((($C' ($C' ($C' ($C' ($S' $B))))) ((($C' ($C' ($C' ($C' ($C' $S))))) ((($C' ($C' ($C' $B))) (($B ($B ($B ($C' $C)))) ((($C' ($C' ($C' ($C' ($C' $S'))))) (($B ($B ($B ($B ($B $C))))) ((($C' ($C' ($C' ($C' ($C' ($C' $B)))))) ((($C' ($C' ($C' ($S' ($C' $B))))) (($B ($B ($B ($B ($B $B))))) ((($C' ($C' ($C' ($C' $B)))) ((($S' $B) (($B $B) (($B $B) (($B $C') (($B ($S' _486)) ((($C' $B) (($B _570) (($B _503) ((($C' _607) _8) 0)))) (($B (_570 _506)) (($B (_517 "top level defns: ")) _467)))))))) ((($S' $B) (($B $B) (($B ($C' $B)) (($B ($B $B)) (($B ($B _486)) ((($C' $B) (($B _570) (($B _503) ((($C' _607) _8) 1)))) (_502 ($T (($B ($B (_570 _506))) ((($C' $B) _517) (($B (_517 " = ")) _229))))))))))) ((($C' $B) ((($S' $C') (($B $C') (($B $C') _9))) ((($S' $B) (($B ($C' ($C' _486))) ((($C' $B) (($B $B) (($B _570) (($B _508) _11)))) (($B ($B (_517 _1))) (($B (($C' _517) _467)) (_517 (($O 10) $K))))))) (($B ($B (_485 _513))) ((($C' $B) (($B $B) (($B _570) (($B _503) ((($C' _607) _8) 0))))) (($B ($B (_570 _506))) (($B ($B (_517 "final pass            "))) ((($C' ($C' _517)) (($B ($B (_480 6))) (($B ($B _467)) _601))) "ms")))))))) _3)))) _464))) (($B (($C' $C) (($B ($C _522)) _229))) (($C _535) (_550 0))))) (($B ($C $B)) (($B ($B ($C $B))) (($B ($B ($B $K))) (($B ($B ($B ($B (_517 "(($A :"))))) (($B ($B (($C' $B) (($B _517) _467)))) (($B ($B ($B (_517 (($O 32) $K))))) ((($C' $B) (($B ($C' _517)) ($B _229))) (($B (_517 ") ")) (($C _517) (($O 41) $K))))))))))))) (($B $Y) ((($C' ($C' $S)) ((($C' ($C' $S)) ((($C' $B) $P) ((($S' ($C' $B)) ($B _206)) $I))) (($B $K) $K))) $K))))) $T)) (($B (($S' _570) (($B _567) (($B (_570 _615)) (($B (_517 "main: findIdent: ")) _299))))) ($C _457)))) (($B ($B _461)) (($B (($C' _519) (($B $T) (($B ($C $B)) (($B ($B ($B $K))) ((($C' ($C' ($C' $O))) ($B ($C $P))) $K)))))) (($C _535) (_550 0)))))) (($B (_570 _205)) (($B (_517 (($O 95) $K))) _467))))) ($T $A))) ($T $K))) (($B $Y) $K)))))) (($S (($S ((($S' _7) (($B _534) (_521 (_478 "-v")))) ((_549 _478) "-r"))) (($B (_515 (($O 46) $K))) (($B _569) (_520 ((_539 _592) "-i")))))) (($B (_570 _544)) ((($C' _517) (($B _569) (_520 ((_539 _592) "-o")))) (($O "out.comb") $K))))) (($B (($S (($C ((($C' _603) _534) 1)) (_615 "Usage: uhs [-v] [-r] [-iPATH] [-oFILE] ModuleName"))) _544)) (_521 ((_571 _612) ((_571 (_478 (($O 45) $K))) (_532 1)))))))) (($A :1 "v3.0\10&") (($A :2 ((($S' ($S' _485)) _16) (($B ($B ($B (_485 _513)))) ((($C' ($C' $B)) (($B ($B ($C' (($S' _486) (($B (_570 _504)) (($B (_570 (_533 1000000))) _38)))))) (($B ($B ($B ($B (_485 _513))))) ((($C' $B) (($B ($C' $B)) (($B ($B ($C' _486))) ((($C' $B) (($B $B) (($B _570) (($B _503) ((($C' _607) _8) 0))))) (($B ($B (_570 _506))) (($B ($B (_517 "combinator conversion "))) ((($C' ($C' _517)) (($B ($B (_480 6))) (($B ($B _467)) _601))) "ms"))))))) (($B ($B _487)) (($B $P) (($C _301) "main"))))))) (_519 ($T ((($C' ($C' $O)) ((($C' $B) $P) _232)) $K))))))) (($A :3 ($T (($C ((($C' $C') (($B ($S' ($B (_570 _6)))) ($C $C))) (($B ($B $Y)) (($B ($B ($B _199))) (($C' ($C' _519)) (($B ($B $T)) ((($C' ($C' ($C' ($C' $O)))) (($B ($B (($C' $B) $P))) ($B _4))) $K))))))) (($B (($S' _570) (($B _567) (($B (_570 _615)) (_517 "not found "))))) ($C _200))))) (($A :4 ((($C' $C) ((($S' $C) ((($C' ($C' $S')) (($S $P) ((($S' ($C' $B)) (($B ($B _6)) _4)) _4))) (($B $K) $K))) ((($C' ($C' $C)) (($B (($C' $C) (($B ($P _6)) $K))) ((($C' $B) _4) _231))) (($B (_570 (_567 (_615 "primlookup")))) (($C (_553 _478)) _5))))) (_615 "trans: impossible"))) (($A :5 (($O (($P (($O 66) $K)) $B)) (($O (($P (($O 79) $K)) $O)) (($O (($P (($O 75) $K)) $K)) (($O (($P "C'") $C')) (($O (($P (($O 67) $K)) $C)) (($O (($P (($O 65) $K)) $A)) (($O (($P "S'") $S')) (($O (($P (($O 80) $K)) $P)) (($O (($P (($O 73) $K)) $I)) (($O (($P (($O 83) $K)) $S)) (($O (($P (($O 84) $K)) $T)) (($O (($P (($O 89) $K)) $Y)) (($O (($P "B'") $B')) (($O (($P (($O 43) $K)) $+)) (($O (($P (($O 45) $K)) $-))
\ No newline at end of file
--- a/src/MicroHs/Desugar.hs
+++ b/src/MicroHs/Desugar.hs
@@ -138,7 +138,6 @@
               dsExpr (EIf c (ECompr e stmts) (EList []))
             SLet ds ->
               dsExpr (ELet ds (ECompr e stmts))
-    EBad msg -> error $ "complex case not implemented: " ++ msg
     EAt _ _ -> undefined
     EUVar _ -> undefined
     ECon c ->
--- a/src/MicroHs/Parse.hs
+++ b/src/MicroHs/Parse.hs
@@ -84,7 +84,6 @@
   | EIf Expr Expr Expr
   | ECompr Expr [EStmt]
   | EAt Ident Expr  -- only in patterns
-  | EBad String
   -- Only while type checking
   | EUVar Int
   -- Constructors after type checking
@@ -822,7 +821,6 @@
     EIf e1 e2 e3 -> "if " ++ showExpr e1 ++ " then " ++ showExpr e2 ++ " else " ++ showExpr e3
     ECompr _ _ -> "ECompr"
     EAt i e -> i ++ "@" ++ showExpr e
-    EBad _ -> "EBad"
     EUVar i -> "a" ++ showInt i
     ECon c -> conIdent c
 
@@ -916,7 +914,6 @@
     EIf e1 e2 e3 -> allVarsExpr e1 ++ allVarsExpr e2 ++ allVarsExpr e3
     ECompr e ss -> allVarsExpr e ++ concatMap allVarsStmt ss
     EAt i e -> i : allVarsExpr e
-    EBad _ -> []
     EUVar _ -> []
     ECon c -> [conIdent c]
 
--- a/src/MicroHs/TypeCheck.hs
+++ b/src/MicroHs/TypeCheck.hs
@@ -763,7 +763,6 @@
       unify t ti
       T.return (EAt i ee, t)
     -----
-    EBad _ -> impossible    -- shouldn't happen
     EUVar _ -> impossible -- shouldn't happen
     ECon _ -> impossible
 
--- a/src/runtime/eval.c
+++ b/src/runtime/eval.c
@@ -1562,7 +1562,7 @@
       pp(stdout, res);
       printf("node size=%"PRIu64", heap size bytes=%"PRIu64"\n", (uint64_t)NODE_SIZE, heap_size * NODE_SIZE);
     }
-    setlocale(LC_NUMERIC, "");
+    setlocale(LC_NUMERIC, "");  /* Make %' work on platforms that support it */
     printf("%"PCOMMA"15"PRIu64" combinator file size\n", file_size);
     printf("%"PCOMMA"15"PRIu64" cells at start\n", start_size);
     printf("%"PCOMMA"15"PRIu64" heap size\n", heap_size);
--