Skip to content

Commit

Permalink
Move building of JS backend from node_modules into blib dir
Browse files Browse the repository at this point in the history
Not matter what directory it is, build currently fails for World.nqp
when trying to load Perl6::ModuleLoader.
  • Loading branch information
vrurg committed Sep 8, 2019
1 parent 480271e commit 5914ecb
Show file tree
Hide file tree
Showing 4 changed files with 22 additions and 43 deletions.
4 changes: 3 additions & 1 deletion .gitignore
Expand Up @@ -24,6 +24,7 @@ Makefile
*.jar
*.moarvm
*.js.map
blib/Perl6/**/*.js
lib/Test.pir
lib/Pod/To/Text.pir
lib/lib.pir
Expand Down Expand Up @@ -108,7 +109,8 @@ config.status
config.default
/bin
rakudo-runtime.jar
CORE.setting.class
CORE.?.setting.class
CORE.?.setting.js
*.rakudo.moar
*.rakudo.jvm
.precomp
Expand Down
2 changes: 0 additions & 2 deletions tools/lib/NQP/Config/Rakudo.pm
Expand Up @@ -447,8 +447,6 @@ sub configure_js_backend {
$config->{js_nqp} = $ijs->{bin};
$config->{'perl6_runtime'} =
File::Spec->rel2abs( $self->nfp('src/vm/js/perl6-runtime') );
$config->{'perl6_lowlevel_libs'} =
File::Spec->rel2abs('node_modules') . $slash;
$config->{'perl6_js_runner'} =
$self->batch_file( File::Spec->rel2abs('perl6-js') );

Expand Down
25 changes: 14 additions & 11 deletions tools/templates/Makefile-backend-common.in
Expand Up @@ -4,8 +4,11 @@
@bpv(GEN_CAT)@ = @shquot(@script(gen-cat.nqp)@)@ @backend@

@bpv(BUILD_DIR)@ = @nfp(gen/@backend@)@
@make_pp_pfx@ifndef @bpv(BLIB_DIR)@
@bpv(BLIB_DIR)@ = @nfp(blib/Perl6)@
@make_pp_pfx@ifndef @bpv(BLIB)@
@bpv(BLIB)@ = @nfp(blib)@
@make_pp_pfx@endif
@make_pp_pfx@ifndef @bpv(BLIB_PERL6)@
@bpv(BLIB_PERL6)@ = @nfp(blib/Perl6)@
@make_pp_pfx@endif
@bpv(NQP_LIBDIR)@ = @nqp::libdir@
@make_pp_pfx@ifndef @bpv(NQP_RR)@
Expand All @@ -21,15 +24,15 @@

# files we create
@bsv(PERL6)@ = perl6.@bext@
@bsv(PERL6_ML)@ = @nfp(@bpm(BLIB_DIR)@/ModuleLoader.@bext@)@
@bsv(PERL6_W)@ = @nfp(@bpm(BLIB_DIR)@/World.@bext@)@
@bsv(PERL6_G)@ = @nfp(@bpm(BLIB_DIR)@/Grammar.@bext@)@
@bsv(PERL6_OPS)@ = @nfp(@bpm(BLIB_DIR)@/Ops.@bext@)@
@bsv(PERL6_A)@ = @nfp(@bpm(BLIB_DIR)@/Actions.@bext@)@
@bsv(PERL6_O)@ = @nfp(@bpm(BLIB_DIR)@/Optimizer.@bext@)@
@bsv(PERL6_P)@ = @nfp(@bpm(BLIB_DIR)@/Pod.@bext@)@
@bsv(PERL6_C)@ = @nfp(@bpm(BLIB_DIR)@/Compiler.@bext@)@
@bsv(PERL6_M)@ = @nfp(@bpm(BLIB_DIR)@/Metamodel.@bext@)@
@bsv(PERL6_ML)@ = @nfp(@bpm(BLIB_PERL6)@/ModuleLoader.@bext@)@
@bsv(PERL6_W)@ = @nfp(@bpm(BLIB_PERL6)@/World.@bext@)@
@bsv(PERL6_G)@ = @nfp(@bpm(BLIB_PERL6)@/Grammar.@bext@)@
@bsv(PERL6_OPS)@ = @nfp(@bpm(BLIB_PERL6)@/Ops.@bext@)@
@bsv(PERL6_A)@ = @nfp(@bpm(BLIB_PERL6)@/Actions.@bext@)@
@bsv(PERL6_O)@ = @nfp(@bpm(BLIB_PERL6)@/Optimizer.@bext@)@
@bsv(PERL6_P)@ = @nfp(@bpm(BLIB_PERL6)@/Pod.@bext@)@
@bsv(PERL6_C)@ = @nfp(@bpm(BLIB_PERL6)@/Compiler.@bext@)@
@bsv(PERL6_M)@ = @nfp(@bpm(BLIB_PERL6)@/Metamodel.@bext@)@
@for_specs(@bsv(PERL6_BOOTSTRAP_@ucspec@)@ = @nfp(blib/Perl6/BOOTSTRAP/v6@lcspec@.@bext@)@
@bsv(SETTING_@ucspec@)@ = CORE.@lcspec@.setting.@bext@
)@
Expand Down
34 changes: 5 additions & 29 deletions tools/templates/js/Makefile.in
@@ -1,30 +1,23 @@

@bpv(BLIB_DIR)@ = @js_blib@
@bpv(BLIB)@ = @bpm(BLIB_DIR)@
#@bpv(BUILD_DIR)@ = @js_build_dir@
#@bpv(RUNNER)@ = @perl6_js_runner@
@bpv(NQP)@ = @js_nqp@
@bpv(RUNTIME)@ = @nqp::libdir@@nfp(/nqp-js-on-js/node_modules/nqp-runtime)@
@bpv(NQP_BASE_FLAGS)@ = --nqp-runtime @bpm(RUNTIME)@ --perl6-runtime @perl6_runtime@ --libpath "@perl6_lowlevel_libs@|||@nqp::libdir@@nfp(/nqp-js-on-js/)@"
@bpv(NQP_BASE_FLAGS)@ = --nqp-runtime @bpm(RUNTIME)@ --perl6-runtime @perl6_runtime@ --libpath "@bpm(BLIB_PERL6)@|||@nqp::libdir@@nfp(/nqp-js-on-js/)@"
@bpv(NQP_FLAGS)@ = @bpm(NQP_BASE_FLAGS)@ --substagestats --stagestats --source-map
@bpv(NQP_FLAGS_EXTRA)@ = --execname @bpm(RUNNER)@ --shebang
@bpv(RUN_PERL6)@ = node --max-old-space-size=8192 perl6.js @bpm(NQP_BASE_FLAGS)@ --source-map

@bpv(CLEANUPS)@ = \
perl6.js \
@bpm(BLIB_DIR)@/load-compiler.js
@bpm(BLIB_PERL6)@/load-compiler.js \
@bpm(BLIB_PERL6)@/*.js.map \
@bpm(BLIB_PERL6)@/BOOTSTRAP/*.js.map

# Have this target before including Makefile-backend-common to prevent the
# default js-install from executing.
js-install:: js-all
@echo "Installing the js backend is not yet implemented."
@exit 1

js-all::
@echo '+++ Preparing build environment'
@noecho@$(MKPATH) @nfp(@base_dir@/node_modules)@
@noecho@$(MKPATH) @nfp(@base_dir@/node_modules/Perl6)@

@include(Makefile-backend-common)@

# files we create
Expand All @@ -34,7 +27,7 @@ js-all::
# @noecho@@bpm(NQP)@ @bpm(BASE_FLAGS)@ --execname $(JS_RUNNER) --substagestats --stagestats --target=js --source-map --shebang --output=rakudo.js @nfp($(JS_BUILD_DIR)/main.nqp)@

@nfp(@bpm(BUILD_DIR)@/load-compiler.nqp)@: @nfp(src/vm/js/load-compiler.nqp)@
@nfp(@bpm(BLIB_DIR)@/load-compiler.js)@: @nfp(@bpm(BUILD_DIR)@/load-compiler.nqp)@ @bsm(PERL6_G)@ @bsm(PERL6_A)@ @bsm(PERL6_C)@ @bsm(PERL6_P)@
@nfp(@bpm(BLIB_PERL6)@/load-compiler.js)@: @nfp(@bpm(BUILD_DIR)@/load-compiler.nqp)@ @bsm(PERL6_G)@ @bsm(PERL6_A)@ @bsm(PERL6_C)@ @bsm(PERL6_P)@

#@nfp($(JS_BLIB)/load-compiler.js)@: @nfp(src/vm/js/load-compiler.nqp)@ $(PERL6_G_JS) $(PERL6_A_JS) $(PERL6_C_JS) $(PERL6_P_JS)
# $(MKPATH) $(JS_BLIB)
Expand All @@ -43,23 +36,6 @@ js-all::
$(JS_RUNNER):
$(PERL5) @script(create-js-runner.pl)@

#@for_specs($(PERL6_BOOTSTRAP_@ucspec@_JS): $(JS_BOOTSTRAP_@ucspec@_SOURCES) $(PERL6_M_JS)
# $(MKPATH) @nfp($(JS_BLIB)/Perl6/BOOTSTRAP)@
# $(JS_NQP) @script(gen-cat.nqp)@ js $(JS_BOOTSTRAP_@ucspec@_SOURCES) > @nfpq($(JS_BUILD_DIR)/Perl6-BOOTSTRAP.@lcspec@.nqp)@
# $(JS_NQP) $(JS_FLAGS) --substagestats --stagestats --target=js --source-map --output=$(PERL6_BOOTSTRAP_@ucspec@_JS) @nfpq($(JS_BUILD_DIR)/Perl6-BOOTSTRAP.@lcspec@.nqp)@
#
#$(SETTING_@ucspec@_JS): $(PERL6_MOAR) $(PERL6_BOOTSTRAP_@ucspec@_JS) $(JS_CORE_ALL_SOURCES)
# $(CONFIGURE) --expand @shquot(@ctx_template(core_sources)@)@ \
# --out @nfpq($(JS_BUILD_DIR)/core_sources.@lcspec@)@ \
# --set-var=backend=@backend@
# $(JS_NQP) @script(gen-cat.nqp)@ js -f @nfpq($(JS_BUILD_DIR)/core_sources.@lcspec@)@ > @nfpq($(JS_BUILD_DIR)/CORE.@lcspec@.setting)@
# @echo "The following step can take a long time, please be patient."
# node --max-old-space-size=8192 rakudo.js $(JS_FLAGS) --source-map --target=js --setting=NULL.@lcspec@ --output=@nfp($(JS_BLIB)/CORE.@lcspec@.setting.js)@ @nfp($(JS_BUILD_DIR)/CORE.@lcspec@.setting)@
#
#)@



#js-all: check_nqp_version @nfp($(JS_BUILD_DIR)/ModuleLoader.nqp)@ $(PERL6_G_JS) $(PERL6_A_JS) $(PERL6_C_JS) $(PERL6_P_JS) rakudo.js @for_specs($(JS_BLIB)/CORE.@lcspec@.setting.js )@ $(JS_RUNNER) $(JS_BLIB)/load-compiler.js
#TODO cleanup BOOTSTRAP
js-clean:
Expand Down

0 comments on commit 5914ecb

Please sign in to comment.