summaryrefslogtreecommitdiffstats
path: root/stdlib
diff options
context:
space:
mode:
authorXavier Leroy <xavier.leroy@inria.fr>2003-04-25 12:27:31 +0000
committerXavier Leroy <xavier.leroy@inria.fr>2003-04-25 12:27:31 +0000
commit7abcc8799e5b726f0469512d888fa2f8d11b95c0 (patch)
treea328bf1bf7de799d41dc72145ed6444561e8d6f1 /stdlib
parent00e105ce490f8d7afd16b7c941fdf9d06ff347a6 (diff)
Ajout des litteraux de type int32, nativeint, int64
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@5510 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
Diffstat (limited to 'stdlib')
-rw-r--r--stdlib/int32.ml18
-rw-r--r--stdlib/int64.ml20
-rw-r--r--stdlib/nativeint.ml18
3 files changed, 27 insertions, 29 deletions
diff --git a/stdlib/int32.ml b/stdlib/int32.ml
index e21c22c56..c8a98b064 100644
--- a/stdlib/int32.ml
+++ b/stdlib/int32.ml
@@ -32,15 +32,15 @@ external to_int : int32 -> int = "%int32_to_int"
external of_float : float -> int32 = "int32_of_float"
external to_float : int32 -> float = "int32_to_float"
-let zero = of_int 0
-let one = of_int 1
-let minus_one = of_int (-1)
-let succ n = add n one
-let pred n = sub n one
-let abs n = if n >= zero then n else neg n
-let min_int = shift_left one 31
-let max_int = sub min_int one
-let lognot n = logxor n minus_one
+let zero = 0l
+let one = 1l
+let minus_one = -1l
+let succ n = add n 1l
+let pred n = sub n 1l
+let abs n = if n >= 0l then n else neg n
+let min_int = 0x80000000l
+let max_int = 0x7FFFFFFFl
+let lognot n = logxor n (-1l)
external format : string -> int32 -> string = "int32_format"
let to_string n = format "%d" n
diff --git a/stdlib/int64.ml b/stdlib/int64.ml
index 6889e3478..8b634a5f2 100644
--- a/stdlib/int64.ml
+++ b/stdlib/int64.ml
@@ -36,17 +36,15 @@ external to_int32 : int64 -> int32 = "%int64_to_int32"
external of_nativeint : nativeint -> int64 = "%int64_of_nativeint"
external to_nativeint : int64 -> nativeint = "%int64_to_nativeint"
-let zero = try of_int 0 with Invalid_argument _ -> Obj.magic Int32.zero
-let one = try of_int 1 with Invalid_argument _ -> Obj.magic Int32.one
-let minus_one = try of_int (-1) with Invalid_argument _ -> Obj.magic Int32.minus_one
-let succ n = add n one
-let pred n = sub n one
-let abs n = if n >= zero then n else neg n
-let min_int =
- try shift_left one 63 with Invalid_argument _ -> Obj.magic Int32.min_int
-let max_int =
- try sub min_int one with Invalid_argument _ -> Obj.magic Int32.max_int
-let lognot n = logxor n minus_one
+let zero = 0L
+let one = 1L
+let minus_one = -1L
+let succ n = add n 1L
+let pred n = sub n 1L
+let abs n = if n >= 0L then n else neg n
+let min_int = 0x8000000000000000L
+let max_int = 0x7FFFFFFFFFFFFFFFL
+let lognot n = logxor n (-1L)
external format : string -> int64 -> string = "int64_format"
let to_string n = format "%d" n
diff --git a/stdlib/nativeint.ml b/stdlib/nativeint.ml
index 36c55ae66..216f2b30b 100644
--- a/stdlib/nativeint.ml
+++ b/stdlib/nativeint.ml
@@ -34,16 +34,16 @@ external to_float : nativeint -> float = "nativeint_to_float"
external of_int32: int32 -> nativeint = "%nativeint_of_int32"
external to_int32: nativeint -> int32 = "%nativeint_to_int32"
-let zero = of_int 0
-let one = of_int 1
-let minus_one = of_int (-1)
-let succ n = add n one
-let pred n = sub n one
-let abs n = if n >= zero then n else neg n
+let zero = 0n
+let one = 1n
+let minus_one = -1n
+let succ n = add n 1n
+let pred n = sub n 1n
+let abs n = if n >= 0n then n else neg n
let size = Sys.word_size
-let min_int = shift_left one (size - 1)
-let max_int = sub min_int one
-let lognot n = logxor n minus_one
+let min_int = shift_left 1n (size - 1)
+let max_int = sub min_int 1n
+let lognot n = logxor n (-1n)
external format : string -> nativeint -> string = "nativeint_format"
let to_string n = format "%d" n