├── .ci ├── .gitattributes ├── create-docs.yml ├── esy-bench.yml ├── esy-build-steps.yml ├── esy-check-hygiene.yml ├── format.sh ├── publish-build-cache.yml ├── publish-release.yml ├── restore-build-cache.yml └── use-node.yml ├── .gitattributes ├── .github ├── FUNDING.yml └── ISSUE_TEMPLATE │ ├── bug_report.md │ └── feature_request.md ├── .gitignore ├── CODE_OF_CONDUCT.md ├── LICENSE ├── README.md ├── Revery.opam ├── ReveryBench.opam ├── ReveryExampleJs.opam ├── ReveryExamples.opam ├── ReveryTest.opam ├── ThirdPartyLicenses.txt ├── assets ├── logo.png ├── onivim-logo.png ├── reason-logo.png ├── revery.svg ├── screenshot.png └── uv.png ├── azure-pipelines.yml ├── bench.esy.lock ├── .gitattributes ├── .gitignore ├── index.json ├── opam │ ├── astring.0.8.5 │ │ └── opam │ ├── base-bigarray.base │ │ └── opam │ ├── base-bytes.base │ │ └── opam │ ├── base-threads.base │ │ └── opam │ ├── base-unix.base │ │ └── opam │ ├── base.v0.14.1 │ │ └── opam │ ├── biniou.1.2.1 │ │ └── opam │ ├── bos.0.2.0 │ │ └── opam │ ├── camomile.1.0.2 │ │ └── opam │ ├── charInfo_width.1.1.0 │ │ └── opam │ ├── conf-pkg-config.2 │ │ └── opam │ ├── cppo.1.6.7 │ │ └── opam │ ├── csexp.1.5.1 │ │ └── opam │ ├── ctypes.0.15.1 │ │ └── opam │ ├── dot-merlin-reader.4.1 │ │ └── opam │ ├── dune-build-info.2.8.5 │ │ └── opam │ ├── dune-configurator.2.8.5 │ │ └── opam │ ├── dune.2.8.5 │ │ └── opam │ ├── easy-format.1.3.2 │ │ └── opam │ ├── fix.20201120 │ │ └── opam │ ├── fmt.0.8.9 │ │ └── opam │ ├── fpath.0.7.3 │ │ └── opam │ ├── integers.0.4.0 │ │ └── opam │ ├── junit.2.0.2 │ │ └── opam │ ├── logs.0.7.0 │ │ └── opam │ ├── lwt.5.4.1 │ │ └── opam │ ├── lwt_ppx.2.0.1 │ │ └── opam │ ├── markup.0.8.2 │ │ └── opam │ ├── menhir.20210419 │ │ └── opam │ ├── menhirLib.20210419 │ │ └── opam │ ├── menhirSdk.20210419 │ │ └── opam │ ├── merlin-extend.0.6 │ │ └── opam │ ├── mmap.1.1.0 │ │ └── opam │ ├── ocaml-compiler-libs.v0.12.3 │ │ └── opam │ ├── ocaml-lsp-server.1.6.1 │ │ └── opam │ ├── ocaml-migrate-parsetree.1.8.0 │ │ └── opam │ ├── ocamlbuild.0.14.0 │ │ └── opam │ ├── ocamlfind.1.9.1 │ │ └── opam │ ├── ocplib-endian.1.1 │ │ └── opam │ ├── pp.1.1.2 │ │ └── opam │ ├── ppx_derivers.1.2.1 │ │ └── opam │ ├── ppx_deriving.4.5 │ │ └── opam │ ├── ppx_optcomp.v0.14.0 │ │ └── opam │ ├── ppx_tools.6.3 │ │ └── opam │ ├── ppx_tools_versioned.5.4.0 │ │ └── opam │ ├── ppx_yojson_conv_lib.v0.14.0 │ │ └── opam │ ├── ppxfind.1.4 │ │ └── opam │ ├── ppxlib.0.15.0 │ │ └── opam │ ├── printbox.0.5 │ │ └── opam │ ├── psq.0.2.0 │ │ └── opam │ ├── ptime.0.8.5 │ │ └── opam │ ├── re.1.9.0 │ │ └── opam │ ├── reason.3.7.0 │ │ └── opam │ ├── result.1.5 │ │ └── opam │ ├── rresult.0.6.0 │ │ └── opam │ ├── seq.base │ │ ├── files │ │ │ ├── META.seq │ │ │ └── seq.install │ │ └── opam │ ├── sexplib0.v0.14.0 │ │ └── opam │ ├── stdio.v0.14.0 │ │ └── opam │ ├── stdlib-shims.0.3.0 │ │ └── opam │ ├── topkg.1.0.3 │ │ └── opam │ ├── tyxml.4.5.0 │ │ └── opam │ ├── uchar.0.0.2 │ │ └── opam │ ├── uucp.13.0.0 │ │ └── opam │ ├── uutf.1.0.2 │ │ └── opam │ └── yojson.1.7.0 │ │ └── opam └── overrides │ ├── opam__s__conf_pkg_config_opam__c__2_opam_override │ └── package.json │ ├── opam__s__ctypes_opam__c__0.15.1_opam_override │ └── package.json │ ├── opam__s__ocamlbuild_opam__c__0.14.0_opam_override │ ├── files │ │ └── ocamlbuild-0.14.0.patch │ └── package.json │ └── opam__s__ocamlfind_opam__c__1.9.1_opam_override │ ├── files │ └── findlib-1.9.1.patch │ └── package.json ├── bench.json ├── bench ├── exe │ ├── Bench.re │ ├── TestFont.ttf │ └── dune └── lib │ ├── BenchFramework.re │ ├── DrawBench.re │ ├── LayoutBench.re │ ├── NodeUtility.re │ ├── PaintBench.re │ ├── RecalculateBench.re │ ├── SurfaceUtility.re │ ├── ViewNodeBench.re │ └── dune ├── doc.esy.lock ├── .gitattributes ├── .gitignore ├── index.json ├── opam │ ├── astring.0.8.5 │ │ └── opam │ ├── base-bigarray.base │ │ └── opam │ ├── base-bytes.base │ │ └── opam │ ├── base-threads.base │ │ └── opam │ ├── base-unix.base │ │ └── opam │ ├── base.v0.14.1 │ │ └── opam │ ├── biniou.1.2.1 │ │ └── opam │ ├── bos.0.2.0 │ │ └── opam │ ├── camomile.1.0.2 │ │ └── opam │ ├── charInfo_width.1.1.0 │ │ └── opam │ ├── cmdliner.1.0.4 │ │ └── opam │ ├── conf-pkg-config.2 │ │ └── opam │ ├── cppo.1.6.7 │ │ └── opam │ ├── csexp.1.5.1 │ │ └── opam │ ├── ctypes.0.15.1 │ │ └── opam │ ├── dot-merlin-reader.4.1 │ │ └── opam │ ├── dune-build-info.2.8.5 │ │ └── opam │ ├── dune-configurator.2.8.5 │ │ └── opam │ ├── dune.2.8.5 │ │ └── opam │ ├── easy-format.1.3.2 │ │ └── opam │ ├── fix.20201120 │ │ └── opam │ ├── fmt.0.8.9 │ │ └── opam │ ├── fpath.0.7.3 │ │ └── opam │ ├── integers.0.4.0 │ │ └── opam │ ├── junit.2.0.2 │ │ └── opam │ ├── logs.0.7.0 │ │ └── opam │ ├── lwt.5.4.1 │ │ └── opam │ ├── lwt_ppx.2.0.1 │ │ └── opam │ ├── markup.0.8.2 │ │ └── opam │ ├── menhir.20210419 │ │ └── opam │ ├── menhirLib.20210419 │ │ └── opam │ ├── menhirSdk.20210419 │ │ └── opam │ ├── merlin-extend.0.6 │ │ └── opam │ ├── mmap.1.1.0 │ │ └── opam │ ├── ocaml-compiler-libs.v0.12.3 │ │ └── opam │ ├── ocaml-lsp-server.1.6.1 │ │ └── opam │ ├── ocaml-migrate-parsetree.1.8.0 │ │ └── opam │ ├── ocamlbuild.0.14.0 │ │ └── opam │ ├── ocamlfind.1.9.1 │ │ └── opam │ ├── ocplib-endian.1.1 │ │ └── opam │ ├── odoc.1.5.2 │ │ └── opam │ ├── pp.1.1.2 │ │ └── opam │ ├── ppx_derivers.1.2.1 │ │ └── opam │ ├── ppx_deriving.4.5 │ │ └── opam │ ├── ppx_optcomp.v0.14.0 │ │ └── opam │ ├── ppx_tools.6.3 │ │ └── opam │ ├── ppx_tools_versioned.5.4.0 │ │ └── opam │ ├── ppx_yojson_conv_lib.v0.14.0 │ │ └── opam │ ├── ppxfind.1.4 │ │ └── opam │ ├── ppxlib.0.15.0 │ │ └── opam │ ├── printbox.0.5 │ │ └── opam │ ├── psq.0.2.0 │ │ └── opam │ ├── ptime.0.8.5 │ │ └── opam │ ├── re.1.9.0 │ │ └── opam │ ├── reason.3.7.0 │ │ └── opam │ ├── result.1.5 │ │ └── opam │ ├── rresult.0.6.0 │ │ └── opam │ ├── seq.base │ │ ├── files │ │ │ ├── META.seq │ │ │ └── seq.install │ │ └── opam │ ├── sexplib0.v0.14.0 │ │ └── opam │ ├── stdio.v0.14.0 │ │ └── opam │ ├── stdlib-shims.0.3.0 │ │ └── opam │ ├── topkg.1.0.3 │ │ └── opam │ ├── tyxml.4.5.0 │ │ └── opam │ ├── uchar.0.0.2 │ │ └── opam │ ├── uucp.13.0.0 │ │ └── opam │ ├── uutf.1.0.2 │ │ └── opam │ └── yojson.1.7.0 │ │ └── opam └── overrides │ ├── opam__s__conf_pkg_config_opam__c__2_opam_override │ └── package.json │ ├── opam__s__ctypes_opam__c__0.15.1_opam_override │ └── package.json │ ├── opam__s__ocamlbuild_opam__c__0.14.0_opam_override │ ├── files │ │ └── ocamlbuild-0.14.0.patch │ └── package.json │ └── opam__s__ocamlfind_opam__c__1.9.1_opam_override │ ├── files │ └── findlib-1.9.1.patch │ └── package.json ├── doc.json ├── dune ├── dune-project ├── dune-workspace ├── esy.lock ├── .gitattributes ├── .gitignore ├── index.json ├── opam │ ├── astring.0.8.5 │ │ └── opam │ ├── base-bigarray.base │ │ └── opam │ ├── base-bytes.base │ │ └── opam │ ├── base-threads.base │ │ └── opam │ ├── base-unix.base │ │ └── opam │ ├── base.v0.14.1 │ │ └── opam │ ├── biniou.1.2.1 │ │ └── opam │ ├── bos.0.2.0 │ │ └── opam │ ├── camomile.1.0.2 │ │ └── opam │ ├── charInfo_width.1.1.0 │ │ └── opam │ ├── conf-pkg-config.2 │ │ └── opam │ ├── cppo.1.6.7 │ │ └── opam │ ├── csexp.1.5.1 │ │ └── opam │ ├── ctypes.0.15.1 │ │ └── opam │ ├── dot-merlin-reader.4.1 │ │ └── opam │ ├── dune-build-info.2.8.5 │ │ └── opam │ ├── dune-configurator.2.8.5 │ │ └── opam │ ├── dune.2.8.5 │ │ └── opam │ ├── easy-format.1.3.2 │ │ └── opam │ ├── fix.20201120 │ │ └── opam │ ├── fmt.0.8.9 │ │ └── opam │ ├── fpath.0.7.3 │ │ └── opam │ ├── integers.0.4.0 │ │ └── opam │ ├── junit.2.0.2 │ │ └── opam │ ├── logs.0.7.0 │ │ └── opam │ ├── lwt.5.4.1 │ │ └── opam │ ├── lwt_ppx.2.0.1 │ │ └── opam │ ├── markup.0.8.2 │ │ └── opam │ ├── menhir.20210419 │ │ └── opam │ ├── menhirLib.20210419 │ │ └── opam │ ├── menhirSdk.20210419 │ │ └── opam │ ├── merlin-extend.0.6 │ │ └── opam │ ├── mmap.1.1.0 │ │ └── opam │ ├── ocaml-compiler-libs.v0.12.3 │ │ └── opam │ ├── ocaml-lsp-server.1.6.1 │ │ └── opam │ ├── ocaml-migrate-parsetree.1.8.0 │ │ └── opam │ ├── ocamlbuild.0.14.0 │ │ └── opam │ ├── ocamlfind.1.9.1 │ │ └── opam │ ├── ocplib-endian.1.1 │ │ └── opam │ ├── pp.1.1.2 │ │ └── opam │ ├── ppx_derivers.1.2.1 │ │ └── opam │ ├── ppx_deriving.4.5 │ │ └── opam │ ├── ppx_optcomp.v0.14.0 │ │ └── opam │ ├── ppx_tools.6.3 │ │ └── opam │ ├── ppx_tools_versioned.5.4.0 │ │ └── opam │ ├── ppx_yojson_conv_lib.v0.14.0 │ │ └── opam │ ├── ppxfind.1.4 │ │ └── opam │ ├── ppxlib.0.15.0 │ │ └── opam │ ├── printbox.0.5 │ │ └── opam │ ├── psq.0.2.0 │ │ └── opam │ ├── ptime.0.8.5 │ │ └── opam │ ├── re.1.9.0 │ │ └── opam │ ├── reason.3.7.0 │ │ └── opam │ ├── result.1.5 │ │ └── opam │ ├── rresult.0.6.0 │ │ └── opam │ ├── seq.base │ │ ├── files │ │ │ ├── META.seq │ │ │ └── seq.install │ │ └── opam │ ├── sexplib0.v0.14.0 │ │ └── opam │ ├── stdio.v0.14.0 │ │ └── opam │ ├── stdlib-shims.0.3.0 │ │ └── opam │ ├── topkg.1.0.3 │ │ └── opam │ ├── tyxml.4.5.0 │ │ └── opam │ ├── uchar.0.0.2 │ │ └── opam │ ├── uucp.13.0.0 │ │ └── opam │ ├── uutf.1.0.2 │ │ └── opam │ └── yojson.1.7.0 │ │ └── opam └── overrides │ ├── opam__s__conf_pkg_config_opam__c__2_opam_override │ └── package.json │ ├── opam__s__ctypes_opam__c__0.15.1_opam_override │ └── package.json │ ├── opam__s__ocamlbuild_opam__c__0.14.0_opam_override │ ├── files │ │ └── ocamlbuild-0.14.0.patch │ └── package.json │ └── opam__s__ocamlfind_opam__c__1.9.1_opam_override │ ├── files │ └── findlib-1.9.1.patch │ └── package.json ├── examples.esy.lock ├── .gitattributes ├── .gitignore ├── index.json ├── opam │ ├── astring.0.8.5 │ │ └── opam │ ├── base-bigarray.base │ │ └── opam │ ├── base-bytes.base │ │ └── opam │ ├── base-threads.base │ │ └── opam │ ├── base-unix.base │ │ └── opam │ ├── base.v0.14.1 │ │ └── opam │ ├── biniou.1.2.1 │ │ └── opam │ ├── bos.0.2.0 │ │ └── opam │ ├── camomile.1.0.2 │ │ └── opam │ ├── charInfo_width.1.1.0 │ │ └── opam │ ├── conf-pkg-config.2 │ │ └── opam │ ├── cppo.1.6.7 │ │ └── opam │ ├── csexp.1.5.1 │ │ └── opam │ ├── ctypes.0.15.1 │ │ └── opam │ ├── dot-merlin-reader.4.1 │ │ └── opam │ ├── dune-build-info.2.8.5 │ │ └── opam │ ├── dune-configurator.2.8.5 │ │ └── opam │ ├── dune.2.8.5 │ │ └── opam │ ├── easy-format.1.3.2 │ │ └── opam │ ├── fix.20201120 │ │ └── opam │ ├── fmt.0.8.9 │ │ └── opam │ ├── fpath.0.7.3 │ │ └── opam │ ├── integers.0.4.0 │ │ └── opam │ ├── junit.2.0.2 │ │ └── opam │ ├── logs.0.7.0 │ │ └── opam │ ├── lwt.5.4.1 │ │ └── opam │ ├── lwt_ppx.2.0.1 │ │ └── opam │ ├── markup.0.8.2 │ │ └── opam │ ├── menhir.20210419 │ │ └── opam │ ├── menhirLib.20210419 │ │ └── opam │ ├── menhirSdk.20210419 │ │ └── opam │ ├── merlin-extend.0.6 │ │ └── opam │ ├── mmap.1.1.0 │ │ └── opam │ ├── ocaml-compiler-libs.v0.12.3 │ │ └── opam │ ├── ocaml-lsp-server.1.6.1 │ │ └── opam │ ├── ocaml-migrate-parsetree.1.8.0 │ │ └── opam │ ├── ocamlbuild.0.14.0 │ │ └── opam │ ├── ocamlfind.1.9.1 │ │ └── opam │ ├── ocplib-endian.1.1 │ │ └── opam │ ├── pp.1.1.2 │ │ └── opam │ ├── ppx_derivers.1.2.1 │ │ └── opam │ ├── ppx_deriving.4.5 │ │ └── opam │ ├── ppx_optcomp.v0.14.0 │ │ └── opam │ ├── ppx_tools.6.3 │ │ └── opam │ ├── ppx_tools_versioned.5.4.0 │ │ └── opam │ ├── ppx_yojson_conv_lib.v0.14.0 │ │ └── opam │ ├── ppxfind.1.4 │ │ └── opam │ ├── ppxlib.0.15.0 │ │ └── opam │ ├── printbox.0.5 │ │ └── opam │ ├── psq.0.2.0 │ │ └── opam │ ├── ptime.0.8.5 │ │ └── opam │ ├── re.1.9.0 │ │ └── opam │ ├── reason.3.7.0 │ │ └── opam │ ├── result.1.5 │ │ └── opam │ ├── rresult.0.6.0 │ │ └── opam │ ├── seq.base │ │ ├── files │ │ │ ├── META.seq │ │ │ └── seq.install │ │ └── opam │ ├── sexplib0.v0.14.0 │ │ └── opam │ ├── stdio.v0.14.0 │ │ └── opam │ ├── stdlib-shims.0.3.0 │ │ └── opam │ ├── topkg.1.0.3 │ │ └── opam │ ├── tyxml.4.5.0 │ │ └── opam │ ├── uchar.0.0.2 │ │ └── opam │ ├── uucp.13.0.0 │ │ └── opam │ ├── uutf.1.0.2 │ │ └── opam │ └── yojson.1.7.0 │ │ └── opam └── overrides │ ├── opam__s__conf_pkg_config_opam__c__2_opam_override │ └── package.json │ ├── opam__s__ctypes_opam__c__0.15.1_opam_override │ └── package.json │ ├── opam__s__ocamlbuild_opam__c__0.14.0_opam_override │ ├── files │ │ └── ocamlbuild-0.14.0.patch │ └── package.json │ └── opam__s__ocamlfind_opam__c__1.9.1_opam_override │ ├── files │ └── findlib-1.9.1.patch │ └── package.json ├── examples.json ├── examples ├── AnalogClock.re ├── Border.re ├── Boxshadow.re ├── Calculator.re ├── CanQuitExample.re ├── CanvasExample.re ├── CheckboxExample.re ├── DefaultButton.re ├── DropdownExample.re ├── Examples.re ├── FileDragAndDrop.re ├── Flexbox.re ├── FocusExample.re ├── FontAwesome5FreeSolid.otf ├── FontsExample.re ├── GameOfLife.re ├── Hello.re ├── HitTests.re ├── HoverExample.re ├── ImageQualityExample.re ├── Info.plist ├── InputExample.re ├── LayerExample.re ├── MarkdownExample.re ├── NativeFileExample.re ├── NativeIconExample.re ├── NativeInputExample.re ├── NativeMenuExample.re ├── NativeNotificationExample.re ├── NestedClickable.re ├── RadioButtonExample.re ├── RichTextExample.re ├── Roboto-Bold.ttf ├── Roboto-Regular.ttf ├── Roboto-RegularItalic.ttf ├── SVGExample.re ├── ScreenCapture.re ├── ScrollView.re ├── Slider.re ├── SpringExample.re ├── Stopwatch.re ├── TextExample.re ├── TodoExample.re ├── TreeView.re ├── URLFileOpen.re ├── WavFilePlaybackExample.re ├── WindowControl.re ├── ZoomExample.re ├── binary.dat ├── dune ├── gl-matrix-min.js ├── index.html ├── outrun-icon.png ├── outrun-logo.png ├── reason-logo.png ├── revery-icon.png └── stubs │ ├── ExampleStubs.re │ ├── dune │ ├── example_stubs.c │ └── example_stubs.js ├── include ├── COPYING.txt ├── KHR │ └── khrplatform.h ├── glad │ └── glad.h └── stb_image.h ├── js.esy.lock ├── .gitattributes ├── .gitignore ├── index.json ├── opam │ ├── astring.0.8.5 │ │ └── opam │ ├── base-bigarray.base │ │ └── opam │ ├── base-bytes.base │ │ └── opam │ ├── base-threads.base │ │ └── opam │ ├── base-unix.base │ │ └── opam │ ├── base.v0.14.1 │ │ └── opam │ ├── biniou.1.2.1 │ │ └── opam │ ├── bos.0.2.0 │ │ └── opam │ ├── camomile.1.0.2 │ │ └── opam │ ├── charInfo_width.1.1.0 │ │ └── opam │ ├── cmdliner.1.0.4 │ │ └── opam │ ├── conf-pkg-config.2 │ │ └── opam │ ├── cppo.1.6.7 │ │ └── opam │ ├── csexp.1.5.1 │ │ └── opam │ ├── ctypes.0.15.1 │ │ └── opam │ ├── dot-merlin-reader.4.1 │ │ └── opam │ ├── dune-build-info.2.8.5 │ │ └── opam │ ├── dune-configurator.2.8.5 │ │ └── opam │ ├── dune.2.8.5 │ │ └── opam │ ├── easy-format.1.3.2 │ │ └── opam │ ├── fix.20201120 │ │ └── opam │ ├── fmt.0.8.9 │ │ └── opam │ ├── fpath.0.7.3 │ │ └── opam │ ├── integers.0.4.0 │ │ └── opam │ ├── js_of_ocaml-compiler.3.9.1 │ │ └── opam │ ├── js_of_ocaml-lwt.3.9.0 │ │ └── opam │ ├── js_of_ocaml-ppx.3.9.0 │ │ └── opam │ ├── js_of_ocaml.3.9.0 │ │ └── opam │ ├── junit.2.0.2 │ │ └── opam │ ├── logs.0.7.0 │ │ └── opam │ ├── lwt.5.4.1 │ │ └── opam │ ├── lwt_ppx.2.0.1 │ │ └── opam │ ├── markup.0.8.2 │ │ └── opam │ ├── menhir.20210419 │ │ └── opam │ ├── menhirLib.20210419 │ │ └── opam │ ├── menhirSdk.20210419 │ │ └── opam │ ├── merlin-extend.0.6 │ │ └── opam │ ├── mmap.1.1.0 │ │ └── opam │ ├── ocaml-compiler-libs.v0.12.3 │ │ └── opam │ ├── ocaml-lsp-server.1.6.1 │ │ └── opam │ ├── ocaml-migrate-parsetree.1.8.0 │ │ └── opam │ ├── ocamlbuild.0.14.0 │ │ └── opam │ ├── ocamlfind.1.9.1 │ │ └── opam │ ├── ocplib-endian.1.1 │ │ └── opam │ ├── pp.1.1.2 │ │ └── opam │ ├── ppx_derivers.1.2.1 │ │ └── opam │ ├── ppx_deriving.4.5 │ │ └── opam │ ├── ppx_optcomp.v0.14.0 │ │ └── opam │ ├── ppx_tools.6.3 │ │ └── opam │ ├── ppx_tools_versioned.5.4.0 │ │ └── opam │ ├── ppx_yojson_conv_lib.v0.14.0 │ │ └── opam │ ├── ppxfind.1.4 │ │ └── opam │ ├── ppxlib.0.15.0 │ │ └── opam │ ├── printbox.0.5 │ │ └── opam │ ├── psq.0.2.0 │ │ └── opam │ ├── ptime.0.8.5 │ │ └── opam │ ├── re.1.9.0 │ │ └── opam │ ├── reason.3.7.0 │ │ └── opam │ ├── result.1.5 │ │ └── opam │ ├── rresult.0.6.0 │ │ └── opam │ ├── seq.base │ │ ├── files │ │ │ ├── META.seq │ │ │ └── seq.install │ │ └── opam │ ├── sexplib0.v0.14.0 │ │ └── opam │ ├── stdio.v0.14.0 │ │ └── opam │ ├── stdlib-shims.0.3.0 │ │ └── opam │ ├── topkg.1.0.3 │ │ └── opam │ ├── tyxml.4.5.0 │ │ └── opam │ ├── uchar.0.0.2 │ │ └── opam │ ├── uucp.13.0.0 │ │ └── opam │ ├── uutf.1.0.2 │ │ └── opam │ └── yojson.1.7.0 │ │ └── opam └── overrides │ ├── opam__s__conf_pkg_config_opam__c__2_opam_override │ └── package.json │ ├── opam__s__ctypes_opam__c__0.15.1_opam_override │ └── package.json │ ├── opam__s__ocamlbuild_opam__c__0.14.0_opam_override │ ├── files │ │ └── ocamlbuild-0.14.0.patch │ └── package.json │ └── opam__s__ocamlfind_opam__c__1.9.1_opam_override │ ├── files │ └── findlib-1.9.1.patch │ └── package.json ├── js.json ├── lsan.supp ├── package.json ├── packages ├── reason-harfbuzz │ ├── examples │ │ └── harfbuzz-cli │ │ │ ├── HarfbuzzCli.re │ │ │ ├── dune │ │ │ └── run-harfbuzz.sh │ ├── src │ │ ├── Harfbuzz.re │ │ ├── Harfbuzz.rei │ │ ├── config │ │ │ ├── discover.re │ │ │ └── dune │ │ ├── dune │ │ └── harfbuzz.cpp │ └── test │ │ ├── FeaturesTest.re │ │ ├── ShapingTest.re │ │ ├── TestFramework.re │ │ └── dune ├── reason-sdl2 │ └── src │ │ ├── Float32Array.re │ │ ├── Uint16Array.re │ │ ├── config │ │ ├── discover.re │ │ └── dune │ │ ├── dune │ │ ├── sdl2.re │ │ ├── sdl2_stubs.js │ │ ├── sdl2_wrapper.cpp │ │ └── stb_image.cpp ├── reason-skia │ ├── bench │ │ ├── BenchFramework.re │ │ ├── CanvasBench.re │ │ ├── ColorBench.re │ │ ├── MatrixBench.re │ │ ├── RectBench.re │ │ ├── SkiaPaintBench.re │ │ └── dune │ ├── examples │ │ ├── skia-cli │ │ │ ├── FiraCode-Regular.ttf │ │ │ ├── LICENSE_FiraCode.txt │ │ │ ├── LICENSE_ORBITRON.md │ │ │ ├── Orbitron Medium.ttf │ │ │ ├── SkiaCli.re │ │ │ └── dune │ │ ├── skia-font-manager-cli │ │ │ ├── SkiaFontManagerCli.re │ │ │ ├── dune │ │ │ └── run-skia-fontmanager.sh │ │ └── skia-sdl2 │ │ │ ├── SkiaSdl.re │ │ │ └── dune │ ├── src │ │ ├── Skia.re │ │ ├── Skia.rei │ │ ├── config │ │ │ ├── discover.re │ │ │ └── dune │ │ ├── dune │ │ └── wrapped │ │ │ ├── bindings │ │ │ ├── SkiaWrappedBindings.re │ │ │ └── dune │ │ │ ├── c │ │ │ ├── c_stubs.c │ │ │ ├── c_stubs.h │ │ │ └── dune │ │ │ ├── lib │ │ │ ├── SkiaWrapped.re │ │ │ ├── dune │ │ │ └── raw_bindings.c │ │ │ ├── stubgen │ │ │ ├── dune │ │ │ ├── stubgen.ml │ │ │ └── types_stubgen.ml │ │ │ └── types │ │ │ ├── SkiaWrappedTypes.re │ │ │ └── dune │ └── test │ │ ├── ColorTest.re │ │ ├── MatrixTest.re │ │ ├── PaintTest.re │ │ ├── RectTest.re │ │ ├── TestFramework.re │ │ └── dune ├── revery-text-wrap │ ├── examples │ │ └── text-wrap-cli │ │ │ ├── ReveryTextWrapCli.re │ │ │ └── dune │ └── src │ │ ├── Revery_TextWrap.re │ │ ├── Revery_TextWrap.rei │ │ ├── Tokenize.re │ │ └── dune └── zed │ └── src │ ├── dune │ ├── zed_utf8.ml │ └── zed_utf8.mli ├── reason-harfbuzz.opam ├── reason-sdl2.opam ├── reason-skia.opam ├── scripts ├── docker-build.sh ├── docker │ ├── archlinux │ │ └── Dockerfile │ └── centos │ │ └── Dockerfile ├── make-binary-file.js └── release.sh ├── src ├── Core │ ├── App.re │ ├── App.rei │ ├── Color.re │ ├── Color.rei │ ├── Colors.re │ ├── Environment.re │ ├── Environment.rei │ ├── Event.re │ ├── Events.re │ ├── GarbageCollector.re │ ├── Key.re │ ├── Key.rei │ ├── Log.re │ ├── Log.rei │ ├── MouseButton.re │ ├── MouseButton.rei │ ├── MouseCursors.re │ ├── MouseCursors.rei │ ├── Performance.re │ ├── Revery_Core.re │ ├── TextOverflow.re │ ├── TextWrapping.re │ ├── Tick.re │ ├── Time.re │ ├── Time.rei │ ├── UniqueId.re │ ├── Vsync.re │ ├── Window.re │ ├── Window.rei │ ├── WindowCreateOptions.re │ ├── WindowStyles.re │ └── dune ├── Draw │ ├── CanvasContext.re │ ├── DebugDraw.re │ ├── ImageResizeMode.re │ ├── Revery_Draw.re │ ├── Text.re │ ├── Text.rei │ └── dune ├── Font │ ├── Discovery.re │ ├── Feature.re │ ├── Feature.rei │ ├── Features.re │ ├── Features.rei │ ├── FontCache.re │ ├── FontCache.rei │ ├── FontFamily.re │ ├── FontFamily.rei │ ├── FontManager.re │ ├── FontMetrics.re │ ├── FontRenderer.re │ ├── FontWeight.re │ ├── FontWidth.re │ ├── Revery_Font.re │ ├── ShapeResult.re │ ├── Smoothing.re │ ├── dune │ └── files │ │ └── Inconsolata.otf ├── IO │ ├── File.re │ ├── File.rei │ ├── Image.re │ ├── Image.rei │ ├── LwtLetOperators.re │ ├── Revery_IO.re │ └── dune ├── Lwt │ ├── Revery_Lwt.re │ └── dune ├── Math │ ├── Angle.re │ ├── BoundingBox2d.re │ ├── BoundingBox2d.rei │ ├── Revery_Math.re │ └── dune ├── Native │ ├── Dialog.re │ ├── Environment.re │ ├── Gtk.re │ ├── Icon.re │ ├── Initialization.re │ ├── Input.re │ ├── Input.rei │ ├── Locale.re │ ├── Menu.re │ ├── Menu.rei │ ├── NSObject.re │ ├── NSView.re │ ├── Notification.re │ ├── ReveryCocoa.h │ ├── ReveryGtk.h │ ├── ReveryLinux.h │ ├── ReveryMac.h │ ├── ReveryNSObject.c │ ├── ReveryWin32.h │ ├── ReveryWindows.h │ ├── Revery_Native.c │ ├── Revery_Native.re │ ├── Shell.re │ ├── Window.re │ ├── caml_values.h │ ├── cocoa │ │ ├── ReveryAppDelegate.c │ │ ├── ReveryAppDelegate.h │ │ ├── ReveryAppDelegate_func.c │ │ ├── ReveryAppDelegate_func.h │ │ ├── ReveryButtonTarget.c │ │ ├── ReveryButtonTarget.h │ │ ├── ReveryMenuItemTarget.c │ │ ├── ReveryMenuItemTarget.h │ │ ├── ReveryNSView.c │ │ ├── ReveryNSViewCoords.c │ │ ├── ReveryNSViewCoords.h │ │ ├── ReveryProgressBar.c │ │ ├── ReveryProgressBar.h │ │ └── SDLAppDelegate.h │ ├── config │ │ ├── discover.re │ │ └── dune │ ├── dialog.c │ ├── dialog.js │ ├── dialog_cocoa.c │ ├── dialog_gtk.c │ ├── dialog_win32.c │ ├── dune │ ├── environment.c │ ├── environment_linux.c │ ├── environment_mac.c │ ├── environment_windows.c │ ├── gtk │ │ ├── ReveryGtk.c │ │ └── ReveryGtk_Widget.c │ ├── icon.c │ ├── icon_cocoa.c │ ├── icon_win32.c │ ├── input.c │ ├── input_cocoa.c │ ├── locale.c │ ├── locale_cocoa.c │ ├── locale_win32.c │ ├── menu.c │ ├── menu.h │ ├── menu_cocoa.c │ ├── notification.c │ ├── notification_cocoa.c │ ├── shell.c │ ├── shell_cocoa.c │ ├── shell_gtk.c │ ├── shell_win32.c │ ├── utilities.c │ ├── utilities.h │ ├── win32_target.h │ ├── window.c │ └── window_cocoa.c ├── Platform.re ├── Revery.re ├── UI │ ├── Animation.re │ ├── Animation.rei │ ├── CanvasNode.re │ ├── Container.re │ ├── Dimensions.re │ ├── Easing.re │ ├── FileDrop.re │ ├── Focus.re │ ├── Focus.rei │ ├── HitTest.re │ ├── ImageNode.re │ ├── ImageResizeMode.re │ ├── Keyboard.re │ ├── LayerNode.re │ ├── Layout.re │ ├── Mouse.re │ ├── Mouse.rei │ ├── NativeButtonNode.re │ ├── Node.re │ ├── NodeDrawContext.re │ ├── NodeEvents.re │ ├── Offset.re │ ├── Overflow.re │ ├── React.re │ ├── Reconciler.re │ ├── Render.re │ ├── RenderCondition.re │ ├── RenderContainer.re │ ├── Revery_UI.re │ ├── RichText.re │ ├── RichText.rei │ ├── Selector.re │ ├── Spring.re │ ├── Spring.rei │ ├── Style.re │ ├── TextNode.re │ ├── Transform.re │ ├── Transform.rei │ ├── Ui.re │ ├── Ui.rei │ ├── UiEvents.re │ ├── ViewNode.re │ └── dune ├── UI_Components │ ├── Button.re │ ├── Button.rei │ ├── Center.re │ ├── Checkbox.re │ ├── Checkbox.rei │ ├── Clickable.re │ ├── Clickable.rei │ ├── ClickableText.re │ ├── ClipContainer.re │ ├── ClipContainer.rei │ ├── Column.re │ ├── Container.re │ ├── Container.rei │ ├── Dropdown.re │ ├── ExpandContainer.re │ ├── Input.re │ ├── Link.re │ ├── Markdown.re │ ├── Markdown.rei │ ├── Positioned.re │ ├── Positioned.rei │ ├── RadioButtons.re │ ├── Revery_UI_Components.re │ ├── RichTextView.re │ ├── Row.re │ ├── SVG.re │ ├── ScrollView.re │ ├── Slider.re │ ├── Stack.re │ ├── Ticker.re │ ├── Ticker.rei │ ├── Tree.re │ └── dune ├── UI_Hooks │ ├── Effect.re │ ├── Effect.rei │ ├── Reducer.re │ ├── Reducer.rei │ ├── Ref.re │ ├── Ref.rei │ ├── Revery_UI_Hooks.re │ ├── Spring.re │ ├── State.re │ ├── State.rei │ ├── Tick.re │ ├── Tick.rei │ ├── Timer.re │ └── dune ├── UI_Primitives │ ├── AllowPointer.re │ ├── BoxShadow.re │ ├── Canvas.re │ ├── IgnorePointer.re │ ├── Image.re │ ├── Image.rei │ ├── Layer.re │ ├── NativeButton.re │ ├── Opacity.re │ ├── Padding.re │ ├── PrimitiveNodeFactory.re │ ├── Revery_UI_Primitives.re │ ├── Text.re │ ├── View.re │ └── dune ├── Utility │ ├── HeadlessWindow.re │ ├── HeadlessWindow.rei │ ├── Revery_Utility.re │ └── dune ├── dune └── index.mld ├── test.esy.lock ├── .gitattributes ├── .gitignore ├── index.json ├── opam │ ├── astring.0.8.5 │ │ └── opam │ ├── base-bigarray.base │ │ └── opam │ ├── base-bytes.base │ │ └── opam │ ├── base-threads.base │ │ └── opam │ ├── base-unix.base │ │ └── opam │ ├── base.v0.14.1 │ │ └── opam │ ├── biniou.1.2.1 │ │ └── opam │ ├── bos.0.2.0 │ │ └── opam │ ├── camomile.1.0.2 │ │ └── opam │ ├── charInfo_width.1.1.0 │ │ └── opam │ ├── conf-pkg-config.2 │ │ └── opam │ ├── cppo.1.6.7 │ │ └── opam │ ├── csexp.1.5.1 │ │ └── opam │ ├── ctypes.0.15.1 │ │ └── opam │ ├── dot-merlin-reader.4.1 │ │ └── opam │ ├── dune-build-info.2.8.5 │ │ └── opam │ ├── dune-configurator.2.8.5 │ │ └── opam │ ├── dune.2.8.5 │ │ └── opam │ ├── easy-format.1.3.2 │ │ └── opam │ ├── fix.20201120 │ │ └── opam │ ├── fmt.0.8.9 │ │ └── opam │ ├── fpath.0.7.3 │ │ └── opam │ ├── integers.0.4.0 │ │ └── opam │ ├── junit.2.0.2 │ │ └── opam │ ├── logs.0.7.0 │ │ └── opam │ ├── lwt.5.4.1 │ │ └── opam │ ├── lwt_ppx.2.0.1 │ │ └── opam │ ├── markup.0.8.2 │ │ └── opam │ ├── menhir.20210419 │ │ └── opam │ ├── menhirLib.20210419 │ │ └── opam │ ├── menhirSdk.20210419 │ │ └── opam │ ├── merlin-extend.0.6 │ │ └── opam │ ├── mmap.1.1.0 │ │ └── opam │ ├── ocaml-compiler-libs.v0.12.3 │ │ └── opam │ ├── ocaml-lsp-server.1.6.1 │ │ └── opam │ ├── ocaml-migrate-parsetree.1.8.0 │ │ └── opam │ ├── ocamlbuild.0.14.0 │ │ └── opam │ ├── ocamlfind.1.9.1 │ │ └── opam │ ├── ocplib-endian.1.1 │ │ └── opam │ ├── pp.1.1.2 │ │ └── opam │ ├── ppx_derivers.1.2.1 │ │ └── opam │ ├── ppx_deriving.4.5 │ │ └── opam │ ├── ppx_optcomp.v0.14.0 │ │ └── opam │ ├── ppx_tools.6.3 │ │ └── opam │ ├── ppx_tools_versioned.5.4.0 │ │ └── opam │ ├── ppx_yojson_conv_lib.v0.14.0 │ │ └── opam │ ├── ppxfind.1.4 │ │ └── opam │ ├── ppxlib.0.15.0 │ │ └── opam │ ├── printbox.0.5 │ │ └── opam │ ├── psq.0.2.0 │ │ └── opam │ ├── ptime.0.8.5 │ │ └── opam │ ├── re.1.9.0 │ │ └── opam │ ├── reason.3.7.0 │ │ └── opam │ ├── result.1.5 │ │ └── opam │ ├── rresult.0.6.0 │ │ └── opam │ ├── seq.base │ │ ├── files │ │ │ ├── META.seq │ │ │ └── seq.install │ │ └── opam │ ├── sexplib0.v0.14.0 │ │ └── opam │ ├── stdio.v0.14.0 │ │ └── opam │ ├── stdlib-shims.0.3.0 │ │ └── opam │ ├── topkg.1.0.3 │ │ └── opam │ ├── tyxml.4.5.0 │ │ └── opam │ ├── uchar.0.0.2 │ │ └── opam │ ├── uucp.13.0.0 │ │ └── opam │ ├── uutf.1.0.2 │ │ └── opam │ └── yojson.1.7.0 │ │ └── opam └── overrides │ ├── opam__s__conf_pkg_config_opam__c__2_opam_override │ └── package.json │ ├── opam__s__ctypes_opam__c__0.15.1_opam_override │ └── package.json │ ├── opam__s__ocamlbuild_opam__c__0.14.0_opam_override │ ├── files │ │ └── ocamlbuild-0.14.0.patch │ └── package.json │ └── opam__s__ocamlfind_opam__c__1.9.1_opam_override │ ├── files │ └── findlib-1.9.1.patch │ └── package.json ├── test.json ├── test ├── Core │ ├── ColorTests.re │ ├── EnvironmentTests.re │ ├── TestFramework.re │ ├── TextTests.re │ ├── TickTest.re │ └── dune ├── Font │ ├── FamilyTest.re │ ├── FontCacheTest.re │ ├── TestFramework.re │ └── dune ├── Math │ ├── BoundingBox2dTests.re │ ├── ClampTest.re │ ├── InterpolateTest.re │ ├── TestFramework.re │ └── dune ├── TestRunner.re ├── UI │ ├── AnimationTest.re │ ├── HooksTest.re │ ├── MouseTest.re │ ├── NodeTests.re │ ├── ReconcilerTests.re │ ├── StyleTest.re │ ├── TestFramework.re │ └── dune ├── collateral │ ├── FiraCode-LICENSE.txt │ ├── FiraCode-Regular.ttf │ ├── JetBrainsMono-LICENSE.txt │ ├── JetBrainsMono-Regular.ttf │ ├── dune │ └── test-asset.txt └── dune └── update-lockfiles.sh /.ci/.gitattributes: -------------------------------------------------------------------------------- 1 | # Declare shell files to have LF endings on checkout 2 | # On Windows, the default git setting for `core.autocrlf` 3 | # means that when checking out code, LF endings get converted 4 | # to CRLF. This causes problems for shell scripts, as bash 5 | # gets choked up on the extra `\r` character. 6 | *.sh text eol=lf 7 | -------------------------------------------------------------------------------- /.ci/create-docs.yml: -------------------------------------------------------------------------------- 1 | # These steps are only run on Linux 2 | 3 | steps: 4 | - script: "esy '@doc' install" 5 | displayName: "Install doc dependency" 6 | condition: and(succeeded(), eq(variables['Agent.OS'], 'Linux')) 7 | 8 | - script: "esy '@doc' build" 9 | displayName: "Build docs" 10 | condition: and(succeeded(), eq(variables['Agent.OS'], 'Linux')) 11 | 12 | - script: echo '##vso[task.setvariable variable=docsPath]'$(esy '@doc' echo '#{self.target_dir}/default/_doc/_html') 13 | displayName: "Save docsPath in variable" 14 | condition: and(succeeded(), eq(variables['Agent.OS'], 'Linux')) 15 | 16 | - task: PublishBuildArtifacts@1 17 | displayName: "Publish Artifact: Docs" 18 | condition: and(succeeded(), eq(variables['Agent.OS'], 'Linux')) 19 | inputs: 20 | PathtoPublish: $(docsPath) 21 | ArtifactName: Docs 22 | -------------------------------------------------------------------------------- /.ci/esy-bench.yml: -------------------------------------------------------------------------------- 1 | # Run benchmarks 2 | 3 | steps: 4 | - script: esy @bench install 5 | displayName: 'esy @bench install' 6 | - script: esy @bench build 7 | displayName: 'esy @bench build' 8 | - script: esy @bench x ReveryBench 9 | displayName: 'esy @bench x ReveryBench' 10 | -------------------------------------------------------------------------------- /.ci/format.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | OS=$1 3 | 4 | dune build @fmt --auto-promote 5 | 6 | caml_output=$? 7 | 8 | if [[ $OS == "windows" ]] 9 | then 10 | files=$(/usr/bin/find $(pwd) -type f \( -iname \*.c -o -iname \*.h -o -iname \*.cpp \) -not -path "*_esy/*") 11 | native_output=$(astyle -n -Q --style=java --s4 $(cygpath -w $files)) 12 | elif [[ $OS == "darwin" ]] 13 | then 14 | native_output=$(find -E . -regex '.*\.(c|h|cpp)' -type f -not -path "*_esy/*" -exec astyle -n -Q --style=java --s4 {} \;) 15 | elif [[ $OS == "linux" ]] 16 | then 17 | native_output=$(find ./ -type f \( -iname \*.c -o -iname \*.h -o -iname \*.cpp \) -not -path "*_esy/*" -exec astyle -n -Q --style=java --s4 {} \;) 18 | fi 19 | 20 | if [[ $native_output ]] 21 | then 22 | printf "\nFormatted the following native stubs:\n%s\n" "$native_output" 23 | fi 24 | 25 | if [[ $caml_output != 0 ]] || [[ $native_output != "" ]] 26 | then 27 | exit 1 28 | fi 29 | -------------------------------------------------------------------------------- /.ci/publish-release.yml: -------------------------------------------------------------------------------- 1 | # Steps for publishing project cache 2 | 3 | steps: 4 | - task: PublishBuildArtifacts@1 5 | displayName: '[Release]' 6 | inputs: 7 | pathToPublish: '_release' 8 | artifactName: 'release-$(Agent.OS)' 9 | parallel: true 10 | parallelCount: 8 11 | -------------------------------------------------------------------------------- /.ci/use-node.yml: -------------------------------------------------------------------------------- 1 | steps: 2 | - task: NodeTool@0 3 | displayName: 'Use Node 12.x' 4 | inputs: 5 | versionSpec: 12.x 6 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Declare shell files to have LF endings on checkout 2 | # On Windows, the default git setting for `core.autocrlf` 3 | # means that when checking out code, LF endings get converted 4 | # to CRLF. This causes problems for shell scripts, as bash 5 | # gets choked up on the extra `\r` character. 6 | *.sh text eol=lf 7 | 8 | # Hide lockfile updates 9 | *esy.lock/* linguist-generated 10 | 11 | # Recognize all re files as Reason 12 | *.re linguist-language=Reason 13 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | open_collective: revery 4 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug Report 3 | about: Create a report to help us improve 4 | --- 5 | 6 | 7 | 8 | 9 | 10 | - Operating System: 11 | - Revery Version: 12 | - OCaml version: 13 | - Native, Bytecode, or JS build: 14 | 15 | 20 | 21 | - Link to github repo: 22 | 23 | - Steps to reproduce: 24 | 25 | - Actual Result: 26 | - Expected Result: 27 | 28 | - Additional Information: 29 | 30 | - Search terms used: 31 | 32 | 33 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature Request 3 | about: Suggest an idea for this project 4 | --- 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Revery.opam: -------------------------------------------------------------------------------- 1 | opam-version: "1.2" 2 | version: "dev" 3 | maintainer: "bryphe@outlook.com" 4 | author: ["Bryan Phelps"] 5 | build: [ 6 | 7 | ] 8 | -------------------------------------------------------------------------------- /ReveryBench.opam: -------------------------------------------------------------------------------- 1 | opam-version: "1.2" 2 | version: "dev" 3 | maintainer: "bryphe@outlook.com" 4 | author: ["Bryan Phelps"] 5 | build: [ 6 | 7 | ] 8 | -------------------------------------------------------------------------------- /ReveryExampleJs.opam: -------------------------------------------------------------------------------- 1 | opam-version: "1.2" 2 | version: "dev" 3 | maintainer: "bryphe@outlook.com" 4 | author: ["Bryan Phelps"] 5 | build: [ 6 | 7 | ] 8 | -------------------------------------------------------------------------------- /ReveryExamples.opam: -------------------------------------------------------------------------------- 1 | opam-version: "1.2" 2 | version: "dev" 3 | maintainer: "bryphe@outlook.com" 4 | author: ["Bryan Phelps"] 5 | build: [ 6 | 7 | ] 8 | -------------------------------------------------------------------------------- /ReveryTest.opam: -------------------------------------------------------------------------------- 1 | opam-version: "1.2" 2 | version: "dev" 3 | maintainer: "bryphe@outlook.com" 4 | author: ["Bryan Phelps"] 5 | build: [ 6 | 7 | ] 8 | -------------------------------------------------------------------------------- /assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/revery-ui/revery/141f70f69d6abd69674b46d805a783411b38cd79/assets/logo.png -------------------------------------------------------------------------------- /assets/onivim-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/revery-ui/revery/141f70f69d6abd69674b46d805a783411b38cd79/assets/onivim-logo.png -------------------------------------------------------------------------------- /assets/reason-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/revery-ui/revery/141f70f69d6abd69674b46d805a783411b38cd79/assets/reason-logo.png -------------------------------------------------------------------------------- /assets/screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/revery-ui/revery/141f70f69d6abd69674b46d805a783411b38cd79/assets/screenshot.png -------------------------------------------------------------------------------- /assets/uv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/revery-ui/revery/141f70f69d6abd69674b46d805a783411b38cd79/assets/uv.png -------------------------------------------------------------------------------- /bench.esy.lock/.gitattributes: -------------------------------------------------------------------------------- 1 | 2 | # Set eol to LF so files aren't converted to CRLF-eol on Windows. 3 | * text eol=lf linguist-generated 4 | -------------------------------------------------------------------------------- /bench.esy.lock/.gitignore: -------------------------------------------------------------------------------- 1 | 2 | # Reset any possible .gitignore, we want all esy.lock to be un-ignored. 3 | !* 4 | -------------------------------------------------------------------------------- /bench.esy.lock/opam/base-bigarray.base/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | maintainer: "https://github.com/ocaml/opam-repository/issues" 3 | description: """ 4 | Bigarray library distributed with the OCaml compiler 5 | """ 6 | 7 | -------------------------------------------------------------------------------- /bench.esy.lock/opam/base-bytes.base/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | maintainer: " " 3 | authors: " " 4 | homepage: " " 5 | depends: [ 6 | "ocaml" {>= "4.02.0"} 7 | "ocamlfind" {>= "1.5.3"} 8 | ] 9 | synopsis: "Bytes library distributed with the OCaml compiler" 10 | -------------------------------------------------------------------------------- /bench.esy.lock/opam/base-threads.base/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | maintainer: "https://github.com/ocaml/opam-repository/issues" 3 | description: """ 4 | Threads library distributed with the OCaml compiler 5 | """ 6 | 7 | -------------------------------------------------------------------------------- /bench.esy.lock/opam/base-unix.base/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | maintainer: "https://github.com/ocaml/opam-repository/issues" 3 | description: """ 4 | Unix library distributed with the OCaml compiler 5 | """ 6 | 7 | -------------------------------------------------------------------------------- /bench.esy.lock/opam/charInfo_width.1.1.0/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | maintainer: "zandoye@gmail.com" 3 | authors: [ "ZAN DoYe" ] 4 | homepage: "https://github.com/kandu/charinfo_width/" 5 | bug-reports: "https://github.com/kandu/charinfo_width/issues" 6 | license: "MIT" 7 | dev-repo: "git://github.com/kandu/charinfo_width.git" 8 | build: [ 9 | ["dune" "build" "-p" name "-j" jobs] 10 | ["dune" "runtest" "-p" name "-j" jobs] {with-test & (ocaml:version >= "4.04.0")} 11 | ] 12 | depends: [ 13 | "ocaml" {>= "4.02.3"} 14 | "result" 15 | "camomile" {>= "1.0.0" & < "2.0~"} 16 | "dune" 17 | "ppx_expect" {with-test & < "v0.15"} 18 | ] 19 | 20 | synopsis: "Determine column width for a character" 21 | description: """ 22 | This module is implemented purely in OCaml and the width function follows the prototype of POSIX's wcwidth.""" 23 | 24 | url { 25 | src:"https://github.com/kandu/charInfo_width/archive/1.1.0.tar.gz" 26 | checksum: "md5=a539436d1da4aeb93711303f107bec7e" 27 | } 28 | -------------------------------------------------------------------------------- /bench.esy.lock/opam/fix.20201120/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | maintainer: "francois.pottier@inria.fr" 3 | authors: [ 4 | "François Pottier " 5 | ] 6 | homepage: "https://gitlab.inria.fr/fpottier/fix" 7 | dev-repo: "git+https://gitlab.inria.fr/fpottier/fix.git" 8 | bug-reports: "francois.pottier@inria.fr" 9 | build: [ 10 | ["dune" "build" "-p" name "-j" jobs] 11 | ] 12 | depends: [ 13 | "ocaml" { >= "4.03" } 14 | "dune" {>= "1.3" } 15 | ] 16 | synopsis: "Facilities for memoization and fixed points" 17 | url { 18 | src: 19 | "https://gitlab.inria.fr/fpottier/fix/-/archive/20201120/archive.tar.gz" 20 | checksum: [ 21 | "md5=7eb570b759635fe66f3556d2b1cc88e3" 22 | "sha512=344dcc619f9e8b8a6c998775b6d2dab2ea5253e6a67abe4797f76dc5dd30bc776568abce1e90477422e9db447821579889737e3531c42139708f813e983ea5d4" 23 | ] 24 | } 25 | -------------------------------------------------------------------------------- /bench.esy.lock/opam/integers.0.4.0/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | maintainer: "yallop@gmail.com" 3 | authors: ["Jeremy Yallop" 4 | "Demi Obenour" 5 | "Stephane Glondu" 6 | "Andreas Hauptmann"] 7 | homepage: "https://github.com/ocamllabs/ocaml-integers" 8 | bug-reports: "https://github.com/ocamllabs/ocaml-integers/issues" 9 | dev-repo: "git+https://github.com/ocamllabs/ocaml-integers.git" 10 | license: "MIT" 11 | 12 | build: [ 13 | ["dune" "subst"] {dev} 14 | ["dune" "build" "-p" name "-j" jobs] 15 | ["dune" "runtest" "-p" name "-j" jobs] {with-test} 16 | ] 17 | 18 | depends: [ 19 | "ocaml" {>= "4.02"} 20 | "dune" 21 | ] 22 | doc: "http://ocamllabs.github.io/ocaml-integers/api.docdir/" 23 | synopsis: "Various signed and unsigned integer types for OCaml" 24 | url { 25 | src: "https://github.com/ocamllabs/ocaml-integers/archive/0.4.0.tar.gz" 26 | checksum: "md5=c1492352e6525048790508c57aad93c3" 27 | } 28 | -------------------------------------------------------------------------------- /bench.esy.lock/opam/lwt_ppx.2.0.1/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | 3 | synopsis: "PPX syntax for Lwt, providing something similar to async/await from JavaScript" 4 | 5 | license: "MIT" 6 | homepage: "https://github.com/ocsigen/lwt" 7 | doc: "https://ocsigen.org/lwt/dev/api/Ppx_lwt" 8 | bug-reports: "https://github.com/ocsigen/lwt/issues" 9 | 10 | authors: [ 11 | "Gabriel Radanne" 12 | ] 13 | maintainer: [ 14 | "Anton Bachin " 15 | ] 16 | dev-repo: "git+https://github.com/ocsigen/lwt.git" 17 | 18 | depends: [ 19 | "dune" {>= "1.1.0"} 20 | "lwt" 21 | "ocaml" {>= "4.02.0"} 22 | "ocaml-migrate-parsetree" {>= "1.5.0" & < "2.0.0"} 23 | "ppx_tools_versioned" {>= "5.3.0"} 24 | ] 25 | 26 | build: [ 27 | ["dune" "build" "-p" name "-j" jobs] 28 | ] 29 | 30 | url { 31 | src: "https://github.com/ocsigen/lwt/archive/5.2.0.tar.gz" 32 | checksum: "md5=d5783fcff4fbfa7f79c9303776e4d144" 33 | } 34 | -------------------------------------------------------------------------------- /bench.esy.lock/opam/mmap.1.1.0/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | maintainer: "jeremie@dimino.org" 3 | authors: ["Jérémie Dimino " "Anton Bachin" ] 4 | homepage: "https://github.com/mirage/mmap" 5 | bug-reports: "https://github.com/mirage/mmap/issues" 6 | doc: "https://mirage.github.io/mmap/" 7 | dev-repo: "git+https://github.com/mirage/mmap.git" 8 | license: "LGPL-2.1-only with OCaml-LGPL-linking-exception" 9 | build: [ 10 | ["dune" "build" "-p" name "-j" jobs] 11 | ] 12 | depends: [ 13 | "ocaml" 14 | "dune" {>= "1.6"} 15 | ] 16 | synopsis: "File mapping functionality" 17 | description: """ 18 | This project provides a Mmap.map_file functions for mapping files in memory. 19 | """ 20 | url { 21 | src: 22 | "https://github.com/mirage/mmap/releases/download/v1.1.0/mmap-v1.1.0.tbz" 23 | checksum: "md5=8c5d5fbc537296dc525867535fb878ba" 24 | } 25 | -------------------------------------------------------------------------------- /bench.esy.lock/opam/ppx_derivers.1.2.1/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | maintainer: "jeremie@dimino.org" 3 | authors: ["Jérémie Dimino"] 4 | license: "BSD-3-Clause" 5 | homepage: "https://github.com/ocaml-ppx/ppx_derivers" 6 | bug-reports: "https://github.com/ocaml-ppx/ppx_derivers/issues" 7 | dev-repo: "git://github.com/ocaml-ppx/ppx_derivers.git" 8 | build: [ 9 | ["dune" "build" "-p" name "-j" jobs] 10 | ] 11 | depends: [ 12 | "ocaml" 13 | "dune" 14 | ] 15 | synopsis: "Shared [@@deriving] plugin registry" 16 | description: """ 17 | Ppx_derivers is a tiny package whose sole purpose is to allow 18 | ppx_deriving and ppx_type_conv to inter-operate gracefully when linked 19 | as part of the same ocaml-migrate-parsetree driver.""" 20 | url { 21 | src: "https://github.com/ocaml-ppx/ppx_derivers/archive/1.2.1.tar.gz" 22 | checksum: "md5=5dc2bf130c1db3c731fe0fffc5648b41" 23 | } 24 | -------------------------------------------------------------------------------- /bench.esy.lock/opam/ppx_optcomp.v0.14.0/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | maintainer: "Jane Street developers" 3 | authors: ["Jane Street Group, LLC"] 4 | homepage: "https://github.com/janestreet/ppx_optcomp" 5 | bug-reports: "https://github.com/janestreet/ppx_optcomp/issues" 6 | dev-repo: "git+https://github.com/janestreet/ppx_optcomp.git" 7 | doc: "https://ocaml.janestreet.com/ocaml-core/latest/doc/ppx_optcomp/index.html" 8 | license: "MIT" 9 | build: [ 10 | ["dune" "build" "-p" name "-j" jobs] 11 | ] 12 | depends: [ 13 | "ocaml" {>= "4.04.2"} 14 | "base" {>= "v0.14" & < "v0.15"} 15 | "stdio" {>= "v0.14" & < "v0.15"} 16 | "dune" {>= "2.0.0"} 17 | "ppxlib" {>= "0.11.0" & < "0.18.0"} 18 | ] 19 | synopsis: "Optional compilation for OCaml" 20 | description: " 21 | Part of the Jane Street's PPX rewriters collection. 22 | " 23 | url { 24 | src: "https://ocaml.janestreet.com/ocaml-core/v0.14/files/ppx_optcomp-v0.14.0.tar.gz" 25 | checksum: "md5=715fbb000594d50fb3689da29c6b0ab0" 26 | } 27 | -------------------------------------------------------------------------------- /bench.esy.lock/opam/ppx_tools_versioned.5.4.0/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | maintainer: "frederic.bour@lakaban.net" 3 | authors: [ 4 | "Frédéric Bour " 5 | "Alain Frisch " 6 | ] 7 | license: "MIT" 8 | homepage: "https://github.com/ocaml-ppx/ppx_tools_versioned" 9 | bug-reports: "https://github.com/ocaml-ppx/ppx_tools_versioned/issues" 10 | dev-repo: "git://github.com/ocaml-ppx/ppx_tools_versioned.git" 11 | tags: [ "syntax" ] 12 | build: [ 13 | ["dune" "subst"] {dev} 14 | ["dune" "build" "-p" name "-j" jobs] 15 | ["dune" "runtest" "-p" name "-j" jobs] {with-test} 16 | ] 17 | depends: [ 18 | "ocaml" {>= "4.02.0"} 19 | "dune" {>= "1.0"} 20 | "ocaml-migrate-parsetree" {>= "1.7.0" & < "2.0.0"} 21 | ] 22 | synopsis: "A variant of ppx_tools based on ocaml-migrate-parsetree" 23 | url { 24 | src: "https://github.com/ocaml-ppx/ppx_tools_versioned/archive/5.4.0.tar.gz" 25 | checksum: "md5=3e809a11cae99f57c051d3d0100311f6" 26 | } 27 | -------------------------------------------------------------------------------- /bench.esy.lock/opam/ppx_yojson_conv_lib.v0.14.0/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | maintainer: "Jane Street developers" 3 | authors: ["Jane Street Group, LLC"] 4 | homepage: "https://github.com/janestreet/ppx_yojson_conv_lib" 5 | bug-reports: "https://github.com/janestreet/ppx_yojson_conv_lib/issues" 6 | dev-repo: "git+https://github.com/janestreet/ppx_yojson_conv_lib.git" 7 | doc: "https://ocaml.janestreet.com/ocaml-core/latest/doc/ppx_yojson_conv_lib/index.html" 8 | license: "MIT" 9 | build: [ 10 | ["dune" "build" "-p" name "-j" jobs] 11 | ] 12 | depends: [ 13 | "ocaml" {>= "4.02.3"} 14 | "dune" {>= "2.0.0"} 15 | "yojson" {>= "1.7.0"} 16 | ] 17 | synopsis: "Runtime lib for ppx_yojson_conv" 18 | description: " 19 | Part of the Jane Street's PPX rewriters collection. 20 | " 21 | url { 22 | src: "https://ocaml.janestreet.com/ocaml-core/v0.14/files/ppx_yojson_conv_lib-v0.14.0.tar.gz" 23 | checksum: "md5=e23c5593a7211ad4fb09e26e9a74698a" 24 | } 25 | -------------------------------------------------------------------------------- /bench.esy.lock/opam/result.1.5/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | maintainer: "Jane Street developers" 3 | authors: ["Jane Street Group, LLC"] 4 | homepage: "https://github.com/janestreet/result" 5 | dev-repo: "git+https://github.com/janestreet/result.git" 6 | bug-reports: "https://github.com/janestreet/result/issues" 7 | license: "BSD-3-Clause" 8 | build: [["dune" "build" "-p" name "-j" jobs]] 9 | depends: [ 10 | "ocaml" 11 | "dune" {>= "1.0"} 12 | ] 13 | synopsis: "Compatibility Result module" 14 | description: """ 15 | Projects that want to use the new result type defined in OCaml >= 4.03 16 | while staying compatible with older version of OCaml should use the 17 | Result module defined in this library.""" 18 | url { 19 | src: 20 | "https://github.com/janestreet/result/releases/download/1.5/result-1.5.tbz" 21 | checksum: "md5=1b82dec78849680b49ae9a8a365b831b" 22 | } 23 | -------------------------------------------------------------------------------- /bench.esy.lock/opam/seq.base/files/META.seq: -------------------------------------------------------------------------------- 1 | name="seq" 2 | version="[distributed with OCaml 4.07 or above]" 3 | description="dummy backward-compatibility package for iterators" 4 | requires="" 5 | -------------------------------------------------------------------------------- /bench.esy.lock/opam/seq.base/files/seq.install: -------------------------------------------------------------------------------- 1 | lib:[ 2 | "META.seq" {"META"} 3 | ] 4 | -------------------------------------------------------------------------------- /bench.esy.lock/opam/seq.base/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | maintainer: " " 3 | authors: " " 4 | homepage: " " 5 | depends: [ 6 | "ocaml" {>= "4.07.0"} 7 | ] 8 | dev-repo: "git+https://github.com/ocaml/ocaml.git" 9 | bug-reports: "https://caml.inria.fr/mantis/main_page.php" 10 | synopsis: 11 | "Compatibility package for OCaml's standard iterator type starting from 4.07." 12 | extra-files: [ 13 | ["seq.install" "md5=026b31e1df290373198373d5aaa26e42"] 14 | ["META.seq" "md5=b33c8a1a6c7ed797816ce27df4855107"] 15 | ] 16 | -------------------------------------------------------------------------------- /bench.esy.lock/overrides/opam__s__conf_pkg_config_opam__c__2_opam_override/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "build": [ 3 | [ 4 | "pkg-config", 5 | "--help" 6 | ] 7 | ], 8 | "dependencies": { 9 | "yarn-pkg-config": "esy-ocaml/yarn-pkg-config#db3a0b63883606dd57c54a7158d560d6cba8cd79" 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /bench.esy.lock/overrides/opam__s__ctypes_opam__c__0.15.1_opam_override/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "exportedEnv": { 3 | "CAML_LD_LIBRARY_PATH": { 4 | "val": "#{self.lib / 'ctypes' : $CAML_LD_LIBRARY_PATH}", 5 | "scope": "global" 6 | } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /bench.esy.lock/overrides/opam__s__ocamlbuild_opam__c__0.14.0_opam_override/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "build": [ 3 | [ 4 | "bash", 5 | "-c", 6 | "#{os == 'windows' ? 'patch -p1 < ocamlbuild-0.14.0.patch' : 'true'}" 7 | ], 8 | [ 9 | "make", 10 | "-f", 11 | "configure.make", 12 | "all", 13 | "OCAMLBUILD_PREFIX=#{self.install}", 14 | "OCAMLBUILD_BINDIR=#{self.bin}", 15 | "OCAMLBUILD_LIBDIR=#{self.lib}", 16 | "OCAMLBUILD_MANDIR=#{self.man}", 17 | "OCAMLBUILD_NATIVE=true", 18 | "OCAMLBUILD_NATIVE_TOOLS=true" 19 | ], 20 | [ 21 | "make", 22 | "check-if-preinstalled", 23 | "all", 24 | "#{os == 'windows' ? 'install' : 'opam-install'}" 25 | ] 26 | ] 27 | } 28 | -------------------------------------------------------------------------------- /bench.json: -------------------------------------------------------------------------------- 1 | { 2 | "source": "./package.json", 3 | "scripts": { 4 | "run": "esy '@bench' x ReveryBench" 5 | }, 6 | "override": { 7 | "build": ["dune build -p reason-harfbuzz,reason-skia,reason-sdl2,Revery,ReveryBench -j4"], 8 | "install": [ 9 | "esy-installer ReveryBench.install" 10 | ] 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /bench/exe/Bench.re: -------------------------------------------------------------------------------- 1 | ReveryBench.BenchFramework.cli(); 2 | Skia_Bench.BenchFramework.cli(); 3 | -------------------------------------------------------------------------------- /bench/exe/TestFont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/revery-ui/revery/141f70f69d6abd69674b46d805a783411b38cd79/bench/exe/TestFont.ttf -------------------------------------------------------------------------------- /bench/exe/dune: -------------------------------------------------------------------------------- 1 | (executable 2 | (name bench) 3 | (public_name ReveryBench) 4 | (libraries ReveryBench.lib Skia_Bench) 5 | (package ReveryBench)) 6 | 7 | (install 8 | (section bin) 9 | (package ReveryBench) 10 | (files TestFont.ttf)) 11 | -------------------------------------------------------------------------------- /bench/lib/BenchFramework.re: -------------------------------------------------------------------------------- 1 | include Reperf.Make({ 2 | let config = Reperf.Config.create(~snapshotDir="bench/__snapshots__", ()); 3 | }); 4 | -------------------------------------------------------------------------------- /bench/lib/NodeUtility.re: -------------------------------------------------------------------------------- 1 | open Revery.UI; 2 | 3 | let setupNode = (~style, ()) => { 4 | let n = (new node)(); 5 | n#setStyle(style); 6 | n; 7 | }; 8 | 9 | let rec setupNodeTree = 10 | ( 11 | ~depth: int, 12 | ~breadth: int, 13 | ~style=Style.make(~width=400, ~height=400, ()), 14 | (), 15 | ) => { 16 | let i = ref(breadth); 17 | 18 | let n = setupNode(~style, ()); 19 | 20 | while (i^ > 0 && depth > 0) { 21 | let newNode = setupNodeTree(~depth=depth - 1, ~breadth, ()); 22 | n#addChild(newNode, 0); 23 | 24 | decr(i); 25 | }; 26 | 27 | n; 28 | }; 29 | -------------------------------------------------------------------------------- /bench/lib/PaintBench.re: -------------------------------------------------------------------------------- 1 | open BenchFramework; 2 | 3 | open Revery; 4 | open Revery.Draw; 5 | 6 | let options = Reperf.Options.create(~iterations=10000, ()); 7 | 8 | module Data = { 9 | let color = Colors.red; 10 | let paint = Skia.Paint.make(); 11 | }; 12 | 13 | let setPaintColor = () => { 14 | let () = Skia.Paint.setColor(Data.paint, Revery.Color.toSkia(Data.color)); 15 | (); 16 | }; 17 | 18 | bench( 19 | ~name="Paint: Set color", 20 | ~options, 21 | ~setup=() => (), 22 | ~f=setPaintColor, 23 | (), 24 | ); 25 | -------------------------------------------------------------------------------- /bench/lib/RecalculateBench.re: -------------------------------------------------------------------------------- 1 | open BenchFramework; 2 | 3 | open Revery.UI; 4 | 5 | let options = Reperf.Options.create(~iterations=1000, ()); 6 | 7 | let recalculate = (n: node) => { 8 | n#recalculate(); 9 | }; 10 | 11 | bench( 12 | ~name="Recalculate: recalculate single node", 13 | ~options, 14 | ~setup= 15 | NodeUtility.setupNode(~style=Style.make(~width=100, ~height=100, ())), 16 | ~f=recalculate, 17 | (), 18 | ); 19 | 20 | bench( 21 | ~name="Recalculate: recalculate node tree (4 deep, 4 wide)", 22 | ~options, 23 | ~setup=NodeUtility.setupNodeTree(~depth=4, ~breadth=4), 24 | ~f=recalculate, 25 | (), 26 | ); 27 | -------------------------------------------------------------------------------- /bench/lib/SurfaceUtility.re: -------------------------------------------------------------------------------- 1 | open Skia; 2 | 3 | let makeSurface = (width, height) => { 4 | let imageInfo = Skia.ImageInfo.make(width, height, Rgba8888, Premul, None); 5 | Surface.makeRaster(imageInfo, 0, None); 6 | }; 7 | -------------------------------------------------------------------------------- /bench/lib/ViewNodeBench.re: -------------------------------------------------------------------------------- 1 | open BenchFramework; 2 | 3 | open Revery.Draw; 4 | open Revery.UI; 5 | 6 | let options = Reperf.Options.create(~iterations=10000, ()); 7 | 8 | let createViewNode = () => { 9 | let viewNode = (new viewNode)(); 10 | viewNode#recalculate(); 11 | viewNode; 12 | }; 13 | 14 | let setup = () => { 15 | let surface = SurfaceUtility.makeSurface(800l, 600l) |> Option.get; 16 | let canvas = CanvasContext.createFromSurface(surface); 17 | 18 | NodeDrawContext.create( 19 | ~dpi=1.0, 20 | ~canvasScalingFactor=1.0, 21 | ~debug=false, 22 | ~canvas, 23 | ~zIndex=0, 24 | ~opacity=1.0, 25 | (), 26 | ); 27 | }; 28 | 29 | module Data = { 30 | let viewNode = createViewNode(); 31 | }; 32 | 33 | let draw = context => { 34 | Data.viewNode#draw(context); 35 | }; 36 | 37 | bench(~name="ViewNode: draw single node", ~options, ~setup, ~f=draw, ()); 38 | -------------------------------------------------------------------------------- /bench/lib/dune: -------------------------------------------------------------------------------- 1 | (library 2 | (name ReveryBench) 3 | (public_name ReveryBench.lib) 4 | (ocamlopt_flags -linkall) 5 | (libraries Revery reperf.lib)) 6 | -------------------------------------------------------------------------------- /doc.esy.lock/.gitattributes: -------------------------------------------------------------------------------- 1 | 2 | # Set eol to LF so files aren't converted to CRLF-eol on Windows. 3 | * text eol=lf linguist-generated 4 | -------------------------------------------------------------------------------- /doc.esy.lock/.gitignore: -------------------------------------------------------------------------------- 1 | 2 | # Reset any possible .gitignore, we want all esy.lock to be un-ignored. 3 | !* 4 | -------------------------------------------------------------------------------- /doc.esy.lock/opam/base-bigarray.base/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | maintainer: "https://github.com/ocaml/opam-repository/issues" 3 | description: """ 4 | Bigarray library distributed with the OCaml compiler 5 | """ 6 | 7 | -------------------------------------------------------------------------------- /doc.esy.lock/opam/base-bytes.base/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | maintainer: " " 3 | authors: " " 4 | homepage: " " 5 | depends: [ 6 | "ocaml" {>= "4.02.0"} 7 | "ocamlfind" {>= "1.5.3"} 8 | ] 9 | synopsis: "Bytes library distributed with the OCaml compiler" 10 | -------------------------------------------------------------------------------- /doc.esy.lock/opam/base-threads.base/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | maintainer: "https://github.com/ocaml/opam-repository/issues" 3 | description: """ 4 | Threads library distributed with the OCaml compiler 5 | """ 6 | 7 | -------------------------------------------------------------------------------- /doc.esy.lock/opam/base-unix.base/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | maintainer: "https://github.com/ocaml/opam-repository/issues" 3 | description: """ 4 | Unix library distributed with the OCaml compiler 5 | """ 6 | 7 | -------------------------------------------------------------------------------- /doc.esy.lock/opam/charInfo_width.1.1.0/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | maintainer: "zandoye@gmail.com" 3 | authors: [ "ZAN DoYe" ] 4 | homepage: "https://github.com/kandu/charinfo_width/" 5 | bug-reports: "https://github.com/kandu/charinfo_width/issues" 6 | license: "MIT" 7 | dev-repo: "git://github.com/kandu/charinfo_width.git" 8 | build: [ 9 | ["dune" "build" "-p" name "-j" jobs] 10 | ["dune" "runtest" "-p" name "-j" jobs] {with-test & (ocaml:version >= "4.04.0")} 11 | ] 12 | depends: [ 13 | "ocaml" {>= "4.02.3"} 14 | "result" 15 | "camomile" {>= "1.0.0" & < "2.0~"} 16 | "dune" 17 | "ppx_expect" {with-test & < "v0.15"} 18 | ] 19 | 20 | synopsis: "Determine column width for a character" 21 | description: """ 22 | This module is implemented purely in OCaml and the width function follows the prototype of POSIX's wcwidth.""" 23 | 24 | url { 25 | src:"https://github.com/kandu/charInfo_width/archive/1.1.0.tar.gz" 26 | checksum: "md5=a539436d1da4aeb93711303f107bec7e" 27 | } 28 | -------------------------------------------------------------------------------- /doc.esy.lock/opam/fix.20201120/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | maintainer: "francois.pottier@inria.fr" 3 | authors: [ 4 | "François Pottier " 5 | ] 6 | homepage: "https://gitlab.inria.fr/fpottier/fix" 7 | dev-repo: "git+https://gitlab.inria.fr/fpottier/fix.git" 8 | bug-reports: "francois.pottier@inria.fr" 9 | build: [ 10 | ["dune" "build" "-p" name "-j" jobs] 11 | ] 12 | depends: [ 13 | "ocaml" { >= "4.03" } 14 | "dune" {>= "1.3" } 15 | ] 16 | synopsis: "Facilities for memoization and fixed points" 17 | url { 18 | src: 19 | "https://gitlab.inria.fr/fpottier/fix/-/archive/20201120/archive.tar.gz" 20 | checksum: [ 21 | "md5=7eb570b759635fe66f3556d2b1cc88e3" 22 | "sha512=344dcc619f9e8b8a6c998775b6d2dab2ea5253e6a67abe4797f76dc5dd30bc776568abce1e90477422e9db447821579889737e3531c42139708f813e983ea5d4" 23 | ] 24 | } 25 | -------------------------------------------------------------------------------- /doc.esy.lock/opam/integers.0.4.0/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | maintainer: "yallop@gmail.com" 3 | authors: ["Jeremy Yallop" 4 | "Demi Obenour" 5 | "Stephane Glondu" 6 | "Andreas Hauptmann"] 7 | homepage: "https://github.com/ocamllabs/ocaml-integers" 8 | bug-reports: "https://github.com/ocamllabs/ocaml-integers/issues" 9 | dev-repo: "git+https://github.com/ocamllabs/ocaml-integers.git" 10 | license: "MIT" 11 | 12 | build: [ 13 | ["dune" "subst"] {dev} 14 | ["dune" "build" "-p" name "-j" jobs] 15 | ["dune" "runtest" "-p" name "-j" jobs] {with-test} 16 | ] 17 | 18 | depends: [ 19 | "ocaml" {>= "4.02"} 20 | "dune" 21 | ] 22 | doc: "http://ocamllabs.github.io/ocaml-integers/api.docdir/" 23 | synopsis: "Various signed and unsigned integer types for OCaml" 24 | url { 25 | src: "https://github.com/ocamllabs/ocaml-integers/archive/0.4.0.tar.gz" 26 | checksum: "md5=c1492352e6525048790508c57aad93c3" 27 | } 28 | -------------------------------------------------------------------------------- /doc.esy.lock/opam/lwt_ppx.2.0.1/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | 3 | synopsis: "PPX syntax for Lwt, providing something similar to async/await from JavaScript" 4 | 5 | license: "MIT" 6 | homepage: "https://github.com/ocsigen/lwt" 7 | doc: "https://ocsigen.org/lwt/dev/api/Ppx_lwt" 8 | bug-reports: "https://github.com/ocsigen/lwt/issues" 9 | 10 | authors: [ 11 | "Gabriel Radanne" 12 | ] 13 | maintainer: [ 14 | "Anton Bachin " 15 | ] 16 | dev-repo: "git+https://github.com/ocsigen/lwt.git" 17 | 18 | depends: [ 19 | "dune" {>= "1.1.0"} 20 | "lwt" 21 | "ocaml" {>= "4.02.0"} 22 | "ocaml-migrate-parsetree" {>= "1.5.0" & < "2.0.0"} 23 | "ppx_tools_versioned" {>= "5.3.0"} 24 | ] 25 | 26 | build: [ 27 | ["dune" "build" "-p" name "-j" jobs] 28 | ] 29 | 30 | url { 31 | src: "https://github.com/ocsigen/lwt/archive/5.2.0.tar.gz" 32 | checksum: "md5=d5783fcff4fbfa7f79c9303776e4d144" 33 | } 34 | -------------------------------------------------------------------------------- /doc.esy.lock/opam/mmap.1.1.0/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | maintainer: "jeremie@dimino.org" 3 | authors: ["Jérémie Dimino " "Anton Bachin" ] 4 | homepage: "https://github.com/mirage/mmap" 5 | bug-reports: "https://github.com/mirage/mmap/issues" 6 | doc: "https://mirage.github.io/mmap/" 7 | dev-repo: "git+https://github.com/mirage/mmap.git" 8 | license: "LGPL-2.1-only with OCaml-LGPL-linking-exception" 9 | build: [ 10 | ["dune" "build" "-p" name "-j" jobs] 11 | ] 12 | depends: [ 13 | "ocaml" 14 | "dune" {>= "1.6"} 15 | ] 16 | synopsis: "File mapping functionality" 17 | description: """ 18 | This project provides a Mmap.map_file functions for mapping files in memory. 19 | """ 20 | url { 21 | src: 22 | "https://github.com/mirage/mmap/releases/download/v1.1.0/mmap-v1.1.0.tbz" 23 | checksum: "md5=8c5d5fbc537296dc525867535fb878ba" 24 | } 25 | -------------------------------------------------------------------------------- /doc.esy.lock/opam/ppx_derivers.1.2.1/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | maintainer: "jeremie@dimino.org" 3 | authors: ["Jérémie Dimino"] 4 | license: "BSD-3-Clause" 5 | homepage: "https://github.com/ocaml-ppx/ppx_derivers" 6 | bug-reports: "https://github.com/ocaml-ppx/ppx_derivers/issues" 7 | dev-repo: "git://github.com/ocaml-ppx/ppx_derivers.git" 8 | build: [ 9 | ["dune" "build" "-p" name "-j" jobs] 10 | ] 11 | depends: [ 12 | "ocaml" 13 | "dune" 14 | ] 15 | synopsis: "Shared [@@deriving] plugin registry" 16 | description: """ 17 | Ppx_derivers is a tiny package whose sole purpose is to allow 18 | ppx_deriving and ppx_type_conv to inter-operate gracefully when linked 19 | as part of the same ocaml-migrate-parsetree driver.""" 20 | url { 21 | src: "https://github.com/ocaml-ppx/ppx_derivers/archive/1.2.1.tar.gz" 22 | checksum: "md5=5dc2bf130c1db3c731fe0fffc5648b41" 23 | } 24 | -------------------------------------------------------------------------------- /doc.esy.lock/opam/ppx_optcomp.v0.14.0/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | maintainer: "Jane Street developers" 3 | authors: ["Jane Street Group, LLC"] 4 | homepage: "https://github.com/janestreet/ppx_optcomp" 5 | bug-reports: "https://github.com/janestreet/ppx_optcomp/issues" 6 | dev-repo: "git+https://github.com/janestreet/ppx_optcomp.git" 7 | doc: "https://ocaml.janestreet.com/ocaml-core/latest/doc/ppx_optcomp/index.html" 8 | license: "MIT" 9 | build: [ 10 | ["dune" "build" "-p" name "-j" jobs] 11 | ] 12 | depends: [ 13 | "ocaml" {>= "4.04.2"} 14 | "base" {>= "v0.14" & < "v0.15"} 15 | "stdio" {>= "v0.14" & < "v0.15"} 16 | "dune" {>= "2.0.0"} 17 | "ppxlib" {>= "0.11.0" & < "0.18.0"} 18 | ] 19 | synopsis: "Optional compilation for OCaml" 20 | description: " 21 | Part of the Jane Street's PPX rewriters collection. 22 | " 23 | url { 24 | src: "https://ocaml.janestreet.com/ocaml-core/v0.14/files/ppx_optcomp-v0.14.0.tar.gz" 25 | checksum: "md5=715fbb000594d50fb3689da29c6b0ab0" 26 | } 27 | -------------------------------------------------------------------------------- /doc.esy.lock/opam/ppx_tools_versioned.5.4.0/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | maintainer: "frederic.bour@lakaban.net" 3 | authors: [ 4 | "Frédéric Bour " 5 | "Alain Frisch " 6 | ] 7 | license: "MIT" 8 | homepage: "https://github.com/ocaml-ppx/ppx_tools_versioned" 9 | bug-reports: "https://github.com/ocaml-ppx/ppx_tools_versioned/issues" 10 | dev-repo: "git://github.com/ocaml-ppx/ppx_tools_versioned.git" 11 | tags: [ "syntax" ] 12 | build: [ 13 | ["dune" "subst"] {dev} 14 | ["dune" "build" "-p" name "-j" jobs] 15 | ["dune" "runtest" "-p" name "-j" jobs] {with-test} 16 | ] 17 | depends: [ 18 | "ocaml" {>= "4.02.0"} 19 | "dune" {>= "1.0"} 20 | "ocaml-migrate-parsetree" {>= "1.7.0" & < "2.0.0"} 21 | ] 22 | synopsis: "A variant of ppx_tools based on ocaml-migrate-parsetree" 23 | url { 24 | src: "https://github.com/ocaml-ppx/ppx_tools_versioned/archive/5.4.0.tar.gz" 25 | checksum: "md5=3e809a11cae99f57c051d3d0100311f6" 26 | } 27 | -------------------------------------------------------------------------------- /doc.esy.lock/opam/ppx_yojson_conv_lib.v0.14.0/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | maintainer: "Jane Street developers" 3 | authors: ["Jane Street Group, LLC"] 4 | homepage: "https://github.com/janestreet/ppx_yojson_conv_lib" 5 | bug-reports: "https://github.com/janestreet/ppx_yojson_conv_lib/issues" 6 | dev-repo: "git+https://github.com/janestreet/ppx_yojson_conv_lib.git" 7 | doc: "https://ocaml.janestreet.com/ocaml-core/latest/doc/ppx_yojson_conv_lib/index.html" 8 | license: "MIT" 9 | build: [ 10 | ["dune" "build" "-p" name "-j" jobs] 11 | ] 12 | depends: [ 13 | "ocaml" {>= "4.02.3"} 14 | "dune" {>= "2.0.0"} 15 | "yojson" {>= "1.7.0"} 16 | ] 17 | synopsis: "Runtime lib for ppx_yojson_conv" 18 | description: " 19 | Part of the Jane Street's PPX rewriters collection. 20 | " 21 | url { 22 | src: "https://ocaml.janestreet.com/ocaml-core/v0.14/files/ppx_yojson_conv_lib-v0.14.0.tar.gz" 23 | checksum: "md5=e23c5593a7211ad4fb09e26e9a74698a" 24 | } 25 | -------------------------------------------------------------------------------- /doc.esy.lock/opam/result.1.5/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | maintainer: "Jane Street developers" 3 | authors: ["Jane Street Group, LLC"] 4 | homepage: "https://github.com/janestreet/result" 5 | dev-repo: "git+https://github.com/janestreet/result.git" 6 | bug-reports: "https://github.com/janestreet/result/issues" 7 | license: "BSD-3-Clause" 8 | build: [["dune" "build" "-p" name "-j" jobs]] 9 | depends: [ 10 | "ocaml" 11 | "dune" {>= "1.0"} 12 | ] 13 | synopsis: "Compatibility Result module" 14 | description: """ 15 | Projects that want to use the new result type defined in OCaml >= 4.03 16 | while staying compatible with older version of OCaml should use the 17 | Result module defined in this library.""" 18 | url { 19 | src: 20 | "https://github.com/janestreet/result/releases/download/1.5/result-1.5.tbz" 21 | checksum: "md5=1b82dec78849680b49ae9a8a365b831b" 22 | } 23 | -------------------------------------------------------------------------------- /doc.esy.lock/opam/seq.base/files/META.seq: -------------------------------------------------------------------------------- 1 | name="seq" 2 | version="[distributed with OCaml 4.07 or above]" 3 | description="dummy backward-compatibility package for iterators" 4 | requires="" 5 | -------------------------------------------------------------------------------- /doc.esy.lock/opam/seq.base/files/seq.install: -------------------------------------------------------------------------------- 1 | lib:[ 2 | "META.seq" {"META"} 3 | ] 4 | -------------------------------------------------------------------------------- /doc.esy.lock/opam/seq.base/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | maintainer: " " 3 | authors: " " 4 | homepage: " " 5 | depends: [ 6 | "ocaml" {>= "4.07.0"} 7 | ] 8 | dev-repo: "git+https://github.com/ocaml/ocaml.git" 9 | bug-reports: "https://caml.inria.fr/mantis/main_page.php" 10 | synopsis: 11 | "Compatibility package for OCaml's standard iterator type starting from 4.07." 12 | extra-files: [ 13 | ["seq.install" "md5=026b31e1df290373198373d5aaa26e42"] 14 | ["META.seq" "md5=b33c8a1a6c7ed797816ce27df4855107"] 15 | ] 16 | -------------------------------------------------------------------------------- /doc.esy.lock/overrides/opam__s__conf_pkg_config_opam__c__2_opam_override/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "build": [ 3 | [ 4 | "pkg-config", 5 | "--help" 6 | ] 7 | ], 8 | "dependencies": { 9 | "yarn-pkg-config": "esy-ocaml/yarn-pkg-config#db3a0b63883606dd57c54a7158d560d6cba8cd79" 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /doc.esy.lock/overrides/opam__s__ctypes_opam__c__0.15.1_opam_override/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "exportedEnv": { 3 | "CAML_LD_LIBRARY_PATH": { 4 | "val": "#{self.lib / 'ctypes' : $CAML_LD_LIBRARY_PATH}", 5 | "scope": "global" 6 | } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /doc.esy.lock/overrides/opam__s__ocamlbuild_opam__c__0.14.0_opam_override/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "build": [ 3 | [ 4 | "bash", 5 | "-c", 6 | "#{os == 'windows' ? 'patch -p1 < ocamlbuild-0.14.0.patch' : 'true'}" 7 | ], 8 | [ 9 | "make", 10 | "-f", 11 | "configure.make", 12 | "all", 13 | "OCAMLBUILD_PREFIX=#{self.install}", 14 | "OCAMLBUILD_BINDIR=#{self.bin}", 15 | "OCAMLBUILD_LIBDIR=#{self.lib}", 16 | "OCAMLBUILD_MANDIR=#{self.man}", 17 | "OCAMLBUILD_NATIVE=true", 18 | "OCAMLBUILD_NATIVE_TOOLS=true" 19 | ], 20 | [ 21 | "make", 22 | "check-if-preinstalled", 23 | "all", 24 | "#{os == 'windows' ? 'install' : 'opam-install'}" 25 | ] 26 | ] 27 | } 28 | -------------------------------------------------------------------------------- /doc.json: -------------------------------------------------------------------------------- 1 | { 2 | "source": "./package.json", 3 | "scripts": { 4 | "run": "esy '@doc' x http-server #{self.target_dir}/default/_doc/_html", 5 | "print": "esy '@doc' echo #{self.target_dir}/default/_doc/_html" 6 | }, 7 | "override": { 8 | "build": ["dune build @doc -p reason-harfbuzz,reason-skia,reason-sdl2,Revery -j4"], 9 | "dependencies": { 10 | "@opam/odoc": "*", 11 | "http-server": "*" 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /dune: -------------------------------------------------------------------------------- 1 | (dirs src packages test examples bench) 2 | -------------------------------------------------------------------------------- /dune-project: -------------------------------------------------------------------------------- 1 | (lang dune 2.5) 2 | 3 | (formatting (enabled_for reason)) 4 | -------------------------------------------------------------------------------- /dune-workspace: -------------------------------------------------------------------------------- 1 | (lang dune 2.0) 2 | (context (default 3 | (disable_dynamically_linked_foreign_archives true))) 4 | -------------------------------------------------------------------------------- /esy.lock/.gitattributes: -------------------------------------------------------------------------------- 1 | 2 | # Set eol to LF so files aren't converted to CRLF-eol on Windows. 3 | * text eol=lf linguist-generated 4 | -------------------------------------------------------------------------------- /esy.lock/.gitignore: -------------------------------------------------------------------------------- 1 | 2 | # Reset any possible .gitignore, we want all esy.lock to be un-ignored. 3 | !* 4 | -------------------------------------------------------------------------------- /esy.lock/opam/base-bigarray.base/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | maintainer: "https://github.com/ocaml/opam-repository/issues" 3 | description: """ 4 | Bigarray library distributed with the OCaml compiler 5 | """ 6 | 7 | -------------------------------------------------------------------------------- /esy.lock/opam/base-bytes.base/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | maintainer: " " 3 | authors: " " 4 | homepage: " " 5 | depends: [ 6 | "ocaml" {>= "4.02.0"} 7 | "ocamlfind" {>= "1.5.3"} 8 | ] 9 | synopsis: "Bytes library distributed with the OCaml compiler" 10 | -------------------------------------------------------------------------------- /esy.lock/opam/base-threads.base/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | maintainer: "https://github.com/ocaml/opam-repository/issues" 3 | description: """ 4 | Threads library distributed with the OCaml compiler 5 | """ 6 | 7 | -------------------------------------------------------------------------------- /esy.lock/opam/base-unix.base/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | maintainer: "https://github.com/ocaml/opam-repository/issues" 3 | description: """ 4 | Unix library distributed with the OCaml compiler 5 | """ 6 | 7 | -------------------------------------------------------------------------------- /esy.lock/opam/charInfo_width.1.1.0/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | maintainer: "zandoye@gmail.com" 3 | authors: [ "ZAN DoYe" ] 4 | homepage: "https://github.com/kandu/charinfo_width/" 5 | bug-reports: "https://github.com/kandu/charinfo_width/issues" 6 | license: "MIT" 7 | dev-repo: "git://github.com/kandu/charinfo_width.git" 8 | build: [ 9 | ["dune" "build" "-p" name "-j" jobs] 10 | ["dune" "runtest" "-p" name "-j" jobs] {with-test & (ocaml:version >= "4.04.0")} 11 | ] 12 | depends: [ 13 | "ocaml" {>= "4.02.3"} 14 | "result" 15 | "camomile" {>= "1.0.0" & < "2.0~"} 16 | "dune" 17 | "ppx_expect" {with-test & < "v0.15"} 18 | ] 19 | 20 | synopsis: "Determine column width for a character" 21 | description: """ 22 | This module is implemented purely in OCaml and the width function follows the prototype of POSIX's wcwidth.""" 23 | 24 | url { 25 | src:"https://github.com/kandu/charInfo_width/archive/1.1.0.tar.gz" 26 | checksum: "md5=a539436d1da4aeb93711303f107bec7e" 27 | } 28 | -------------------------------------------------------------------------------- /esy.lock/opam/fix.20201120/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | maintainer: "francois.pottier@inria.fr" 3 | authors: [ 4 | "François Pottier " 5 | ] 6 | homepage: "https://gitlab.inria.fr/fpottier/fix" 7 | dev-repo: "git+https://gitlab.inria.fr/fpottier/fix.git" 8 | bug-reports: "francois.pottier@inria.fr" 9 | build: [ 10 | ["dune" "build" "-p" name "-j" jobs] 11 | ] 12 | depends: [ 13 | "ocaml" { >= "4.03" } 14 | "dune" {>= "1.3" } 15 | ] 16 | synopsis: "Facilities for memoization and fixed points" 17 | url { 18 | src: 19 | "https://gitlab.inria.fr/fpottier/fix/-/archive/20201120/archive.tar.gz" 20 | checksum: [ 21 | "md5=7eb570b759635fe66f3556d2b1cc88e3" 22 | "sha512=344dcc619f9e8b8a6c998775b6d2dab2ea5253e6a67abe4797f76dc5dd30bc776568abce1e90477422e9db447821579889737e3531c42139708f813e983ea5d4" 23 | ] 24 | } 25 | -------------------------------------------------------------------------------- /esy.lock/opam/integers.0.4.0/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | maintainer: "yallop@gmail.com" 3 | authors: ["Jeremy Yallop" 4 | "Demi Obenour" 5 | "Stephane Glondu" 6 | "Andreas Hauptmann"] 7 | homepage: "https://github.com/ocamllabs/ocaml-integers" 8 | bug-reports: "https://github.com/ocamllabs/ocaml-integers/issues" 9 | dev-repo: "git+https://github.com/ocamllabs/ocaml-integers.git" 10 | license: "MIT" 11 | 12 | build: [ 13 | ["dune" "subst"] {dev} 14 | ["dune" "build" "-p" name "-j" jobs] 15 | ["dune" "runtest" "-p" name "-j" jobs] {with-test} 16 | ] 17 | 18 | depends: [ 19 | "ocaml" {>= "4.02"} 20 | "dune" 21 | ] 22 | doc: "http://ocamllabs.github.io/ocaml-integers/api.docdir/" 23 | synopsis: "Various signed and unsigned integer types for OCaml" 24 | url { 25 | src: "https://github.com/ocamllabs/ocaml-integers/archive/0.4.0.tar.gz" 26 | checksum: "md5=c1492352e6525048790508c57aad93c3" 27 | } 28 | -------------------------------------------------------------------------------- /esy.lock/opam/lwt_ppx.2.0.1/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | 3 | synopsis: "PPX syntax for Lwt, providing something similar to async/await from JavaScript" 4 | 5 | license: "MIT" 6 | homepage: "https://github.com/ocsigen/lwt" 7 | doc: "https://ocsigen.org/lwt/dev/api/Ppx_lwt" 8 | bug-reports: "https://github.com/ocsigen/lwt/issues" 9 | 10 | authors: [ 11 | "Gabriel Radanne" 12 | ] 13 | maintainer: [ 14 | "Anton Bachin " 15 | ] 16 | dev-repo: "git+https://github.com/ocsigen/lwt.git" 17 | 18 | depends: [ 19 | "dune" {>= "1.1.0"} 20 | "lwt" 21 | "ocaml" {>= "4.02.0"} 22 | "ocaml-migrate-parsetree" {>= "1.5.0" & < "2.0.0"} 23 | "ppx_tools_versioned" {>= "5.3.0"} 24 | ] 25 | 26 | build: [ 27 | ["dune" "build" "-p" name "-j" jobs] 28 | ] 29 | 30 | url { 31 | src: "https://github.com/ocsigen/lwt/archive/5.2.0.tar.gz" 32 | checksum: "md5=d5783fcff4fbfa7f79c9303776e4d144" 33 | } 34 | -------------------------------------------------------------------------------- /esy.lock/opam/mmap.1.1.0/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | maintainer: "jeremie@dimino.org" 3 | authors: ["Jérémie Dimino " "Anton Bachin" ] 4 | homepage: "https://github.com/mirage/mmap" 5 | bug-reports: "https://github.com/mirage/mmap/issues" 6 | doc: "https://mirage.github.io/mmap/" 7 | dev-repo: "git+https://github.com/mirage/mmap.git" 8 | license: "LGPL-2.1-only with OCaml-LGPL-linking-exception" 9 | build: [ 10 | ["dune" "build" "-p" name "-j" jobs] 11 | ] 12 | depends: [ 13 | "ocaml" 14 | "dune" {>= "1.6"} 15 | ] 16 | synopsis: "File mapping functionality" 17 | description: """ 18 | This project provides a Mmap.map_file functions for mapping files in memory. 19 | """ 20 | url { 21 | src: 22 | "https://github.com/mirage/mmap/releases/download/v1.1.0/mmap-v1.1.0.tbz" 23 | checksum: "md5=8c5d5fbc537296dc525867535fb878ba" 24 | } 25 | -------------------------------------------------------------------------------- /esy.lock/opam/ppx_derivers.1.2.1/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | maintainer: "jeremie@dimino.org" 3 | authors: ["Jérémie Dimino"] 4 | license: "BSD-3-Clause" 5 | homepage: "https://github.com/ocaml-ppx/ppx_derivers" 6 | bug-reports: "https://github.com/ocaml-ppx/ppx_derivers/issues" 7 | dev-repo: "git://github.com/ocaml-ppx/ppx_derivers.git" 8 | build: [ 9 | ["dune" "build" "-p" name "-j" jobs] 10 | ] 11 | depends: [ 12 | "ocaml" 13 | "dune" 14 | ] 15 | synopsis: "Shared [@@deriving] plugin registry" 16 | description: """ 17 | Ppx_derivers is a tiny package whose sole purpose is to allow 18 | ppx_deriving and ppx_type_conv to inter-operate gracefully when linked 19 | as part of the same ocaml-migrate-parsetree driver.""" 20 | url { 21 | src: "https://github.com/ocaml-ppx/ppx_derivers/archive/1.2.1.tar.gz" 22 | checksum: "md5=5dc2bf130c1db3c731fe0fffc5648b41" 23 | } 24 | -------------------------------------------------------------------------------- /esy.lock/opam/ppx_optcomp.v0.14.0/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | maintainer: "Jane Street developers" 3 | authors: ["Jane Street Group, LLC"] 4 | homepage: "https://github.com/janestreet/ppx_optcomp" 5 | bug-reports: "https://github.com/janestreet/ppx_optcomp/issues" 6 | dev-repo: "git+https://github.com/janestreet/ppx_optcomp.git" 7 | doc: "https://ocaml.janestreet.com/ocaml-core/latest/doc/ppx_optcomp/index.html" 8 | license: "MIT" 9 | build: [ 10 | ["dune" "build" "-p" name "-j" jobs] 11 | ] 12 | depends: [ 13 | "ocaml" {>= "4.04.2"} 14 | "base" {>= "v0.14" & < "v0.15"} 15 | "stdio" {>= "v0.14" & < "v0.15"} 16 | "dune" {>= "2.0.0"} 17 | "ppxlib" {>= "0.11.0" & < "0.18.0"} 18 | ] 19 | synopsis: "Optional compilation for OCaml" 20 | description: " 21 | Part of the Jane Street's PPX rewriters collection. 22 | " 23 | url { 24 | src: "https://ocaml.janestreet.com/ocaml-core/v0.14/files/ppx_optcomp-v0.14.0.tar.gz" 25 | checksum: "md5=715fbb000594d50fb3689da29c6b0ab0" 26 | } 27 | -------------------------------------------------------------------------------- /esy.lock/opam/ppx_tools_versioned.5.4.0/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | maintainer: "frederic.bour@lakaban.net" 3 | authors: [ 4 | "Frédéric Bour " 5 | "Alain Frisch " 6 | ] 7 | license: "MIT" 8 | homepage: "https://github.com/ocaml-ppx/ppx_tools_versioned" 9 | bug-reports: "https://github.com/ocaml-ppx/ppx_tools_versioned/issues" 10 | dev-repo: "git://github.com/ocaml-ppx/ppx_tools_versioned.git" 11 | tags: [ "syntax" ] 12 | build: [ 13 | ["dune" "subst"] {dev} 14 | ["dune" "build" "-p" name "-j" jobs] 15 | ["dune" "runtest" "-p" name "-j" jobs] {with-test} 16 | ] 17 | depends: [ 18 | "ocaml" {>= "4.02.0"} 19 | "dune" {>= "1.0"} 20 | "ocaml-migrate-parsetree" {>= "1.7.0" & < "2.0.0"} 21 | ] 22 | synopsis: "A variant of ppx_tools based on ocaml-migrate-parsetree" 23 | url { 24 | src: "https://github.com/ocaml-ppx/ppx_tools_versioned/archive/5.4.0.tar.gz" 25 | checksum: "md5=3e809a11cae99f57c051d3d0100311f6" 26 | } 27 | -------------------------------------------------------------------------------- /esy.lock/opam/ppx_yojson_conv_lib.v0.14.0/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | maintainer: "Jane Street developers" 3 | authors: ["Jane Street Group, LLC"] 4 | homepage: "https://github.com/janestreet/ppx_yojson_conv_lib" 5 | bug-reports: "https://github.com/janestreet/ppx_yojson_conv_lib/issues" 6 | dev-repo: "git+https://github.com/janestreet/ppx_yojson_conv_lib.git" 7 | doc: "https://ocaml.janestreet.com/ocaml-core/latest/doc/ppx_yojson_conv_lib/index.html" 8 | license: "MIT" 9 | build: [ 10 | ["dune" "build" "-p" name "-j" jobs] 11 | ] 12 | depends: [ 13 | "ocaml" {>= "4.02.3"} 14 | "dune" {>= "2.0.0"} 15 | "yojson" {>= "1.7.0"} 16 | ] 17 | synopsis: "Runtime lib for ppx_yojson_conv" 18 | description: " 19 | Part of the Jane Street's PPX rewriters collection. 20 | " 21 | url { 22 | src: "https://ocaml.janestreet.com/ocaml-core/v0.14/files/ppx_yojson_conv_lib-v0.14.0.tar.gz" 23 | checksum: "md5=e23c5593a7211ad4fb09e26e9a74698a" 24 | } 25 | -------------------------------------------------------------------------------- /esy.lock/opam/result.1.5/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | maintainer: "Jane Street developers" 3 | authors: ["Jane Street Group, LLC"] 4 | homepage: "https://github.com/janestreet/result" 5 | dev-repo: "git+https://github.com/janestreet/result.git" 6 | bug-reports: "https://github.com/janestreet/result/issues" 7 | license: "BSD-3-Clause" 8 | build: [["dune" "build" "-p" name "-j" jobs]] 9 | depends: [ 10 | "ocaml" 11 | "dune" {>= "1.0"} 12 | ] 13 | synopsis: "Compatibility Result module" 14 | description: """ 15 | Projects that want to use the new result type defined in OCaml >= 4.03 16 | while staying compatible with older version of OCaml should use the 17 | Result module defined in this library.""" 18 | url { 19 | src: 20 | "https://github.com/janestreet/result/releases/download/1.5/result-1.5.tbz" 21 | checksum: "md5=1b82dec78849680b49ae9a8a365b831b" 22 | } 23 | -------------------------------------------------------------------------------- /esy.lock/opam/seq.base/files/META.seq: -------------------------------------------------------------------------------- 1 | name="seq" 2 | version="[distributed with OCaml 4.07 or above]" 3 | description="dummy backward-compatibility package for iterators" 4 | requires="" 5 | -------------------------------------------------------------------------------- /esy.lock/opam/seq.base/files/seq.install: -------------------------------------------------------------------------------- 1 | lib:[ 2 | "META.seq" {"META"} 3 | ] 4 | -------------------------------------------------------------------------------- /esy.lock/opam/seq.base/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | maintainer: " " 3 | authors: " " 4 | homepage: " " 5 | depends: [ 6 | "ocaml" {>= "4.07.0"} 7 | ] 8 | dev-repo: "git+https://github.com/ocaml/ocaml.git" 9 | bug-reports: "https://caml.inria.fr/mantis/main_page.php" 10 | synopsis: 11 | "Compatibility package for OCaml's standard iterator type starting from 4.07." 12 | extra-files: [ 13 | ["seq.install" "md5=026b31e1df290373198373d5aaa26e42"] 14 | ["META.seq" "md5=b33c8a1a6c7ed797816ce27df4855107"] 15 | ] 16 | -------------------------------------------------------------------------------- /esy.lock/opam/stdio.v0.14.0/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | maintainer: "Jane Street developers" 3 | authors: ["Jane Street Group, LLC"] 4 | homepage: "https://github.com/janestreet/stdio" 5 | bug-reports: "https://github.com/janestreet/stdio/issues" 6 | dev-repo: "git+https://github.com/janestreet/stdio.git" 7 | doc: "https://ocaml.janestreet.com/ocaml-core/latest/doc/stdio/index.html" 8 | license: "MIT" 9 | build: [ 10 | ["dune" "build" "-p" name "-j" jobs] 11 | ] 12 | depends: [ 13 | "ocaml" {>= "4.04.2"} 14 | "base" {>= "v0.14" & < "v0.15"} 15 | "dune" {>= "2.0.0"} 16 | ] 17 | synopsis: "Standard IO library for OCaml" 18 | description: " 19 | Stdio implements simple input/output functionalities for OCaml. 20 | 21 | It re-exports the input/output functions of the OCaml standard 22 | libraries using a more consistent API. 23 | " 24 | url { 25 | src: "https://ocaml.janestreet.com/ocaml-core/v0.14/files/stdio-v0.14.0.tar.gz" 26 | checksum: "md5=4cbdf15f0be88c3258aaeff9e04e00e9" 27 | } 28 | -------------------------------------------------------------------------------- /esy.lock/overrides/opam__s__conf_pkg_config_opam__c__2_opam_override/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "build": [ 3 | [ 4 | "pkg-config", 5 | "--help" 6 | ] 7 | ], 8 | "dependencies": { 9 | "yarn-pkg-config": "esy-ocaml/yarn-pkg-config#db3a0b63883606dd57c54a7158d560d6cba8cd79" 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /esy.lock/overrides/opam__s__ctypes_opam__c__0.15.1_opam_override/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "exportedEnv": { 3 | "CAML_LD_LIBRARY_PATH": { 4 | "val": "#{self.lib / 'ctypes' : $CAML_LD_LIBRARY_PATH}", 5 | "scope": "global" 6 | } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /esy.lock/overrides/opam__s__ocamlbuild_opam__c__0.14.0_opam_override/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "build": [ 3 | [ 4 | "bash", 5 | "-c", 6 | "#{os == 'windows' ? 'patch -p1 < ocamlbuild-0.14.0.patch' : 'true'}" 7 | ], 8 | [ 9 | "make", 10 | "-f", 11 | "configure.make", 12 | "all", 13 | "OCAMLBUILD_PREFIX=#{self.install}", 14 | "OCAMLBUILD_BINDIR=#{self.bin}", 15 | "OCAMLBUILD_LIBDIR=#{self.lib}", 16 | "OCAMLBUILD_MANDIR=#{self.man}", 17 | "OCAMLBUILD_NATIVE=true", 18 | "OCAMLBUILD_NATIVE_TOOLS=true" 19 | ], 20 | [ 21 | "make", 22 | "check-if-preinstalled", 23 | "all", 24 | "#{os == 'windows' ? 'install' : 'opam-install'}" 25 | ] 26 | ] 27 | } 28 | -------------------------------------------------------------------------------- /examples.esy.lock/.gitattributes: -------------------------------------------------------------------------------- 1 | 2 | # Set eol to LF so files aren't converted to CRLF-eol on Windows. 3 | * text eol=lf linguist-generated 4 | -------------------------------------------------------------------------------- /examples.esy.lock/.gitignore: -------------------------------------------------------------------------------- 1 | 2 | # Reset any possible .gitignore, we want all esy.lock to be un-ignored. 3 | !* 4 | -------------------------------------------------------------------------------- /examples.esy.lock/opam/base-bigarray.base/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | maintainer: "https://github.com/ocaml/opam-repository/issues" 3 | description: """ 4 | Bigarray library distributed with the OCaml compiler 5 | """ 6 | 7 | -------------------------------------------------------------------------------- /examples.esy.lock/opam/base-bytes.base/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | maintainer: " " 3 | authors: " " 4 | homepage: " " 5 | depends: [ 6 | "ocaml" {>= "4.02.0"} 7 | "ocamlfind" {>= "1.5.3"} 8 | ] 9 | synopsis: "Bytes library distributed with the OCaml compiler" 10 | -------------------------------------------------------------------------------- /examples.esy.lock/opam/base-threads.base/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | maintainer: "https://github.com/ocaml/opam-repository/issues" 3 | description: """ 4 | Threads library distributed with the OCaml compiler 5 | """ 6 | 7 | -------------------------------------------------------------------------------- /examples.esy.lock/opam/base-unix.base/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | maintainer: "https://github.com/ocaml/opam-repository/issues" 3 | description: """ 4 | Unix library distributed with the OCaml compiler 5 | """ 6 | 7 | -------------------------------------------------------------------------------- /examples.esy.lock/opam/charInfo_width.1.1.0/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | maintainer: "zandoye@gmail.com" 3 | authors: [ "ZAN DoYe" ] 4 | homepage: "https://github.com/kandu/charinfo_width/" 5 | bug-reports: "https://github.com/kandu/charinfo_width/issues" 6 | license: "MIT" 7 | dev-repo: "git://github.com/kandu/charinfo_width.git" 8 | build: [ 9 | ["dune" "build" "-p" name "-j" jobs] 10 | ["dune" "runtest" "-p" name "-j" jobs] {with-test & (ocaml:version >= "4.04.0")} 11 | ] 12 | depends: [ 13 | "ocaml" {>= "4.02.3"} 14 | "result" 15 | "camomile" {>= "1.0.0" & < "2.0~"} 16 | "dune" 17 | "ppx_expect" {with-test & < "v0.15"} 18 | ] 19 | 20 | synopsis: "Determine column width for a character" 21 | description: """ 22 | This module is implemented purely in OCaml and the width function follows the prototype of POSIX's wcwidth.""" 23 | 24 | url { 25 | src:"https://github.com/kandu/charInfo_width/archive/1.1.0.tar.gz" 26 | checksum: "md5=a539436d1da4aeb93711303f107bec7e" 27 | } 28 | -------------------------------------------------------------------------------- /examples.esy.lock/opam/fix.20201120/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | maintainer: "francois.pottier@inria.fr" 3 | authors: [ 4 | "François Pottier " 5 | ] 6 | homepage: "https://gitlab.inria.fr/fpottier/fix" 7 | dev-repo: "git+https://gitlab.inria.fr/fpottier/fix.git" 8 | bug-reports: "francois.pottier@inria.fr" 9 | build: [ 10 | ["dune" "build" "-p" name "-j" jobs] 11 | ] 12 | depends: [ 13 | "ocaml" { >= "4.03" } 14 | "dune" {>= "1.3" } 15 | ] 16 | synopsis: "Facilities for memoization and fixed points" 17 | url { 18 | src: 19 | "https://gitlab.inria.fr/fpottier/fix/-/archive/20201120/archive.tar.gz" 20 | checksum: [ 21 | "md5=7eb570b759635fe66f3556d2b1cc88e3" 22 | "sha512=344dcc619f9e8b8a6c998775b6d2dab2ea5253e6a67abe4797f76dc5dd30bc776568abce1e90477422e9db447821579889737e3531c42139708f813e983ea5d4" 23 | ] 24 | } 25 | -------------------------------------------------------------------------------- /examples.esy.lock/opam/integers.0.4.0/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | maintainer: "yallop@gmail.com" 3 | authors: ["Jeremy Yallop" 4 | "Demi Obenour" 5 | "Stephane Glondu" 6 | "Andreas Hauptmann"] 7 | homepage: "https://github.com/ocamllabs/ocaml-integers" 8 | bug-reports: "https://github.com/ocamllabs/ocaml-integers/issues" 9 | dev-repo: "git+https://github.com/ocamllabs/ocaml-integers.git" 10 | license: "MIT" 11 | 12 | build: [ 13 | ["dune" "subst"] {dev} 14 | ["dune" "build" "-p" name "-j" jobs] 15 | ["dune" "runtest" "-p" name "-j" jobs] {with-test} 16 | ] 17 | 18 | depends: [ 19 | "ocaml" {>= "4.02"} 20 | "dune" 21 | ] 22 | doc: "http://ocamllabs.github.io/ocaml-integers/api.docdir/" 23 | synopsis: "Various signed and unsigned integer types for OCaml" 24 | url { 25 | src: "https://github.com/ocamllabs/ocaml-integers/archive/0.4.0.tar.gz" 26 | checksum: "md5=c1492352e6525048790508c57aad93c3" 27 | } 28 | -------------------------------------------------------------------------------- /examples.esy.lock/opam/lwt_ppx.2.0.1/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | 3 | synopsis: "PPX syntax for Lwt, providing something similar to async/await from JavaScript" 4 | 5 | license: "MIT" 6 | homepage: "https://github.com/ocsigen/lwt" 7 | doc: "https://ocsigen.org/lwt/dev/api/Ppx_lwt" 8 | bug-reports: "https://github.com/ocsigen/lwt/issues" 9 | 10 | authors: [ 11 | "Gabriel Radanne" 12 | ] 13 | maintainer: [ 14 | "Anton Bachin " 15 | ] 16 | dev-repo: "git+https://github.com/ocsigen/lwt.git" 17 | 18 | depends: [ 19 | "dune" {>= "1.1.0"} 20 | "lwt" 21 | "ocaml" {>= "4.02.0"} 22 | "ocaml-migrate-parsetree" {>= "1.5.0" & < "2.0.0"} 23 | "ppx_tools_versioned" {>= "5.3.0"} 24 | ] 25 | 26 | build: [ 27 | ["dune" "build" "-p" name "-j" jobs] 28 | ] 29 | 30 | url { 31 | src: "https://github.com/ocsigen/lwt/archive/5.2.0.tar.gz" 32 | checksum: "md5=d5783fcff4fbfa7f79c9303776e4d144" 33 | } 34 | -------------------------------------------------------------------------------- /examples.esy.lock/opam/mmap.1.1.0/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | maintainer: "jeremie@dimino.org" 3 | authors: ["Jérémie Dimino " "Anton Bachin" ] 4 | homepage: "https://github.com/mirage/mmap" 5 | bug-reports: "https://github.com/mirage/mmap/issues" 6 | doc: "https://mirage.github.io/mmap/" 7 | dev-repo: "git+https://github.com/mirage/mmap.git" 8 | license: "LGPL-2.1-only with OCaml-LGPL-linking-exception" 9 | build: [ 10 | ["dune" "build" "-p" name "-j" jobs] 11 | ] 12 | depends: [ 13 | "ocaml" 14 | "dune" {>= "1.6"} 15 | ] 16 | synopsis: "File mapping functionality" 17 | description: """ 18 | This project provides a Mmap.map_file functions for mapping files in memory. 19 | """ 20 | url { 21 | src: 22 | "https://github.com/mirage/mmap/releases/download/v1.1.0/mmap-v1.1.0.tbz" 23 | checksum: "md5=8c5d5fbc537296dc525867535fb878ba" 24 | } 25 | -------------------------------------------------------------------------------- /examples.esy.lock/opam/ppx_derivers.1.2.1/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | maintainer: "jeremie@dimino.org" 3 | authors: ["Jérémie Dimino"] 4 | license: "BSD-3-Clause" 5 | homepage: "https://github.com/ocaml-ppx/ppx_derivers" 6 | bug-reports: "https://github.com/ocaml-ppx/ppx_derivers/issues" 7 | dev-repo: "git://github.com/ocaml-ppx/ppx_derivers.git" 8 | build: [ 9 | ["dune" "build" "-p" name "-j" jobs] 10 | ] 11 | depends: [ 12 | "ocaml" 13 | "dune" 14 | ] 15 | synopsis: "Shared [@@deriving] plugin registry" 16 | description: """ 17 | Ppx_derivers is a tiny package whose sole purpose is to allow 18 | ppx_deriving and ppx_type_conv to inter-operate gracefully when linked 19 | as part of the same ocaml-migrate-parsetree driver.""" 20 | url { 21 | src: "https://github.com/ocaml-ppx/ppx_derivers/archive/1.2.1.tar.gz" 22 | checksum: "md5=5dc2bf130c1db3c731fe0fffc5648b41" 23 | } 24 | -------------------------------------------------------------------------------- /examples.esy.lock/opam/ppx_optcomp.v0.14.0/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | maintainer: "Jane Street developers" 3 | authors: ["Jane Street Group, LLC"] 4 | homepage: "https://github.com/janestreet/ppx_optcomp" 5 | bug-reports: "https://github.com/janestreet/ppx_optcomp/issues" 6 | dev-repo: "git+https://github.com/janestreet/ppx_optcomp.git" 7 | doc: "https://ocaml.janestreet.com/ocaml-core/latest/doc/ppx_optcomp/index.html" 8 | license: "MIT" 9 | build: [ 10 | ["dune" "build" "-p" name "-j" jobs] 11 | ] 12 | depends: [ 13 | "ocaml" {>= "4.04.2"} 14 | "base" {>= "v0.14" & < "v0.15"} 15 | "stdio" {>= "v0.14" & < "v0.15"} 16 | "dune" {>= "2.0.0"} 17 | "ppxlib" {>= "0.11.0" & < "0.18.0"} 18 | ] 19 | synopsis: "Optional compilation for OCaml" 20 | description: " 21 | Part of the Jane Street's PPX rewriters collection. 22 | " 23 | url { 24 | src: "https://ocaml.janestreet.com/ocaml-core/v0.14/files/ppx_optcomp-v0.14.0.tar.gz" 25 | checksum: "md5=715fbb000594d50fb3689da29c6b0ab0" 26 | } 27 | -------------------------------------------------------------------------------- /examples.esy.lock/opam/ppx_tools_versioned.5.4.0/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | maintainer: "frederic.bour@lakaban.net" 3 | authors: [ 4 | "Frédéric Bour " 5 | "Alain Frisch " 6 | ] 7 | license: "MIT" 8 | homepage: "https://github.com/ocaml-ppx/ppx_tools_versioned" 9 | bug-reports: "https://github.com/ocaml-ppx/ppx_tools_versioned/issues" 10 | dev-repo: "git://github.com/ocaml-ppx/ppx_tools_versioned.git" 11 | tags: [ "syntax" ] 12 | build: [ 13 | ["dune" "subst"] {dev} 14 | ["dune" "build" "-p" name "-j" jobs] 15 | ["dune" "runtest" "-p" name "-j" jobs] {with-test} 16 | ] 17 | depends: [ 18 | "ocaml" {>= "4.02.0"} 19 | "dune" {>= "1.0"} 20 | "ocaml-migrate-parsetree" {>= "1.7.0" & < "2.0.0"} 21 | ] 22 | synopsis: "A variant of ppx_tools based on ocaml-migrate-parsetree" 23 | url { 24 | src: "https://github.com/ocaml-ppx/ppx_tools_versioned/archive/5.4.0.tar.gz" 25 | checksum: "md5=3e809a11cae99f57c051d3d0100311f6" 26 | } 27 | -------------------------------------------------------------------------------- /examples.esy.lock/opam/ppx_yojson_conv_lib.v0.14.0/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | maintainer: "Jane Street developers" 3 | authors: ["Jane Street Group, LLC"] 4 | homepage: "https://github.com/janestreet/ppx_yojson_conv_lib" 5 | bug-reports: "https://github.com/janestreet/ppx_yojson_conv_lib/issues" 6 | dev-repo: "git+https://github.com/janestreet/ppx_yojson_conv_lib.git" 7 | doc: "https://ocaml.janestreet.com/ocaml-core/latest/doc/ppx_yojson_conv_lib/index.html" 8 | license: "MIT" 9 | build: [ 10 | ["dune" "build" "-p" name "-j" jobs] 11 | ] 12 | depends: [ 13 | "ocaml" {>= "4.02.3"} 14 | "dune" {>= "2.0.0"} 15 | "yojson" {>= "1.7.0"} 16 | ] 17 | synopsis: "Runtime lib for ppx_yojson_conv" 18 | description: " 19 | Part of the Jane Street's PPX rewriters collection. 20 | " 21 | url { 22 | src: "https://ocaml.janestreet.com/ocaml-core/v0.14/files/ppx_yojson_conv_lib-v0.14.0.tar.gz" 23 | checksum: "md5=e23c5593a7211ad4fb09e26e9a74698a" 24 | } 25 | -------------------------------------------------------------------------------- /examples.esy.lock/opam/result.1.5/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | maintainer: "Jane Street developers" 3 | authors: ["Jane Street Group, LLC"] 4 | homepage: "https://github.com/janestreet/result" 5 | dev-repo: "git+https://github.com/janestreet/result.git" 6 | bug-reports: "https://github.com/janestreet/result/issues" 7 | license: "BSD-3-Clause" 8 | build: [["dune" "build" "-p" name "-j" jobs]] 9 | depends: [ 10 | "ocaml" 11 | "dune" {>= "1.0"} 12 | ] 13 | synopsis: "Compatibility Result module" 14 | description: """ 15 | Projects that want to use the new result type defined in OCaml >= 4.03 16 | while staying compatible with older version of OCaml should use the 17 | Result module defined in this library.""" 18 | url { 19 | src: 20 | "https://github.com/janestreet/result/releases/download/1.5/result-1.5.tbz" 21 | checksum: "md5=1b82dec78849680b49ae9a8a365b831b" 22 | } 23 | -------------------------------------------------------------------------------- /examples.esy.lock/opam/seq.base/files/META.seq: -------------------------------------------------------------------------------- 1 | name="seq" 2 | version="[distributed with OCaml 4.07 or above]" 3 | description="dummy backward-compatibility package for iterators" 4 | requires="" 5 | -------------------------------------------------------------------------------- /examples.esy.lock/opam/seq.base/files/seq.install: -------------------------------------------------------------------------------- 1 | lib:[ 2 | "META.seq" {"META"} 3 | ] 4 | -------------------------------------------------------------------------------- /examples.esy.lock/opam/seq.base/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | maintainer: " " 3 | authors: " " 4 | homepage: " " 5 | depends: [ 6 | "ocaml" {>= "4.07.0"} 7 | ] 8 | dev-repo: "git+https://github.com/ocaml/ocaml.git" 9 | bug-reports: "https://caml.inria.fr/mantis/main_page.php" 10 | synopsis: 11 | "Compatibility package for OCaml's standard iterator type starting from 4.07." 12 | extra-files: [ 13 | ["seq.install" "md5=026b31e1df290373198373d5aaa26e42"] 14 | ["META.seq" "md5=b33c8a1a6c7ed797816ce27df4855107"] 15 | ] 16 | -------------------------------------------------------------------------------- /examples.esy.lock/overrides/opam__s__conf_pkg_config_opam__c__2_opam_override/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "build": [ 3 | [ 4 | "pkg-config", 5 | "--help" 6 | ] 7 | ], 8 | "dependencies": { 9 | "yarn-pkg-config": "esy-ocaml/yarn-pkg-config#db3a0b63883606dd57c54a7158d560d6cba8cd79" 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /examples.esy.lock/overrides/opam__s__ctypes_opam__c__0.15.1_opam_override/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "exportedEnv": { 3 | "CAML_LD_LIBRARY_PATH": { 4 | "val": "#{self.lib / 'ctypes' : $CAML_LD_LIBRARY_PATH}", 5 | "scope": "global" 6 | } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /examples.esy.lock/overrides/opam__s__ocamlbuild_opam__c__0.14.0_opam_override/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "build": [ 3 | [ 4 | "bash", 5 | "-c", 6 | "#{os == 'windows' ? 'patch -p1 < ocamlbuild-0.14.0.patch' : 'true'}" 7 | ], 8 | [ 9 | "make", 10 | "-f", 11 | "configure.make", 12 | "all", 13 | "OCAMLBUILD_PREFIX=#{self.install}", 14 | "OCAMLBUILD_BINDIR=#{self.bin}", 15 | "OCAMLBUILD_LIBDIR=#{self.lib}", 16 | "OCAMLBUILD_MANDIR=#{self.man}", 17 | "OCAMLBUILD_NATIVE=true", 18 | "OCAMLBUILD_NATIVE_TOOLS=true" 19 | ], 20 | [ 21 | "make", 22 | "check-if-preinstalled", 23 | "all", 24 | "#{os == 'windows' ? 'install' : 'opam-install'}" 25 | ] 26 | ] 27 | } 28 | -------------------------------------------------------------------------------- /examples.json: -------------------------------------------------------------------------------- 1 | { 2 | "source": "./package.json", 3 | "scripts": { 4 | "run": "esy @examples x Examples", 5 | "run-harfbuzz": "esy @examples x bash -c run-harfbuzz.sh #{os}", 6 | "run-skia-fontmanager": "esy @examples x bash -c run-skia-fontmanager.sh #{os}" 7 | }, 8 | "override": { 9 | "build": ["dune build -p reason-harfbuzz,reason-skia,reason-sdl2,Revery,ReveryExamples -j4"], 10 | "install": [ 11 | "esy-installer reason-harfbuzz.install", 12 | "esy-installer reason-skia.install", 13 | "esy-installer Revery.install", 14 | "esy-installer ReveryExamples.install" 15 | ] 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /examples/Border.re: -------------------------------------------------------------------------------- 1 | open Revery; 2 | open Revery.UI; 3 | 4 | let defaultStyle = 5 | Style.[ 6 | backgroundColor(Color.multiplyAlpha(0.2, Colors.white)), 7 | position(`Relative), 8 | left(100), 9 | top(100), 10 | width(200), 11 | height(200), 12 | border(~width=15, ~color=Colors.red), 13 | borderHorizontal(~width=8, ~color=Colors.blue), 14 | borderTop(~width=15, ~color=Colors.red), 15 | borderLeft(~width=30, ~color=Colors.green), 16 | borderRadius(16.0), 17 | ]; 18 | 19 | let innerStyle = 20 | Style.[ 21 | backgroundColor(Colors.yellow), 22 | position(`Relative), 23 | left(0), 24 | top(0), 25 | width(30), 26 | height(30), 27 | borderHorizontal(~color=Colors.black, ~width=3), 28 | ]; 29 | 30 | let textStyle = Style.[color(Colors.black)]; 31 | 32 | let render = () => 33 | 34 | 35 | 36 | ; 37 | -------------------------------------------------------------------------------- /examples/FontAwesome5FreeSolid.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/revery-ui/revery/141f70f69d6abd69674b46d805a783411b38cd79/examples/FontAwesome5FreeSolid.otf -------------------------------------------------------------------------------- /examples/ImageQualityExample.re: -------------------------------------------------------------------------------- 1 | open Revery.UI; 2 | 3 | module ImageSample = { 4 | let make = (~quality, ()) => { 5 | 6 | 7 | ; 8 | }; 9 | }; 10 | 11 | module Images = { 12 | let make = () => { 13 | 20 | 21 | 22 | 23 | 24 | ; 25 | }; 26 | }; 27 | 28 | let render = () => ; 29 | -------------------------------------------------------------------------------- /examples/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleIdentifier 6 | com.revery.examples 7 | 8 | 9 | -------------------------------------------------------------------------------- /examples/LayerExample.re: -------------------------------------------------------------------------------- 1 | open Revery.UI; 2 | 3 | module Layers = { 4 | let make = () => { 5 | 9 | 16 | 17 | 18 | ; 19 | }; 20 | }; 21 | 22 | let render = () => ; 23 | -------------------------------------------------------------------------------- /examples/NativeNotificationExample.re: -------------------------------------------------------------------------------- 1 | open Revery.UI; 2 | open Revery.UI.Components; 3 | 4 | open Revery.Native; 5 | 6 | module Example = { 7 | let make = () => { 8 | let notification = 9 | Notification.create( 10 | ~title="Revery Test", 11 | ~body="This is a test!", 12 | ~mute=false, 13 | ~onClick=() => print_endline("Notification clicked!"), 14 | (), 15 | ); 16 | 17 |
18 |
27 |
; 28 | }; 29 | }; 30 | 31 | let render = () => ; 32 | -------------------------------------------------------------------------------- /examples/NestedClickable.re: -------------------------------------------------------------------------------- 1 | open Revery; 2 | open Revery.UI; 3 | open Revery.UI.Components; 4 | 5 | module Styles = { 6 | open Style; 7 | 8 | let outer = [ 9 | position(`Absolute), 10 | top(0), 11 | bottom(0), 12 | left(0), 13 | right(0), 14 | justifyContent(`Center), 15 | alignItems(`Center), 16 | backgroundColor(Colors.yellow), 17 | ]; 18 | }; 19 | 20 | let%component clickies = () => { 21 | let%hook (text, setText) = Hooks.state("Click something"); 22 | 23 | setText(_ => "Clicked outside")}> 25 |