Skip to content

Commit 9ecd79e

Browse files
committed
Add restat for dev mode
1 parent 1218ef9 commit 9ecd79e

12 files changed

+184
-24
lines changed

jscomp/compiler.ninja

+2
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,8 @@ OCAML_SRC_TOOLS=../vendor/ocaml/tools
4848
build ./bin/bspack.exe: link ./stubs/ext_basic_hash_stubs.c ./bin/bspack.mli ./bin/bspack.ml
4949
libs = unix.cmxa
5050
flags = -I ./bin -w -40-30
51+
build ./bin/cmjdump.exe: link ./stubs/stubs.cmxa ext/ext.cmxa common/common.cmxa syntax/syntax.cmxa depends/depends.cmxa core/core.cmxa main/cmjdump_main.cmx
52+
libs = ocamlcommon.cmxa
5153
rule bspack
5254
command = ./bin/bspack.exe $flags -bs-main $main -o $out
5355
depfile = $out.d

jscomp/others/build.ninja

+4-2
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11

22
bsc = ../lib/bsc.exe
3-
bsc_flags = -no-alias-deps -bs-no-version-header -bs-diagnose -bs-no-check-div-by-zero -bs-cross-module-opt -bs-package-name bs-platform -bs-package-output commonjs:lib/js -bs-package-output amdjs:lib/amdjs -bs-package-output es6:lib/es6 -nostdlib -nopervasives -unsafe -warn-error A -w -40-49-103 -bin-annot -bs-noassertfalse -open Bs_stdlib_mini -I ./runtime
3+
bsc_flags = -absname -no-alias-deps -bs-no-version-header -bs-diagnose -bs-no-check-div-by-zero -bs-cross-module-opt -bs-package-name bs-platform -bs-package-output commonjs:lib/js -bs-package-output amdjs:lib/amdjs -bs-package-output es6:lib/es6 -nostdlib -nopervasives -unsafe -warn-error A -w -40-49-103 -bin-annot -bs-noassertfalse -open Bs_stdlib_mini -I ./runtime
44
rule cc
55
command = $bsc $bsc_flags -bs-no-implicit-include -I others -c $in
6-
description = $in -> $out
6+
description = $in -> $out
7+
restat = 1
8+
79
rule cppo
810
command = cppo -D $type $in -o $out
911
generator = true

jscomp/others/release.ninja

+3-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@ bsc = ../lib/bsc.exe
33
bsc_flags = -absname -no-alias-deps -bs-no-version-header -bs-diagnose -bs-no-check-div-by-zero -bs-cross-module-opt -bs-package-name bs-platform -bs-package-output commonjs:lib/js -bs-package-output amdjs:lib/amdjs -bs-package-output es6:lib/es6 -nostdlib -nopervasives -unsafe -warn-error A -w -40-49-103 -bin-annot -bs-noassertfalse -open Bs_stdlib_mini -I ./runtime
44
rule cc
55
command = $bsc $bsc_flags -bs-no-implicit-include -I others -c $in
6-
description = $in -> $out
6+
description = $in -> $out
7+
8+
79

810

911
build others/belt.cmj others/belt.cmi : cc others/belt.ml | runtime

jscomp/release.ninja

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11

22
subninja runtime/release.ninja
3-
subninja others/build.ninja
4-
subninja stdlib-402/build.ninja
3+
subninja others/release.ninja
4+
subninja stdlib-402/release.ninja
55

66
build all: phony runtime others stdlib-402
77

jscomp/runtime/build.ninja

+2
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ bsc_flags = $bsc_no_open_flags -open Bs_stdlib_mini
55
rule cc
66
command = $bsc $bsc_flags -bs-no-implicit-include -I runtime -c $in
77
description = $in -> $out
8+
restat = 1
9+
810
build runtime/bs_stdlib_mini.cmi : cc runtime/bs_stdlib_mini.mli | ../lib/bsc.exe
911
bsc_flags = -nostdlib -nopervasives
1012
build runtime/js.cmj runtime/js.cmi : cc runtime/js.ml | ../lib/bsc.exe

jscomp/runtime/release.ninja

+2
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ bsc_flags = $bsc_no_open_flags -open Bs_stdlib_mini
55
rule cc
66
command = $bsc $bsc_flags -bs-no-implicit-include -I runtime -c $in
77
description = $in -> $out
8+
9+
810
build runtime/bs_stdlib_mini.cmi : cc runtime/bs_stdlib_mini.mli
911
bsc_flags = -nostdlib -nopervasives
1012
build runtime/js.cmj runtime/js.cmi : cc runtime/js.ml

jscomp/stdlib-402/build.ninja

+3-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@ bsc = ../lib/bsc.exe
33
bsc_flags = -absname -no-alias-deps -bs-no-version-header -bs-diagnose -bs-no-check-div-by-zero -bs-cross-module-opt -bs-package-name bs-platform -bs-package-output commonjs:lib/js -bs-package-output amdjs:lib/amdjs -bs-package-output es6:lib/es6 -nostdlib -warn-error A -w -40-49-103 -bin-annot -bs-no-warn-unimplemented-external -I ./runtime -I ./others
44
rule cc
55
command = $bsc $bsc_flags -bs-no-implicit-include -I stdlib-402 -c $in
6-
description = $in -> $out
6+
description = $in -> $out
7+
restat = 1
8+
79
build stdlib-402/camlinternalFormatBasics.cmi : cc stdlib-402/camlinternalFormatBasics.mli | others
810
bsc_flags = $bsc_flags -nopervasives
911
build stdlib-402/camlinternalFormatBasics.cmj : cc stdlib-402/camlinternalFormatBasics.ml | stdlib-402/camlinternalFormatBasics.cmi others

jscomp/stdlib-402/release.ninja

+130
Large diffs are not rendered by default.

jscomp/test/build.ninja

+1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ bsc_flags = -absname -no-alias-deps -bs-no-version-header -bs-diagnose -bs-cross
44
rule cc
55
command = $bsc $bsc_flags -bs-no-implicit-include -I test -c $in
66
description = $in -> $out
7+
restat = 1
78
rule mll
89
command = ocamllex.opt $in
910
generator = true

scripts/prebuilt.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ function buildCompiler() {
2222
})
2323
}
2424
if(!is_windows){
25-
require('./runtimeDeps.js').updateAllLibsNinja()
25+
require('./runtimeDeps.js').updateRelease()
2626
}
2727

2828
buildCompiler()

scripts/runtimeDeps.js

+33-16
Original file line numberDiff line numberDiff line change
@@ -493,7 +493,11 @@ bsc_flags = $bsc_no_open_flags -open Bs_stdlib_mini
493493
rule cc
494494
command = $bsc $bsc_flags -bs-no-implicit-include -I ${ninjaCwd} -c $in
495495
description = $in -> $out
496-
restat = 1
496+
${
497+
devmode? ` restat = 1` :
498+
``
499+
}
500+
497501
${ninjaQuickBuidList([
498502
['bs_stdlib_mini.cmi', 'bs_stdlib_mini.mli',
499503
'cc', ninjaCwd, [["bsc_flags", "-nostdlib -nopervasives"]], [],externalDeps],
@@ -551,11 +555,15 @@ async function othersNinja(devmode=true) {
551555
var cppoRule = `cppo`
552556
var templateOthersRules = `
553557
${BSC_COMPILER}
554-
bsc_flags = -no-alias-deps -bs-no-version-header -bs-diagnose -bs-no-check-div-by-zero -bs-cross-module-opt -bs-package-name bs-platform -bs-package-output commonjs:lib/js -bs-package-output amdjs:lib/amdjs -bs-package-output es6:lib/es6 -nostdlib -nopervasives -unsafe -warn-error A -w -40-49-103 -bin-annot -bs-noassertfalse -open Bs_stdlib_mini -I ./runtime
558+
bsc_flags = -absname -no-alias-deps -bs-no-version-header -bs-diagnose -bs-no-check-div-by-zero -bs-cross-module-opt -bs-package-name bs-platform -bs-package-output commonjs:lib/js -bs-package-output amdjs:lib/amdjs -bs-package-output es6:lib/es6 -nostdlib -nopervasives -unsafe -warn-error A -w -40-49-103 -bin-annot -bs-noassertfalse -open Bs_stdlib_mini -I ./runtime
555559
rule cc
556560
command = $bsc $bsc_flags -bs-no-implicit-include -I ${ninjaCwd} -c $in
557-
description = $in -> $out
558-
restat = 1
561+
description = $in -> $out
562+
${
563+
devmode? ` restat = 1` :
564+
``
565+
}
566+
559567
${ devmode ?
560568
`rule ${cppoRule}
561569
command = cppo -D $type $in -o $out
@@ -689,9 +697,10 @@ ${ninjaQuickBuidList([
689697
)
690698
}
691699

692-
async function stdlibNinja(){
700+
async function stdlibNinja(devmode=true){
693701
var ninjaCwd = stdlibVersion
694702
var externalDeps = [othersTarget]
703+
var ninjaOutput = devmode? 'build.ninja' : 'release.ninja'
695704
var bsc_flags = 'bsc_flags'
696705
/**
697706
* @type [string,string][]
@@ -702,8 +711,12 @@ ${BSC_COMPILER}
702711
${bsc_flags} = -absname -no-alias-deps -bs-no-version-header -bs-diagnose -bs-no-check-div-by-zero -bs-cross-module-opt -bs-package-name bs-platform -bs-package-output commonjs:lib/js -bs-package-output amdjs:lib/amdjs -bs-package-output es6:lib/es6 -nostdlib -warn-error A -w -40-49-103 -bin-annot -bs-no-warn-unimplemented-external -I ./runtime -I ./others
703712
rule cc
704713
command = $bsc $${bsc_flags} -bs-no-implicit-include -I ${ninjaCwd} -c $in
705-
description = $in -> $out
706-
restat = 1
714+
description = $in -> $out
715+
${
716+
devmode? ` restat = 1` :
717+
``
718+
}
719+
707720
${ninjaQuickBuidList([
708721
['camlinternalFormatBasics.cmi', 'camlinternalFormatBasics.mli',
709722
'cc', ninjaCwd, bsc_builtin_overrides, [], externalDeps],
@@ -746,7 +759,7 @@ ${ninjaQuickBuidList([
746759
output.push(phony(stdlibTarget,fileTargets(allTargets),stdlibVersion))
747760

748761
writeFile(
749-
path.join(stdlibDir,'build.ninja'),
762+
path.join(stdlibDir,ninjaOutput),
750763
templateStdlibRules + output.join('\n') + '\n'
751764
)
752765
}
@@ -965,27 +978,31 @@ if (require.main === module) {
965978
}
966979
var dev = process.argv.includes('-dev')
967980
var release = process.argv.includes('-release')
968-
if (dev) {
969-
udpateLibsDevNinja()
981+
var all = process.argv.includes('-all')
982+
if(all){
983+
updateDev()
984+
updateRelease()
985+
} else if (dev) {
986+
updateDev()
970987
} else if (release) {
971-
updateAllLibsNinja()
988+
updateRelease()
972989
}
973990
}
974-
function updateAllLibsNinja(){
991+
function updateRelease(){
975992
runtimeNinja(false)
976-
stdlibNinja()
993+
stdlibNinja(false)
977994
othersNinja(false)
978995
}
979996

980-
function udpateLibsDevNinja(){
997+
function updateDev(){
981998
runtimeNinja()
982999
stdlibNinja()
9831000
othersNinja()
9841001
testNinja()
9851002
nativeNinja()
9861003
}
987-
exports.updateLibsDevNinja = udpateLibsDevNinja
988-
exports.updateAllLibsNinja = updateAllLibsNinja
1004+
exports.updateDev = updateDev
1005+
exports.updateRelease = updateRelease
9891006

9901007
/**
9911008
*

scripts/tasks.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ function buildFinished(code,signal){
5353
// TODO: check ninja exit error code
5454
if(code===0){
5555
// This is not always correct
56-
require('./runtimeDeps').updateLibsDevNinja()
56+
require('./runtimeDeps').updateDev()
5757
}
5858

5959
}

0 commit comments

Comments
 (0)