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
17 changes: 17 additions & 0 deletions jscomp/bsb/bsb_config.ml
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,23 @@ let all_lib_artifacts =
]
let rev_lib_bs = ".."// ".."

(* access the js directory from "lib/bs",
it would be '../js'
*)
let lib_bs_prefix_of_format (x : Ext_module_system.t) =
".." // match x with
| NodeJS -> "js"
| Es6 -> "es6"
| Es6_global -> "es6_global"

(* lib/js, lib/es6, lib/es6_global *)
let top_prefix_of_format (x : Ext_module_system.t) =
match x with
| NodeJS -> lib_js
| Es6 -> lib_es6
| Es6_global -> lib_es6_global



let rev_lib_bs_prefix p = rev_lib_bs // p

Expand Down
4 changes: 2 additions & 2 deletions jscomp/bsb/bsb_config.mli
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ val lib_ocaml : string
val all_lib_artifacts : string list
(* we need generate path relative to [lib/bs] directory in the opposite direction *)
val rev_lib_bs_prefix : string -> string


val lib_bs_prefix_of_format : Ext_module_system.t -> string
val top_prefix_of_format : Ext_module_system.t -> string
(** default not install, only when -make-world, its dependencies will be installed *)

12 changes: 0 additions & 12 deletions jscomp/bsb/bsb_config_parse.ml
Original file line number Diff line number Diff line change
Expand Up @@ -138,18 +138,6 @@ let check_stdlib (map : json_map) cwd (*built_in_package*) =
end


let extract_bs_suffix_exn (map : json_map) : Ext_js_suffix.t =
match Map_string.find_opt map Bsb_build_schemas.suffix with
| None -> Js
| Some (Str {str} as config ) ->
let s = Ext_js_suffix.of_string str in
if s = Unknown_extension then
Bsb_exception.config_error config
"expect .bs.js, .js, .cjs, .mjs here"
else s
| Some config ->
Bsb_exception.config_error config
"expect a string exteion like \".js\" here"

let extract_gentype_config (map : json_map) cwd
: Bsb_config_types.gentype_config option =
Expand Down
13 changes: 8 additions & 5 deletions jscomp/bsb/bsb_ninja_rule.ml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ type t = {

let get_name (x : t) oc = x.name oc
let print_rule (oc : out_channel)
~description
?description
?(restat : unit option)
?dyndep
~command
Expand All @@ -47,8 +47,12 @@ let print_rule (oc : out_channel)
);
(if restat <> None then
output_string oc " restat = 1\n");

output_string oc " description = " ; output_string oc description; output_string oc "\n"
begin match description with
| None -> ()
| Some description ->
output_string oc " description = " ; output_string oc description
end ;
output_string oc "\n"



Expand All @@ -58,7 +62,6 @@ let define
~command
?dyndep
?restat
?(description = "\027[34mBuilding\027[39m \027[2m${out}\027[22m") (* blue, dim *)
rule_name : t
=

Expand All @@ -68,7 +71,7 @@ let define
name = fun oc ->
if not self.used then
begin
print_rule oc ~description ?dyndep ?restat ~command rule_name;
print_rule oc ?dyndep ?restat ~command rule_name;
self.used <- true
end ;
rule_name
Expand Down
19 changes: 7 additions & 12 deletions jscomp/bsb/bsb_package_specs.ml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ let (//) = Ext_path.combine


(* TODO: sync up with {!Js_packages_info.module_system} *)
type format =
type format = Ext_module_system.t =
| NodeJS | Es6 | Es6_global

type spec = {
Expand Down Expand Up @@ -63,11 +63,6 @@ let string_of_format (x : format) =
| Es6 -> Literals.es6
| Es6_global -> Literals.es6_global

let prefix_of_format (x : format) =
(match x with
| NodeJS -> Bsb_config.lib_js
| Es6 -> Bsb_config.lib_es6
| Es6_global -> Bsb_config.lib_es6_global )

let rec from_array suffix (arr : Ext_json_types.t array) : Spec_set.t =
let spec = ref Spec_set.empty in
Expand Down Expand Up @@ -108,7 +103,7 @@ and from_json_single suffix (x : Ext_json_types.t) : spec =
if s = Unknown_extension then
Bsb_exception.errorf ~loc "expect .js,.bs.js,.mjs or .cjs"
else s
| Some v ->
| Some _ ->
Bsb_exception.errorf ~loc:(Ext_json.loc_of x) "expect a string field"
| None -> suffix in
{format = supported_format format loc ; in_source ; suffix}
Expand Down Expand Up @@ -143,7 +138,7 @@ let package_flag ({format; in_source; suffix } : spec) dir =
(string_of_format format)
Ext_string.single_colon
(if in_source then dir else
prefix_of_format format // dir)
Bsb_config.top_prefix_of_format format // dir)
Ext_string.single_colon
(Ext_js_suffix.to_string suffix)
)
Expand Down Expand Up @@ -175,8 +170,8 @@ let get_list_of_output_js
output_file_sans_extension
(Ext_js_suffix.to_string spec.suffix)
in
(Bsb_config.proj_rel (if spec.in_source then basename
else prefix_of_format spec.format // basename))
(if spec.in_source then Bsb_config.rev_lib_bs_prefix basename
else Bsb_config.lib_bs_prefix_of_format spec.format // basename)
:: acc
) package_specs []

Expand All @@ -187,15 +182,15 @@ let list_dirs_by
=
Spec_set.iter (fun (spec : spec) ->
if not spec.in_source then
f (prefix_of_format spec.format)
f (Bsb_config.top_prefix_of_format spec.format)
) package_specs

type json_map = Ext_json_types.t Map_string.t

let extract_bs_suffix_exn (map : json_map) : Ext_js_suffix.t =
match Map_string.find_opt map Bsb_build_schemas.suffix with
| None -> Js
| Some (Str {str; loc} as config ) ->
| Some (Str {str; loc}) ->
let s = Ext_js_suffix.of_string str in
if s = Unknown_extension then
Bsb_exception.errorf ~loc
Expand Down
14 changes: 7 additions & 7 deletions jscomp/core/lam_compile_main.ml
Original file line number Diff line number Diff line change
Expand Up @@ -292,21 +292,21 @@ let lambda_as_module
exit 77
end
end else
Js_packages_info.iter package_info (fun {module_system; path = _path; suffix} ->
Js_packages_info.iter package_info (fun {module_system; path; suffix} ->
let output_chan chan =
Js_dump_program.dump_deps_program ~output_prefix
module_system
lambda_output
chan in
let basename =
Ext_namespace.change_ext_ns_suffix
(Filename.basename
output_prefix)
(Ext_js_suffix.to_string suffix)
in
let output_chan chan =
Js_dump_program.dump_deps_program ~output_prefix
module_system
lambda_output
chan in
let target_file =
(Lazy.force Ext_path.package_dir //
_path //
path //
basename
(* #913 only generate little-case js file *)
) in
Expand Down
5 changes: 5 additions & 0 deletions jscomp/ext/ext_module_system.ml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@



type t =
| NodeJS | Es6 | Es6_global
74 changes: 43 additions & 31 deletions lib/4.06.1/bsb.ml
Original file line number Diff line number Diff line change
Expand Up @@ -4937,6 +4937,15 @@ let is_empty (x : file_group) =
x.resources = [] &&
x.generators = []
end
module Ext_module_system
= struct
#1 "ext_module_system.ml"



type t =
| NodeJS | Es6 | Es6_global
end
module Ext_pervasives : sig
#1 "ext_pervasives.mli"
(* Copyright (C) 2015-2016 Bloomberg Finance L.P.
Expand Down Expand Up @@ -5833,8 +5842,8 @@ val lib_ocaml : string
val all_lib_artifacts : string list
(* we need generate path relative to [lib/bs] directory in the opposite direction *)
val rev_lib_bs_prefix : string -> string


val lib_bs_prefix_of_format : Ext_module_system.t -> string
val top_prefix_of_format : Ext_module_system.t -> string
(** default not install, only when -make-world, its dependencies will be installed *)


Expand Down Expand Up @@ -5882,6 +5891,23 @@ let all_lib_artifacts =
]
let rev_lib_bs = ".."// ".."

(* access the js directory from "lib/bs",
it would be '../js'
*)
let lib_bs_prefix_of_format (x : Ext_module_system.t) =
".." // match x with
| NodeJS -> "js"
| Es6 -> "es6"
| Es6_global -> "es6_global"

(* lib/js, lib/es6, lib/es6_global *)
let top_prefix_of_format (x : Ext_module_system.t) =
match x with
| NodeJS -> lib_js
| Es6 -> lib_es6
| Es6_global -> lib_es6_global



let rev_lib_bs_prefix p = rev_lib_bs // p

Expand Down Expand Up @@ -7126,7 +7152,7 @@ let (//) = Ext_path.combine


(* TODO: sync up with {!Js_packages_info.module_system} *)
type format =
type format = Ext_module_system.t =
| NodeJS | Es6 | Es6_global

type spec = {
Expand Down Expand Up @@ -7161,11 +7187,6 @@ let string_of_format (x : format) =
| Es6 -> Literals.es6
| Es6_global -> Literals.es6_global

let prefix_of_format (x : format) =
(match x with
| NodeJS -> Bsb_config.lib_js
| Es6 -> Bsb_config.lib_es6
| Es6_global -> Bsb_config.lib_es6_global )

let rec from_array suffix (arr : Ext_json_types.t array) : Spec_set.t =
let spec = ref Spec_set.empty in
Expand Down Expand Up @@ -7206,7 +7227,7 @@ and from_json_single suffix (x : Ext_json_types.t) : spec =
if s = Unknown_extension then
Bsb_exception.errorf ~loc "expect .js,.bs.js,.mjs or .cjs"
else s
| Some v ->
| Some _ ->
Bsb_exception.errorf ~loc:(Ext_json.loc_of x) "expect a string field"
| None -> suffix in
{format = supported_format format loc ; in_source ; suffix}
Expand Down Expand Up @@ -7241,7 +7262,7 @@ let package_flag ({format; in_source; suffix } : spec) dir =
(string_of_format format)
Ext_string.single_colon
(if in_source then dir else
prefix_of_format format // dir)
Bsb_config.top_prefix_of_format format // dir)
Ext_string.single_colon
(Ext_js_suffix.to_string suffix)
)
Expand Down Expand Up @@ -7273,8 +7294,8 @@ let get_list_of_output_js
output_file_sans_extension
(Ext_js_suffix.to_string spec.suffix)
in
(Bsb_config.proj_rel (if spec.in_source then basename
else prefix_of_format spec.format // basename))
(if spec.in_source then Bsb_config.rev_lib_bs_prefix basename
else Bsb_config.lib_bs_prefix_of_format spec.format // basename)
:: acc
) package_specs []

Expand All @@ -7285,15 +7306,15 @@ let list_dirs_by
=
Spec_set.iter (fun (spec : spec) ->
if not spec.in_source then
f (prefix_of_format spec.format)
f (Bsb_config.top_prefix_of_format spec.format)
) package_specs

type json_map = Ext_json_types.t Map_string.t

let extract_bs_suffix_exn (map : json_map) : Ext_js_suffix.t =
match Map_string.find_opt map Bsb_build_schemas.suffix with
| None -> Js
| Some (Str {str; loc} as config ) ->
| Some (Str {str; loc}) ->
let s = Ext_js_suffix.of_string str in
if s = Unknown_extension then
Bsb_exception.errorf ~loc
Expand Down Expand Up @@ -11667,18 +11688,6 @@ let check_stdlib (map : json_map) cwd (*built_in_package*) =
end


let extract_bs_suffix_exn (map : json_map) : Ext_js_suffix.t =
match Map_string.find_opt map Bsb_build_schemas.suffix with
| None -> Js
| Some (Str {str} as config ) ->
let s = Ext_js_suffix.of_string str in
if s = Unknown_extension then
Bsb_exception.config_error config
"expect .bs.js, .js, .cjs, .mjs here"
else s
| Some config ->
Bsb_exception.config_error config
"expect a string exteion like \".js\" here"

let extract_gentype_config (map : json_map) cwd
: Bsb_config_types.gentype_config option =
Expand Down Expand Up @@ -13003,7 +13012,7 @@ type t = {

let get_name (x : t) oc = x.name oc
let print_rule (oc : out_channel)
~description
?description
?(restat : unit option)
?dyndep
~command
Expand All @@ -13015,8 +13024,12 @@ let print_rule (oc : out_channel)
);
(if restat <> None then
output_string oc " restat = 1\n");

output_string oc " description = " ; output_string oc description; output_string oc "\n"
begin match description with
| None -> ()
| Some description ->
output_string oc " description = " ; output_string oc description
end ;
output_string oc "\n"



Expand All @@ -13026,7 +13039,6 @@ let define
~command
?dyndep
?restat
?(description = "\027[34mBuilding\027[39m \027[2m${out}\027[22m") (* blue, dim *)
rule_name : t
=

Expand All @@ -13036,7 +13048,7 @@ let define
name = fun oc ->
if not self.used then
begin
print_rule oc ~description ?dyndep ?restat ~command rule_name;
print_rule oc ?dyndep ?restat ~command rule_name;
self.used <- true
end ;
rule_name
Expand Down
2 changes: 1 addition & 1 deletion lib/4.06.1/bsb.ml.d
Original file line number Diff line number Diff line change
@@ -1 +1 @@
../lib/4.06.1/bsb.ml: ./bsb/bsb_arg.ml ./bsb/bsb_arg.mli ./bsb/bsb_build_schemas.ml ./bsb/bsb_build_util.ml ./bsb/bsb_build_util.mli ./bsb/bsb_clean.ml ./bsb/bsb_clean.mli ./bsb/bsb_config.ml ./bsb/bsb_config.mli ./bsb/bsb_config_parse.ml ./bsb/bsb_config_parse.mli ./bsb/bsb_config_types.ml ./bsb/bsb_db_encode.ml ./bsb/bsb_db_encode.mli ./bsb/bsb_db_util.ml ./bsb/bsb_db_util.mli ./bsb/bsb_exception.ml ./bsb/bsb_exception.mli ./bsb/bsb_file.ml ./bsb/bsb_file.mli ./bsb/bsb_file_groups.ml ./bsb/bsb_file_groups.mli ./bsb/bsb_global_paths.ml ./bsb/bsb_global_paths.mli ./bsb/bsb_log.ml ./bsb/bsb_log.mli ./bsb/bsb_merlin_gen.ml ./bsb/bsb_merlin_gen.mli ./bsb/bsb_namespace_map_gen.ml ./bsb/bsb_namespace_map_gen.mli ./bsb/bsb_ninja_check.ml ./bsb/bsb_ninja_check.mli ./bsb/bsb_ninja_file_groups.ml ./bsb/bsb_ninja_file_groups.mli ./bsb/bsb_ninja_gen.ml ./bsb/bsb_ninja_gen.mli ./bsb/bsb_ninja_global_vars.ml ./bsb/bsb_ninja_regen.ml ./bsb/bsb_ninja_regen.mli ./bsb/bsb_ninja_rule.ml ./bsb/bsb_ninja_rule.mli ./bsb/bsb_ninja_targets.ml ./bsb/bsb_ninja_targets.mli ./bsb/bsb_package_specs.ml ./bsb/bsb_package_specs.mli ./bsb/bsb_parse_sources.ml ./bsb/bsb_parse_sources.mli ./bsb/bsb_pkg.ml ./bsb/bsb_pkg.mli ./bsb/bsb_pkg_types.ml ./bsb/bsb_pkg_types.mli ./bsb/bsb_real_path.ml ./bsb/bsb_real_path.mli ./bsb/bsb_regex.ml ./bsb/bsb_regex.mli ./bsb/bsb_templates.ml ./bsb/bsb_templates.mli ./bsb/bsb_theme_init.ml ./bsb/bsb_theme_init.mli ./bsb/bsb_unix.ml ./bsb/bsb_unix.mli ./bsb/bsb_warning.ml ./bsb/bsb_warning.mli ./bsb/bsb_watcher_gen.ml ./bsb/bsb_watcher_gen.mli ./bsb/bsb_world.ml ./bsb/bsb_world.mli ./bsb/oCamlRes.ml ./common/bs_version.ml ./common/bs_version.mli ./ext/bsb_db.ml ./ext/bsb_db.mli ./ext/bsc_args.ml ./ext/bsc_args.mli ./ext/bsc_warnings.ml ./ext/ext_array.ml ./ext/ext_array.mli ./ext/ext_buffer.ml ./ext/ext_buffer.mli ./ext/ext_bytes.ml ./ext/ext_bytes.mli ./ext/ext_color.ml ./ext/ext_color.mli ./ext/ext_digest.ml ./ext/ext_digest.mli ./ext/ext_filename.ml ./ext/ext_filename.mli ./ext/ext_fmt.ml ./ext/ext_io.ml ./ext/ext_io.mli ./ext/ext_js_file_kind.ml ./ext/ext_js_suffix.ml ./ext/ext_json.ml ./ext/ext_json.mli ./ext/ext_json_noloc.ml ./ext/ext_json_noloc.mli ./ext/ext_json_parse.ml ./ext/ext_json_parse.mli ./ext/ext_json_types.ml ./ext/ext_list.ml ./ext/ext_list.mli ./ext/ext_namespace.ml ./ext/ext_namespace.mli ./ext/ext_namespace_encode.ml ./ext/ext_namespace_encode.mli ./ext/ext_option.ml ./ext/ext_option.mli ./ext/ext_path.ml ./ext/ext_path.mli ./ext/ext_pervasives.ml ./ext/ext_pervasives.mli ./ext/ext_position.ml ./ext/ext_position.mli ./ext/ext_spec.ml ./ext/ext_spec.mli ./ext/ext_string.ml ./ext/ext_string.mli ./ext/ext_sys.ml ./ext/ext_sys.mli ./ext/ext_util.ml ./ext/ext_util.mli ./ext/hash.ml ./ext/hash.mli ./ext/hash_gen.ml ./ext/hash_set_gen.ml ./ext/hash_set_string.ml ./ext/hash_set_string.mli ./ext/hash_string.ml ./ext/hash_string.mli ./ext/literals.ml ./ext/map_gen.ml ./ext/map_gen.mli ./ext/map_string.ml ./ext/map_string.mli ./ext/set_gen.ml ./ext/set_gen.mli ./ext/set_string.ml ./ext/set_string.mli ./main/bsb_main.ml ./main/bsb_main.mli ./stubs/bs_hash_stubs.ml
../lib/4.06.1/bsb.ml: ./bsb/bsb_arg.ml ./bsb/bsb_arg.mli ./bsb/bsb_build_schemas.ml ./bsb/bsb_build_util.ml ./bsb/bsb_build_util.mli ./bsb/bsb_clean.ml ./bsb/bsb_clean.mli ./bsb/bsb_config.ml ./bsb/bsb_config.mli ./bsb/bsb_config_parse.ml ./bsb/bsb_config_parse.mli ./bsb/bsb_config_types.ml ./bsb/bsb_db_encode.ml ./bsb/bsb_db_encode.mli ./bsb/bsb_db_util.ml ./bsb/bsb_db_util.mli ./bsb/bsb_exception.ml ./bsb/bsb_exception.mli ./bsb/bsb_file.ml ./bsb/bsb_file.mli ./bsb/bsb_file_groups.ml ./bsb/bsb_file_groups.mli ./bsb/bsb_global_paths.ml ./bsb/bsb_global_paths.mli ./bsb/bsb_log.ml ./bsb/bsb_log.mli ./bsb/bsb_merlin_gen.ml ./bsb/bsb_merlin_gen.mli ./bsb/bsb_namespace_map_gen.ml ./bsb/bsb_namespace_map_gen.mli ./bsb/bsb_ninja_check.ml ./bsb/bsb_ninja_check.mli ./bsb/bsb_ninja_file_groups.ml ./bsb/bsb_ninja_file_groups.mli ./bsb/bsb_ninja_gen.ml ./bsb/bsb_ninja_gen.mli ./bsb/bsb_ninja_global_vars.ml ./bsb/bsb_ninja_regen.ml ./bsb/bsb_ninja_regen.mli ./bsb/bsb_ninja_rule.ml ./bsb/bsb_ninja_rule.mli ./bsb/bsb_ninja_targets.ml ./bsb/bsb_ninja_targets.mli ./bsb/bsb_package_specs.ml ./bsb/bsb_package_specs.mli ./bsb/bsb_parse_sources.ml ./bsb/bsb_parse_sources.mli ./bsb/bsb_pkg.ml ./bsb/bsb_pkg.mli ./bsb/bsb_pkg_types.ml ./bsb/bsb_pkg_types.mli ./bsb/bsb_real_path.ml ./bsb/bsb_real_path.mli ./bsb/bsb_regex.ml ./bsb/bsb_regex.mli ./bsb/bsb_templates.ml ./bsb/bsb_templates.mli ./bsb/bsb_theme_init.ml ./bsb/bsb_theme_init.mli ./bsb/bsb_unix.ml ./bsb/bsb_unix.mli ./bsb/bsb_warning.ml ./bsb/bsb_warning.mli ./bsb/bsb_watcher_gen.ml ./bsb/bsb_watcher_gen.mli ./bsb/bsb_world.ml ./bsb/bsb_world.mli ./bsb/oCamlRes.ml ./common/bs_version.ml ./common/bs_version.mli ./ext/bsb_db.ml ./ext/bsb_db.mli ./ext/bsc_args.ml ./ext/bsc_args.mli ./ext/bsc_warnings.ml ./ext/ext_array.ml ./ext/ext_array.mli ./ext/ext_buffer.ml ./ext/ext_buffer.mli ./ext/ext_bytes.ml ./ext/ext_bytes.mli ./ext/ext_color.ml ./ext/ext_color.mli ./ext/ext_digest.ml ./ext/ext_digest.mli ./ext/ext_filename.ml ./ext/ext_filename.mli ./ext/ext_fmt.ml ./ext/ext_io.ml ./ext/ext_io.mli ./ext/ext_js_file_kind.ml ./ext/ext_js_suffix.ml ./ext/ext_json.ml ./ext/ext_json.mli ./ext/ext_json_noloc.ml ./ext/ext_json_noloc.mli ./ext/ext_json_parse.ml ./ext/ext_json_parse.mli ./ext/ext_json_types.ml ./ext/ext_list.ml ./ext/ext_list.mli ./ext/ext_module_system.ml ./ext/ext_namespace.ml ./ext/ext_namespace.mli ./ext/ext_namespace_encode.ml ./ext/ext_namespace_encode.mli ./ext/ext_option.ml ./ext/ext_option.mli ./ext/ext_path.ml ./ext/ext_path.mli ./ext/ext_pervasives.ml ./ext/ext_pervasives.mli ./ext/ext_position.ml ./ext/ext_position.mli ./ext/ext_spec.ml ./ext/ext_spec.mli ./ext/ext_string.ml ./ext/ext_string.mli ./ext/ext_sys.ml ./ext/ext_sys.mli ./ext/ext_util.ml ./ext/ext_util.mli ./ext/hash.ml ./ext/hash.mli ./ext/hash_gen.ml ./ext/hash_set_gen.ml ./ext/hash_set_string.ml ./ext/hash_set_string.mli ./ext/hash_string.ml ./ext/hash_string.mli ./ext/literals.ml ./ext/map_gen.ml ./ext/map_gen.mli ./ext/map_string.ml ./ext/map_string.mli ./ext/set_gen.ml ./ext/set_gen.mli ./ext/set_string.ml ./ext/set_string.mli ./main/bsb_main.ml ./main/bsb_main.mli ./stubs/bs_hash_stubs.ml
Loading