1
1
# vi: filetype=perl6:
2
+ my $ out := ' ' ;
3
+
4
+ sub out (* @ args ) {
5
+ $ out := $ out ~ nqp :: join (' ' , @ args ) ~ " \n " ;
6
+ }
7
+
2
8
sub comment ($ comment ) {
3
- say (" # $ comment" );
9
+ out (" # $ comment" );
4
10
}
5
11
sub constant ($ name , $ value ) {
6
- say (" $ name = $ value" );
12
+ out (" $ name = $ value" );
7
13
}
8
14
9
15
sub stage_path ($ stage ) {
@@ -23,7 +29,7 @@ sub rule($target, $source, *@actions) {
23
29
$ rule := $ rule ~ " \t $ action\n " ;
24
30
}
25
31
}
26
- say ($ rule );
32
+ out ($ rule );
27
33
$ target ;
28
34
}
29
35
@@ -45,7 +51,7 @@ sub nqp($prefix, $file, $stage, :$source=$prefix ~ '/' ~ $file ~ '.nqp', :$deps=
45
51
}
46
52
47
53
sub deps ($ target , * @ deps ) {
48
- say (" $ target : { nqp :: join (' ' ,@ deps )} " );
54
+ out (" $ target : { nqp :: join (' ' ,@ deps )} " );
49
55
}
50
56
51
57
# TODO is the version regenerated as often as it should
@@ -94,7 +100,7 @@ constant('JS_STAGE2','$(JS_BUILD_DIR)/stage2');
94
100
constant (' JS_NQP' ,' ./$(M_RUNNER)$(BAT)' );
95
101
96
102
97
- say (' js-runner-default: js-all' );
103
+ out (' js-runner-default: js-all' );
98
104
99
105
my $ QASTCompiler-combined := combine(: stage(1 ), : sources(' src/vm/js/Utils.nqp src/vm/js/SerializeOnce.nqp src/vm/js/const_map.nqp src/vm/js/LoopInfo.nqp src/vm/js/ReturnInfo.nqp src/vm/js/BlockBarrier.nqp src/vm/js/DWIMYNameMangling.nqp src/vm/js/Chunk.nqp src/vm/js/Operations.nqp src/vm/js/RegexCompiler.nqp src/vm/js/Compiler.nqp' ), : file(' QASTCompiler.nqp' ));
100
106
@@ -125,16 +131,16 @@ my $sprintf-moarvm := cross-compile(:stage(2), :source('src/HLL/sprintf.nqp'), :
125
131
126
132
deps(' js-stage1-compiler' , ' $(JS_STAGE1_COMPILER)' );
127
133
128
- say (' js-test: js-all gen/js/qregex.t
134
+ out (' js-test: js-all gen/js/qregex.t
129
135
perl src/vm/js/bin/run_tests.pl' );
130
136
131
- say (' js-test-bootstrapped: js-bootstrap gen/js/qregex.t
137
+ out (' js-test-bootstrapped: js-bootstrap gen/js/qregex.t
132
138
perl src/vm/js/bin/run_tests_bootstrapped.pl' );
133
139
134
- say (' gen/js/qregex.t: tools/build/process-qregex-tests
140
+ out (' gen/js/qregex.t: tools/build/process-qregex-tests
135
141
$(JS_NQP) tools/build/process-qregex-tests > gen/js/qregex.t' );
136
142
137
- say (" \n\n js-clean:
143
+ out (" \n\n js-clean:
138
144
\$(RM_RF) gen/js/stage1 gen/js/stage2
139
145
" );
140
146
@@ -143,10 +149,10 @@ my $ModuleLoader := "$nqp-js-on-js/ModuleLoader.js";
143
149
deps(" js-all" , ' m-all' , ' js-stage1-compiler' , $ nqpcore-moarvm , $ nqpcore-combined , $ QASTNode-moarvm , $ QRegex-moarvm , $ sprintf-moarvm , $ ModuleLoader );
144
150
145
151
# Enforce the google coding standards
146
- say (" js-lint:
152
+ out (" js-lint:
147
153
gjslint --strict --max_line_length=200 --nojsdoc src/vm/js/nqp-runtime/*.js" );
148
154
149
- say (' js-install: js-all
155
+ out (' js-install: js-all
150
156
@echo "*** The JavaScript backend can\' t be installed yet, sorry! ***"' );
151
157
152
158
constant (' JS_NQP_SOURCES' , ' $(COMMON_NQP_SOURCES)' );
@@ -182,14 +188,17 @@ my $NQPP6QRegex-moarvm := cross-compile(:stage(2), :source($p6qregex-combined),
182
188
my $ nqp-bootstrapped := " $ nqp-js-on-js /nqp-bootstrapped.js" ;
183
189
184
190
185
- say (" $ nqp-js-on-js /ModuleLoader.js: $ nqpcore-moarvm src/vm/js/ModuleLoader.nqp \$(JS_STAGE1_COMPILER)
191
+ out (" $ nqp-js-on-js /ModuleLoader.js: $ nqpcore-moarvm src/vm/js/ModuleLoader.nqp \$(JS_STAGE1_COMPILER)
186
192
./nqp-js --setting=NULL --no-regex-lib --target=js --output $ ModuleLoader src/vm/js/ModuleLoader.nqp
187
193
" );
188
194
189
- say (" $ nqp-bootstrapped : $ QAST-moarvm $ NQPP5QRegex-moarvm $ NQPP6QRegex-moarvm $ nqp-combined $ QRegex-moarvm
195
+ out (" $ nqp-bootstrapped : $ QAST-moarvm $ NQPP5QRegex-moarvm $ NQPP6QRegex-moarvm $ nqp-combined $ QRegex-moarvm
190
196
./nqp-js --target=js --shebang $ nqp-combined > $ nqp-bootstrapped
191
197
" );
192
198
193
199
194
200
deps(" js-bootstrap" , " js-all" , $ nqp-bootstrapped );
195
201
202
+ sub MAIN ($ program , $ output-file ) {
203
+ spew($ output-file , $ out );
204
+ }
0 commit comments