Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 9 additions & 10 deletions jscomp/all.depend
Original file line number Diff line number Diff line change
Expand Up @@ -752,13 +752,13 @@ bsb/bsb_clean.cmx : ext/ext_filename.cmx bsb/bsb_unix.cmx bsb/bsb_config.cmx \
bsb/bsb_build_util.cmx bsb/bsb_clean.cmi
bsb/bsb_config.cmx : ext/ext_filename.cmx bsb/bsb_config.cmi
bsb/bsb_config_parse.cmx : ext/string_map.cmx ext/string_hash_set.cmx \
ext/literals.cmx ext/ext_json_types.cmx ext/ext_json_parse.cmx \
ext/ext_json.cmx ext/ext_filename.cmx ext/ext_file_pp.cmx \
ext/ext_array.cmx bsb/bsb_watcher_gen.cmx bsb/bsb_pkg.cmx \
bsb/bsb_parse_sources.cmx bsb/bsb_package_specs.cmx bsb/bsb_exception.cmx \
bsb/bsb_dir_index.cmx bsb/bsb_default.cmx bsb/bsb_config_types.cmx \
bsb/bsb_config.cmx bsb/bsb_build_util.cmx bsb/bsb_build_schemas.cmx \
common/bs_version.cmx bsb/bsb_config_parse.cmi
ext/literals.cmx ext/ext_package_name.cmx ext/ext_json_types.cmx \
ext/ext_json_parse.cmx ext/ext_json.cmx ext/ext_filename.cmx \
ext/ext_file_pp.cmx ext/ext_array.cmx bsb/bsb_watcher_gen.cmx \
bsb/bsb_pkg.cmx bsb/bsb_parse_sources.cmx bsb/bsb_package_specs.cmx \
bsb/bsb_exception.cmx bsb/bsb_dir_index.cmx bsb/bsb_default.cmx \
bsb/bsb_config_types.cmx bsb/bsb_config.cmx bsb/bsb_build_util.cmx \
bsb/bsb_build_schemas.cmx common/bs_version.cmx bsb/bsb_config_parse.cmi
bsb/bsb_config_types.cmx : ext/string_map.cmx ext/string_hash_set.cmx \
bsb/bsb_parse_sources.cmx bsb/bsb_package_specs.cmx
bsb/bsb_default.cmx : bsb/bsb_config_types.cmx bsb/bsb_default.cmi
Expand Down Expand Up @@ -802,9 +802,8 @@ bsb/bsb_ninja_file_groups.cmx : ext/string_set.cmx ext/string_map.cmx \
bsb/bsb_dir_index.cmx bsb/bsb_config.cmx bsb/bsb_build_schemas.cmx \
bsb/bsb_build_cache.cmx bsb/bsb_ninja_file_groups.cmi
bsb/bsb_ninja_gen.cmx : ext/string_map.cmx ext/literals.cmx \
ext/ext_string.cmx ext/ext_package_name.cmx ext/ext_list.cmx \
ext/ext_filename.cmx bsb/bsb_rule.cmx bsb/bsb_pkg_map_gen.cmx \
bsb/bsb_parse_sources.cmx bsb/bsb_ninja_util.cmx \
ext/ext_string.cmx ext/ext_list.cmx ext/ext_filename.cmx bsb/bsb_rule.cmx \
bsb/bsb_pkg_map_gen.cmx bsb/bsb_parse_sources.cmx bsb/bsb_ninja_util.cmx \
bsb/bsb_ninja_global_vars.cmx bsb/bsb_ninja_file_groups.cmx \
bsb/bsb_dir_index.cmx bsb/bsb_config_types.cmx bsb/bsb_config.cmx \
bsb/bsb_build_util.cmx bsb/bsb_build_schemas.cmx bsb/bsb_build_cache.cmx \
Expand Down
34 changes: 25 additions & 9 deletions jscomp/bin/bsb.ml
Original file line number Diff line number Diff line change
Expand Up @@ -10485,8 +10485,7 @@ type reason_react_jsx = string option
type t =
{
package_name : string ;
(* namespace : string option; *)
namespace : bool;
namespace : string option;
external_includes : string list ;
bsc_flags : string list ;
ppx_flags : string list ;
Expand Down Expand Up @@ -11203,13 +11202,13 @@ let interpret_json
| None ->
failwith "Error: Package name is required. Please specify a `name` in `bsconfig.json`"
) in
(* let namespace =
let namespace =
if !namespace then
Some (Ext_package_name.module_name_of_package_name package_name)
else None in *)
else None in
{
package_name ;
namespace = !namespace;
namespace ;
external_includes = !bs_external_includes;
bsc_flags = !bsc_flags ;
ppx_flags = !ppx_flags ;
Expand Down Expand Up @@ -11351,6 +11350,15 @@ let merlin_b = "\nB "
let merlin_flg = "\nFLG "
let bs_flg_prefix = "-bs-"

let output_merlin_namespace buffer ns=
match ns with
| None -> ()
| Some x ->
Buffer.add_string buffer merlin_b ;
Buffer.add_string buffer Bsb_config.lib_bs ;
Buffer.add_string buffer merlin_flg ;
Buffer.add_string buffer "-open ";
Buffer.add_string buffer x

let bsc_flg_to_merlin_ocamlc_flg bsc_flags =
merlin_flg ^
Expand All @@ -11370,10 +11378,18 @@ let merlin_file_gen ~cwd
built_in_dependency;
external_includes;
reason_react_jsx ;
namespace;
package_name
} : Bsb_config_types.t)
=
if generate_merlin then begin
let buffer = Buffer.create 1024 in
(* let namespace =
if namespace then
(Some (Ext_package_name.module_name_of_package_name package_name))
else None
in *)
output_merlin_namespace buffer namespace;
ppx_flags
|> List.iter (fun x ->
Buffer.add_string buffer (merlin_flg_ppx ^ x )
Expand Down Expand Up @@ -17531,10 +17547,10 @@ let output_ninja_and_namespace_map
Bsb_build_util.flag_concat dash_i @@ List.map
(fun (x : Bsb_config_types.dependency) -> x.package_install_path) bs_dev_dependencies
in
let namespace =
(* let namespace =
if namespace then
Some ( Ext_package_name.module_name_of_package_name package_name)
else None in
else None in *)
begin
let () =

Expand Down Expand Up @@ -18070,10 +18086,10 @@ let install_targets cwd (config : Bsb_config_types.t option) =
Format.fprintf Format.std_formatter "@{<info>Installing started@}@.";
(*Format.pp_print_flush Format.std_formatter ();*)
(* Format.fprintf Format.std_formatter "@{<info>%s@} Installed @." x; *)
let namespace =
(* let namespace =
if namespace then
Some (Ext_package_name.module_name_of_package_name package_name)
else None in
else None in *)
(match namespace with
| None -> ()
| Some x ->
Expand Down
6 changes: 3 additions & 3 deletions jscomp/bsb/bsb_config_parse.ml
Original file line number Diff line number Diff line change
Expand Up @@ -259,13 +259,13 @@ let interpret_json
| None ->
failwith "Error: Package name is required. Please specify a `name` in `bsconfig.json`"
) in
(* let namespace =
let namespace =
if !namespace then
Some (Ext_package_name.module_name_of_package_name package_name)
else None in *)
else None in
{
package_name ;
namespace = !namespace;
namespace ;
external_includes = !bs_external_includes;
bsc_flags = !bsc_flags ;
ppx_flags = !ppx_flags ;
Expand Down
3 changes: 1 addition & 2 deletions jscomp/bsb/bsb_config_types.ml
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,7 @@ type reason_react_jsx = string option
type t =
{
package_name : string ;
(* namespace : string option; *)
namespace : bool;
namespace : string option;
external_includes : string list ;
bsc_flags : string list ;
ppx_flags : string list ;
Expand Down
17 changes: 17 additions & 0 deletions jscomp/bsb/bsb_merlin_gen.ml
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,15 @@ let merlin_b = "\nB "
let merlin_flg = "\nFLG "
let bs_flg_prefix = "-bs-"

let output_merlin_namespace buffer ns=
match ns with
| None -> ()
| Some x ->
Buffer.add_string buffer merlin_b ;
Buffer.add_string buffer Bsb_config.lib_bs ;
Buffer.add_string buffer merlin_flg ;
Buffer.add_string buffer "-open ";
Buffer.add_string buffer x

let bsc_flg_to_merlin_ocamlc_flg bsc_flags =
merlin_flg ^
Expand All @@ -98,10 +107,18 @@ let merlin_file_gen ~cwd
built_in_dependency;
external_includes;
reason_react_jsx ;
namespace;
package_name
} : Bsb_config_types.t)
=
if generate_merlin then begin
let buffer = Buffer.create 1024 in
(* let namespace =
if namespace then
(Some (Ext_package_name.module_name_of_package_name package_name))
else None
in *)
output_merlin_namespace buffer namespace;
ppx_flags
|> List.iter (fun x ->
Buffer.add_string buffer (merlin_flg_ppx ^ x )
Expand Down
4 changes: 2 additions & 2 deletions jscomp/bsb/bsb_ninja_gen.ml
Original file line number Diff line number Diff line change
Expand Up @@ -85,10 +85,10 @@ let output_ninja_and_namespace_map
Bsb_build_util.flag_concat dash_i @@ List.map
(fun (x : Bsb_config_types.dependency) -> x.package_install_path) bs_dev_dependencies
in
let namespace =
(* let namespace =
if namespace then
Some ( Ext_package_name.module_name_of_package_name package_name)
else None in
else None in *)
begin
let () =

Expand Down
4 changes: 2 additions & 2 deletions jscomp/bsb/bsb_world.ml
Original file line number Diff line number Diff line change
Expand Up @@ -63,10 +63,10 @@ let install_targets cwd (config : Bsb_config_types.t option) =
Format.fprintf Format.std_formatter "@{<info>Installing started@}@.";
(*Format.pp_print_flush Format.std_formatter ();*)
(* Format.fprintf Format.std_formatter "@{<info>%s@} Installed @." x; *)
let namespace =
(* let namespace =
if namespace then
Some (Ext_package_name.module_name_of_package_name package_name)
else None in
else None in *)
(match namespace with
| None -> ()
| Some x ->
Expand Down
9 changes: 7 additions & 2 deletions jscomp/build_tests/namespace/input.js
Original file line number Diff line number Diff line change
@@ -1,10 +1,15 @@


var child_process = require('child_process')

var fs = require('fs')
var path = require('path')
child_process.execSync(`bsb -clean-world && bsb -make-world`, {cwd:__dirname, stdio:[0,1,2]})

var x = require('./src/demo.js')
var assert = require('assert')

assert.equal(x.v, 3 )
assert.equal(x.v, 3 )

var merlin = fs.readFileSync(path.join(__dirname,'.merlin'), {encoding:'utf8'})

assert.ok(merlin.includes('-open'))
2 changes: 1 addition & 1 deletion jscomp/build_tests/namespace/src/demo.ml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@


let v =
let v =
(Liba.Demo.v + Libb.Demo.v)
9 changes: 9 additions & 0 deletions jscomp/build_tests/namespace/src/main.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions jscomp/build_tests/namespace/src/main.ml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@

let a = Demo.v