Organisationsocaml-ppxppxlib74e719 ()windows-server-2022-amd64-4.14_opam-2.3

windows-server-2022-amd64-4.14_opam-2.3

Logs

Show full logs
2025-06-02 22:25.24: New job: test ocaml-ppx/ppxlib https://github.com/ocaml-ppx/ppxlib.git#refs/heads/main (74e7196cb0ceb90577342b72b18fbd74eaaa0806) (windows-amd64:windows-server-2022-amd64-4.14_opam-2.3)
Base: windows-server-2022-amd64-ocaml-4.14
Opam project build

To reproduce locally:

git clone --recursive "https://github.com/ocaml-ppx/ppxlib.git" -b "main" && cd "ppxlib" && git reset --hard 74e7196c
cat > Dockerfile <<'END-OF-DOCKERFILE'
FROM windows-server-2022-amd64-ocaml-4.14
# windows-server-2022-amd64-4.14_opam-2.3
USER 1000:1000
ENV CLICOLOR_FORCE="1"
ENV OPAMCOLOR="always"
RUN ln -f /usr/bin/opam-2.3 /usr/bin/opam
RUN opam init --reinit -ni
RUN uname -rs && opam exec -- ocaml -version && opam --version
RUN cd ~/opam-repository && (git cat-file -e 0e1a25ffde388b436cc1998777c138d69666193d || git fetch origin master) && git reset -q --hard 0e1a25ffde388b436cc1998777c138d69666193d && git log --no-decorate -n1 --oneline && opam update -u
COPY --chown=1000:1000 ppxlib.opam ppxlib-tools.opam ppxlib-bench.opam /Users/opam/src/./
RUN opam pin add -yn ppxlib.dev '/Users/opam/src/./' && \
    opam pin add -yn ppxlib-tools.dev '/Users/opam/src/./' && \
    opam pin add -yn ppxlib-bench.dev '/Users/opam/src/./'
RUN echo '(lang dune 3.0)' > '/cygdrive/c/Users/opam/src/./dune-project'
ENV DEPS="arch-x86_64.1 base.v0.16.4 base-bigarray.base base-threads.base base-unix.base cinaps.v0.15.1 cmdliner.1.3.0 conf-mingw-w64-gcc-x86_64.1 csexp.1.5.2 dune.3.19.0 dune-configurator.3.19.0 flexdll.0.44 host-arch-x86_64.1 host-system-mingw.1 mingw-w64-shims.0.2.0 ocaml.4.14.2 ocaml-base-compiler.4.14.2 ocaml-compiler-libs.v0.12.4 ocaml-config.3 ocaml-env-mingw64.1 ocaml-options-vanilla.1 ocamlfind.1.9.8 ppx_derivers.1.2.1 re.1.12.0 seq.base sexplib0.v0.16.0 stdlib-shims.0.3.0 system-mingw.1 yojson.3.0.0"
ENV CI="true"
ENV OCAMLCI="true"
RUN opam update --depexts && opam install --cli=2.3 --depext-only -y ppxlib.dev ppxlib-tools.dev ppxlib-bench.dev $DEPS
RUN opam install $DEPS
COPY --chown=1000:1000 . /Users/opam/src
RUN cd /cygdrive/c/Users/opam/src && opam exec -- dune build @install @check @runtest && rm -rf _build

END-OF-DOCKERFILE
docker build .
END-REPRO-BLOCK

2025-06-02 22:25.24: Using cache hint "ocaml-ppx/ppxlib-windows-server-2022-amd64-ocaml-4.14-windows-server-2022-amd64-4.14_opam-2.3-8362bfdcfbc52e3527c030ac59e82198"
2025-06-02 22:25.24: Using OBuilder spec:
((from windows-server-2022-amd64-ocaml-4.14)
 (comment windows-server-2022-amd64-4.14_opam-2.3)
 (user (uid 1000) (gid 1000))
 (env CLICOLOR_FORCE 1)
 (env OPAMCOLOR always)
 (run (shell "ln -f /usr/bin/opam-2.3 /usr/bin/opam"))
 (run (shell "opam init --reinit -ni"))
 (run (shell "uname -rs && opam exec -- ocaml -version && opam --version"))
 (run (cache (opam-archives (target "c:\\Users\\opam\\AppData\\local\\opam\\download-cache")))
      (network host)
      (shell "cd ~/opam-repository && (git cat-file -e 0e1a25ffde388b436cc1998777c138d69666193d || git fetch origin master) && git reset -q --hard 0e1a25ffde388b436cc1998777c138d69666193d && git log --no-decorate -n1 --oneline && opam update -u"))
 (copy (src ppxlib.opam ppxlib-tools.opam ppxlib-bench.opam)
       (dst /Users/opam/src/./))
 (run (network host)
      (shell  "opam pin add -yn ppxlib.dev '/Users/opam/src/./' && \
             \nopam pin add -yn ppxlib-tools.dev '/Users/opam/src/./' && \
             \nopam pin add -yn ppxlib-bench.dev '/Users/opam/src/./'"))
 (run (network host)
      (shell "echo '(lang dune 3.0)' > '/cygdrive/c/Users/opam/src/./dune-project'"))
 (env DEPS "arch-x86_64.1 base.v0.16.4 base-bigarray.base base-threads.base base-unix.base cinaps.v0.15.1 cmdliner.1.3.0 conf-mingw-w64-gcc-x86_64.1 csexp.1.5.2 dune.3.19.0 dune-configurator.3.19.0 flexdll.0.44 host-arch-x86_64.1 host-system-mingw.1 mingw-w64-shims.0.2.0 ocaml.4.14.2 ocaml-base-compiler.4.14.2 ocaml-compiler-libs.v0.12.4 ocaml-config.3 ocaml-env-mingw64.1 ocaml-options-vanilla.1 ocamlfind.1.9.8 ppx_derivers.1.2.1 re.1.12.0 seq.base sexplib0.v0.16.0 stdlib-shims.0.3.0 system-mingw.1 yojson.3.0.0")
 (env CI true)
 (env OCAMLCI true)
 (run (cache (opam-archives (target "c:\\Users\\opam\\AppData\\local\\opam\\download-cache")))
      (network host)
      (shell "opam update --depexts && opam install --cli=2.3 --depext-only -y ppxlib.dev ppxlib-tools.dev ppxlib-bench.dev $DEPS"))
 (run (cache (opam-archives (target "c:\\Users\\opam\\AppData\\local\\opam\\download-cache")))
      (network host)
      (shell "opam install $DEPS"))
 (copy (src .) (dst /Users/opam/src))
 (run (shell "cd /cygdrive/c/Users/opam/src && opam exec -- dune build @install @check @runtest && rm -rf _build"))
)

2025-06-02 22:25.24: Waiting for resource in pool OCluster
2025-06-02 22:25.24: Waiting for worker…
2025-06-02 22:42.15: Got resource from pool OCluster
Building on odawa
All commits already cached
HEAD is now at 74e7196c Merge pull request #580 from davesnx/patch-1

(from windows-server-2022-amd64-ocaml-4.14)
2025-06-02 22:42.16 ---> using "55c9cbebb0e098c78ccc09b1cc6e84ec9f0bd2275b7cebf331cc913575946dc0" from cache

/: (comment windows-server-2022-amd64-4.14_opam-2.3)

/: (user (uid 1000) (gid 1000))

/: (env CLICOLOR_FORCE 1)

/: (env OPAMCOLOR always)

/: (run (shell "ln -f /usr/bin/opam-2.3 /usr/bin/opam"))
2025-06-02 22:42.16 ---> using "fe3978d598c814685c6ee8922c3ae17147a3127f83af70ca6588d6b26847cd93" from cache

/: (run (shell "opam init --reinit -ni"))
No configuration file found, using built-in defaults.

<><> Unix support infrastructure ><><><><><><><><><><><><><><><><><><><><><><><>

opam and the OCaml ecosystem in general require various Unix tools in order to operate correctly. At present, this requires the installation of Cygwin to provide these tools.

How should opam obtain Unix tools?
> 1. Use tools found in PATH (Cygwin installation at C:\cygwin64)
  2. Automatically create an internal Cygwin installation that will be managed by opam (recommended)
  3. Use Cygwin installation found in C:\cygwin64
  4. Use another existing Cygwin/MSYS2 installation
  5. Abort initialisation

[1/2/3/4/5] 1
Checking for available remotes: rsync and local, git.
  - you won't be able to use mercurial repositories unless you install the hg command on your system.
  - you won't be able to use darcs repositories unless you install the darcs command on your system.


<><> Updating repositories ><><><><><><><><><><><><><><><><><><><><><><><><><><>
[default] no changes from file://C:/Users/opam/opam-repository
2025-06-02 22:42.16 ---> using "0caf41f56a7e1f8a9ba062ae44d7d1f50471f3874e543c30c0d1c2b229f1e062" from cache

/: (run (shell "uname -rs && opam exec -- ocaml -version && opam --version"))
CYGWIN_NT-10.0-20348 3.5.4-1.x86_64
The OCaml toplevel, version 4.14.2
2.3.0
2025-06-02 22:42.16 ---> using "6a7802e4db8e302e8ba8d87ff4e9376ae777099db0cd03bdab21ff27a442740c" from cache

/: (run (cache (opam-archives (target "c:\\Users\\opam\\AppData\\local\\opam\\download-cache")))
        (network host)
        (shell "cd ~/opam-repository && (git cat-file -e 0e1a25ffde388b436cc1998777c138d69666193d || git fetch origin master) && git reset -q --hard 0e1a25ffde388b436cc1998777c138d69666193d && git log --no-decorate -n1 --oneline && opam update -u"))
From https://github.com/ocaml/opam-repository
 * branch                  master     -> FETCH_HEAD
   11bdbee611..c037675bed  master     -> origin/master
0e1a25ffde Merge pull request #27956 from Leonidas-from-XIV/release-yojson-3.0.0

<><> Updating package repositories ><><><><><><><><><><><><><><><><><><><><><><>
[default] synchronised from file://C:/Users/opam/opam-repository

The following actions will be performed:
=== recompile 3 packages
  - recompile ocaml               4.14.2          [uses ocaml-base-compiler]
  - recompile ocaml-base-compiler 4.14.2 (pinned) [uses flexdll]
  - recompile ocaml-config        3               [uses ocaml-base-compiler]
=== upgrade 1 package
  - upgrade   flexdll             0.43 to 0.44

<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
-> retrieved ocaml-config.3  (cached)
-> retrieved flexdll.0.44  (cached)
-> removed   ocaml.4.14.2
-> removed   ocaml-config.3
-> retrieved ocaml-base-compiler.4.14.2  (cached)
-> removed   ocaml-base-compiler.4.14.2
-> removed   flexdll.0.43
-> installed flexdll.0.44
-> installed ocaml-base-compiler.4.14.2
-> installed ocaml-config.3
-> installed ocaml.4.14.2
Done.
# To update the current shell environment, run: eval $(opam env)
2025-06-02 22:42.16 ---> using "9b53867c9d08671520e81798455dbb76bd8e8774f0a5608d82b7557f7701a69d" from cache

/: (copy (src ppxlib.opam ppxlib-tools.opam ppxlib-bench.opam)
         (dst /Users/opam/src/./))
2025-06-02 22:42.33 ---> saved as "fd32d9e5a12e80c21db96f74e211489f95070e7d7d30c1da2fd62f8e801231e7"

/: (run (network host)
        (shell  "opam pin add -yn ppxlib.dev '/Users/opam/src/./' && \
               \nopam pin add -yn ppxlib-tools.dev '/Users/opam/src/./' && \
               \nopam pin add -yn ppxlib-bench.dev '/Users/opam/src/./'"))
[ppxlib.dev] synchronised (file://C:/Users/opam/src/.)
ppxlib is now pinned to file://C:/Users/opam/src/. (version dev)
[ppxlib-tools.dev] synchronised (file://C:/Users/opam/src/.)
ppxlib-tools is now pinned to file://C:/Users/opam/src/. (version dev)
Package ppxlib-bench does not exist, create as a NEW package? [y/n] y
[ppxlib-bench.dev] synchronised (file://C:/Users/opam/src/.)
ppxlib-bench is now pinned to file://C:/Users/opam/src/. (version dev)
2025-06-02 22:42.49 ---> saved as "08b12365ca5ac855fea4b75c4e13a70cdc937240e911e9f5d90babcbfafbeab7"

/: (run (network host)
        (shell "echo '(lang dune 3.0)' > '/cygdrive/c/Users/opam/src/./dune-project'"))
2025-06-02 22:43.01 ---> saved as "add6a2e6c651b1bdf005ef53e02cfacb1899a0ddf3d8dbf399bf9251262f2cd4"

/: (env DEPS "arch-x86_64.1 base.v0.16.4 base-bigarray.base base-threads.base base-unix.base cinaps.v0.15.1 cmdliner.1.3.0 conf-mingw-w64-gcc-x86_64.1 csexp.1.5.2 dune.3.19.0 dune-configurator.3.19.0 flexdll.0.44 host-arch-x86_64.1 host-system-mingw.1 mingw-w64-shims.0.2.0 ocaml.4.14.2 ocaml-base-compiler.4.14.2 ocaml-compiler-libs.v0.12.4 ocaml-config.3 ocaml-env-mingw64.1 ocaml-options-vanilla.1 ocamlfind.1.9.8 ppx_derivers.1.2.1 re.1.12.0 seq.base sexplib0.v0.16.0 stdlib-shims.0.3.0 system-mingw.1 yojson.3.0.0")

/: (env CI true)

/: (env OCAMLCI true)

/: (run (cache (opam-archives (target "c:\\Users\\opam\\AppData\\local\\opam\\download-cache")))
        (network host)
        (shell "opam update --depexts && opam install --cli=2.3 --depext-only -y ppxlib.dev ppxlib-tools.dev ppxlib-bench.dev $DEPS"))

<><> Synchronising pinned packages ><><><><><><><><><><><><><><><><><><><><><><>
[ppxlib.dev] synchronised (file://C:/Users/opam/src/.)
[ppxlib-bench.dev] synchronised (file://C:/Users/opam/src/.)
[ppxlib-tools.dev] synchronised (file://C:/Users/opam/src/.)

[NOTE] Package system-mingw is already installed (current version is 1).
[NOTE] Package ocaml-options-vanilla is already installed (current version is 1).
[NOTE] Package ocaml-env-mingw64 is already installed (current version is 1).
[NOTE] Package ocaml-config is already installed (current version is 3).
[NOTE] Package ocaml-base-compiler is already installed (current version is 4.14.2).
[NOTE] Package ocaml is already installed (current version is 4.14.2).
[NOTE] Package mingw-w64-shims is already installed (current version is 0.2.0).
[NOTE] Package host-system-mingw is already installed (current version is 1).
[NOTE] Package host-arch-x86_64 is already installed (current version is 1).
[NOTE] Package flexdll is already installed (current version is 0.44).
[NOTE] Package conf-mingw-w64-gcc-x86_64 is already installed (current version is 1).
[NOTE] Package base-unix is already installed (current version is base).
[NOTE] Package base-threads is already installed (current version is base).
[NOTE] Package base-bigarray is already installed (current version is base).
[NOTE] Package arch-x86_64 is already installed (current version is 1).
2025-06-02 22:43.39 ---> saved as "724bd4508b1c1a50fde8e89b66f34a24bb2ababcb54a77e196c1a6ecca1feb99"

/: (run (cache (opam-archives (target "c:\\Users\\opam\\AppData\\local\\opam\\download-cache")))
        (network host)
        (shell "opam install $DEPS"))
[NOTE] Package system-mingw is already installed (current version is 1).
[NOTE] Package ocaml-options-vanilla is already installed (current version is 1).
[NOTE] Package ocaml-env-mingw64 is already installed (current version is 1).
[NOTE] Package ocaml-config is already installed (current version is 3).
[NOTE] Package ocaml-base-compiler is already installed (current version is 4.14.2).
[NOTE] Package ocaml is already installed (current version is 4.14.2).
[NOTE] Package mingw-w64-shims is already installed (current version is 0.2.0).
[NOTE] Package host-system-mingw is already installed (current version is 1).
[NOTE] Package host-arch-x86_64 is already installed (current version is 1).
[NOTE] Package flexdll is already installed (current version is 0.44).
[NOTE] Package conf-mingw-w64-gcc-x86_64 is already installed (current version is 1).
[NOTE] Package base-unix is already installed (current version is base).
[NOTE] Package base-threads is already installed (current version is base).
[NOTE] Package base-bigarray is already installed (current version is base).
[NOTE] Package arch-x86_64 is already installed (current version is 1).
The following actions will be performed:
=== install 14 packages
  - install base                v0.16.4
  - install cinaps              v0.15.1
  - install cmdliner            1.3.0
  - install csexp               1.5.2
  - install dune                3.19.0
  - install dune-configurator   3.19.0
  - install ocaml-compiler-libs v0.12.4
  - install ocamlfind           1.9.8
  - install ppx_derivers        1.2.1
  - install re                  1.12.0
  - install seq                 base
  - install sexplib0            v0.16.0
  - install stdlib-shims        0.3.0
  - install yojson              3.0.0

<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
-> retrieved base.v0.16.4  (cached)
-> retrieved cmdliner.1.3.0  (cached)
-> retrieved csexp.1.5.2  (cached)
-> retrieved ocaml-compiler-libs.v0.12.4  (cached)
-> retrieved ocamlfind.1.9.8  (cached)
-> retrieved ppx_derivers.1.2.1  (cached)
-> retrieved re.1.12.0  (cached)
-> retrieved seq.base  (cached)
-> installed seq.base
-> retrieved sexplib0.v0.16.0  (cached)
-> retrieved stdlib-shims.0.3.0  (cached)
-> retrieved cinaps.v0.15.1  (https://github.com/ocaml-ppx/cinaps/archive/v0.15.1.tar.gz)
-> retrieved yojson.3.0.0  (https://github.com/ocaml-community/yojson/releases/download/3.0.0/yojson-3.0.0.tbz)
-> retrieved dune.3.19.0, dune-configurator.3.19.0  (cached)
-> installed cmdliner.1.3.0
[WARNING] .install file is missing .exe extension for src/findlib/ocamlfind
[WARNING] .install file is missing .exe extension for src/findlib/ocamlfind_opt
[WARNING] Automatically adding .exe to C:\Users\opam\AppData\Local\opam\4.14.2\.opam-switch\build\ocamlfind.1.9.8\src\findlib\ocamlfind.exe
[WARNING] Automatically adding .exe to C:\Users\opam\AppData\Local\opam\4.14.2\.opam-switch\build\ocamlfind.1.9.8\src\findlib\ocamlfind_opt.exe
[WARNING] C:\Users\opam\AppData\Local\opam\4.14.2\bin\safe_camlp4 is a script; the command won't be available
-> installed ocamlfind.1.9.8
-> installed dune.3.19.0
-> installed csexp.1.5.2
-> installed ocaml-compiler-libs.v0.12.4
-> installed ppx_derivers.1.2.1
-> installed re.1.12.0
-> installed sexplib0.v0.16.0
-> installed stdlib-shims.0.3.0
-> installed yojson.3.0.0
-> installed cinaps.v0.15.1
-> installed dune-configurator.3.19.0
-> installed base.v0.16.4
Done.
# To update the current shell environment, run: eval $(opam env)
2025-06-02 22:45.18 ---> saved as "3bd40fe84464dfa8c56f6945d8c5cd33fd8f91e3050f69c8caddadc6403dea1b"

/: (copy (src .) (dst /Users/opam/src))
2025-06-02 22:45.31 ---> saved as "5a817070c00e60d156441790b6b775b9de5584a13cf81d3c87f4db1b7feaef09"

/: (run (shell "cd /cygdrive/c/Users/opam/src && opam exec -- dune build @install @check @runtest && rm -rf _build"))
File "astlib/dune", lines 15-17, characters 0-63:
15 | (cinaps
16 |  (files *.ml *.mli)
17 |  (libraries astlib_cinaps_helpers))
(cd _build/default/astlib && .cinaps.2c8fe7fd\cinaps.exe -diff-cmd -)
Fatal error: exception Sys_error("C:\\Users\\opam\\AppData\\Local\\Temp\\build_f8a63d_dune\\cinapsdc9e50.ml: Permission denied")
File "src/dune", lines 24-26, characters 0-63:
24 | (cinaps
25 |  (files *.ml *.mli)
26 |  (libraries ppxlib_cinaps_helpers))
(cd _build/default/src && .cinaps.ec2be898\cinaps.exe -diff-cmd -)
Fatal error: exception Sys_error("C:\\Users\\opam\\AppData\\Local\\Temp\\build_f8a63d_dune\\cinapsd3544f.mli: Permission denied")
File "ast/dune", lines 21-23, characters 0-60:
21 | (cinaps
22 |  (files *.ml *.mli)
23 |  (libraries ast_cinaps_helpers))
(cd _build/default/ast && .cinaps.5e30bf3c\cinaps.exe -diff-cmd -)
Fatal error: exception Sys_error("C:\\Users\\opam\\AppData\\Local\\Temp\\build_f8a63d_dune\\cinaps4bddaf.ml: Permission denied")
File "test/expect/expect_test.ml", line 1, characters 0-0:
C:\cygwin64\bin\git.exe --no-pager diff --no-index --color=always -u --ignore-cr-at-eol _build/default/test/expect/expect_test.ml _build/default/test/expect/expect_test.ml.cinaps-corrected
diff --git a/_build/default/test/expect/expect_test.ml b/_build/default/test/expect/expect_test.ml.cinaps-corrected
index 05d7892..462e20a 100644
--- a/_build/default/test/expect/expect_test.ml
+++ b/_build/default/test/expect/expect_test.ml.cinaps-corrected
@@ -1,218 +1,211 @@
-open StdLabels
-
-let compiler_version =
-  match String.split_on_char ~sep:'.' Sys.ocaml_version with
-  | major :: minor :: _ -> (int_of_string major, int_of_string minor)
-  | _ -> assert false
-
-let include_compiler_version range =
-  let cmajor, cminor = compiler_version in
-  match (range : Expect_lexer.version_range) with
-  | Only (major, minor) -> cmajor = major && cminor = minor
-  | From (major, minor) -> cmajor > major || (cmajor = major && cminor >= minor)
-  | Up_to (major, minor) -> cmajor < major || (cmajor = major && cminor <= minor)
-  | Between ((min_major, min_minor), (max_major, max_minor)) ->
-      (cmajor > min_major && cmajor < max_major)
-      || (cmajor = min_major && cminor >= min_minor)
-      || (cmajor = max_major && cminor <= max_minor)
-
-let read_file file =
-  let ic = open_in_bin file in
-  let len = in_channel_length ic in
-  let file_contents = really_input_string ic len in
-  close_in ic;
-  file_contents
-
-let run_expect_test file ~f =
-  let file_contents = read_file file in
-  let lexbuf = Lexing.from_string file_contents in
-  lexbuf.lex_curr_p <-
-    { pos_fname = file; pos_cnum = 0; pos_lnum = 1; pos_bol = 0 };
-
-  let expected = f file_contents lexbuf in
-
-  let corrected_file = file ^ ".corrected" in
-  if file_contents <> expected then (
-    let oc = open_out_bin corrected_file in
-    output_string oc expected;
-    close_out oc)
-  else (
-    if Sys.file_exists corrected_file then Sys.remove corrected_file;
-    exit 0)
-
-let capture_trimmed_fmt printer arg =
-  let buf = Buffer.create 1024 in
-  let buf_fmt = Format.formatter_of_buffer buf in
-  printer buf_fmt arg;
-  String.trim (Buffer.contents buf)
-
-let print_loc _ _ ppf (loc : Location.t) =
-  let startchar = loc.loc_start.pos_cnum - loc.loc_start.pos_bol in
-  let endchar = loc.loc_end.pos_cnum - loc.loc_start.pos_cnum + startchar in
-  Format.fprintf ppf "Line _";
-  if startchar >= 0 then
-    Format.fprintf ppf ", characters %d-%d" startchar endchar;
-  Format.fprintf ppf ":@."
-
-let report_printer () =
-  let default = Location.default_report_printer () in
-  let trimmed_pp report_printer ppf report =
-    let trimmed = capture_trimmed_fmt (default.pp report_printer) report in
-    Format.fprintf ppf "%s\n" trimmed
-  in
-  {
-    default with
-    pp = trimmed_pp;
-    pp_main_loc = print_loc;
-    pp_submsg_loc = print_loc;
-  }
-
-let setup_printers ppf =
-  Location.formatter_for_warnings := ppf;
-  Location.warning_reporter := Location.default_warning_reporter;
-  Location.report_printer := report_printer;
-  Location.alert_reporter := Location.default_alert_reporter
-
-let apply_rewriters : Parsetree.toplevel_phrase -> Parsetree.toplevel_phrase =
-  function
-  | Ptop_dir _ as x -> x
-  | Ptop_def s ->
-      let s = Ppxlib.Selected_ast.of_ocaml Structure s in
-      let s' = Ppxlib.Driver.map_structure s in
-      Ptop_def (Ppxlib.Selected_ast.to_ocaml Structure s')
-
-let execute_phrase ppf phr =
-  let trimmed =
-    capture_trimmed_fmt
-      (fun ppf phr -> ignore (Toploop.execute_phrase true ppf phr))
-      phr
-  in
-  match trimmed with "" -> () | _ -> Format.fprintf ppf "%s\n" trimmed
-
-let pp_version ppf (major, minor) = Format.fprintf ppf "%d.%d" major minor
-
-let pp_range ppf range =
-  match (range : Expect_lexer.version_range) with
-  | Only v -> pp_version ppf v
-  | From v -> Format.fprintf ppf ">= %a" pp_version v
-  | Up_to v -> Format.fprintf ppf "<= %a" pp_version v
-  | Between (v1, v2) ->
-      Format.fprintf ppf "%a <=> %a" pp_version v1 pp_version v2
-
-let run_code ppf starting_pos code =
-  let lexbuf = Lexing.from_string code in
-  lexbuf.lex_curr_p <- { starting_pos with pos_lnum = 1 };
-  let phrases = !Toploop.parse_use_file lexbuf in
-  List.iter phrases ~f:(function
-    | Parsetree.Ptop_def [] -> ()
-    | phr -> (
-        try
-          let phr = apply_rewriters phr in
-          if !Clflags.dump_source then
-            Format.fprintf ppf "%a@?" Ppxlib.Pprintast.top_phrase
-              (Ppxlib.Selected_ast.Of_ocaml.copy_toplevel_phrase phr);
-          execute_phrase ppf phr
-        with exn -> Location.report_exception ppf exn))
-
-let trash_buffer = Buffer.create 1024
-let trash_ppf = Format.formatter_of_buffer trash_buffer
-
-let handle_ignore_block ppf starting_pos code =
-  Format.fprintf ppf "%s[%%%%ignore]@." code;
-  run_code trash_ppf starting_pos code;
-  Buffer.clear trash_buffer
-
-let handle_regular_expect_block ppf starting_pos code =
-  Format.fprintf ppf "%s[%%%%expect{|@." code;
-  run_code ppf starting_pos code;
-  Format.fprintf ppf "@?|}]@."
-
-let handle_versioned_expect_blocks ppf starting_pos code vexpect_blocks =
-  let matched = ref false in
-  let loc =
-    {
-      Ppxlib.Location.loc_start = starting_pos;
-      loc_end = starting_pos;
-      loc_ghost = false;
-    }
-  in
-  Format.fprintf ppf "%s@?" code;
-  List.iter vexpect_blocks ~f:(fun (range, content) ->
-      Format.fprintf ppf "[%%%%expect_in %a {|@." pp_range range;
-      if include_compiler_version range && not !matched then (
-        matched := true;
-        run_code ppf starting_pos code;
-        Format.fprintf ppf "@?|}]@.")
-      else if include_compiler_version range && !matched then
-        Ppxlib.Location.raise_errorf ~loc
-          "Multiple versioned expect block in a group matched our compiler \
-           version %a"
-          pp_version compiler_version
-      else Format.fprintf ppf "%s|}]@." content);
-  if not !matched then
-    Ppxlib.Location.raise_errorf ~loc
-      "No versioned expect block in a group matched our compiler version %a"
-      pp_version compiler_version
-
-let main () =
-  let rec map_tree = function
-    | Outcometree.Oval_constr (name, params) ->
-        Outcometree.Oval_constr (name, List.map ~f:map_tree params)
-    | Oval_variant (name, Some param) ->
-        Oval_variant (name, Some (map_tree param))
-    | Oval_string (s, maxlen, kind) ->
-        Oval_string (s, (if maxlen < 8 then 8 else maxlen), kind)
-    (*IF_NOT_AT_LEAST 504 | Oval_tuple tl -> Oval_tuple (List.map ~f:map_tree tl) *)
-    (*IF_AT_LEAST 504 | Oval_tuple tl -> Oval_tuple (List.map ~f:(fun (label, v) -> (label, map_tree v)) tl) *)
-    (*IF_NOT_AT_LEAST 504 | Oval_array tl -> Oval_array (List.map ~f:map_tree tl) *)
-    (*IF_AT_LEAST 504 | Oval_array (tl, mutable_) -> Oval_array ((List.map ~f:map_tree tl), mutable_) *)
-    | Oval_list tl -> Oval_list (List.map ~f:map_tree tl)
-    | Oval_record fel ->
-        Oval_record
-          (List.map ~f:(fun (name, tree) -> (name, map_tree tree)) fel)
-    | tree -> tree
-  in
-  let print_out_value = !Toploop.print_out_value in
-  (* Achieve 4.14 printing behaviour, as introduced in
-     https://github.com/ocaml/ocaml/pull/10565 *)
-  (Toploop.print_out_value :=
-     fun ppf tree -> print_out_value ppf (map_tree tree));
-  run_expect_test Sys.argv.(1) ~f:(fun file_contents lexbuf ->
-      let chunks = Expect_lexer.split_file ~file_contents lexbuf in
-
-      let buf = Buffer.create (String.length file_contents + 1024) in
-      let ppf = Format.formatter_of_buffer buf in
-      setup_printers ppf;
-      Topfind.log := ignore;
-
-      let _ = Warnings.parse_options false "@a-4-29-40-41-42-44-45-48-58" in
-      Clflags.real_paths := false;
-      Toploop.initialize_toplevel_env ();
-
-      (* Findlib stuff *)
-      let preds = [ "toploop" ] in
-      let preds =
-        match Sys.backend_type with
-        | Native -> "native" :: preds
-        | Bytecode -> "byte" :: preds
-        | Other _ -> preds
-      in
-      Topfind.add_predicates preds;
-      (* This just adds the include directories since the [ppx] library
-         is statically linked in *)
-      Topfind.load_deeply [ "ppxlib" ];
-
-      List.iter chunks
-        ~f:(fun { Expect_lexer.phrases; phrases_start; expect } ->
-          match expect with
-          | Ignore -> handle_ignore_block ppf phrases_start phrases
-          | Regular -> handle_regular_expect_block ppf phrases_start phrases
-          | Versioned vexpects ->
-              handle_versioned_expect_blocks ppf phrases_start phrases vexpects);
-      Buffer.contents buf)
-
-let () =
-  try main ()
-  with exn ->
-    Location.report_exception Format.err_formatter exn;
-    exit 1
+open StdLabels


+


+let compiler_version =


+  match String.split_on_char ~sep:'.' Sys.ocaml_version with


+  | major :: minor :: _ -> (int_of_string major, int_of_string minor)


+  | _ -> assert false


+


+let include_compiler_version range =


+  let cmajor, cminor = compiler_version in


+  match (range : Expect_lexer.version_range) with


+  | Only (major, minor) -> cmajor = major && cminor = minor


+  | From (major, minor) -> cmajor > major || (cmajor = major && cminor >= minor)


+  | Up_to (major, minor) -> cmajor < major || (cmajor = major && cminor <= minor)


+  | Between ((min_major, min_minor), (max_major, max_minor)) ->


+      (cmajor > min_major && cmajor < max_major)


+      || (cmajor = min_major && cminor >= min_minor)


+      || (cmajor = max_major && cminor <= max_minor)


+


+let read_file file =


+  let ic = open_in_bin file in


+  let len = in_channel_length ic in


+  let file_contents = really_input_string ic len in


+  close_in ic;


+  file_contents


+


+let run_expect_test file ~f =


+  let file_contents = read_file file in


+  let lexbuf = Lexing.from_string file_contents in


+  lexbuf.lex_curr_p <-


+    { pos_fname = file; pos_cnum = 0; pos_lnum = 1; pos_bol = 0 };


+


+  let expected = f file_contents lexbuf in


+


+  let corrected_file = file ^ ".corrected" in


+  if file_contents <> expected then (


+    let oc = open_out_bin corrected_file in


+    output_string oc expected;


+    close_out oc)


+  else (


+    if Sys.file_exists corrected_file then Sys.remove corrected_file;


+    exit 0)


+


+let capture_trimmed_fmt printer arg =


+  let buf = Buffer.create 1024 in


+  let buf_fmt = Format.formatter_of_buffer buf in


+  printer buf_fmt arg;


+  String.trim (Buffer.contents buf)


+


+let print_loc _ _ ppf (loc : Location.t) =


+  let startchar = loc.loc_start.pos_cnum - loc.loc_start.pos_bol in


+  let endchar = loc.loc_end.pos_cnum - loc.loc_start.pos_cnum + startchar in


+  Format.fprintf ppf "Line _";


+  if startchar >= 0 then


+    Format.fprintf ppf ", characters %d-%d" startchar endchar;


+  Format.fprintf ppf ":@."


+


+let report_printer () =


+  let default = Location.default_report_printer () in


+  let trimmed_pp report_printer ppf report =


+    let trimmed = capture_trimmed_fmt (default.pp report_printer) report in


+    Format.fprintf ppf "%s\n" trimmed


+  in


+  {


+    default with


+    pp = trimmed_pp;


+    pp_main_loc = print_loc;


+    pp_submsg_loc = print_loc;


+  }


+


+let setup_printers ppf =


+  Location.formatter_for_warnings := ppf;


+  Location.warning_reporter := Location.default_warning_reporter;


+  Location.report_printer := report_printer;


+  Location.alert_reporter := Location.default_alert_reporter


+


+let apply_rewriters : Parsetree.toplevel_phrase -> Parsetree.toplevel_phrase =


+  function


+  | Ptop_dir _ as x -> x


+  | Ptop_def s ->


+      let s = Ppxlib.Selected_ast.of_ocaml Structure s in


+      let s' = Ppxlib.Driver.map_structure s in


+      Ptop_def (Ppxlib.Selected_ast.to_ocaml Structure s')


+


+let execute_phrase ppf phr =


+  let trimmed =


+    capture_trimmed_fmt


+      (fun ppf phr -> ignore (Toploop.execute_phrase true ppf phr))


+      phr


+  in


+  match trimmed with "" -> () | _ -> Format.fprintf ppf "%s\n" trimmed


+


+let pp_version ppf (major, minor) = Format.fprintf ppf "%d.%d" major minor


+


+let pp_range ppf range =


+  match (range : Expect_lexer.version_range) with


+  | Only v -> pp_version ppf v


+  | From v -> Format.fprintf ppf ">= %a" pp_version v


+  | Up_to v -> Format.fprintf ppf "<= %a" pp_version v


+  | Between (v1, v2) ->


+      Format.fprintf ppf "%a <=> %a" pp_version v1 pp_version v2


+


+let run_code ppf starting_pos code =


+  let lexbuf = Lexing.from_string code in


+  lexbuf.lex_curr_p <- { starting_pos with pos_lnum = 1 };


+  let phrases = !Toploop.parse_use_file lexbuf in


+  List.iter phrases ~f:(function


+    | Parsetree.Ptop_def [] -> ()


+    | phr -> (


+        try


+          let phr = apply_rewriters phr in


+          if !Clflags.dump_source then


+            Format.fprintf ppf "%a@?" Ppxlib.Pprintast.top_phrase


+              (Ppxlib.Selected_ast.Of_ocaml.copy_toplevel_phrase phr);


+          execute_phrase ppf phr


+        with exn -> Location.report_exception ppf exn))


+


+let trash_buffer = Buffer.create 1024


+let trash_ppf = Format.formatter_of_buffer trash_buffer


+


+let handle_ignore_block ppf starting_pos code =


+  Format.fprintf ppf "%s[%%%%ignore]@." code;


+  run_code trash_ppf starting_pos code;


+  Buffer.clear trash_buffer


+


+let handle_regular_expect_block ppf starting_pos code =


+  Format.fprintf ppf "%s[%%%%expect{|@." code;


+  run_code ppf starting_pos code;


+  Format.fprintf ppf "@?|}]@."


+


+let handle_versioned_expect_blocks ppf starting_pos code vexpect_blocks =


+  let matched = ref false in


+  let loc =


+    {


+      Ppxlib.Location.loc_start = starting_pos;


+      loc_end = starting_pos;


+      loc_ghost = false;


+    }


+  in


+  Format.fprintf ppf "%s@?" code;


+  List.iter vexpect_blocks ~f:(fun (range, content) ->


+      Format.fprintf ppf "[%%%%expect_in %a {|@." pp_range range;


+      if include_compiler_version range && not !matched then (


+        matched := true;


+        run_code ppf starting_pos code;


+        Format.fprintf ppf "@?|}]@.")


+      else if include_compiler_version range && !matched then


+        Ppxlib.Location.raise_errorf ~loc


+          "Multiple versioned expect block in a group matched our compiler \


+           version %a"


+          pp_version compiler_version


+      else Format.fprintf ppf "%s|}]@." content);


+  if not !matched then


+    Ppxlib.Location.raise_errorf ~loc


+      "No versioned expect block in a group matched our compiler version %a"


+      pp_version compiler_version


+


+let main () =


+  let rec map_tree = function


+    | Outcometree.Oval_constr (name, params) ->


+        Outcometree.Oval_constr (name, List.map ~f:map_tree params)


+    | Oval_variant (name, Some param) ->


+        Oval_variant (name, Some (map_tree param))


+    | Oval_string (s, maxlen, kind) ->


+        Oval_string (s, (if maxlen < 8 then 8 else maxlen), kind)


+    (*IF_NOT_AT_LEAST 504 | Oval_tuple tl -> Oval_tuple (List.map ~f:map_tree tl) *)


+    (*IF_AT_LEAST 504 | Oval_tuple tl -> Oval_tuple (List.map ~f:(fun (label, v) -> (label, map_tree v)) tl) *)


+    (*IF_NOT_AT_LEAST 504 | Oval_array tl -> Oval_array (List.map ~f:map_tree tl) *)


+    (*IF_AT_LEAST 504 | Oval_array (tl, mutable_) -> Oval_array ((List.map ~f:map_tree tl), mutable_) *)


+    | Oval_list tl -> Oval_list (List.map ~f:map_tree tl)


+    | Oval_record fel ->


+        Oval_record


+          (List.map ~f:(fun (name, tree) -> (name, map_tree tree)) fel)


+    | tree -> tree


+  in


+  let print_out_value = !Toploop.print_out_value in


+  (* Achieve 4.14 printing behaviour, as introduced in


+     https://github.com/ocaml/ocaml/pull/10565 *)


+  (Toploop.print_out_value :=


+     fun ppf tree -> print_out_value ppf (map_tree tree));


+  run_expect_test Sys.argv.(1) ~f:(fun file_contents lexbuf ->


+      let chunks = Expect_lexer.split_file ~file_contents lexbuf in


+


+      let buf = Buffer.create (String.length file_contents + 1024) in


+      let ppf = Format.formatter_of_buffer buf in


+      setup_printers ppf;


+      Topfind.log := ignore;


+


+      let _ = Warnings.parse_options false "@a-4-29-40-41-42-44-45-48-58" in


+      Clflags.real_paths := false;


+      Toploop.initialize_toplevel_env ();


+


+      (* Findlib stuff *)


+      let preds = [ "toploop" ] in


+      let preds =


+        match Sys.backend_type with


+        | Native -> "native" :: preds


+        | Bytecode -> "byte" :: preds


+        | Other _ -> preds


+      in


+      Topfind.add_predicates preds;


+      (* This just adds the include directories since the [ppx] library


+         is statically linked in *)


+      Topfind.load_deeply [ "ppxlib" ];


+


+      List.iter chunks


+        ~f:(fun { Expect_lexer.phrases; phrases_start; expect } ->


+          match expect with


+          | Ignore -> handle_ignore_block ppf phrases_start phrases


+          | Regular -> handle_regular_expect_block ppf phrases_start phrases


+          | Versioned vexpects ->


+    
\ No newline at end of file
File "test/driver/error_embedding/test.t/run.t", line 1, characters 0-0:
C:\cygwin64\bin\git.exe --no-pager diff --no-index --color=always -u --ignore-cr-at-eol _build/.sandbox/6d6d57b87843f75623797e02d085c4e0/default/test/driver/error_embedding/test.t/run.t _build/.sandbox/6d6d57b87843f75623797e02d085c4e0/default/test/driver/error_embedding/test.t/run.t.corrected
diff --git a/_build/.sandbox/6d6d57b87843f75623797e02d085c4e0/default/test/driver/error_embedding/test.t/run.t b/_build/.sandbox/6d6d57b87843f75623797e02d085c4e0/default/test/driver/error_embedding/test.t/run.t.corrected
index dafee10..80942d1 100644
--- a/_build/.sandbox/6d6d57b87843f75623797e02d085c4e0/default/test/driver/error_embedding/test.t/run.t
+++ b/_build/.sandbox/6d6d57b87843f75623797e02d085c4e0/default/test/driver/error_embedding/test.t/run.t.corrected
@@ -14,8 +14,12 @@ The same is true when using the `-as-ppx` mode (note that the error is reported
 by ocaml itself)
 
   $ ocaml -ppx '../raiser.exe -as-ppx' impl.ml
-  File "./impl.ml", line 1, characters 8-16:
-  Error: Raising inside the rewriter
+  '..' is not recognized as an internal or external command,

+  operable program or batch file.

+  File ".\impl.ml", line 1:

+  Error: Error while running external preprocessor

+  Command line: ../raiser.exe -as-ppx "C:\Users\opam\AppData\Local\Temp\build_f8a63d_dune\camlppx4cb784" "C:\Users\opam\AppData\Local\Temp\build_f8a63d_dune\camlppx5e0e4a"

+  

   [2]
 
 Also exceptions raised in a preprocessor get embedded into an AST(while the
@@ -23,9 +27,10 @@ error from the preprocessor's stderr also gets reported on the driver's stderr)
 
   $ touch file.ml
   $ ../raiser.exe -embed-errors -pp ../pp.exe file.ml | sed "s/> '.*'/> tmpfile/"
-  Fatal error: exception Raising inside the preprocessor
+  '..' is not recognized as an internal or external command,

+  operable program or batch file.

   [%%ocaml.error
-    "Error while running external preprocessor\nCommand line: ../pp.exe 'file.ml' > tmpfile\n"]
+    "Error while running external preprocessor\nCommand line: ../pp.exe \"file.ml\" > \"C:\\Users\\opam\\AppData\\Local\\Temp\\build_f8a63d_dune\\ocamlpp30eb96\"\n"]

 
 Also `unknown version` errors are embedded into an AST when using the
 main standalone
File "test/driver/standalone_run_as_ppx/run.t", line 1, characters 0-0:
C:\cygwin64\bin\git.exe --no-pager diff --no-index --color=always -u --ignore-cr-at-eol _build/.sandbox/eee8f6bf94030c71495fbfdbb1adaa12/default/test/driver/standalone_run_as_ppx/run.t _build/.sandbox/eee8f6bf94030c71495fbfdbb1adaa12/default/test/driver/standalone_run_as_ppx/run.t.corrected
diff --git a/_build/.sandbox/eee8f6bf94030c71495fbfdbb1adaa12/default/test/driver/standalone_run_as_ppx/run.t b/_build/.sandbox/eee8f6bf94030c71495fbfdbb1adaa12/default/test/driver/standalone_run_as_ppx/run.t.corrected
index e36c4bf..276b1c0 100644
--- a/_build/.sandbox/eee8f6bf94030c71495fbfdbb1adaa12/default/test/driver/standalone_run_as_ppx/run.t
+++ b/_build/.sandbox/eee8f6bf94030c71495fbfdbb1adaa12/default/test/driver/standalone_run_as_ppx/run.t.corrected
@@ -6,7 +6,13 @@ The rewriter gets applied when using `--as-ppx`
 
   $ echo "let _ = [%print_hi]" > impl.ml
   $ ocaml -ppx './print_stuff.exe --as-ppx' impl.ml
-  hi
+  '.' is not recognized as an internal or external command,

+  operable program or batch file.

+  File ".\impl.ml", line 1:

+  Error: Error while running external preprocessor

+  Command line: ./print_stuff.exe --as-ppx "C:\Users\opam\AppData\Local\Temp\build_f8a63d_dune\camlppxb02c17" "C:\Users\opam\AppData\Local\Temp\build_f8a63d_dune\camlppx114b96"

+  

+  [2]

 
 If a non-compatible file gets fed, the file name is reported correctly
 
@@ -20,18 +26,34 @@ The ocaml.ppx.context attribute gets parsed correctly; in particular, the tool n
 
   $ echo "let _ = [%print_tool_name]" > impl.ml
   $ ocaml -ppx './print_stuff.exe --as-ppx' impl.ml
-  ocaml
+  '.' is not recognized as an internal or external command,

+  operable program or batch file.

+  File ".\impl.ml", line 1:

+  Error: Error while running external preprocessor

+  Command line: ./print_stuff.exe --as-ppx "C:\Users\opam\AppData\Local\Temp\build_f8a63d_dune\camlppx74845d" "C:\Users\opam\AppData\Local\Temp\build_f8a63d_dune\camlppxb2ab97"

+  

+  [2]

 
 The driver's `shared_args` arguments are taken into account. For example, `-loc-filename`
 
   $ echo "let _ = [%print_fname]" > impl.ml
   $ ocaml -ppx './print_stuff.exe --as-ppx -loc-filename new_fn.ml' impl.ml
-  new_fn.ml
+  '.' is not recognized as an internal or external command,

+  operable program or batch file.

+  File ".\impl.ml", line 1:

+  Error: Error while running external preprocessor

+  Command line: ./print_stuff.exe --as-ppx -loc-filename new_fn.ml "C:\Users\opam\AppData\Local\Temp\build_f8a63d_dune\camlppx6db76a" "C:\Users\opam\AppData\Local\Temp\build_f8a63d_dune\camlppx4e5790"

+  

+  [2]

 
 or `dont-apply`
 
   $ echo "let _ = [%print_hi]" > impl.ml
   $ ocaml -ppx './print_stuff.exe --as-ppx -dont-apply test' impl.ml
-  File "./impl.ml", line 1, characters 10-18:
-  Error: Uninterpreted extension 'print_hi'.
+  '.' is not recognized as an internal or external command,

+  operable program or batch file.

+  File ".\impl.ml", line 1:

+  Error: Error while running external preprocessor

+  Command line: ./print_stuff.exe --as-ppx -dont-apply test "C:\Users\opam\AppData\Local\Temp\build_f8a63d_dune\camlppxa75408" "C:\Users\opam\AppData\Local\Temp\build_f8a63d_dune\camlppxf8ed47"

+  

   [2]
File "test/driver/flag_cookie/run.t", line 1, characters 0-0:
C:\cygwin64\bin\git.exe --no-pager diff --no-index --color=always -u --ignore-cr-at-eol _build/.sandbox/68876905d7e87c907f89cbb4d1cccef7/default/test/driver/flag_cookie/run.t _build/.sandbox/68876905d7e87c907f89cbb4d1cccef7/default/test/driver/flag_cookie/run.t.corrected
diff --git a/_build/.sandbox/68876905d7e87c907f89cbb4d1cccef7/default/test/driver/flag_cookie/run.t b/_build/.sandbox/68876905d7e87c907f89cbb4d1cccef7/default/test/driver/flag_cookie/run.t.corrected
index d6c3fa5..47bc77c 100644
--- a/_build/.sandbox/68876905d7e87c907f89cbb4d1cccef7/default/test/driver/flag_cookie/run.t
+++ b/_build/.sandbox/68876905d7e87c907f89cbb4d1cccef7/default/test/driver/flag_cookie/run.t.corrected
@@ -7,4 +7,10 @@ The cookie flag is taken into account, both by the main standalone
 ...and by the `-as-ppx` standalone
 
   $ ocaml -ppx './print_cookie_driver.exe --as-ppx -cookie x=1' impl.ml
-  Value of cookie x: 1
+  '.' is not recognized as an internal or external command,

+  operable program or batch file.

+  File ".\impl.ml", line 1:

+  Error: Error while running external preprocessor

+  Command line: ./print_cookie_driver.exe --as-ppx -cookie x=1 "C:\Users\opam\AppData\Local\Temp\build_f8a63d_dune\camlppxf2cf80" "C:\Users\opam\AppData\Local\Temp\build_f8a63d_dune\camlppx3601ec"

+  

+  [2]

File "test/extensions_and_deriving/floating_attr/run-floating-attr.t", line 1, characters 0-0:
C:\cygwin64\bin\git.exe --no-pager diff --no-index --color=always -u --ignore-cr-at-eol _build/.sandbox/82164f0fbc5fba95e2c7bc03e469f5b3/default/test/extensions_and_deriving/floating_attr/run-floating-attr.t _build/.sandbox/82164f0fbc5fba95e2c7bc03e469f5b3/default/test/extensions_and_deriving/floating_attr/run-floating-attr.t.corrected
diff --git a/_build/.sandbox/82164f0fbc5fba95e2c7bc03e469f5b3/default/test/extensions_and_deriving/floating_attr/run-floating-attr.t b/_build/.sandbox/82164f0fbc5fba95e2c7bc03e469f5b3/default/test/extensions_and_deriving/floating_attr/run-floating-attr.t.corrected
index 1807b5c..2a273b9 100644
--- a/_build/.sandbox/82164f0fbc5fba95e2c7bc03e469f5b3/default/test/extensions_and_deriving/floating_attr/run-floating-attr.t
+++ b/_build/.sandbox/82164f0fbc5fba95e2c7bc03e469f5b3/default/test/extensions_and_deriving/floating_attr/run-floating-attr.t.corrected
@@ -12,12 +12,22 @@ Test `attr_str_floating_expect_and_expand` via `@@@identity_inline_expanded`.
   $ ./ppx.exe -no-color -null -diff-cmd 'diff -u --label "" --label ""' program.ml
   --- 
   +++ 
-  @@ -4,4 +4,5 @@
-     end = struct
-       let foo = [%suffix "apples"]
-     end]
+  @@ -1,7 +1,8 @@

+  -[@@@identity_inline_expanded

+  -  module T : sig

+  -    val foo : [%str]

+  -  end = struct

+  -    let foo = [%suffix "apples"]

+  -  end]

+  -[@@@end]

+  +[@@@identity_inline_expanded

+  +  module T : sig

+  +    val foo : [%str]

+  +  end = struct

+  +    let foo = [%suffix "apples"]

+  +  end]

   +module T : sig val foo : string end = struct let foo = "apples_suffix" end
-   [@@@end]
+  +[@@@end]

   [1]
 
 Test `attr_sig_floating_expect_and_expand` via `@@@identity_inline_expanded`.
@@ -35,14 +45,24 @@ Test `attr_sig_floating_expect_and_expand` via `@@@identity_inline_expanded`.
   $ ./ppx.exe -no-color -null -diff-cmd 'diff -u --label "" --label ""' program.ml
   --- 
   +++ 
-  @@ -4,5 +4,8 @@
-       include module type of struct
-         let foo = [%suffix "apples"]
-       end]
+  @@ -1,8 +1,11 @@

+  -module type S = sig

+  -  [@@@identity_inline_expanded:

+  -    val foo : [%str]

+  -    include module type of struct

+  -      let foo = [%suffix "apples"]

+  -    end]

   -  [@@@end]
+  -end 

+  +module type S = sig

+  +  [@@@identity_inline_expanded:

+  +    val foo : [%str]

+  +    include module type of struct

+  +      let foo = [%suffix "apples"]

+  +    end]

   +  
   +val foo : string
   +include module type of struct let foo = "apples_suffix" end
   +[@@@end]
-   end 
+  +end 

   [1]
File "test/driver/run_as_ppx_rewriter/run.t", line 1, characters 0-0:
C:\cygwin64\bin\git.exe --no-pager diff --no-index --color=always -u --ignore-cr-at-eol _build/.sandbox/95ce7cb6e5f451a87617f8e1af097c72/default/test/driver/run_as_ppx_rewriter/run.t _build/.sandbox/95ce7cb6e5f451a87617f8e1af097c72/default/test/driver/run_as_ppx_rewriter/run.t.corrected
diff --git a/_build/.sandbox/95ce7cb6e5f451a87617f8e1af097c72/default/test/driver/run_as_ppx_rewriter/run.t b/_build/.sandbox/95ce7cb6e5f451a87617f8e1af097c72/default/test/driver/run_as_ppx_rewriter/run.t.corrected
index a9a0d71..837b8ae 100644
--- a/_build/.sandbox/95ce7cb6e5f451a87617f8e1af097c72/default/test/driver/run_as_ppx_rewriter/run.t
+++ b/_build/.sandbox/95ce7cb6e5f451a87617f8e1af097c72/default/test/driver/run_as_ppx_rewriter/run.t.corrected
@@ -10,23 +10,35 @@ The registered rewriters get applied when using `run_as_ppx_rewriter` as entry p
   > let () = [%print_bye]
   > EOF
   $ ocaml -ppx './print_greetings.exe' file.ml
-  hi
-  bye
+  '.' is not recognized as an internal or external command,

+  operable program or batch file.

+  File ".\file.ml", line 1:

+  Error: Error while running external preprocessor

+  Command line: ./print_greetings.exe "C:\Users\opam\AppData\Local\Temp\build_f8a63d_dune\camlppx846ef7" "C:\Users\opam\AppData\Local\Temp\build_f8a63d_dune\camlppx17281f"

+  

+  [2]

 
 The driver's `shared_args` are taken into account, such as `-apply`...
 
   $ ocaml -ppx './print_greetings.exe -apply print_hi' file.ml
-  hi
-  File "./file.ml", line 2, characters 11-20:
-  Error: Uninterpreted extension 'print_bye'.
+  '.' is not recognized as an internal or external command,

+  operable program or batch file.

+  File ".\file.ml", line 1:

+  Error: Error while running external preprocessor

+  Command line: ./print_greetings.exe -apply print_hi "C:\Users\opam\AppData\Local\Temp\build_f8a63d_dune\camlppx06b085" "C:\Users\opam\AppData\Local\Temp\build_f8a63d_dune\camlppx3e01b2"

+  

   [2]
 
 ... and `-check`
 
   $ echo "[@@@attr non_registered_attr]" > attribute_file.ml
   $ ocaml -ppx './print_greetings.exe -check' attribute_file.ml
-  File "./attribute_file.ml", line 1, characters 4-8:
-  Error: Attribute `attr' was not used
+  '.' is not recognized as an internal or external command,

+  operable program or batch file.

+  File ".\attribute_file.ml", line 1:

+  Error: Error while running external preprocessor

+  Command line: ./print_greetings.exe -check "C:\Users\opam\AppData\Local\Temp\build_f8a63d_dune\camlppxd98a4b" "C:\Users\opam\AppData\Local\Temp\build_f8a63d_dune\camlppxa63a70"

+  

   [2]
 
 
@@ -48,7 +60,7 @@ The only possible usage is [extra_args] <infile> <outfile>...
 
   $ touch some_output
   $ ./print_greetings.exe some_input some_output -check
-  ./print_greetings.exe: anonymous arguments not accepted.
+  C:\Users\opam\src\_build\.sandbox\95ce7cb6e5f451a87617f8e1af097c72\default\test\driver\run_as_ppx_rewriter\print_greetings.exe: anonymous arguments not accepted.

   print_greetings.exe [extra_args] <infile> <outfile>
     -loc-filename <string>      File name to use in locations
     -reserve-namespace <string> Mark the given namespace as reserved
File "test/extensions_and_deriving/floating_attr/run-expand-inline.t", line 1, characters 0-0:
C:\cygwin64\bin\git.exe --no-pager diff --no-index --color=always -u --ignore-cr-at-eol _build/.sandbox/37a93f30202c3fcb602f6239b5b0cedf/default/test/extensions_and_deriving/floating_attr/run-expand-inline.t _build/.sandbox/37a93f30202c3fcb602f6239b5b0cedf/default/test/extensions_and_deriving/floating_attr/run-expand-inline.t.corrected
diff --git a/_build/.sandbox/37a93f30202c3fcb602f6239b5b0cedf/default/test/extensions_and_deriving/floating_attr/run-expand-inline.t b/_build/.sandbox/37a93f30202c3fcb602f6239b5b0cedf/default/test/extensions_and_deriving/floating_attr/run-expand-inline.t.corrected
index 399cdb2..29d0edc 100644
--- a/_build/.sandbox/37a93f30202c3fcb602f6239b5b0cedf/default/test/extensions_and_deriving/floating_attr/run-expand-inline.t
+++ b/_build/.sandbox/37a93f30202c3fcb602f6239b5b0cedf/default/test/extensions_and_deriving/floating_attr/run-expand-inline.t.corrected
@@ -12,12 +12,22 @@ Test `expand_inline` for structures.
   $ ./ppx.exe -no-color -null -diff-cmd 'diff -u --label "" --label ""' program.ml
   --- 
   +++ 
-  @@ -4,4 +4,5 @@
-     end = struct
-       let foo = [%suffix "apples"]
-     end]
+  @@ -1,7 +1,8 @@

+  -[@@@expand_inline

+  -  module T : sig

+  -    val foo : [%str]

+  -  end = struct

+  -    let foo = [%suffix "apples"]

+  -  end]

+  -[@@@end]

+  +[@@@expand_inline

+  +  module T : sig

+  +    val foo : [%str]

+  +  end = struct

+  +    let foo = [%suffix "apples"]

+  +  end]

   +module T : sig val foo : string end = struct let foo = "apples_suffix" end
-   [@@@end]
+  +[@@@end]

   [1]
 
 Test `expand_inline` for signatures.
@@ -35,16 +45,26 @@ Test `expand_inline` for signatures.
   $ ./ppx.exe -no-color -null -diff-cmd 'diff -u --label "" --label ""' program.ml
   --- 
   +++ 
-  @@ -4,5 +4,8 @@
-       include module type of struct
-         let foo = [%suffix "apples"]
-       end]
+  @@ -1,8 +1,11 @@

+  -module type S = sig

+  -  [@@@expand_inline:

+  -    val foo : [%str]

+  -    include module type of struct

+  -      let foo = [%suffix "apples"]

+  -    end]

   -  [@@@end]
+  -end 

+  +module type S = sig

+  +  [@@@expand_inline:

+  +    val foo : [%str]

+  +    include module type of struct

+  +      let foo = [%suffix "apples"]

+  +    end]

   +  
   +val foo : string
   +include module type of struct let foo = "apples_suffix" end
   +[@@@end]
-   end 
+  +end 

   [1]
 
 Test (** ... *) comments get translated using {| |} syntax.
@@ -67,14 +87,36 @@ Test (** ... *) comments get translated using {| |} syntax.
   $ ./ppx.exe -no-color -null -diff-cmd 'diff -u --label "" --label ""' program.ml
   --- 
   +++ 
-  @@ -10,4 +10,7 @@
-   (** baz *)
-   
-   ]
+  @@ -1,13 +1,16 @@

+  -[@@@expand_inline 

+  -module T : sig

+  -(**foo*)

+  -val foo : [%str]

+  -end = struct

+  -(**bar*)

+  -let foo = [%suffix "apples"]

+  -end

+  -

+  -(** baz *)

+  -

+  -]

+  -[@@@end]

+  +[@@@expand_inline 

+  +module T : sig

+  +(**foo*)

+  +val foo : [%str]

+  +end = struct

+  +(**bar*)

+  +let foo = [%suffix "apples"]

+  +end

+  +

+  +(** baz *)

+  +

+  +]

   +module T : sig val foo : string[@@ocaml.doc {|foo|}] end =
   +  struct let foo = "apples_suffix"[@@ocaml.doc {|bar|}] end
   +[@@@ocaml.text {| baz |}]
-   [@@@end]
+  +[@@@end]

   [1]
 
 Test [@@ocaml.doc ...] attributes do not get swapped to using {| |}.
@@ -92,13 +134,25 @@ Test [@@ocaml.doc ...] attributes do not get swapped to using {| |}.
   $ ./ppx.exe -no-color -null -diff-cmd 'diff -u --label "" --label ""' program.ml
   --- 
   +++ 
-  @@ -5,4 +5,6 @@
-   let foo = [%suffix "apples"] [@@ocaml.doc "foo"]
-   end
-   ]
+  @@ -1,8 +1,10 @@

+  -[@@@expand_inline 

+  -module T : sig

+  -val foo : [%str] [@@ocaml.doc "foo"]

+  -end = struct

+  -let foo = [%suffix "apples"] [@@ocaml.doc "foo"]

+  -end

+  -]

+  -[@@@end]

+  +[@@@expand_inline 

+  +module T : sig

+  +val foo : [%str] [@@ocaml.doc "foo"]

+  +end = struct

+  +let foo = [%suffix "apples"] [@@ocaml.doc "foo"]

+  +end

+  +]

   +module T : sig val foo : string[@@ocaml.doc "foo"] end =
   +  struct let foo = "apples_suffix"[@@ocaml.doc "foo"] end
-   [@@@end]
+  +[@@@end]

   [1]
 
 Test the delim finding behaviour when translating (** ... *) comments to {| |} syntax.
@@ -113,12 +167,18 @@ Test the delim finding behaviour when translating (** ... *) comments to {| |} s
   $ ./ppx.exe -no-color -null -diff-cmd 'diff -u --label "" --label ""' program.ml
   --- 
   +++ 
-  @@ -2,4 +2,5 @@
-   (**blah blah |} blah blah*)
-   let foo = [%suffix "apples"]
-   ]
+  @@ -1,5 +1,6 @@

+  -[@@@expand_inline 

+  -(**blah blah |} blah blah*)

+  -let foo = [%suffix "apples"]

+  -]

+  -[@@@end]

+  +[@@@expand_inline 

+  +(**blah blah |} blah blah*)

+  +let foo = [%suffix "apples"]

+  +]

   +let foo = "apples_suffix"[@@ocaml.doc {x|blah blah |} blah blah|x}]
-   [@@@end]
+  +[@@@end]

   [1]
 
   $ cat << 'EOF' > program.ml
@@ -131,10 +191,16 @@ Test the delim finding behaviour when translating (** ... *) comments to {| |} s
   $ ./ppx.exe -no-color -null -diff-cmd 'diff -u --label "" --label ""' program.ml
   --- 
   +++ 
-  @@ -2,4 +2,5 @@
-   (**blxxx |} blaxxxxxxxxxh blxxahx*)
-   let foo = [%suffix "apples"]
-   ]
+  @@ -1,5 +1,6 @@

+  -[@@@expand_inline 

+  -(**blxxx |} blaxxxxxxxxxh blxxahx*)

+  -let foo = [%suffix "apples"]

+  -]

+  -[@@@end]

+  +[@@@expand_inline 

+  +(**blxxx |} blaxxxxxxxxxh blxxahx*)

+  +let foo = [%suffix "apples"]

+  +]

   +let foo = "apples_suffix"[@@ocaml.doc {x|blxxx |} blaxxxxxxxxxh blxxahx|x}]
-   [@@@end]
+  +[@@@end]

   [1]
"cd /cygdrive/c/Users/opam/src && opam exec -- dune build @install @check @runtest && rm -rf _build" failed with exit status 1
2025-06-02 22:46.20: Job failed: Failed: Build failed