Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package nqp for openSUSE:Factory checked in at 2021-07-25 20:09:18 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/nqp (Old) and /work/SRC/openSUSE:Factory/.nqp.new.1899 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "nqp" Sun Jul 25 20:09:18 2021 rev:38 rq:908138 version:2021.07 Changes: -------- --- /work/SRC/openSUSE:Factory/nqp/nqp.changes 2021-07-10 22:55:21.191364609 +0200 +++ /work/SRC/openSUSE:Factory/.nqp.new.1899/nqp.changes 2021-07-25 20:09:28.119429955 +0200 @@ -1,0 +2,8 @@ +Sat Jul 24 21:29:09 CEST 2021 - n...@detonation.org + +- update to version 2021.07 + * Implement support for moar::hllincludes config variable + * Fix reproducible build regression + * Wrap QAST::Regex from qbuildsub in QAST::Stmts + +------------------------------------------------------------------- Old: ---- nqp-2021.06.tar.gz New: ---- nqp-2021.07.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ nqp.spec ++++++ --- /var/tmp/diff_new_pack.24gg4V/_old 2021-07-25 20:09:28.671429340 +0200 +++ /var/tmp/diff_new_pack.24gg4V/_new 2021-07-25 20:09:28.675429336 +0200 @@ -17,15 +17,15 @@ Name: nqp -Version: 2021.06 +Version: 2021.07 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 >= 2021.06 -Requires: moarvm >= 2021.06 +BuildRequires: moarvm-devel >= 2021.07 +Requires: moarvm >= 2021.07 BuildRoot: %{_tmppath}/%{name}-%{version}-build %description ++++++ nqp-2021.06.tar.gz -> nqp-2021.07.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nqp-2021.06/3rdparty/nqp-configure/doc/Macros.md new/nqp-2021.07/3rdparty/nqp-configure/doc/Macros.md --- old/nqp-2021.06/3rdparty/nqp-configure/doc/Macros.md 2021-06-19 19:01:21.000000000 +0200 +++ new/nqp-2021.07/3rdparty/nqp-configure/doc/Macros.md 2021-07-24 17:08:24.000000000 +0200 @@ -265,6 +265,75 @@ I.e. for `@envvar(VAR)@` it will generate `$VAR` on \*nix and `%VAR%` on DOS-derivatives (Windows, OS/2). +### for(varname text) + +Iterates over space-separated list of items in a configuration variable +`varname`. For each item in the list a new context is set which defines +`@_@` and `@_item_@` variables with the item value. Both variables are just +each other alises. + +`varname` and `text` parameters are expanded. `varname` is expanded in the outer +context of `for`. `text` is expanded in the context of `for` macro itself. + +For example, if a variable `mylist` is set to "foo bar baz": + +``` +@for(mylist +# @_@ +)@ +``` + +Then the outcome of the above will be: + +``` +# foo +# bar +# baz +``` + +Also, if a variable `indirect` is set to _"mylist"_ then the following example +will expand to the same: + +``` +@for(@indirect@ +# @_@ +)@ +``` + +Due to `varname` parameter expanding in the outer context of the macro, then +if variable `var_list` is set to something like _"var1 var2 var3"_ then we can +nest two `for` macros in the following way: + +``` +@for(var_list +## @_@ +@for(@_@ +# @_@ +)@)@ +``` + +What happens here is the internal `for` will consequently iterate over all three +`varN` variables. Say, if we have them set, correspondingly, to + +- 1 2 +- a b +- I II + +then something like the following will be eventually found in the expanded +output: + +``` +## var1 +# 1 +# 2 +## var2 +# a +# b +## var3 +# I +# II +``` + ### for_backends(text) Iterates through all active backends (i.e. defined with `--backends` command @@ -420,17 +489,22 @@ Similar to `include`, but doesn't wrap the output into begin/end comments. -### insert_filelist(template) +### insert_list(template) -Inserts a list of files from a file found in `@templates_dir@` (context subdir -is respected). The file is expanded first and then treated as a list of files. -The list is considered to be whitespace-sperated (including newlines). Each file -name in the list will be normalized (i.e. passed through `nfp`) and the -result will be formatted for use in a Makefile: +Inserts a list of items from a file found in `@templates_dir@` (context subdir +is respected). The file is expanded first and then the result is split into +single items by newlines. In other words, each line is considered an item. +Empty ones are thrown away. The items are than assembled back according to the +following rules: -* one file per line, newlines escaped with `\` +* each item placed into a separate line and followed by a backslash * all lines, except the first one, indented with four spaces (unless - configuration variable `filelist_indent` specifies another amount) + configuration variable `list_indent` specifies another amount) + +### insert_filelist(template) + +Similar to `insert_list` macro but items are considered as path elements and +normalized with `nfp`. ### configure_opts() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nqp-2021.06/3rdparty/nqp-configure/lib/NQP/Config.pm new/nqp-2021.07/3rdparty/nqp-configure/lib/NQP/Config.pm --- old/nqp-2021.06/3rdparty/nqp-configure/lib/NQP/Config.pm 2021-06-19 19:01:21.000000000 +0200 +++ new/nqp-2021.07/3rdparty/nqp-configure/lib/NQP/Config.pm 2021-07-24 17:08:24.000000000 +0200 @@ -120,7 +120,8 @@ $config->{lang} = $lang; $config->{lclang} = lc $lang; - # Num of spaces to indent filelists in a makefile + # Num of spaces to indent lists in the Makefile + $config->{list_indent} = $config->{filelist_indent} = 4; $self->{backend_prefix} = { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nqp-2021.06/3rdparty/nqp-configure/lib/NQP/Macros.pm new/nqp-2021.07/3rdparty/nqp-configure/lib/NQP/Macros.pm --- old/nqp-2021.06/3rdparty/nqp-configure/lib/NQP/Macros.pm 2021-06-19 19:01:21.000000000 +0200 +++ new/nqp-2021.07/3rdparty/nqp-configure/lib/NQP/Macros.pm 2021-07-24 17:08:24.000000000 +0200 @@ -411,6 +411,21 @@ return $text; } +sub insert_list { + my $self = shift; + my $file = shift; + my %params = @_; + my $cfg = $self->{config_obj}; + my $indent = " " x ( $cfg->{config}{list_indent} || 4 ); + my $text = $self->_expand( NQP::Config::slurp($file) ); + my @list = grep { length } split /\n+/s, $text; + if ($params{cb}) { + @list = map { $params{cb}->($_) } @list; + } + $text = join " \\\n$indent", @list; + return $text; +} + sub not_in_context { my $self = shift; my $cfg = $self->{config_obj}; @@ -577,6 +592,27 @@ return $out; } +sub _m_for { + my $self = shift; + my ($var, $text) = split " ", shift, 2; + my $cfg = $self->{config_obj}; + + my $var_text = $cfg->cfg( $self->_expand($var) ); + + my $out = ""; + + foreach my $item (split " ", $var_text) { + # @_@ + my $s = $cfg->push_config( + '_' => $item, + '_item_' => $item, + ); + $out .= $self->_expand($text); + } + + return $out; +} + # expand(text) # Simply expands the text. Could be useful when: # @expand(@!nfp(@build_dir@/@macro(...)@)@)@ @@ -661,19 +697,26 @@ return $self->{config_obj}->fixup_makefile($text); } +# insert_list(filename) +# Inserts a list from file filename. File content is expanded first, then split +# by newlines into single items. Empty lines are thrown away. Each items in the +# list will be indented by @list_indent@ spaces except for the first one. +sub _m_insert_list { + my $self = shift; + my $cfg = $self->{config_obj}; + my $file = $cfg->template_file_path( shift, required => 1 ); + return $self->insert_list($file); +} + # insert_filelist(filename) -# Inserts a list of files defined in file filename. File content is expanded. -# All file names in the list will be indented by 4 spaces except for the first -# one. +# Similar to the insert_list macro but each item is nfp-normalized sub _m_insert_filelist { my $self = shift; my $cfg = $self->{config_obj}; - my $indent = " " x ( $cfg->{config}{filelist_indent} || 4 ); my $file = $cfg->template_file_path( shift, required => 1 ); - my $text = $self->_expand( NQP::Config::slurp($file) ); - my @flist = map { $cfg->nfp($_) } grep { $_ } split /\s+/s, $text; - $text = join " \\\n$indent", @flist; - return $text; + return $self->insert_list( + $file, + cb => sub { $cfg->nfp(shift) }); } # sp_escape(a string) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nqp-2021.06/3rdparty/nqp-configure/t/20-macros.t new/nqp-2021.07/3rdparty/nqp-configure/t/20-macros.t --- old/nqp-2021.06/3rdparty/nqp-configure/t/20-macros.t 2021-06-19 19:01:21.000000000 +0200 +++ new/nqp-2021.07/3rdparty/nqp-configure/t/20-macros.t 2021-07-24 17:08:24.000000000 +0200 @@ -7,7 +7,7 @@ use Test::More; use v5.10; -plan tests => 21; +plan tests => 22; nqp_config->configure_paths; my $slash = nqp_config->cfg('slash'); @@ -83,4 +83,27 @@ "A \tplatform \$(DEPENDENT)VAR/aa ", "nested macros tightly following each other"; +my $s = nqp_config->push_config( + var_list => 'var1 var2 var3', + var1 => "1 2", + var2 => "a b", + var3 => "I II", +); + + +expands q<@for(var_list +## @_@ +@for(@_@ +# @_item_@ +)@)@>, q<## var1 +# 1 +# 2 +## var2 +# a +# b +## var3 +# I +# II +>, "nested for macros"; + done_testing; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nqp-2021.06/MANIFEST new/nqp-2021.07/MANIFEST --- old/nqp-2021.06/MANIFEST 2021-06-19 19:03:13.000000000 +0200 +++ new/nqp-2021.07/MANIFEST 2021-07-24 17:11:28.000000000 +0200 @@ -664,6 +664,7 @@ tools/templates/jvm/nqp-j.windows tools/templates/jvm/qast_sources tools/templates/moar/Makefile.in +tools/templates/moar/moar_includes tools/templates/moar/qast_sources tools/templates/unix/nqp-m-build.c tools/templates/windows/nqp-m-build.c diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nqp-2021.06/VERSION new/nqp-2021.07/VERSION --- old/nqp-2021.06/VERSION 2021-06-19 19:01:04.000000000 +0200 +++ new/nqp-2021.07/VERSION 2021-07-24 17:07:56.000000000 +0200 @@ -1 +1 @@ -2021.06 +2021.07 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nqp-2021.06/src/QRegex/P6Regex/Actions.nqp new/nqp-2021.07/src/QRegex/P6Regex/Actions.nqp --- old/nqp-2021.06/src/QRegex/P6Regex/Actions.nqp 2021-06-19 19:00:51.000000000 +0200 +++ new/nqp-2021.07/src/QRegex/P6Regex/Actions.nqp 2021-07-24 17:07:37.000000000 +0200 @@ -7,7 +7,7 @@ :compilation_mode(0), :pre_deserialize($*W.load_dependency_tasks()), :post_deserialize($*W.fixup_tasks()), - self.qbuildsub($<nibbler>.ast, :anon(1), :addself(1)) + self.qbuildsub($<nibbler>.ast, :node($/), :anon(1), :addself(1)) ); } @@ -215,7 +215,7 @@ } method metachar:sym<( )>($/) { - my $sub_ast := QAST::NodeList.new(self.qbuildsub($<nibbler>.ast, :anon(1), :addself(1))); + my $sub_ast := QAST::NodeList.new(self.qbuildsub($<nibbler>.ast, :node($/), :anon(1), :addself(1))); my $ast := QAST::Regex.new( $sub_ast, $<nibbler>.ast, :rxtype('subrule'), :subtype('capture'), :node($/) ); make $ast; @@ -605,15 +605,15 @@ my int $litlen := self.offset_ast($<nibbler>.ast); if $litlen >= 0 { $qast[0][0].value('before'); - $qast[0].push(self.qbuildsub($<nibbler>.ast, :anon(1), :addself(1))); + $qast[0].push(self.qbuildsub($<nibbler>.ast, :node($/), :anon(1), :addself(1))); $qast[0].push(QAST::IVal.new( :value($litlen) )); # optional offset to before } else { - $qast[0].push(self.qbuildsub(self.flip_ast($<nibbler>.ast), :anon(1), :addself(1))); + $qast[0].push(self.qbuildsub(self.flip_ast($<nibbler>.ast), :node($/), :anon(1), :addself(1))); } } else { - $qast[0].push(self.qbuildsub($<nibbler>.ast, :anon(1), :addself(1))); + $qast[0].push(self.qbuildsub($<nibbler>.ast, :node($/), :anon(1), :addself(1))); } } } @@ -831,7 +831,7 @@ return $qast } - method qbuildsub($qast, $block = QAST::Block.new(), :$anon, :$addself, *%rest) { + method qbuildsub($qast, $block = QAST::Block.new(), :$node, :$anon, :$addself, *%rest) { my $*LANG := $qast.node; my $code_obj := nqp::existskey(%rest, 'code_obj') ?? %rest<code_obj> @@ -879,7 +879,7 @@ if %*RX<r> { $qast[2].backtrack('r'); } - $block.push($qast); + $block.push(QAST::Stmts.new($qast, :$node)); self.set_cursor_type($qast); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nqp-2021.06/src/core/NQPRoutine.nqp new/nqp-2021.07/src/core/NQPRoutine.nqp --- old/nqp-2021.06/src/core/NQPRoutine.nqp 2021-06-19 19:00:51.000000000 +0200 +++ new/nqp-2021.07/src/core/NQPRoutine.nqp 2021-07-24 17:07:37.000000000 +0200 @@ -399,10 +399,9 @@ my str $onlyname := ''; my int $quant-list-captures := 0; my int $quant-hash-captures := 0; - for %capnames { - my $name := nqp::iterkey_s($_); + for sorted_keys(%capnames) -> $name { if $name ne '' { - my $count := nqp::iterval($_); + my $count := %capnames{$name}; if nqp::ord($name) != 36 && nqp::ord($name) < 58 { nqp::bindpos_i(@!pos-capture-counts, +$name, $count); $quant-list-captures++ if $count >= 2; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nqp-2021.06/tools/templates/MOAR_REVISION new/nqp-2021.07/tools/templates/MOAR_REVISION --- old/nqp-2021.06/tools/templates/MOAR_REVISION 2021-06-19 19:01:04.000000000 +0200 +++ new/nqp-2021.07/tools/templates/MOAR_REVISION 2021-07-24 17:07:56.000000000 +0200 @@ -1 +1 @@ -2021.06 +2021.07 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nqp-2021.06/tools/templates/Makefile-backend-common.in new/nqp-2021.07/tools/templates/Makefile-backend-common.in --- old/nqp-2021.06/tools/templates/Makefile-backend-common.in 2021-06-19 19:00:51.000000000 +0200 +++ new/nqp-2021.07/tools/templates/Makefile-backend-common.in 2021-07-24 17:07:37.000000000 +0200 @@ -188,4 +188,4 @@ @backend_prefix@-qregex-test-loud: @bpm(BUILD_RUNNER)@ $(PROVE) -r -v --exec @nfpq(@bpm(BUILD_RUNNER)@)@ @nfp(t/qregex)@ -# vim: ft=make tw=4 sw=4 noexpandtab +# vim: ft=make ts=4 sw=4 noexpandtab diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nqp-2021.06/tools/templates/moar/Makefile.in new/nqp-2021.07/tools/templates/moar/Makefile.in --- old/nqp-2021.06/tools/templates/moar/Makefile.in 2021-06-19 19:00:51.000000000 +0200 +++ new/nqp-2021.07/tools/templates/moar/Makefile.in 2021-07-24 17:07:37.000000000 +0200 @@ -20,13 +20,7 @@ @bpm(INST_NQP)@ @bpv(MOAR_INC_PATHS)@ = \ - @moar::cincludes@ \ - @moar::ccinc@@nfpq(@moar::prefix@/include)@ \ - @moar::ccinc@@nfpq(@moar::prefix@/include/moar)@ \ - @moar::ccinc@@nfpq(@moar::prefix@/include/libatomic_ops)@ \ - @moar::ccinc@@nfpq(@moar::prefix@/include/dyncall)@ \ - @moar::ccinc@@nfpq(@moar::prefix@/include/libtommath)@ \ - @moar::ccinc@@nfpq(@moar::prefix@/include/libuv)@ + @insert_list(moar_includes)@ @for_stages(@bpv(@ucstage@_GEN_CAT)@ = @bpm(GEN_CAT)@ @lcstage@ )@ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nqp-2021.06/tools/templates/moar/moar_includes new/nqp-2021.07/tools/templates/moar/moar_includes --- old/nqp-2021.06/tools/templates/moar/moar_includes 1970-01-01 01:00:00.000000000 +0100 +++ new/nqp-2021.07/tools/templates/moar/moar_includes 2021-07-24 17:07:37.000000000 +0200 @@ -0,0 +1,5 @@ +@moar::cincludes@ +@moar::ccinc@@nfpq(@moar::prefix@/include)@ +@for(moar::hllincludes +@moar::ccinc@@nfpq(@moar::prefix@/include/@_@)@ +)@