2013-09-26 17:14:40 +02:00

59 lines
2.7 KiB
Plaintext

$NetBSD: patch-yh,v 1.1.1.1 2009/10/28 06:13:40 dholland Exp $
Fix integer types for modern ocaml.
--- Pict/optimise.ml.orig 2009-10-27 20:43:05.000000000 -0400
+++ Pict/optimise.ml 2009-10-27 20:46:37.000000000 -0400
@@ -166,7 +166,7 @@ let scanConst = function
let optTuple rest v =
match v with
- TUPLE(x,[]) -> Hashtbl.add atomTable x (INT 0); rest
+ TUPLE(x,[]) -> Hashtbl.add atomTable x (INT Int32.zero); rest
| TUPLE(x,l) ->
(match (Occur.oper x,Occur.proj x,Occur.arg x) with
(0,0,0) -> rest
@@ -262,30 +262,30 @@ and optProc env = function
match List.map optAtom l with
[INT x1; INT x2] as l ->
(match sl with
- ["("; " + "; ")"] -> optATOM env x (INT(x1 + x2)) p
- | ["("; " - "; ")"] -> optATOM env x (INT(x1 - x2)) p
- | ["("; " * I("; "))"] -> optATOM env x (INT(x1 * x2)) p
- | ["("; " == "; ")"] -> optATOM env x (BOOL(x1 = x2)) p
- | ["("; " != "; ")"] -> optATOM env x (BOOL(x1 != x2)) p
- | ["("; " > "; ")"] -> optATOM env x (BOOL(x1 > x2)) p
- | ["("; " < "; ")"] -> optATOM env x (BOOL(x1 < x2)) p
- | ["("; " >= "; ")"] -> optATOM env x (BOOL(x1 >= x2)) p
- | ["("; " <= "; ")"] -> optATOM env x (BOOL(x1 <= x2)) p
+ ["("; " + "; ")"] -> optATOM env x (INT(Int32.add x1 x2)) p
+ | ["("; " - "; ")"] -> optATOM env x (INT(Int32.sub x1 x2)) p
+ | ["("; " * I("; "))"] -> optATOM env x (INT(Int32.mul x1 x2)) p
+ | ["("; " == "; ")"] -> optATOM env x (BOOL((Int32.compare x1 x2) == 0)) p
+ | ["("; " != "; ")"] -> optATOM env x (BOOL((Int32.compare x1 x2) != 0)) p
+ | ["("; " > "; ")"] -> optATOM env x (BOOL((Int32.compare x1 x2) > 0)) p
+ | ["("; " < "; ")"] -> optATOM env x (BOOL((Int32.compare x1 x2) < 0)) p
+ | ["("; " >= "; ")"] -> optATOM env x (BOOL((Int32.compare x1 x2) >= 0)) p
+ | ["("; " <= "; ")"] -> optATOM env x (BOOL((Int32.compare x1 x2) <= 0)) p
| _ -> CCODE(Some x,ci,sl,l,optProc env p))
| [INT i; a] as l ->
(match sl with
["("; " + "; ")"] ->
- if i = 0 then optATOM env x a p
+ if i = Int32.zero then optATOM env x a p
else CCODE(Some x,ci,sl,l,optProc env p)
| ["("; " * I("; ")"] -> CCODE(Some x,ci,sl,[a; INT i],optProc env p)
| _ -> CCODE(Some x,ci,sl,l,optProc env p))
| [a; INT i] as l ->
(match sl with
["("; " + "; ")"] ->
- if i = 0 then optATOM env x a p
+ if i = Int32.zero then optATOM env x a p
else CCODE(Some x,ci,sl,l,optProc env p)
| ["("; " - "; ")"] ->
- if i = 0 then optATOM env x a p
+ if i = Int32.zero then optATOM env x a p
else CCODE(Some x,ci,sl,l,optProc env p)
| _ -> CCODE(Some x,ci,sl,l,optProc env p))
| [BOOL b; a] as l ->