Skip to content

Commit 8886ce8

Browse files
authored
Merge pull request #1902 from BuckleScript/simplify_open
simplify -bs-package-name, -open into a single -bs-package-map option
2 parents b79aca6 + f62e3ef commit 8886ce8

File tree

10 files changed

+66
-36
lines changed

10 files changed

+66
-36
lines changed

jscomp/all.depend

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -369,7 +369,8 @@ core/js_packages_info.cmx : core/lam_module_ident.cmx ext/ext_sys.cmx \
369369
ext/ext_filename.cmx core/config_util.cmx depends/bs_exception.cmx \
370370
core/js_packages_info.cmi
371371
core/js_packages_state.cmx : core/js_packages_info.cmx \
372-
ext/ext_pervasives.cmx core/js_packages_state.cmi
372+
ext/ext_pervasives.cmx ext/ext_package_name.cmx \
373+
core/js_packages_state.cmi
373374
core/type_int_to_string.cmx :
374375
core/type_util.cmx : core/type_int_to_string.cmx common/ext_log.cmx \
375376
core/type_util.cmi

jscomp/bin/bsb.ml

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -11537,7 +11537,7 @@ let refmt_flags = "refmt_flags"
1153711537
let postbuild = "postbuild"
1153811538

1153911539
let namespace = "namespace"
11540-
let open_package = "open_package"
11540+
1154111541

1154211542

1154311543
end
@@ -11746,21 +11746,21 @@ let copy_resources =
1174611746
let build_cmj_js =
1174711747
define
1174811748
~command:"${bsc} ${bs_package_flags} -bs-assume-has-mli -bs-no-builtin-ppx-ml -bs-no-implicit-include \
11749-
${bs_package_includes} ${bsc_lib_includes} ${bsc_extra_includes} ${open_package} ${bsc_flags} -o ${out} -c ${in} $postbuild"
11749+
${bs_package_includes} ${bsc_lib_includes} ${bsc_extra_includes} ${bsc_flags} -o ${out} -c ${in} $postbuild"
1175011750

1175111751
~depfile:"${in}.d"
1175211752
"build_cmj_only"
1175311753

1175411754
let build_cmj_cmi_js =
1175511755
define
1175611756
~command:"${bsc} ${bs_package_flags} -bs-assume-no-mli -bs-no-builtin-ppx-ml -bs-no-implicit-include \
11757-
${bs_package_includes} ${bsc_lib_includes} ${bsc_extra_includes} ${open_package} ${bsc_flags} -o ${out} -c ${in} $postbuild"
11757+
${bs_package_includes} ${bsc_lib_includes} ${bsc_extra_includes} ${bsc_flags} -o ${out} -c ${in} $postbuild"
1175811758
~depfile:"${in}.d"
1175911759
"build_cmj_cmi" (* the compiler should never consult [.cmi] when [.mli] does not exist *)
1176011760
let build_cmi =
1176111761
define
1176211762
~command:"${bsc} ${bs_package_flags} -bs-no-builtin-ppx-mli -bs-no-implicit-include \
11763-
${bs_package_includes} ${bsc_lib_includes} ${bsc_extra_includes} ${open_package} ${bsc_flags} -o ${out} -c ${in}"
11763+
${bs_package_includes} ${bsc_lib_includes} ${bsc_extra_includes} ${bsc_flags} -o ${out} -c ${in}"
1176411764
~depfile:"${in}.d"
1176511765
"build_cmi" (* the compiler should always consult [.cmi], current the vanilla ocaml compiler only consult [.cmi] when [.mli] found*)
1176611766

@@ -17581,8 +17581,14 @@ let output_ninja_and_namespace_map
1758117581
else None in *)
1758217582
begin
1758317583
let () =
17584-
17585-
let bs_package_flags = "-bs-package-name " ^ package_name in
17584+
let bs_package_flags , namespace_flag =
17585+
match namespace with
17586+
| None ->
17587+
Ext_string.inter2 "-bs-package-name" package_name, Ext_string.empty
17588+
| Some s ->
17589+
Ext_string.inter2 "-bs-package-map" package_name ,
17590+
Ext_string.inter2 "-ns" s
17591+
in
1758617592
let bsc_flags =
1758717593
Ext_string.inter2 Literals.dash_nostdlib @@
1758817594
match built_in_dependency with
@@ -17597,13 +17603,7 @@ let output_ninja_and_namespace_map
1759717603
| Some s ->
1759817604
Ext_string.inter2 "-ppx" s
1759917605
in
17600-
let open_package_flag, namespace_flag =
17601-
match namespace with
17602-
| None -> Ext_string.empty, Ext_string.empty
17603-
| Some s ->
17604-
Ext_string.inter2 "-open" s ,
17605-
Ext_string.inter2 "-ns" s
17606-
in
17606+
1760717607

1760817608
Bsb_ninja_util.output_kvs
1760917609
[|
@@ -17620,7 +17620,7 @@ let output_ninja_and_namespace_map
1762017620
; (* make it configurable in the future *)
1762117621
Bsb_ninja_global_vars.refmt_flags, refmt_flags;
1762217622
Bsb_ninja_global_vars.namespace , namespace_flag ;
17623-
Bsb_ninja_global_vars.open_package, open_package_flag;
17623+
1762417624
(** TODO: could be removed by adding a flag
1762517625
[-bs-ns react]
1762617626
*)

jscomp/bin/whole_compiler.ml

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -85431,8 +85431,9 @@ module Js_packages_state : sig
8543185431
val get_package_name :
8543285432
unit -> string option
8543385433

85434-
val set_package_name :
85435-
string -> unit
85434+
val set_package_name : string -> unit
85435+
85436+
val set_package_map : string -> unit
8543685437

8543785438
val get_packages_info :
8543885439
unit -> Js_packages_info.t
@@ -85480,7 +85481,12 @@ let set_package_name name =
8548085481
| _ ->
8548185482
Ext_pervasives.bad_argf "duplicated flag for -bs-package-name"
8548285483

85483-
85484+
let set_package_map name =
85485+
set_package_name name ;
85486+
Clflags.open_modules :=
85487+
Ext_package_name.module_name_of_package_name name ::
85488+
!Clflags.open_modules
85489+
8548485490
let update_npm_package_path s =
8548585491
packages_info := Js_packages_info.add_npm_package_path s !packages_info
8548685492

@@ -113895,6 +113901,11 @@ let buckle_script_flags =
113895113901
("-bs-package-name",
113896113902
Arg.String Js_packages_state.set_package_name,
113897113903
" set package name, useful when you want to produce npm packages")
113904+
::
113905+
( "-bs-package-map",
113906+
Arg.String Js_packages_state.set_package_map,
113907+
" set package map, not only set package name but also use it as a namespace"
113908+
)
113898113909
::
113899113910
("-bs-no-version-header",
113900113911
Arg.Set Js_config.no_version_header,

jscomp/bsb/bsb_ninja_gen.ml

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -91,8 +91,14 @@ let output_ninja_and_namespace_map
9191
else None in *)
9292
begin
9393
let () =
94-
95-
let bs_package_flags = "-bs-package-name " ^ package_name in
94+
let bs_package_flags , namespace_flag =
95+
match namespace with
96+
| None ->
97+
Ext_string.inter2 "-bs-package-name" package_name, Ext_string.empty
98+
| Some s ->
99+
Ext_string.inter2 "-bs-package-map" package_name ,
100+
Ext_string.inter2 "-ns" s
101+
in
96102
let bsc_flags =
97103
Ext_string.inter2 Literals.dash_nostdlib @@
98104
match built_in_dependency with
@@ -107,13 +113,7 @@ let output_ninja_and_namespace_map
107113
| Some s ->
108114
Ext_string.inter2 "-ppx" s
109115
in
110-
let open_package_flag, namespace_flag =
111-
match namespace with
112-
| None -> Ext_string.empty, Ext_string.empty
113-
| Some s ->
114-
Ext_string.inter2 "-open" s ,
115-
Ext_string.inter2 "-ns" s
116-
in
116+
117117

118118
Bsb_ninja_util.output_kvs
119119
[|
@@ -130,7 +130,7 @@ let output_ninja_and_namespace_map
130130
; (* make it configurable in the future *)
131131
Bsb_ninja_global_vars.refmt_flags, refmt_flags;
132132
Bsb_ninja_global_vars.namespace , namespace_flag ;
133-
Bsb_ninja_global_vars.open_package, open_package_flag;
133+
134134
(** TODO: could be removed by adding a flag
135135
[-bs-ns react]
136136
*)

jscomp/bsb/bsb_ninja_global_vars.ml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,5 +48,5 @@ let refmt_flags = "refmt_flags"
4848
let postbuild = "postbuild"
4949

5050
let namespace = "namespace"
51-
let open_package = "open_package"
51+
5252

jscomp/bsb/bsb_rule.ml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -146,21 +146,21 @@ let copy_resources =
146146
let build_cmj_js =
147147
define
148148
~command:"${bsc} ${bs_package_flags} -bs-assume-has-mli -bs-no-builtin-ppx-ml -bs-no-implicit-include \
149-
${bs_package_includes} ${bsc_lib_includes} ${bsc_extra_includes} ${open_package} ${bsc_flags} -o ${out} -c ${in} $postbuild"
149+
${bs_package_includes} ${bsc_lib_includes} ${bsc_extra_includes} ${bsc_flags} -o ${out} -c ${in} $postbuild"
150150

151151
~depfile:"${in}.d"
152152
"build_cmj_only"
153153

154154
let build_cmj_cmi_js =
155155
define
156156
~command:"${bsc} ${bs_package_flags} -bs-assume-no-mli -bs-no-builtin-ppx-ml -bs-no-implicit-include \
157-
${bs_package_includes} ${bsc_lib_includes} ${bsc_extra_includes} ${open_package} ${bsc_flags} -o ${out} -c ${in} $postbuild"
157+
${bs_package_includes} ${bsc_lib_includes} ${bsc_extra_includes} ${bsc_flags} -o ${out} -c ${in} $postbuild"
158158
~depfile:"${in}.d"
159159
"build_cmj_cmi" (* the compiler should never consult [.cmi] when [.mli] does not exist *)
160160
let build_cmi =
161161
define
162162
~command:"${bsc} ${bs_package_flags} -bs-no-builtin-ppx-mli -bs-no-implicit-include \
163-
${bs_package_includes} ${bsc_lib_includes} ${bsc_extra_includes} ${open_package} ${bsc_flags} -o ${out} -c ${in}"
163+
${bs_package_includes} ${bsc_lib_includes} ${bsc_extra_includes} ${bsc_flags} -o ${out} -c ${in}"
164164
~depfile:"${in}.d"
165165
"build_cmi" (* the compiler should always consult [.cmi], current the vanilla ocaml compiler only consult [.cmi] when [.mli] found*)
166166

jscomp/core/js_main.ml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,11 @@ let buckle_script_flags =
157157
("-bs-package-name",
158158
Arg.String Js_packages_state.set_package_name,
159159
" set package name, useful when you want to produce npm packages")
160+
::
161+
( "-bs-package-map",
162+
Arg.String Js_packages_state.set_package_map,
163+
" set package map, not only set package name but also use it as a namespace"
164+
)
160165
::
161166
("-bs-no-version-header",
162167
Arg.Set Js_config.no_version_header,

jscomp/core/js_packages_state.ml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,12 @@ let set_package_name name =
3737
| _ ->
3838
Ext_pervasives.bad_argf "duplicated flag for -bs-package-name"
3939

40-
40+
let set_package_map name =
41+
set_package_name name ;
42+
Clflags.open_modules :=
43+
Ext_package_name.module_name_of_package_name name ::
44+
!Clflags.open_modules
45+
4146
let update_npm_package_path s =
4247
packages_info := Js_packages_info.add_npm_package_path s !packages_info
4348

jscomp/core/js_packages_state.mli

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,9 @@
2626
val get_package_name :
2727
unit -> string option
2828

29-
val set_package_name :
30-
string -> unit
29+
val set_package_name : string -> unit
30+
31+
val set_package_map : string -> unit
3132

3233
val get_packages_info :
3334
unit -> Js_packages_info.t

scripts/test.go

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -245,14 +245,21 @@ func main() {
245245
wg.Wait()
246246
}
247247
if !*noBsbTest {
248+
var wg sync.WaitGroup
248249
buildTestDir := filepath.Join("jscomp", "build_tests")
249250
files, err := ioutil.ReadDir(buildTestDir)
250251
checkError(err)
251252

252253
for _, file := range files {
254+
file := file
255+
wg.Add(1)
253256
if file.IsDir() {
254-
bsbInDir(buildTestDir, file.Name())
257+
go func(){
258+
defer wg.Done()
259+
bsbInDir(buildTestDir, file.Name())
260+
}()
255261
}
256262
}
263+
wg.Wait()
257264
}
258265
}

0 commit comments

Comments
 (0)