···11+v17.0.0 2025-09-11 Zagreb
22+-------------------------
33+44+- Support for Unicode 17.0.0
55+66+v16.0.0 2024-09-11 Zagreb
77+-------------------------
88+99+- Support for Unicode 16.0.0
1010+1111+v15.1.0 2023-09-15 Zagreb
1212+-------------------------
1313+1414+- Support for Unicode 15.1.0
1515+1616+v15.0.0 2022-09-15 Zagreb
1717+-------------------------
1818+1919+- Support for Unicode 15.0.0
2020+2121+v14.0.0 2021-09-17 Zagreb
2222+-------------------------
2323+2424+- Support for Unicode 14.0.0
2525+2626+v13.0.0 2020-03-10 La Forclaz (VS)
2727+----------------------------------
2828+2929+- Support for Unicode 13.0.0
3030+3131+v12.0.0 2019-03-07 La Forclaz (VS)
3232+----------------------------------
3333+3434+- Support for Unicode 12.0.0
3535+3636+v11.0.0 2018-06-06 Lausanne
3737+---------------------------
3838+3939+- Support for Unicode 11.0.0
4040+4141+v10.0.0 2017-06-20 Cambridge (UK)
4242+---------------------------------
4343+4444+- Support for Unicode 10.0.0
4545+4646+v4.0.0 2016-06-26 Cambridge (UK)
4747+--------------------------------
4848+4949+- Updated for Unicode 9.0.0
5050+- Build depend on topkg.
5151+- Relicensed from BSD3 to ISC.
5252+5353+v3.0.0 2015-06-17 Cambridge (UK)
5454+--------------------------------
5555+5656+- Updated for Unicode 8.0.0
5757+5858+v2.0.0 2014-06-16 Cambridge (UK)
5959+--------------------------------
6060+6161+- Updated for Unicode 7.0.0
6262+6363+v1.0.0 2013-10-01 Lausanne
6464+--------------------------
6565+6666+- Updated for Unicode 6.3.0.
6767+- OPAM friendly workflow and drop OASIS support.
6868+6969+v0.9.2 2013-01-04 La Forclaz (VS)
7070+---------------------------------
7171+7272+- Updated for Unicode 6.2.0.
7373+7474+v0.9.1 2013-01-04 La Forclaz (VS)
7575+---------------------------------
7676+7777+- Fix Uucd.is_scalar_value always returning false.
7878+7979+v0.9.0 2012-09-07 Lausanne
8080+--------------------------
8181+8282+First release.
+23
vendor/opam/uucd/DEVEL.md
···11+# New Unicode release
22+33+Bump the Unicode release number at the top of the `B0.ml` file and in
44+`pkg/pkg.ml`. Verify that everything is as expected with:
55+66+ b0 -- unicode-version
77+88+Download the latest xml unicode database to the `test/ucd.xml` file
99+which is ignored by git. If you have `curl` and `unzip` in your `PATH`
1010+you can simply issue:
1111+1212+ b0 -- download-ucdxml
1313+1414+Then you should run
1515+1616+ b0 test
1717+1818+this will likely fail with a parse error. Adjust the parser and
1919+datatypes with the help of:
2020+2121+ <https://www.unicode.org/reports/tr42/proposed.html>
2222+2323+
+13
vendor/opam/uucd/LICENSE.md
···11+Copyright (c) 2012 The uucd programmers
22+33+Permission to use, copy, modify, and/or distribute this software for any
44+purpose with or without fee is hereby granted, provided that the above
55+copyright notice and this permission notice appear in all copies.
66+77+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
88+WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
99+MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
1010+ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
1111+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
1212+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
1313+OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+32
vendor/opam/uucd/README.md
···11+Uucd — Unicode character database decoder for OCaml
22+===================================================
33+44+Uucd is an OCaml module to decode the data of the [Unicode character
55+database][1] from its XML [representation][2]. It provides high-level
66+(but not necessarily efficient) access to the data so that efficient
77+representations can be extracted.
88+99+Uucd is made of a single module, depends on [Xmlm][xmlm] and is distributed
1010+under the ISC license.
1111+1212+[1]: http://www.unicode.org/reports/tr44/
1313+[2]: http://www.unicode.org/reports/tr42/
1414+[xmlm]: http://erratique.ch/software/xmlm
1515+1616+Home page: <http://erratique.ch/software/uucd>
1717+1818+## Installation
1919+2020+Uucd can be installed with `opam`:
2121+2222+ opam install uucd
2323+2424+If you don't use `opam` consult the [`opam`](opam) file for build
2525+instructions and a complete specification of the dependencies.
2626+2727+## Documentation
2828+2929+The documentation and API reference can be consulted [online][doc]
3030+or via `odig doc uucd`.
3131+3232+[doc]: http://erratique.ch/software/uucd/doc/
+6
vendor/opam/uucd/_tags
···11+<**/*.{ml,mli}> : bin_annot, safe_string
22+<src> : include
33+<test> : include
44+<src/uucd.{mli,ml}> : package(xmlm)
55+<test/test.{byte,native}> : package(xmlm)
66+<_b0> : -traverse
···11+{0 Uucd {%html: <span class="version">%%VERSION%%</span>%}}
22+33+Uucd is an OCaml module to decode the data of the Unicode character
44+database from its XML representation.
55+66+{1:uucd Library [uucd]}
77+88+{!modules:
99+Uucd
1010+}
+34
vendor/opam/uucd/opam
···11+opam-version: "2.0"
22+name: "uucd"
33+synopsis: "Unicode character database decoder for OCaml"
44+description: """\
55+Uucd is an OCaml module to decode the data of the [Unicode character
66+database][1] from its XML [representation][2]. It provides high-level
77+(but not necessarily efficient) access to the data so that efficient
88+representations can be extracted.
99+1010+Uucd is made of a single module, depends on [Xmlm][xmlm] and is distributed
1111+under the ISC license.
1212+1313+[1]: http://www.unicode.org/reports/tr44/
1414+[2]: http://www.unicode.org/reports/tr42/
1515+[xmlm]: http://erratique.ch/software/xmlm
1616+1717+Home page: <http://erratique.ch/software/uucd>"""
1818+maintainer: "Daniel Bünzli <daniel.buenzl i@erratique.ch>"
1919+authors: "The uucd programmers"
2020+license: "ISC"
2121+tags: ["unicode" "database" "decoder" "org:erratique"]
2222+homepage: "https://erratique.ch/software/uucd"
2323+doc: "https://erratique.ch/software/uucd/doc/Uucd"
2424+bug-reports: "https://github.com/dbuenzli/uucd/issues"
2525+depends: [
2626+ "ocaml" {>= "4.08.0"}
2727+ "ocamlfind" {build}
2828+ "ocamlbuild" {build}
2929+ "topkg" {build & >= "1.1.0"}
3030+ "xmlm"
3131+]
3232+build: ["ocaml" "pkg/pkg.ml" "build" "--dev-pkg" "%{dev}%"]
3333+dev-repo: "git+https://erratique.ch/repos/uucd.git"
3434+x-maintenance-intent: ["(latest)"]
···11+(*---------------------------------------------------------------------------
22+ Copyright (c) 2012 The uucd programmers. All rights reserved.
33+ SPDX-License-Identifier: CC0-1.0
44+ ---------------------------------------------------------------------------*)
55+66+let ucd_or_die inf =
77+ try
88+ let ic = if inf = "-" then stdin else open_in inf in
99+ let d = Uucd.decoder (`Channel ic) in
1010+ match Uucd.decode d with
1111+ | `Ok db -> db
1212+ | `Error e ->
1313+ let (l0, c0), (l1, c1) = Uucd.decoded_range d in
1414+ Printf.eprintf "%s:%d.%d-%d.%d: %s\n%!" inf l0 c0 l1 c1 e;
1515+ exit 1
1616+ with Sys_error e -> Printf.eprintf "%s\n%!" e; exit 1
1717+1818+let ucd_from_marshaled : string -> Uucd.t =
1919+ fun inf -> Marshal.from_channel (open_in inf)
2020+2121+let main () =
2222+ let usage = "test [ucd.xml]" in
2323+ let inf = ref None in
2424+ let anon_fun file = match !inf with
2525+ | Some _ -> raise (Arg.Bad ("Don't now what to do with " ^ file))
2626+ | None -> inf := Some file
2727+ in
2828+ Arg.parse [] anon_fun usage;
2929+ let inf = Option.value ~default:"-" !inf in
3030+ Marshal.to_channel stdout (ucd_or_die inf) []
3131+3232+let () = if !Sys.interactive then () else main ()
+30
vendor/opam/uucd/test/test_uucd.ml
···11+(*---------------------------------------------------------------------------
22+ Copyright (c) 2024 The uucd programmers. All rights reserved.
33+ SPDX-License-Identifier: ISC
44+ ---------------------------------------------------------------------------*)
55+66+open B0_std
77+open B0_testing
88+99+let test_decode =
1010+ Test.test "Uucd.decode" @@ fun file ->
1111+ Test.noraise ~__POS__ @@ fun () ->
1212+ let cwd = Os.Dir.cwd () |> Result.error_to_failure in
1313+ let inf = Fpath.(cwd // v "test/ucd.xml") in
1414+ let inf = Fpath.to_string inf in
1515+ try
1616+ In_channel.with_open_bin inf @@ fun ic ->
1717+ let d = Uucd.decoder (`Channel ic) in
1818+ match Uucd.decode d with
1919+ | `Ok db ->
2020+ let props = Uucd.Cpmap.find 0x0020 db.repertoire in
2121+ Test.(option T.any) (Uucd.find props Uucd.general_category) (Some `Zs)
2222+ ~__POS__
2323+ | `Error e ->
2424+ let (l0, c0), (l1, c1) = Uucd.decoded_range d in
2525+ Test.failstop ~__POS__ "%s:%d.%d-%d.%d: %s\n%!" inf l0 c0 l1 c1 e
2626+ with
2727+ | Sys_error e -> Test.failstop "%s" e ~__POS__
2828+2929+let main () = Test.main @@ fun () -> Test.autorun ()
3030+let () = if !Sys.interactive then () else exit (main ())