[perl #130099] .defined doesn't work with junctions

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


< llfourn> m: say defined all(Any,"foo") # Why is this true? Shouldn't it
autothread?
<+camelia> rakudo-moar 59bb1b: OUTPUT«True␤»
< lizmat> llfourn: that feels like a bug

Expected behaviour is that it should autothread and call .defined on the
values in the junction.

https://irclog.perlgeek.de/perl6/2016-11-14#i_13563873
^ Lizmat++ tried a quickfix but it didn't work so rakudobugging so it can
be addressed later.


[perl #130031] [BUG][BUILD] gmake install step fails under Windows for 2016.10 with the Strawberry Perl buildchain

2016-11-14 Thread Zoffix Znet via RT
This has been fixed by https://github.com/MoarVM/MoarVM/commit/404ed261be00e2
I see an already-existing test for mkdir in S32-io/mkdir_rmdir.t, so I think 
this one just slipped through due to being Windows-specific.



On Mon, 07 Nov 2016 05:18:43 -0800, 1parr...@gmail.com wrote:
> I've also encountered a problem with "make" blowing up, on a Raspberry
> Pi, which I haven't yet investigated in enough detail to report
> formally. I first attributed it to some peculiarity of the
> environment, but this sounds an awful lot like the same problem.
> 
> On 11/6/16, Steve Mynott  wrote:
> > # New Ticket Created by  Steve Mynott
> > # Please include the string:  [perl #130031]
> > # in the subject line of all future correspondence about this issue.
> > # https://rt.perl.org/Ticket/Display.html?id=130031 >
> >
> >
> > Although discovered while trying to create Rakudo Star 2016.10
> > binaries for
> > Windows I also see the same error with the plain Rakudo 2016.10
> > release. I
> > had no problems doing the same with 2016.07.
> >
> > Using the gcc and gmake supplied with Strawberry Perl the final
> > "gmake
> > install" step fails with
> >
> > C:\Strawberry\perl\bin\perl.exe -MExtUtils::Command -e cp
> > perl6.moarvm
> > perl6-debug.moarvm C:\rakudo/share/perl6/runtime
> > C:\Strawberry\perl\bin\perl.exe -MExtUtils::Command -e mkpath
> > C:\rakudo/share/perl6/runtime/dynext
> > C:\Strawberry\perl\bin\perl.exe -MExtUtils::Command -e cp
> > dynext/perl6_ops_moar.dll C:\rakudo/share/perl6/runtime/dynext
> > .\perl6-m.bat tools/build/upgrade-repository.pl C:\rakudo/share/perl6
> > Failed to create directory 'C:\rakudo\share\perl6\resources' with
> > mode
> > '0o777': Failed to mkdir: 2
> >  in any  at ././CORE.setting.moarvm line 1
> >  in block  at tools/build/upgrade-repository.pl line 1
> >
> > Actually thrown at:
> >  in block  at tools/build/upgrade-repository.pl line 1
> >
> > makefile:553: recipe for target 'm-install' failed
> > gmake[1]: *** [m-install] Error 1
> > gmake[1]: Leaving directory
> > 'C:/Users/steve/Downloads/rakudo-star-2016.10/rakudo'
> > makefile:53: recipe for target 'rakudo-install' failed
> > gmake: *** [rakudo-install] Error 2
> >
> > --
> > 4096R/EA75174B Steve Mynott 
> >





[perl #130095] MAST::Frame error encountered.

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


While working on a Perl project, I ran into an odd error trying to create a
test script.

You can find the entire project, here: https://github.com/Xliff/p6-xslt

I have attached the relevant scripts to this message.

The error message follows:

cbwood@infinity:~/projects/p6-xml-xslt$ perl6 --ll-exception -I
../p6-XML-LibXML-work/lib -I lib t/01-basic.t
Expected MAST::Frame, but didn't get one
   at gen/moar/stage2/QAST.nqp:6644
 
(/home/cbwood/.rakudobrew/moar-nom/install/share/nqp/lib/QAST.moarvm:assemble_to_file)
 from gen/moar/stage2/NQPHLL.nqp:407
 (/home/cbwood/.rakudobrew/moar-nom/install/share/nqp/lib/NQPHLL.moarvm:mbc)
 from gen/moar/stage2/NQPHLL.nqp:1677
 (/home/cbwood/.rakudobrew/moar-nom/install/share/nqp/lib/NQPHLL.moarvm:compile)
 from gen/moar/stage2/NQPHLL.nqp:1410
 (/home/cbwood/.rakudobrew/moar-nom/install/share/nqp/lib/NQPHLL.moarvm:eval)
 from gen/moar/stage2/NQPHLL.nqp:1631
 
(/home/cbwood/.rakudobrew/moar-nom/install/share/nqp/lib/NQPHLL.moarvm:evalfiles)
 from gen/moar/stage2/NQPHLL.nqp:1525
 
(/home/cbwood/.rakudobrew/moar-nom/install/share/nqp/lib/NQPHLL.moarvm:command_eval)
 from src/Perl6/Compiler.nqp:27
 
(/home/cbwood/.rakudobrew/moar-nom/install/share/nqp/lib/Perl6/Compiler.moarvm:command_eval)
 from gen/moar/stage2/NQPHLL.nqp:1499
 
(/home/cbwood/.rakudobrew/moar-nom/install/share/nqp/lib/NQPHLL.moarvm:command_line)
 from gen/moar/m-main.nqp:47
 
(/home/cbwood/.rakudobrew/moar-nom/install/share/perl6/runtime/perl6.moarvm:MAIN)
 from gen/moar/m-main.nqp:38
 
(/home/cbwood/.rakudobrew/moar-nom/install/share/perl6/runtime/perl6.moarvm:)
 from :1
 
(/home/cbwood/.rakudobrew/moar-nom/install/share/perl6/runtime/perl6.moarvm:)
 from :1
 
(/home/cbwood/.rakudobrew/moar-nom/install/share/perl6/runtime/perl6.moarvm:)

   at gen/moar/m-CORE.setting:26689
 
(/home/cbwood/.rakudobrew/moar-nom/install/share/perl6/runtime/CORE.setting.moarvm:throw)
 from gen/moar/m-CORE.setting:800
 
(/home/cbwood/.rakudobrew/moar-nom/install/share/perl6/runtime/CORE.setting.moarvm:die)
 from gen/moar/m-CORE.setting:788
 
(/home/cbwood/.rakudobrew/moar-nom/install/share/perl6/runtime/CORE.setting.moarvm:die)
 from gen/moar/m-CORE.setting:42965
 
(/home/cbwood/.rakudobrew/moar-nom/install/share/perl6/runtime/CORE.setting.moarvm:precompile)
 from gen/moar/m-CORE.setting:42887
 
(/home/cbwood/.rakudobrew/moar-nom/install/share/perl6/runtime/CORE.setting.moarvm:precompile)
 from gen/moar/m-CORE.setting:42727
 
(/home/cbwood/.rakudobrew/moar-nom/install/share/perl6/runtime/CORE.setting.moarvm:try-load)
 from gen/moar/m-CORE.setting:43668
 
(/home/cbwood/.rakudobrew/moar-nom/install/share/perl6/runtime/CORE.setting.moarvm:)
 from gen/moar/m-CORE.setting:43661
 
(/home/cbwood/.rakudobrew/moar-nom/install/share/perl6/runtime/CORE.setting.moarvm:need)
 from gen/moar/m-CORE.setting:43688
 
(/home/cbwood/.rakudobrew/moar-nom/install/share/perl6/runtime/CORE.setting.moarvm:need)
 from src/Perl6/World.nqp:1199
 
(/home/cbwood/.rakudobrew/moar-nom/install/share/nqp/lib/Perl6/World.moarvm:load_module)
 from src/Perl6/World.nqp:1129
 
(/home/cbwood/.rakudobrew/moar-nom/install/share/nqp/lib/Perl6/World.moarvm:do_pragma_or_load_module)
 from src/Perl6/Grammar.nqp:1565
 
(/home/cbwood/.rakudobrew/moar-nom/install/share/nqp/lib/Perl6/Grammar.moarvm:statement_control:sym)
 from gen/moar/stage2/QRegex.nqp:1371
 
(/home/cbwood/.rakudobrew/moar-nom/install/share/nqp/lib/QRegex.moarvm:!protoregex)
 from :1
 
(/home/cbwood/.rakudobrew/moar-nom/install/share/nqp/lib/Perl6/Grammar.moarvm:statement_control)
 from src/Perl6/Grammar.nqp:1251
 
(/home/cbwood/.rakudobrew/moar-nom/install/share/nqp/lib/Perl6/Grammar.moarvm:statement)
 from src/Perl6/Grammar.nqp:1180
 
(/home/cbwood/.rakudobrew/moar-nom/install/share/nqp/lib/Perl6/Grammar.moarvm:statementlist)
 from gen/moar/stage2/NQPHLL.nqp:1011
 (/home/cbwood/.rakudobrew/moar-nom/install/share/nqp/lib/NQPHLL.moarvm:LANG)
 from src/Perl6/Grammar.nqp:1579
 
(/home/cbwood/.rakudobrew/moar-nom/install/share/nqp/lib/Perl6/Grammar.moarvm:FOREIGN_LANG)
 from src/Perl6/Grammar.nqp:1164
 
(/home/cbwood/.rakudobrew/moar-nom/install/share/nqp/lib/Perl6/Grammar.moarvm:comp_unit)
 from src/Perl6/Grammar.nqp:467
 
(/home/cbwood/.rakudobrew/moar-nom/install/share/nqp/lib/Perl6/Grammar.moarvm:TOP)
 from gen/moar/stage2/QRegex.nqp:2093
 (/home/cbwood/.rakudobrew/moar-nom/install/share/nqp/lib/QRegex.moarvm:parse)
 from gen/moar/stage2/NQPHLL.nqp:1718
 (/home/cbwood/.rakudobrew/moar-nom/install/share/nqp/lib/NQPHLL.moarvm:parse)
 from gen/moar/stage2/NQPHLL.nqp:1674
 (/home/cbwood/.rakudobrew/moar-nom/install/share/nqp/lib/NQPHLL.moarvm:compile)
 from gen/moar/stage2/NQPHLL.nqp:1410
 (/home/cbwood/.rakudobrew/moar-nom/install/share/nqp/lib/NQPHLL.moarvm:eval)
 from gen/moar/stage2/NQPHLL.nqp:1631

[perl #130099] .defined doesn't work with junctions

2016-11-14 Thread Zoffix Znet via RT
Thanks for the report.

Fixed in https://github.com/rakudo/rakudo/commit/189cb23e84
Tests added in https://github.com/perl6/roast/commit/6b84580ecc


On Mon, 14 Nov 2016 04:37:49 -0800, lloyd.fo...@gmail.com wrote:
> < llfourn> m: say defined all(Any,"foo") # Why is this true? Shouldn't it
> autothread?
> <+camelia> rakudo-moar 59bb1b: OUTPUT«True␤»
> < lizmat> llfourn: that feels like a bug
> 
> Expected behaviour is that it should autothread and call .defined on the
> values in the junction.
> 
> https://irclog.perlgeek.de/perl6/2016-11-14#i_13563873
> ^ Lizmat++ tried a quickfix but it didn't work so rakudobugging so it can
> be addressed later.





[perl #130095] MAST::Frame error encountered.

2016-11-14 Thread Zoffix Znet via RT
Thanks for the report.

Would you provide a working example we can reproduce with? For example, with 
the repo you linked, I'm getting "Could not find XML::LibXML::CStructs at line 
5 in:" and no such module in the ecosystem.

Also, what Perl 6 version are you using? (perl6 -v)




On Sun, 13 Nov 2016 23:16:43 -0800, clifton.w...@gmail.com wrote:
> While working on a Perl project, I ran into an odd error trying to
> create a
> test script.
> 
> You can find the entire project, here: https://github.com/Xliff/p6-
> xslt
> 
> I have attached the relevant scripts to this message.
> 
> The error message follows:
> 
> cbwood@infinity:~/projects/p6-xml-xslt$ perl6 --ll-exception -I
> ../p6-XML-LibXML-work/lib -I lib t/01-basic.t
> Expected MAST::Frame, but didn't get one
>at gen/moar/stage2/QAST.nqp:6644
>  (/home/cbwood/.rakudobrew/moar-
> nom/install/share/nqp/lib/QAST.moarvm:assemble_to_file)
>  from gen/moar/stage2/NQPHLL.nqp:407
>  (/home/cbwood/.rakudobrew/moar-
> nom/install/share/nqp/lib/NQPHLL.moarvm:mbc)
>  from gen/moar/stage2/NQPHLL.nqp:1677
>  (/home/cbwood/.rakudobrew/moar-
> nom/install/share/nqp/lib/NQPHLL.moarvm:compile)
>  from gen/moar/stage2/NQPHLL.nqp:1410
>  (/home/cbwood/.rakudobrew/moar-
> nom/install/share/nqp/lib/NQPHLL.moarvm:eval)
>  from gen/moar/stage2/NQPHLL.nqp:1631
>  (/home/cbwood/.rakudobrew/moar-
> nom/install/share/nqp/lib/NQPHLL.moarvm:evalfiles)
>  from gen/moar/stage2/NQPHLL.nqp:1525
>  (/home/cbwood/.rakudobrew/moar-
> nom/install/share/nqp/lib/NQPHLL.moarvm:command_eval)
>  from src/Perl6/Compiler.nqp:27
>  (/home/cbwood/.rakudobrew/moar-
> nom/install/share/nqp/lib/Perl6/Compiler.moarvm:command_eval)
>  from gen/moar/stage2/NQPHLL.nqp:1499
>  (/home/cbwood/.rakudobrew/moar-
> nom/install/share/nqp/lib/NQPHLL.moarvm:command_line)
>  from gen/moar/m-main.nqp:47
>  (/home/cbwood/.rakudobrew/moar-
> nom/install/share/perl6/runtime/perl6.moarvm:MAIN)
>  from gen/moar/m-main.nqp:38
>  (/home/cbwood/.rakudobrew/moar-
> nom/install/share/perl6/runtime/perl6.moarvm:)
>  from :1
>  (/home/cbwood/.rakudobrew/moar-
> nom/install/share/perl6/runtime/perl6.moarvm:)
>  from :1
>  (/home/cbwood/.rakudobrew/moar-
> nom/install/share/perl6/runtime/perl6.moarvm:)
> 
> at gen/moar/m-CORE.setting:26689
> (/home/cbwood/.rakudobrew/moar-
> nom/install/share/perl6/runtime/CORE.setting.moarvm:throw)
> from gen/moar/m-CORE.setting:800
> (/home/cbwood/.rakudobrew/moar-
> nom/install/share/perl6/runtime/CORE.setting.moarvm:die)
> from gen/moar/m-CORE.setting:788
> (/home/cbwood/.rakudobrew/moar-
> nom/install/share/perl6/runtime/CORE.setting.moarvm:die)
> from gen/moar/m-CORE.setting:42965
> (/home/cbwood/.rakudobrew/moar-
> nom/install/share/perl6/runtime/CORE.setting.moarvm:precompile)
> from gen/moar/m-CORE.setting:42887
> (/home/cbwood/.rakudobrew/moar-
> nom/install/share/perl6/runtime/CORE.setting.moarvm:precompile)
> from gen/moar/m-CORE.setting:42727
> (/home/cbwood/.rakudobrew/moar-
> nom/install/share/perl6/runtime/CORE.setting.moarvm:try-load)
> from gen/moar/m-CORE.setting:43668
> (/home/cbwood/.rakudobrew/moar-
> nom/install/share/perl6/runtime/CORE.setting.moarvm:)
> from gen/moar/m-CORE.setting:43661
> (/home/cbwood/.rakudobrew/moar-
> nom/install/share/perl6/runtime/CORE.setting.moarvm:need)
> from gen/moar/m-CORE.setting:43688
> (/home/cbwood/.rakudobrew/moar-
> nom/install/share/perl6/runtime/CORE.setting.moarvm:need)
> from src/Perl6/World.nqp:1199
> (/home/cbwood/.rakudobrew/moar-
> nom/install/share/nqp/lib/Perl6/World.moarvm:load_module)
> from src/Perl6/World.nqp:1129
> (/home/cbwood/.rakudobrew/moar-
> nom/install/share/nqp/lib/Perl6/World.moarvm:do_pragma_or_load_module)
> from src/Perl6/Grammar.nqp:1565
> (/home/cbwood/.rakudobrew/moar-
> nom/install/share/nqp/lib/Perl6/Grammar.moarvm:statement_control:sym)
> from gen/moar/stage2/QRegex.nqp:1371
> (/home/cbwood/.rakudobrew/moar-
> nom/install/share/nqp/lib/QRegex.moarvm:!protoregex)
> from :1
> (/home/cbwood/.rakudobrew/moar-
> nom/install/share/nqp/lib/Perl6/Grammar.moarvm:statement_control)
> from src/Perl6/Grammar.nqp:1251
> (/home/cbwood/.rakudobrew/moar-
> nom/install/share/nqp/lib/Perl6/Grammar.moarvm:statement)
> from src/Perl6/Grammar.nqp:1180
> (/home/cbwood/.rakudobrew/moar-
> nom/install/share/nqp/lib/Perl6/Grammar.moarvm:statementlist)
> from gen/moar/stage2/NQPHLL.nqp:1011
> (/home/cbwood/.rakudobrew/moar-
> nom/install/share/nqp/lib/NQPHLL.moarvm:LANG)
> from src/Perl6/Grammar.nqp:1579
> (/home/cbwood/.rakudobrew/moar-
> nom/install/share/nqp/lib/Perl6/Grammar.moarvm:FOREIGN_LANG)
> from src/Perl6/Grammar.nqp:1164
> (/home/cbwood/.rakudobrew/moar-
> nom/install/share/nqp/lib/Perl6/Grammar.moarvm:comp_unit)
> from src/Perl6/Grammar.nqp:467
> (/home/cbwood/.rakudobrew/moar-
> nom/install/share/nqp/lib/Perl6/Grammar.moarvm:TOP)
> from gen/moar/stage2/QRegex.nqp:2093
> (/home/cbwood/.rakudobrew/moar-
> nom/install/share/nqp/lib/QRegex.moarvm:parse)
> from gen/moar/stage2/NQPHLL.nqp:1718
> (/home/cbwood/.rakud

[perl #130081] [@LARRY] Grammar.parse DWIMs only if your TOP rule has $ on the end

2016-11-14 Thread Zoffix Znet via RT

My personal two cents from someone who knows very little about the workings of 
grammars and regexes is this is quite a bit of a WAT. `regex` is meant to 
backtrack and it does, for example here:

 m: say grammar { regex TOP {  'foo' }; regex foo { [ ‘a’ || 
‘abc’ ] } }.parse: 'abcfoo'
 rakudo-moar dfb58d: OUTPUT«「abcfoo」␤ foo => 「abc」␤»
 m: say grammar { regex TOP {  'foo' }; token foo { [ ‘a’ || 
‘abc’ ] } }.parse: 'abcfoo'
 rakudo-moar dfb58d: OUTPUT«Nil␤»

However, if the `regex` is a top-level rule, then we add an extra requirement 
that to enable backtracking the user also needs an anchor to the end of string.

It's a special exception to the rule and would need to be documented in Traps, 
but why do we have it?


On Sat, 12 Nov 2016 18:36:15 -0800, alex.jakime...@gmail.com wrote:
> To demonstrate how it works, let's say we have this grammar:
> 
> grammar G { regex TOP { ‘a’ || ‘abc’ } };
> 
> So you might think that it will match either “a” or “abc”, but no,
> “abc”
> will never work.
> 
> *Code:*
> grammar G { regex TOP { ‘a’ || ‘abc’ } };
> say G.parse(‘abc’)
> 
> *Result:*
> Nil
> 
> Why? Well, see this:
> https://github.com/rakudo/rakudo/blob/cb8f783eeb8ab25a5090fdc4e5cc318c36ee1afa/src/core/Grammar.pm#L23
> 
> Basically, TOP will first match ‘a’, and given that it is a good
> enough
> result it will bail out without trying anything else. Then, .parse
> method
> will see that it did not parse the whole string, so it fails.
> 
> I am not sure how this behavior could be useful or even how could
> anyone
> expect this, to me it feels like the top rule should always have an
> implicit $ on the end so that it knows that it should keep trying to
> find a
> better solution.
> 
> But yes, we can close our eyes on this issue and add yet another trap
> to
> the documentation.
> 
> Another closely related issue is method .subparse. As it seems,
> subparse is
> supposed to return partial results (.partial-parse ?), but for some
> reason
> instead of returning Nil it returns a failed Match, unlike .parse.





CALL-ME vs. Callable

2016-11-14 Thread Brandon Allbery
This started out some weeks ago as a user in #perl6 confused by an error
that gofled down to:

[28 19:01:37]  m: my Bool $x = False; $x()
[28 19:01:38]  rakudo-moar 0dc6f7: OUTPUT«No such method 'CALL-ME'
for invocant of type 'Bool'

This is, at the very least, LTA. But it also got me thinking about the spec.

The obvious way to clean up the above, and some more complicated things of
the same sort, is to hide the obviously-internal CALL-ME behind a role,
which arguably should be part of the spec as well to let implementations
provide a stable interface while doing whatever is necessary for the
backend in its implementation. The obvious name for this role is Callable.
But, we already have a role Callable which is a mixin that adds
functionality to things that are callable, and is part of 6.c's spec. This
seems like a design flaw, and looks like it's going to be hard to fix, or
at least to make rational when other roles describe things that *are*
something instead of describing what they *modify*.

Is there a way forward on this that makes any sense?

(for the record, the proposed wrapper role looks something like

role OughtToBeCallable { # bikeshed pending paint job...
  method CALL(|c) {...}; # CALL-ME happens here
}

and the 4 places that currently build a CALL-ME in nqp would have a type
OughtToBeCallable added so that the runtime CALL-ME error becomes a
compile-time failed OughtToBeCallable constraint with a user-comprehensible
error.)

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


Re: CALL-ME vs. Callable

2016-11-14 Thread Aaron Sherman
Role-based testing seems very perl6ish. I'd suggest the role name be
"Invocable" with much the sort of signature as you've described.

That being said, I don't think that the current error is terrible. It
clearly shows that the issue is with the attempt to invoke a Bool.


Aaron Sherman, M.:
P: 617-440-4332 Google Talk, Email and Google Plus: a...@ajs.com
Toolsmith, developer, gamer and life-long student.


On Mon, Nov 14, 2016 at 2:32 PM, Brandon Allbery 
wrote:

> This started out some weeks ago as a user in #perl6 confused by an error
> that gofled down to:
>
> [28 19:01:37]  m: my Bool $x = False; $x()
> [28 19:01:38]  rakudo-moar 0dc6f7: OUTPUT«No such method
> 'CALL-ME' for invocant of type 'Bool'
>
> This is, at the very least, LTA. But it also got me thinking about the
> spec.
>
> The obvious way to clean up the above, and some more complicated things of
> the same sort, is to hide the obviously-internal CALL-ME behind a role,
> which arguably should be part of the spec as well to let implementations
> provide a stable interface while doing whatever is necessary for the
> backend in its implementation. The obvious name for this role is Callable.
> But, we already have a role Callable which is a mixin that adds
> functionality to things that are callable, and is part of 6.c's spec. This
> seems like a design flaw, and looks like it's going to be hard to fix, or
> at least to make rational when other roles describe things that *are*
> something instead of describing what they *modify*.
>
> Is there a way forward on this that makes any sense?
>
> (for the record, the proposed wrapper role looks something like
>
> role OughtToBeCallable { # bikeshed pending paint job...
>   method CALL(|c) {...}; # CALL-ME happens here
> }
>
> and the 4 places that currently build a CALL-ME in nqp would have a type
> OughtToBeCallable added so that the runtime CALL-ME error becomes a
> compile-time failed OughtToBeCallable constraint with a
> user-comprehensible error.)
>
> --
> brandon s allbery kf8nh   sine nomine
> associates
> allber...@gmail.com
> ballb...@sinenomine.net
> unix, openafs, kerberos, infrastructure, xmonad
> http://sinenomine.net
>


Re: CALL-ME vs. Callable

2016-11-14 Thread Brandon Allbery
On Mon, Nov 14, 2016 at 3:06 PM, Aaron Sherman  wrote:

> That being said, I don't think that the current error is terrible. It
> clearly shows that the issue is with the attempt to invoke a Bool.


In that situation it is obvious, because I took the simplest of the 4 cases
when nqp hauls a CALL-ME out of its bowels. In the original it was less so;
some of the cases are obscure at best.

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


Re: CALL-ME vs. Callable

2016-11-14 Thread Brandon Allbery
Also...

On Mon, Nov 14, 2016 at 3:06 PM, Aaron Sherman  wrote:

> Role-based testing seems very perl6ish. I'd suggest the role name be
> "Invocable" with much the sort of signature as you've described.


If it's Invokable then the method should probably be INVOKE. It still
leaves the question of why Callable appears to be the only role named after
what it applies to instead of what it provides.

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


Re: CALL-ME vs. Callable

2016-11-14 Thread Aaron Sherman
Fair points, all.

I do think, though that if the concern is really with "the 4 cases when nqp
hauls a CALL-ME out of its bowels" then that's what should be addressed...



Aaron Sherman, M.:
P: 617-440-4332 Google Talk, Email and Google Plus: a...@ajs.com
Toolsmith, developer, gamer and life-long student.


On Mon, Nov 14, 2016 at 3:22 PM, Brandon Allbery 
wrote:

> Also...
>
> On Mon, Nov 14, 2016 at 3:06 PM, Aaron Sherman  wrote:
>
>> Role-based testing seems very perl6ish. I'd suggest the role name be
>> "Invocable" with much the sort of signature as you've described.
>
>
> If it's Invokable then the method should probably be INVOKE. It still
> leaves the question of why Callable appears to be the only role named
> after what it applies to instead of what it provides.
>
> --
> brandon s allbery kf8nh   sine nomine
> associates
> allber...@gmail.com
> ballb...@sinenomine.net
> unix, openafs, kerberos, infrastructure, xmonad
> http://sinenomine.net
>


Re: CALL-ME vs. Callable

2016-11-14 Thread Brandon Allbery
On Mon, Nov 14, 2016 at 3:42 PM, Aaron Sherman  wrote:

> I do think, though that if the concern is really with "the 4 cases when
> nqp hauls a CALL-ME out of its bowels" then that's what should be
> addressed...
>

The main addressing of that is some kind of role to abstract it properly. I
just think the current situation is bad and even if we come up with a name
for the new role, it's still going to be confusing ("ok, why do we have
both Callable and Invokable? ...uh wait, Callable means *what* exactly?").


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


Re: CALL-ME vs. Callable

2016-11-14 Thread Aaron Sherman
So, you said that the problem arises because NQP does something non-obvious
that results in this error. Can you be clear on what that non-obvious
behavior is? It sounds to me like you're addressing a symptom of a systemic
issue.


Aaron Sherman, M.:
P: 617-440-4332 Google Talk, Email and Google Plus: a...@ajs.com
Toolsmith, developer, gamer and life-long student.


On Mon, Nov 14, 2016 at 4:08 PM, Brandon Allbery 
wrote:

>
> On Mon, Nov 14, 2016 at 3:42 PM, Aaron Sherman  wrote:
>
>> I do think, though that if the concern is really with "the 4 cases when
>> nqp hauls a CALL-ME out of its bowels" then that's what should be
>> addressed...
>>
>
> The main addressing of that is some kind of role to abstract it properly.
> I just think the current situation is bad and even if we come up with a
> name for the new role, it's still going to be confusing ("ok, why do we
> have both Callable and Invokable? ...uh wait, Callable means *what*
> exactly?").
>
>
> --
> brandon s allbery kf8nh   sine nomine
> associates
> allber...@gmail.com
> ballb...@sinenomine.net
> unix, openafs, kerberos, infrastructure, xmonad
> http://sinenomine.net
>


Re: CALL-ME vs. Callable

2016-11-14 Thread Brandon Allbery
On Mon, Nov 14, 2016 at 4:28 PM, Aaron Sherman  wrote:

> So, you said that the problem arises because NQP does something
> non-obvious that results in this error. Can you be clear on what that
> non-obvious behavior is? It sounds to me like you're addressing a symptom
> of a systemic issue.


That's pretty much the definition of LTA. The programmer did something that
on some level involves a call (in the simple example it was explicit, but
there are some implicit ones in the language), and got a runtime error
referencing an internal name instead of something preferably compile time
related to what they wrote. The fix for this is to abstract it into a role
that describes "calling"/"invoking" instead of having a CALL-ME that the
user didn't (and probably shouldn't) define suddenly pop up out of nowhere.
That isn't the part that's difficult, aside from "so why wasn't it done
that way to begin with?".

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


Re: CALL-ME vs. Callable

2016-11-14 Thread Brandon Allbery
This should probably have been cc-d to the list.

Callable claims to be the thing we want. What it actually is, is a mix-in
that adds the assuming method. I am not sure these can be conflated.

Note that the current docs actually do claim it is what I want. This is
because I first brought this up in IRC while the documentation for Callable
was being written, and it got modified to match my then current musings
because nobody who actually works on the spec was around. I had in fact
specified that this was a "would be nice" but that I wasn't sure if it
would actually work; I have since concluded that it likely won't, and needs
to be a distinct role. Which is part of why I brought this up: the current
doc does not match what currently happens, and may not actually be
implementable without breaking the spec (that is, 6.d would have a
fundamental conflict with 6.c over the meaning of Callable).

On Mon, Nov 14, 2016 at 4:30 PM, Jon Lang  wrote:

> Okay, let's go with that. What does Callable do, and why is it called that?
>
> On Nov 14, 2016 1:09 PM, "Brandon Allbery"  wrote:
>
>>
>> On Mon, Nov 14, 2016 at 3:42 PM, Aaron Sherman  wrote:
>>
>>> I do think, though that if the concern is really with "the 4 cases when
>>> nqp hauls a CALL-ME out of its bowels" then that's what should be
>>> addressed...
>>>
>>
>> The main addressing of that is some kind of role to abstract it properly.
>> I just think the current situation is bad and even if we come up with a
>> name for the new role, it's still going to be confusing ("ok, why do we
>> have both Callable and Invokable? ...uh wait, Callable means *what*
>> exactly?").
>>
>>
>> --
>> brandon s allbery kf8nh   sine nomine
>> associates
>> allber...@gmail.com
>> ballb...@sinenomine.net
>> unix, openafs, kerberos, infrastructure, xmonad
>> http://sinenomine.net
>>
>


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


Re: CALL-ME vs. Callable

2016-11-14 Thread Jon Lang
So what is the assuming method, and why is it in a callable role? What was
the logic behind that decision?

On Nov 14, 2016 1:38 PM, "Brandon Allbery"  wrote:

> This should probably have been cc-d to the list.
>
> Callable claims to be the thing we want. What it actually is, is a mix-in
> that adds the assuming method. I am not sure these can be conflated.
>
> Note that the current docs actually do claim it is what I want. This is
> because I first brought this up in IRC while the documentation for
> Callable was being written, and it got modified to match my then current
> musings because nobody who actually works on the spec was around. I had in
> fact specified that this was a "would be nice" but that I wasn't sure if it
> would actually work; I have since concluded that it likely won't, and needs
> to be a distinct role. Which is part of why I brought this up: the current
> doc does not match what currently happens, and may not actually be
> implementable without breaking the spec (that is, 6.d would have a
> fundamental conflict with 6.c over the meaning of Callable).
>
> On Mon, Nov 14, 2016 at 4:30 PM, Jon Lang  wrote:
>
>> Okay, let's go with that. What does Callable do, and why is it called
>> that?
>>
>> On Nov 14, 2016 1:09 PM, "Brandon Allbery"  wrote:
>>
>>>
>>> On Mon, Nov 14, 2016 at 3:42 PM, Aaron Sherman  wrote:
>>>
 I do think, though that if the concern is really with "the 4 cases
 when nqp hauls a CALL-ME out of its bowels" then that's what should be
 addressed...

>>>
>>> The main addressing of that is some kind of role to abstract it
>>> properly. I just think the current situation is bad and even if we come up
>>> with a name for the new role, it's still going to be confusing ("ok, why do
>>> we have both Callable and Invokable? ...uh wait, Callable means *what*
>>> exactly?").
>>>
>>>
>>> --
>>> brandon s allbery kf8nh   sine nomine
>>> associates
>>> allber...@gmail.com
>>> ballb...@sinenomine.net
>>> unix, openafs, kerberos, infrastructure, xmonad
>>> http://sinenomine.net
>>>
>>
>
>
> --
> brandon s allbery kf8nh   sine nomine
> associates
> allber...@gmail.com
> ballb...@sinenomine.net
> unix, openafs, kerberos, infrastructure, xmonad
> http://sinenomine.net
>


Re: CALL-ME vs. Callable

2016-11-14 Thread Brandon Allbery
On Mon, Nov 14, 2016 at 5:00 PM, Jon Lang  wrote:

> So what is the assuming method, and why is it in a callable role? What was
> the logic behind that decision?


It's perfectly sensible: it's how you implement partial application (which
as sadly usual is mis-called "currying"). &some-callable.assuming(foo) is a
callable (and a Callable; note however that some-callable is not
necessarily a Callable!) which, when invoked, invokes
some-callable(foo, <*parameters
to invocation here*>).


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


Re: CALL-ME vs. Callable

2016-11-14 Thread Aaron Sherman
I guess I wasn't clear in what I was asking:

What, exactly, was it that NQP was doing? What were the inputs and what was
the behavior that you observed? So far, all I have to go on is one example
that you feel is not illustrating the broken behavior of NQP that you want
to work around with a change to the way Callable and calling work. I'm not
suggesting that the latter is bad, but it seems to be a patch around a
problem in the former...




Aaron Sherman, M.:
P: 617-440-4332 Google Talk, Email and Google Plus: a...@ajs.com
Toolsmith, developer, gamer and life-long student.


On Mon, Nov 14, 2016 at 4:32 PM, Brandon Allbery 
wrote:

>
> On Mon, Nov 14, 2016 at 4:28 PM, Aaron Sherman  wrote:
>
>> So, you said that the problem arises because NQP does something
>> non-obvious that results in this error. Can you be clear on what that
>> non-obvious behavior is? It sounds to me like you're addressing a symptom
>> of a systemic issue.
>
>
> That's pretty much the definition of LTA. The programmer did something
> that on some level involves a call (in the simple example it was explicit,
> but there are some implicit ones in the language), and got a runtime error
> referencing an internal name instead of something preferably compile time
> related to what they wrote. The fix for this is to abstract it into a role
> that describes "calling"/"invoking" instead of having a CALL-ME that the
> user didn't (and probably shouldn't) define suddenly pop up out of nowhere.
> That isn't the part that's difficult, aside from "so why wasn't it done
> that way to begin with?".
>
> --
> brandon s allbery kf8nh   sine nomine
> associates
> allber...@gmail.com
> ballb...@sinenomine.net
> unix, openafs, kerberos, infrastructure, xmonad
> http://sinenomine.net
>


Re: CALL-ME vs. Callable

2016-11-14 Thread Brandon Allbery
I feel like you're focusing on the wrong thing somehow. The issue is not
that what nqp is doing is somehow wrong. The issue is that the thing it is
doing is necessarily an implementation detail, and as such should be
isolated from the language level and any failures/errors exposed as
language level instead of leaking implementation details the programmer
should not have to care about. The Perl 6 way to do this is to wrap it in a
role that is documented at language level; in this case, I don't think it
is necessary for that role to translate errors between levels (this often
is needed in other such isolation-layer roles), since most (possibly all)
of the errors become language level compile time errors.

On Mon, Nov 14, 2016 at 5:08 PM, Aaron Sherman  wrote:

> I guess I wasn't clear in what I was asking:
>
> What, exactly, was it that NQP was doing? What were the inputs and what
> was the behavior that you observed? So far, all I have to go on is one
> example that you feel is not illustrating the broken behavior of NQP that
> you want to work around with a change to the way Callable and calling work.
> I'm not suggesting that the latter is bad, but it seems to be a patch
> around a problem in the former...
>
>
>
>
> Aaron Sherman, M.:
> P: 617-440-4332 Google Talk, Email and Google Plus: a...@ajs.com
> Toolsmith, developer, gamer and life-long student.
>
>
> On Mon, Nov 14, 2016 at 4:32 PM, Brandon Allbery 
> wrote:
>
>>
>> On Mon, Nov 14, 2016 at 4:28 PM, Aaron Sherman  wrote:
>>
>>> So, you said that the problem arises because NQP does something
>>> non-obvious that results in this error. Can you be clear on what that
>>> non-obvious behavior is? It sounds to me like you're addressing a symptom
>>> of a systemic issue.
>>
>>
>> That's pretty much the definition of LTA. The programmer did something
>> that on some level involves a call (in the simple example it was explicit,
>> but there are some implicit ones in the language), and got a runtime error
>> referencing an internal name instead of something preferably compile time
>> related to what they wrote. The fix for this is to abstract it into a role
>> that describes "calling"/"invoking" instead of having a CALL-ME that the
>> user didn't (and probably shouldn't) define suddenly pop up out of nowhere.
>> That isn't the part that's difficult, aside from "so why wasn't it done
>> that way to begin with?".
>>
>> --
>> brandon s allbery kf8nh   sine nomine
>> associates
>> allber...@gmail.com
>> ballb...@sinenomine.net
>> unix, openafs, kerberos, infrastructure, xmonad
>> http://sinenomine.net
>>
>
>


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


rakudo bug 128427 perl 5 does not build on Darwin platforms with clock_gettime

2016-11-14 Thread Andy Bach
Hi,

Turns out this bug was filed for p5 (I thought I was looking at the p6 bug
list) but I saw this exactly today, trying to build, via rakudobrew, on my
mac book. Just checking if this is a known thing or not.

-- 

a

Andy Bach,
afb...@gmail.com
608 658-1890 cell
608 261-5738 wk


Re: [perl #130099] .defined doesn't work with junctions

2016-11-14 Thread Lloyd Fournier
Thanks!

On Tue, Nov 15, 2016 at 1:28 AM Zoffix Znet via RT <
perl6-bugs-follo...@perl.org> wrote:

> Thanks for the report.
>
> Fixed in https://github.com/rakudo/rakudo/commit/189cb23e84
> Tests added in https://github.com/perl6/roast/commit/6b84580ecc
>
>
> On Mon, 14 Nov 2016 04:37:49 -0800, lloyd.fo...@gmail.com wrote:
> > < llfourn> m: say defined all(Any,"foo") # Why is this true? Shouldn't it
> > autothread?
> > <+camelia> rakudo-moar 59bb1b: OUTPUT«True␤»
> > < lizmat> llfourn: that feels like a bug
> >
> > Expected behaviour is that it should autothread and call .defined on the
> > values in the junction.
> >
> > https://irclog.perlgeek.de/perl6/2016-11-14#i_13563873
> > ^ Lizmat++ tried a quickfix but it didn't work so rakudobugging so it can
> > be addressed later.
>
>
>
>