Re: [perl #128289] localhost in IO::Socket::INET

2016-05-29 Thread mt1957

On 05/29/2016 07:47 PM, Brandon Allbery via RT wrote:

getent hosts


> getent hosts on faulty system
127.0.0.1   localhost localhost.localdomain localhost4 
localhost4.localdomain4
127.0.0.1   localhost localhost.localdomain localhost6 
localhost6.localdomain6



On ok system. It differs only in the second line

127.0.0.1   localhost localhost.localdomain localhost4 
localhost4.localdomain4

127.0.0.1   localhost6 localhost6.localdomain6

I've removed the localhost localhost.localdomain part from the second 
line in /etc/hosts and after that the test went ok. So this was really a 
quick fix.



Thanks,

Marcel



Re: [perl #128289] localhost in IO::Socket::INET

2016-05-29 Thread Brandon Allbery
On Sun, May 29, 2016 at 1:43 PM, mt1957 
wrote:

>   * On both systems localhost translates to 127.0.0.1 (checked with dig)


Note that dig only tells you what DNS returns, not what a query through NSS
returns; use "getent hosts" for that. In particular, it will not tell you
how /etc/hosts affects things.
(I would suspect that, on the failing system, localhost first resolves to
::1 and IPv6 is not configured.)

-- 
brandon s allbery kf8nh   sine nomine associates
allber...@gmail.com  ballb...@sinenomine.net
unix, openafs, kerberos, infrastructure, xmonadhttp://sinenomine.net


[perl #128289] localhost in IO::Socket::INET

2016-05-29 Thread via RT
# New Ticket Created by  mt1957 
# Please include the string:  [perl #128289]
# in the subject line of all future correspondence about this issue. 
# https://rt.perl.org/Ticket/Display.html?id=128289 >


Hi,

A subtle problem. Golfed down to;

my IO::Socket::INET $sock;
$sock .= new( :host, :port(65010));

Error thrown
Failed to connect: connection refused
   in block  at Tests/sock.pl6 line 8

  * On my laptop it works without error as well as on Travis-ci. On
another system with the same linux distribution and version, it
gives the above error.
  * On both systems localhost translates to 127.0.0.1 (checked with dig)
  * The firewall is not blocking, checked by turning it off.
  * On the system with the error I've changed 'localhost' into 127.0.0.1
after which no error is thrown.

perl version on systems are 2016.05-31-g0873fd7 (on ok system) and 
2016.05-25-gc5dfd77. On other curious thing is both systems say that 
they are `Already up-to-date` using git pull while versions differ.





Re: [perl #128282] Inconsistent use of snake_case and kebob-case in Test.pm6

2016-05-29 Thread Tom Browder
On Sunday, May 29, 2016, Zoffix Znet  wrote:
...

> I'm willing to do the work, if the proposal is accepted. The question then
> becomes: should the old names stay?
>

I support your proposal for kebob-casing.

-Tom

[tbrowder]


[perl #128275] [BUG] Circular module dependency is not detected; causes program to hang

2016-05-29 Thread Sam S. via RT
Hm you're right, predeclaration doesn't seem to be the correct solution to your 
problem after all.

But this bug tracker is not the right place for Perl 6 user support, it should 
be reserved for collecting info on actual Rakudo bugs.
You should ask on the #perl6 IRC channel instead, I'm sure someone there can 
help you solve your programming problem.

As for the issue of Rakudo failing to detect the cyclic dependency and printing 
an appropriate error message for it, I've submitted a new ticket for that to 
keep it clean: [perl #128285]
I'm renaming this ticket here back to its original title, and I'm closing it.


[perl #128285] [BUG] Circular module dependency is not detected; causes program to hang

2016-05-29 Thread via RT
# New Ticket Created by  Sam S. 
# Please include the string:  [perl #128285]
# in the subject line of all future correspondence about this issue. 
# https://rt.perl.org/Ticket/Display.html?id=128285 >


When two modules `use` each other, Rakudo does not throw a compile-time error 
as it should.
Instead, it just hangs and keeps eating more and more RAM until the kernel 
kills the program.

Minimalist test case to reproduce the problem:

$  echo "use B;" > A.pm
$  echo "use A;" > B.pm
$  perl6 -I. -e 'use A;'


Insight from IRC discussion:

psch:   we did have circular module loading detection at some point...
probably got clobbered with all the CUR work though :/

lizmat: before, the detection lived in the nqp code, if I recall
now, it is the responsibility of the CUR to detect circularities
a start would be writing a test :-) 


---
This is Rakudo version 2016.05-26-g7500ea2 built on MoarVM version 2016.05
implementing Perl 6.c.


[perl #128284] [BUG] cmp-ok in Test.pm6 attempts to coerce the comparator to string, triggering a warning

2016-05-29 Thread via RT
# New Ticket Created by  Zoffix Znet 
# Please include the string:  [perl #128284]
# in the subject line of all future correspondence about this issue. 
# https://rt.perl.org/Ticket/Display.html?id=128284 >


 m: use Test; cmp-ok 5, &[<], 3;
 rakudo-moar beb3c9: OUTPUT«not ok 1 - ␤␤# Failed test at 
/tmp/sQf9Np82kR line 1␤# expected: '3'␤Sub+{} object coerced to 
string (please use .gist or .perl to do that)  in block  at 
/home/camelia/rakudo-m-inst-1/share/perl6/sources/C712FE6969F786C9380D643DF17E8…»


[perl #128283] [RFC] Disallow strings as ops in cmp-ok in Test.pm6

2016-05-29 Thread via RT
# New Ticket Created by  Zoffix Znet 
# Please include the string:  [perl #128283]
# in the subject line of all future correspondence about this issue. 
# https://rt.perl.org/Ticket/Display.html?id=128283 >


The operators for `cmp-ok` subroutine can be given as strings or as Callables. 
The problem with strings is the subroutine evals them as EVAL ":<$op>" 
and the current implementation makes it impossible to use, say '<' as an 
operator:

 m: use Test; cmp-ok 2, '<', 5, 'seems sane';
 rakudo-moar beb3c9: OUTPUT«not ok 1 - seems sane␤␤# Failed test 
'seems sane'␤# at /tmp/kqui3siS7u line 1␤# Could not use '<' as a comparator␤»

It does work with &[<] instead of '<' and considering that's only 1 character 
longer and there's no 100% clean way to allow any op in a string, I propose we 
ditch the string version entirely.

While I don't know anything about SETTINGS, the current implementation also has 
a security hole, at least in camelia where `run`, while restricted in general 
code, is given a free pass when injected inside the string comparator passed to 
cmp-ok:

 m: run "ls"
 rakudo-moar beb3c9: OUTPUT«run is disallowed in restricted 
setting␤  in sub restricted at src/RESTRICTED.setting line 1␤  in sub run at 
src/RESTRICTED.setting line 14␤  in block  at /tmp/wWcCMBi30n line 1␤␤»
 m: use Test; cmp-ok '', '~~>;warn run "ls"; 

[perl #128282] Inconsistent use of snake_case and kebob-case in Test.pm6

2016-05-29 Thread via RT
# New Ticket Created by  Zoffix Znet 
# Please include the string:  [perl #128282]
# in the subject line of all future correspondence about this issue. 
# https://rt.perl.org/Ticket/Display.html?id=128282 >


The `is-approx` sub in Test.pm6 module has a multi that take optional rel_tol 
and abs_tol parameters: 
https://github.com/rakudo/rakudo/blob/5638a13ab46b4017ebd7f79dd437a68f0b1eb268/lib/Test.pm6#L246

The snake_case naming of those parameters is inconsistent with the use of 
kebob-case throughout the entire module and I propose those parameters be 
renamed to rel-tol and abs-tol.

I'm willing to do the work, if the proposal is accepted. The question then 
becomes: should the old names stay?