»ö« 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)␤»
00:02 lichtkind left
Herby_ Quom__, thanks 00:04
00:05 spider-mario left 00:13 atweiden left 00:21 perlawhirl joined
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
00:23 vividsnow left, perlawhirl left 00:24 perlawhirl joined, perlawhirl left 00:31 vendethiel joined 00:39 uruwi joined 00:45 grassass joined 00:46 pierre-vigier joined 00:51 pierrot left 00:52 vendethiel left 00:57 yurivish_ joined, yurivish left 00:59 ggoebel7 joined 01:02 yeahnoob joined 01:03 vendethiel joined 01:06 joydo joined
dalek osystem: ad829c5 | thundergnat++ | META.list:
Add Prime::Factor to ecosystem

See github.com/thundergnat/Prime-Factor
01:06
01:09 nzkindest left 01:10 sortiz joined
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…»
01:46 vendethiel left 01:50 pierre-vigier left 01:52 pierre-vigier joined
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
01:56 pierre-vigier left
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
01:57 xpen joined
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
02:00 pierre-vigier joined
leont Checking what my harness things of your TAP would also be interesting 02:00
autarch yeah, definitely
02:01 espadrine left 02:04 pierre-vigier left
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
02:17 Ben_Goldberg joined 02:19 BenGoldberg left 02:21 xenu joined 02:34 kaare_ joined 02:35 pierre-vigier joined, atweiden joined 02:37 Zoffix joined
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
02:39 muraiki joined
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
02:39 muraiki left
leont :-) 02:43
02:43 pierre-vigier left, pierre-vigier joined 02:44 Zoffix left, Zoffix joined 02:45 pierre-vigier left 02:46 ilbot3 left 02:48 kid51 left, ilbot3 joined 02:54 zwu joined 02:55 muraiki joined 02:56 leont left 02:57 kaare_ left 02:58 molaf__ joined 02:59 xpen left 03:02 molaf_ left 03:03 sno left, xpen joined, pierre-vigier joined 03:07 pierrot joined 03:11 yqt left 03:16 pierre-vigier left, pierre-vigier joined 03:18 Actualeyes joined 03:20 pierre-vigier left 03:22 joydo left 03:26 pierre-vigier joined 03:29 uruwi left, pierre-vigier left 03:32 leedo left 03:34 leedo joined
dalek osystem: c285433 | (Wenzel P. P. Peppmeyer)++ | META.list:
add XHTML::Writer
03:35
gfldex $modules++
03:43 jevin left 03:45 muraiki left 03:48 zwu_ joined, pierre-vigier joined 03:50 Ben_Goldberg left 03:51 pierre-vigier left, pierre-vigier joined 03:52 pierre-vigier left 03:58 Ben_Goldberg joined, noganex_ joined, pierre-vigier joined 04:01 noganex left
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
04:08 vendethiel joined
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
04:09 pierre-vigier left, user74747 left
zwu_ I mean ::($n)::foo(); 04:09
04:12 pjscott joined 04:13 pierre-vigier joined 04:16 Herby_ left 04:20 pierre-vigier left 04:21 pierre-vigier joined, xpen left 04:22 pierre-vigier left 04:23 xpen joined
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
04:32 vendethiel left
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.
04:33 skids left
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
04:36 khw left
sortiz pjscott: Imagine a future unified "perl" interpreter that implement both of perl5 and perl6. 04:39
04:39 ghost_ left
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
04:51 xpen left, mdih joined
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
04:52 zwu_ left
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
04:57 pjscott left
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
04:57 pjscott joined
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
05:04 pjscott left
autarch yeah, as I said earlier, this is very much a prototype 05:04
Exodist :-) 05:06
05:07 lsm-desktop left
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
05:14 Ben_Goldberg left
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
05:15 molaf__ left, zwu left
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
05:27 uruwi joined
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
05:29 Upasaka left
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
05:31 Cabanossi left
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
05:32 oftl left, Upasaka joined, sjohnson left 05:33 oftl joined
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>␤»
05:34 Cabanossi joined, sjohnson joined 05:35 sjohnson left, sjohnson` joined
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
05:43 pierre-vigier joined 05:51 xpen joined 05:57 xpen left
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
06:02 yeahnoob left 06:07 yeahnoob joined 06:08 mdih left 06:10 Fleurety left 06:16 sno joined 06:20 xpen joined 06:24 BB joined
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];
06:28 xinming_ is now known as xinming
BB p6: say 3; 06:30
camelia rakudo-moar 34d2b6: OUTPUT«3␤»
06:35 pjscott joined
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]>
06:36 telex left 06:37 AlexDaniel joined
AlexDaniel I hope that people don't mind that I review&merge some PRs :) 06:37
06:38 telex joined 06:39 average left 06:40 BB left 06:41 pjscott left 06:45 andreoss joined 06:46 geraud left 06:51 Actualeyes left 06:54 Todd_ joined
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.
06:55 sjoshi joined 06:57 AlexDaniel left
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
07:03 BB joined, BB left
andreoss are you sure there's no perl6 in EPEL? 07:04
07:04 _nadim joined
andreoss i'm sure there was rakudo-star in that repo 07:06
07:07 _nadim left, _nadim joined 07:08 pierre-vigier left
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
07:12 _nadim left
Todd_ when is rhel 8 due out? 2020? 07:16
xenu when it's ready ;)
07:16 pierre-vigier joined
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
07:25 firstdayonthejob joined
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)
07:33 CIAvash joined
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.
07:36 pierre-vigier left
xenu (note that proper cpan is work in progress) 07:37
El_Che Todd_: perl6 regex have a perl5 compatible mode 07:40
07:40 CQ joined
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
07:44 FROGGS joined
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
07:48 Todd_ left, domidumont joined
FROGGS note that not all of P5 regexes are imlemented or are working correctly 07:49
07:53 domidumont left, sno left 07:54 domidumont joined
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
07:59 Actualeyes joined 08:00 g4 joined, g4 left, g4 joined 08:01 atweiden left 08:02 zakharyas joined
[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
08:06 eyck left 08:07 eyck joined
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
08:16 darutoko joined
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
08:16 eyck left
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
08:17 eyck joined
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/
08:26 firstdayonthejob left, sammers left
masak gfldex: "would have required constructors to be special" -- in what way would it require that? 08:27
08:28 xpen left
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
08:32 marmay joined, rodarmor joined
rodarmor Ayo! Can perl6 be extended with perl6 grammars without modifying the compiler? 08:33
08:34 Ch0c0late left
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
08:39 CQ left
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
08:44 abraxxa joined
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
08:56 pierre-vigier joined
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
08:59 vendethiel joined
gfldex travis is running right now and the modules site is updates every 10 minutes. So we will know soon enought. 08:59
09:00 pierre-vigier left, Peter_WR left 09:13 xpen joined
gfldex travis check has changed now from 09:20
'not set up' to 'unknown'
09:22 vendethiel left
DrForr I'm not going to check in from work but I'll add the Travis blurb tonight when I get home. 09:23
09:23 pierre-vigier joined 09:25 pierre-vigier left 09:29 gregf___ joined 09:30 gregf___ left 09:31 sno joined 09:32 gregf_ joined 09:33 RabidGravy joined 09:34 _Vi joined, xdoctor left 09:35 virtualsue joined
RabidGravy morning 09:37
09:40 dakkar joined 09:44 confundus joined 09:47 brrt joined 09:51 vendethiel joined 09:52 rindolf joined 09:53 xpen left
nine masak: R* will be based on 2016.01 09:57
09:58 darutoko- joined, pierre-vigier joined 10:00 funrep left 10:01 darutoko left 10:02 scoopio joined, funrep joined, kubrat left, grondilu left, daxim left, grondilu joined, gregf_ left 10:05 gregf_ joined
abraxxa want 127001 fixed for 2016.01 10:08
10:09 pierre-vigier left, pierre-vigier joined, Fleurety joined 10:10 pjscott joined, lnrdo joined 10:12 xpen joined, xpen left 10:13 xpen joined 10:14 vendethiel left, vytas left 10:15 pierre-vigier left 10:16 pierre-vigier joined 10:19 vytas joined 10:23 vytas left 10:26 vytas joined, Peter_WR joined 10:29 daxim joined
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 ?
10:30 pierre-vigier left
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
10:34 yeahnoob left 10:36 vendethiel joined
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
10:39 scoopio is now known as kubrat
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
10:43 espadrine joined
DrForr brrt: Yes, kinda have to :) 10:47
10:48 miquelruiz_ left
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
10:55 sjoshi left 10:56 vendethiel left 10:57 sjoshi joined
El_Che brrt: don't understimate the attractiveness of go due to the single binary feature 10:58
10:58 pmurias joined
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
10:59 vendethiel joined 11:00 CIAvash left
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
11:03 brrt_ joined 11:04 bpmedley left
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
11:05 brrt left
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
11:05 wamba joined, TEttinger left
brrt_ or the keyboard driver doesn't work together or something like that 11:05
11:06 bpmedley joined
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
11:07 virtualsue left 11:08 pmurias left, pierre-vigier joined 11:09 virtualsue joined 11:10 pmurias joined 11:12 pjscott left, virtualsue left
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
11:17 virtualsue joined
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
11:19 Skarsnik joined
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
11:23 pmurias left
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
11:25 pmurias joined
brrt_ well, you can say class Foo { method foo is cached { expensive-calculation(); } } 11:25
and it would... do what you mean?
11:28 pierre-vigier left
dalek c: 150795b | lizmat++ | doc/Type/DateTime.pod:
Indicate positional candidate to be for 6.d
11:29
11:32 pierre-vigier joined 11:34 pierre-vigier left 11:36 pierre-vigier joined, pmurias left
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
11:39 xpen left 11:41 pierre-vigier left 11:43 lnrdo left, vendethiel left, lnrdo joined 11:45 lnrdo left, lnrdo joined 11:46 confundus left 11:47 pierre-vigier joined 11:51 pierre-vigier left
sortiz awwaiid, I think so. But more important Array.flat should be documented to avoid the confusion with Iterator.flat 11:55
11:56 pierre-vigier joined
awwaiid sortiz: yeah, but not here I think 11:58
sortiz awwaiid, nop, in types/Array I suppose. 11:59
12:01 bpmedley left 12:02 pmurias joined 12:04 integral is now known as exponential, virtualsue left 12:07 wamba left 12:08 virtualsue joined
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.
12:09 exponential is now known as zero-almost-ever
dalek kudo/nom: 308c469 | lizmat++ | src/core/ (3 files):
Move REMOVE-ROOT to Rakudo::Internals

and streamline with new gained knowledge :-)
12:09
12:10 pierre-vigier left 12:11 _Gustaf_ joined, zero-almost-ever is now known as integral 12:12 kaare_ joined
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.
12:18 cuonglm joined
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
12:21 pierre-vigier joined
DrForr I've been working with Tom Hukins so far, seemed decent. 12:22
12:23 joydo joined
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
12:25 _Gustaf__ joined
DrForr I keep missing him whenever our paths cross :/ 12:26
12:27 vendethiel joined, _Gustaf_ left
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
12:30 virtualsue left 12:36 cuonglm left
moritz ... not if you leave the channel :/ 12:38
12:38 virtualsue joined, wamba joined
RabidGravy oh well, I understood FWIW 12:38
12:40 leont joined
moritz but you know what the setting is 12:40
RabidGravy this is true 12:41
12:42 vendethiel- joined
dalek kudo/nom: b870ed5 | lizmat++ | src/core/IO/Path.pm:
Remove undocumented, untested and unspecced method
12:42
12:42 vendethiel left 12:43 pierre-vigier left
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
12:48 pierre-vigier joined
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
12:49 vendethiel- left
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
12:52 ilbot3 left 12:53 ilbot3 joined, LordDrako joined
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
12:59 uruwi left
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
13:02 pierre-vigier left
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 ?
13:03 wamba left
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
13:05 lnrdo left 13:06 lnrdo joined
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)
13:08 vendethiel joined
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
13:15 lnrdo_ joined 13:18 pierre-vigier joined, lnrdo left
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
13:19 wamba joined, talexb__ left
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
13:25 pierre-vigier left
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
13:30 virtualsue left 13:32 vendethiel left
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
13:39 pierre-vigier joined, asdf12z_ joined
LordDrako basically I was trying something like this (not sure if syntax would be like that in the future) pastebin.com/BVUPraUy 13:39
13:39 _Vi left
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
13:47 bpmedley_ joined
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
13:48 siriu5b_ is now known as siriu5b
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/
13:52 Actualeyes left
FROGGS Skarsnik: I know about its UI and the missing edit functionality... but I'd rather like less tickets systems than more 13:52
13:53 pmurias left
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
13:57 pmurias joined 13:58 vendethiel joined
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 []␤»
14:01 cdg joined
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}␤»
14:03 dj_goku left
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
14:03 pmurias left 14:04 nowan left
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)␤»
14:06 Actualeyes joined
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
14:07 nowan joined
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«[]␤»
14:09 pmurias joined
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
14:16 nowan left
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
14:18 Ch0c0late joined
FROGGS LordDrako: are you wondering about the ++? 14:18
14:19 nowan joined
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␤»
14:20 lnrdo_ left
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␤»
14:20 vendethiel left
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
14:25 sftf joined
llfourn timotimo: I am looking at it closer since apparently it's not obvious. Perhaps I am missing something? 14:26
14:27 Roamer` joined
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
14:29 Actualeyes left
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
14:34 xpen joined
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
14:36 virtualsue joined, brrt_ left
pierre-vigier i'll check if removing them solve that 14:36
14:38 xpen left, xpen joined 14:40 _Vi joined
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
14:43 Actualeyes joined
mspo I'm parsing a 195 bytes string and am running at 96MB + 90% cpu 14:43
14:44 sjoshi left
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
14:45 xpen_ joined, pjscott joined
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
14:46 vendethiel joined
pmurias mspo: seems like a bug (could be in your code), they should be that slow 14:47
* they shouldn't
14:47 xpen left
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
14:49 skids joined, pjscott left 14:50 pjscott joined
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
14:54 lnrdo_ joined
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?
14:58 pierre-vigier left
gfldex the accept header is correct but they may have changed the API already, dosn't say any dates 14:59
14:59 lnrdo_ left
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
14:59 lnrdo joined
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
15:02 joydo left
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.
15:03 pjscott left
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
15:06 molaf joined
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)␤»
15:07 vendethiel left
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)␤»
15:09 lnrdo_ joined
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␤␤»
15:12 _Gustaf__ left
llfourn also interesting to note that it *doesn't* work if you do it directly 15:12
15:13 lnrdo left
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)␤»
15:15 khw joined
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)␤»
15:16 lnrdo_ left, marmay left 15:17 lnrdo joined 15:18 ZoffixW joined, marmay joined
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?
15:21 g4 left
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
15:26 lnrdo left
mspo m: say so 'foo bar\nber' ~~ /ber$/; 15:26
camelia rakudo-moar aefe2c: OUTPUT«True␤»
15:27 lnrdo joined 15:28 muraiki joined
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
15:30 pmurias left
gfldex put calls .Str 15:30
leedo gfldex: if i do C is Stringy, it works 15:31
15:31 lnrdo left
dalek href="https://modules.perl6.org:">modules.perl6.org: 93d4c48 | (Zoffix Znet)++ | lib/ModulesPerl6/DbBuilder/Dist/Source/GitHub.pm:
Fix failing test
15:32
15:32 cuonglm joined
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
15:35 travis-ci joined
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
15:35 travis-ci left
ZoffixW mspo, you may need to redefine ws token 15:37
15:37 pmurias joined 15:39 cuonglm left
mspo or is there another way to say "I'm done parsing this string" in my action class 15:39
15:39 lnrdo joined
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 ;)
15:43 virtualsue left, AndyDee joined 15:45 kst` is now known as kst
awwaiid since when does travis-ci post here on doc builds? 15:45
15:45 dj_goku joined
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
15:47 Ven joined 15:49 lnrdo_ joined
Ven o/ 15:50
15:50 vendethiel joined 15:51 sjoshi joined, lnrdo left 15:54 sjoshi left
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
15:56 daotoad joined
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 $$
16:00 daotoad left
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.
16:02 sjoshi joined, sjoshi left
[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
16:05 psy_ joined 16:07 ZoffixW left, Dee22 joined 16:08 AndyDee left
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
16:10 vendethiel left
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
16:14 sjohnson` is now known as sjohnson
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
16:19 xinming_ joined
mspo gist.github.com/msporleder/ae031c2829d58f5d7267 16:20
16:20 itaipu joined
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
16:22 xinming left 16:23 Sqirrel left 16:28 andreoss left 16:31 vendethiel joined 16:32 _nadim joined, dwarring joined 16:34 virtualsue joined 16:37 Actualeyes left 16:43 xpen_ left 16:46 pmurias left 16:48 domidumont left 16:50 abraxxa left 16:52 vendethiel left, LordDrako left, FROGGS left, pmurias joined 16:54 vendethiel joined, lnrdo_ left, Sqirrel joined
gfldex pmurias: it should not follow or it will get complicated quickly, symlinks can loop and there may be other pitfalls 16:54
16:54 lnrdo joined 16:55 lnrdo left, lnrdo joined 16:56 zakharyas left 16:58 itaipu left 17:05 lnrdo left, anand_ joined
anand_ hi 17:05
17:05 lnrdo joined 17:06 kjs_ joined
anand_ hi 17:06
17:06 rurban joined, anand_ left 17:11 ZoffixW joined
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
17:14 Ven left 17:15 Dee22 left
pmurias how hard would it be to unbreak JVM? 17:15
17:16 vendethiel left 17:17 lnrdo left, lnrdo_ joined, kjs_ left 17:18 aigan left, kjs_ joined, aigan joined 17:19 vendethiel joined
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␤»
17:22 rurban left
[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)
17:26 rurban joined
TimToady .botsnack 17:31
yoleaux :D
17:33 kjs_ left
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 :)
17:40 vendethiel left 17:41 lnrdo_ left, lnrdo joined
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
17:47 captain-adequate joined 17:48 kjs_ joined
nine Skarsnik: those are certainly good thoughts for #perl6-release 17:48
17:49 Calibellus joined
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.
17:53 patrickz joined 17:54 dakkar left
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
17:59 pierre-vigier joined 18:01 espadrine left, rindolf left
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
18:04 pmurias left, pierre-vigier left
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!
18:06 _nadim left 18:07 vendethiel joined
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
18:08 itaipu joined
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] :)
18:12 bpmedley_ left
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... :)
18:14 sftf left
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
18:15 FatalNIX joined
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
18:17 xinming_ is now known as xinming
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!
:)
18:22 patrickz left
ZoffixW m: say $*SPEC.catfile: 42, "\0" 18:22
camelia rakudo-moar 42a583: OUTPUT«42/␀␤»
18:23 patrickz joined
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'
18:24 rindolf joined
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
18:27 kjs_ left, lnrdo left
FatalNIX for the annotations 18:27
18:27 lnrdo joined
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) ()]␤»
18:29 vendethiel left
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?
18:30 bpmedley joined
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␤␤»
18:35 yurivish_ left
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
18:47 TimToady left
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
18:53 firstdayonthejob joined
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
18:54 kjs_ joined
ZoffixW I'm not that smart :P 18:54
18:55 TimToady joined
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
18:58 gfldex left, gfldex joined
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
19:01 vendethiel joined
mspo mojibake is google-able 19:01
TimToady mojbiake
Hotkeys Lol
mojibate
:)
19:02 lichtkind joined
TimToady mojijiji 19:02
mojjjji 19:03
19:03 lnrdo left 19:05 domidumont joined
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
19:07 rurban left
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…»
19:07 lostinfog joined
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
19:11 alpha123 joined 19:12 itaipu left
[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
19:14 itaipu joined
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
19:22 adhoc left 19:23 _Vi left 19:24 ZoffixW left 19:26 kjs_ left
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.
19:32 cdg left 19:33 cdg joined
[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!
19:37 cdg left
[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)
19:41 kaare_ left
Skarsnik I had a question, is not supporting circular dependancy a bug? 19:42
19:42 kaare_ joined
[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
19:44 spider-mario joined
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
19:45 zwu joined
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
19:49 kjs_ joined, skingsbu joined
Skarsnik I am not sure how it's compiled but having a stub should be enought? (that how it work in c++) 19:49
19:50 kaare_ left
[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 )
19:51 kaare_ joined
[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
19:59 Cabanossi left 20:00 kaare_ left 20:01 Cabanossi joined, kaare_ joined, yqt joined
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
20:07 darutoko- left
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
20:08 quester joined
dalek kudo/nom: 15b4a8f | lizmat++ | src/core/Exception.pm:
Fix for RT #127241
20:10
20:14 kjs_ left
[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
20:19 _Vi joined
Skarsnik Ok, thx, I will do it tomorrow when I can start my perl6 env x) 20:21
20:23 quester left, domidumont left 20:24 dha joined
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 ~~
20:28 adhoc joined 20:30 ELBeavers left 20:33 lnrdo joined
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
20:35 ELBeavers joined
timotimo righto 20:35
nine Who is Patrick Sebastian Zimmermann? 20:36
bartolin_ guesses patrickz 20:39
patrickz that's me
20:40 jameslenz left
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.
20:46 _nadim joined 20:47 patrickz left 20:49 patrickz joined 20:54 lnrdo left, sena_kun joined
RabidGravy ooh that's annoying creating an accessor with a Proxy shags up setting from the constructor :( 20:54
20:55 cdg_ joined 20:58 hankache joined
hankache hola #perl6 21:00
Skarsnik hello
21:00 zwu left 21:02 wollmers joined
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
21:06 AK___ joined
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"
21:07 AndyDee joined
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
21:12 petercommand left
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
21:19 petercommand joined
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
21:24 kaare_ left, rurban joined, Psyche^_ left 21:27 hankache left, Psyche^ joined 21:30 virtualsue left
dalek kudo/nom: 18e981c | lizmat++ | src/core/ (4 files):
Move FILETEST-L to Rakudo::Internals

Also, no longer booleanify for internal usage.
21:35
21:36 espadrine joined 21:40 AndyDee left 21:43 AK___ left 21:45 linuxuser9000 joined
wollmers So panda cannot update or remove a broken module, even --force doesn't work. 21:47
21:48 skingsbu left
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.
21:50 sno left 21:53 jervo left, jervo joined 21:54 _nadim left, rurban left
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
21:58 skids left
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
22:08 TEttinger joined
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.
22:12 rindolf left 22:13 donaldh joined, LordDrako joined
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
22:24 dha left
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!
22:34 muraiki left
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
22:40 LordDrako left 22:41 sena_kun left
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
22:43 pmurias joined 22:46 sena_kun joined
dalek kudo/nom: a9c8fe4 | lizmat++ | src/core/ (4 files):
Move FILETEST-RWX to Rakudo::Internals
22:49
22:59 cpage_ joined 23:00 kid51 joined, lnrdo joined 23:05 lnrdo left
dalek p: a3dadfc | (Pawel Murias)++ | t/nqp/19-file-ops.t:
Correct the amount of skipped tests.
23:07
23:07 sno joined
dalek kudo/nom: 0c4db8d | lizmat++ | src/core/ (4 files):
Move FILETEST-Z to Rakudo::Internals
23:08
lizmat good night, #perl6! 23:09
23:09 RabidGravy left, vendethiel left 23:15 skids joined 23:19 pmurias left 23:22 AndyDee joined 23:27 pmurias joined 23:29 linuxuser9000 left 23:33 geraud joined 23:43 lichtkind left 23:47 ribasushi left
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
23:48 wollmers left
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
23:50 sena_kun left 23:51 patrickz left
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