Hello community, here is the log from the commit of package nqp for openSUSE:Factory checked in at 2020-01-29 13:18:27 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/nqp (Old) and /work/SRC/openSUSE:Factory/.nqp.new.26092 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "nqp" Wed Jan 29 13:18:27 2020 rev:31 rq:768041 version:2020.01 Changes: -------- --- /work/SRC/openSUSE:Factory/nqp/nqp.changes 2019-11-30 10:40:57.676146389 +0100 +++ /work/SRC/openSUSE:Factory/.nqp.new.26092/nqp.changes 2020-01-29 13:18:51.190184335 +0100 @@ -1,0 +2,12 @@ +Tue Jan 28 10:39:21 CET 2020 - [email protected] + +- update to version 2020.01 + * Fix "Decoder may not be used concurrently" errors with concurrent EVAL + * Give HLL/Actions|Grammar a "raku" method + * Add NQPAttribute.is_built method + * Add NQPAttribute.is_bound method + * Change references of HLL language to 'Raku' + * Remove HLL dependency + * Fix various compiler warnings + +------------------------------------------------------------------- Old: ---- nqp-2019.11.tar.gz New: ---- nqp-2020.01.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ nqp.spec ++++++ --- /var/tmp/diff_new_pack.JLf2Gg/_old 2020-01-29 13:18:52.522185015 +0100 +++ /var/tmp/diff_new_pack.JLf2Gg/_new 2020-01-29 13:18:52.530185019 +0100 @@ -1,7 +1,7 @@ # # spec file for package nqp # -# Copyright (c) 2019 SUSE LLC +# Copyright (c) 2020 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,15 +17,15 @@ Name: nqp -Version: 2019.11 +Version: 2020.01 Release: 1.1 Summary: Not Quite Perl License: Artistic-2.0 Group: Development/Languages/Other URL: http://rakudo.org/ Source: nqp-%{version}.tar.gz -BuildRequires: moarvm-devel >= 2019.11 -Requires: moarvm >= 2019.11 +BuildRequires: moarvm-devel >= 2020.01 +Requires: moarvm >= 2020.01 BuildRoot: %{_tmppath}/%{name}-%{version}-build %description ++++++ nqp-2019.11.tar.gz -> nqp-2020.01.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nqp-2019.11/.travis.yml new/nqp-2020.01/.travis.yml --- old/nqp-2019.11/.travis.yml 2019-11-26 20:43:38.000000000 +0100 +++ new/nqp-2020.01/.travis.yml 2020-01-27 20:42:54.000000000 +0100 @@ -25,7 +25,7 @@ notifications: irc: channels: - - "irc.freenode.net#perl6-dev" + - "irc.freenode.net#raku-dev" on_success: change on_failure: always template: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nqp-2019.11/3rdparty/nqp-configure/doc/Macros.md new/nqp-2020.01/3rdparty/nqp-configure/doc/Macros.md --- old/nqp-2019.11/3rdparty/nqp-configure/doc/Macros.md 2019-11-26 20:48:29.000000000 +0100 +++ new/nqp-2020.01/3rdparty/nqp-configure/doc/Macros.md 2020-01-27 20:43:47.000000000 +0100 @@ -61,7 +61,7 @@ detection process performed by the `Configure.pl` script, or any other source of information. -For example, `@perl6_home@` could either be set with `--perl6-home` option of +For example, `@rakudo_home@` could either be set with `--rakudo-home` option of `Configure.pl`, or set to a default value using a value from `@prefix@` variable. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nqp-2019.11/3rdparty/nqp-configure/lib/NQP/Config.pm new/nqp-2020.01/3rdparty/nqp-configure/lib/NQP/Config.pm --- old/nqp-2019.11/3rdparty/nqp-configure/lib/NQP/Config.pm 2019-11-26 20:48:29.000000000 +0100 +++ new/nqp-2020.01/3rdparty/nqp-configure/lib/NQP/Config.pm 2020-01-27 20:43:47.000000000 +0100 @@ -1,4 +1,3 @@ -## Please see file perltidy.ERR use v5.10.1; package NQP::Config::_Scoping; @@ -63,6 +62,9 @@ windows => ';', default => ':', }, + tab => { + default => "\t", + }, env_open => { windows => '%', vms => '%%', @@ -238,9 +240,25 @@ if ( $self->is_win ) { my $prefix = $config->{prefix}; my $has_nmake = 0 == system('nmake /? >NUL 2>&1'); - my $has_cl = can_run('cl') && `cl 2>&1` =~ /Microsoft Corporation/; + my $cl_report; + my $has_cl = can_run('cl') + && ( $cl_report = `cl 2>&1` ) =~ /Microsoft Corporation/; my $has_gmake = 0 == system('gmake --version >NUL 2>&1'); my $has_gcc = 0 == system('gcc --version >NUL 2>&1'); + if ($has_cl) { + if ( $cl_report =~ + /Microsoft\s.*\sCompiler\s+Version\s+(\d+(?:\.\d+)+)/i ) + { + my $actual_version = $1; + my $expect_version = "19.0"; + if ( version->parse($actual_version) < $expect_version ) { + $self->sorry( "Expected Microsoft Compiler version " + . $expect_version + . "+, but got " + . $actual_version ); + } + } + } if ( -x "$prefix\\bin\\nqp-m.exe" && ( $_ = @@ -424,47 +442,28 @@ } sub configure_jars { - my $self = shift; + my $self = shift; + my $jars = shift; + my $config = $self->{config}; my $options = $self->{options}; - if ( $options->{'with-asm'} ) { - if ( $options->{'with-asm'} ne '-' ) { - $config->{'asm'} = $options->{'with-asm'}; - } - } - else { - $config->{'asm'} = $self->base_path(qw<3rdparty asm asm-4.1.jar>); - } - if ( $options->{'with-asm-tree'} ) { - if ( $options->{'with-asm-tree'} ne '-' ) { - $config->{'asmtree'} = $options->{'with-asm-tree'}; - } - } - else { - $config->{'asmtree'} = - $self->base_path(qw<3rdparty asm asm-tree-4.1.jar>); - } - if ( $options->{'with-jline'} ) { - if ( $options->{'with-jline'} ne '-' ) { - $config->{'jline'} = $options->{'with-jline'}; + + foreach my $name ( keys %$jars ) { + my $path = $jars->{$name}; + my $variable = $name; + $variable =~ s/-//; + if ( $options->{"with-$name"} ) { + if ( $options->{"with-$name"} ne '-' ) { + $config->{$variable} = $options->{"with-$name"}; + } } - } - else { - $config->{'jline'} = $self->base_path("3rdparty/jline/jline-1.0.jar"); - } - if ( $options->{'with-jna'} ) { - if ( $options->{'with-jna'} ne '-' ) { - $config->{'jna'} = $options->{'with-jna'}; + else { + $config->{$variable} = $self->base_path( @{$path} ); } - } - else { - $config->{'jna'} = $self->base_path("3rdparty/jna/jna-4.0.0.jar"); - } - $config->{asmfile} = ( File::Spec->splitpath( $config->{asm} ) )[-1]; - $config->{jlinefile} = - ( File::Spec->splitpath( $config->{jline} ) )[-1]; - $config->{jnafile} = ( File::Spec->splitpath( $config->{jna} ) )[-1]; + $config->{ $variable . 'file' } = + ( File::Spec->splitpath( $config->{$variable} ) )[-1]; + } } sub configure_relocatability { @@ -478,10 +477,16 @@ ); } - if ( $self->{options}->{relocatable} && ($self->{options}->{'perl6-home'} || $self->{options}->{'nqp-home'} ) ) { - $self->sorry( "It's not possible to build a relocatable rakudo and use hard coded perl6-home" + if ( + $self->{options}->{relocatable} + && ( $self->{options}->{'rakudo-home'} + || $self->{options}->{'nqp-home'} ) + ) + { + $self->sorry( +"It's not possible to build a relocatable rakudo and use hard coded rakudo-home" . "\nor nqp-home directories. So either don't use the `--relocatable` parameter or don't" - . "\nuse the `--perl6-home` and `--nqp-home` parameters." + . "\nuse the `--perl6-home`, `--rakudo-home`, and `--nqp-home` parameters." ); } @@ -538,6 +543,9 @@ $config->{mkpath} = 'mkdir -p --'; $config->{chmod} = 'chmod --'; $config->{cp} = 'cp --'; + + # Symlinking should override destination. + $config->{ln_s} = 'ln -nfs --'; $config->{rm_f} = 'rm -f --'; $config->{rm_rf} = 'rm -rf --'; $config->{rm_l} = 'rm -f --'; @@ -547,6 +555,7 @@ $config->{mkpath} = '$(PERL5) -MExtUtils::Command -e mkpath'; $config->{chmod} = '$(PERL5) -MExtUtils::Command -e chmod'; $config->{cp} = '$(PERL5) -MExtUtils::Command -e cp'; + $config->{ln_s} = '$(PERL5) -MExtUtils::Command -e cp'; $config->{rm_f} = '$(PERL5) -MExtUtils::Command -e rm_f'; $config->{rm_rf} = '$(PERL5) -MExtUtils::Command -e rm_rf'; $config->{rm_l} = @@ -568,7 +577,25 @@ } sub configure_misc { - abstract; + my $self = shift; + my $config = $self->{config}; + my $make_pp_pfx = $self->cfg('make_pp_pfx'); + if ( $self->cfg('silent_build') eq 'on' ) { + $config->{NOECHO_declaration} = <<NOECHO_DECL; +NOECHO = @ +${make_pp_pfx}ifdef VERBOSE_BUILD +NOECHO = +${make_pp_pfx}endif +NOECHO_DECL + } + else { + $config->{NOECHO_declaration} = <<NOECHO_DECL; +NOECHO = +${make_pp_pfx}ifdef SILENT_BUILD +NOECHO = @ +${make_pp_pfx}endif +NOECHO_DECL + } } sub configure_refine_vars { @@ -635,7 +662,7 @@ my $self = shift; my $config = $self->{config}; for my $opt ( - qw<prefix perl6-home nqp-home sdkroot sysroot github-user git-protocol + qw<prefix rakudo-home nqp-home sdkroot sysroot github-user git-protocol rakudo-repo nqp-repo moar-repo roast-repo makefile-timing relocatable reference> ) @@ -644,10 +671,17 @@ $self->set_key( $ckey, $self->{options}{$opt}, default => '', ); } + for my $opt ( keys %{ $self->{options} } ) { + my $opt_val = $self->{options}{$opt} // ''; + next if ref($opt_val); + ( my $cf_var = $opt ) =~ s/-/_/g; + $config->{"opt_$cf_var"} = $opt_val; + } + $config->{stagestats} = '--stagestats' if $self->{options}{'makefile-timing'}; - $config->{noecho} = $self->option('silent-build') ? '@' : ''; + $config->{silent_build} = $self->option('silent-build') ? "on" : "off"; my ( $template, $out ); if ( $self->option('expand') ) { @@ -734,13 +768,13 @@ state $bool_opt = { map { $_ => 1 } qw< - relocatable no-clean ignore-errors silent-build + force-rebuild relocatable no-clean ignore-errors silent-build > }; my $opt_str = ""; if ( $bool_opt->{$opt} ) { - $opt_str = "--" . ($options->{$opt} ? '' : 'no-') . "$opt"; + $opt_str = "--" . ( $options->{$opt} ? '' : 'no-' ) . "$opt"; } elsif ( defined $options->{$opt} ) { my $opt_value = @@ -761,7 +795,7 @@ sub ignorable_opts { my $self = shift; my $opt = shift; - return qw<gen-moar gen-nqp help make-install expand out + return qw<gen-moar gen-nqp force-rebuild help make-install expand out prefix backends set-var silent-build clean>; } @@ -823,7 +857,7 @@ sub is_executable { my ( $self, $file ) = @_; die "File parameter is missing in call to is_executable" if @_ < 2; - return $file if -x $file; + return $file if -x $file; for my $ext (qw<exe bat>) { my $fname = $file . $self->cfg($ext); return $fname if -x $fname; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nqp-2019.11/3rdparty/nqp-configure/lib/NQP/Macros.pm new/nqp-2020.01/3rdparty/nqp-configure/lib/NQP/Macros.pm --- old/nqp-2019.11/3rdparty/nqp-configure/lib/NQP/Macros.pm 2019-11-26 20:48:29.000000000 +0100 +++ new/nqp-2020.01/3rdparty/nqp-configure/lib/NQP/Macros.pm 2020-01-27 20:43:47.000000000 +0100 @@ -498,7 +498,10 @@ bext => $cfg->backend_ext($be), btarget => $cfg->backend_target($be), ); + my %iprops = %{ $cfg->{impls}{$be} }; + delete $iprops{config}; my $be_ctx = { + %iprops, backend => $be, configs => [ $cfg->{impls}{$be}{config}, \%config ], }; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nqp-2019.11/Configure.pl new/nqp-2020.01/Configure.pl --- old/nqp-2019.11/Configure.pl 2019-11-26 20:43:38.000000000 +0100 +++ new/nqp-2020.01/Configure.pl 2020-01-27 20:42:54.000000000 +0100 @@ -31,6 +31,12 @@ . ">>> Please delete the following folder and try again:\n$1\n\n"; exit 1; } + else { + print "\n===SORRY=== ERROR: " + . "Updating the submodule failed for an unknown reason. The error message was:\n" + . $msg; + exit 1; + } } } if ($set_config) { @@ -69,7 +75,8 @@ 'github-user=s', 'nqp-repo=s', 'moar-repo=s', 'expand=s', 'out=s', 'set-var=s@', - 'relocatable!', 'silent-build!' + 'relocatable!', 'silent-build!', + 'force-rebuild!' ) or do { print_help(); @@ -149,6 +156,7 @@ --nqp-home=dir Directory to install NQP files to --backends=list Backends to use: $backends --gen-moar Download, build, and install a copy of MoarVM to use before writing the Makefile + --force-rebuild Forces rebuild of moar if used with --gen-moar --moar-option='--option=value' Options to pass to MoarVM configuration for --gen-moar --with-moar='/path/to/moar' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nqp-2019.11/VERSION new/nqp-2020.01/VERSION --- old/nqp-2019.11/VERSION 2019-11-26 20:45:37.000000000 +0100 +++ new/nqp-2020.01/VERSION 2020-01-27 20:43:31.000000000 +0100 @@ -1 +1 @@ -2019.11 +2020.01 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nqp-2019.11/docs/ops.markdown new/nqp-2020.01/docs/ops.markdown --- old/nqp-2019.11/docs/ops.markdown 2019-11-26 20:43:38.000000000 +0100 +++ new/nqp-2020.01/docs/ops.markdown 2020-01-27 20:42:54.000000000 +0100 @@ -2247,6 +2247,16 @@ $lang.language('My::Lang'); +## call +* `call()` + +This method is not documented yet. + +Example: + + nqp::call(nqp::getlexcaller('&say'), 'foo') + + ## callmethod * `callmethod(Mu $obj, str $methodname, *@pos, *%named --> Mu)` @@ -2560,19 +2570,19 @@ constants below can be used in nqp as (e.g.) `nqp::const::CCLASS_ANY`. * CCLASS_ANY - * CCLASS_UPPERCASE - * CCLASS_LOWERCASE - * CCLASS_ALPHABETIC - * CCLASS_NUMERIC + * CCLASS_UPPERCASE Lu + * CCLASS_LOWERCASE Ll + * CCLASS_ALPHABETIC Lo | Ll | Lu | Lt | Lm + * CCLASS_NUMERIC Nd * CCLASS_HEXADECIMAL - * CCLASS_WHITESPACE - * CCLASS_PRINTING - * CCLASS_BLANK - * CCLASS_CONTROL + * CCLASS_WHITESPACE (9..13,32,133,160,5760,8192..8202,8232,8233,8239,8287,12228) + * CCLASS_PRINTING !(0..31, 127..159) + * CCLASS_BLANK Zs + * CCLASS_CONTROL (0..31, 127..159) * CCLASS_PUNCTUATION - * CCLASS_ALPHANUMERIC - * CCLASS_NEWLINE - * CCLASS_WORD + * CCLASS_ALPHANUMERIC Lo | Ll | Lu | Lt | Lm | Nd + * CCLASS_NEWLINE Zl Zp + * CCLASS_WORD Lo | Ll | Lu | Lt | Lm | Nd + "_" * HLL_ROLE_NONE * HLL_ROLE_INT diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nqp-2019.11/src/HLL/Actions.nqp new/nqp-2020.01/src/HLL/Actions.nqp --- old/nqp-2019.11/src/HLL/Actions.nqp 2019-11-26 20:43:38.000000000 +0100 +++ new/nqp-2020.01/src/HLL/Actions.nqp 2020-01-27 20:42:54.000000000 +0100 @@ -1,5 +1,6 @@ class HLL::Actions { - method perl() { self.HOW.name(self) ~ '.new() #`[' ~ nqp::where(self) ~ ']' } + method perl() { self.raku } + method raku() { self.HOW.name(self) ~ '.new() #`[' ~ nqp::where(self) ~ ']' } method string_to_int($src, $base) { my $res := nqp::radix($base, $src, 0, 2); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nqp-2019.11/src/HLL/Grammar.nqp new/nqp-2020.01/src/HLL/Grammar.nqp --- old/nqp-2019.11/src/HLL/Grammar.nqp 2019-11-26 20:43:38.000000000 +0100 +++ new/nqp-2020.01/src/HLL/Grammar.nqp 2020-01-27 20:42:54.000000000 +0100 @@ -46,7 +46,8 @@ #?endif ; - method perl() { self.HOW.name(self) ~ '.new() #`[' ~ nqp::where(self) ~ ']' } + method perl() { self.raku } + method raku() { self.HOW.name(self) ~ '.new() #`[' ~ nqp::where(self) ~ ']' } method throw_unrecog_backslash_seq ($sequence) { self.panic("Unrecognized backslash sequence: '\\" ~ $sequence ~ "'"); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nqp-2019.11/src/QRegex/Cursor.nqp new/nqp-2020.01/src/QRegex/Cursor.nqp --- old/nqp-2019.11/src/QRegex/Cursor.nqp 2019-11-26 20:43:38.000000000 +0100 +++ new/nqp-2020.01/src/QRegex/Cursor.nqp 2020-01-27 20:42:54.000000000 +0100 @@ -89,7 +89,7 @@ method PRECURSOR() { self."!cursor_init"(nqp::getattr_s($!shared, ParseShared, '$!target'), :p($!from)) } method Str() { $!pos >= $!from ?? nqp::substr(nqp::getattr_s($!shared, ParseShared, '$!target'), $!from, nqp::sub_i(self.to, $!from)) !! '' } method Num() { nqp::numify(self.Str()) } - method Int() { nqp::hllizefor(self.Str, 'perl6').Int } + method Int() { self.Str().Int } method Bool() { $!pos >= $!from } method chars() { $!pos >= $!from ?? nqp::sub_i(self.to, $!from) !! 0 } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nqp-2019.11/src/how/NQPAttribute.nqp new/nqp-2020.01/src/how/NQPAttribute.nqp --- old/nqp-2019.11/src/how/NQPAttribute.nqp 2019-11-26 20:43:38.000000000 +0100 +++ new/nqp-2020.01/src/how/NQPAttribute.nqp 2020-01-27 20:42:54.000000000 +0100 @@ -33,6 +33,14 @@ $!has_type ?? $!type !! nqp::null() } + method is_built() { + 0 + } + + method is_bound() { + 0 + } + method has_accessor() { 0 } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nqp-2019.11/src/vm/js/Compiler.nqp new/nqp-2020.01/src/vm/js/Compiler.nqp --- old/nqp-2019.11/src/vm/js/Compiler.nqp 2019-11-26 20:43:38.000000000 +0100 +++ new/nqp-2020.01/src/vm/js/Compiler.nqp 2020-01-27 20:42:54.000000000 +0100 @@ -291,7 +291,7 @@ return 0 if $var.scope eq 'local'; - if $*HLL eq 'perl6' { # To make binding of signatures work + if $*HLL eq 'Raku' { # To make binding of signatures work return 1; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nqp-2019.11/src/vm/js/nqp-runtime/core.js new/nqp-2020.01/src/vm/js/nqp-runtime/core.js --- old/nqp-2019.11/src/vm/js/nqp-runtime/core.js 2019-11-26 20:43:38.000000000 +0100 +++ new/nqp-2020.01/src/vm/js/nqp-runtime/core.js 2020-01-27 20:42:54.000000000 +0100 @@ -109,7 +109,7 @@ const letters = radix >= 11 ? lowercase + uppercase + uppercaseTitle + lowercaseTitle : ''; const digitClass = '[\\pN' + letters + ']'; - const minus = flags & 0x02 ? '(?:-?|\\+?)' : ''; + const minus = flags & 0x02 ? '(?:-|\\+|−)?' : ''; const regex = xregexp( '^' + minus + digitClass + '(?:_' + digitClass + '|' + digitClass + ')*'); @@ -125,6 +125,7 @@ let error; number = number.replace(notSimpleDigit, function(match, offset, string) { + if (match == '−') return '-'; const code = match.codePointAt(0); const propValueId = numericTypeData.get(code); @@ -628,11 +629,11 @@ exports.fromJSToReturnValue = fromJSToReturnValue; function fromJSToArgument(obj) { - return fromJS(hll.getHLL('perl6'), obj, false, true); + return fromJS(hll.getHLL('Raku'), obj, false, true); } function fromJSToObject(ctx, obj) { - return fromJS(hll.getHLL('perl6'), obj, false, false); + return fromJS(hll.getHLL('Raku'), obj, false, false); } function fromJS(HLL, obj, isReturnValue, isArgument) { @@ -1015,7 +1016,7 @@ op.getcomp = function(language) { const compilerRegistry = globalContext.context.compilerRegistry; - if (language === 'perl6' && !compilerRegistry.has(language)) { + if (language === 'Raku' && !compilerRegistry.has(language)) { return fakePerl6; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nqp-2019.11/src/vm/js/nqp-runtime/deserialization.js new/nqp-2020.01/src/vm/js/nqp-runtime/deserialization.js --- old/nqp-2019.11/src/vm/js/nqp-runtime/deserialization.js 2019-11-26 20:43:38.000000000 +0100 +++ new/nqp-2020.01/src/vm/js/nqp-runtime/deserialization.js 2020-01-27 20:42:54.000000000 +0100 @@ -540,7 +540,7 @@ this.sc = sc; - if (version != 21) { + if (version != 22) { throw 'Unsupported serialization format version: ' + version; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nqp-2019.11/src/vm/js/nqp-runtime/runtime.js new/nqp-2020.01/src/vm/js/nqp-runtime/runtime.js --- old/nqp-2019.11/src/vm/js/nqp-runtime/runtime.js 2019-11-26 20:43:38.000000000 +0100 +++ new/nqp-2020.01/src/vm/js/nqp-runtime/runtime.js 2020-01-27 20:42:54.000000000 +0100 @@ -481,7 +481,7 @@ const containerSpecs = require('./container-specs.js'); exports.extraRuntime = function(lang, path) { - if (lang != 'perl6') throw 'only loading extra runtime for perl 6 is supported'; + if (lang != 'Raku') throw 'only loading extra runtime for Raku is supported'; const runtime = typeof path === 'string' ? require(path) : path.require(lang + '-runtime'); if (!runtime.loaded) { runtime.loaded = true; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nqp-2019.11/src/vm/js/nqp-runtime/serialization.js new/nqp-2020.01/src/vm/js/nqp-runtime/serialization.js --- old/nqp-2019.11/src/vm/js/nqp-runtime/serialization.js 2019-11-26 20:43:38.000000000 +0100 +++ new/nqp-2020.01/src/vm/js/nqp-runtime/serialization.js 2020-01-27 20:42:54.000000000 +0100 @@ -25,7 +25,7 @@ const op = {}; exports.op = op; -const CURRENT_VERSION = 21; +const CURRENT_VERSION = 22; const OBJECTS_TABLE_ENTRY_SC_IDX_MAX = 0x000FFFFF; const OBJECTS_TABLE_ENTRY_SC_MAX = 0x7FE; const OBJECTS_TABLE_ENTRY_SC_SHIFT = 20; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nqp-2019.11/src/vm/jvm/runtime/org/perl6/nqp/io/StandardReadHandle.java new/nqp-2020.01/src/vm/jvm/runtime/org/perl6/nqp/io/StandardReadHandle.java --- old/nqp-2019.11/src/vm/jvm/runtime/org/perl6/nqp/io/StandardReadHandle.java 2019-11-26 20:43:38.000000000 +0100 +++ new/nqp-2020.01/src/vm/jvm/runtime/org/perl6/nqp/io/StandardReadHandle.java 2020-01-27 20:42:54.000000000 +0100 @@ -41,12 +41,31 @@ byte[] array = new byte[bytes]; int read = 0; int offset = 0; - while (offset < bytes) { - if ((read = is.read(array, offset, bytes - offset)) == -1) { - eof = true; - break; + if (isTTY(tc)) { + while (offset < bytes) { + read = is.read(array, offset, Math.min(is.available(), bytes - offset)); + if (read == -1) { + eof = true; + break; + } + else if (read == 0) { + if (is.available() == 0 && offset > 0) { + break; + } + } + else { + offset += read; + } + } + } + else { + while (offset < bytes) { + if ((read = is.read(array, offset, bytes - offset)) == -1) { + eof = true; + break; + } + offset += read; } - offset += read; } byte[] compact = new byte[offset]; System.arraycopy(array, 0, compact, 0, offset); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nqp-2019.11/src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java new/nqp-2020.01/src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java --- old/nqp-2019.11/src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java 2019-11-26 20:43:38.000000000 +0100 +++ new/nqp-2020.01/src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java 2020-01-27 20:42:54.000000000 +0100 @@ -4096,8 +4096,8 @@ } ch = (zpos < chars) ? str.charAt((int)zpos) : 0; - if ((flags & 0x02) != 0 && (ch == '+' || ch == '-')) { - neg = (ch == '-'); + if ((flags & 0x02) != 0 && (ch == '+' || ch == '-' || ch == '−')) { + neg = (ch == '-' || ch == '−'); zpos++; ch = (zpos < chars) ? str.charAt((int)zpos) : 0; } @@ -7177,9 +7177,7 @@ BigInteger base = getBI(tc, a, type); BigInteger exponent = getBI(tc, b, type); BigInteger modulus = getBI(tc, c, type); - BigInteger result = exponent.compareTo(BigInteger.ZERO) == -1 && !base.equals(BigInteger.ONE) - ? BigInteger.ZERO - : base.modPow(exponent, modulus); + BigInteger result = base.modPow(exponent, modulus); return makeBI(tc, type, result); } @@ -7281,8 +7279,8 @@ } ch = (zpos < chars) ? str.charAt((int)zpos) : 0; - if ((flags & 0x02) != 0 && (ch == '+' || ch == '-')) { - neg = (ch == '-'); + if ((flags & 0x02) != 0 && (ch == '+' || ch == '-' || ch == '−')) { + neg = (ch == '-' || ch == '−'); zpos++; ch = (zpos < chars) ? str.charAt((int)zpos) : 0; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nqp-2019.11/src/vm/moar/HLL/Backend.nqp new/nqp-2020.01/src/vm/moar/HLL/Backend.nqp --- old/nqp-2019.11/src/vm/moar/HLL/Backend.nqp 2019-11-26 20:43:39.000000000 +0100 +++ new/nqp-2020.01/src/vm/moar/HLL/Backend.nqp 2020-01-27 20:42:54.000000000 +0100 @@ -162,7 +162,7 @@ $conf-hash := nqp::hash('kind', $kind); } - my @END := nqp::gethllsym('perl6', '@END_PHASERS'); + my @END := nqp::gethllsym('Raku', '@END_PHASERS'); @END.push(-> { self.dump_profile_data($prof_end_sub(), $kind, $filename) }) if nqp::defined(@END); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nqp-2019.11/src/vm/moar/QAST/QASTCompilerMAST.nqp new/nqp-2020.01/src/vm/moar/QAST/QASTCompilerMAST.nqp --- old/nqp-2019.11/src/vm/moar/QAST/QASTCompilerMAST.nqp 2019-11-26 20:43:39.000000000 +0100 +++ new/nqp-2020.01/src/vm/moar/QAST/QASTCompilerMAST.nqp 2020-01-27 20:42:54.000000000 +0100 @@ -2145,11 +2145,13 @@ has %!callsites; has $!string-heap; has $!done; + has $!latin1decoder; method BUILD(:$string-heap) { - $!string-heap := $string-heap; - $!callsites := MAST::Bytecode.new; - %!callsites := nqp::hash; - $!done := 0; + $!string-heap := $string-heap; + $!callsites := MAST::Bytecode.new; + %!callsites := nqp::hash; + $!done := 0; + $!latin1decoder := NQPDecoder.new('iso-8859-1'); } my $callsite_arg_named := 32; @@ -2205,7 +2207,6 @@ my int $flatnamed := $Arg::flatnamed; my int $flat := $Arg::flat; my int $named := $Arg::named; - my $latin1decoder := NQPDecoder.new('iso-8859-1'); method get_callsite_id_from_args(@args, @arg_mast) { nqp::die('get_callsite_id after serialization!') if $!done; my uint16 $elems := nqp::elems(@args); @@ -2236,8 +2237,8 @@ $i++; } - $latin1decoder.add-bytes($identifier); # just turn the buf into a str without real interpretation - my str $identifier_s := $latin1decoder.consume-all-chars; + $!latin1decoder.add-bytes($identifier); # just turn the buf into a str without real interpretation + my str $identifier_s := $!latin1decoder.consume-all-chars; if nqp::existskey(%!callsites, $identifier_s) { return %!callsites{$identifier_s}; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nqp-2019.11/src/vm/moar/runner/main.c new/nqp-2020.01/src/vm/moar/runner/main.c --- old/nqp-2019.11/src/vm/moar/runner/main.c 2019-11-26 20:43:39.000000000 +0100 +++ new/nqp-2020.01/src/vm/moar/runner/main.c 2020-01-27 20:42:54.000000000 +0100 @@ -148,18 +148,24 @@ char *exec_path; size_t exec_path_size; +#ifndef STATIC_EXEC_PATH int res; +#endif - char *exec_dir_path; char *exec_dir_path_temp; +#ifndef STATIC_NQP_HOME + char *exec_dir_path; size_t exec_dir_path_size; +#endif char *nqp_home; size_t nqp_home_size; +#ifndef STATIC_NQP_HOME const char nqp_rel_path[14] = "/../share/nqp"; const size_t nqp_rel_path_size = 13; const char nqp_check_path[28] = "/lib/NQPCORE.setting.moarvm"; const size_t nqp_check_path_size = 27; +#endif char *lib_path[1]; char *nqp_file; @@ -173,8 +179,10 @@ int flag; int new_argc = 0; - unsigned int interval_id; +#ifdef HAVE_TELEMEH + unsigned int interval_id = 0; char telemeh_inited = 0; +#endif MVMuint32 debugserverport = 0; int start_suspended = 0; @@ -269,6 +277,12 @@ /* The +1 is the trailing \0 terminating the string. */ exec_dir_path_temp = (char*)malloc(exec_path_size + 1); memcpy(exec_dir_path_temp, exec_path, exec_path_size + 1); + + /* Retrieve NQP_HOME. */ + +#ifdef STATIC_NQP_HOME + nqp_home = STRINGIFY(STATIC_NQP_HOME); +#else #ifdef _WIN32 PathRemoveFileSpecA(exec_dir_path_temp); exec_dir_path_size = strlen(exec_dir_path_temp); @@ -278,12 +292,6 @@ exec_dir_path = dirname(exec_dir_path_temp); exec_dir_path_size = strlen(exec_dir_path); #endif - - /* Retrieve NQP_HOME. */ - -#ifdef STATIC_NQP_HOME - nqp_home = STRINGIFY(STATIC_NQP_HOME); -#else if (!retrieve_home(&nqp_home, nqp_rel_path, nqp_rel_path_size, "NQP_HOME", exec_dir_path, exec_dir_path_size, nqp_check_path, nqp_check_path_size)) { fprintf(stderr, "ERROR: NQP_HOME is invalid: %s\n", nqp_home); @@ -346,7 +354,7 @@ #ifndef STATIC_EXEC_PATH free(exec_path); #endif -#ifdef _WIN32 +#if defined(_WIN32) && !defined(STATIC_NQP_HOME) /* dirname's return value is either on the stack or is the same pointer * that was passed to it depending on the version of libc used, which leads * to double frees. */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nqp-2019.11/t/nqp/060-bigint.t new/nqp-2020.01/t/nqp/060-bigint.t --- old/nqp-2019.11/t/nqp/060-bigint.t 2019-11-26 20:43:39.000000000 +0100 +++ new/nqp-2020.01/t/nqp/060-bigint.t 2020-01-27 20:42:54.000000000 +0100 @@ -203,8 +203,8 @@ is(nqp::base_I(nqp::fromstr_I('3126485650003097871900151124153820550731463512387701580', $bi_type), 36), '123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0', 'base_I with base 36 using all possible digits'); -is(str(nqp::expmod_I(box(42), box(-42), box(42), $bi_type)), '0', 'nqp::expmod with negative exponent'); -is(str(nqp::expmod_I(box(-42), box(-42), box(42), $bi_type)), '0', 'nqp::expmod with negative exponent'); +is(str(nqp::expmod_I(box(3), box(-4), box(4), $bi_type)), '1', 'nqp::expmod with negative exponent'); +is(str(nqp::expmod_I(box(-3), box(-4), box(4), $bi_type)), '1', 'nqp::expmod with negative exponent'); ok(str(nqp::expmod_I( nqp::fromstr_I('2988348162058574136915891421498819466320163312926952423791023078876139', $bi_type), diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nqp-2019.11/t/nqp/081-radix.t new/nqp-2020.01/t/nqp/081-radix.t --- old/nqp-2019.11/t/nqp/081-radix.t 2019-11-26 20:43:39.000000000 +0100 +++ new/nqp-2020.01/t/nqp/081-radix.t 2020-01-27 20:42:54.000000000 +0100 @@ -1,4 +1,4 @@ -plan(33*(6 + 3) + 3 + 7); +plan(36*(6 + 3) + 3 + 7); sub test_radix($radix,$str,$pos,$flags,$value,$mult,$offset,$desc) { my $result := nqp::radix($radix,$str,$pos,$flags); @@ -30,6 +30,7 @@ test_radix_both(10,"123",0,2, 123,1000,3, "base-10 radix call with no flags" ); test_radix_both(10,"+123",0,2, 123,1000,4, "base-10 radix call with flag 2 and +" ); test_radix_both(10,"-123",0,2, -123,1000,4, "base-10 radix call with flag 2 and -" ); +test_radix_both(10,"−123",0,2, -123,1000,4, "base-10 radix call with flag 2 and −" ); test_radix_both(10,"-10",0,0, 0,1,-1, "no digits consumed when we get - without flag"); test_radix_both(10,"+10",0,0, 0,1,-1, "no digits consumed when we get + without flag"); @@ -37,7 +38,8 @@ test_radix_both(10, "12000", 0, 4, 12, 100, 5, "base-10 radix with flags 4"); test_radix_both(10, "12000", 0, 5, -12, 100, 5, "base-10 radix with flags 4 and 1"); -test_radix_both(10, "-12000", 0, 6, -12, 100, 6, "base-10 radix with flags 4 and 2"); +test_radix_both(10, "-12000", 0, 6, -12, 100, 6, "base-10 radix with flags 4 and 2 with -"); +test_radix_both(10, "−12000", 0, 6, -12, 100, 6, "base-10 radix with flags 4 and 2 with −"); test_radix_both(10,"123",0,2, 123,1000,3, "basic base-10 radix call"); test_radix_both(10,"123",1,2, 23,100,3, "basic base-10 radix call with pos" ); @@ -46,7 +48,8 @@ test_radix_both(15,"1B",0,2, 26,225,2, "base 15 call with upper case" ); test_radix_both(16,"1a",0,2, 26,256,2, "base 16 call with lower case" ); test_radix_both(16,"1B",0,2, 27,256,2, "base 16 call with upper case" ); -test_radix_both(15,"-1B",0,2, -26,225,3, "base 15 call with upper case and negation" ); +test_radix_both(15,"-1B",0,2, -26,225,3, "base 15 call with upper case and negation with -" ); +test_radix_both(15,"−1B",0,2, -26,225,3, "base 15 call with upper case and negation with −" ); test_radix_both(10,"000123",0,2, 123,1000000,6, "base-10 with zeros at the front"); test_radix_both(10,"1_2_3",0,2, 123,1000,5, "base-10 with underscores"); test_radix_both(10,"not_a_number",0,2, 0,1,-1, "no digits consumed"); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nqp-2019.11/tools/lib/NQP/Config/NQP.pm new/nqp-2020.01/tools/lib/NQP/Config/NQP.pm --- old/nqp-2019.11/tools/lib/NQP/Config/NQP.pm 2019-11-26 20:43:39.000000000 +0100 +++ new/nqp-2020.01/tools/lib/NQP/Config/NQP.pm 2020-01-27 20:42:54.000000000 +0100 @@ -1,11 +1,11 @@ -## Please see file perltidy.ERR package NQP::Config::NQP; use v5.10.1; use strict; use warnings; use Cwd; use IPC::Cmd qw<run>; -use NQP::Config qw<slurp read_config_from_command cmp_rev system_or_die run_or_die>; +use NQP::Config qw<slurp read_config_from_command cmp_rev system_or_die + run_or_die>; use base qw<NQP::Config>; @@ -48,7 +48,7 @@ } sub configure_refine_vars { - my $self = shift; + my $self = shift; my $config = $self->{config}; unless ( $self->cfg('prefix') ) { @@ -70,14 +70,15 @@ $config->{nqp_home} = $self->nfp( File::Spec->rel2abs( - $config->{nqp_home} || - File::Spec->catdir( $config->{'prefix'}, 'share', 'nqp' ) + $config->{nqp_home} + || File::Spec->catdir( $config->{'prefix'}, 'share', 'nqp' ) ) ); } sub configure_misc { my $self = shift; + $self->SUPER::configure_misc(@_); my $config = $self->{config}; if ( $self->active_backend('moar') ) { @@ -95,8 +96,8 @@ } sub configure_moar_backend { - my $self = shift; - my $imoar = $self->{impls}{moar}; + my $self = shift; + my $imoar = $self->{impls}{moar}; my $config = $self->{config}; $self->gen_moar; @@ -116,14 +117,17 @@ my $qchar = $config->{quote}; $imoar->{config}{static_nqp_home} = $config->{nqp_home}; $imoar->{config}{static_nqp_home_define} = - '-DSTATIC_NQP_HOME=' - . $qchar . $self->c_escape_string( $imoar->{config}{static_nqp_home} ) . $qchar; + '-DSTATIC_NQP_HOME=' + . $qchar + . $self->c_escape_string( $imoar->{config}{static_nqp_home} ) + . $qchar; } # Strip rpath from ldflags so we can set it differently ourself. $imoar->{config}{ldflags} = $moar_config->{'moar::ldflags'}; $imoar->{config}{ldflags} =~ s/\Q$moar_config->{'moar::ldrpath'}\E ?//; - $imoar->{config}{ldflags} =~ s/\Q$moar_config->{'moar::ldrpath_relocatable'}\E ?//; + $imoar->{config}{ldflags} =~ + s/\Q$moar_config->{'moar::ldrpath_relocatable'}\E ?//; if ( $self->cfg('prefix') ne '/usr' ) { $imoar->{config}{ldflags} .= ' ' . ( @@ -146,7 +150,8 @@ if ( $moar_config->{'moar::os'} eq 'mingw32' ) { $imoar->{config}{mingw_unicode} = '-municode'; } - push @c_runner_libs, sprintf( $moar_config->{'moar::ldusr'}, 'Shlwapi' ); + push @c_runner_libs, + sprintf( $moar_config->{'moar::ldusr'}, 'Shlwapi' ); } $imoar->{config}{c_runner_libs} = join( " ", @c_runner_libs ); $imoar->{config}{moar_lib} = sprintf( @@ -232,6 +237,19 @@ $j_config->{'runner'} = $self->batch_file('nqp'); } +sub configure_jars { + my $self = shift; + + $self->SUPER::configure_jars( + { + asm => [qw<3rdparty asm asm-4.1.jar>], + 'asm-tree' => [qw<3rdparty asm asm-tree-4.1.jar>], + jline => [qw<3rdparty jline jline-1.0.jar>], + jna => [qw<3rdparty jna jna-4.0.0.jar>], + } + ); +} + sub post_active_backends { my $self = shift; @@ -249,12 +267,12 @@ return $moar_config if $moar_config && keys %{$moar_config} > 2; - my $prefix = $self->cfg('prefix'); + my $prefix = $self->cfg('prefix'); my $moar_prefix; my $moar_exe; if ( $self->opt('with-moar') ) { - $moar_exe = File::Spec->rel2abs($self->opt('with-moar')); + $moar_exe = File::Spec->rel2abs( $self->opt('with-moar') ); } else { if ($prefix) { @@ -277,13 +295,16 @@ } my %c; - if ( $self->is_executable($self->nfp($moar_exe)) ) { - %c = read_config_from_command( - '"' . $self->nfp( $moar_exe ) . '"' - . ' --libpath=' . $self->nfp( 'src/vm/moar/stage0' ) . ' ' - . $self->nfp( 'src/vm/moar/stage0/nqp.moarvm' ) - . ' --bootstrap --show-config' ); - %c = map { rindex($_, 'moar::', 0) == 0 ? ($_ => $c{$_}) : () } keys %c; + if ( $self->is_executable( $self->nfp($moar_exe) ) ) { + %c = + read_config_from_command( '"' + . $self->nfp($moar_exe) . '"' + . ' --libpath=' + . $self->nfp('src/vm/moar/stage0') . ' ' + . $self->nfp('src/vm/moar/stage0/nqp.moarvm') + . ' --bootstrap --show-config' ); + %c = map { rindex( $_, 'moar::', 0 ) == 0 ? ( $_ => $c{$_} ) : () } + keys %c; } return $self->backend_config( 'moar', @@ -302,10 +323,11 @@ my $moar_have; my @errors; - my $prefix = $config->{prefix}; - my $gen_moar = $options->{'gen-moar'}; - my $has_gen_moar = defined $gen_moar; - my @opts = @{ $options->{'moar-option'} || [] }; + my $prefix = $config->{prefix}; + my $gen_moar = $options->{'gen-moar'}; + my $force_rebuild = $options->{'force-rebuild'}; + my $has_gen_moar = defined $gen_moar; + my @opts = @{ $options->{'moar-option'} || [] }; push @opts, "--optimize"; push @opts, '--relocatable' if $options->{relocatable}; my $startdir = $config->{base_dir}; @@ -314,6 +336,12 @@ my $moar_exe = $self->moar_config->{moar}; my $moar_version_output = ""; + if ( $force_rebuild && !$has_gen_moar ) { + $self->note( "WARNING", +"Command line option --force-rebuild is ineffective without --gen-moar" + ); + } + if ( $self->is_executable($moar_exe) ) { $moar_version_output = run_or_die( [ $moar_exe, '--version' ] ); @@ -325,37 +353,49 @@ $try_generate = $has_gen_moar; } - my $moar_ok = - $moar_have && cmp_rev( $moar_have, $moar_want, "MoarVM" ) >= 0; - if ($moar_ok) { - $self->msg( - "Found $moar_exe version $moar_have, which is new enough.\n"); - } - elsif ($moar_have) { - push @errors, -"Found $moar_exe version $moar_have, which is too old. Wanted at least $moar_want\n"; - $try_generate = $has_gen_moar unless $options->{'ignore-errors'}; - } - elsif ($moar_version_output - && $moar_version_output =~ /This is MoarVM version/i ) - { - push @errors, - "Found a MoarVM binary but was not able to get its version number.\n" - . "If running `git describe` inside the MoarVM repository does not work,\n" - . "you need to make sure to checkout tags of the repository and run \nConfigure.pl and make install again\n"; - $try_generate = $has_gen_moar; + unless ($force_rebuild) { + my $moar_ok = + $moar_have && cmp_rev( $moar_have, $moar_want, "MoarVM" ) >= 0; + if ($moar_ok) { + $self->msg( + "Found $moar_exe version $moar_have, which is new enough.\n"); + } + elsif ($moar_have) { + push @errors, + "Found $moar_exe version $moar_have, which is too old. " + . "Wanted at least $moar_want\n"; + $try_generate = $has_gen_moar unless $options->{'ignore-errors'}; + } + elsif ($moar_version_output + && $moar_version_output =~ /This is MoarVM version/i ) + { + push @errors, + "Found a MoarVM binary " + . " but was not able to get its version number.\n" + . "If running `git describe` inside the MoarVM repository does not work,\n" + . "you need to make sure to checkout tags of the repository and run \n" + . "Configure.pl and make install again\n"; + $try_generate = $has_gen_moar; + } } if (@errors) { if ($try_generate) { - $self->note("ATTENTION!", $_) foreach @errors; + $self->note( "ATTENTION!", $_ ) foreach @errors; } else { $self->sorry(@errors); } } - if ( $try_generate ) { + if ( $try_generate || ( $has_gen_moar && $force_rebuild ) ) { + + # Don't expect any particular commit in MoarVM/ if the repo is already + # checked out. + my $expected_spec = + -d File::Spec->catdir( $self->cfg('base_dir'), 'MoarVM', '.git' ) + ? undef + : $moar_want; my $moar_repo = $self->git_checkout( 'moar', 'MoarVM', $gen_moar || $moar_want ); @@ -451,7 +491,7 @@ return $self->expand(<<TPL); $text \t\@echo(+++ Generating\t\$\@)@ -\t\@noecho\@\@bpm(\@ucstage\@_GEN_CAT)\@ \@prereqs\@ > \$\@ +\t\$(NOECHO)\@bpm(\@ucstage\@_GEN_CAT)\@ \@prereqs\@ > \$\@ TPL } @@ -465,7 +505,7 @@ return $self->expand(<<TPL); $text \t\@echo(+++ Compiling\t\$\@)@ -\t\@noecho\@\@bpm(STAGE\@prev_stage\@_NQP)\@\@expand(\@setting_path_param\@\@module_path_param\@)\@ --no-regex-lib --target=\@btarget\@ --setting=\@nqp_setting\@ \@bpm(PRECOMP_\@ucstage\@_FLAGS)\@ --output=\$\@ \@prereqs\@ +\t\$(NOECHO)\@bpm(STAGE\@prev_stage\@_NQP)\@\@expand(\@setting_path_param\@\@module_path_param\@)\@ --no-regex-lib --target=\@btarget\@ --setting=\@nqp_setting\@ \@bpm(PRECOMP_\@ucstage\@_FLAGS)\@ --output=\$\@ \@prereqs\@ TPL } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nqp-2019.11/tools/templates/MOAR_REVISION new/nqp-2020.01/tools/templates/MOAR_REVISION --- old/nqp-2019.11/tools/templates/MOAR_REVISION 2019-11-26 20:45:37.000000000 +0100 +++ new/nqp-2020.01/tools/templates/MOAR_REVISION 2020-01-27 20:43:30.000000000 +0100 @@ -1 +1 @@ -2019.11 +2020.01.1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nqp-2019.11/tools/templates/Makefile-backend-common.in new/nqp-2020.01/tools/templates/Makefile-backend-common.in --- old/nqp-2019.11/tools/templates/Makefile-backend-common.in 2019-11-26 20:43:39.000000000 +0100 +++ new/nqp-2020.01/tools/templates/Makefile-backend-common.in 2020-01-27 20:42:54.000000000 +0100 @@ -55,7 +55,7 @@ @backend_prefix@-dirs:: @echo(+++ Preparing @uc(@backend@)@ build directories)@ - @noecho@$(MKPATH)@for_stages( @stage_dir@)@ + $(NOECHO)$(MKPATH)@for_stages( @stage_dir@)@ @backend_prefix@-stage0:: @echo(++++++ BUILDING @uc(@backend@)@ BACKEND)@ @@ -120,21 +120,21 @@ @nfp(@stage_dir@/@bsm(NQP)@)@: @prev_stage_dir@ @nfp(@stage_dir@/@bsm(QAST)@)@ @nfp(@stage_dir@/@bsm(P6QREGEX)@)@ @bpm(SOURCES)@ @echo(+++ Creating stage @stage@ NQP)@ - @noecho@$(PERL5) @shquot(@script(gen-version.pl)@)@ @q($(PREFIX))@ @q($(NQP_HOME))@ @q($(NQP_LIB_DIR))@ > @nfpq(@stage_dir@/nqp-config.nqp)@ - @noecho@@bpm(@ucstage@_GEN_CAT)@ @bpm(NQP_SOURCES)@ @nfpq(@stage_dir@/nqp-config.nqp)@ > @nfpq(@stage_dir@/$(NQP_COMBINED))@ - @noecho@@bpm(@ucprev_stage@_NQP)@ --module-path=@shquot(@stage_dir@)@ --setting-path=@shquot(@stage_dir@)@ \ + $(NOECHO)$(PERL5) @shquot(@script(gen-version.pl)@)@ @q($(PREFIX))@ @q($(NQP_HOME))@ @q($(NQP_LIB_DIR))@ > @nfpq(@stage_dir@/nqp-config.nqp)@ + $(NOECHO@nop())@@bpm(@ucstage@_GEN_CAT)@ @bpm(NQP_SOURCES)@ @nfpq(@stage_dir@/nqp-config.nqp)@ > @nfpq(@stage_dir@/$(NQP_COMBINED))@ + $(NOECHO@nop())@@bpm(@ucprev_stage@_NQP)@ --module-path=@shquot(@stage_dir@)@ --setting-path=@shquot(@stage_dir@)@ \ --setting=NQPCORE --target=@btarget@ --no-regex-lib @bpm(PRECOMP_@ucstage@_FLAGS)@ @bpm(NQP_@ucstage@_FLAGS)@ \ --output=@nfpq(@stage_dir@/@bsm(NQP)@)@ @nfpq(@stage_dir@/$(NQP_COMBINED))@ )@ @bsm(NQP)@: @backend_prefix@-stage2 #@bpm(STAGE2_OUTPUT)@ @echo(+++ Installing @uc(@backend@)@ stage 2 files locally)@ - @noecho@$(CP) @bpm(STAGE2_OUTPUT)@ . + $(NOECHO)$(CP) @bpm(STAGE2_OUTPUT)@ . @bsm(P5QREGEX)@: $(P5QREGEX_SOURCES) @bsm(NQP)@ @bpm(BUILD_RUNNER)@ @echo(+++ Compiling $@)@ - @noecho@@bpm(GEN_CAT)@ stage2 $(P5QREGEX_SOURCES) > @nfpq(@bpm(STAGE2_DIR)@/$(P5QREGEX_COMBINED))@ - @noecho@@bpm(BUILD_RUNNER_BIN)@ --target=@btarget@ --output=@bsm(P5QREGEX)@ \ + $(NOECHO@nop())@@bpm(GEN_CAT)@ stage2 $(P5QREGEX_SOURCES) > @nfpq(@bpm(STAGE2_DIR)@/$(P5QREGEX_COMBINED))@ + $(NOECHO@nop())@@bpm(BUILD_RUNNER_BIN)@ --target=@btarget@ --output=@bsm(P5QREGEX)@ \ @nfpq(@bpm(STAGE2_DIR)@/$(P5QREGEX_COMBINED))@ @bpv(CLEANUPS)@ = \ @@ -148,22 +148,22 @@ @backend_prefix@-clean:: @echo(+++ Cleaning @uc(@backend@)@ backend)@ - @noecho@$(RM_RF) @bpm(CLEANUPS)@ @bpm(CLEANUPS_EXTRA)@ + $(NOECHO)$(RM_RF) @bpm(CLEANUPS)@ @bpm(CLEANUPS_EXTRA)@ @backend_prefix@-install-dirs:: @echo(+++ Creating @uc(@backend@)@ installation directories)@ - @noecho@$(MKPATH) @q($(DESTDIR)$(BIN_DIR))@ - @noecho@$(MKPATH) @q($(DESTDIR)$(NQP_LIB_DIR))@ - @noecho@$(MKPATH) @q($(DESTDIR@nop())@@bsm(NQP_LIB_DIR)@)@ + $(NOECHO)$(MKPATH) @q($(DESTDIR)$(BIN_DIR))@ + $(NOECHO)$(MKPATH) @q($(DESTDIR)$(NQP_LIB_DIR))@ + $(NOECHO)$(MKPATH) @q($(DESTDIR@nop())@@bsm(NQP_LIB_DIR)@)@ @backend_prefix@-install:: @backend_prefix@-all @backend_prefix@-install-dirs @@configure_script@@ @echo(+++ Installing into $(DESTDIR)$(PREFIX))@ - @noecho@$(CP) @bpm(STAGE2_OUTPUT)@ @q($(DESTDIR)$(NQP_LIB_DIR))@ - @noecho@$(CP) @bsm(P5QREGEX)@ @q($(DESTDIR)$(NQP_LIB_DIR))@ + $(NOECHO)$(CP) @bpm(STAGE2_OUTPUT)@ @q($(DESTDIR)$(NQP_LIB_DIR))@ + $(NOECHO)$(CP) @bsm(P5QREGEX)@ @q($(DESTDIR)$(NQP_LIB_DIR))@ @backend_prefix@-bootstrap-files: @bpm(STAGE2_OUTPUT)@ @echo(+++ BOOTSTRAPPING into @bpm(STAGE0_DIR)@)@ - @noecho@$(CP) @bpm(STAGE2_OUTPUT)@ @bpm(STAGE0_DIR)@ + $(NOECHO)$(CP) @bpm(STAGE2_OUTPUT)@ @bpm(STAGE0_DIR)@ ## testing diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nqp-2019.11/tools/templates/Makefile-common.in new/nqp-2020.01/tools/templates/Makefile-common.in --- old/nqp-2019.11/tools/templates/Makefile-common.in 2019-11-26 20:43:39.000000000 +0100 +++ new/nqp-2020.01/tools/templates/Makefile-common.in 2020-01-27 20:42:54.000000000 +0100 @@ -1,5 +1,6 @@ # common definitions used by all backends +@NOECHO_declaration@ COMMON_HLL_SOURCES = \ @nfp(src/HLL/Grammar.nqp)@ \ @nfp(src/HLL/Actions.nqp)@ \ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nqp-2019.11/tools/templates/jvm/Makefile.in new/nqp-2020.01/tools/templates/jvm/Makefile.in --- old/nqp-2019.11/tools/templates/jvm/Makefile.in 2019-11-26 20:43:39.000000000 +0100 +++ new/nqp-2020.01/tools/templates/jvm/Makefile.in 2020-01-27 20:42:54.000000000 +0100 @@ -23,14 +23,14 @@ @nfp(src/vm/jvm/runtime/org/perl6/nqp/sixmodel/reprs/*.java)@ \ @nfp(src/vm/jvm/runtime/org/perl6/nqp/tools/*.java)@ \ -@bsv(RUNTIME)@ = nqp-runtime.@bext@ +@bsv(RUNTIME)@ = @nfp(@bpm(RUNNER_JAR_DIR)@/nqp-runtime.@bext@)@ THIRDPARTY_JARS = $(ASM)@cpsep@$(ASMTREE)@cpsep@$(JLINE)@cpsep@$(JNA) -@bpv(RUNNER_JARS)@ = @nfplq(nqp-runtime.@bext@ $(ASM) $(ASMTREE) $(JLINE) $(JNA))@ +@bpv(RUNNER_JARS)@ = @nfplq($(ASM) $(ASMTREE) $(JLINE) $(JNA))@ @bpv(RUNNER_LIBS)@ = @nfplq(nqp.@bext@)@ @bpv(EVAL_CLIENT)@ = @nfp(tools/jvm/eval-client.pl)@ -@bpv(STAGE0_NQP)@ = $(JAVA) -cp @bpm(STAGE0_DIR)@ -Xbootclasspath/a:@bpm(STAGE0_DIR)@@[email protected]@cpsep@@q($(THIRDPARTY_JARS))@@cpsep@@nfp(@bpm(STAGE0_DIR)@/nqp.jar)@ nqp --bootstrap -@bpv(STAGE1_NQP)@ = $(JAVA) -cp @bpm(STAGE1_DIR)@ -Xbootclasspath/a:@bpm(STAGE1_DIR)@@[email protected]@cpsep@@q($(THIRDPARTY_JARS))@@cpsep@@nfp(@bpm(STAGE1_DIR)@/nqp.jar)@ nqp --bootstrap +@bpv(STAGE0_NQP)@ = $(JAVA) -cp @bpm(STAGE0_DIR)@ -Xbootclasspath/a:@bpm(STAGE0_DIR)@@cpsep@@bsm(RUNTIME)@@cpsep@@q($(THIRDPARTY_JARS))@@cpsep@@nfp(@bpm(STAGE0_DIR)@/nqp.jar)@ nqp --bootstrap +@bpv(STAGE1_NQP)@ = $(JAVA) -cp @bpm(STAGE1_DIR)@ -Xbootclasspath/a:@bpm(STAGE1_DIR)@@cpsep@@bsm(RUNTIME)@@cpsep@@q($(THIRDPARTY_JARS))@@cpsep@@nfp(@bpm(STAGE1_DIR)@/nqp.jar)@ nqp --bootstrap @for_stages(@bpv(@ucstage@_GEN_CAT)@ = @bpm(GEN_CAT)@ @lcstage@ @bpv(NQP_@ucstage@_FLAGS)@ = --javaclass=nqp @@ -54,49 +54,49 @@ @bpm(STAGE0_DIR)@: @bsm(RUNTIME)@ @backend_prefix@-dirs:: - @noecho@$(MKPATH) @q(@bpm(RUNNER_JAR_DIR)@)@ @q(@bpm(RUNNER_LIB_DIR)@)@ + $(NOECHO)$(MKPATH) @q(@bpm(RUNNER_JAR_DIR)@)@ @q(@bpm(RUNNER_LIB_DIR)@)@ @backend_prefix@-install:: @echo(+++ Installing @uc(@backend@)@ specifics)@ - @noecho@$(CP) @q($(ASM))@ @q($(ASMTREE))@ @q($(DESTDIR@nop())@@bsm(NQP_LIB_DIR)@)@ - @noecho@$(CP) @q($(JLINE))@ @q($(JNA))@ @q($(DESTDIR@nop())@@bsm(NQP_LIB_DIR)@)@ - @noecho@$(CP) @q(@bsm(RUNTIME)@)@ @q($(DESTDIR@nop())@@bsm(NQP_LIB_DIR)@)@ - @noecho@$(CP) @q(@bpm(EVAL_CLIENT)@)@ @q($(DESTDIR)$(BIN_DIR))@ - @noecho@$(CHMOD) 0755 @nfpq($(DESTDIR)$(BIN_DIR)/eval-client.pl)@ - @noecho@$(CONFIGURE) --expand=nqp-j --out=@nfpq($(DESTIR)$(PREFIX)/bin/@bpm(BUILD_RUNNER)@)@ \ + $(NOECHO)$(CP) @q($(ASM))@ @q($(ASMTREE))@ @q($(DESTDIR@nop())@@bsm(NQP_LIB_DIR)@)@ + $(NOECHO)$(CP) @q($(JLINE))@ @q($(JNA))@ @q($(DESTDIR@nop())@@bsm(NQP_LIB_DIR)@)@ + $(NOECHO)$(CP) @q(@bsm(RUNTIME)@)@ @q($(DESTDIR@nop())@@bsm(NQP_LIB_DIR)@)@ + $(NOECHO)$(CP) @q(@bpm(EVAL_CLIENT)@)@ @q($(DESTDIR)$(BIN_DIR))@ + $(NOECHO)$(CHMOD) 0755 @nfpq($(DESTDIR)$(BIN_DIR)/eval-client.pl)@ + $(NOECHO)$(CONFIGURE) --expand=nqp-j --out=@nfpq($(DESTIR)$(PREFIX)/bin/@bpm(BUILD_RUNNER)@)@ \ --set-var=ctx_subdir=@shquot(@backend_subdir@)@ \ --set-var=jar_dir=@q($(DESTIR@nop())@@bsm(NQP_LIB_DIR)@)@ \ --set-var=lib_dir=@q($(DESTIR)$(NQP_LIB_DIR))@ \ --set-var=cur_dir=@q()@ - @noecho@$(CHMOD) 755 @nfpq($(DESTIR)$(PREFIX)/bin/@bpm(BUILD_RUNNER)@)@ + $(NOECHO)$(CHMOD) 755 @nfpq($(DESTIR)$(PREFIX)/bin/@bpm(BUILD_RUNNER)@)@ @bsm(RUNTIME)@: $(RUNTIME_JAVAS) @mkquot(@script(gen-jvm-properties.pl)@)@ @echo(+++ Preparing Java runtime)@ - @noecho@$(MKPATH) bin - @noecho@$(JAVAC) --release 9 -cp @q($(THIRDPARTY_JARS))@ -g -d bin -encoding UTF8 $(RUNTIME_JAVAS) - @noecho@$(PERL5) @shquot(@script(gen-jvm-properties.pl)@)@ . @nfpq($(NQP_HOME))@ @q($(THIRDPARTY_JARS))@ > jvmconfig.properties - @noecho@$(PERL5) @shquot(@script(gen-jvm-properties.pl)@)@ @nfpq(@prefix@)@ @nfpq($(NQP_HOME))@ @q($(THIRDPARTY_JARS))@ > @nfpq(bin/jvmconfig.properties)@ - @noecho@$(JAR) cf0 nqp-runtime.jar -C @nfp(bin/)@ . + $(NOECHO)$(MKPATH) bin + $(NOECHO)$(JAVAC) --release 9 -cp @q($(THIRDPARTY_JARS))@ -g -d bin -encoding UTF8 $(RUNTIME_JAVAS) + $(NOECHO)$(PERL5) @shquot(@script(gen-jvm-properties.pl)@)@ . @nfpq($(NQP_HOME))@ @q($(THIRDPARTY_JARS))@ > jvmconfig.properties + $(NOECHO)$(PERL5) @shquot(@script(gen-jvm-properties.pl)@)@ @nfpq(@prefix@)@ @nfpq($(NQP_HOME))@ @q($(THIRDPARTY_JARS))@ > @nfpq(bin/jvmconfig.properties)@ + $(NOECHO)$(JAR) cf0 @bsm(RUNTIME)@ -C @nfp(bin/)@ . @bpm(BUILD_RUNNER)@: @mkquot(@configure_script@)@ @@template(nqp-j)@@ @@template(runner-prelude)@@ @echo(+++ Setting up $@)@ - @noecho@$(CP) @bpm(RUNNER_JARS)@ @q(@bpm(RUNNER_JAR_DIR)@)@ - @noecho@$(CP) @bpm(RUNNER_LIBS)@ @q(@bpm(RUNNER_LIB_DIR)@)@ - @noecho@$(CONFIGURE) --expand=nqp-j --out=@nfpq($(BASE_DIR)/@bpm(BUILD_RUNNER)@)@ \ + $(NOECHO)$(CP) @bpm(RUNNER_JARS)@ @q(@bpm(RUNNER_JAR_DIR)@)@ + $(NOECHO)$(CP) @bpm(RUNNER_LIBS)@ @q(@bpm(RUNNER_LIB_DIR)@)@ + $(NOECHO)$(CONFIGURE) --expand=nqp-j --out=@nfpq($(BASE_DIR)/@bpm(BUILD_RUNNER)@)@ \ --set-var=ctx_subdir=@q(@backend_subdir@)@ \ --set-var=jar_dir=@q(@bpm(RUNNER_JAR_DIR)@)@ \ --set-var=lib_dir=@q(@bpm(RUNNER_LIB_DIR)@)@ \ --set-var=cur_dir=@q(.:)@ - @noecho@$(CHMOD) 755 @q(@bpm(BUILD_RUNNER)@)@ + $(NOECHO)$(CHMOD) 755 @q(@bpm(BUILD_RUNNER)@)@ @backend_prefix@-runner-default: @backend_prefix@-all @echo(+++ Setting up default runner)@ - @noecho@$(CP) @q(@bpm(BUILD_RUNNER)@)@ @bpm(NQP)@ - @noecho@$(CHMOD) 755 @bpm(NQP)@ + $(NOECHO)$(CP) @q(@bpm(BUILD_RUNNER)@)@ @bpm(NQP)@ + $(NOECHO)$(CHMOD) 755 @bpm(NQP)@ @backend_prefix@-runner-default-install: @backend_prefix@-runner-default @backend_prefix@-install @echo(+++ Installing default runner)@ - @noecho@$(CP) @nfpq($(DESTDIR)$(BIN_DIR)/@bpm(BUILD_RUNNER)@)@ @nfpq($(DESTDIR)$(BIN_DIR)/@bpm(NQP)@)@ - @noecho@$(CHMOD) 755 @nfpq($(DESTDIR)$(BIN_DIR)/@bpm(NQP)@)@ + $(NOECHO)$(CP) @nfpq($(DESTDIR)$(BIN_DIR)/@bpm(BUILD_RUNNER)@)@ @nfpq($(DESTDIR)$(BIN_DIR)/@bpm(NQP)@)@ + $(NOECHO)$(CHMOD) 755 @nfpq($(DESTDIR)$(BIN_DIR)/@bpm(NQP)@)@ # vim: ft=make noexpandtab ts=4 sw=4 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nqp-2019.11/tools/templates/moar/Makefile.in new/nqp-2020.01/tools/templates/moar/Makefile.in --- old/nqp-2019.11/tools/templates/moar/Makefile.in 2019-11-26 20:43:39.000000000 +0100 +++ new/nqp-2020.01/tools/templates/moar/Makefile.in 2020-01-27 20:42:54.000000000 +0100 @@ -38,13 +38,13 @@ @backend_prefix@-all:: @bpm(INST_NQP_M)@ @bpm(INST_NQP)@ @backend_prefix@-install-dirs:: - @noecho@$(MKPATH) @nfpq($(DESTDIR)$(NQP_LIB_DIR)/profiler)@ + $(NOECHO)$(MKPATH) @nfpq($(DESTDIR)$(NQP_LIB_DIR)/profiler)@ @backend_prefix@-install:: @echo(+++ Installing @uc(@backend@)@ specifics)@ - @noecho@$(CP) @bsm(ASTOPS)@ @q($(DESTDIR)$(NQP_LIB_DIR))@ - @noecho@$(CP) @nfp(src/vm/moar/profiler/template.html)@ @nfpq($(DESTDIR)$(NQP_LIB_DIR)/profiler/template.html)@ - @noecho@$(CP) @bpm(INST_NQP_M)@ @nfpq($(DESTDIR)$(BIN_DIR)/@bpm(NQP_M)@)@ + $(NOECHO)$(CP) @bsm(ASTOPS)@ @q($(DESTDIR)$(NQP_LIB_DIR))@ + $(NOECHO)$(CP) @nfp(src/vm/moar/profiler/template.html)@ @nfpq($(DESTDIR)$(NQP_LIB_DIR)/profiler/template.html)@ + $(NOECHO)$(CP) @bpm(INST_NQP_M)@ @nfpq($(DESTDIR)$(BIN_DIR)/@bpm(NQP_M)@)@ @expand(@m_install@)@ # FIXME: @@ -68,42 +68,42 @@ @bpm(INST_NQP)@: @nfp(src/vm/moar/runner/main.c)@ @echo(+++ Compiling $@)@ - @noecho@$(RM_F) $@ + $(NOECHO)$(RM_F) $@ # Using only the pkgconfig moar includes does not work, because moar.h assumes all the specific includes below. - @noecho@@bpm(CC_INST_NQP)@ @if(relocatable -DSTATIC_EXEC_PATH=@q(@c_escape(@nfp(@prefix@/bin/@bpm(NQP)@)@)@)@)@ @moar::ccout@inst-nqp@moar::obj@ @nfp(src/vm/moar/runner/main.c)@ - @noecho@@bpm(LD_INST_NQP)@ @moar::ldout@$@ inst-nqp@moar::obj@ @bpm(LD_INST_NQP_POST)@ + $(NOECHO)@bpm(CC_INST_NQP)@ @if(relocatable -DSTATIC_EXEC_PATH=@q(@c_escape(@nfp(@prefix@/bin/@bpm(NQP)@)@)@)@)@ @moar::ccout@inst-nqp@moar::obj@ @nfp(src/vm/moar/runner/main.c)@ + $(NOECHO)@bpm(LD_INST_NQP)@ @moar::ldout@$@ inst-nqp@moar::obj@ @bpm(LD_INST_NQP_POST)@ @bpm(INST_NQP_M)@: @nfp(src/vm/moar/runner/main.c)@ @echo(+++ Compiling $@)@ - @noecho@$(RM_F) $@ + $(NOECHO)$(RM_F) $@ # Using only the pkgconfig moar includes does not work, because moar.h assumes all the specific includes below. - @noecho@@bpm(CC_INST_NQP)@ @if(relocatable -DSTATIC_EXEC_PATH=@q(@c_escape(@nfp(@prefix@/bin/@bpm(NQP_M)@)@)@)@)@ @moar::ccout@inst-nqp-m@moar::obj@ @nfp(src/vm/moar/runner/main.c)@ - @noecho@@bpm(LD_INST_NQP)@ @moar::ldout@$@ inst-nqp-m@moar::obj@ @bpm(LD_INST_NQP_POST)@ + $(NOECHO)@bpm(CC_INST_NQP)@ @if(relocatable -DSTATIC_EXEC_PATH=@q(@c_escape(@nfp(@prefix@/bin/@bpm(NQP_M)@)@)@)@)@ @moar::ccout@inst-nqp-m@moar::obj@ @nfp(src/vm/moar/runner/main.c)@ + $(NOECHO)@bpm(LD_INST_NQP)@ @moar::ldout@$@ inst-nqp-m@moar::obj@ @bpm(LD_INST_NQP_POST)@ @bpm(BUILD_RUNNER)@: @@configure_script@@ @@template(@platform@/nqp-m-build.c)@@ @echo(+++ Setting up $@)@ - @noecho@$(RM_F) @q(@bpm(BUILD_RUNNER)@)@ - @noecho@$(CONFIGURE) --expand @@template(@platform@/nqp-m-build.c)@@ --out nqp-m.c \ + $(NOECHO)$(RM_F) @q(@bpm(BUILD_RUNNER)@)@ + $(NOECHO)$(CONFIGURE) --expand @@template(@platform@/nqp-m-build.c)@@ --out nqp-m.c \ --set-var=MOAR=@shquot(@nfp(@moar@)@)@ \ --set-var=base_dir=@shquot(@nfp($(BASE_DIR))@)@ \ --set-var=exec_name=@shquot(@nfp($(BASE_DIR)/@bpm(BUILD_RUNNER)@)@)@ \ --set-var=mbc=@bsm(NQP)@ - @noecho@@bpm(CC_BUILD_RUNNER)@ @moar::ccout@nqp-m@moar::obj@ nqp-m.c - @noecho@@bpm(LD_BUILD_RUNNER)@ @moar::ldout@$@ nqp-m@moar::obj@ + $(NOECHO)@bpm(CC_BUILD_RUNNER)@ @moar::ccout@nqp-m@moar::obj@ nqp-m.c + $(NOECHO)@bpm(LD_BUILD_RUNNER)@ @moar::ldout@$@ nqp-m@moar::obj@ @backend_prefix@-runner-default: @backend_prefix@-all @@configure_script@@ @@template(@platform@/nqp-m-build.c)@@ @echo(+++ Compiling @uc(@backend@)@ default runner)@ - @noecho@$(RM_F) @q(@bpm(NQP)@)@ - @noecho@$(CONFIGURE) --expand @@template(@platform@/nqp-m-build.c)@@ --out nqp.c \ + $(NOECHO)$(RM_F) @q(@bpm(NQP)@)@ + $(NOECHO)$(CONFIGURE) --expand @@template(@platform@/nqp-m-build.c)@@ --out nqp.c \ --set-var=MOAR=@shquot(@nfp(@moar@)@)@ \ --set-var=base_dir=@shquot(@nfp($(BASE_DIR))@)@ \ --set-var=exec_name=@shquot(@nfp($(BASE_DIR)/@bpm(NQP)@)@)@ \ --set-var=mbc=@bsm(NQP)@ - @noecho@@bpm(CC_BUILD_RUNNER)@ @moar::ccout@nqp@moar::obj@ nqp.c - @noecho@@bpm(LD_BUILD_RUNNER)@ @moar::ldout@@bpm(NQP)@ nqp-m@moar::obj@ + $(NOECHO)@bpm(CC_BUILD_RUNNER)@ @moar::ccout@nqp@moar::obj@ nqp.c + $(NOECHO)@bpm(LD_BUILD_RUNNER)@ @moar::ldout@@bpm(NQP)@ nqp-m@moar::obj@ @backend_prefix@-runner-default-install: @backend_prefix@-runner-default @backend_prefix@-install @echo(+++ Installing default runner)@ - @noecho@$(CP) @bpm(INST_NQP)@ @nfpq($(DESTDIR)$(BIN_DIR)/@bpm(NQP)@)@ + $(NOECHO)$(CP) @bpm(INST_NQP)@ @nfpq($(DESTDIR)$(BIN_DIR)/@bpm(NQP)@)@ # vim: ft=make noexpandtab ts=4 sw=4
