»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, or /msg camelia p6: ... | irclog: irc.perl6.org or colabti.org/irclogger/irclogger_logs/perl6 | UTF-8 is our friend!
Set by moritz on 22 December 2015.
Quom__ m: say (^5).list 00:00
camelia rakudo-moar 34d2b6: OUTPUT«(0 1 2 3 4)␤»
Herby_ Quom__, thanks 00:04
perlawhirl ^Hexit 00:21
yoleaux 7 Jan 2016 15:27Z <bpetering> perlawhirl: NativeCall bindings for libssh is on my TODO in the next month
8 Jan 2016 00:21Z <RabidGravy> perlawhirl: because you asked about it I made github.com/jonathanstowe/IO-Path-Mode :) any suggestions let me know
perlawhirl hi yoleaux!
i saw it the day after, hah 00:22
was looking at modules site and was like "oh there is a module" then saw it was added < 25 hours ago
so thank you
i've already started using it
dalek osystem: ad829c5 | thundergnat++ | META.list:
Add Prime::Factor to ecosystem

See github.com/thundergnat/Prime-Factor
01:06
sortiz Hi #perl6 01:11
yoleaux 10 Jan 2016 16:06Z <nine> sortiz: I doubt that Array.flat's behavior is one of the most asked questions in #perl6. I usually read _all_ of #perl6 and cannot remember it coming up all that often.
Herby_ hello Sortiz 01:13
theorb Probably a stupid question, but ... I'm writing a simple grammar, or at least attempting to. When I run say StepFile.parsefile("slider.stp"), I simply get back "Nil" ... well, if I say StepFile.parsefile("slider.stp"), I get Nil. If I assign the result to a variable, and then say the variable, I get (Any). 01:14
In neither case, though, do I get an indication of what went wrong. Is there an easy way to find and display such a thing?
gtodd hello sortiz
theorb (I'm pretty sure it hit a rule I haven't defined yet, which I would have thought would be a fatal error, not just a non-match.)
gtodd what was the name given to the design "process" behind perl6 .. not iterative or agile or waterfall ... but something like that 01:15
whirtlpool ?
errm whirlpool ... 01:16
sortiz .tell nine Somewhat exaggerated indeed, but should accept that its a fundamental question.
yoleaux sortiz: I'll pass your message to nine.
sortiz m: my @c[2;2] .= new(:shape(2, 2), [1, "a"], [2, "b"]); .say for @c, @c.flat; 01:21
camelia rakudo-moar 34d2b6: OUTPUT«[[1 a] [2 b]]␤(1 a 2 b)␤»
sortiz Array.flat isn't a nop for a shaped Arrray. 01:23
theorb Warnock's dilemma hits again -- doc.perl6.org/language/grammars and doc.perl6.org/type/Grammar do not seem to answer my question. ...oh! 01:26
gtodd finds confirmation re: "whirlpool design" in infoworld.com article .. bit.ly/1QkfpYu ... 01:28
theorb The syntax for invoking a subrule isn't foo, it's <foo>.
skids theorb: IIRC there is a Grammar::Debugger module of some sort. Also, the reason why you get (Any) when you assign to a variable is just a property of Nil, which will set a variable to its default or failing that, its type object, when assigned to it. 01:35
sortiz my @c[2;2] .= new(:shape(2, 2), [1, "a"], [2, "b"]); @c.List.flat eqv @c.flat; #When Array is shaped! 01:41
leont «require $name orelse die "Couldn't load $name"» gives me a «Use of uninitialized value of type Mu in string context» ($name is a Str:D), I'm confused
sortiz M: my @c[2;2] .= new(:shape(2, 2), [1, "a"], [2, "b"]); @c.List.flat eqv @c.flat; #When Array is shaped!
camelia rakudo-MOAR 273e89: OUTPUT«5===SORRY!5=== Error while compiling /tmp/QXXCTd2Dvl␤Shaped arrays not yet implemented. Sorry. ␤at /tmp/QXXCTd2Dvl:1␤------> 3my @c[2;2]7⏏5 .= new(:shape(2, 2), [1, "a"], [2, "b"]␤ expecting any of:␤ constraint␤»
sortiz m: my @c[2;2] .= new(:shape(2, 2), [1, "a"], [2, "b"]); @c.List.flat eqv @c.flat; #When Array is shaped!
camelia rakudo-moar 34d2b6: OUTPUT«WARNINGS for /tmp/pIYgwtOmqe:␤Useless use of "eqv" in expression ".flat eqv @c.flat" in sink context (line 1)␤»
sortiz m: my @c[2;2] .= new(:shape(2, 2), [1, "a"], [2, "b"]); say @c.List.flat eqv @c.flat; #When Array is shaped! 01:42
camelia rakudo-moar 34d2b6: OUTPUT«True␤»
leont m: my $foo = "Foo"; require $foo orelse die "$foo failed" 01:43
camelia rakudo-moar 34d2b6: OUTPUT«Use of uninitialized value $foo of type Any in string context␤Any of .^name, .perl, .gist, or .say can stringify undefined things, if needed. in code at /tmp/DEaLgV4erw line 1␤===SORRY!===␤ failed␤»
leont m: my $foo = "Foo"; require $foo orelse die "{$foo.perl} failed" 01:44
camelia rakudo-moar 34d2b6: OUTPUT«===SORRY!===␤Any failed␤»
leont WTF!
m: my $foo = "Foo"; require $foo; die "{$foo.perl} failed"
camelia rakudo-moar 34d2b6: OUTPUT«Could not find Foo in:␤ /home/camelia/.perl6/2015.12-170-g34d2b6f␤ /home/camelia/rakudo-m-inst-2/share/perl6/site␤ /home/camelia/rakudo-m-inst-2/share/perl6/vendor␤ /home/camelia/rakudo-m-inst-2/share/perl6␤ CompUnit::Repository::A…»
autarch my Test::Stream prototype (I really emphasize that word) is coming along pretty well - github.com/autarch/perl6-Test-Stream - it can generate TAP properly (I think) and it has the start of something that exports the same type of interface as the built-in Test.pm6 01:53
I'd be interested in any feedback folks have on the design, the idiomacity of the code, and thoughts on how to make the whole "show failures from the right context" thing that I have not really implemented properly at all
sortiz m: my $foo = "Foo"; try { require $foo; CATCH { die "$foo failed" }} 01:54
camelia rakudo-moar 34d2b6: OUTPUT«Foo failed␤ in block at /tmp/BA_YShwZ0w line 1␤ in block <unit> at /tmp/BA_YShwZ0w line 1␤␤»
awwaiid nice autarch! someone at dc.pm was just teaching us about Test::Stream
autarch well, the p5 one is now called Test2, but that seemed like a silly name for p6
the thing in core is more like Test0
p6 core, that is 01:55
sortiz leont: try CATCH works. I suspect require is special cased in the grammar
autarch leont: please see above
Exodist: you too
leont Yeah, the current Test.pm is … really a prototype 01:56
leont autarch: TAP doesn't specify quoting of a few things well, but please backslash quote at least # and \ in test descriptions 01:57
autarch leont: I'm pretty sure that's already done
autarch checks
autarch ah, just '#', not '\' 01:57
leont Test.pm doesn't ATM, see github.com/Leont/rakudo/commit/3c4...bc005bc736
autarch I meant it's done in my TAP formatter code ;) 01:58
yeah, neither TAP 12 nor 13 specify _anything_ about escapes at testanything.org/
leont Yeah, p5's Test::More has a similar issue, resulting is parsing issues in the harness when they're adjacent 01:59
autarch I think I need to add escaping of test _names_ as well
autarch goes and does that ...
oh wait, no, already did it, yay me
but I didn't test it, boo me
leont Checking what my harness things of your TAP would also be interesting 02:00
autarch yeah, definitely
leont Got rid of the TAP producer that it carried, having it that tied to TAP was suboptimal (even if it was convenient for self-testing) 02:06
Zoffix . 02:38
yoleaux 10 Jan 2016 20:14Z <stmuk__> Zoffix: I added at('link[type="text/html"]') (which I now see you improved)
Zoffix Ah, I see. 02:39
autarch leont: escaping done and tested - and I learned that emacs uncomment-region does not play nicely with bugs in perl6-mode along the way 02:39
leont :-) 02:43
dalek osystem: c285433 | (Wenzel P. P. Peppmeyer)++ | META.list:
add XHTML::Writer
03:35
gfldex $modules++
sortiz gfldex: I found that Array.flat was specially made for flatten shaped arrays, so its orthogonal to Iterable.flat, that fact should be documented in type/Array to avoid the recurring question. 04:04
zwu_ how can I call a sub defined in a package our scope, suppose there is A::foo sub, I have imported it, and I can it in lexical by A::foo();, but I call failed through my $n = 'A'; ::($A)::foo(); 04:09
zwu_ I mean ::($n)::foo(); 04:09
pjscott Synopsis 1: "A Perl 6 interpreter, if invoked as "perl", will assume that it is being fed Perl 5 code unless the code starts with a "class" or "module" keyword, or you specifically tell it you're running Perl 6 code in some other way" 04:26
But this code does not have 'use v6' and still runs perl6 not perl5:
#!/usr/local/bin/perl6
say $*PERL;
in a file with no extension. 04:27
gfldex pjscott: see en.wikipedia.org/wiki/Shebang_%28Unix%29 04:28
pjscott Yes, but synopsis 1 implies that you need a 'use v6' even if you have the #!/usr/local/bin/perl6 04:29
gfldex pjscott: what your operation systems kernel does when it find an executable that isn
... isn't ELF, is beyond the scope of synopsis 1 04:30
geekosaur no, it says if invoked as perl 04:31
it is invoked as perl6
unless there is another part you didn't quote
pjscott S1 says: or you specifically tell it you're running Perl 6 code in some other way, such as by: 04:33
#!/usr/bin/perl6
use v6.0;
I interpret that as meaning that if you have a shebang referencing perl6 that you still need a use v6.
pjscott Unless S1 is trying to say those lines are alternatives 04:33
geekosaur "or" means something else?
pjscott But it doesn't read that way to me.
I think perl6 is doing the right thing and S1 is at best confusing, but I am not sure what the actual intent is. 04:35
sortiz pjscott: Imagine a future unified "perl" interpreter that implement both of perl5 and perl6. 04:39
geekosaur actually that is the context in which it was written; the original plan was that perl6 would be installed as perl and change itself into perl5 without some early evidence that it was looking at perl6 code. That got dropped 04:40
pjscott sortiz: Got it.
geekosaur (in part because perl5 is scary polymorphic at times...)
pjscott I wonder whether this is still a good idea.
Exodist autarch, I do recomment looking at Test2::API::context(), and the Test2::API::Context.pm which is the object it creates. 04:42
*recommend
specially now that I have de-magiced it.
autarch Exodist: yeah, I started looking at that - it seemed a bit complex, and I wasn't sure whether the complexity was from a) Perl 5 limitations; b) backwards compat issues; c) inherent complexity in the problem being solved; d) some combo of a-c 04:43
Exodist at is a bit of all of the above, but fact is the problem space is hard, let me see if I can summarize the design. 04:44
autarch pjscott: I don't think the "assume it is being fed Perl 5 code" thing actually works based on a quick test 04:45
Exodist In general a tool (called in a test file) asks for a context. the context finds the place hwere stuff should be reported using caller. It then returns the object. Any nested tool (tool called inside the first) that then asks for a context, MUST get the one the outer tool already got.
autarch hmm, or maybe it does? i symlinked ./perl to perl6, but perl6 is really rakudobrew in my case
Exodist that way you don't need to search for the root caller, it is locked into place from the start 04:46
pjscott autarch: agreed. I didn't know whether it was S1 that was out of date or Rakudo that hadn't caught up.
autarch Exodist: and the idea is that you can set up and destroy (called release?) a new context along the way?
Exodist and since everything needs the context it made sense to also make it serve double-duty as the primary event generator, all events need info from it anyway
release may not be needed in perl
*perl6
autarch pjscott: actually, rakudobrew is a p5 script, so I have no idea what's supposed to happen
Exodist it is there to get around the problem that you cannot throw exceptions or do similar things in a DESTROY in perl5 04:47
autarch but given that AFAIK rakudo can't parse p5 I can't see how S1 makes much sense
Exodist I do not know for sure in perl6, but you can probably just use a destructor
pjscott autarch: I installed plain rakudo instead. Although now I do not have panda.
autarch Exodist: yeah, that might make it easier
Exodist also, when the context is created it gathers info other than caller, such as what the current hub is, etc. 04:48
pjscott And a 'use v5' results in "Could not find Perl5 in:..."
Exodist a context also knows what pid/tid it has, which may be even mor eimportant in perl6
the problem of having all the right info gathered, and then shared to nested tools is suprisingly complex, specially once threads and IPC come into play 04:49
autarch Exodist: yeah, I've been thinking about the parallel case a lot and I'm not sure exactly how it should work in p6 - I'm not even sure the code I'm writing should care about it
Exodist but once you get the logic right, and can rely on it, so many other problems just go away, or become trivial to solve
I don't know much about perl6, but I am fairly sure you would regret not considering multi-process and threading from the start
it is very hard to bolt on after the fact 04:50
hobbs pjscott: "if invoked as 'perl'" isn't true in your context so the rest doesn't matter :)
Exodist Including those considerations from day 1 was really crucial in my work
specially since Test::Builde rhad really crappy thread support, and no multi-process support
autarch pjscott: ok, did a better test - invoking my _actual_ perl6 moar shell wrapper (which captures $0) and running some p6 code via -e works just fine 04:51
autarch and running some p5 code in a file with that "./perl" symlink just blows up because it can't load warnings.pm 04:52
Exodist: actually, the way threading works in p6 should mean that _I_ don't have to think about it much ;) 04:54
I am currently capturing pid/tid for each event's source - so if you had a listener receiving events across multiple pids or tids it could de-interleave them
hobbs yeah, clearly it's not implemented. But I read it as saying that if it were, any of "use v6", "perl6" in first word of shebang, "perl6" in argv[0], or .p6 extension would be sufficient :)
Exodist ah, well, that would be nice, what about multi-process?
autarch or you could make a hub that delivered each pid/tid to its own listener
Exodist: the question there is how easy it will be to serialize test events, I think 04:55
Exodist autarch, one huge benefit of multi-process in perl5 is that you can fork to have isolated states. That way some parts of a test do not contaminate others.
autarch Exodist: yep, I had exactly that though too - even if p6 makes threading easy people may want to parallel tests with forks anyway
Exodist autarch, thats mostly what the perl5 version does
it does it with an IPC driver though since there is no obvious/easy way
and the main driver writes file sinto a shared temp dir, where the filename has info about which process/thread should read the file. 04:56
which works, but is no exactly speedy.
autarch my current thinking in p6-land is that the child process would attach a listener to the hub that serializes events down a pipe and the parent process would listen on that pipe and deserialize events back to the central hub
Exodist though suprisingly my IPC utperforms the shared variable system Test::Builder used.
autarch I guess a file would work fine too
Exodist autarch, I tried something similar with Test2, the problem was that if you fork a couple times, or if a child forks, the shared pipe gets a lot of cross-talk and things get scrambled. 04:57
autarch I think in theory it's possible to make things really easy to serialize by calling "$thing.perl" on them and then EVALing them to deserialize
Exodist if 2 children try to write to the pipe at the same time, the input could get mixed.
autarch ah, yeah, that would be bad
Exodist thats why I went with files. 04:58
autarch yeah, maybe I'll skip the whole pipe thing then
Exodist I also the other day added a single shared memory system to notify that events are pending to avoid reading the entire dir every time the system thinks it should poll
autarch the other thing I'm trying to figure out is what goes in the Test::Stream distro and what goes in a harness
Exodist in fact, I would LOVE it if I could get some eyes ont he commit for the shm stuff. 04:59
at the very least I want someone to read my commit message and tell me if I am making a mistake in my logic, even if the code is not read
autarch also, currently it seems like p5 harness code is TAP-specific, but maybe you want a harness that is about events and not TAP
Exodist autarch, I have too much on ym plate right now, but I am considering eventually writing a new harness
autarch, github.com/Test-More/Test2/commit/...5b0e87c3e7 I would be very appreciative if you would glance at this and provide feedback, even if just the commit message 05:00
autarch I'd really like to divert p6 from the "TAP is all there is" path that p5 went down - TAP is really not that great
Exodist if you do take my file based apporach then it will probably be just as important to you
autarch especially since it hasn't evolved much since the original spec and nothing seems to even implement TAP13
Exodist autarch, agreed, I have TAP as a starting point, but it is trivial to make a new formatter and arbitrary even types
*event types
autarch the API I have now won't work so well with arbitrary events 05:01
actually, I could make it really easy to have a catchall method that received any unknown events
but there's also a bunch of code around tracking state of the suite as a whole (like you can't end a suite before it starts, etc) that wouldn't know what to do with new events
Exodist you have to start somewhere, and to get anything going you have to code to assumptions, but fyi, I think that assumption will actually have to go in the future ;-) 05:03
I laugh remembering how I thought all this would look when I took it on, what 2 years ago? wow. 05:04
autarch yeah, as I said earlier, this is very much a prototype 05:04
Exodist :-) 05:06
hobbs TAP is full of wacky, but there isn't enough other stuff out there that's machine-readable and not-XML. 05:08
Exodist the important thing is to NOT couple the output format to the system itself
that is one of Test::Builders biggest limitations
in Test2 there is a TAP formatter that turns events into tap, it is a small file, and nothing else in the system cares about it. IT is also trivial to write alternative formatters 05:09
autarch hobbs: yeah, I'm all for human readable
TAP would be decent if there was a TAP14 that spec'd out subtests
Exodist autarch, if it didn't also account for concurrent subtests I would find the spec useless 05:10
autarch Exodist: yeah, that's exactly how I did this, there are event producers, which send events to a hub, which passes them on to 1+ listeners, and presumably one of the listeners is a formatter
hobbs yeah, the whole standardization thing just ran out of leadership
autarch Exodist: what's a concurrent subtest?
Exodist because the way Test::Builder does it, concurrent subtests are a no-go, everything gets mixed
autarch, when you run 2 subtests at the same time, and both are generating events at the same time
which requires threeading or forking
autarch see, that's not up to _TAP_ to solve 05:11
your formatter should buffer the events it needs to produce sane TAP
Exodist mine does :-)
you can do buffere dsubtests, or streamed ones (or one of each...)
(subtest_buffered name => sub { ... }; or subtest_streamed name => sub { ... } 05:12
autarch I honestly don't think TAP could handle that sort of concurrency and still retain human-readability cause the only way I can think of to do that would be to to tag every line with a unique id or something - which works fine for something intended to be parsed by a machine 05:13
but the resulting jumble would be incomprehensible if seen raw from the CLI
autarch although I note that the TeamCity format, which is all about machine-readability, does not bother with this at all, which is kind of annoying 05:14
if everything is going to look like ##[teamcity key="value" foo="bar"] then why not throw in a UUID there too? 05:15
Exodist I think the solution for tap is simply to specify that subtest output should be buffered in a concurrent environment. 05:15
autarch Exodist: btw, I read through the commit you linked and I don't really follow it, but I think I'd need to understand the whole IPC mechanism better
Exodist not require it in a non-concurrent test, no point.
autarch Exodist: yeah, that's what I said in the first place ;)
Exodist autarch, ok, thanks for trying :-)
autarch the commit seems to do what you describe in the commit message, but I'm not sure _why_ this is helpful - is it just so that the parent process can read things more quickly? 05:16
but what's wrong with just tailing a file (or using inotify/kqueue/etc)?
Exodist ah, let me explain the problem 05:17
the IPC driver works by writing events as files in a shared temp dir. This is called a 'cull' where it opens the dir, reads all file listing, then opens and reads any events intended for it. 05:18
every process.thread has to cull to get events sent to it (it is not just the parent that has to cull)
So to make event show up in realtime the cull has to happen regularly 05:19
this is called polling
autarch oh, so is each event a separate file?
Exodist polling happens every time a tool obtains a context, cause it is a good place to hook it
yes
autarch now this makes a bit more sense
Exodist but, every time something wants to make an event it needs a context, so this happens a lot
so opening, reading, and then closing the dir handle every time is a huge expense 05:20
and most of the time there is nothing to read
autarch ok, so the shm bit is a flag to indicate whether to bother culling
Exodist however, this system alters the shm value whenever an event is written. The shm has no useful information, it just means 'a change has happened' whcih tells all threads/procs to do a cull
if the shm has not changed they skip the cull
this took my 100k-ok test from 6 seconds to 2 seconds
autarch I do note that with a single file you could "just" tail the file - this is super-efficient with kqueue and inotify, and probably much less efficient if you have to do it in pure Perl 05:21
Exodist which is a huge performance gain
autarch I mean, I'm assuming that every process gets its own file to write to
Exodist autarch, but remember, multiple threads/procs are generating events, they would have to lock the file.
autarch hmm 05:22
Exodist ok, at which point the other procs need to poll for new thread/proc specific files to read
any proc/thread can send events to any proc/thread
though typically it is more of a tree where each one sends to its parent whcih propogrates them down
autarch why would two sibling procs be communicating?
yeah, I was assuming a tree
Exodist autarch, they won't normally
with 1 exception:
bail-out
a bail-out event is a "global" event 05:23
it gets written such that all procs/threwads see it and know to stop everything
autarch it seems like bail-out should propogate up to the top and then back out to the rest of the tree
Exodist thats one way to do it
but the style I have allows for a broadcast.
send a global event that all threads are sure to get
autarch I'll have to really dig into the guts of Test2 at some point I'm sure 05:24
Exodist it is also used to solve another problem perl6 probably does not have
autarch which is?
Exodist and that is waiting on child threads/procs. In perl5 this is actually hard, if the main thread exists with child threads running the exit code can still be 0, and the TAP might not sya there has been a problem
*exists/exits
NO PLAN + the root thread/proc exiting 0 before children are finished... not good 05:25
but with Test2 I have it wait on children and poison the TAP output if it detects real problems
Test::SharedFork and Test::Builde rusing threads both have this. I was able to write test scripts where child procs/threads had failures, but the parent exited early enough that the harness never saw them and let it pass. 05:27
autarch hmm, that might be possible in p6 too ... 05:27
m: for 1..10 { Thread.start( name => $_, sub { sleep 1; say $*THREAD.name } ) }; exit 0
camelia ( no output )
autarch m: for 1..10 { Thread.start( name => $_, sub { sleep 1; say $*THREAD.name } ) }; 05:28
camelia rakudo-moar 34d2b6: OUTPUT«3␤2␤5␤6␤7␤8␤4␤1␤9␤10␤»
uruwi Sleep shuffle?
autarch so you can definitely exit before threads fire
Exodist and if you use done_tersting, it can do a final plan with he count so-far and then the failures come too late
autarch s/fire/finish/
Exodist or the children might not ever give their utput at all
in perl5 if you exit before a thread finishes it just kills it
it wanrs about it, but not in a way that TAP will care about
*that a TAP harness will care
autarch yeah, I have no idea what happens in the p6 internals in the first example I have up there 05:29
Exodist github.com/Test-More/Test2/blob/ma...ce.pm#L308 may interest you, it is my solutin to that problem, this gets called in an END { ... } block
yikes. (to your example) 05:30
autarch I suspect I could do the same thing in an END block ... let's see
autarch m: my @threads = (^10).map: { Thread.start( name => $_, sub { sleep 1; say $*THREAD.name } ) }; exit 0; END { .finish for @threads } 05:31
camelia rakudo-moar 34d2b6: OUTPUT«0␤2␤1␤3␤4␤7␤9␤6␤8␤5␤»
autarch good job camelia 05:32
autarch m: my @threads = class C { has @.threads; method foo { @!threads = (^10).map: { Thread.start( name => $_, sub { sleep 1; say $*THREAD.name } ) }; submethod DESTROY{ .finish for @!threads } }; exit 0; 05:33
camelia rakudo-moar 34d2b6: OUTPUT«5===SORRY!5=== Error while compiling /tmp/4hzPsryfEp␤Missing block␤at /tmp/4hzPsryfEp:1␤------> 3TROY{ .finish for @!threads } }; exit 0;7⏏5<EOL>␤»
autarch m: class C { 05:35
has @.threads;
method foo {
@!threads = (^10).map: { Thread.start( name => $_, sub { sleep 1; say $*THREAD.name } ) }
say @!threads;
camelia rakudo-moar 34d2b6: OUTPUT«5===SORRY!5=== Error while compiling /tmp/zhDpiz5wNm␤Missing block␤at /tmp/zhDpiz5wNm:1␤------> 3class C {7⏏5<EOL>␤»
autarch };
submethod DESTROY { say 'bye'; .finish for @!threads }
};
C.new.foo;
argh
m: class C { has @.threads; method foo { @!threads = (^10).map: { Thread.start( name => $_, sub { sleep 1; say $*THREAD.name } ) }; say @!threads; }; submethod DESTROY { say 'bye'; .finish for @!threads }; }; C.new.foo; 05:36
camelia rakudo-moar 34d2b6: OUTPUT«[Thread #3 (0) Thread #4 (1) Thread #5 (2) Thread #6 (3) Thread #7 (4) Thread #8 (5) Thread #9 (6) Thread #10 (7) Thread #11 (8) Thread #12 (9)]␤0␤3␤2␤4␤1␤5␤6␤7␤8␤9␤»
autarch m: class C { has @.threads; method foo { @!threads = (^10).map: { Thread.start( name => $_, sub { sleep 1; say $*THREAD.name } ) }; say @!threads; }; submethod DESTROY { say 'bye'; .finish for @!threads }; }; C.new.foo; exit 0
camelia rakudo-moar 34d2b6: OUTPUT«[Thread #3 (0) Thread #4 (1) Thread #5 (2) Thread #6 (3) Thread #7 (4) Thread #8 (5) Thread #9 (6) Thread #10 (7) Thread #11 (8) Thread #12 (9)]␤»
autarch doh, doesn't work, I wonder if that's a bug
hmm, DESTROY doesn't seem to get called at program exit time at all 05:37
or it just doesn't get called ever? 05:38
m: class D { submethod DESTROY { say self } }; D.new
camelia ( no output )
autarch m: class D { submethod DESTROY { say self } }; sub foo { my $d = D.new }; foo() for 1..3; 05:39
camelia ( no output )
autarch ok, bed time
pierre-vigier Hi 05:58
Is there any way in Perl6 to "imitate" the behaviour of is => 'lazy' of perl5 Moo ?
scratiching my head on that, and did not find anything yet 05:59
BB hi everyone, I'm new to learn Perl6. 06:25
just browse the manual and found many interesting features. 06:26
but some of them seems different than Perl5. for example the context.
anyone know if the contest concept is still the key concept in Perl6? 06:27
ex: $a[1]; or @a[1];
BB p6: say 3; 06:30
camelia rakudo-moar 34d2b6: OUTPUT«3␤»
dalek ast: f884279 | (Dan Kogai)++ | S32-num/power.t:
fix 455353534536453534563454353<[34]>
06:36
ast: 5624d6c | (Aleks-Daniel Jakimenko-Aleksejev)++ | S32-num/power.t:
Merge pull request #95 from dankogai/master

fix 455353534536453534563454353<[34]>
AlexDaniel I hope that people don't mind that I review&merge some PRs :) 06:37
Todd_ This is my first time on this kind of chat. Do I just start blabbling? 06:55
yoleaux 9 Jan 2016 12:29Z <nine> Todd_: panda will now fall back to curl and then to wget if downloading meta data failed. This should fix the proxy issues.
Todd_ Anyone heard any rumors as to when perl 6 will be available for Red hat Eterprise Linux 7? 06:57
andreoss perl6 has been available for a long time for fedora for sure 06:58
Todd_ I posted 06:59
bugzilla.redhat.com/show_bug.cgi?id=1297077
bugzilla.redhat.com/show_bug.cgi?id=1296363
but no response back 07:00
andreoss are you sure there's no perl6 in EPEL? 07:04
andreoss i'm sure there was rakudo-star in that repo 07:06
andreoss dl.fedoraproject.org/pub/epel/6/i3...-star.html 07:10
it's still there. 2011.04 with parrot
xenu imho package like perl6 should be included in base rhel8 repo, just like other languages 07:12
andreoss i wonder why did they let it in the first place
Todd_ when is rhel 8 due out? 2020? 07:16
xenu when it's ready ;)
xenu also, the real question is when centos 8 will be released 07:17
Todd_ I am on Scientific Linux 7.1, which is slightly behind CentOS
xenu i remember how long it took to release centos 6
Todd_ CentOS has made a bunch of changes over that embarrasment. now they are really quick 07:18
dalek osystem: 3c66df7 | (Helmut Wollmersdorfer)++ | META.list:
Add LCS::All to ecosystem

See github.com/wollmers/P6-LCS-All
07:19
geekosaur was under the impression that epel7 was pretty useless and copr was the new way... 07:20
("it only took us over a decade but we finally invented PPAs") 07:21
dalek osystem: c653f5c | (Helmut Wollmersdorfer)++ | META.list:
Add LCS::BV to ecosystem

See github.com/wollmers/P6-LCS-BV
Todd_ epel does not seem very responsive as of late 07:25
Todd_ I can try coding in 6 on a Fedora Virtual Mahcine, but that really does me no good in SL7 07:26
xenu you always can compile your own
sortiz Right now Fedora 23 ships rakudo-star 2015.11 07:29
Todd_ I saw that. I wonder what effect that would have on the perl 5 that is already there and in the RPM database. WOuld they be two separatea programs?
El_Che yes 07:30
Todd_ not see or interact with each other?
El_Che they have nothing in common 07:31
with rpm: rakudo builds from source
with perl5: rakudo provides a different language and binary (perl6)
Todd_ so I would have both a functioning 5 and a functioning 6? 07:32
El_Che yes
Todd_ very cool!
El_Che you can even go the "brew" road with perl5 to have more up to date perl with the same logic
perlbrew -> perl5 from source on a automated way
rakudobrew -> perl6 from source on a automated way 07:33
Todd_ Have you built from source? How long did it take? (Wine-staging-patched takes about a half hour)
El_Che building perl6 is very fast 07:33
sortiz A few minutes.
Todd_ perl 5 has all these libraries from cpan. does 6 have something similar? 07:34
would I have to rewrite all my old regex's?
I am looking forward to the new sub declarations! 07:36
sortiz modules.perl6.org
About regexes, mainly yes.
xenu (note that proper cpan is work in progress) 07:37
El_Che Todd_: perl6 regex have a perl5 compatible mode 07:40
Todd_ Mailily yes I have to rewrite or maily yes they will mostly migrate over? Sorry for the densness 07:41
El_Che Todd_: however, regex are vastly improved imho
sortiz You have to rewrite. 07:42
A
El_Che Todd_: doc.perl6.org/language/5to6-nutshel...rl5_adverb
there is a perl5 adverb that let you use perl5 regexes 07:43
FROGGS o/ 07:45
yoleaux 9 Jan 2016 13:45Z <orbus> FROGGS: I'll work on getting you test output when I have some free time - hopefully later today
9 Jan 2016 23:33Z <orbus> FROGGS: failing tests on arm you asked about paste.scsys.co.uk/504181
10 Jan 2016 20:10Z <mst> FROGGS: github.com/andk/pause/issues/198 may be relevant to your interests
Todd_ so I can use "m:P5/[aeiou]/" ubntill I figure it all out. Thank you! 07:46
FROGGS mst: thanks, will follow the thread 07:47
Todd_ bye bye
quit 07:48
FROGGS note that not all of P5 regexes are imlemented or are working correctly 07:49
yurivish_ The Signatures documentation talks about how Nil is always allowed to be returned, even when a function is constrained to return e.g. an Int. Is the reasoning behind this documented somewhere? I'm currently writing a lot of Swift and enjoying the way it deals with nullable values (nil is not allowed without explicitly saying so). 07:58
here's the section of the docs about this: doc.perl6.org/type/Signature#Constr...turn_Types
[Tux] csv-ip5xs 50000 18.365 12.615 08:02
test 50000 23.649 23.001
test-t 50000 12.985 12.093
csv-parser 50000 51.273 0.555
gfldex yurivish_: think of Nil as a Failure without overhead, see doc.perl6.org/type/Failure 08:10
m: say Failure.^mro 08:11
camelia rakudo-moar 34d2b6: OUTPUT«((Failure) Nil (Cool) (Any) (Mu))␤»
nine .tell autarch Have you thought about using network connections to communicate the results of test subprocesses to the master? I guess that could be easier than trying to get concurrent writing to files performant cross platform. And it would also make it trivial to run high level clusterwide tests :) 08:12
yoleaux 01:16Z <sortiz> nine: Somewhat exaggerated indeed, but should accept that its a fundamental question.
nine: I'll pass your message to autarch.
yurivish_ gfldex: Sorry, I don't know enough Perl 6 to understand what you mean :) 08:15
yurivish_ m: my Int $x = Nil; dd $x; my Int $y = Int; dd $y; 08:16
camelia rakudo-moar 34d2b6: OUTPUT«Int $x = Int␤Int $y = Int␤»
yurivish_ This seems related and also something I'm not sure I understand
gfldex threading and exceptions don't play well together. So instead of throwing an exception you can return a value, that will throw the exception when the value is assigned to another container
yurivish_ Right, and you can use Nil to signal a failure too. I guess my question is – why is this the default behavior when you specify a function returns an Int? 08:17
yurivish_ An alternative would be to explicitly specify when a return value can potentially be Nil since (unlike Failures?) Nil would just silently be propagated along in your computation. I think. 08:18
gfldex also, it's quite easy to have bindings for some C-lib and many functions can return a null pointer. You have to represent that in some way on the Perl 6 side
masak morning, #perl6
I haven't kept up -- is there a R* 2015.12 yet?
gfldex m: my Int|Nil $a; # <-- NYI 08:19
camelia rakudo-moar 34d2b6: OUTPUT«5===SORRY!5=== Error while compiling /tmp/NFvVkvPrKh␤Malformed my␤at /tmp/NFvVkvPrKh:1␤------> 3my Int7⏏5|Nil $a; # <-- NYI␤»
gfldex ^^^ yurivish_ that's what you want but is NYI
yurivish_ Oh, interesting. So "nullable" values are default but there's a way to do something like :D that disallows Nil. 08:20
gfldex masak: no
yurivish_ Could you also do my Int|6 = 5? :P
though I guess that starts to be something you'd use where clauses for 08:21
gfldex m: class C {}; sub bad_object_factory(--> C){ Nil }; for bad_object_factory() -> C $c { .say } 08:23
camelia rakudo-moar 34d2b6: OUTPUT«Type check failed in binding $c; expected C but got Nil␤ in block <unit> at /tmp/UIR6smPni2 line 1␤␤»
gfldex yurivish_: Nil is useful if some constructor can return a new object because of bad DB connection or somesuch. The alternative would have been to throw an exception from a constructor, what would have required constructors to be special. 08:25
s/can/can't/
masak gfldex: "would have required constructors to be special" -- in what way would it require that? 08:27
gfldex constructors would need to know that they are constructors as they would be required to throw the exception, that indicates that object creation has failed. 08:29
yurivish_: also see: doc.perl6.org/type/Nil
yurivish_ thanks. will read tomorrow! 08:31
rodarmor Ayo! Can perl6 be extended with perl6 grammars without modifying the compiler? 08:33
dalek c: dbd4765 | (Wenzel P. P. Peppmeyer)++ | doc/Type/Signature.pod:
add links to class Nil and class Failure (yurivish_++)
08:36
c: fea4938 | (Wenzel P. P. Peppmeyer)++ | doc/Type/Signature.pod:
Merge pull request #339 from gfldex/master

add links to class Nil and class Failure (yurivish_++)
FROGGS rodarmor: yes 08:38
gfldex rodarmor: that will be possible with Slangs. Technically you could modify the compiler already because it's implemented in Perl 6 and as such very dynamic.
rodarmor FROGGS: Sweet! Is there an example or docs for slangs up? Is it ready now or not yet?
FROGGS rodarmor: that's one example: github.com/FROGGS/p6-Slang-Piersing/
rodarmor: the usage of nqp:: functions is a cheat and will go away at some point 08:39
rodarmor FROGGS: This is so cool ^_^ 08:39
FROGGS rodarmor: though if you just want to create ops (prefix, postfix, infix, circumfix, postcircumfix), you dont need a slang
rodarmor I see that it gets access to exiting perl6 tokens. 08:40
*existing
FROGGS yes
tokens and action methods
rodarmor This is, like, an infinite amount of rope with which to hang myself. I'm looking forward to it.
FROGGS *g* 08:41
an extendable rope, so to say :o)
gfldex It's an infinite way to invent new kinds of rope.
rodarmor Maybe, just before it breaks my neck, I can make more rope, and get to the ground safely. 08:42
DrForr rodarmor: I just put up github.com/drforr/perl6-slang-roman that adds Roman numerals last night.
pdcawley rodarmor: And break your neck on landing?
rodarmor pdcawley: I'm sure that I can come up with a huge pile of, you know, like, soft, pillowy rope, that will cushion my landing. 08:43
pdcawley if you're going fast enough, it doesn't matter what breaks your fall.
rodarmor DrForr: sweet
gfldex DrForr: does it support unicode roman numerals?
DrForr "It's not a question of where it is, it's a question of how fast you hit it." (mangling that quotation, I know.)
gfldex: Glad you asked, why yes it does. 08:44
gfldex DrForr: is it in the ecosystem already? 08:44
DrForr Yep, even in the modules list, put it there myself.
gfldex cool
DrForr Search for 'roman' in the module list. 08:45
gfldex got it
FROGGS m: say unival("\c[0x216f]") 08:48
camelia rakudo-moar 34d2b6: OUTPUT«1000␤»
FROGGS wow, that indentation style is as weird as [Tux]++'s # :o) 08:50
gfldex DrForr: would you mind to add the following to the README.md? [![Build Status](travis-ci.org/drforr/perl6-slang.r...ang-roman)
FROGGS and DrForr++ # that's awesome 08:51
gfldex how do I tell the ecosystem where to find travis results for my modules? 08:52
moritz it knows automagically, I think 08:54
gfldex doesnt work for XHTML::Writer
github.com/gfldex/perl6-xhtml-writer
the little image in the README.md works, so travis is setup correctly 08:55
moritz gfldex: btw the heading in the README.md is wrong, iirc
gfldex it is, thanks 08:56
moritz gfldex: when did you add the travis? 08:56
gfldex add travis 08:57
gfldex authored 3 days ago
moritz hrmpf 08:58
gfldex and i think i pushed it to github right after that
maybe it needs a travis run after the module was added
moritz gfldex: another point regarding the readme: div( id="uniq",
should that be => instead of = ?
gfldex indeed, sadly there is no test driven development for markdown yet
moritz sorry, I can't seem to help with your actual problem :-) 08:59
same with class= in the next line
gfldex travis is running right now and the modules site is updates every 10 minutes. So we will know soon enought. 08:59
gfldex travis check has changed now from 09:20
'not set up' to 'unknown'
DrForr I'm not going to check in from work but I'll add the Travis blurb tonight when I get home. 09:23
RabidGravy morning 09:37
nine masak: R* will be based on 2016.01 09:57
abraxxa want 127001 fixed for 2016.01 10:08
brrt good * #perl6 10:29
yoleaux 7 Jan 2016 18:49Z <masukomi> brrt: is it currently possible to create a stand-alone executable for *nix system ?
RabidGravy marnin 10:31
brrt .tell masukomi: i'm sorry for not responding earlier; do you mean of perl6? if so, the answer (unfortunately) is no, not yet; the other answer is, with a special compunitrepo, this should be entirely feasible (e.g. the zip-archive-starting-with-an-executable trick)
yoleaux brrt: What kind of a name is "masukomi:"?!
brrt .tell masukomi i'm sorry for not responding earlier; do you mean of perl6? if so, the answer (unfortunately) is no, not yet; the other answer is, with a special compunitrepo, this should be entirely feasible (e.g. the zip-archive-starting-with-an-executable trick)
yoleaux brrt: I'll pass your message to masukomi.
El_Che brrt: that would be awsome 10:34
brrt aye, it would be 10:37
note that bulding moar 'statically' is currently already possible
but that doesn't really help that much
note, also, that while i *think* you can build a self-contained perl5, using any of the core modules also requires a full filesystem installation, so the state of the art is already not ideal 10:39
El_Che brrt: isn't cava perl not something like that? 10:39
brrt no idea, actually 10:40
anybody planning to go to FOSDEM this year?
El_Che you, I hope :) 10:41
brrt well, yes, i kind of promised :-)
El_Che I will send more info soon
brrt :-) 10:43
DrForr brrt: Yes, kinda have to :) 10:47
xenu search.cpan.org/~mlehmann/App-Stati...icperl.pod 10:48
i meant 10:49
metacpan.org/pod/distribution/App-...icperl.pod
El_Che brrt, xenu: www.cavapackager.com/
sadly not FOSS
brrt interesti9ng 10:50
let's also be very honest about this, a standalone binary of perl6 is the top priority of (afaik) the following set of developers: {} 10:51
nice-to-have, but not as nice as linux-distro-packages, bsd ports, macports, homebrew, windows etc. 10:52
moarvm currently doesn't even build correctly on solaris/illumos, and that's bad enough 10:53
RabidGravy I was going to look at solaris but I couldn't get it to run in a VM so abandoned the plan
El_Che brrt: don't understimate the attractiveness of go due to the single binary feature 10:58
El_Che I had a go at Solaris + moarvm 10:58
Solaris 10: libuv misses interfaces so it doesn't compile 10:59
Solaris 11: libuv compiles, but has failing tests
brrt yeah, it is a sucky state of affairs 11:00
El_Che RabidGravy: do you mean moarvm did not work in your vm or that you coudn't get a running solaris vm?
RabidGravy I couldn't get a working version of solaris in a VM
brrt hmmm... if anybody wants to have a stab at it, i'm sure there are plenty of people who can help out
brrt brb 11:01
RabidGravy I wasn't sufficiently motivated to chase it down
El_Che RabidGravy: I have two options in case you find the motivation:
- help you with virtualbox + the solaris 11 oracle virtualbox image (it works)
- give you access to solaris hw through OpenCSW 11:02
RabidGravy in the past I've had it working on qemu-kvm but I can't actually remember which version of solaris it was 11:04
El_Che the virtualbox (being oracle's) is surprisingly easy to get running 11:05
brrt_ solaris / illumos don't work well with gnome boxes, probably because gnome-boxes sends signals that are not understood somehow
brrt_ or the keyboard driver doesn't work together or something like that 11:05
El_Che brrt_: the default desktop on solaris is gnome 11:06
brrt_ virtualbox works much better, yes, but virtualbox doesn't use kvm, and i dislike loading dozens of overlapping-functionality in the already much-too-large linux kernel
or to put it in other words.... now that we're widely building virtualized systems, *not* having a microkernel is quite sucky 11:07
RabidGravy what? not CDE any more ? ;-) 11:13
El_Che RabidGravy: it was still an option in solaris 10, gone from 11
brrt_ El_Che: I mean the default easy-to-use qemu-based virtualization package in gnome3
which works well as long as all the world is linux, or even windows 11:14
RabidGravy FreeBSD works quite well in "gnome-boxes" as well 11:15
pierre-vigier One OOP question, is there a way to replicate the Moo/Moose lazy behavior on perl6 object system? 11:16
El_Che pierre-vigier: a builder sub? 11:17
pierre-vigier yes
RabidGravy depends how encapsulated you want it 11:18
pierre-vigier the idea would be to have some property that are complex to calculate
RabidGravy yeah
pierre-vigier so delay them until neede
so delay them until needed
then it would be public attribute 11:19
but read only
pierre-vigier i'm pretty sure there's an easy way, just did not find it :( 11:19
RabidGravy m: class F { has $.foo; method foo() { if not $!foo.defined { $!foo = "blather" }; $!foo } }; say F.new.foo; 11:20
camelia rakudo-moar 34d2b6: OUTPUT«blather␤»
andreoss .seen masak 11:21
yoleaux I saw masak 08:27Z in #perl6: <masak> gfldex: "would have required constructors to be special" -- in what way would it require that?
pierre-vigier indeed, i can do it myself, or even creating a trait
RabidGravy there is no built in way, but the tools to make it are there 11:22
brrt_ pierre-vigier: do you know about the trait is-cached?
pierre-vigier yes, it would allow me not to compute twice, might be enough 11:23
private attribue that is not defined
brrt_ doc.perl6.org/type/Routine#trait_is_cached
pierre-vigier then built it and add is-cached
brrt_ well, a public attribute is really a method that provides (by default) read-only access to a private variable 11:23
class Foo { has $.foo; } is equivalent to class Foo { has $!foo; method foo { $!foo; } } 11:24
pierre-vigier indeed
brrt_ well, you can say class Foo { method foo is cached { expensive-calculation(); } } 11:25
and it would... do what you mean?
dalek c: 150795b | lizmat++ | doc/Type/DateTime.pod:
Indicate positional candidate to be for 6.d
11:29
pierre-vigier yep, it would work also to cache 11:36
just need to check if it is per instance
i mean is cached 11:37
awwaiid doc.perl6.org/language/variables#Sigils <- This has a nice table with "flattens?"; should I delete that column post-GLR?
pierre-vigier i never tried
sortiz awwaiid, I think so. But more important Array.flat should be documented to avoid the confusion with Iterator.flat 11:55
awwaiid sortiz: yeah, but not here I think 11:58
sortiz awwaiid, nop, in types/Array I suppose. 11:59
dalek osystem: 1c2ca86 | (Peter Pentchev)++ | META.list:
Add Serialize::Naive to the ecosystem.

See github.com/ppentchev/Serialize-Naive
12:09
osystem: f658e61 | (Zoffix Znet)++ | META.list:
Merge pull request #119 from ppentchev/ppentchev-add-serialize-naive

Add Serialize::Naive to the ecosystem.
dalek kudo/nom: 308c469 | lizmat++ | src/core/ (3 files):
Move REMOVE-ROOT to Rakudo::Internals

and streamline with new gained knowledge :-)
12:09
Zoffix .tell jdv79 How is work on the P6 variant of PAUSE/CPAN/MetaCPAN going? Maybe the repo should be moved under the perl6 GitHub organization, so it'd be easier for potential volunteers to finds and contribute to? 12:15
yoleaux Zoffix: I'll pass your message to jdv79.
Zoffix .tell jdv79 we also now have #perl6-toolchain you may be interested in joining. 12:18
yoleaux Zoffix: I'll pass your message to jdv79.
cuonglm Is there any package for completion Perl6 code in emacs now? 12:19
Zoffix I'm unaware of such a package for any editor
moritz blogs.perl.org/users/dmitri/2015/08...erl-6.html if there's general ctags completion support for emacs, that should work with Perl 6 as well 12:20
pmurias To send the "JavaScript backend for Rakudo" grant application, I need to suggest a grant manager. Who should I suggest? 12:21
DrForr I've been working with Tom Hukins so far, seemed decent. 12:22
cuonglm @Zoffix: I don't think it work with builtin 12:23
@moritz: I don't think it work with builtin
moritz cuonglm: unless you run ctags over the setting too 12:24
RabidGravy DrForr, Tom's a nice guy worked with IRL for a few years but known him for ever 12:25
DrForr I keep missing him whenever our paths cross :/ 12:26
dalek kudo/nom: 14b73ac | lizmat++ | src/core/ (3 files):
Remove FILETEST-E to Rakudo::Internals

Also, no longer booleanify for internal usage.
12:28
cuonglm moritz: Can you clarify it? Sorry for my mis-understand 12:29
moritz ... not if you leave the channel :/ 12:38
RabidGravy oh well, I understood FWIW 12:38
moritz but you know what the setting is 12:40
RabidGravy this is true 12:41
dalek kudo/nom: b870ed5 | lizmat++ | src/core/IO/Path.pm:
Remove undocumented, untested and unspecced method
12:42
ugexe is that the .all from s16? `if $io.all(<f r w x s>) -> $size {` 12:46
lizmat it seems so, yes, where you using that ? 12:47
there are no tests for it, there is no further documentation for it
timotimo it's not the regular .all that builds a junction
ugexe no, i just remembered seeing it recently 12:48
in the spec itself, not in code
lizmat ok
well, it proved to be a very bad optimizing target
lizmat anyways, it can be easily reinstated if necessary, I just thought I'd clean it up since there were no tests nor doc for it 12:49
FROGGS [Coke], moritz, lizmat, TimToady, timotimo: I'd like to open a #perl6-release channel... any thoughts? 12:50
lizmat FROGGS: +1 for me
timotimo easier to ask for forgiveness than permission :)
FROGGS [Coke], moritz, lizmat, TimToady, timotimo: I like to discuss stuff like relying on a feature that pops up in the next weeks/months 12:51
moritz FROGGS: +1
FROGGS moritz: can you irclog it? :o)
moritz FROGGS: sure; did you freenode-register it? 12:52
FROGGS moritz: no idea how to do that
but I can google it
LordDrako hi guys 12:53
moritz FROGGS: /msg ChanServ register #perl6-release
LordDrako I am fiddling around a bit with perl 6's native call feature and windows api
it appears there is no way to do callbacks 12:54
timotimo LordDrako: you can look into rakudo's t/nativecall/ folder for examples for callbacks
t/04-nativecall/ 12:55
RabidGravy someone also did an advent post about it I think 12:57
'ang on
FROGGS moritz: done so, thank you
LordDrako timotimo, are these installed with the rakudostar windows installer?
hm, does not seem so 12:58
RabidGravy perl6advent.wordpress.com/2015/12/...-beyond-c/
timotimo maybe not; i'll give you the link to github
LordDrako RabidGravy, that's nice
timotimo github.com/rakudo/rakudo/tree/nom/...nativecall - the files with "callbacks" in their names
dalek kudo-star-daily: 7839420 | coke++ | log/ (5 files):
today (automated commit)
13:00
rl6-roast-data: 17adeb2 | coke++ | / (6 files):
today (automated commit)
LordDrako hm, how is it that nativecall seems to magically work with __stdcall as well? does it detect the calling convention by examining the symbol mangling? 13:01
LordDrako e.g. windows api functions are stdcall which differs from cdecl in that the called function cleans up the stack, not the calling function 13:03
Skarsnik ?
brrt_ LordDrako: I think C name mangling is limited and not related to calling convention; i wouldn't know how it works automagically 13:03
that's the domain of dyncall and friends
or libffi
LordDrako in case of mangling in stdcall there is simply an @ and a number at the end of the symbol (e.g. Foo@8) which means it gets 8 bytes of parameters (maybe 2 ints or something) 13:04
timotimo i didn't know it does any name mangling at all
Skarsnik Look at the source
It's probably in Moar 13:05
LordDrako the point is, calling a stdcall function using cdecl on the caller side should result in cleaning up the stack twice
LordDrako then again I am thinking too much as x86_64 does a lot of things differently 13:06
arnsholt brrt_: C does absolutely no name mangling. That's the reason it's possible to call into without going insane
Skarsnik Well if you seems to know this stuff, look at the code source to do if it does the right thing :)
arnsholt Calling convention is completely orthogonal
[Coke] wonders where his coffee got to. 13:07
yoleaux 9 Jan 2016 12:28Z <nine> [Coke]: panda will now fall back to curl and then to wget if downloading meta data failed. This should fix the proxy issues.
[Coke] nine++ thanks!
I am behind the great firewall right now, will give it a shot this morning.
(lowercase gf, not the real GF)
dalek kudo/nom: 8fb2088 | lizmat++ | src/core/Distro.pm:
Don't make an .IO unless we need it
13:09
brrt_ x86_64 has a single calling convention for windows-x64 LordDrako
also another single calling convention for POSIX
the latter is followed by pretty much all platforms that are not windows on x64 13:10
LordDrako brrt_, I know
brrt_ well, then, there is probably your answer
:-)
also, the posix version is better
LordDrako my initial question was focused on 32 bit windows
brrt_ ah, that wasn't obvious to me
maybe it is in the linker table?
(one of my main theses is: 32 bit x86 is insane. forget about it) 13:11
LordDrako arnsholt, en.wikipedia.org/wiki/Name_manglin...ft_Windows
[Coke] I see that Slang::Roman is using nqp opcodes; is that the only way to get it to work ? (and is that a bug?)
LordDrako you will see that in fact some C symbols are mangled in DLLs
DrForr [Coke]: No idea, I just know it worked. 13:12
arnsholt Oh, wow. I had no idea they did that on Windows
In that case, it may very well be that some kind of introspection is going on
brrt_ that is some terrible stuff 13:13
haha
DrForr FWIW that's what the other Slangs did.
RabidGravy it's possibly that the dynaloader is abstracting that away
arnsholt Or -ldl, yeah
Given that most of this likely happens in terms of dlopen/dlsym, that may be more likely
Anyways, none of that is implemented in NQP/Moar. All of that would be implemented in dyncall/libffi 13:14
DrForr [Coke]: Also, if you've got a higher-level alternative that doesn't involve writing raw pir (which is what that looks like to me) I'm all ears.
brrt_ indeed. the JIT contains an impl of generating c call interfaces, but that's only for amd64
LordDrako on windows it'll be more like LoadLibrary/GetProcAddress/FreeLibrary (more or less equivalent to dlopen/dlsym/dlclose), yet GetProcAddress would still expect a mangled name to find the address of the target function 13:19
timotimo FROGGS: github.com/FROGGS/p6-Slang-Piersin...iersing.pm - wouldn't this need "use nqp;" at the beginning to continue working? 13:20
arnsholt Huh. In that case I have no better suggestion than looking at the implementation in the FFI library =)
FROGGS timotimo: probably yes 13:21
dalek kudo/nom: 7054a2c | lizmat++ | src/core/ (4 files):
Move FILETEST-D to Rakudo::Internals

Also, no longer booleanify for internal usage.
13:25
lizmat timotimo: or MONKEY-GUTS ? 13:26
brrt_ or the dyncall library, for that matter
timotimo or that, yes
LordDrako timotimo, okay, the callback example is nice, though one thing is not demonstrated: having a struct that contains a pointer to a callback; and as I see it CStruct doesn't even support code refs 13:38
FROGGS LordDrako: true, that's not yet implemented 13:39
lizmat cycling&
LordDrako FROGGS, okay :-)
FROGGS LordDrako: we've got an open issue in the old zavolaj repository, musing about the way to implement it
LordDrako basically I was trying something like this (not sure if syntax would be like that in the future) pastebin.com/BVUPraUy 13:39
FROGGS one way would be to allow to cast a function pointer to something callable 13:40
[Coke] I am tempted to skip 2016.01; we need a really good plan for backwards compatibility, and I think it'll take us a little longer to have the infrastructure in place for that.
LordDrako I'd think when putting a coderef into a CStruct the same marshalling should apply as if it was used as a parameter to a native function directly 13:41
FROGGS [Coke]: please join #perl6-release
[Coke] (in which ase, we should think about what this means for R*: perhaps we will need a very minimal 2015.12.1 that has some precomp or installer fixes that we agree our safe - whatever is blocking R* at the moment.)
FROGGS LordDrako: I like your example
LordDrako FROGGS, also the Pointer[int16] is there because perl6 also complained about Str is encoded('utf16') in the CStruct 13:43
so in general I think CStruct, CUnion and native function calls should in most cases use the same rules, that would only seem logical
Skarsnik You need a release that fix precomp error and other bug (like the loop bug) soon. I think
FROGGS LordDrako: aye 13:44
Skarsnik Pointer[int16] look weird x) 13:45
FROGGS, why not do perl6/NativeCall repo to group NC relatif stuff like test/issue tracker? 13:46
FROGGS Skarsnik: we use RT today and that works well enough I'd say 13:47
Skarsnik I think RT is not a good 'visible' place to discuss stuff outside: This is a bug, that should do X and not Y 13:48
FROGGS LordDrako: yes, weird, that trait is not implemented for Attributes
Skarsnik: I've seen very nice discussions on RT
FROGGS LordDrako: can you rakudobug the trait issue? 13:49
llfourn from my perspective the main downside of RT is the person that creates the issue can't close it (or at least I don't know how)
Skarsnik RT ui sucks x) 13:50
and you can't edit
LordDrako FROGGS, :O RT has detected a possible cross-site request forgery for this request, because the Referrer header supplied by your browser (rakudo.org:80) is not allowed by RT's configured hostname
llfourn ^^ I've seen that one before :\
moritz RT being paranoid
LordDrako appeared when clicking the "List of all new and open tickets" link here: rakudo.org/tickets/
xD 13:51
FROGGS wfm: rt.perl.org/
FROGGS Skarsnik: I know about its UI and the missing edit functionality... but I'd rather like less tickets systems than more 13:52
Skarsnik Not really true 13:55
I probably use more github issue tracker since modules are on github than RT
[Coke] "let's have more channels for <excellent reason>" ... crap, now I have even more stuff to backlog and potentially discuss! (at least the even moar stuff is better organized. :) 13:56
LordDrako FROGGS, also I am not sure the encoding is the issue in the CStruct: when only using Str I get "CStruct representation only handles int, num, CArray, CPointer, CStruct, CPPStruct and CUnion"
Skarsnik Oh
dalek kudo/nom: aefe2c2 | coke++ | docs/release_guide.pod:
note possibility of delay
13:57
Skarsnik Probably because it look for shortname eq 'Str'
and is became Str+{NCencoded}
timotimo no
it checks for reprs, they are orthogonal to class names
Skarsnik Str should not pass if it was only that 13:58
LordDrako when using "has Str $.lpszMenuName is encoded('utf16');" in the struct I get "Can't use unknown trait 'is encoded' in an attribute declaration." so there are actually two problems here
Skarsnik m: say Str.REPR
camelia rakudo-moar 7054a2: OUTPUT«P6opaque␤»
timotimo m: say str.REPR
camelia rakudo-moar 7054a2: OUTPUT«P6str␤»
Skarsnik and str in struct is... I had segfault with it x) 13:59
RabidGravy m: use NativeCall; class Foo is repr('CStruct') { has Str $.foo };
camelia ( no output )
LordDrako hm
Skarsnik adding the trait to attribute should not be hard 14:00
LordDrako m: use NativeCall; class WindowClass is repr('CStruct') { has Str $.lpszMenuName; }
camelia ( no output )
LordDrako m: use NativeCall; class WindowClass is repr('CStruct') { has Str $.lpszMenuName is encoded('utf16'); } 14:01
camelia rakudo-moar 7054a2: OUTPUT«5===SORRY!5=== Error while compiling /tmp/xraVU4WnjE␤Can't use unknown trait 'is encoded' in an attribute declaration.␤at /tmp/xraVU4WnjE:1␤ expecting any of:␤ rw␤ readonly␤ box_target␤ leading_docs␤ …»
timotimo ah, so it's just the trait doesn't exist for attributes yet
andreoss m: my @x = 1..*; sub foo([]) { say "matches []" }
camelia ( no output )
andreoss m: my @x = 1..*; sub foo([]) { say "matches []" }; foo(@x)
camelia rakudo-moar 7054a2: OUTPUT«matches []␤»
LordDrako ha okay wait 14:01
the first error was because of the unsupported coderef 14:02
so yeah, it is only the missing trait
Skarsnik m: use NativeCall; my Str $a; explicitly-manage($a); say $a.^name;
camelia rakudo-moar 7054a2: OUTPUT«Cannot use 'does' operator with a type object.␤ in sub explicitly-manage at /home/camelia/rakudo-m-inst-1/share/perl6/sources/075EFE4B4CDAAF73190194EA876F81A1F128D1A2 line 344␤ in block <unit> at /tmp/ObLegJxB6Q line 1␤␤»
Skarsnik m: use NativeCall; my Str $a ="foo"; explicitly-manage($a); say $a.^name;
camelia rakudo-moar 7054a2: OUTPUT«Str+{NativeCall::ExplicitlyManagedString}␤»
Skarsnik m: use NativeCall; my Str $a is encoded('utf8') ="foo"; explicitly-manage($a); say $a.^name; 14:03
camelia rakudo-moar 7054a2: OUTPUT«5===SORRY!5=== Error while compiling /tmp/0ygo8cQtm3␤Can't use unknown trait 'is encoded' in a variable declaration.␤at /tmp/0ygo8cQtm3:1␤------> 3NativeCall; my Str $a is encoded('utf8')7⏏5 ="foo"; explicitly-manage($a); say $a.^␤ exp…»
nine [Coke]: FWIW the #perl6-toolchain channel did wonders for installer discussions
andreoss i thought it was resolved 14:04
Skarsnik I think adding multi trait_mod:<is>(Attribute $p, :$encoded!) is export(:DEFAULT, :traits) {
$p does NativeCallEncoded[$encoded];
}
should do the trick
RabidGravy is there some .rotor() incantation where given <a b c d> I can get <a b> <b c> <c d> ? 14:05
Skarsnik but you have to ensure the Attribute is in a CPPStruct or CStruct REPR
andreoss m: (my @a = 1..*).Capture.perl.say
camelia rakudo-moar 7054a2: OUTPUT«Failure.new(exception => X::Cannot::Lazy.new(action => "create a Capture from", what => Any), backtrace => Backtrace.new)␤»
PerlJam m: <a b c d>.rotor(2 => -1); # RabidGravy 14:06
camelia ( no output )
PerlJam m: <a b c d>.rotor(2 => -1).say; # RabidGravy
camelia rakudo-moar 7054a2: OUTPUT«((a b) (b c) (c d))␤»
RabidGravy PerlJam++ # nice one
LordDrako rt.perl.org/Ticket/Display.html?id=127237 not sure if I did something wrong, it's my first ticket here :p
timotimo looks good to me 14:08
andreoss jnthn: should it match or throw an exception for 1..*?
regarding #123581 14:09
m: sub foo([]) { say "[]" }; foo(1..*);
camelia rakudo-moar 7054a2: OUTPUT«2 unexpected named arguments passed (min,max) in sub-signature␤ in sub foo at /tmp/p7BXWqz3xe line 1␤ in block <unit> at /tmp/p7BXWqz3xe line 1␤␤»
andreoss m: sub foo([]) { say "[]" }; foo(my @x = 1..*);
camelia rakudo-moar 7054a2: OUTPUT«[]␤»
Skarsnik I think the encoded name for Attribute is not a good idea 14:11
timotimo you mean a [] subsignature should always .list?
andreoss m: multi foo([]) { say "[]" }; foo(my @x = 1..*);
camelia rakudo-moar aefe2c: OUTPUT«[]␤»
LordDrako I totally love perl 6 xD 14:12
m: my $foo = 23 but role { method Str() { '42' } }; say $foo; say $foo + 1;
camelia rakudo-moar aefe2c: OUTPUT«42␤24␤»
andreoss timotimo: i would expect something like `Cannot .elems a lazy list`
timotimo hmm
what nick does Lloyd Fournier have here? 14:14
PerlJam llfourn I believe
timotimo that makes sense 14:15
llfourn: why'd you expect the attribute of a role to have a package other than $?CLASS? or rather: what would you expect it to be?
FROGGS LordDrako++ # RT #127237 14:16
andreoss m: my @x = 1..*; say @x ~~ [] 14:17
camelia rakudo-moar aefe2c: OUTPUT«Cannot .elems a lazy list␤ in block <unit> at /tmp/83j8ivCRYw line 1␤␤Actually thrown at:␤ in block <unit> at /tmp/83j8ivCRYw line 1␤␤»
LordDrako FROGGS, ? 14:18
FROGGS LordDrako: are you wondering about the ++? 14:18
llfourn timotimo: i'd expect it to be the package it was declared in. 14:19
LordDrako this and why you wrote that the ticket number, because I could not find any change, but now I could, so its only the ++
xD
FROGGS LordDrako: design.perl6.org/S99.html#karma :o)
llfourn m: role Foo { has $.foo; }; Foo.^attributes[0].package.^name.say 14:20
camelia rakudo-moar aefe2c: OUTPUT«$?CLASS␤»
llfourn class Foo { has $.foo; }; Foo.^attributes[0].package.^name.say 14:20
m: class Foo { has $.foo; }; Foo.^attributes[0].package.^name.say
camelia rakudo-moar aefe2c: OUTPUT«Foo␤»
llfourn ^^ 14:20
Skarsnik hm
LordDrako FROGGS, is this tracked somehow or is it just an immediate sign of appreciation? 14:21
PerlJam LordDrako: we have no bot tracking karma last time I checked. 14:22
moritz but we have logs 14:23
RabidGravy and immediate warm fuzzies
moritz so we could retroactively extract karma from the logs
Juerd I can think of more interesting and useful way to spend time :)
Grepping logs is no fun
LordDrako well I guess it's better without... this might just result in bot orgies ++ing each other
moritz Juerd: indeed 14:24
in 6 minutes, I have a meeting where we try to track down why (fancy-)grepping logs gives wrong results
llfourn timotimo: I am looking at it closer since apparently it's not obvious. Perhaps I am missing something? 14:26
llfourn Althought I understand that roles are not the same as other packages I would have thought that for MOP introspection purposes attributes would masquerade as if their were part of a package. 14:27
nine I for one welcome our new journald overloards! 14:28
llfourn timotimo: I will give you an example on the ticket as to why I think this should work
moritz MOP and masquerade usually don't mix well
llfourn moritz: do you think that an Attribute.package should not return the role it wass declared in?
pierre-vigier Small question 14:29
llfourn if it was Attribute.class I would understand it giving a $?CLASS or something
pierre-vigier i see my travis badge in github
pierre-vigier how to do to have it displayed on modules.perl6.com 14:29
how to do to have it displayed on modules.perl6.org 14:30
?
Skarsnik It should be on m.p6.org 14:31
blame Zoffix if not
pierre-vigier i guess i did have a syntax error somewhere 14:32
Juerd pierre-vigier: On the page, it says "If you want to contribute your own module, please read this guide."
pierre-vigier do we need a particular travis file?
Juerd pierre-vigier: "this guide" is a link...
Skarsnik What is your modules name?
pierre-vigier i'll check ahain
i did read it when doing a module
Juerd pierre-vigier: Oh, sorry, I think I may have read what you said wrong. Your module is already in the list, but you want it updated? 14:33
pierre-vigier nope, it's up to date
but the badge
green when test are ok
Juerd pierre-vigier: Do you have a .travis.yml in your repository? 14:34
pierre-vigier yes
gfldex the travis code on modules.perl6.org is buggy
pierre-vigier and it's working on github side
pierre-vigier github.com/pierre-vigier/Perl6-Math-Matrix 14:35
Juerd pierre-vigier: Then I'm assuming modules.perl6.org will pick it up eventually
pierre-vigier one diff i can see with other module is blank line in .travis.yml 14:36
pierre-vigier i'll check if removing them solve that 14:36
RabidGravy I *think* there may be an open issue on perl6/modules regarding the non-displaying of travis results sometimes 14:42
mspo wow, grammar's are slow or it's easy to make mistakes
mspo I'm parsing a 195 bytes string and am running at 96MB + 90% cpu 14:43
gfldex do I understand the following line corretly, when I say it tests for the Content-Type of the response? github.com/perl6/modules.perl6.org...sCI.pm#L36 14:45
pmurias mspo: running for how long? 14:45
mspo pmurias: doesn't seem to stop
gfldex the content type returned by api.travis-ci.org is 'application/json;charset=utf-8' 14:46
Zoffix: see ^^^ please
pmurias mspo: seems like a bug (could be in your code), they should be that slow 14:47
* they shouldn't
mspo pmurias: I think it's [<this>*||<that>*||<something>*]* 14:48
let me see
mre gfldex: No It just sets the Accept header to 'Application/vnd.travis-ci.2+json' and thus expects (but desn't test it) to receive a response in that Content-type. It then decodes the response as json (expected as a hash) and gets the key called builds and derefs the array value
pmurias mspo: that seems to be an infinite loop 14:50
as you are matching a zero amount of <this> over and over again 14:51
mre gfldex: it seems that the Travis CI Api knows what it means but it probably just be 'application/json'
gfldex it then checks ->{state} to be something that is not q{"state":"finished"}, what is returned by the api
here a api response: api.travis-ci.org/repos/gfldex/per...ter/builds
"result":1 seams to indicate build failure and "result":1 success 14:53
mspo pmurias: indeed
pierre-vigier Strange, it's the only unknown of the page
mspo gist.github.com/msporleder/e40b5feac1c9eb83383e
mspo pmurias: I thought tokens would help since they don't backtrack 14:54
pierre-vigier api.travis-ci.org/repos/pierre-vig...rix/builds
FROGGS mspo: you can match an empty string quite often without backtracking for example 14:55
mre gfldex: I can't see anything that checks the state (other than to set the $dist->{travis_status})
pierre-vigier also, XHTML::Writer on your module 14:56
i see the badge as "not set"
but you have a travis file, really strange
gfldex mre: i will read up on the travis api and file a ticket if there is a mistake
pierre-vigier i
i'll check more tomorrow, late for me here
thanks and bye 14:57
Skarsnik I think Zoffix just fix something reletad to tracking master branch and not other
gfldex " If you do not set the Accept header, you might retrieve our old API formats. These are deprecated and will be removed soon. "
dalek p: 3baf0b6 | (Pawel Murias)++ | src/vm/moar/QAST/QASTOperationsMAST.nqp:
Map the nqp::lstat_time op.
14:58
p: a40c4c5 | (Pawel Murias)++ | src/vm/js/ (2 files):
[js] Implement (or fix) nqp::stat, nqp::stat_time, nqp::lstat_time, nqp::lstat.
mre gfldex: does it say what the Accept header should be?
gfldex the accept header is correct but they may have changed the API already, dosn't say any dates 14:59
El_Che I have a mthod signature (Array $matches). If I want to check the type of the array, is the way to go subsets? subset MatchesArray of Array where *.WHAT == Match; 14:59
something likes List<String> in java
mre gfldex: if it matches the docs and it works then I would leave it alone 15:00
gfldex mre: it doesn't work for quite a few modules 15:01
llfourn .tell timotimo I put a rather long explanation on the ticket re why I expect $attr.package to return the role it was declared in. Enjoy! 15:02
yoleaux llfourn: I'll pass your message to timotimo.
geekosaur perhaps there should be .source or something that points to the entity that defined it, so .package can be the package 15:04
dalek href="https://modules.perl6.org:">modules.perl6.org: 6ff87ce | (Zoffix Znet)++ | lib/ModulesPerl6/DbBuilder/Dist/Source/GitHub.pm:
[REBUILD] Fix cached dist builds breaking travis statuses

The check for whether .travis.yml file exists happens only when dist has new commits. Lacking those, the site thinks .travis.yml file was removed and the dist is not setup on travis, so it tosses the cached travis status too. (Closes #50)
15:06
llfourn m: class Foo { method meth { } }; class Bar is Foo { }; Bar.^find_method("meth").line.say 15:07
camelia rakudo-moar aefe2c: OUTPUT«1␤»
llfourn m: class Foo { method meth { } }; class Bar is Foo { }; Bar.^find_method("meth").package.say
camelia rakudo-moar aefe2c: OUTPUT«(Foo)␤»
llfourn geekosaur: to me if it works for classes it should work for roles 15:07
we already have .line .package etc 15:08
I just think that they shouldn't break for roles -- roles are valid packages they are not valid calsses
m: role Foo { method meth { } }; class Bar does Foo { }; Bar.^find_method("meth").package.say 15:09
camelia rakudo-moar aefe2c: OUTPUT«(Foo)␤»
llfourn and it works for methods so why not attributes... 15:09
dalek href="https://modules.perl6.org:">modules.perl6.org: 15d1a08 | (Wenzel P. P. Peppmeyer)++ | lib/ModulesPerl6/DbBuilder/Dist/PostProcessor/TravisCI.pm:
_get_travis_status does test for 'finished' now
15:10
href="https://modules.perl6.org:">modules.perl6.org: 73a921f | (Wenzel P. P. Peppmeyer)++ | lib/ModulesPerl6/DbBuilder/Dist/Source/GitHub.pm:
Merge branch 'master' of github.com/perl6/modules.perl6.org
FROGGS llfourn: roles get punned into classes or get consumed by classes
dalek c/sigil-noflat: 47424d8 | (Brock Wilcox)++ | doc/Language/variables.pod:
Remove the reference to auto flattening based on sigils
FROGGS llfourn: and the methods are added to the class
ohh wait
llfourn: nvm
dalek c: 47424d8 | (Brock Wilcox)++ | doc/Language/variables.pod:
Remove the reference to auto flattening based on sigils
c: 273ffa8 | (Brock Wilcox)++ | doc/Language/variables.pod:
Merge pull request #340 from perl6/sigil-noflat

Remove the reference to auto flattening based on sigils
gfldex Zoffix: i just pushed to modules.perl6.org a trivial fix that should help with travis updates 15:11
llfourn FROGGS: yes I think I have the .gist of it. Not 100% sure I get all of the edge cases. 15:12
m: role Foo { method foo { } }; Foo.^find_method("foo").package.say
camelia rakudo-moar aefe2c: OUTPUT«Method 'package' not found for invocant of class 'ForeignCode'␤ in block <unit> at /tmp/nLNfg81Lry line 1␤␤»
llfourn also interesting to note that it *doesn't* work if you do it directly 15:12
awwaiid gfldex: I noticed that you do a PR for your changes that you then merge -- I was doing a few direct commits before, but I think I'll do a PR/merge even if I'm going to merge it myself going forward. I think it makes it easier to see what has changed and allow for post-facto comments 15:13
geekosaur roles kinda don't exist unless something forces them to be reified as a mixin. MOP lookups wouldn't
FROGGS llfourn: .^ is implemented to not pun the role
geekosaur (mixin with an anonymous class) 15:14
llfourn FROGGS: but it works it just doesn't make the method into a Method, it's still a ForiegnCode
let's try punning it 15:15
FROGGS llfourn: yes, the transition from ForeignCode to Method happens at compose time
gfldex awwaiid: i'm doing the PR because _technically_ there is a travis that would catch bad things before they go live. However, I'm not willing to wait for 1h to wait for the build to finish, so I just hit that button right away.
llfourn m: role Foo { method foo { } }; Foo.new.WHAT.^find_method('foo').package.say
camelia rakudo-moar aefe2c: OUTPUT«(Foo)␤»
llfourn FROGGS: ahh yep that makes sense 15:16
FROGGS m: role Foo { method foo { } }; Foo.^pun.^find_method('foo').package.say
camelia rakudo-moar aefe2c: OUTPUT«(Foo)␤»
ZoffixW gfldex, are you sure your commit makes sense? The api.travis-ci.org/repos/gfldex/per...ter/builds is an old API 15:19
gfldex ZoffixW: i am not sure 15:20
ZoffixW: however i am sure that there is a problem 15:21
ZoffixW gfldex, with what?
gfldex ZoffixW: travis status for XHTML::Writer is not set up, if you click that you go to the travis site that states a passed build 15:22
ZoffixW: and there are a few other modules with the same problem
ZoffixW gfldex, that was a caching issue that I just fixed with github.com/perl6/modules.perl6.org...205b0219f6 15:23
gfldex ZoffixW: you can drop my commit then
ZoffixW This is the new Travis API and I see only 'passed'/'errored'/'failed' for the `status` key. It's a shame Travis doesn't bother to document all possible values -_- perl -MData::Dumper -MMojo::UserAgent -wlE 'say Dumper(Mojo::UserAgent->new( max_redirects => 5)->get("api.travis-ci.org/repos/gfldex/per...r/builds", { Accept => "application/vnd.travis-ci.2+json" })->res->json)' | grep 'state'
mspo is there an end of string match in regex?
ZoffixW OK, I'll revert your commit then. 15:24
mspo, $
mspo, $$ for end of line
m: say so 'foo bar' ~~ /bar$/; say so 'foo bar' ~~ /foo$/; say so "foo bar\nber" ~~ /bar$/; say so "foo bar\nber" ~~ /bar$$/;
camelia rakudo-moar aefe2c: OUTPUT«True␤False␤False␤True␤»
mspo ZoffixW: $ isn't documented 15:25
ZoffixW Yeah. Probably should be somewhere in docs.perl6.org/language/regexes#Anchors 15:26
mspo m: say so 'foo bar\nber' ~~ /ber$/; 15:26
camelia rakudo-moar aefe2c: OUTPUT«True␤»
mspo I can't seem to match the end ($) as a token 15:29
gfldex m: class C is Str { method Str(){'abc'} }; put C.new;
camelia rakudo-moar aefe2c: OUTPUT«␤»
gfldex should it do that? ^^^
Skarsnik not sure what put force to
gfldex put calls .Str 15:30
leedo gfldex: if i do C is Stringy, it works 15:31
dalek href="https://modules.perl6.org:">modules.perl6.org: 93d4c48 | (Zoffix Znet)++ | lib/ModulesPerl6/DbBuilder/Dist/Source/GitHub.pm:
Fix failing test
15:32
mspo is this valid? token theend { $ } 15:33
dalek href="https://modules.perl6.org:">modules.perl6.org: 97d346d | (Zoffix Znet)++ | lib/ModulesPerl6/DbBuilder/Dist/PostProcessor/TravisCI.pm:
[REBUILD] Revert 15d1a08d1d3fefddec0d19dd9429923927c8460a

The `finished` status is an old Travis API. The new one does not appear to have such a value for `status` key
travis-ci Doc build passed. Brock Wilcox 'Remove the reference to auto flattening based on sigils' 15:35
travis-ci.org/perl6/doc/builds/101605017 github.com/perl6/doc/commit/47424d8765c1
ZoffixW mspo, you may need to redefine ws token 15:37
mspo or is there another way to say "I'm done parsing this string" in my action class 15:39
ZoffixW m: grammar Foo { token TOP { 'foo' <end> }; token end { $ }; }; say Foo.parse: "foo" 15:40
camelia rakudo-moar aefe2c: OUTPUT«「foo」␤ end => 「」␤»
ZoffixW No idea. Grammars are still voodoo to me :)
mspo I'm starting to grok them a little 15:41
but this is a silly learning program and I really want to get it working ;)
awwaiid since when does travis-ci post here on doc builds? 15:45
FROGGS awwaiid: since half a year or so 15:46
awwaiid I must've just missed it before or maybe none of mine passed :)
FROGGS awwaiid: it is configured to be silent... only build errors and recoveries are posted 15:47
Ven o/ 15:50
Ven timotimo: do you think SDL2 is stable enough to be used by my students in one of their projects? 15:55
FROGGS Ven: I guess so
Skarsnik maybe missing some stuff?
FROGGS Ven: they know how to do stable stuff at least
mspo fyi github.com/perl6/doc/pull/341 15:57
pmurias Ven: \o
dalek c: 7cb83fb | (Zoffix Znet)++ | doc/Language/regexes.pod:
Document $ regex anchor
15:58
ZoffixW ehh
mspo, great minds think alike I guess :P
mspo ZoffixW: I think it's important to put a multi line string in there 15:59
imho
ZoffixW: to show the distinction of $$
dalek p: 59bb032 | (Pawel Murias)++ | src/vm/js/nqp-runtime/io.js:
[js] Follow moar semantics on nqp::stat and ISLNK
16:01
p: 9eae708 | (Pawel Murias)++ | t/nqp/19-file-ops.t:
Test nqp::stat_* ops more.
[Coke] travis-ci posts here on doc builds since less than a week ago. 16:02
dalek c: 5b939ec | (Zoffix Znet)++ | doc/Language/regexes.pod:
Explicilty mention ^ and $ anchor to string and not line. mspo++
16:03
[Coke] github.com/perl6/doc/commit/68ae004
llfourn m: $_ .^= name # should set $_ to 'Any' but doesn't work :( 16:09
camelia rakudo-moar aefe2c: OUTPUT«5===SORRY!5=== Error while compiling /tmp/UMkqVfsglm␤Malformed postfix call (only alphabetic methods may be detached)␤at /tmp/UMkqVfsglm:1␤------> 3$_ .7⏏5^= name # should set $_ to 'Any' but doe␤»
FROGGS .^= seems to by NYI 16:10
FROGGS and might not be hard to implement 16:11
andreoss m: multi foo([]) { say "[]" }; foo(my @x = 1..*); 16:12
camelia rakudo-moar aefe2c: OUTPUT«[]␤»
andreoss is it a desirible behaviour? I see the ticket is resolved 16:13
moritz m: say (my @x = 1..*) ~~ {} 16:14
m: say (my @x = 1..*) ~~ [] 16:15
camelia rakudo-moar aefe2c: OUTPUT«Memory allocation failed; could not allocate 285920 bytes␤»
rakudo-moar aefe2c: OUTPUT«Cannot .elems a lazy list␤ in block <unit> at /tmp/1uRhG8ZUzN line 1␤␤Actually thrown at:␤ in block <unit> at /tmp/1uRhG8ZUzN line 1␤␤»
andreoss m: (1..*).Capture.perl.say
camelia rakudo-moar aefe2c: OUTPUT«\(:max(Inf), :min(1))␤»
andreoss m: (my @x = 1..*).Capture.perl.say 16:16
camelia rakudo-moar aefe2c: OUTPUT«Failure.new(exception => X::Cannot::Lazy.new(action => "create a Capture from", what => Any), backtrace => Backtrace.new)␤»
mspo okay I figure it out 16:17
mspo gist.github.com/msporleder/ae031c2829d58f5d7267 16:20
llfourn FROGGS: ah ok at least it's a thing :) 16:20
pmurias how should nqp::stat + ISLNK work? should it follow the symlink and check if the target is a symlink? 16:21
gfldex pmurias: it should not follow or it will get complicated quickly, symlinks can loop and there may be other pitfalls 16:54
anand_ hi 17:05
anand_ hi 17:06
ZoffixW Is it possible to extend the language by adding a method to say, Mu, and have it show up in all the things that inherit from Mu? 17:11
m: use MONKEY-TYPING; augment class Mu { method foo { say 42 }; }; my $x = 42; $x.foo
camelia rakudo-moar aefe2c: OUTPUT«Method 'foo' not found for invocant of class 'Int'␤ in block <unit> at /tmp/FEX_JP3JL1 line 1␤␤»
mspo thanks for taking my patch, btw
nine ZoffixW: AFAIK subclasses do not notice changes to their base classes. 17:12
ZoffixW aw :( 17:13
nine ZoffixW: it's basically a cache invalidation problem
ZoffixW So much for my plan to take over the world.
m: use MONKEY-TYPING; augment class Any { method foo { say 43 }; }; Int.^compose; my $x = 42; $x.foo
camelia rakudo-moar aefe2c: OUTPUT«43␤»
ZoffixW \o/ 17:14
stmuk_ wonders if the coming R* should warn JVM is broken
pmurias how hard would it be to unbreak JVM? 17:15
ilmari r: say $*PERL.compiler.build-date 17:20
camelia rakudo-moar aefe2c: OUTPUT«2016-01-11T14:29:31Z␤»
..rakudo-jvm 6c0f93: OUTPUT«2015-11-02T17:18:59Z␤»
[Coke] pmurias: if we knew how hard it would it be, it would probably be done already. 17:24
but it hasn't been on par with moar since well before Christmas.
so even if it we got it passing all the spec tests, it's still not 100%.
(because the fudges vary)
TimToady .botsnack 17:31
yoleaux :D
nine TimToady: there's a new #perl6-release channel 17:34
TimToady cool
nine irclog.perlgeek.de/perl6-release/2016-01-11
Juerd I thought it was already released :) 17:35
[Coke] Now we're trying to figure out how not to break stuff. 17:36
nine The second release is actually the hardest one as we have to figure out how to handle versioning :)
[Coke] mmm 17:37
Juerd Ah :)
Skarsnik My main question is what is the version if I say nothing? I really don't want that to be 6.c 17:43
PerlJam Skarsnik: what would you like it to be? 17:44
Skarsnik: and why don't you want it to be 6.c?
timotimo .tell ven SDL2 is stable enough to be used by students. the SDL2::Raw module ... not necessarily :P
yoleaux 15:02Z <llfourn> timotimo: I put a rather long explanation on the ticket re why I expect $attr.package to return the role it was declared in. Enjoy!
timotimo: I'll pass your message to ven.
timotimo .tell ven also, only an SDL2 package isn't enough to make great stuff; you'd ideally also have OpenGL bindings 17:45
yoleaux timotimo: I'll pass your message to ven.
Skarsnik I mean that depend if 6.c include bugs of the chrismas release (even buggy roasty test) and especially since 6.c is still not complete for me (I think not everything is tested/documented) 17:46
nine Skarsnik: those are certainly good thoughts for #perl6-release 17:48
leont m: say $^T 17:50
camelia rakudo-moar aefe2c: OUTPUT«5===SORRY!5=== Error while compiling /tmp/nS5muYIOYN␤Unsupported use of $^T variable; in Perl 6 please use $*BASETIME␤at /tmp/nS5muYIOYN:1␤------> 3say $^T7⏏5<EOL>␤»
leont m: say $*BASETIME
camelia rakudo-moar aefe2c: OUTPUT«Dynamic variable $*BASETIME not found␤ in block <unit> at /tmp/Ld6DfGh5vL line 1␤␤Actually thrown at:␤ in block <unit> at /tmp/Ld6DfGh5vL line 1␤␤»
leont Less helpful than imagined
I guess I'll have to use BEGIN { now } or some such
dalek kudo/nom: 98ee2da | (David Warring)++ | src/core/CompUnit/PrecompilationRepository.pm:
Ensure uniqueness of precomp dependences.

Some background: I noticed duplicate entries appearing in some of the `lib/.precomp/*.rev-deps` when doing the following:
  ```
  $ panda installdeps PDF
  $ panda look PDF
  .panda-work/1452532671_1$ time perl6 -I lib -e'use PDF::DAO::Doc'
  ```
With this patch, duplicates are removed from `*.rev-deps` and the second `use PDF::DAO::Doc` only takes about half the time.
17:52
kudo/nom: 42a5832 | niner++ | src/core/CompUnit/PrecompilationRepository.pm:
Merge pull request #681 from dwarring/patch-2

Ensure uniqueness of precomp dependencies.
pmurias [Coke]: do a lot of users use the JVM backend? I could try to fix some things if people are depending on it? 17:56
ZoffixW Rakudobugged the $*BASETIME thing: rt.perl.org/Ticket/Display.html?id=127241 17:57
ZoffixW m: ␤=begin Foo␤testing things␤=end Foo␤ say $=Foo 18:01
camelia rakudo-moar aefe2c: OUTPUT«5===SORRY!5=== Error while compiling /tmp/WYDNe0BFeJ␤Pod variable $=Foo not yet implemented. Sorry. ␤at /tmp/WYDNe0BFeJ:4␤------> 3 say $=Foo7⏏5<EOL>␤»
ZoffixW :(
nine Seems like nqp-jvm doesn't build 18:02
dalek p: b12d795 | (Dagfinn Ilmari Mannsåker)++ | / (2 files):
Use skip() instead of ok(1, …) in t/nqp/19-file-ops.t

The conversion from say("ok $_ # Skipped: …") for (…) to ok() left the test number in what is now the test description, which rapidly went out of sync with the real test numbers.
Instead, add an optional count parameter to skip() and use that.
18:04
p: ab366b6 | jnthn++ | / (2 files):
Merge pull request #272 from ilmari/fix-file-ops-skip

Use skip() instead of ok(1, …) in t/nqp/19-file-ops.t
ilmari jnthn++ # quick merge 18:05
2 minutes!
jnthn ilmari: I even read it! ;) 18:07
yoleaux 31 Dec 2015 07:54Z <TimToady> jnthn: We now do value loops using your Seq.from-loop routines, after some drama over doing block transforms outside of where @!BLOCKS is a valid way to look things up
31 Dec 2015 09:37Z <lizmat> jnthn: feels to me that Supply.Promise should really be a promise on the Supplier to be kept in Supplier.done, so we wouldn't need a tap for it
9 Jan 2016 07:02Z <DrForr> jnthn: Inconistency that probably is out of scope for Grammar::{Debugger,Tracer} - once the TOP rule has matched, if there is more text to be matched by the parse('foo') method it's not reported, so Grammar::Tracer could conceivably report a MATCH when the parse() still fails.
jnthn Wow, only 3 messages after 2-3 weeks away \o/
ilmari jnthn: welcome back :) 18:08
El_Che jnthn++ is back :) 18:08
jnthn lizmat: No, .Promise should be callable on any Supply, not just those that come from a Supplier. We could mebbe add one to Supplier as a fast-path if it's actually common
El_Che jnthn: those 3 people are your mortal enemies don't letting you take the rest you needed :) 18:09
TimToady mwahaha
jnthn .tell DrForr It's a common enough trap it's worth trying to help folks with; please file a github issue on the module for that if you didn't already :) 18:10
yoleaux jnthn: I'll pass your message to DrForr.
TimToady actually, mine was just a report of something he doesn't have to worry about anymore :)
DrForr Will do.
yoleaux 18:10Z <jnthn> DrForr: It's a common enough trap it's worth trying to help folks with; please file a github issue on the module for that if you didn't already :)
TimToady well, except insofar as we need to unify the lexical lookups into one mechanism rather than two at some point
jnthn Geez, when I went for break it was all hugs and stuff here, and now it's all mortal enemies? :)
El_Che :) 18:11
awwaiid jnthn: *hug*
DrForr It's there as #24.
timotimo Mortal Hugbat
Juerd jnthn: Deadly hugs :|
timotimo FINISH HUG ... hugtality!
TimToady huggable, help
huggable TimToady, I'm a factoid bot. See me my source at github.com/zoffixznet/perl6-IRC-Cl...in-Factoid
awwaiid hug you... TO DEATH
gtodd jnthn: you mean mortal sibling rivarly ?
DrForr Hugs not bugs. 18:12
El_Che DrForr: keep submitting bugs until you get to #42. Those get always fixed :)
jnthn Oh no, I wrote a module with 24 bugs?! :P
Juerd DrForr: [email@hidden.address] :)
DrForr No, github. 18:12
jnthn Damn, that means it has a userbase :P
Juerd githug
TimToady my thing has more bugs than yours :P
well, except insofar as my thing is also your thing... 18:13
El_Che there is the love again 18:14
jnthn Was gonna say, did I get fired... :)
TimToady yes, and the glaze came out pretty good this time :) 18:14
awwaiid shiney 18:15
jnthn Mmmm...
jnthn is waiting for nom to be delivered
FatalNIX Hey guys 18:15
geekosaur (there must be an internet law somewhere that says that if you want people to use your program, plant bugs in it) 18:16
FatalNIX congratulations on the great news from november? :)
TimToady jnthn: for your future reference, there's now two new channels, #perl6-toolchain and #perl6-release, but they're logged, so no need to join in a hurry
jnthn What's #perl6-release for, ooc? 18:17
TimToady figuring out the details of how to allow for progress and bug fixes without breaking anything :) 18:17
jnthn Toolchain I can guess. I'm also awful at toolchain things, so I'm not sure if my joining would be a net positive/negative. :)
Ah, #perl6-release I should probably join then :)
FatalNIX How is Perl6 on the JVM progressing? 18:18
TimToady likelier to be interesting to you
jnthn We didn't spawn a compiler dev one yet?
TimToady not yet
that I know of
jnthn (For the guts stuff that's not so guts as #moarvm...)
OK
TimToady mabye it's a sekrit
jnthn ;)
FatalNIX: It got less attention in to rush to get the Christmas release out the door. Now I expect it'll get a bit more attention again... 18:19
FatalNIX jnthn, I'm getting a bit eager to try some Mincraft modding with it at some point :) 18:20
ZoffixW :o
TimToady FatalNIX: the JVM folk are starting to come back online after holidays, and surveying the damage :)
FatalNIX Minecraft*
El_Che TimToady: I hope you're now making a cheap pun on the slow startup of the jvm!
:)
ZoffixW m: say $*SPEC.catfile: 42, "\0" 18:22
camelia rakudo-moar 42a583: OUTPUT«42/␀␤»
dalek kudo/language_versions: 793258e | (Stefan Seifert)++ | / (8 files):
First attempt at adding a CORE.d setting
18:24
kudo/language_versions: aafd117 | (Stefan Seifert)++ | / (7 files):
Bring back IO::CatPath and IO::CatHandle in 6.d

nine@sphinx:~> perl6 -e 'IO::ArgFiles.new;' nine@sphinx:~> perl6 -e 'use v6.d; IO::ArgFiles.new;' Could not find symbol '&ArgFiles'
nine now with JVM support (untested due to nqp-j breakage) 18:24
FatalNIX I think that will be a nice little test today 18:26
to see if I can make an example hellow world mod with Perl6 for Minecraft. It looks like there is just enough support for it to work with maytbe a tiny bit of java glue 18:27
FatalNIX for the annotations 18:27
FatalNIX I wonder if the way jvm library functions are called have been syntatically improved though 18:28
ZoffixW m: my ($x, $y) = $*SPEC.basename($*SPEC.catfile: 42, "foo.txt/"), $*SPEC.basename: "/foo/foo.txt/"; say [ ($x,), ($y,) ]
camelia rakudo-moar 42a583: OUTPUT«[(foo.txt) ()]␤»
FatalNIX in a sense that you don't need to deal with method descriptors 18:29
ZoffixW m: class Foo {}; GLOBAL::.keys.say
camelia rakudo-moar 42a583: OUTPUT«(Foo)␤»
ZoffixW Is there a similar thing to get a list of all the built-in classes?
nine m: CORE::.keys.say 18:30
camelia rakudo-moar 42a583: OUTPUT«(SIGSEGV WhateverCode &FILETEST-X Slip &callframe Pair SIGHUP &flat PromiseStatus CurrentThreadScheduler &RETURN-LIST utf8 &MAKE-DIR-LIST &infix:<∖> StringyEnumeration Distribution &splice &postcircumfix:<{ }> &callsame &GATHER Backtrace PF_INET6 &sinh &…»
ZoffixW Thanks
TimToady m: SETTING::.keys.say 18:31
camelia rakudo-moar 42a583: OUTPUT«(&pipe $=pod RESTRICTED-CLASS &symlink !UNIT_MARKER &UNLINK-PATH &SYMLINK-PATH &MAKE-DIR &rmdir EXPORT $_ $! PIO &CHANGE-DIRECTORY &chmod Proc NativeCall &COPY-FILE &rename &link ::?PACKAGE GLOBALish $¢ &shell $=finish &RENAME-PATH &REMOVE-DIR &CHMOD-PATH…»
ZoffixW m: .say for SETTING::.keys.sort.map: *.WHAT; 18:35
camelia rakudo-moar 42a583: OUTPUT«Cannot call map(List: Whatever); none of these signatures match:␤ ($: Hash \h, *%_)␤ (\SELF: &block;; :$label, :$item, *%_)␤ (HyperIterable:D $: &block;; :$label, *%_)␤ in block <unit> at /tmp/uJTLb6mzoG line 1␤␤»
ZoffixW m: .say for SETTING::.keys.sort.map: { $_.WHAT }; 18:35
camelia rakudo-moar 42a583: OUTPUT«(Str)␤(Str)␤(Str)␤(Str)␤(Str)␤(Str)␤(Str)␤(Str)␤(Str)␤(Str)␤(Str)␤(Str)␤(Str)␤(Str)␤(Str)␤(Str)␤(Str)␤(Str)␤(Str)␤(Str)␤(Str)␤(Str)␤(Str)␤(Str)␤(Str)␤(Str)␤(Str)␤(Str)␤(Str)␤(Str)␤(Str)␤(Str)␤…»
nine TimToady: SETTING:: will be somewhat reduced in a 6.d nested setting: > perl6 -e 'use v6.d; say ::SETTING.WHO.keys'
ZoffixW Hm. Is that a bug?
nine ($=pod !UNIT_MARKER EXPORT $_ $! &slurp ::?PACKAGE GLOBALish $¢ $=finish $/ $?PACKAGE)
ZoffixW: I dare say a bug in your code ;) 18:36
ZoffixW: that is: if you expect the keys to be something other than Str
ZoffixW nine, I mean why doesn't this work: m: .say for SETTING::.keys.sort.map: *.WHAT;
nine ZoffixW: you mean .values, not .keys
ZoffixW m: .say for SETTING::.values.sort.map: *.WHAT; 18:37
camelia rakudo-moar 42a583: OUTPUT«Sub object coerced to string (please use .gist or .perl to do that) in block <unit> at /tmp/ZWk3rrXIdf line 1␤Cannot call infix:<cmp>(RESTRICTED-CLASS, Sub); none of these signatures match:␤ (\a, \b)␤ (Real \a, Real \b)␤ (Int:D \a, Int:D …»
ZoffixW is confused
nine m: .say for SETTING::.values.sort.map: *.^name;
camelia rakudo-moar 42a583: OUTPUT«Sub object coerced to string (please use .gist or .perl to do that) in block <unit> at /tmp/jcz24kLsUG line 1␤Cannot call infix:<cmp>(RESTRICTED-CLASS, Sub); none of these signatures match:␤ (\a, \b)␤ (Real \a, Real \b)␤ (Int:D \a, Int:D …»
ZoffixW I figured { .map: *.WHAT } was equivalent to { .map: { $_.WHAT } }
timotimo i imagine .values.sort doesn't make much sense
nine m: .say for CORE::.values.map(*.^name).sort; 18:38
camelia rakudo-moar 42a583: OUTPUT«Any␤Backtrace␤Blob[uint8]␤Block␤Block␤Bool␤CompUnit␤Complex␤CurrentThreadScheduler␤Cursor␤Date␤Distribution␤Duration␤FileChangeEvent␤FileChangeEvent␤Grammar␤HyperSeq␤IO␤Instant␤IntAttrRef␤IntLexRef␤JSONPrettyAction…»
nine ZoffixW: github.com/rakudo/rakudo/blob/nom/...n.pm#L2408 for some real world code 18:39
ZoffixW Thanks 18:40
I still think this is a bug and it should Just Work(tm):
m: say (1, 2, 3).map: {$_}
camelia rakudo-moar 42a583: OUTPUT«(1 2 3)␤»
ZoffixW m: say (1, 2, 3).map: *
camelia rakudo-moar 42a583: OUTPUT«Cannot call map(List: Whatever); none of these signatures match:␤ ($: Hash \h, *%_)␤ (\SELF: &block;; :$label, :$item, *%_)␤ (HyperIterable:D $: &block;; :$label, *%_)␤ in block <unit> at /tmp/olYyRtIC58 line 1␤␤»
timotimo ZoffixW: we accept Whatever as a parameter in many cases already to do "special casing"
maybe we should do that in this case, too
FatalNIX so much unicode 18:41
nine But what's the point of map(*)?
FatalNIX so many squares and boxes on my screen
ZoffixW nine, that was just a short example. The real-world code would be: *.method-call
PerlJam FatalNIX: welcome to the future :)
ZoffixW *<hash-key>
nine ZoffixW: *.method-call does work 18:42
ZoffixW m: say (1, 2, 3).map: *.Int
camelia rakudo-moar 42a583: OUTPUT«(1 2 3)␤»
nine m: say (1, 2, 3).map: *.Str
camelia rakudo-moar 42a583: OUTPUT«(1 2 3)␤»
ZoffixW :o
m: say (1, 2, 3).map: *.WHAT
camelia rakudo-moar 42a583: OUTPUT«Cannot call map(List: Whatever); none of these signatures match:␤ ($: Hash \h, *%_)␤ (\SELF: &block;; :$label, :$item, *%_)␤ (HyperIterable:D $: &block;; :$label, *%_)␤ in block <unit> at /tmp/tjyUWBxZDr line 1␤␤»
ZoffixW Why doesn't this one work?
timotimo because .WHAT isn't a method call
ZoffixW Ah. What is it?
timotimo it's macro-ish and doesn't autocurry with *
TimToady a postfix pretending to be a method 18:43
ZoffixW I see. Then nevermind.
timotimo m: say (1, 2, 3).map: *.DEFINITE 18:44
camelia rakudo-moar 42a583: OUTPUT«Cannot call map(List: Bool); none of these signatures match:␤ ($: Hash \h, *%_)␤ (\SELF: &block;; :$label, :$item, *%_)␤ (HyperIterable:D $: &block;; :$label, *%_)␤ in block <unit> at /tmp/6UecYyjBQF line 1␤␤»
timotimo same in this case apparently
TimToady they tend to be in CAPS for that reason
timotimo yeah
TimToady some of them might be currently implemented as methods, but we don't promise that they will continue to be 18:45
Hotkeys Why are strange things not allowed as var names? 18:47
m: my 🐶 = 3; say 🐶 18:48
camelia rakudo-moar 42a583: OUTPUT«5===SORRY!5=== Error while compiling /tmp/B7hoMynQU4␤Malformed my␤at /tmp/B7hoMynQU4:1␤------> 3my7⏏5 🐶 = 3; say 🐶␤»
ZoffixW .u 🐶
yoleaux U+1F436 DOG FACE [So] (🐶)
ZoffixW .u Δ
yoleaux U+0394 GREEK CAPITAL LETTER DELTA [Lu] (Δ)
ZoffixW .u 9
yoleaux U+0039 DIGIT NINE [Nd] (9)
Hotkeys It was the first strange thing j could find on my Android keyboard
timotimo Hotkeys: has to be a term 18:49
m: sub term:< > { state $ };
camelia rakudo-moar 42a583: OUTPUT«5===SORRY!5=== Error while compiling /tmp/MOnEGDGJSY␤Null operator is not allowed␤at /tmp/MOnEGDGJSY:1␤------> 3sub term:< >7⏏5 { state $ };␤»
ZoffixW As far as Strange Things go, they have to consist of "L" "N" unicode "types" (and maybe a few others I missed). "S" are symbols I think
timotimo did i put the dog face correctly?
i can't see it :(
ZoffixW No
m: sub term:<🐶> { state $ }; 18:50
camelia ( no output )
ZoffixW m: sub term:<🐶> { state $ }; say 🐶
camelia rakudo-moar 42a583: OUTPUT«(Any)␤»
timotimo would \dogface work? 18:51
as in: my \dogface?
ZoffixW Yes, it will 18:52
Hotkeys How would I assign a value to the term
I've not used terms
Hotkeys Not that I'll use dogface a lot 18:53
But I like to know :p
ZoffixW m: sub term:<🐶> is rw { state $ }; 🐶 = 42; say 🐶
camelia rakudo-moar 42a583: OUTPUT«42␤»
Hotkeys Ah
timotimo in that case, there's no need for the term sub at all
just have my \dogface := my $; or something like that 18:54
ZoffixW timotimo, Oh, I thought you meant literal "dogface". It'll work with the word, but not the char
m: my \🐶 = 42;
camelia rakudo-moar 42a583: OUTPUT«5===SORRY!5=== Error while compiling /tmp/EpbFJdPahC␤Malformed my␤at /tmp/EpbFJdPahC:1␤------> 3my7⏏5 \🐶 = 42;␤»
timotimo ...
ZoffixW ?
timotimo i thought you'd have noticed i can't get that thing on my end by copy-pasting :P
ZoffixW I'm not that smart :P 18:54
ZoffixW m: sub term:<🐶🐶🐶🐶🐶🐶> { say "{&?ROUTINE.name.chars-7} puppies" }; 🐶🐶🐶🐶🐶🐶 18:56
camelia rakudo-moar 42a583: OUTPUT«6 puppies␤»
Hotkeys Lol
Can that be done with an arbitrary number of puppies 18:57
ZoffixW tries
Hotkeys :D
I'm on the bus right now on my phone
Otherwise I'd try 18:58
timotimo what is the name of that term? i only see blank space between the < >
TimToady try the log? should be 6 puppies
ZoffixW m: sub term:<🐶> { 1 }; sub postfix:<🐶> { $^a+1 }; say "{🐶🐶🐶🐶🐶🐶🐶🐶🐶🐶} puppies" 18:59
timotimo ah, of course!
camelia rakudo-moar 42a583: OUTPUT«10 puppies␤»
ZoffixW m: sub term:<🐶> { 1 }; sub postfix:<🐶> { $^a+1 }; say "{🐶🐶🐶🐶🐶🐶🐶🐶🐶🐶🐶🐶🐶🐶} puppies"
camelia rakudo-moar 42a583: OUTPUT«14 puppies␤»
ZoffixW :D
Hotkeys Yay
timotimo i don't really understand why it'd need the -7 in there
TimToady we need a milder term for mojibake that are the correct characters but overlapping
ZoffixW timotimo, 'term:<>' is 7 chars
timotimo oh, duh
TimToady: maybe something involving subway trains? 19:00
TimToady
.oO(mojigroping?)
Hotkeys mojitrain
mojiplane
mojiautomobile
TimToady mojisardines
Hotkeys mojimojo 19:01
mspo mojibake is google-able 19:01
TimToady mojbiake
Hotkeys Lol
mojibate
:)
TimToady mojijiji 19:02
mojjjji 19:03
ZoffixW m: sub term:<🐶> {class C is Int {my $x = 1; method gist { "$x puppies" }; method boop {$x++; self}}}; sub postfix:<🐶> { $^a.boop }; say 🐶🐶🐶🐶🐶🐶🐶🐶🐶🐶🐶 19:05
camelia rakudo-moar 42a583: OUTPUT«11 puppies␤»
ZoffixW m: sub term:<🐶> {class C is Int {my $x = 1; method gist { "$x puppies" }; method boop {$x++; self}}}; sub postfix:<🐶> { $^a.boop }; say 🐶🐶🐶🐶🐶🐶🐶🐶🐶🐶🐶🐶🐶🐶🐶🐶🐶🐶🐶🐶🐶🐶
camelia rakudo-moar 42a583: OUTPUT«22 puppies␤»
ZoffixW ^_^ completely encapsulated now :D
TimToady boop is not what puppies make 19:06
timotimo you can still boop a puppy on the nose
that counts as boop, doesn't it?
TimToady only knows how to bap
ZoffixW m: class Foo{} 19:07
camelia ( no output )
ZoffixW m: class Foo is Int{}
camelia rakudo-moar 42a583: OUTPUT«5===SORRY!5=== Error while compiling /tmp/poMXu0zSBD␤Cannot call trait_mod:<is>(Foo, Int, Hash); none of these signatures match:␤ (Mu:U $child, Mu:U $parent)␤ (Mu:U $child, :$DEPRECATED!)␤ (Mu:U $type, :$rw!)␤ (Mu:U $type, :$nativ…»
timotimo didn't we have a helpful error about that at one point? 19:07
TimToady I believe so 19:08
timotimo maybe only for traits with names
rather than objects named as traits
m: class Foo is export{ }
camelia rakudo-moar 42a583: OUTPUT«5===SORRY!5=== Error while compiling /tmp/4iiYrPelnJ␤Unable to parse class definition␤at /tmp/4iiYrPelnJ:1␤------> 3class Foo is export{ }7⏏5<EOL>␤»
timotimo :\
m: class Foo is export{}
camelia rakudo-moar 42a583: OUTPUT«5===SORRY!5=== Error while compiling /tmp/e4kgTlg1kb␤Unable to parse class definition␤at /tmp/e4kgTlg1kb:1␤------> 3class Foo is export{}7⏏5<EOL>␤»
ZoffixW m: sub foo is export{} 19:09
camelia rakudo-moar 42a583: OUTPUT«5===SORRY!5===␤Trait 'is export' needs whitespace before block␤at /tmp/5tO_UVrVAD:1␤------> 3sub foo is export{}7⏏5<EOL>␤Missing block (apparently claimed by 'is export')␤at /tmp/5tO_UVrVAD:1␤------> 3sub foo is export{}7⏏5<EOL>…»
TimToady maybe that's what we're thinking of 19:10
could usefully be extended to packagey defs
[Coke] .tell pmurias we have no stats on that sort of thing, but we've never had a java-based christmas. 19:12
yoleaux [Coke]: I'll pass your message to pmurias.
ZoffixW Rakudobugged: rt.perl.org/Ticket/Display.html?id=127242 19:13
TimToady ZoffixW++ 19:16
bartolin_ btw, it's only nqp commit 4b1236e535 which prevents building rakudo-j (as of 12 hours ago) 19:19
cmp irclog.perlgeek.de/perl6/2016-01-09#i_11857477 (and a few lines below)
patrickz Has Rakudo* Zef included? 19:21
Latest released R*. 19:22
timotimo i don't think so
maybe the next one will
leont If I want to pass the equivalent of an arrayref through an API, how do I do that? Use a capture? 19:28
[Coke] leont: we don't really have arrayrefs, per se, and ... what kind of API? 19:29
leont pass it as an argument to a function, that calls a function(named arguments, doesn't look at it), etcetera until it arrives at the right callback 19:30
[Coke] are you implying Nativecall in there somewhere? 19:31
leont No
[Coke] m: my $a = 1,2,3; sub stuff ($arg) { say $arg.perl }; stuff($a); 19:32
camelia rakudo-moar 42a583: OUTPUT«WARNINGS for /tmp/90005_FEhY:␤Useless use of constant integer 2 in sink context (lines 1, 1)␤Useless use of constant integer 3 in sink context (lines 1, 1)␤1␤»
[Coke] m: my $a = 1,2,3; sub stuff ($arg) { $arg.perl }; say stuff($a);
camelia rakudo-moar 42a583: OUTPUT«WARNINGS for /tmp/7dEh125jdr:␤Useless use of constant integer 2 in sink context (lines 1, 1)␤Useless use of constant integer 3 in sink context (lines 1, 1)␤1␤»
[Coke] arglebargle.
[Coke] my $a = <1 2 3>; sub stuff ($arg) { $arg.perl }; say stuff($a); # that's passing an arrayrefish thing. 19:33
so you want to be able from inside stuff to call some other function and pass $arg ?
leont I need to be able to change the array while at a distance 19:34
I could wrap it up in an object, but it feels like there should be an easier way
Skarsnik is rw? 19:35
leont Skarsnik: it's not one level of functions, and some functions just blindly pass on *%args
[Coke] if you want to ignore the signatures of things being passed around, perhaps a $*DYNVAR is closer to what you need. 19:36
if you can work with signatures, this works: 19:37
m: my @a = <1 2 3>; sub stuff (@arg) { @arg[2]="EEK" }; stuff(@a); say @a;
camelia rakudo-moar 42a583: OUTPUT«[1 2 EEK]␤»
leont Hmmm, a dynamic variable actually sounds like a good idea
[Coke]: thanks!
[Coke] but that doesn't work with $a, because by default that's a List, not an Array 19:37
excellent. :) 19:38
Skarsnik duh, why did it let you write on the array? 19:39
timotimo only the "outer" reference is read-only
we don't have something smart for deep read-only-ness yet
[Coke] lizmat: saw your note on 127215 - we shoud write up a "how to report a bug" off perl6.org that includes things like --ll-exception 19:40
Skarsnik That an issue for class probably x)
Skarsnik I had a question, is not supporting circular dependancy a bug? 19:42
[Coke] I believe that it was ruled notabug. 19:42
you can do it with stubs.
Skarsnik No 19:43
not accross two files
if you have A.pm6 and B.pm6 that need each other you are screwed
Skarsnik I had this issue with Discord, where Users have channels and Channels have a owner that are an user. and I don't even talk about Guild that an user is in and the Guild holding channel lists x) 19:44
Skarsnik I had to remove the type constraint of these attribute 19:45
[Coke] right, everything with circular refs has to be in the same file. I thought that was not going to be relaxed, but I don't know if there was an RT about it. 19:47
You could keep the source separate, but combine them for building like we do in core. 19:48
Skarsnik I am not sure how it's compiled but having a stub should be enought? (that how it work in c++) 19:49
[Coke] I just tried stubbing B in A and then using B; you get an error: 19:50
===SORRY!===
P6M Merging GLOBAL symbols failed: duplicate definition of symbol B 19:51
but this works:
m: class B { ... } ; class A { has B $b} ; class B { has A $a}
camelia ( no output )
[Coke] so you could have class A and B in separat files, but create a build.pm that cats them together. 19:51
(but with a better name) 19:52
there might be a ticket in RT for this already, haven't checked. (for making it work with 2 files)
Skarsnik I should retry if having circular definition accross 3 file make rakudo go in a loop again x)
skingsbu do you think DBD::Oracle will be released for version 6?
Skarsnik 6.c is already out x) 19:53
dalek p/flattenropes: 3af6e6f | (Jimmy Zhuo)++ | src/vm/moar/QAST/QASTRegexCompilerMAST.nqp:
remove flattenropes
skingsbu killer
Skarsnik You can try the DBIish from abraxxa fork if you want to have Oracle
TimToady I thought DBIish already supported oracle?
Skarsnik He has a weird Rakudo bug before x-mas to finish (something with CArray[CArray[int8]]) 19:54
skingsbu thanks for the info 19:55
Skarsnik [Coke], I think my question was more, should I RT this and it will not be discarded as "It's the spec/a choice so no a bug" 20:02
dalek p: a161dbd | (Jimmy Zhuo)++ | src/vm/moar/QAST/QASTRegexCompilerMAST.nqp:
remove graphs_s op
20:05
dalek href="https://perl6.org:">perl6.org: b952596 | (Patrick Sebastian Zimmermann)++ | / (4 files):
Give Zef some more prominence.
20:08
href="https://perl6.org:">perl6.org: 651721f | (Patrick Sebastian Zimmermann)++ | source/getting-started/index.html:
Don't lie about Zef in R*.
href="https://perl6.org:">perl6.org: 86c5f74 | moritz++ | / (3 files):
Merge pull request #45 from patzim/master

Give Zef some more prominence
dalek kudo/nom: 15b4a8f | lizmat++ | src/core/Exception.pm:
Fix for RT #127241
20:10
[Coke] Skarsnik: ok. the question has come up before, I think it was not going to be fixed, but I have no data to back this up. can't hurt to open a ticket. 20:18
the person who might reject it first is basically still on hiatus, but will likely review it when he returns. 20:19
Skarsnik Ok, thx, I will do it tomorrow when I can start my perl6 env x) 20:21
timotimo nqp-m: say 1 ~~ Int 20:24
camelia nqp-moarvm: OUTPUT«Confused at line 2, near "say 1 ~~ I"␤ at gen/moar/stage2/NQPHLL.nqp:521 (/home/camelia/rakudo-m-inst-1/share/nqp/lib/NQPHLL.moarvm:panic:105)␤ from gen/moar/stage2/NQP.nqp:921 (/home/camelia/rakudo-m-inst-1/share/nqp/lib/nqp.moarvm:comp_unit:872)␤ from …» 20:25
timotimo why didn't my code b0rk ...
when i accidentally used ~~
moritz nqp-m: say(1 ~~ Int) 20:34
camelia nqp-moarvm: OUTPUT«0␤»
moritz timotimo: nqp actually implements ~~ (though I think mostly for regexes) 20:35
timotimo righto 20:35
nine Who is Patrick Sebastian Zimmermann? 20:36
bartolin_ guesses patrickz 20:39
patrickz that's me
nine patrickz: are you sure zef is ready for prime time? 20:41
[DEBUG] Installing Inline::Perl5:/home/nine/.zef/store/Inline-Perl5.git to inst#/home/nine/rakudo/install/share/perl6/site
nine@sphinx:~> perl6 -e 'use Inline::Perl5;'
===SORRY!=== Could not find Inline::Perl5 in:
patrickz I checked back with ugexe.
RabidGravy ooh that's annoying creating an accessor with a Proxy shags up setting from the constructor :( 20:54
hankache hola #perl6 21:00
Skarsnik hello
dalek kudo/nom: f90282b | lizmat++ | src/core/ (4 files):
Move FILETEST-F to Rakudo::Internals

Also, no longer booleanify for internal usage.
21:03
wollmers Where does Panda install modules and how can I set the lib path in P6? 21:04
Under rakudobrew. 21:05
nine m: say CompUnit::RepositoryRegistry.repository-for-name("site"); 21:06
camelia rakudo-moar 15b4a8: OUTPUT«inst#/home/camelia/rakudo-m-inst-1/share/perl6/site␤»
nine wollmers: ^^^
with fallback to "home" if the user doesn't have write permission on "site"
wollmers nine: I didn't find the module name in the file tree. Using UUIDs is not diagnostic friendly. 21:08
leont has serialized a regex using .perl, how can I turn it into a regex again? 21:11
mspo leont: what does it look like? 21:12
leont "/.*\\.foo/" 21:13
patrickz nine: Tried Inline::Perl5 here as well, fails. Might just as well revert that commit to perl6.org until this is solved. Do you have a commit bit?
mspo leont: how is it different from the original? 21:14
moritz leont: EVAL 21:15
[Coke] wonders how much one could abuse IP5 and p6's concurrency to get concurrency around p5 cpan modules. (I'm guessing not far)
er, s/far/much/
leont Eval? :-/ 21:16
patrickz ugexe: paste.scsys.co.uk/504257
leont Given only one interpreter, not very far
But if you'd start multiple (no idea if that's possible) you'd be doing something similar to ithreads
dalek href="https://perl6.org:">perl6.org: dcb768c | (Stefan Seifert)++ | / (3 files):
Revert "Give Zef some more prominence."

This reverts commit b9525960a23835b69e6230b8fbcf171a7fac6923.
zef doesn't properly install Inline::Perl5 and probably other dists that compile native libraries during their build. So pull back on the publicity until this is fixed.
21:17
patrickz nine++
wollmers nine: say CompUnit::RepositoryRegistry.repository-for-name("site"); inst#/Users/helmut/.rakudobrew/moar-v6.c/install/share/perl6/site
nine: use LCS::All; Could not find LCS::All in: /Users/helmut/.perl6/2015.12 /Users/helmut/.rakudobrew/moar-v6.c/install/share/perl6/site
nine: ==> Installing LCS::All LCS::All:ver<0.1.0>:auth<Helmut Wollmersdorfer>:api<> already installed 21:18
dalek kudo/nom: 6803444 | lizmat++ | src/core/ (4 files):
Move FILETEST-S to Rakudo::Internals

Also, no longer box the returned native int
RabidGravy does LCS::All have a proper provides in the META.info? 21:19
nine wollmers: both rakudo 2015.12 and panda at that time had a couple of issues. I suggest upgrading to current git versions of both until we get a release out with the fixes.
Oh and LCS::All is indeed broken! 21:20
wollmers: does "use LCS::BV;" work?
wollmers RabidGravy: Oh, copy & paste typo.
RabidGravy: Yes, use LCS::BV works, but is another module. 21:22
dalek kudo/nom: 18e981c | lizmat++ | src/core/ (4 files):
Move FILETEST-L to Rakudo::Internals

Also, no longer booleanify for internal usage.
21:35
wollmers So panda cannot update or remove a broken module, even --force doesn't work. 21:47
mspo I'm not groking the zef/panda situation 21:48
dalek kudo/nom: 42191ca | lizmat++ | src/core/ (4 files):
Move FILETEST-R to Rakudo::Internals

Also, no longer booleanify for internal usage.
wollmers reinstalling from scratch:-( 21:56
nine wollmers: panda update
otherwise panda will use outdated meta data
wollmers nine: I did panda update 21:57
nine What makes you say that it cannot update the module? 21:58
wollmers nine: got already installed. panda info showed old version and wrong provides, even after --force. 21:59
dalek kudo/query_repos: be32628 | (Stefan Seifert)++ | src/core/CompUnit/Repository (3 files):
CompUnit::Repository::resolve

New method to ask the repository chain if a module matching the given DependencySpecification is available. This could for example be used by panda to avoid trying to install an already installed module.
22:01
kudo/query_repos: 9932802 | (Stefan Seifert)++ | src/core/CompUnit/ (3 files):
Centralize more precompilation code
kudo/query_repos: f794ad8 | (Stefan Seifert)++ | src/core/CompUnit/Repository/Installation.pm:
CompUnit::Repository::Installation::uninstall
wollmers nine: BTW, the need of update is inconvenient, not usual in cpan or cpanm.
nine wollmers: panda info shows the meta data it downloaded from the ecosystem, not what's installed 22:02
wollmers: also the ecosystem takes a while to pick up changes pushed to a dist's git repository
That may be why panda update did not help
Also if you think that sucks, please just fix it :) Panda's code is not that complicated. 22:03
dalek kudo/nom: fe726c0 | lizmat++ | src/core/ (4 files):
Move FILETEST-W to Rakudo::Internals

Also, no longer booleanify for internal usage.
wollmers nine: Then, what's the way to use a local module? Should panda-install work with sane meta? 22:05
sena_kun Hi, guys. I wrote a module with direct bindings to bzip2 library. Since it's needed to write nicer high-level API I would like to add it to ecosystem. Is anyone can help me with this?
wollmers nine: What's "a while"? Minutes, hours?
nine Don't know the exact timing. 22:06
panda install . should do the right thing
hoelzro sena_kun: you can fork the ecosystem project, and add the raw URL for your META6.json to META.list
then submit a PR against upstream, and one of us will happily merge it =)
sena_kun hoelzro, and just send PR? Okay, thank you. 22:07
hoelzro I think it would be interesting if panda were installing a dist and detected if that dist's META6.json were newer than its local projects.json
if so, fetch a new projects.json
nine hoelzro: absolutely! 22:08
hoelzro granted, you probably can't rely on the filesystem mtime for the change time of META6.json, because panda just fetched it =/
*but*
nine And also _always_ use the dist's META.info during installation instead of the possibly outdated ecosystem data
hoelzro you could ask Git, since a vast majority of modules are installed through git repos
mhmm
El_Che sena_kun: a nice small detail: enable travis support on github for the distribution 22:09
nine I almost started doing that on Saturday but ended up fixing two other issues instead
hoelzro nine: I could possibly handle that 22:10
sena_kun El_Che, thanks, I'll add it then.
LordDrako hi guys 22:13
what is the nicest way to get a normal perl array into a typed CArray[...]?
I tried my $foo = CArray[Str].new(@orig); but this does not work (constructor does not support that parameter) 22:14
sena_kun LordDrako, you should manually copy each element.
LordDrako :O
sena_kun Give me a secund...
*second
$myarray[$_] = $blob_string[$_] for ^$blob_string.elems; 22:15
As a one-liner. 22:16
dha Ew. That's really the best way to do that?
sena_kun You also should encode string into blog firstly. Like "my Blob $blob = $text.encode". It isn't?
Skarsnik For now, yes
PerlJam I don't think there's a better way yet
timotimo we sadly can't just $my-c-array.list, because it doesn't know about its elem count
sena_kun s/blog/blob 22:17
dalek kudo/nom: 43b5642 | lizmat++ | src/core/ (4 files):
Move FILETEST-RW to Rakudo::Internals
Skarsnik But I think a CArray.copy or something should be that hard to have
timotimo aye 22:18
it'll end up running a loop a little bit like that internalyl
but optimized
and at some point it'll be able to memcpy
Zoffix m: say $*BASETIME 22:21
camelia rakudo-moar fe726c: OUTPUT«Dynamic variable $*BASETIME not found␤ in block <unit> at /tmp/spXfKoM07I line 1␤␤Actually thrown at:␤ in block <unit> at /tmp/spXfKoM07I line 1␤␤»
Zoffix m: say $*INITTIME 22:22
camelia rakudo-moar fe726c: OUTPUT«Instant:1452550988.047196␤»
Zoffix lizmat++
donaldh does perl6-debug work for anyone?
timotimo i don't think so :( 22:23
donaldh When I run perl6-debug-m it spawns many moar processes for precompilation and then hangs
timotimo oh 22:24
*oh*
that's not the failure mode i've expected
awwaiid Is there an existing equivalent to the elixir |> operator? I think it requires a macro and some design to implement
donaldh precomp seems to break most things for me 22:24
timotimo awwaiid: i have no idea what that does
awwaiid left |> right(arg1, arg2) ---> right(left, arg2, arg2); it takes the result of the left side and feeds it in as the first param on the right side, they call it the "pipe" operator and use it to build pipelines of functions passing along and transforming a data blob 22:26
a very functional-programming pattern that
you could kinda do it by hand: sub infix:«|>»($result, &f) { &f($result) }; "5" |> say.assuming("hello") 22:27
(though it would go at the end, but that's probably ok since map and grep and other pipeline thingies tend to take their data input on the end) 22:28
I feel like there was a pipeline operator in p6, but I can't remember it now and don't see it on doc
nine donaldh: what other things does precomp break? 22:29
leont ===>
donaldh nine: using a module from a module
nine donaldh: can you be more specific? That is very well known to work. Otherwise e.g. panda could not do anything. 22:30
donaldh nine: using Grammar::Debugger (probably for that reason)
nine I think the debugger's problem is that it tries to precompile a module using $*EXECUTABLE which is perl6-debug-m which then tries to precompile a modules using $*EXECUTABLE... 22:31
donaldh: that was fixed on Friday
timotimo it's actually ==> and ==>>
m: (1, 2, 3, 4) ==> map { $_ + 1 } ==> say
camelia rakudo-moar 43b564: OUTPUT«5===SORRY!5===␤Argument to "say" seems to be malformed␤at /tmp/2K8UP7MlZe:1␤------> 3(1, 2, 3, 4) ==> map { $_ + 1 } ==> say7⏏5<EOL>␤Other potential difficulties:␤ Unsupported use of bare "say"; in Perl 6 please use .say if you meant…»
dalek kudo/nom: 4e78adc | lizmat++ | src/core/ (4 files):
Move FILETEST-X to Rakudo::Internals

Also, no longer booleanify for internal usage.
timotimo i don't actually know how to feed.
donaldh nine: does precomp work with JVM ? 22:32
nine donaldh: rakudo JVM doesn't work at all at the moment, so I couldn't tell.
leont timotimo: the end needs to be something listy, AFAIK
timotimo hmm 22:33
m: (1, 2, 3, 4) ==> map { $_ + 1 }
camelia ( no output )
timotimo that also works apparently
m: (1, 2, 3, 4) ==> map { $_ + 1 } ==> say()
awwaiid fancy
camelia rakudo-moar 43b564: OUTPUT«(2 3 4 5)␤»
timotimo there we go
awwaiid awesome!
masak 'night, #perl6 22:34
lizmat gnight masak
nine donaldh: the debugger could work if you do perl6 -e 'use Debugger::UI::CommandLine' once before using it 22:35
donaldh nine: I installed Debugger::UI::CommandLine so so why does precomp need to run ? 22:36
timotimo donaldh: i don't think installation directly causes precompilation at the moment?
donaldh WAT? 22:37
But panda compiles everything in the install location
nine We precompile but cannot use those precompiled files in most situations 22:38
Discussions on how to fix that are ongoing in #perl6-toolchain
I have a trivial patch fixing the debugger issue
dalek kudo/nom: 00431fb | (Stefan Seifert)++ | src/core/CompUnit/PrecompilationRepository.pm:
Fix perl6-debug running into a precompilation endless loop

perl6-debug tries to load Debugger::UI::CommandLine which will be precompiled on first use with $*EXECUTABLE which is perl6-debug which tries to load ... Fixed by detecting that we're using the perl6-debug executable and using perl6 instead.
22:40
nine Good night
wollmers panda install . works, but isn't documented. 22:41
donaldh it's called perl6-debug-m
oh well
lizmat good night, nine++
Zoffix wollmers, would you please open an Issue on github.com/tadzik/panda ?
wollmers Zoffix: still done. 22:42
Zoffix Thanks
dalek kudo/nom: a9c8fe4 | lizmat++ | src/core/ (4 files):
Move FILETEST-RWX to Rakudo::Internals
22:49
dalek p: a3dadfc | (Pawel Murias)++ | t/nqp/19-file-ops.t:
Correct the amount of skipped tests.
23:07
dalek kudo/nom: 0c4db8d | lizmat++ | src/core/ (4 files):
Move FILETEST-Z to Rakudo::Internals
23:08
lizmat good night, #perl6! 23:09
dalek osystem: a791bd5 | Altai-man++ | META.list:
Add Compress::Bzip2::Raw.
23:47
osystem: e464858 | (Zoffix Znet)++ | META.list:
Merge pull request #120 from Altai-man/master

Add Compress::Bzip2::Raw: github.com/Altai-man/perl6-Compress-Bzip2-Raw
Zoffix DrForr, you got a PR on Readline: github.com/drforr/perl6-readline/pull/6 23:50
sena_kun Thanks for approving. Good night to everyone.
Zoffix nigh
Zoffix Oh boy. I was just about to be grumpy about all the modules in ecosystem with broken JSON in META.... when I realize one of 'em is mine! :D 23:54