Skip to content

Commit

Permalink
Build a partial setting.
Browse files Browse the repository at this point in the history
make test passes tests 1 and 2.
  • Loading branch information
pmurias committed Mar 8, 2014
1 parent 47029be commit d7faf48
Show file tree
Hide file tree
Showing 3 changed files with 41 additions and 6 deletions.
2 changes: 2 additions & 0 deletions nqp-js
@@ -0,0 +1,2 @@
#!/bin/sh
nqp-p --module-path gen/js/stage1 src/vm/js/bin/nqp-js.nqp $1 | node
2 changes: 1 addition & 1 deletion src/vm/js/HLL/Backend.nqp
Expand Up @@ -64,7 +64,7 @@ class HLLBackend::JavaScript {
}

spew($module ~ "/main.js", $js);
my $package_json := '{ "main": "main.js" }';
my $package_json := '{ "main": "main.js", "version": "0.0.0", "name": "placeholder" }';
spew($module ~ '/package.json', $package_json);
}

Expand Down
43 changes: 38 additions & 5 deletions tools/build/Makefile-JS.in
Expand Up @@ -2,6 +2,23 @@

JS_BUILD_DIR = gen/js
JS_STAGE1 = $(JS_BUILD_DIR)/stage1
JS_STAGE2 = $(JS_BUILD_DIR)/stage2

# src/core/NativeTypes.nqp \
# src/core/NQPRoutine.nqp \
# src/core/NQPMu.nqp \
# src/core/NQPCapture.nqp \
# src/core/IO.nqp \
# src/core/Regex.nqp \
# src/core/Hash.nqp \
# src/core/testing.nqp \
# src/core/YOUAREHERE.nqp \

CORE_JS_SETTING_SOURCES = \
src/core/IO.nqp \
src/core/YOUAREHERE.nqp \

NQPCORE_PBC = NQPCORE.setting.pbc

$(JS_STAGE1)/$(QASTNODE_COMBINED): $(QASTNODE_SOURCES)
$(MKPATH) $(JS_STAGE1)/gen
Expand All @@ -18,32 +35,48 @@ PARROT = parrot
PBC_TO_EXE = pbc_to_exe

PERL6_QCJ = src/vm/js/QAST/Compiler.nqp
PERL6_QCJ_PIR = $(JS_STAGE1)/qast-compiler.pir
PERL6_QCJ_PIR = $(JS_STAGE1)/QAST/Compiler.pir
PERL6_QCJ_PBC = $(JS_STAGE1)/QAST/Compiler.pbc

HLL_BACKEND = src/vm/js/HLL/Backend.nqp
HLL_PIR = $(JS_STAGE1)/hll-backend.pir
HLL_PBC = $(JS_STAGE1)/HLL/Backend.pbc

$(PERL6_QCJ_PBC): $(PERL6_QCJ)
$(MKPATH) $(JS_STAGE1)/QAST
$(NQP) --target=pir --output=$(PERL6_QCJ_PIR) --encoding=utf8 $(PERL6_QCJ)
$(PARROT) -o $(PERL6_QCJ_PBC) $(PERL6_QCJ_PIR)

js-clean:
$(RM_RF) $(PERL6_QCJ_PBC)

cross_compiler=$(PERL6_QCJ_PBC) $(HLL_PBC) $(J_STAGE1)/$(CORE_SETTING_COMBINED)
cross_compiler=$(PERL6_QCJ_PBC) $(HLL_PBC) $(JS_STAGE2)/$(CORE_SETTING_COMBINED)x $(JS_STAGE2)/nqpmo.pbc $(JS_STAGE2)/$(NQPCORE_PBC)

cross_compiler: $(cross_compiler)

$(HLL_PBC) : $(HLL_BACKEND) $(PERL6_QCJ_PIR)
$(MKPATH) $(JS_STAGE1)/HLL
$(NQP) --target=pir --module-path=gen/js/stage1 --output=$(HLL_PIR) --encoding=utf8 $(HLL_BACKEND)
$(PARROT) -o $(HLL_PBC) $(HLL_PIR)

$(J_STAGE1)/$(CORE_SETTING_COMBINED): $(CORE_SETTING_SOURCES)
$(MKPATH) $(J_STAGE1)
$(PERL) tools/build/gen-cat.pl js $(CORE_SETTING_SOURCES) > $(J_STAGE1)/$(CORE_SETTING_COMBINED)
$(JS_STAGE2)/$(CORE_SETTING_COMBINED)x: $(CORE_JS_SETTING_SOURCES)
$(MKPATH) $(JS_STAGE2)
$(PERL) tools/build/gen-cat.pl js $(CORE_JS_SETTING_SOURCES) > $(JS_STAGE2)/$(CORE_SETTING_COMBINED)x

$(JS_STAGE2)/$(NQP_MO_COMBINED): $(NQP_MO_SOURCES)
$(MKPATH) $(JS_STAGE2)
$(PERL) tools/build/gen-cat.pl moar $(NQP_MO_SOURCES) > $(JS_STAGE2)/$(NQP_MO_COMBINED)

$(JS_STAGE2)/nqpmo.pbc : $(JS_STAGE2)/$(NQP_MO_COMBINED)
nqp-p --module-path $(JS_STAGE1) src/vm/js/bin/compile-setting.nqp $(JS_STAGE2)/$(NQP_MO_COMBINED) $(JS_STAGE2)/nqpmo $(JS_STAGE2)/nqpmo.pir
$(PARROT) -o $(JS_STAGE2)/nqpmo.pbc $(JS_STAGE2)/nqpmo.pir

$(JS_STAGE2)/$(NQPCORE_PBC) : $(JS_STAGE2)/$(CORE_SETTING_COMBINED)x $(JS_STAGE2)/nqpmo.pbc
nqp-p --module-path $(JS_STAGE1) src/vm/js/bin/compile-setting.nqp $(JS_STAGE2)/$(CORE_SETTING_COMBINED)x $(JS_STAGE2)/NQPCORE.setting $(JS_STAGE2)/NQPCORE.setting.pir
$(PARROT) -o $(JS_STAGE2)/$(NQPCORE_PBC) $(JS_STAGE2)/NQPCORE.setting.pir

js-test: js-all
prove -r --exec "./nqp-js" t/nqp/01-literals.t

###
###
Expand Down

0 comments on commit d7faf48

Please sign in to comment.