diff --git a/tools/build/Makefile-JVM.in b/tools/build/Makefile-JVM.in index a458a03e234..17443ccf2b1 100644 --- a/tools/build/Makefile-JVM.in +++ b/tools/build/Makefile-JVM.in @@ -2,7 +2,7 @@ JAVA = java JAVAC = javac JAR = jar J_NQP = @j_nqp@ -J_GEN_CAT = tools/build/gen-cat.pl jvm +J_GEN_CAT = tools/build/gen-cat.nqp jvm NQP_PREFIX = @nqp_prefix@ @@ -223,7 +223,7 @@ $(RUNTIME_JAR): $(RUNTIME_JAVAS) $(JAR) cf0 rakudo-runtime.jar -C bin/ . $(PERL6_ML_JAR): src/Perl6/ModuleLoader.nqp src/vm/jvm/ModuleLoaderVMConfig.nqp src/vm/jvm/Perl6/JavaModuleLoader.nqp - $(PERL) $(J_GEN_CAT) src/vm/jvm/ModuleLoaderVMConfig.nqp src/Perl6/ModuleLoader.nqp src/vm/jvm/Perl6/JavaModuleLoader.nqp > $(J_BUILD_DIR)/ModuleLoader.nqp + $(J_NQP) $(J_GEN_CAT) src/vm/jvm/ModuleLoaderVMConfig.nqp src/Perl6/ModuleLoader.nqp src/vm/jvm/Perl6/JavaModuleLoader.nqp > $(J_BUILD_DIR)/ModuleLoader.nqp $(J_NQP) --target=jar --output=$(PERL6_ML_JAR) --encoding=utf8 \ $(J_BUILD_DIR)/ModuleLoader.nqp @@ -257,22 +257,22 @@ $(PERL6_C_JAR): src/Perl6/Compiler.nqp $(PERL6_O_JAR) $(PERL6_JAR): src/main.nqp $(RUNTIME_JAR) $(PERL6_G_JAR) $(PERL6_A_JAR) $(PERL6_C_JAR) $(PERL6_P_JAR) $(PERL) tools/build/gen-version.pl > $(J_BUILD_DIR)/main-version.nqp - $(PERL) $(J_GEN_CAT) src/main.nqp $(J_BUILD_DIR)/main-version.nqp > $(J_BUILD_DIR)/main.nqp + $(J_NQP) $(J_GEN_CAT) src/main.nqp $(J_BUILD_DIR)/main-version.nqp > $(J_BUILD_DIR)/main.nqp $(J_NQP) --target=jar --javaclass=perl6 --output=$(PERL6_JAR) \ $(J_BUILD_DIR)/main.nqp $(PERL6_M_JAR): $(J_METAMODEL_SOURCES) $(PERL6_OPS_JAR) - $(PERL) $(J_GEN_CAT) $(J_METAMODEL_SOURCES) > $(J_BUILD_DIR)/Metamodel.nqp + $(J_NQP) $(J_GEN_CAT) $(J_METAMODEL_SOURCES) > $(J_BUILD_DIR)/Metamodel.nqp $(J_NQP) --target=jar --output=$(PERL6_M_JAR) --encoding=utf8 \ $(J_BUILD_DIR)/Metamodel.nqp $(PERL6_B_JAR): $(BOOTSTRAP_SOURCES) $(PERL6_M_JAR) - $(PERL) $(J_GEN_CAT) $(BOOTSTRAP_SOURCES) > $(J_BUILD_DIR)/BOOTSTRAP.nqp + $(J_NQP) $(J_GEN_CAT) $(BOOTSTRAP_SOURCES) > $(J_BUILD_DIR)/BOOTSTRAP.nqp $(PERL) tools/build/nqp-jvm-rr.pl $(J_NQP) --target=jar \ --output=$(PERL6_B_JAR) --encoding=utf8 $(J_BUILD_DIR)/BOOTSTRAP.nqp $(SETTING_JAR): $(PERL6_JAR) $(PERL6_B_JAR) $(J_CORE_SOURCES) - $(PERL) $(J_GEN_CAT) $(J_CORE_SOURCES) > $(J_BUILD_DIR)/CORE.setting + $(J_NQP) $(J_GEN_CAT) $(J_CORE_SOURCES) > $(J_BUILD_DIR)/CORE.setting @echo "The following step can take a long time, please be patient." $(J_RUN_PERL6) --setting=NULL --ll-exception --optimize=3 --target=jar --stagestats --output=$(SETTING_JAR) $(J_BUILD_DIR)/CORE.setting @@ -284,7 +284,7 @@ j-runner-default: j-all $(CHMOD) 755 perl6$(J_BAT) $(PERL6_DEBUG_JAR): src/perl6-debug.nqp $(PERL6_JAR) - $(PERL) $(J_GEN_CAT) src/perl6-debug.nqp $(J_BUILD_DIR)/main-version.nqp > $(J_BUILD_DIR)/j-perl6-debug.nqp + $(J_NQP) $(J_GEN_CAT) src/perl6-debug.nqp $(J_BUILD_DIR)/main-version.nqp > $(J_BUILD_DIR)/j-perl6-debug.nqp $(J_NQP) --target=jar --javaclass=perl6-debug --output=$(PERL6_DEBUG_JAR) \ $(J_BUILD_DIR)/j-perl6-debug.nqp diff --git a/tools/build/Makefile-Moar.in b/tools/build/Makefile-Moar.in index 0de1b9822fd..611bf8271dc 100644 --- a/tools/build/Makefile-Moar.in +++ b/tools/build/Makefile-Moar.in @@ -3,7 +3,7 @@ M_LD = @moar::ld@ M_CFLAGS = @moar::cflags@ @moar::ccmiscflags@ @moar::ccoptiflags@ @moar::ccwarnflags@ M_LDFLAGS = @moar::ldflags@ @moar::ldmiscflags@ @moar::ldoptiflags@ @moar::ldlibs@ -M_GEN_CAT = tools/build/gen-cat.pl moar +M_GEN_CAT = tools/build/gen-cat.nqp moar MOAR = $(PREFIX)@slash@bin@slash@moar@exe@ M_NQP = $(PREFIX)@slash@bin@slash@nqp-m@runner_suffix@ @@ -233,7 +233,7 @@ $(M_PERL6_OPS_DLL): $(M_PERL6_OPS_SRC) $(M_PERL6_CONT_SRC) Makefile $(M_LD) @moar::ldswitch@ @moar::ldshared@ $(M_LDFLAGS) @moar::ldout@$(M_PERL6_OPS_DLL) $(M_PERL6_OPS_OBJ) $(M_PERL6_CONT_OBJ) @moarimplib@ $(PERL6_ML_MOAR): src/Perl6/ModuleLoader.nqp src/vm/moar/ModuleLoaderVMConfig.nqp - $(PERL) $(M_GEN_CAT) src/vm/moar/ModuleLoaderVMConfig.nqp src/Perl6/ModuleLoader.nqp > src/gen/m-ModuleLoader.nqp + $(M_NQP) $(M_GEN_CAT) src/vm/moar/ModuleLoaderVMConfig.nqp src/Perl6/ModuleLoader.nqp > src/gen/m-ModuleLoader.nqp $(M_NQP) --target=mbc --output=$(PERL6_ML_MOAR) --encoding=utf8 \ src/gen/m-ModuleLoader.nqp @@ -267,22 +267,22 @@ $(PERL6_C_MOAR): src/Perl6/Compiler.nqp $(PERL6_O_MOAR) $(PERL6_MOAR): src/main.nqp $(PERL6_G_MOAR) $(PERL6_A_MOAR) $(PERL6_C_MOAR) $(PERL6_P_MOAR) $(PERL) tools/build/gen-version.pl > src/gen/main-version.nqp - $(PERL) $(M_GEN_CAT) src/main.nqp src/gen/main-version.nqp > src/gen/m-main.nqp + $(M_NQP) $(M_GEN_CAT) src/main.nqp src/gen/main-version.nqp > src/gen/m-main.nqp $(M_NQP) --target=mbc --output=$(PERL6_MOAR) \ --vmlibs=$(M_PERL6_OPS_DLL)=Rakudo_ops_init src/gen/m-main.nqp $(PERL6_M_MOAR): $(M_METAMODEL_SOURCES) $(PERL6_OPS_MOAR) - $(PERL) $(M_GEN_CAT) $(M_METAMODEL_SOURCES) > src/gen/m-Metamodel.nqp + $(M_NQP) $(M_GEN_CAT) $(M_METAMODEL_SOURCES) > src/gen/m-Metamodel.nqp $(M_NQP) --target=mbc --output=$(PERL6_M_MOAR) --encoding=utf8 \ src/gen/m-Metamodel.nqp $(PERL6_B_MOAR): $(BOOTSTRAP_SOURCES) $(PERL6_M_MOAR) - $(PERL) $(M_GEN_CAT) $(BOOTSTRAP_SOURCES) > src/gen/m-BOOTSTRAP.nqp + $(M_NQP) $(M_GEN_CAT) $(BOOTSTRAP_SOURCES) > src/gen/m-BOOTSTRAP.nqp $(M_NQP) --target=mbc --output=$(PERL6_B_MOAR) --encoding=utf8 \ --vmlibs=$(M_PERL6_OPS_DLL)=Rakudo_ops_init src/gen/m-BOOTSTRAP.nqp $(SETTING_MOAR): $(PERL6_MOAR) $(PERL6_B_MOAR) $(M_CORE_SOURCES) - $(PERL) $(M_GEN_CAT) $(M_CORE_SOURCES) > src/gen/m-CORE.setting + $(M_NQP) $(M_GEN_CAT) $(M_CORE_SOURCES) > src/gen/m-CORE.setting @echo "The following step can take a long time, please be patient." $(M_RUN_PERL6) --setting=NULL --ll-exception --optimize=3 --target=mbc --stagestats --output=$(SETTING_MOAR) src/gen/m-CORE.setting @@ -296,7 +296,7 @@ m-runner-default: $(M_RUNNER) $(CP) $(M_RUNNER) perl6@runner_suffix@ $(PERL6_DEBUG_MOAR): src/perl6-debug.nqp $(PERL6_MOAR) - $(PERL) $(M_GEN_CAT) src/perl6-debug.nqp src/gen/main-version.nqp > src/gen/m-perl6-debug.nqp + $(M_NQP) $(M_GEN_CAT) src/perl6-debug.nqp src/gen/main-version.nqp > src/gen/m-perl6-debug.nqp $(M_NQP) --target=mbc --output=$(PERL6_DEBUG_MOAR) \ --vmlibs=$(M_PERL6_OPS_DLL)=Rakudo_ops_init src/gen/m-perl6-debug.nqp diff --git a/tools/build/Makefile-Parrot.in b/tools/build/Makefile-Parrot.in index 7b8e6006815..4f1f61f63a0 100644 --- a/tools/build/Makefile-Parrot.in +++ b/tools/build/Makefile-Parrot.in @@ -33,7 +33,7 @@ PARROT_PERL_LIB = $(PARROT_TOOLS_DIR)/lib OPS2C = $(PARROT_BIN_DIR)/ops2c$(EXE) CINCLUDES = -I$(PARROT_INCLUDE_DIR) -I$(PARROT_INCLUDE_DIR)/pmc LINKARGS = $(P_LDFLAGS) $(P_LD_LOAD_FLAGS) $(LIBPARROT) @libs@ @icu_shared@ -P_GEN_CAT = tools/build/gen-cat.pl parrot +P_GEN_CAT = tools/build/gen-cat.nqp parrot P_BUILD_DIR = gen/parrot # rakudo directories @@ -366,13 +366,13 @@ $(PERL6_DEBUG_EXE): $(PERL6_DEBUG_PBC) # the complete compiler $(PERL6_PBC): $(PERL6_G_PBC) $(PERL6_A_PBC) $(PERL6_C_PBC) $(PERL6_P_PBC) src/main.nqp $(PERL) tools/build/gen-version.pl > $(P_BUILD_DIR)/main-version.nqp - $(PERL) $(P_GEN_CAT) src/main.nqp $(P_BUILD_DIR)/main-version.nqp > $(P_BUILD_DIR)/main.nqp + $(NQP_EXE) $(P_GEN_CAT) src/main.nqp $(P_BUILD_DIR)/main-version.nqp > $(P_BUILD_DIR)/main.nqp $(NQP_EXE) --vmlibs=perl6_ops --target=pir --output=src/gen/perl6.pir \ $(P_BUILD_DIR)/main.nqp $(PARROT) $(PARROT_ARGS) -o $(PERL6_PBC) src/gen/perl6.pir $(PERL6_ML_PBC): $(NQP_EXE) $(DYNEXT_DYNOPS) src/Perl6/ModuleLoader.nqp src/vm/parrot/ModuleLoaderVMConfig.nqp - $(PERL) $(P_GEN_CAT) src/vm/parrot/ModuleLoaderVMConfig.nqp src/Perl6/ModuleLoader.nqp > $(P_BUILD_DIR)/ModuleLoader.nqp + $(NQP_EXE) $(P_GEN_CAT) src/vm/parrot/ModuleLoaderVMConfig.nqp src/Perl6/ModuleLoader.nqp > $(P_BUILD_DIR)/ModuleLoader.nqp $(NQP_EXE) --target=pir --output=$(PERL6_ML) --encoding=utf8 \ $(P_BUILD_DIR)/ModuleLoader.nqp $(PARROT) $(PARROT_ARGS) -o $(PERL6_ML_PBC) $(PERL6_ML) @@ -413,19 +413,19 @@ $(PERL6_C_PBC): $(NQP_EXE) $(DYNEXT_DYNOPS) $(PERL6_O_PBC) src/Perl6/Compiler.nq $(PARROT) $(PARROT_ARGS) -o $(PERL6_C_PBC) $(PERL6_C) $(PERL6_M_PBC): $(NQP_EXE) $(DYNEXT_DYNOPS) $(P_METAMODEL_SOURCES) $(PERL6_OPS_PBC) - $(PERL) $(P_GEN_CAT) $(P_METAMODEL_SOURCES) > $(P_BUILD_DIR)/Metamodel.nqp + $(NQP_EXE) $(P_GEN_CAT) $(P_METAMODEL_SOURCES) > $(P_BUILD_DIR)/Metamodel.nqp $(NQP_EXE) --target=pir --output=$(PERL6_M) --encoding=utf8 \ --vmlibs=perl6_ops $(P_BUILD_DIR)/Metamodel.nqp $(PARROT) $(PARROT_ARGS) -o $(PERL6_M_PBC) $(PERL6_M) $(PERL6_B_PBC): $(NQP_EXE) $(DYNEXT_DYNOPS) $(PERL6_M_PBC) $(BOOTSTRAP_SOURCES) - $(PERL) $(P_GEN_CAT) $(BOOTSTRAP_SOURCES) > $(P_BUILD_DIR)/BOOTSTRAP.nqp + $(NQP_EXE) $(P_GEN_CAT) $(BOOTSTRAP_SOURCES) > $(P_BUILD_DIR)/BOOTSTRAP.nqp $(NQP_EXE) --target=pir --output=$(PERL6_B) --encoding=utf8 \ --vmlibs=perl6_ops $(P_BUILD_DIR)/BOOTSTRAP.nqp $(PARROT) $(PARROT_ARGS) -o $(PERL6_B_PBC) $(PERL6_B) $(SETTING_PBC): $(PERL6_B_PBC) $(PERL6_EXE) $(P_CORE_SOURCES) - $(PERL) $(P_GEN_CAT) $(P_CORE_SOURCES) > $(P_BUILD_DIR)/CORE.setting + $(NQP_EXE) $(P_GEN_CAT) $(P_CORE_SOURCES) > $(P_BUILD_DIR)/CORE.setting @echo "The following step can take a long time, please be patient." ./$(PERL6_EXE) --setting=NULL --ll-exception --optimize=3 --target=pir --stagestats --output=$(SETTING_PIR) $(P_BUILD_DIR)/CORE.setting $(PARROT) $(PARROT_ARGS) -o $(SETTING_PBC) $(SETTING_PIR) @@ -435,7 +435,7 @@ $(R_SETTING_PBC): $(PERL6_B_PBC) $(PERL6_EXE) $(SETTING_PBC) $(R_SETTING_SRC) $(PARROT) $(PARROT_ARGS) -o $(R_SETTING_PBC) $(R_SETTING_PIR) $(PERL6_DEBUG_PBC): $(PERL6_PBC) src/perl6-debug.nqp - $(PERL) $(P_GEN_CAT) src/perl6-debug.nqp $(P_BUILD_DIR)/main-version.nqp > $(P_BUILD_DIR)/p-perl6-debug.nqp + $(NQP_EXE) $(P_GEN_CAT) src/perl6-debug.nqp $(P_BUILD_DIR)/main-version.nqp > $(P_BUILD_DIR)/p-perl6-debug.nqp $(NQP_EXE) --vmlibs=perl6_ops --target=pir --output=src/gen/perl6-debug.pir \ $(P_BUILD_DIR)/p-perl6-debug.nqp $(PARROT) $(PARROT_ARGS) -o $(PERL6_DEBUG_PBC) src/gen/perl6-debug.pir diff --git a/tools/build/gen-cat.nqp b/tools/build/gen-cat.nqp new file mode 100755 index 00000000000..476cb410052 --- /dev/null +++ b/tools/build/gen-cat.nqp @@ -0,0 +1,32 @@ +#!/usr/bin/env nqp +# Copyright (C) 2014, The Perl Foundation + + +sub MAIN(*@ARGS) { + my $program := @ARGS.shift; + my $backend := @ARGS.shift; + say("# This file automatically generated by $program\n"); + for @ARGS -> $file { + say("# From $file\n"); + my $fh := open($file, :r); + my $in_cond := 0; + my $in_omit := 0; + while nqp::readlinefh($fh) -> $_ { + if my $x := $_ ~~ / ^ '#?if' \s+ ('!')? \s* (\w+) \s* $ / { + nqp::die("Nested conditionals not supported") if $in_cond; + $in_cond := 1; + $in_omit := $x[0] && $x[1] eq $backend || !$x[0] && $x[1] ne $backend; + } elsif $_ ~~ /^ '#?endif' / { + $in_cond := 0; + $in_omit := 0; + } elsif !$in_omit { + print($_) unless $_ ~~ /^ '# ' \w /; + } + } + close($fh); + } + say("\n# vim: set ft=perl6 nomodifiable :"); +} + + +# vim: set ft=perl6 :