Caml1999I031: )Targetint!t8@@@A@@@@@3utils/targetint.mli``@@@@ @A@$zero@@@o@cc@@A@#one @@@p@ff@@$B@)minus_one@@@q@&i  'i @@0C@#neg@'@@@r*@@@s@@t@7l998l9I@@AD@#add@8@@@u@=@@@v@@@@w@@x@@y@MobbNobw@@WE@#sub@N@@@z@S@@@{V@@@|@@}@@~@crdr@@mF@#mul@d@@@@i@@@l@@@@@@@@yuzu@@G@#div@z@@@@@@@@@@@@@@@xx@@H@,unsigned_div@@@@@@@@@@@@@@@@}}@@I@#rem@@@@@@@@@@@@@@@@A @ @A @ U@@J@,unsigned_rem@@@@@@@@@@@@@@@@I  I  @@K@$succ@@@@@@@@@@M : :M : K@@L@$pred@@@@@@@@@@Q  Q  @@M@#abs@@@@@@@@@@U  U  @@N@$size#intA@@@@X > >X > L@@O@'max_int@@@@[   [  @@)P@'min_int@@@@+`  ,`  (@@5Q@&logand@,@@@@1@@@4@@@@@@@@Ae  Be  @@KR@%logor@B@@@@G@@@J@@@@@@@@Wh  Xh  @@aS@&logxor@X@@@@]@@@`@@@@@@@@mknk*@@wT@&lognot@n@@@q@@@@@@~nQQnQd@@U@*shift_left@@@@@@@@@@@@@@@@qq@@V@+shift_right@@@@@@@@@@@@@@@@w}}w}@@W@3shift_right_logical@@@@@@@@@@@@@@@@}}@@X@&of_int@@@@@@@@@@@@Y@*of_int_exn@@@@@@@@@@222K@@Z@&to_int@@@@@@@@@@@@[@(of_float@%floatD@@@@@@@@@ vvv@@\@(to_float@@@@@@@@@@ @@)]@(of_int32@%int32L@@@&@@@@@@34@@=^@(to_int32@4@@@@@@@@@EppFp@@O_@(of_int64@%int64M@@@L@@@@@@Y}}Z}@@c`@(to_int64@Z@@@@@@@@@kl@@ua@)of_string@&stringO@@@r@@@@@@SSSn@@b@)to_string@@@@@@@@@@!@@c@'compare@@@@@@@@@@@@@@@@hhh@@d@0unsigned_compare@@@@@@@@@@@@@@@@@@e@%equal@@@@@@@@$boolE@@@@@@@@)@@f@$repr8@@%Int323@@@@@bdbt@@h%Int644@@@@@uwu@@i@@A@@@@@VV@@@@gA@$repr@@@@0@@@@@@@@j@%print@&Stdlib&Format)formatter@@@@@@@$unitF@@@@@@@@/0@@9k@@(y)Targetint0aDFscgjg -Stdlib__Uchar0*Ujmyc6]]W+Stdlib__Seq05"g1<)b.Stdlib__Format0{hXsHW#ȼ.Stdlib__Either0&]XF.Stdlib__Buffer0K ɦb+Z8)#KH"&Stdlib0yӶ~*8CamlinternalFormatBasics0cEXy`?`@@8@@@A@@@@@B`@)ocaml.docS> The type of target integers. PaQa@@@@@@@@@h@@@A@@P@$zero \c]c@г'!tecfc@@ @@@0gffggggg@f2,@A@@@oc @-6 The target integer 0.{d|d@@@@@@@A@@#one ff@гR!tff@@ @@@0@,?*@A@@@f @X6 The target integer 1.gg@@@@@@@B@@)minus_onei  i @г}!ti i @@ @@@0@,?*@A@@@i   @7 The target integer -1.jj7@@@@@@@C@@#negl9=l9@@б@г!tl9Cl9D@@ @@@0@.A,@A@@г!tl9Hl9I@@ @@@@@@@@@@@l99 @1 Unary negation. mJJmJ`@@@@@@@&D@@%#addobfobi@б@г砐!t%obl&obm@@ @@@0'&&'''''@>S,@A@@б@г!t6obq7obr@@ @@@@@г!tCobvDobw@@ @@@@@@@@!@@@'@@$* @@@Qobb@+ Addition. ]pxx^px@@@@@@@uE@@7#subirjr@б@г6!ttrur@@ @@@0vuuvvvvv@Pe,@A@@б@гG!trr@@ @@@@@гT!trr@@ @@@@@@@@!@@@'@@$* @@@r@^. Subtraction. ss@@@@@@@F@@7#muluu@б@г!tuu@@ @@@0@Pe,@A@@б@г!tuu@@ @@@@@г!tuu@@ @@@@@@@@!@@@'@@$* @@@u@1 Multiplication. vv@@@@@@@G@@7#divxx@б@гԠ!txx@@ @@@0@Pe,@A@@б@г堐!t#x$x@@ @@@@@г!t0x1x@@ @@@@@@@@!@@@'@@$* @@@>x@ Integer division. Raise [Division_by_zero] if the second argument is zero. This division rounds the real quotient of its arguments towards zero, as specified for {!Stdlib.(/)}. JyK{w@@@@@@@bH@@7,unsigned_divV}W}@б@г#!ta}b}@@ @@@0cbbccccc@Pe,@A@@б@г4!tr}s}@@ @@@@@гA!t}}@@ @@@@@@@@!@@@'@@$* @@@}@K ` Same as {!div}, except that arguments and result are interpreted as {e unsigned} integers. ~ $ >@@@@@@@I@@7#remA @ DA @ G@б@гr!tA @ JA @ K@@ @@@0@Pe,@A@@б@г!tA @ OA @ P@@ @@@@@г!tA @ TA @ U@@ @@@@@@@@!@@@'@@$* @@@A @ @@ W Integer remainder. If [y] is not zero, the result of [Targetint.rem x y] satisfies the following properties: [Targetint.zero <= Nativeint.rem x y < Targetint.abs y] and [x = Targetint.add (Targetint.mul (Targetint.div x y) y) (Targetint.rem x y)]. If [y = 0], [Targetint.rem x y] raises [Division_by_zero]. B V VG r @@@@@@@J@@7,unsigned_remI  I  @б@г!tI  I  @@ @@@0@Pe,@A@@б@гҠ!tI  I  @@ @@@@@гߠ!tI  I  @@ @@@@@@@@!@@@'@@$* @@@+I  @鐠 ` Same as {!rem}, except that arguments and result are interpreted as {e unsigned} integers. 7J  8K  8@@@@@@@OK@@7$succCM : >DM : B@б@г!tNM : EOM : F@@ @@@0POOPPPPP@Pe,@A@@г!t]M : J^M : K@@ @@@@@@@@@@@hM : : @& F Successor. [Targetint.succ x] is [Targetint.add x Targetint.one]. tN L LuO [ @@@@@@@L@@%$predQ  Q  @б@гM!tQ  Q  @@ @@@0@>S,@A@@г\!tQ  Q  @@ @@@@@@@@@@@Q   @c H Predecessor. [Targetint.pred x] is [Targetint.sub x Targetint.one]. R  S  @@@@@@@M@@%#absU  U  @б@г!tU  U  @@ @@@0@>S,@A@@г!tU  U  @@ @@@@@@@@@@@U   @ , Return the absolute value of its argument. V  V  <@@@@@@@N@@%$sizeX > BX > F@г#intX > IX > L@@ @@@0@<Q*@A@@@ X > > @ː . The size in bits of a target native integer. Y M MY M @@@@@@@1O@@'max_int%[  &[  @г!t.[  /[  @@ @@@00//00000@,?*@A@@@8[   @ The greatest representable target integer, either 2{^31} - 1 on a 32-bit platform, or 2{^63} - 1 on a 64-bit platform. D\  E^  @@@@@@@\P@@'min_intP`  Q`  $@г!tY`  'Z`  (@@ @@@0[ZZ[[[[[@,?*@A@@@c`   @! x The smallest representable target integer, either -2{^31} on a 32-bit platform, or -2{^63} on a 64-bit platform. oa ) )pc  @@@@@@@Q@@&logand{e  |e  @б@гH!te  e  @@ @@@0@.A,@A@@б@гY!te  e  @@ @@@@@гf!te  e  @@ @@@@@@@@!@@@'@@$* @@@e  @p6 Bitwise logical and. f  f  @@@@@@@R@@7%logorh  h  @б@г!th  h  @@ @@@0@Pe,@A@@б@г!th  h  @@ @@@@@г!th  h  @@ @@@@@@@@!@@@'@@$* @@@h  @5 Bitwise logical or.  i  i @@@@@@@%S@@7&logxorkk@б@г栐!t$k%k @@ @@@0&%%&&&&&@Pe,@A@@б@г!t5k$6k%@@ @@@@@г!tBk)Ck*@@ @@@@@@@@!@@@'@@$* @@@Pk@? Bitwise logical exclusive or. \l++]l+O@@@@@@@tT@@7&lognot hnQUinQ[@б@г5!tsnQ^tnQ_@@ @@@0uttuuuuu@Pe,@A@@гD!tnQcnQd@@ @@@@@@@@@@@nQQ @K; Bitwise logical negation. oeeoe@@@@@@@U@@%*shift_left!qq@б@гr!tqq@@ @@@0@>S,@A@@б@гk#intqq@@ @@@@@г!tqq@@ @@@@@@@@!@@@'@@$* @@@q@ [Targetint.shift_left x y] shifts [x] to the left by [y] bits. The result is unspecified if [y < 0] or [y >= bitsize], where [bitsize] is [32] on a 32-bit platform and [64] on a 64-bit platform. ruZ{@@@@@@@V@@7+shift_right"w}w}@б@г!tw}w}@@ @@@0@Pe,@A@@б@г#intw}w}@@ @@@@@гߠ!tw}w}@@ @@@@@@@@!@@@'@@$* @@@+w}}@鐠 [Targetint.shift_right x y] shifts [x] to the right by [y] bits. This is an arithmetic shift: the sign bit of [x] is replicated and inserted in the vacated bits. The result is unspecified if [y < 0] or [y >= bitsize]. 7x8{K@@@@@@@OW@@73shift_right_logical#C}D}@б@г!tN}O}@@ @@@0POOPPPPP@Pe,@A@@б@г #int_}`}@@ @@@@@г.!tl}m}@@ @@@@@@@@!@@@'@@$* @@@z}@8 [Targetint.shift_right_logical x y] shifts [x] to the right by [y] bits. This is a logical shift: zeroes are inserted in the vacated bits regardless of the sign of [x]. The result is unspecified if [y < 0] or [y >= bitsize]. ~l@@@@@@@X@@7&of_int$@б@гG#int@@ @@@0@Pe,@A@@гn!t@@ @@@@@@@@@@@ @u i Convert the given integer (type [int]) to a target integer (type [t]), module the target word size. 0@@@@@@@Y@@%*of_int_exn%262@@б@г#int2C2F@@ @@@0@>S,@A@@г!t2J2K@@ @@@@@@@@@@@22 @ Convert the given integer (type [int]) to a target integer (type [t]). Raises a fatal error if the conversion is not exact. LL@@@@@@@Z@@%&to_int&  @б@г٠!t@@ @@@0@>S,@A@@гР#int&'@@ @@@@@@@@@@@1 @ Convert the given target integer (type [t]) to an integer (type [int]). The high-order bit is lost during the conversion. =>^t@@@@@@@U[@@%(of_float'IvzJv@б@г%floatTvUv@@ @@@0VUUVVVVV@>S,@A@@г%!tcvdv@@ @@@@@@@@@@@nvv @,  Convert the given floating-point number to a target integer, discarding the fractional part (truncate towards 0). The result of the conversion is undefined if, after truncation, the number is outside the range \[{!Targetint.min_int}, {!Targetint.max_int}\]. z{o@@@@@@@\@@%(to_float(@б@гS!t@@ @@@0@>S,@A@@гR%float@@ @@@@@@@@ @@@ @i > Convert the given target integer to a floating-point number. @@@@@@@]@@%(of_int32) @б@гt%int32@@ @@@ 0@>S,@A@@г!t@@ @@@ @@@@@ @@@ @ J Convert the given 32-bit integer (type [int32]) to a target integer. Sn@@@@@@@ ^@@%(to_int32* pt p|@б@г͠!t p p@@ @@@ 0        @>S,@A@@г%int32 p p@@ @@@@@@@@@@@ %pp @㐠 Convert the given target integer to a 32-bit integer (type [int32]). On 64-bit platforms, the 64-bit native integer is taken modulo 2{^32}, i.e. the top 32 bits are lost. On 32-bit platforms, the conversion is exact.  1 2\{@@@@@@@ I_@@%(of_int64+ =} >}@б@гꠐ%int64 H} I}@@ @@@0 J I I J J J J J@>S,@A@@г!t W} X}@@ @@@@@@@@@@@ b}} @ J Convert the given 64-bit integer (type [int64]) to a target integer.  n o@@@@@@@ `@@%(to_int64, z {@б@гG!t  @@ @@@0        @>S,@A@@г 6%int64  @@ @@@@@@@@@@@  @] J Convert the given target integer to a 64-bit integer (type [int64]).   ,Q@@@@@@@ a@@%)of_string- SW S`@б@г &string Sc Si@@ @@@0        @>S,@A@@г!t Sm Sn@@ @@@@@@@@@@@ SS @  Convert the given string to a target integer. The string is read in decimal (by default) or in hexadecimal, octal or binary if the string begins with [0x], [0o] or [0b] respectively. Raise [Failure "int_of_string"] if the given string is not a valid representation of an integer, or if the integer represented exceeds the range of integers representable in type [nativeint].  oo @@@@@@@ b@@%)to_string.   @б@г!t  @@ @@@0        @>S,@A@@г k&string  !@@ @@@@@@@@@@@  @א ? Return the string representation of its argument, in decimal.  %"" &"f@@@@@@@ =c@@%'compare/ 1hl 2hs@б@г!t <hu =hv@@ @@@0 > = = > > > > >@>S,@A@@б@г !t Mhz Nh{@@ @@@@@г #int Zh [h@@ @@@@@@@@!@@@'@@ $* @@@ hhh@ &  The comparison function for target integers, with the same specification as {!Stdlib.compare}. Along with the type [t], this function [compare] allows the module [Targetint] to be passed as argument to the functors {!Set.Make} and {!Map.Make}.  t ug@@@@@@@ d@@70unsigned_compare0  @б@г M!t  @@ @@@!0        @Pe,@A@@б@г ^!t  @@ @@@"@@г S#int  @@ @@@#@@@@@$!@@@'@@%$* @@@ @ u Y Same as {!compare}, except that arguments are interpreted as {e unsigned} integers.   @@@@@@@ e@@7%equal1  @б@г !t  @@ @@@&0        @Pe,@A@@б@г !t   !@@ @@@'@@г Ǡ$bool % )@@ @@@(@@@@@)!@@@'@@*$* @@@ @ Đ % The equal function for target ints.  ** *T@@@@@@@ *f@@7A($repr2B V[ V_@@8@@%Int323 @@@+@@ .bd /bt@@ Fh%Int644 @@@,@@ <uw =u@@ Ti@@A@@@@@ @VV@@@@ Wg@   Gbf Hbk@@г"%int32 Qbo#@@)0 O N N O O O O O@uQ:8@@@A@@@@@@@@@A(@@@@*@&& [uy \u~@@г(%int64 eu)@@/*@@@@,@@A@(@@0 d c c d d d d d@@A),@$repr5 q r@б@г >!t | }@@ @@@70 ~ } } ~ ~ ~ ~ ~@/hb@A@@гl$repr  @@ @@@8@@@@@9@@@  @ T 2 The concrete representation of a native integer.   @@@@@@@ j@@%%print٠  @б@г &Format)formatter  @@ @@@ ]0        @AV/@A@@б@г !t  @@ @@@ ^@@г 3$unit  @@ @@@ _@@@@@ `!@@@'@@ a$* @@@ @ ( Print a target integer to a formatter.   .@@@@@@@ k@@7@  A@  @ { f@ R =@ ) @  @  h@ T @ @@m4@ @@q@]6@" @@@n@Z!@ @@L@8@@w@c<@(@@@wP@<@@@d@P)@@@{B@-'A@@f@@0 I H H I I I I I@h@A@ H************************************************************************ RA@@ SA@L@ H  XBMM YBM@ H OCaml  ^C _C@ H  dD eD3@ H Xavier Leroy, projet Cristal, INRIA Rocquencourt  jE44 kE4@ H Nicolas Ojeda Bar, LexiFi  pF qF@ H  vG wG@ H Copyright 2016 Institut National de Recherche en Informatique et  |H }Hg@ H en Automatique.  Ihh Ih@ H  J J@ H All rights reserved. This file is distributed under the terms of  K KN@ H the GNU Lesser General Public License version 2.1, with the  LOO LO@ H special exception on linking described in the file LICENSE.  M M@ H  N N5@ H************************************************************************ O66 O6@ * Target processor-native integers. This module provides operations on the type of signed 32-bit integers (on 32-bit target platforms) or signed 64-bit integers (on 64-bit target platforms). This integer type has exactly the same width as that of a pointer type in the C compiler. All arithmetic operations over are taken modulo 2{^32} or 2{^64} depending on the word size of the target architecture. {b Warning:} this module is unstable and part of {{!Compiler_libs}compiler-libs}.  ?* The type of target integers.  _7* The target integer 0. 77* The target integer 1. 8* The target integer -1. 砠2* Unary negation.  ,* Addition.  a/* Subtraction.  2* Multiplication.  ɠ * Integer division. Raise [Division_by_zero] if the second argument is zero. This division rounds the real quotient of its arguments towards zero, as specified for {!Stdlib.(/)}.  } a* Same as {!div}, except that arguments and result are interpreted as {e unsigned} integers.  1 X* Integer remainder. If [y] is not zero, the result of [Targetint.rem x y] satisfies the following properties: [Targetint.zero <= Nativeint.rem x y < Targetint.abs y] and [x = Targetint.add (Targetint.mul (Targetint.div x y) y) (Targetint.rem x y)]. If [y = 0], [Targetint.rem x y] raises [Division_by_zero]. 堠 a* Same as {!rem}, except that arguments and result are interpreted as {e unsigned} integers.  G* Successor. [Targetint.succ x] is [Targetint.add x Targetint.one]. _ I* Predecessor. [Targetint.pred x] is [Targetint.sub x Targetint.one]. % -* Return the absolute value of its argument. 렠 /* The size in bits of a target native integer. à * The greatest representable target integer, either 2{^31} - 1 on a 32-bit platform, or 2{^63} - 1 on a 64-bit platform.  y* The smallest representable target integer, either -2{^31} on a 32-bit platform, or -2{^63} on a 64-bit platform. s7* Bitwise logical and. '6* Bitwise logical or. ۠ * Bitwise logical exclusive or. <* Bitwise logical negation. U * [Targetint.shift_left x y] shifts [x] to the left by [y] bits. The result is unspecified if [y < 0] or [y >= bitsize], where [bitsize] is [32] on a 32-bit platform and [64] on a 64-bit platform.  * [Targetint.shift_right x y] shifts [x] to the right by [y] bits. This is an arithmetic shift: the sign bit of [x] is replicated and inserted in the vacated bits. The result is unspecified if [y < 0] or [y >= bitsize].  * [Targetint.shift_right_logical x y] shifts [x] to the right by [y] bits. This is a logical shift: zeroes are inserted in the vacated bits regardless of the sign of [x]. The result is unspecified if [y < 0] or [y >= bitsize]. q j* Convert the given integer (type [int]) to a target integer (type [t]), module the target word size. 7 * Convert the given integer (type [int]) to a target integer (type [t]). Raises a fatal error if the conversion is not exact.  * Convert the given target integer (type [t]) to an integer (type [int]). The high-order bit is lost during the conversion. à * Convert the given floating-point number to a target integer, discarding the fractional part (truncate towards 0). The result of the conversion is undefined if, after truncation, the number is outside the range \[{!Targetint.min_int}, {!Targetint.max_int}\].  ?* Convert the given target integer to a floating-point number. O K* Convert the given 32-bit integer (type [int32]) to a target integer.  * Convert the given target integer to a 32-bit integer (type [int32]). On 64-bit platforms, the 64-bit native integer is taken modulo 2{^32}, i.e. the top 32 bits are lost. On 32-bit platforms, the conversion is exact. ۠ K* Convert the given 64-bit integer (type [int64]) to a target integer.  K* Convert the given target integer to a 64-bit integer (type [int64]). g * Convert the given string to a target integer. The string is read in decimal (by default) or in hexadecimal, octal or binary if the string begins with [0x], [0o] or [0b] respectively. Raise [Failure "int_of_string"] if the given string is not a valid representation of an integer, or if the integer represented exceeds the range of integers representable in type [nativeint]. - @* Return the string representation of its argument, in decimal.  * The comparison function for target integers, with the same specification as {!Stdlib.compare}. Along with the type [t], this function [compare] allows the module [Targetint] to be passed as argument to the functors {!Set.Make} and {!Map.Make}.  Z* Same as {!compare}, except that arguments are interpreted as {e unsigned} integers. [ &* The equal function for target ints.  3* The concrete representation of a native integer.  )* Print a target integer to a formatter. 3@-./boot/ocamlc"-g)-nostdlib"-I$boot*-use-prims2runtime/primitives0-strict-sequence*-principal(-absname"-w>+a-4-9-40-41-42-44-45-48-66-70+-warn-error"+a*-bin-annot,-safe-string/-strict-formats"-I%utils"-I'parsing"-I&typing"-I(bytecomp"-I,file_formats"-I&lambda"-I*middle_end"-I2middle_end/closure"-I2middle_end/flambda"-I=middle_end/flambda/base_types"-I'asmcomp"-I&driver"-I(toplevel"-c R S 3/home/barsac/ci/builds/workspace/step-by-step-build - @0];/.Hס\0 d c c d d d d d@ b@@8CamlinternalFormatBasics0cEXy=@@@@ : 9@@TS@@ { z@@̰  @ < ;@@32  @|~@@P@