From 5fb190cad44c17e23b598edf92632ced76db7f0f Mon Sep 17 00:00:00 2001 From: Hyeseong Kim Date: Mon, 19 May 2025 03:01:56 +0900 Subject: [PATCH 1/3] playground: set global for the compatibility reason But playground should adopt module. --- compiler/jsoo/jsoo_playground_main.ml | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/compiler/jsoo/jsoo_playground_main.ml b/compiler/jsoo/jsoo_playground_main.ml index 9c1ee69d1b..6761523803 100644 --- a/compiler/jsoo/jsoo_playground_main.ml +++ b/compiler/jsoo/jsoo_playground_main.ml @@ -674,9 +674,14 @@ module Export = struct end let () = - Js.export "rescript_compiler" - (object%js - val api_version = api_version - val version = Bs_version.version - method make = Export.make () - end) + let compiler = + object%js + val api_version = api_version + val version = Bs_version.version + method make = Export.make () + end + in + Js.export "rescript_compiler" compiler; + + (* Prefer module export, but keep global variable for playground compatibility *) + Js.Unsafe.set Js.Unsafe.global "rescript_compiler" compiler From f6b475c26bb633a4be47956edec2ee37e88e9cea Mon Sep 17 00:00:00 2001 From: Hyeseong Kim Date: Mon, 19 May 2025 03:24:41 +0900 Subject: [PATCH 2/3] Revert "playground: set global for the compatibility reason" This reverts commit 5fb190cad44c17e23b598edf92632ced76db7f0f. --- compiler/jsoo/jsoo_playground_main.ml | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/compiler/jsoo/jsoo_playground_main.ml b/compiler/jsoo/jsoo_playground_main.ml index 6761523803..9c1ee69d1b 100644 --- a/compiler/jsoo/jsoo_playground_main.ml +++ b/compiler/jsoo/jsoo_playground_main.ml @@ -674,14 +674,9 @@ module Export = struct end let () = - let compiler = - object%js - val api_version = api_version - val version = Bs_version.version - method make = Export.make () - end - in - Js.export "rescript_compiler" compiler; - - (* Prefer module export, but keep global variable for playground compatibility *) - Js.Unsafe.set Js.Unsafe.global "rescript_compiler" compiler + Js.export "rescript_compiler" + (object%js + val api_version = api_version + val version = Bs_version.version + method make = Export.make () + end) From e3092fc3d3708745ee590c78933ba8a1496e24cb Mon Sep 17 00:00:00 2001 From: Hyeseong Kim Date: Mon, 19 May 2025 03:27:23 +0900 Subject: [PATCH 3/3] Use unsafe API instead of PPX, which is even more unsafe --- compiler/jsoo/dune | 4 +--- compiler/jsoo/jsoo_playground_main.ml | 12 +++++++----- rescript.opam | 1 - rescript.opam.template | 1 - 4 files changed, 8 insertions(+), 10 deletions(-) diff --git a/compiler/jsoo/dune b/compiler/jsoo/dune index 209f9d9f05..af24cc17d1 100644 --- a/compiler/jsoo/dune +++ b/compiler/jsoo/dune @@ -7,6 +7,4 @@ (= %{profile} browser)) (flags (:standard -w +a-4-9-40-42-44-45)) - (libraries core syntax ml js_of_ocaml) - (preprocess - (pps js_of_ocaml-ppx))) + (libraries core syntax ml js_of_ocaml)) diff --git a/compiler/jsoo/jsoo_playground_main.ml b/compiler/jsoo/jsoo_playground_main.ml index 9c1ee69d1b..8cf7a567d6 100644 --- a/compiler/jsoo/jsoo_playground_main.ml +++ b/compiler/jsoo/jsoo_playground_main.ml @@ -675,8 +675,10 @@ end let () = Js.export "rescript_compiler" - (object%js - val api_version = api_version - val version = Bs_version.version - method make = Export.make () - end) + Js.Unsafe.( + obj + [| + ("api_version", inject @@ Js.string api_version); + ("version", inject @@ Js.string Bs_version.version); + ("make", inject @@ Export.make); + |]) diff --git a/rescript.opam b/rescript.opam index fe8dd954c8..efb475eb5f 100644 --- a/rescript.opam +++ b/rescript.opam @@ -33,7 +33,6 @@ depends: [ # Test dependencies that would be broken on Windows runners "js_of_ocaml" {os != "win32" & with-test & = "6.0.1"} - "js_of_ocaml-ppx" {os != "win32" & with-test & = "6.0.1"} "wasm_of_ocaml-compiler" {os != "win32" & with-test & = "6.0.1"} ] pin-depends: [ diff --git a/rescript.opam.template b/rescript.opam.template index e0345025a8..ffc4578a2d 100644 --- a/rescript.opam.template +++ b/rescript.opam.template @@ -11,7 +11,6 @@ depends: [ # Test dependencies that would be broken on Windows runners "js_of_ocaml" {os != "win32" & with-test & = "6.0.1"} - "js_of_ocaml-ppx" {os != "win32" & with-test & = "6.0.1"} "wasm_of_ocaml-compiler" {os != "win32" & with-test & = "6.0.1"} ] pin-depends: [