this repo has no description

feat(js_top_worker): remove ppxlib from worker binary, use lazy loading

ppxlib (~5.5MB of bytecode) was statically linked into every worker.js,
even though most users never use PPX rewriters. Replace the custom
JsooTopPpx module with the standard OCaml toplevel mechanism:
Ast_mapper.register + Toploop.preprocess_phrase. PPX packages are now
loaded on-demand via #require, with ppxlib_register bridging ppxlib
into the Ast_mapper pipeline.

Worker size: 67MB → 56MB (11MB / 16% reduction).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

+112 -307
-3
js_top_worker.opam
··· 13 13 "astring" 14 14 "js_of_ocaml-toplevel" 15 15 "js_of_ocaml-compiler" 16 - "js_of_ocaml-ppx" 17 16 "lwt" 18 - "ppx_deriving" {>= "5.0"} 19 - "ppxlib" 20 17 "merlin-lib" {>= "4.7"} 21 18 "mime_printer" 22 19 "logs"
+1 -5
lib/dune
··· 19 19 logs 20 20 lwt 21 21 js_of_ocaml-compiler 22 - js_of_ocaml-ppx 23 22 astring 24 23 mime_printer 25 24 compiler-libs.common ··· 28 27 merlin-lib.utils 29 28 merlin-lib.query_protocol 30 29 merlin-lib.query_commands 31 - merlin-lib.ocaml_parsing 32 - ppxlib 33 - ppx_deriving.api) 30 + merlin-lib.ocaml_parsing) 34 31 (js_of_ocaml 35 32 (javascript_files stubs.js))) 36 33 ··· 48 45 js_top_worker 49 46 js_top_worker-rpc.message 50 47 js_top_worker-widget 51 - js_of_ocaml-ppx 52 48 js_of_ocaml-toplevel 53 49 js_of_ocaml-lwt 54 50 logs.browser
-10
lib/findlibish.ml
··· 78 78 "note"; 79 79 "ocaml-compiler-libs.common"; 80 80 "ocaml-compiler-libs.shadow"; 81 - "ppx_derivers"; 82 - "ppx_deriving.api"; 83 - "ppxlib"; 84 - "ppxlib.ast"; 85 - "ppxlib.astlib"; 86 - "ppxlib.print_diff"; 87 - "ppxlib.stdppx"; 88 - "ppxlib.traverse_builtins"; 89 81 "re"; 90 82 "sedlex"; 91 83 "seq"; 92 - "sexplib0"; 93 - "stdlib-shims"; 94 84 "str"; 95 85 "stringext"; 96 86 "tyxml";
+11 -68
lib/impl.cppo.ml
··· 190 190 191 191 (** {2 PPX Preprocessing} 192 192 193 - Handles PPX rewriter registration and application. Supports: 194 - - Old-style [Ast_mapper] PPXs (e.g., [Ppx_js.mapper] for js_of_ocaml) 195 - - [ppx_deriving]-based PPXs (registered via [Ppx_deriving.register]) 196 - - Modern [ppxlib]-based PPXs (registered via [Ppxlib.Driver]) 197 - 198 - The [Ppx_js.mapper] is registered by default to support js_of_ocaml 199 - syntax extensions. Other PPXs can be dynamically loaded via [#require]. *) 200 - 201 - module JsooTopPpx = struct 202 - open Js_of_ocaml_compiler.Stdlib 203 - 204 - (** Old-style Ast_mapper rewriters *) 205 - let ppx_rewriters = ref [ (fun _ -> Ppx_js.mapper) ] 206 - 207 - let () = 208 - Ast_mapper.register_function := 209 - fun _ f -> ppx_rewriters := f :: !ppx_rewriters 210 - 211 - (** Apply old-style Ast_mapper rewriters *) 212 - let apply_ast_mapper_rewriters_structure str = 213 - let open Ast_mapper in 214 - List.fold_right !ppx_rewriters ~init:str ~f:(fun ppx_rewriter str -> 215 - let mapper = ppx_rewriter [] in 216 - mapper.structure mapper str) 193 + PPX rewriters are not linked into the worker binary. Instead, they are 194 + loaded on demand when the user [#require]s a PPX package. The standard 195 + OCaml toplevel mechanism handles this: 217 196 218 - let apply_ast_mapper_rewriters_signature sg = 219 - let open Ast_mapper in 220 - List.fold_right !ppx_rewriters ~init:sg ~f:(fun ppx_rewriter sg -> 221 - let mapper = ppx_rewriter [] in 222 - mapper.signature mapper sg) 197 + - [Ast_mapper.register] collects rewriters 198 + - [Toploop.preprocess_phrase] applies them via [Pparse.apply_rewriters] 223 199 224 - (** Apply ppx_deriving transformations using its mapper class. 225 - This handles [@@deriving] attributes for dynamically loaded derivers. *) 226 - let apply_ppx_deriving_structure str = 227 - let mapper = new Ppx_deriving.mapper in 228 - mapper#structure str 229 - 230 - let apply_ppx_deriving_signature sg = 231 - let mapper = new Ppx_deriving.mapper in 232 - mapper#signature sg 233 - 234 - (** Apply all PPX transformations in order: 235 - 1. Old-style Ast_mapper (e.g., Ppx_js) 236 - 2. ppx_deriving derivers 237 - 3. ppxlib-based PPXs 238 - Handles AST version conversion between compiler's Parsetree and ppxlib's internal AST. *) 239 - let preprocess_structure str = 240 - str 241 - |> apply_ast_mapper_rewriters_structure 242 - |> Ppxlib_ast.Selected_ast.of_ocaml Structure 243 - |> apply_ppx_deriving_structure 244 - |> Ppxlib.Driver.map_structure 245 - |> Ppxlib_ast.Selected_ast.to_ocaml Structure 246 - 247 - let preprocess_signature sg = 248 - sg 249 - |> apply_ast_mapper_rewriters_signature 250 - |> Ppxlib_ast.Selected_ast.of_ocaml Signature 251 - |> apply_ppx_deriving_signature 252 - |> Ppxlib.Driver.map_signature 253 - |> Ppxlib_ast.Selected_ast.to_ocaml Signature 254 - 255 - let preprocess_phrase phrase = 256 - let open Parsetree in 257 - match phrase with 258 - | Ptop_def str -> Ptop_def (preprocess_structure str) 259 - | Ptop_dir _ as x -> x 260 - end 200 + When a universe includes PPX packages (e.g., [ppx_deriving.show]), 201 + loading them via [#require] triggers registration. The [ppxlib_register] 202 + package bridges [ppxlib] into the [Ast_mapper] pipeline. Similarly, 203 + [jsoo_ppx_register] registers [Ppx_js.mapper] for js_of_ocaml syntax. *) 261 204 262 205 (** {2 Backend Signature} 263 206 ··· 533 476 while true do 534 477 try 535 478 let phr = !Toploop.parse_toplevel_phrase lb in 536 - let phr = JsooTopPpx.preprocess_phrase phr in 479 + let phr = Toploop.preprocess_phrase Format.err_formatter phr in 537 480 ignore (Toploop.execute_phrase true pp_result phr : bool) 538 481 with 539 482 | End_of_file -> raise End_of_file ··· 601 544 while true do 602 545 try 603 546 let phr = !Toploop.parse_toplevel_phrase lb in 604 - let phr = JsooTopPpx.preprocess_phrase phr in 547 + let phr = Toploop.preprocess_phrase Format.err_formatter phr in 605 548 ignore (Toploop.execute_phrase true pp_result phr : bool); 606 549 (* Get location from phrase AST *) 607 550 let loc = match phr with
+99 -220
test/cram/directives.t/run.t
··· 499 499 alcotest.engine (version: 1.9.1) 500 500 alcotest.stdlib_ext (version: 1.9.1) 501 501 angstrom (version: 0.16.1) 502 - angstrom-async (version: 0.16.1) 503 502 angstrom-lwt-unix (version: 0.16.1) 504 503 angstrom-unix (version: 0.16.1) 505 504 angstrom.async (version: n/a) ··· 508 507 asn1-combinators (version: 0.3.2) 509 508 astring (version: 0.8.5) 510 509 astring.top (version: 0.8.5) 511 - async (version: v0.17.0) 512 - async.async_command (version: v0.17.0) 513 - async.async_quickcheck (version: v0.17.0) 514 - async.async_rpc (version: v0.17.0) 515 - async.lock_file_async (version: v0.17.0) 516 - async.log_extended (version: v0.17.0) 517 - async.persistent_connection (version: v0.17.0) 518 - async.unpack_sequence (version: v0.17.0) 519 - async_kernel (version: v0.17.0) 520 - async_kernel.config (version: v0.17.0) 521 - async_kernel.eager_deferred (version: v0.17.0) 522 - async_kernel.laziness_preserving_deferred (version: v0.17.0) 523 - async_kernel.limiter_async (version: v0.17.0) 524 - async_kernel.persistent_connection_kernel (version: v0.17.0) 525 - async_kernel.read_write_pair (version: v0.17.0) 526 - async_kernel.weak_hashtbl_async (version: v0.17.0) 527 - async_log (version: v0.17.0) 528 - async_log.kernel (version: v0.17.0) 529 - async_rpc_kernel (version: v0.17.0) 530 - async_unix (version: v0.17.0) 531 - async_unix.thread_pool (version: v0.17.0) 532 - async_unix.thread_safe_ivar (version: v0.17.0) 533 - async_unix.thread_safe_pipe (version: v0.17.0) 510 + b0 (version: 0.0.5) 511 + b0.b0 (version: 0.0.5) 512 + b0.b00 (version: 0.0.5) 513 + b0.b00.kit (version: 0.0.5) 514 + b0.kit (version: 0.0.5) 515 + b0.std (version: 0.0.5) 534 516 base (version: v0.17.3) 535 517 base.base_internalhash_types (version: v0.17.3) 536 518 base.md5 (version: v0.17.3) 537 519 base.shadow_stdlib (version: v0.17.3) 538 520 base64 (version: 3.5.2) 539 521 base64.rfc2045 (version: 3.5.2) 540 - base_bigstring (version: v0.17.0) 541 - base_quickcheck (version: v0.17.1) 542 - base_quickcheck.ppx_quickcheck (version: v0.17.1) 543 - base_quickcheck.ppx_quickcheck.expander (version: v0.17.1) 544 - base_quickcheck.ppx_quickcheck.runtime (version: v0.17.1) 545 522 bigarray-compat (version: 1.1.0) 546 523 bigstringaf (version: 0.10.0) 547 524 bin_prot (version: v0.17.0) ··· 558 535 bytes (version: [distributed with OCaml 4.02 or above]) 559 536 bytesrw (version: 0.2.0) 560 537 bytesrw.unix (version: 0.2.0) 561 - ca-certs (version: v1.0.1) 562 538 camlp-streams (version: n/a) 563 539 capitalization (version: v0.17.0) 564 - caqti (version: v2.2.4) 565 - caqti-lwt (version: v2.2.4) 566 - caqti-lwt.unix (version: v2.2.4) 567 - caqti.blocking (version: v2.2.4) 568 - caqti.platform (version: v2.2.4) 569 - caqti.platform.unix (version: v2.2.4) 570 - caqti.plugin (version: v2.2.4) 571 - caqti.template (version: v2.2.4) 540 + caqti (version: 2.0.1) 541 + caqti-lwt (version: 2.0.1) 542 + caqti-lwt.unix (version: 2.0.1) 543 + caqti.blocking (version: 2.0.1) 544 + caqti.platform (version: 2.0.1) 545 + caqti.platform.unix (version: 2.0.1) 572 546 checkseum (version: 0.5.2) 573 547 checkseum.c (version: 0.5.2) 574 548 checkseum.ocaml (version: 0.5.2) 575 - chrome-trace (version: 3.21.0-13-g1a35cca) 549 + chrome-trace (version: 3.21.1-29-g9f47fab) 576 550 cmarkit (version: 0.3.0) 577 551 cmdliner (version: 1.3.0) 578 - code-mirror (version: n/a) 579 - code-mirror.autocomplete (version: n/a) 580 - code-mirror.lint (version: n/a) 581 - code-mirror.stream (version: n/a) 582 - code-mirror.tooltip (version: n/a) 552 + code-mirror (version: a1d0c35-dirty) 553 + code-mirror.autocomplete (version: a1d0c35-dirty) 554 + code-mirror.lint (version: a1d0c35-dirty) 555 + code-mirror.stream (version: a1d0c35-dirty) 556 + code-mirror.tooltip (version: a1d0c35-dirty) 583 557 compiler-libs (version: 5.4.1) 584 558 compiler-libs.bytecomp (version: 5.4.1) 585 559 compiler-libs.common (version: 5.4.1) 586 560 compiler-libs.native-toplevel (version: 5.4.1) 587 561 compiler-libs.optcomp (version: 5.4.1) 588 562 compiler-libs.toplevel (version: 5.4.1) 589 - core (version: v0.17.1) 590 - core.base_for_tests (version: v0.17.1) 591 - core.command (version: v0.17.1) 592 - core.filename_base (version: v0.17.1) 593 - core.heap_block (version: v0.17.1) 594 - core.top (version: v0.17.1) 595 - core.univ_map (version: v0.17.1) 596 - core.validate (version: v0.17.1) 597 - core_kernel (version: v0.17.0) 598 - core_kernel.ansi_kernel (version: v0.17.0) 599 - core_kernel.balanced_reducer (version: v0.17.0) 600 - core_kernel.binary_packing (version: v0.17.0) 601 - core_kernel.bounded_int_table (version: v0.17.0) 602 - core_kernel.bus (version: v0.17.0) 603 - core_kernel.caml_threads (version: v0.17.0) 604 - core_kernel.caml_unix (version: v0.17.0) 605 - core_kernel.composition_infix (version: v0.17.0) 606 - core_kernel.enum (version: v0.17.0) 607 - core_kernel.fheap (version: v0.17.0) 608 - core_kernel.flags (version: v0.17.0) 609 - core_kernel.force_once (version: v0.17.0) 610 - core_kernel.hash_heap (version: v0.17.0) 611 - core_kernel.int_set (version: v0.17.0) 612 - core_kernel.iobuf (version: v0.17.0) 613 - core_kernel.limiter (version: v0.17.0) 614 - core_kernel.moption (version: v0.17.0) 615 - core_kernel.nonempty_list (version: v0.17.0) 616 - core_kernel.pairing_heap (version: v0.17.0) 617 - core_kernel.pooled_hashtbl (version: v0.17.0) 618 - core_kernel.reversed_list (version: v0.17.0) 619 - core_kernel.sexp_hidden_in_test (version: v0.17.0) 620 - core_kernel.thread_pool_cpu_affinity (version: v0.17.0) 621 - core_kernel.thread_safe_queue (version: v0.17.0) 622 - core_kernel.timing_wheel (version: v0.17.0) 623 - core_kernel.total_map (version: v0.17.0) 624 - core_kernel.tuple_pool (version: v0.17.0) 625 - core_kernel.univ (version: v0.17.0) 626 - core_kernel.unpack_buffer (version: v0.17.0) 627 - core_kernel.uopt (version: v0.17.0) 628 - core_kernel.uuid (version: v0.17.0) 629 - core_kernel.vec (version: v0.17.0) 630 - core_kernel.version_util (version: v0.17.0) 631 - core_kernel.weak_array (version: v0.17.0) 632 - core_kernel.weak_hashtbl (version: v0.17.0) 633 - core_kernel.weak_pointer (version: v0.17.0) 634 - core_unix (version: v0.17.1) 635 - core_unix.bigbuffer_blocking (version: v0.17.1) 636 - core_unix.bigstring_unix (version: v0.17.1) 637 - core_unix.command_test_helpers (version: v0.17.1) 638 - core_unix.command_test_helpers_test (version: v0.17.1) 639 - core_unix.command_unix (version: v0.17.1) 640 - core_unix.core_thread (version: v0.17.1) 641 - core_unix.daemon (version: v0.17.1) 642 - core_unix.date_unix (version: v0.17.1) 643 - core_unix.error_checking_mutex (version: v0.17.1) 644 - core_unix.filename_unix (version: v0.17.1) 645 - core_unix.interval_lib (version: v0.17.1) 646 - core_unix.interval_unix (version: v0.17.1) 647 - core_unix.iobuf_unix (version: v0.17.1) 648 - core_unix.linux_ext (version: v0.17.1) 649 - core_unix.lock_file_blocking (version: v0.17.1) 650 - core_unix.nano_mutex (version: v0.17.1) 651 - core_unix.ocaml_c_utils (version: v0.17.1) 652 - core_unix.process_env (version: v0.17.1) 653 - core_unix.signal_unix (version: v0.17.1) 654 - core_unix.squeue (version: v0.17.1) 655 - core_unix.sys_unix (version: v0.17.1) 656 - core_unix.syslog (version: v0.17.1) 657 - core_unix.time_float_unix (version: v0.17.1) 658 - core_unix.time_interface (version: v0.17.1) 659 - core_unix.time_ns_unix (version: v0.17.1) 660 - core_unix.time_stamp_counter (version: v0.17.1) 661 - core_unix.time_unix (version: v0.17.1) 662 - core_unix.unix_pseudo_terminal (version: v0.17.1) 663 - core_unix.uuid (version: v0.17.1) 664 563 cppo (version: n/a) 665 564 crunch (version: 4.0.0) 666 565 csexp (version: 1.5.2) ··· 691 590 dream.sql (version: n/a) 692 591 dream.unix (version: n/a) 693 592 dune (version: n/a) 694 - dune-action-plugin (version: 3.21.0-13-g1a35cca) 695 - dune-build-info (version: 3.21.0-13-g1a35cca) 696 - dune-configurator (version: 3.21.0-13-g1a35cca) 697 - dune-glob (version: 3.21.0-13-g1a35cca) 593 + dune-action-plugin (version: 3.21.1-29-g9f47fab) 594 + dune-build-info (version: 3.21.1-29-g9f47fab) 595 + dune-configurator (version: 3.21.1-29-g9f47fab) 596 + dune-glob (version: 3.21.1-29-g9f47fab) 698 597 dune-private-libs (version: n/a) 699 - dune-private-libs.dune-section (version: 3.21.0-13-g1a35cca) 700 - dune-private-libs.meta_parser (version: 3.21.0-13-g1a35cca) 701 - dune-rpc (version: 3.21.0-13-g1a35cca) 702 - dune-rpc-lwt (version: 3.21.0-13-g1a35cca) 703 - dune-rpc.private (version: 3.21.0-13-g1a35cca) 704 - dune-site (version: 3.21.0-13-g1a35cca) 705 - dune-site.dynlink (version: 3.21.0-13-g1a35cca) 706 - dune-site.linker (version: 3.21.0-13-g1a35cca) 707 - dune-site.plugins (version: 3.21.0-13-g1a35cca) 708 - dune-site.private (version: 3.21.0-13-g1a35cca) 709 - dune-site.toplevel (version: 3.21.0-13-g1a35cca) 598 + dune-private-libs.dune-section (version: 3.21.1-29-g9f47fab) 599 + dune-private-libs.meta_parser (version: 3.21.1-29-g9f47fab) 600 + dune-rpc (version: 3.21.1-29-g9f47fab) 601 + dune-rpc-lwt (version: 3.21.1-29-g9f47fab) 602 + dune-rpc.private (version: 3.21.1-29-g9f47fab) 603 + dune-site (version: 3.21.1-29-g9f47fab) 604 + dune-site.dynlink (version: 3.21.1-29-g9f47fab) 605 + dune-site.linker (version: 3.21.1-29-g9f47fab) 606 + dune-site.plugins (version: 3.21.1-29-g9f47fab) 607 + dune-site.private (version: 3.21.1-29-g9f47fab) 608 + dune-site.toplevel (version: 3.21.1-29-g9f47fab) 710 609 dune.configurator (version: n/a) 711 610 duration (version: 0.2.1) 712 - dyn (version: 3.21.0-13-g1a35cca) 611 + dyn (version: 3.21.1-29-g9f47fab) 713 612 dynlink (version: 5.4.1) 714 613 eio (version: n/a) 715 614 eio.core (version: n/a) ··· 724 623 eqaf (version: 0.10) 725 624 eqaf.bigstring (version: 0.10) 726 625 eqaf.bytes (version: 0.10) 727 - expect_test_helpers_core (version: v0.17.0) 728 - expect_test_helpers_core.expect_test_helpers_base (version: v0.17.0) 729 626 faraday (version: 0.8.2) 730 - faraday-async (version: 0.8.2) 731 627 faraday-lwt (version: 0.8.2) 732 628 faraday-lwt-unix (version: 0.8.2) 733 629 faraday.async (version: n/a) ··· 746 642 fmt.tty (version: 0.11.0) 747 643 fpath (version: 0.7.3) 748 644 fpath.top (version: 0.7.3) 749 - fs-io (version: 3.21.0-13-g1a35cca) 750 - gel (version: v0.17.0) 645 + fs-io (version: 3.21.1-29-g9f47fab) 751 646 gen (version: 1.1) 752 647 gluten (version: 0.5.2) 753 648 gluten-lwt (version: 0.5.2) ··· 767 662 httpun-lwt-unix (version: 0.1.0) 768 663 httpun-types (version: 0.1.0) 769 664 httpun-ws (version: 0.2.0) 770 - int_repr (version: v0.17.0) 771 665 iomux (version: v0.4) 772 666 ipaddr (version: 5.6.2) 773 667 ipaddr.top (version: 5.6.2) ··· 793 687 js_top_worker-rpc.message (version: 0.0.1) 794 688 js_top_worker-unix (version: n/a) 795 689 js_top_worker-web (version: 0.0.1) 690 + js_top_worker-widget (version: 0.0.1) 691 + js_top_worker-widget-leaflet (version: 0.0.1) 796 692 js_top_worker_rpc_def (version: n/a) 797 693 jsonm (version: 1.0.2) 798 694 jsonrpc (version: 1.25.0) 799 - jsont (version: 0.2.0) 800 - jsont.brr (version: 0.2.0) 801 - jsont.bytesrw (version: 0.2.0) 802 695 jst-config (version: v0.17.0) 803 696 kdf (version: n/a) 804 697 kdf.hkdf (version: 1.0.0) ··· 815 708 logs.top (version: 0.10.0) 816 709 lru (version: 0.3.1) 817 710 lsp (version: 1.25.0) 711 + lwd (version: 4d139db) 818 712 lwt (version: 5.9.2) 819 713 lwt-dllist (version: 1.1.0) 820 714 lwt.unix (version: 5.9.2) ··· 835 729 menhirLib (version: 20260209) 836 730 menhirSdk (version: 20260209) 837 731 merlin-js (version: n/a) 838 - merlin-js.client (version: n/a) 839 - merlin-js.code-mirror (version: n/a) 840 - merlin-js.protocol (version: n/a) 841 - merlin-js.worker (version: n/a) 842 - merlin-js.worker.static (version: n/a) 732 + merlin-js.client (version: a1d0c35-dirty) 733 + merlin-js.code-mirror (version: a1d0c35-dirty) 734 + merlin-js.protocol (version: a1d0c35-dirty) 735 + merlin-js.worker (version: a1d0c35-dirty) 736 + merlin-js.worker.static (version: a1d0c35-dirty) 843 737 merlin-lib (version: n/a) 844 738 merlin-lib.analysis (version: 5.6.1-504) 845 739 merlin-lib.commands (version: 5.6.1-504) ··· 859 753 merlin-lib.query_protocol (version: 5.6.1-504) 860 754 merlin-lib.sherlodoc (version: 5.6.1-504) 861 755 merlin-lib.utils (version: 5.6.1-504) 862 - mime_printer (version: n/a) 756 + mime_printer (version: a1d0c35-dirty) 863 757 mirage-clock (version: 4.2.0) 864 758 mirage-crypto (version: 1.2.0) 865 - mirage-crypto-ec (version: 1.2.0) 866 - mirage-crypto-pk (version: 1.2.0) 867 759 mirage-crypto-rng (version: 1.2.0) 868 760 mirage-crypto-rng-lwt (version: 1.2.0) 869 761 mirage-crypto-rng.unix (version: 1.2.0) ··· 873 765 mtime.top (version: 2.1.0) 874 766 multipart_form (version: 0.8.0) 875 767 multipart_form-lwt (version: 0.8.0) 768 + note (version: 0.0.3) 769 + note.brr (version: 0.0.3) 876 770 num (version: 1.7~dev) 877 771 num-top (version: 1.7~dev) 878 772 num.core (version: 1.7~dev) ··· 888 782 ocaml-version (version: n/a) 889 783 ocaml_intrinsics_kernel (version: v0.17.1) 890 784 ocamlbuild (version: 0.16.1) 891 - ocamlc-loc (version: 3.21.0-13-g1a35cca) 785 + ocamlc-loc (version: 3.21.1-29-g9f47fab) 892 786 ocamldoc (version: 5.4.1) 893 787 ocamlformat-lib (version: 0.28.1) 894 788 ocamlformat-lib.format_ (version: 0.28.1) ··· 908 802 ocp-indent.utils (version: 1.9.0) 909 803 ocplib-endian (version: n/a) 910 804 ocplib-endian.bigstring (version: n/a) 805 + odig (version: 0.0.9) 806 + odig.support (version: 0.0.9) 911 807 odoc (version: n/a) 912 808 odoc-admonition-extension (version: n/a) 913 - odoc-admonition-extension.impl (version: n/a) 809 + odoc-admonition-extension.impl (version: 5f7b961-dirty) 914 810 odoc-bench (version: n/a) 915 811 odoc-docsite (version: n/a) 916 - odoc-docsite.impl (version: n/a) 812 + odoc-docsite.impl (version: 5f7b961-dirty) 917 813 odoc-dot-extension (version: n/a) 918 - odoc-dot-extension.impl (version: n/a) 919 - odoc-driver (version: n/a) 814 + odoc-dot-extension.impl (version: 5f7b961-dirty) 815 + odoc-driver (version: a1d0c35-dirty) 920 816 odoc-interactive-extension (version: n/a) 921 - odoc-interactive-extension.impl (version: n/a) 817 + odoc-interactive-extension.impl (version: 5f7b961-dirty) 922 818 odoc-md (version: n/a) 923 819 odoc-mermaid-extension (version: n/a) 924 - odoc-mermaid-extension.impl (version: n/a) 820 + odoc-mermaid-extension.impl (version: 5f7b961-dirty) 925 821 odoc-msc-extension (version: n/a) 926 - odoc-msc-extension.impl (version: n/a) 927 - odoc-parser (version: n/a) 822 + odoc-msc-extension.impl (version: 5f7b961-dirty) 823 + odoc-parser (version: 3.1.0) 928 824 odoc-rfc-extension (version: n/a) 929 - odoc-rfc-extension.impl (version: n/a) 825 + odoc-rfc-extension.impl (version: 5f7b961-dirty) 930 826 odoc-scrollycode-extension (version: n/a) 931 - odoc-scrollycode-extension.impl (version: n/a) 932 - odoc.document (version: n/a) 933 - odoc.examples (version: n/a) 934 - odoc.extension_api (version: n/a) 935 - odoc.extension_registry (version: n/a) 936 - odoc.html (version: n/a) 937 - odoc.html_support_files (version: n/a) 938 - odoc.index (version: n/a) 939 - odoc.json_index (version: n/a) 940 - odoc.latex (version: n/a) 941 - odoc.loader (version: n/a) 942 - odoc.manpage (version: n/a) 943 - odoc.markdown (version: n/a) 944 - odoc.model (version: n/a) 945 - odoc.model_desc (version: n/a) 946 - odoc.ocamlary (version: n/a) 947 - odoc.occurrences (version: n/a) 948 - odoc.odoc (version: n/a) 949 - odoc.odoc_utils (version: n/a) 950 - odoc.search (version: n/a) 951 - odoc.search_html_frontend (version: n/a) 952 - odoc.syntax_highlighter (version: n/a) 953 - odoc.xref2 (version: n/a) 954 - odoc.xref_test (version: n/a) 827 + odoc-scrollycode-extension.impl (version: 5f7b961-dirty) 828 + odoc-standalone (version: n/a) 829 + odoc-standalone.impl (version: 544cfdf) 830 + odoc.document (version: 5f7b961-dirty) 831 + odoc.examples (version: 5f7b961-dirty) 832 + odoc.extension_api (version: 5f7b961-dirty) 833 + odoc.extension_registry (version: 5f7b961-dirty) 834 + odoc.html (version: 5f7b961-dirty) 835 + odoc.html_support_files (version: 5f7b961-dirty) 836 + odoc.index (version: 5f7b961-dirty) 837 + odoc.json_index (version: 5f7b961-dirty) 838 + odoc.latex (version: 5f7b961-dirty) 839 + odoc.loader (version: 5f7b961-dirty) 840 + odoc.manpage (version: 5f7b961-dirty) 841 + odoc.markdown (version: 5f7b961-dirty) 842 + odoc.model (version: 5f7b961-dirty) 843 + odoc.model_desc (version: 5f7b961-dirty) 844 + odoc.ocamlary (version: 5f7b961-dirty) 845 + odoc.occurrences (version: 5f7b961-dirty) 846 + odoc.odoc (version: 5f7b961-dirty) 847 + odoc.odoc_utils (version: 5f7b961-dirty) 848 + odoc.search (version: 5f7b961-dirty) 849 + odoc.search_html_frontend (version: 5f7b961-dirty) 850 + odoc.syntax_highlighter (version: 5f7b961-dirty) 851 + odoc.xref2 (version: 5f7b961-dirty) 852 + odoc.xref_test (version: 5f7b961-dirty) 955 853 ohex (version: n/a) 956 854 opam-0install (version: 0.4.2) 957 855 opam-core (version: n/a) 856 + opam-core.cmdliner (version: n/a) 958 857 opam-file-format (version: 2.2.0) 959 858 opam-format (version: n/a) 960 859 opam-repository (version: n/a) 961 860 opam-state (version: n/a) 962 861 optint (version: 0.3.0) 963 - ordering (version: 3.21.0-13-g1a35cca) 862 + ordering (version: 3.21.1-29-g9f47fab) 964 863 parsexp (version: v0.17.0) 965 864 patch (version: 3.1.0) 966 865 pecu (version: 0.7) ··· 995 894 ppx_deriving_rpc (version: 10.0.0) 996 895 ppx_deriving_yojson (version: 3.10.0) 997 896 ppx_deriving_yojson.runtime (version: 3.10.0) 998 - ppx_diff (version: n/a) 999 - ppx_diff.diffable (version: v0.17.1) 1000 - ppx_diff.diffable_cinaps (version: v0.17.1) 1001 - ppx_diff.ppx_diff (version: v0.17.1) 1002 897 ppx_disable_unused_warnings (version: v0.17.0) 1003 898 ppx_enumerate (version: v0.17.0) 1004 899 ppx_enumerate.runtime-lib (version: v0.17.0) ··· 1025 920 ppx_inline_test.runner (version: v0.17.1) 1026 921 ppx_inline_test.runner.lib (version: v0.17.1) 1027 922 ppx_inline_test.runtime-lib (version: v0.17.1) 1028 - ppx_jane (version: v0.17.0) 1029 - ppx_jane.kernel (version: v0.17.0) 1030 923 ppx_let (version: v0.17.1) 1031 924 ppx_let.expander (version: v0.17.1) 1032 - ppx_log (version: v0.17.0) 1033 - ppx_log.kernel (version: v0.17.0) 1034 - ppx_log.syntax (version: v0.17.0) 1035 - ppx_log.types (version: v0.17.0) 1036 925 ppx_module_timer (version: v0.17.0) 1037 926 ppx_module_timer.runtime (version: v0.17.0) 1038 927 ppx_optcomp (version: v0.17.1) ··· 1069 958 ppxlib.traverse (version: 0.37.0) 1070 959 ppxlib.traverse_builtins (version: 0.37.0) 1071 960 ppxlib_jane (version: v0.17.4) 1072 - ppxlib_register (version: n/a) 961 + ppxlib_register (version: a1d0c35-dirty) 1073 962 prettym (version: 0.0.4) 1074 963 progress (version: 0.5.0) 1075 964 progress.engine (version: 0.5.0) 1076 965 progress.vector (version: 0.5.0) 1077 - protocol_version_header (version: v0.17.0) 1078 966 psq (version: 0.2.1) 1079 967 ptime (version: 1.2.0) 1080 968 ptime.clock (version: 1.2.0) ··· 1111 999 sexplib0 (version: v0.17.0) 1112 1000 sha (version: v1.15.4) 1113 1001 sherlodoc (version: n/a) 1114 - sherlodoc.db (version: n/a) 1115 - sherlodoc.db_store (version: n/a) 1116 - sherlodoc.query (version: n/a) 1117 - sherlodoc.storage_js (version: n/a) 1118 - sherlodoc.storage_marshal (version: n/a) 1002 + sherlodoc.db (version: a1d0c35-dirty) 1003 + sherlodoc.db_store (version: a1d0c35-dirty) 1004 + sherlodoc.query (version: a1d0c35-dirty) 1005 + sherlodoc.storage_js (version: a1d0c35-dirty) 1006 + sherlodoc.storage_marshal (version: a1d0c35-dirty) 1119 1007 spawn (version: v0.17.0) 1120 1008 spdx_licenses (version: 1.4.0) 1121 1009 splittable_random (version: v0.17.0) ··· 1123 1011 stdio (version: v0.17.0) 1124 1012 stdlib (version: 5.4.1) 1125 1013 stdlib-shims (version: 0.3.0) 1126 - stdune (version: 3.21.0-13-g1a35cca) 1014 + stdune (version: 3.21.1-29-g9f47fab) 1127 1015 str (version: 5.4.1) 1128 1016 stringext (version: 1.6.0) 1129 1017 swhid_core (version: n/a) 1130 1018 terminal (version: 0.5.0) 1131 1019 terminal.ansi (version: 0.5.0) 1132 - textutils (version: n/a) 1133 - textutils.ascii_table (version: v0.17.0) 1134 - textutils.ascii_table_kernel (version: v0.17.0) 1135 - textutils.console (version: v0.17.0) 1136 1020 thread-table (version: 1.0.0) 1137 1021 threads (version: 5.4.1) 1138 1022 threads.posix (version: [internal]) 1139 1023 time_now (version: v0.17.0) 1140 - timezone (version: v0.17.0) 1141 - tls (version: 2.0.3) 1142 - tls-eio (version: 2.0.3) 1143 - tls.unix (version: 2.0.3) 1144 - top-closure (version: 3.21.0-13-g1a35cca) 1024 + top-closure (version: 3.21.1-29-g9f47fab) 1145 1025 topkg (version: 1.1.1) 1146 1026 typerep (version: v0.17.1) 1147 1027 tyxml (version: 4.6.0) ··· 1150 1030 unix (version: 5.4.1) 1151 1031 unstrctrd (version: 0.4) 1152 1032 unstrctrd.parser (version: 0.4) 1153 - uopt (version: v0.17.0) 1154 1033 uri (version: 4.4.0) 1155 1034 uri.services (version: 4.4.0) 1156 1035 uri.services_full (version: 4.4.0) ··· 1163 1042 uutf (version: 1.0.4) 1164 1043 variantslib (version: v0.17.0) 1165 1044 x-ocaml (version: n/a) 1166 - x-ocaml.lib (version: n/a) 1167 - x-ocaml.protocol (version: n/a) 1168 - x509 (version: 1.0.6) 1169 - xdg (version: 3.21.0-13-g1a35cca) 1045 + x-ocaml.lib (version: a1d0c35-dirty) 1046 + x-ocaml.protocol (version: a1d0c35-dirty) 1047 + xdg (version: 3.21.1-29-g9f47fab) 1170 1048 xdge (version: v1.0.0) 1171 1049 xmlm (version: 1.4.0) 1172 1050 yojson (version: 3.0.0) 1173 1051 zarith (version: 1.14) 1174 1052 zarith.top (version: 1.13) 1175 - zarith_stubs_js (version: v0.17.0))} 1053 + zarith_stubs_js (version: v0.17.0) 1054 + findlib: [WARNING] cannot read directory /home/jons-agent/workspace/mono/_build/install/default/lib: No such file or directory)} 1176 1055 1177 1056 ============================================== 1178 1057 SECTION 13: #labels and #principal
+1 -1
test/node/node_ppx_test.expected
··· 171 171 Failed to unmarshal dynamic_cms from url ./lib/ppx_deriving/dynamic_cmis.json: Failed to fetch dynamic cmis 172 172 uri: ./lib/ppx_deriving/show/dynamic_cmis.json 173 173 importScripts: ./lib/ppx_deriving/show/ppx_deriving_show.cma.js 174 - node_ppx_test.js: [INFO] Error: TypeError: k is not a function 174 + node_ppx_test.js: [INFO] Error: TypeError: Cannot read properties of undefined (reading '6')