Re: Smoke [blead] v5.26.0-1591-g56e48c1076 FAIL(XM) os/390 25.00 (2964/)

2017-12-11 Thread Yaroslav Kuzmin
Log available at 
https://drive.google.com/file/d/1jGDVWAw-L_ZBZHzfupDKy5uBNRKI9Dm7

--Yaroslav

В Пн., 11/12/2017 в 16:51 +, Dave Mitchell пишет:

On Mon, Dec 11, 2017 at 12:52:35PM +, Yaroslav Kuzmin wrote:



Log available at 
https://drive.google.com/file/d/1BwOR2pbtYRTJ4TqWMh33FtD9PZahf1HM



Unfortunately that run didn't trigger the failure code which has heavy
instrumentation attached. It turns out that there are 5 places in the test
script that do an eval and might fail. The attached davem2 script
instruments all 5 evals.

I would be grateful if you could run it.




Rocket Software, Inc. and subsidiaries ■ 77 Fourth Avenue, Waltham MA 02451 ■ 
Main Office Toll Free Number: +1 877.328.2932
Contact Customer Support: 
https://my.rocketsoftware.com/RocketCommunity/RCEmailSupport
Unsubscribe from Marketing Messages/Manage Your Subscription Preferences - 
http://www.rocketsoftware.com/manage-your-email-preferences
Privacy Policy - http://www.rocketsoftware.com/company/legal/privacy-policy


This communication and any attachments may contain confidential information of 
Rocket Software, Inc. All unauthorized use, disclosure or distribution is 
prohibited. If you are not the intended recipient, please notify Rocket 
Software immediately and destroy all copies of this communication. Thank you.


Re: Smoke [blead] v5.26.0-1591-g56e48c1076 FAIL(XM) os/390 25.00 (2964/)

2017-12-11 Thread Karl Williamson

On 12/11/2017 09:51 AM, Dave Mitchell wrote:

On Mon, Dec 11, 2017 at 12:52:35PM +, Yaroslav Kuzmin wrote:


Log availabel at 
https://drive.google.com/file/d/1BwOR2pbtYRTJ4TqWMh33FtD9PZahf1HM


Unfortunately that run didn't trigger the failure code which has heavy
instrumentation attached. It turns out that there are 5 places in the test
script that do an eval and might fail. The attached davem2 script
instruments all 5 evals.

I would be grateful if you could run it.



It is likely that the reason the failure code was not triggered this 
time is that it was changed somewhat by the addition of the 
instrumentation code.  My guess, without knowing how anything works 
here, is that the mention of the variables being debugged causes them to 
not be optimized away.


Re: Smoke [blead] v5.26.0-1591-g56e48c1076 FAIL(XM) os/390 25.00 (2964/)

2017-12-11 Thread Dave Mitchell
On Mon, Dec 11, 2017 at 12:52:35PM +, Yaroslav Kuzmin wrote:
> 
> Log availabel at 
> https://drive.google.com/file/d/1BwOR2pbtYRTJ4TqWMh33FtD9PZahf1HM

Unfortunately that run didn't trigger the failure code which has heavy
instrumentation attached. It turns out that there are 5 places in the test
script that do an eval and might fail. The attached davem2 script
instruments all 5 evals.

I would be grateful if you could run it.

-- 
I thought I was wrong once, but I was mistaken.
#!perl -w

BEGIN {
require 'loc_tools.pl';   # Contains locales_enabled() and
  # find_utf8_ctype_locale()
}

use strict;
use Test::More;
use Config;
use Devel::Peek;

use XS::APItest;

# do $_[0] = $_[1]: avoids multiconcat optimising away an assignment
sub set_code {  $_[0] = $_[1]; }

$::TEST_CHUNK = 0;

my $tab = " " x 4;  # Indent subsidiary tests this much

use Unicode::UCD qw(search_invlist prop_invmap prop_invlist);
my ($charname_list, $charname_map, $format, $default) = prop_invmap("Name 
Alias");

sub get_charname($) {
my $cp = shift;

# If there is a an abbreviation for the code point name, use it
my $name_index = search_invlist(\@{$charname_list}, $cp);
if (defined $name_index) {
my $synonyms = $charname_map->[$name_index];
if (ref $synonyms) {
my $pat = qr/: abbreviation/;
my @abbreviations = grep { $_ =~ $pat } @$synonyms;
if (@abbreviations) {
return $abbreviations[0] =~ s/$pat//r;
}
}
}

# Otherwise, use the full name
use charnames ();
return charnames::viacode($cp) // "No name";
}

sub truth($) {  # Converts values so is() works
return (shift) ? 1 : 0;
}

my $base_locale;
my $utf8_locale;
if(locales_enabled('LC_ALL')) {
require POSIX;
$base_locale = POSIX::setlocale( ::LC_ALL, "C");
if (defined $base_locale && $base_locale eq 'C') {
use locale; # make \w work right in non-ASCII lands

# Some locale implementations don't have the 128-255 characters all
# mean nothing.  Skip the locale tests in that situation
for my $u (128 .. 255) {
if (chr(utf8::unicode_to_native($u)) =~ /[[:print:]]/) {
undef $base_locale;
last;
}
}

$utf8_locale = find_utf8_ctype_locale() if $base_locale;
}
}

sub get_display_locale_or_skip($$) {

# Helper function intimately tied to its callers.  It knows the loop
# iterates with a locale of "", meaning don't use locale; $base_locale
# meaning to use a non-UTF-8 locale; and $utf8_locale.
#
# It checks to see if the current test should be skipped or executed,
# returning an empty list for the former, and for the latter:
#   ( 'locale display name',
# bool of is this a UTF-8 locale )
#
# The display name is the empty string if not using locale.  Functions
# with _LC in their name are skipped unless in locale, and functions
# without _LC are executed only outside locale.

my ($locale, $suffix) = @_;

# The test should be skipped if the input is for a non-existent locale
return unless defined $locale;

# Here the input is defined, either a locale name or "".  If the test is
# for not using locales, we want to do the test for non-LC functions,
# and skip it for LC ones.
if ($locale eq "") {
return ("", 0) if $suffix !~ /LC/;
return;
}

# Here the input is for a real locale.  We don't test the non-LC functions
# for locales.
return if $suffix !~ /LC/;

# Here is for a LC function and a real locale.  The base locale is not
# UTF-8.
return (" ($locale locale)", 0) if $locale eq $base_locale;

# The only other possibility is that we have a UTF-8 locale
return (" ($locale)", 1);
}

sub try_malforming($$$)
{
# Determines if the tests for malformed UTF-8 should be done.  When done,
# the .xs code creates malformations by pretending the length is shorter
# than it actually is.  Some things can't be malformed, and sometimes this
# test knows that the current code doesn't look for a malformation under
# various circumstances.

my ($u, $function, $using_locale) = @_;
# $u is unicode code point;

# Single bytes can't be malformed
return 0 if $u < ((ord "A" == 65) ? 128 : 160);

# ASCII doesn't need to ever look beyond the first byte.
return 0 if $function eq "ASCII";

# Nor, on EBCDIC systems, does CNTRL
return 0 if ord "A" != 65 && $function eq "CNTRL";

# No controls above 255, so the code doesn't look at those
return 0 if $u > 255 && $function eq "CNTRL";

# No non-ASCII digits below 256, except if using locales.
return 0 if $u < 256 && ! $using_locale && $function =~ /X?DIGIT/;

return 1;
}

my %properties = (
   # name => 

Re: Smoke [blead] v5.26.0-1591-g56e48c1076 FAIL(XM) os/390 25.00 (2964/)

2017-12-11 Thread Yaroslav Kuzmin

Log availabel at 
https://drive.google.com/file/d/1BwOR2pbtYRTJ4TqWMh33FtD9PZahf1HM

--Yaroslav

В Чт., 07/12/2017 в 21:54 -0700, Karl Williamson пишет:

On 12/06/2017 04:21 AM, Yaroslav Kuzmin wrote:


В Пн., 04/12/2017 в 22:47 -0700, Karl Williamson пишет:


On 12/04/2017 10:03 PM, Yaroslav Kuzmin wrote:




Smoke log available 
https://drive.google.com/file/d/1CwVed6EgFWm29hbiN50NsNEGZGYw7vkP


This is looking like it's a problem with the new multi-concat.  Attached
is a test script that is an instrumented version of one of the failing
tests.  Please run it by hand and email the results.

Say you save the attached file as 'foo'

./perl -I lib foo > foo.out 2>&1




Log available at 
https://drive.google.com/file/d/1lVQMTU4FwlGEqecOhMlIyfwiEkIaa7TP




I asked the multiconcat writer to look at this log, and he has come up
with a modified script o that we can drill down closer to the cause.  It
is attached.  Run it just like you did above.

Thanks




Rocket Software, Inc. and subsidiaries ■ 77 Fourth Avenue, Waltham MA 02451 ■ 
Main Office Toll Free Number: +1 877.328.2932
Contact Customer Support: 
https://my.rocketsoftware.com/RocketCommunity/RCEmailSupport
Unsubscribe from Marketing Messages/Manage Your Subscription Preferences - 
http://www.rocketsoftware.com/manage-your-email-preferences
Privacy Policy - http://www.rocketsoftware.com/company/legal/privacy-policy


This communication and any attachments may contain confidential information of 
Rocket Software, Inc. All unauthorized use, disclosure or distribution is 
prohibited. If you are not the intended recipient, please notify Rocket 
Software immediately and destroy all copies of this communication. Thank you.