package js_of_ocaml-compiler
Compiler from OCaml bytecode to JavaScript
Install
dune-project
Dependency
Authors
Maintainers
Sources
js_of_ocaml-5.8.2.tbz
sha256=7220194bd2f9b14d958153a5a206750359d7b49de12fe88d7450d385cecbf04a
sha512=1a282bf88eba8489747f51e228385be8d926e5c57efe33ad6f324c30fbe4100e99970192284172b5cdef92922ca613968bf116eb706194a879899baddd0a47f4
doc/src/js_of_ocaml-compiler/magic_number.ml.html
Source file magic_number.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
(* Js_of_ocaml compiler * http://www.ocsigen.org/js_of_ocaml/ * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, with linking exception; * either version 2.1 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *) open! Stdlib type t = string * int exception Bad_magic_number of string exception Bad_magic_version of t let size = 12 let kind_of_string = function | "Caml1999X" -> "exe" | "Caml1999I" -> "cmi" | "Caml1999O" -> "cmo" | "Caml1999A" -> "cma" | "Caml1999Y" -> "cmx" | "Caml1999Z" -> "cmxa" | "Caml2007D" -> "cmxs" | "Caml2012T" -> "cmt" | "Caml1999M" -> "impl" | "Caml1999N" -> "intf" | _ -> raise Not_found let of_string s = try if String.length s <> size then raise Not_found; let kind = String.sub s ~pos:0 ~len:9 in let v = String.sub s ~pos:9 ~len:3 in let _ = kind_of_string kind in kind, int_of_string v with _ -> raise (Bad_magic_number s) let kind (s, _) = match kind_of_string s with | "exe" -> `Exe | "cmo" -> `Cmo | "cma" -> `Cma | other -> `Other other let to_string (k, v) = Printf.sprintf "%s%03d" k v let compare (p1, n1) (p2, n2) = match String.compare p1 p2 with | 0 -> compare n1 n2 | n -> n let equal a b = compare a b = 0 let v = let current = Ocaml_version.current in match current with | 4 :: 08 :: _ -> 25 | 4 :: 09 :: _ -> 26 | 4 :: 10 :: _ -> 27 | 4 :: 11 :: _ -> 28 | 4 :: 12 :: _ -> 29 | 4 :: 13 :: _ -> 30 | 4 :: 14 :: _ -> 31 | 5 :: 00 :: _ -> 32 | 5 :: 01 :: _ -> 33 | 5 :: 02 :: _ -> 34 | _ -> if Ocaml_version.compare current [ 4; 8 ] < 0 then failwith "OCaml version unsupported. Upgrade to OCaml 4.08 or newer." else ( assert (Ocaml_version.compare current [ 5; 3 ] >= 0); failwith "OCaml version unsupported. Upgrade js_of_ocaml.") let current_exe = "Caml1999X", v let current_cmo = "Caml1999O", v let current_cma = "Caml1999A", v let current = function | `Exe -> current_exe | `Cmo -> current_cmo | `Cma -> current_cma
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>