diff options
| author | Jérémie Dimino <jeremie@dimino.org> | 2015-10-06 10:58:24 +0000 |
|---|---|---|
| committer | Jérémie Dimino <jeremie@dimino.org> | 2015-10-06 10:58:24 +0000 |
| commit | 1b219582a05c4b7cdf8dd7a0cd7ecebced7dd3ba (patch) | |
| tree | 826ce99a7f6ccfb040ac64b2cf351ac09e8f089a | |
| parent | 62b89a3a5c641dd6341882f61a730104ae875b87 (diff) | |
| download | ocaml-1b219582a05c4b7cdf8dd7a0cd7ecebced7dd3ba.tar.gz | |
Replace uses of "float" by [@@unboxed] [@@noalloc]
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@16456 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
| -rwxr-xr-x | boot/ocamlc | bin | 1817635 -> 1817635 bytes | |||
| -rwxr-xr-x | boot/ocamldep | bin | 571050 -> 571050 bytes | |||
| -rwxr-xr-x | boot/ocamllex | bin | 259308 -> 259308 bytes | |||
| -rw-r--r-- | otherlibs/threads/pervasives.ml | 60 | ||||
| -rw-r--r-- | stdlib/pervasives.ml | 60 | ||||
| -rw-r--r-- | stdlib/pervasives.mli | 62 |
6 files changed, 115 insertions, 67 deletions
diff --git a/boot/ocamlc b/boot/ocamlc Binary files differindex a72c254fcd..a23e858e37 100755 --- a/boot/ocamlc +++ b/boot/ocamlc diff --git a/boot/ocamldep b/boot/ocamldep Binary files differindex 1d06f2656b..d0bddd7c20 100755 --- a/boot/ocamldep +++ b/boot/ocamldep diff --git a/boot/ocamllex b/boot/ocamllex Binary files differindex 8bc0b18767..77c2f46118 100755 --- a/boot/ocamllex +++ b/boot/ocamllex diff --git a/otherlibs/threads/pervasives.ml b/otherlibs/threads/pervasives.ml index 9bfed688dc..8f70e310a7 100644 --- a/otherlibs/threads/pervasives.ml +++ b/otherlibs/threads/pervasives.ml @@ -112,31 +112,47 @@ external ( +. ) : float -> float -> float = "%addfloat" external ( -. ) : float -> float -> float = "%subfloat" external ( *. ) : float -> float -> float = "%mulfloat" external ( /. ) : float -> float -> float = "%divfloat" -external ( ** ) : float -> float -> float = "caml_power_float" "pow" "float" -external exp : float -> float = "caml_exp_float" "exp" "float" -external expm1 : float -> float = "caml_expm1_float" "caml_expm1" "float" -external acos : float -> float = "caml_acos_float" "acos" "float" -external asin : float -> float = "caml_asin_float" "asin" "float" -external atan : float -> float = "caml_atan_float" "atan" "float" -external atan2 : float -> float -> float = "caml_atan2_float" "atan2" "float" +external ( ** ) : float -> float -> float = "caml_power_float" "pow" + [@@unboxed] [@@noalloc] +external exp : float -> float = "caml_exp_float" "exp" [@@unboxed] [@@noalloc] +external expm1 : float -> float = "caml_expm1_float" "caml_expm1" + [@@unboxed] [@@noalloc] +external acos : float -> float = "caml_acos_float" "acos" + [@@unboxed] [@@noalloc] +external asin : float -> float = "caml_asin_float" "asin" + [@@unboxed] [@@noalloc] +external atan : float -> float = "caml_atan_float" "atan" + [@@unboxed] [@@noalloc] +external atan2 : float -> float -> float = "caml_atan2_float" "atan2" + [@@unboxed] [@@noalloc] external hypot : float -> float -> float - = "caml_hypot_float" "caml_hypot" "float" -external cos : float -> float = "caml_cos_float" "cos" "float" -external cosh : float -> float = "caml_cosh_float" "cosh" "float" -external log : float -> float = "caml_log_float" "log" "float" -external log10 : float -> float = "caml_log10_float" "log10" "float" -external log1p : float -> float = "caml_log1p_float" "caml_log1p" "float" -external sin : float -> float = "caml_sin_float" "sin" "float" -external sinh : float -> float = "caml_sinh_float" "sinh" "float" -external sqrt : float -> float = "caml_sqrt_float" "sqrt" "float" -external tan : float -> float = "caml_tan_float" "tan" "float" -external tanh : float -> float = "caml_tanh_float" "tanh" "float" -external ceil : float -> float = "caml_ceil_float" "ceil" "float" -external floor : float -> float = "caml_floor_float" "floor" "float" + = "caml_hypot_float" "caml_hypot" [@@unboxed] [@@noalloc] +external cos : float -> float = "caml_cos_float" "cos" [@@unboxed] [@@noalloc] +external cosh : float -> float = "caml_cosh_float" "cosh" + [@@unboxed] [@@noalloc] +external log : float -> float = "caml_log_float" "log" [@@unboxed] [@@noalloc] +external log10 : float -> float = "caml_log10_float" "log10" + [@@unboxed] [@@noalloc] +external log1p : float -> float = "caml_log1p_float" "caml_log1p" + [@@unboxed] [@@noalloc] +external sin : float -> float = "caml_sin_float" "sin" [@@unboxed] [@@noalloc] +external sinh : float -> float = "caml_sinh_float" "sinh" + [@@unboxed] [@@noalloc] +external sqrt : float -> float = "caml_sqrt_float" "sqrt" + [@@unboxed] [@@noalloc] +external tan : float -> float = "caml_tan_float" "tan" [@@unboxed] [@@noalloc] +external tanh : float -> float = "caml_tanh_float" "tanh" + [@@unboxed] [@@noalloc] +external ceil : float -> float = "caml_ceil_float" "ceil" + [@@unboxed] [@@noalloc] +external floor : float -> float = "caml_floor_float" "floor" + [@@unboxed] [@@noalloc] external abs_float : float -> float = "%absfloat" external copysign : float -> float -> float - = "caml_copysign_float" "caml_copysign" "float" -external mod_float : float -> float -> float = "caml_fmod_float" "fmod" "float" + = "caml_copysign_float" "caml_copysign" + [@@unboxed] [@@noalloc] +external mod_float : float -> float -> float = "caml_fmod_float" "fmod" + [@@unboxed] [@@noalloc] external frexp : float -> float * int = "caml_frexp_float" external ldexp : float -> int -> float = "caml_ldexp_float" external modf : float -> float * float = "caml_modf_float" diff --git a/stdlib/pervasives.ml b/stdlib/pervasives.ml index e0361630a9..7e5ff035ad 100644 --- a/stdlib/pervasives.ml +++ b/stdlib/pervasives.ml @@ -108,31 +108,47 @@ external ( +. ) : float -> float -> float = "%addfloat" external ( -. ) : float -> float -> float = "%subfloat" external ( *. ) : float -> float -> float = "%mulfloat" external ( /. ) : float -> float -> float = "%divfloat" -external ( ** ) : float -> float -> float = "caml_power_float" "pow" "float" -external exp : float -> float = "caml_exp_float" "exp" "float" -external expm1 : float -> float = "caml_expm1_float" "caml_expm1" "float" -external acos : float -> float = "caml_acos_float" "acos" "float" -external asin : float -> float = "caml_asin_float" "asin" "float" -external atan : float -> float = "caml_atan_float" "atan" "float" -external atan2 : float -> float -> float = "caml_atan2_float" "atan2" "float" +external ( ** ) : float -> float -> float = "caml_power_float" "pow" + [@@unboxed] [@@noalloc] +external exp : float -> float = "caml_exp_float" "exp" [@@unboxed] [@@noalloc] +external expm1 : float -> float = "caml_expm1_float" "caml_expm1" + [@@unboxed] [@@noalloc] +external acos : float -> float = "caml_acos_float" "acos" + [@@unboxed] [@@noalloc] +external asin : float -> float = "caml_asin_float" "asin" + [@@unboxed] [@@noalloc] +external atan : float -> float = "caml_atan_float" "atan" + [@@unboxed] [@@noalloc] +external atan2 : float -> float -> float = "caml_atan2_float" "atan2" + [@@unboxed] [@@noalloc] external hypot : float -> float -> float - = "caml_hypot_float" "caml_hypot" "float" -external cos : float -> float = "caml_cos_float" "cos" "float" -external cosh : float -> float = "caml_cosh_float" "cosh" "float" -external log : float -> float = "caml_log_float" "log" "float" -external log10 : float -> float = "caml_log10_float" "log10" "float" -external log1p : float -> float = "caml_log1p_float" "caml_log1p" "float" -external sin : float -> float = "caml_sin_float" "sin" "float" -external sinh : float -> float = "caml_sinh_float" "sinh" "float" -external sqrt : float -> float = "caml_sqrt_float" "sqrt" "float" -external tan : float -> float = "caml_tan_float" "tan" "float" -external tanh : float -> float = "caml_tanh_float" "tanh" "float" -external ceil : float -> float = "caml_ceil_float" "ceil" "float" -external floor : float -> float = "caml_floor_float" "floor" "float" + = "caml_hypot_float" "caml_hypot" [@@unboxed] [@@noalloc] +external cos : float -> float = "caml_cos_float" "cos" [@@unboxed] [@@noalloc] +external cosh : float -> float = "caml_cosh_float" "cosh" + [@@unboxed] [@@noalloc] +external log : float -> float = "caml_log_float" "log" [@@unboxed] [@@noalloc] +external log10 : float -> float = "caml_log10_float" "log10" + [@@unboxed] [@@noalloc] +external log1p : float -> float = "caml_log1p_float" "caml_log1p" + [@@unboxed] [@@noalloc] +external sin : float -> float = "caml_sin_float" "sin" [@@unboxed] [@@noalloc] +external sinh : float -> float = "caml_sinh_float" "sinh" + [@@unboxed] [@@noalloc] +external sqrt : float -> float = "caml_sqrt_float" "sqrt" + [@@unboxed] [@@noalloc] +external tan : float -> float = "caml_tan_float" "tan" [@@unboxed] [@@noalloc] +external tanh : float -> float = "caml_tanh_float" "tanh" + [@@unboxed] [@@noalloc] +external ceil : float -> float = "caml_ceil_float" "ceil" + [@@unboxed] [@@noalloc] +external floor : float -> float = "caml_floor_float" "floor" + [@@unboxed] [@@noalloc] external abs_float : float -> float = "%absfloat" external copysign : float -> float -> float - = "caml_copysign_float" "caml_copysign" "float" -external mod_float : float -> float -> float = "caml_fmod_float" "fmod" "float" + = "caml_copysign_float" "caml_copysign" + [@@unboxed] [@@noalloc] +external mod_float : float -> float -> float = "caml_fmod_float" "fmod" + [@@unboxed] [@@noalloc] external frexp : float -> float * int = "caml_frexp_float" external ldexp : float -> int -> float = "caml_ldexp_float" external modf : float -> float * float = "caml_modf_float" diff --git a/stdlib/pervasives.mli b/stdlib/pervasives.mli index 4464866c9d..c557612050 100644 --- a/stdlib/pervasives.mli +++ b/stdlib/pervasives.mli @@ -334,82 +334,96 @@ external ( *. ) : float -> float -> float = "%mulfloat" external ( /. ) : float -> float -> float = "%divfloat" (** Floating-point division. *) -external ( ** ) : float -> float -> float = "caml_power_float" "pow" "float" +external ( ** ) : float -> float -> float = "caml_power_float" "pow" + [@@unboxed] [@@noalloc] (** Exponentiation. *) -external sqrt : float -> float = "caml_sqrt_float" "sqrt" "float" +external sqrt : float -> float = "caml_sqrt_float" "sqrt" + [@@unboxed] [@@noalloc] (** Square root. *) -external exp : float -> float = "caml_exp_float" "exp" "float" +external exp : float -> float = "caml_exp_float" "exp" [@@unboxed] [@@noalloc] (** Exponential. *) -external log : float -> float = "caml_log_float" "log" "float" +external log : float -> float = "caml_log_float" "log" [@@unboxed] [@@noalloc] (** Natural logarithm. *) -external log10 : float -> float = "caml_log10_float" "log10" "float" +external log10 : float -> float = "caml_log10_float" "log10" + [@@unboxed] [@@noalloc] (** Base 10 logarithm. *) -external expm1 : float -> float = "caml_expm1_float" "caml_expm1" "float" +external expm1 : float -> float = "caml_expm1_float" "caml_expm1" + [@@unboxed] [@@noalloc] (** [expm1 x] computes [exp x -. 1.0], giving numerically-accurate results even if [x] is close to [0.0]. @since 3.12.0 *) -external log1p : float -> float = "caml_log1p_float" "caml_log1p" "float" +external log1p : float -> float = "caml_log1p_float" "caml_log1p" + [@@unboxed] [@@noalloc] (** [log1p x] computes [log(1.0 +. x)] (natural logarithm), giving numerically-accurate results even if [x] is close to [0.0]. @since 3.12.0 *) -external cos : float -> float = "caml_cos_float" "cos" "float" +external cos : float -> float = "caml_cos_float" "cos" [@@unboxed] [@@noalloc] (** Cosine. Argument is in radians. *) -external sin : float -> float = "caml_sin_float" "sin" "float" +external sin : float -> float = "caml_sin_float" "sin" [@@unboxed] [@@noalloc] (** Sine. Argument is in radians. *) -external tan : float -> float = "caml_tan_float" "tan" "float" +external tan : float -> float = "caml_tan_float" "tan" [@@unboxed] [@@noalloc] (** Tangent. Argument is in radians. *) -external acos : float -> float = "caml_acos_float" "acos" "float" +external acos : float -> float = "caml_acos_float" "acos" + [@@unboxed] [@@noalloc] (** Arc cosine. The argument must fall within the range [[-1.0, 1.0]]. Result is in radians and is between [0.0] and [pi]. *) -external asin : float -> float = "caml_asin_float" "asin" "float" +external asin : float -> float = "caml_asin_float" "asin" + [@@unboxed] [@@noalloc] (** Arc sine. The argument must fall within the range [[-1.0, 1.0]]. Result is in radians and is between [-pi/2] and [pi/2]. *) -external atan : float -> float = "caml_atan_float" "atan" "float" +external atan : float -> float = "caml_atan_float" "atan" + [@@unboxed] [@@noalloc] (** Arc tangent. Result is in radians and is between [-pi/2] and [pi/2]. *) -external atan2 : float -> float -> float = "caml_atan2_float" "atan2" "float" +external atan2 : float -> float -> float = "caml_atan2_float" "atan2" + [@@unboxed] [@@noalloc] (** [atan2 y x] returns the arc tangent of [y /. x]. The signs of [x] and [y] are used to determine the quadrant of the result. Result is in radians and is between [-pi] and [pi]. *) -external hypot : float -> float -> float - = "caml_hypot_float" "caml_hypot" "float" +external hypot : float -> float -> float = "caml_hypot_float" "caml_hypot" + [@@unboxed] [@@noalloc] (** [hypot x y] returns [sqrt(x *. x + y *. y)], that is, the length of the hypotenuse of a right-angled triangle with sides of length [x] and [y], or, equivalently, the distance of the point [(x,y)] to origin. @since 4.00.0 *) -external cosh : float -> float = "caml_cosh_float" "cosh" "float" +external cosh : float -> float = "caml_cosh_float" "cosh" + [@@unboxed] [@@noalloc] (** Hyperbolic cosine. Argument is in radians. *) -external sinh : float -> float = "caml_sinh_float" "sinh" "float" +external sinh : float -> float = "caml_sinh_float" "sinh" + [@@unboxed] [@@noalloc] (** Hyperbolic sine. Argument is in radians. *) -external tanh : float -> float = "caml_tanh_float" "tanh" "float" +external tanh : float -> float = "caml_tanh_float" "tanh" + [@@unboxed] [@@noalloc] (** Hyperbolic tangent. Argument is in radians. *) -external ceil : float -> float = "caml_ceil_float" "ceil" "float" +external ceil : float -> float = "caml_ceil_float" "ceil" + [@@unboxed] [@@noalloc] (** Round above to an integer value. [ceil f] returns the least integer value greater than or equal to [f]. The result is returned as a float. *) -external floor : float -> float = "caml_floor_float" "floor" "float" +external floor : float -> float = "caml_floor_float" "floor" + [@@unboxed] [@@noalloc] (** Round below to an integer value. [floor f] returns the greatest integer value less than or equal to [f]. @@ -419,14 +433,16 @@ external abs_float : float -> float = "%absfloat" (** [abs_float f] returns the absolute value of [f]. *) external copysign : float -> float -> float - = "caml_copysign_float" "caml_copysign" "float" + = "caml_copysign_float" "caml_copysign" + [@@unboxed] [@@noalloc] (** [copysign x y] returns a float whose absolute value is that of [x] and whose sign is that of [y]. If [x] is [nan], returns [nan]. If [y] is [nan], returns either [x] or [-. x], but it is not specified which. @since 4.00.0 *) -external mod_float : float -> float -> float = "caml_fmod_float" "fmod" "float" +external mod_float : float -> float -> float = "caml_fmod_float" "fmod" + [@@unboxed] [@@noalloc] (** [mod_float a b] returns the remainder of [a] with respect to [b]. The returned value is [a -. n *. b], where [n] is the quotient [a /. b] rounded towards zero to an integer. *) |
