package ocamlmig
OCaml source code rewriting tool
Install
Dune Dependency
Authors
Maintainers
Sources
ocamlmig-5.3-20250429.tbz
sha256=51e13b4a6bbc86eb2470a5a33087714a8c0895b05d912e1706e7a95c6b1b11d3
sha512=d6b5b2b0af6b5976dac08c3c821faa1a5690ce56485cc29ac427046de2a4c446c6212bbf4ef5821503d57163634ec5ad78b3d4b452359096a23a6f08b5e9c9e1
doc/src/ocamlmig.stdlib_to_stdlib/stdlib_to_stdlib.ml.html
Source file stdlib_to_stdlib.ml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140
(** Migration attributes to move from Stdlib names to other preferred Stdlib names, like using [Float.acos] instead of [acos]. This is intended to be used this way: {v ocamlmig migrate -extra-migration ocamlmig.stdlib_to_stdlib v} *) (* let _ = [ ( == ); phys_equal ] [@@migrate] let _ = [ ( != ); (fun a b -> not (phys_equal a b)) ] [@@migrate] *) let _ = [ succ; Int.succ ] [@migrate] let _ = [ pred; Int.pred ] [@migrate] let _ = [ abs; Int.abs ] [@migrate] let _ = [ max_int; Int.max_int ] [@migrate] let _ = [ min_int; Int.min_int ] [@migrate] let _ = [ exp; Float.exp ] [@migrate] let _ = [ expm1; Float.expm1 ] [@migrate] let _ = [ acos; Float.acos ] [@migrate] let _ = [ asin; Float.asin ] [@migrate] let _ = [ atan; Float.atan ] [@migrate] let _ = [ atan2; Float.atan2 ] [@migrate] let _ = [ hypot; Float.hypot ] [@migrate] let _ = [ cos; Float.cos ] [@migrate] let _ = [ cosh; Float.cosh ] [@migrate] let _ = [ acosh; Float.acosh ] [@migrate] let _ = [ log; Float.log ] [@migrate] let _ = [ log10; Float.log10 ] [@migrate] let _ = [ log1p; Float.log1p ] [@migrate] let _ = [ sin; Float.sin ] [@migrate] let _ = [ sinh; Float.sinh ] [@migrate] let _ = [ asinh; Float.asinh ] [@migrate] let _ = [ sqrt; Float.sqrt ] [@migrate] let _ = [ tan; Float.tan ] [@migrate] let _ = [ tanh; Float.tanh ] [@migrate] let _ = [ atanh; Float.atanh ] [@migrate] let _ = [ ceil; Float.ceil ] [@migrate] let _ = [ floor; Float.floor ] [@migrate] let _ = [ abs_float; Float.abs ] [@migrate] let _ = [ copysign; Float.copy_sign ] [@migrate] let _ = [ mod_float; Float.rem ] [@migrate] let _ = [ frexp; Float.frexp ] [@migrate] let _ = [ ldexp; Float.ldexp ] [@migrate] let _ = [ modf; Float.modf ] [@migrate] let _ = [ float; Float.of_int ] [@migrate] let _ = [ float_of_int; Float.of_int ] [@migrate] let _ = [ truncate; Float.to_int ] [@migrate] let _ = [ int_of_float; Float.to_int ] [@migrate] let _ = [ infinity; Float.infinity ] [@migrate] let _ = [ neg_infinity; Float.neg_infinity ] [@migrate] let _ = [ nan; Float.nan ] [@migrate] let _ = [ max_float; Float.max_float ] [@migrate] let _ = [ min_float; Float.min_float ] [@migrate] let _ = [ epsilon_float; Float.epsilon ] [@migrate] let _ = [ classify_float; Float.classify_float ] [@migrate] let _ = [ int_of_char; Char.code ] [@migrate] let _ = [ char_of_int; Char.chr ] [@migrate] let _ = [ string_of_float; Float.to_string ] [@migrate] let _ = [ float_of_string; Float.of_string ] [@migrate] let _ = [ float_of_string_opt; Float.of_string_opt ] [@migrate] (* We could migrate the following values, but this is not clearly better. let _ = [ stdin; In_channel.stdin ] [@migrate] let _ = [ stdout; Out_channel.stdout ] [@migrate] let _ = [ stderr; Out_channel.stderr ] [@migrate] *) let _ = [ print_char; (fun c -> Out_channel.output_char stdout c) ] [@migrate] (* let _ = [ print_string; (fun c -> Out_channel.output_string stdout c) ] [@migrate] *) let _ = [ print_bytes; (fun c -> Out_channel.output_bytes stdout c) ] [@migrate] let _ = [ print_int; (fun n -> Out_channel.output_string stdout (Int.to_string n)) ] [@migrate] let _ = [ print_float; (fun f -> Out_channel.output_string stdout (Float.to_string f)) ] [@migrate] (* no equivalent of print_endline/print_newline in Out_channel, weirdly *) let _ = [ prerr_char; (fun c -> Out_channel.output_char stderr c) ] [@migrate] (* let _ = [ prerr_string; (fun c -> Out_channel.output_string stderr c) ] [@migrate] *) let _ = [ prerr_bytes; (fun c -> Out_channel.output_bytes stderr c) ] [@migrate] let _ = [ prerr_int; (fun n -> Out_channel.output_string stderr (Int.to_string n)) ] [@migrate] let _ = [ prerr_float; (fun f -> Out_channel.output_string stderr (Float.to_string f)) ] [@migrate] (* no equivalent of prerr_endline/prerr_newline in Out_channel *) (* read_{line,int,int_opt,float,float_opt} seems very specific functions. Not sure if it is of any help of migrate read_float to Float.of_string (read_line ()) *) let _ = [ open_out; Out_channel.open_text ] [@migrate] let _ = [ open_out_bin; Out_channel.open_bin ] [@migrate] let _ = [ open_out_gen; Out_channel.open_gen ] [@migrate] let _ = [ flush; Out_channel.flush ] [@migrate] let _ = [ flush_all; Out_channel.flush_all ] [@migrate] let _ = [ output_char; Out_channel.output_char ] [@migrate] let _ = [ output_string; Out_channel.output_string ] [@migrate] let _ = [ output_bytes; Out_channel.output_bytes ] [@migrate] let _ = [ output; Out_channel.output ] [@migrate] let _ = [ output_substring; Out_channel.output_substring ] [@migrate] let _ = [ output_value; (fun ch a -> Marshal.to_channel ch a []) ] [@migrate] (* We could map seek_out to (fun ch n -> Out_channel.seek ch (Int64.of_int n)), and similarly for the other functions manipulating file offsets, but: - seek_out works perfectly fine on 4+GB files on 64bit - 64bit are required in native code with ocaml 5 - using Int64 makes code heavier and slower So we'd be making code less nice purely so bytecode can work. Meh. It won't matter in browsers either. It might matter if you had wasm outside of the browser. *) let _ = [ LargeFile.seek_out; Out_channel.seek ] [@migrate] let _ = [ LargeFile.pos_out; Out_channel.pos ] [@migrate] let _ = [ LargeFile.out_channel_length; Out_channel.length ] [@migrate] let _ = [ close_out; Out_channel.close ] [@migrate] let _ = [ close_out_noerr; Out_channel.close_noerr ] [@migrate] let _ = [ set_binary_mode_out; Out_channel.set_binary_mode ] [@migrate] let _ = [ open_in_bin; In_channel.open_bin ] [@migrate] let _ = [ open_in; In_channel.open_text ] [@migrate] let _ = [ open_in_gen; In_channel.open_gen ] [@migrate] let _ = [ input; In_channel.input ] [@migrate] let _ = [ input_value; Marshal.from_channel ] [@migrate] let _ = [ LargeFile.seek_in; In_channel.seek ] [@migrate] let _ = [ LargeFile.pos_in; In_channel.pos ] [@migrate] let _ = [ LargeFile.in_channel_length; In_channel.length ] [@migrate] let _ = [ close_in; In_channel.close ] [@migrate] let _ = [ close_in_noerr; In_channel.close_noerr ] [@migrate] let _ = [ set_binary_mode_in; In_channel.set_binary_mode ] [@migrate]
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>