»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by sorear on 25 June 2013.
00:00 adu joined 00:01 kurahaupo joined
[Coke] jnthn++ 00:16
00:18 kurahaupo left 00:20 kurahaupo joined 00:21 kurahaupo is now known as lurahaupo, lurahaupo is now known as kurahaupo 00:23 kurahaupo left, kurahaupo joined 00:24 hummeleB1 left
[Coke] rakudo.jvm failed big time today. 00:30
probably my fault.
TimToady r: my &op = &[~]; say [[&op]] <a b c d e>
camelia rakudo-{parrot,jvm,moar} 349281: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Unable to parse expression in bracketed infix; couldn't find final ']' ␤at /tmp/tmpfile:1␤------> my &op = &[~]; say [[&⏏op]] <a b c d e>␤»
TimToady std: my &op = &[~]; say [[&op]] <a b c d e> 00:31
camelia std ec3d853: OUTPUT«ok 00:01 129m␤»
TimToady reduction [] aren't the same as [&op] []
that is, &op is not an infix, but [&op] is
and reduce requires an infix inside the [] 00:32
lizmat: ^^
looks like the rakudo parser is not up to STD's standard there, however 00:34
niecza: my &op = &[~]; say [[&op]] <a b c d e>
camelia niecza v24-109-g48a8de3: OUTPUT«abcde␤»
TimToady niecza++ however
00:34 kurahaupo left
TimToady might be a good Mouq++ project 00:34
colomon TimToady! o/ 00:35
TimToady jnthn: re irclog.perlgeek.de/perl6/2014-04-20#i_8614140 it doesn't matter that it could be taken as an array, since it checks for an infix first, and fails over to taking it as an array composer. in fact, [[&op]] is a valid set of nested arrays, but should be taken as a reduction first 00:37
FROGGS_: re irclog.perlgeek.de/perl6/2014-04-20#i_8614153 it can't really find the error after [&op] because < and > are taken as infixes, I suspect, and a b c d e as missing listops 00:43
timotimo with just a space, you can force it to be a nested array instead 00:45
TimToady indeed 00:46
00:50 Mouq joined
timotimo so it's not a big loss of ... name space i guess? 00:53
TimToady it's a carefully chosen dwim to overload brackets, anyway 00:54
01:05 klapperl joined 01:08 klapperl_ left 01:11 dayangkun joined
colomon avuserow: you might … never mind, you did. avuserow++ 01:13
Mouq tadzik++ 01:15
and o/ 01:16
01:24 Sibin joined
Mouq TimToady: I can't quite get the operator precedence to work out for 1 [&op] 2 01:26
01:26 FROGGS__ joined 01:28 Sqirrel_ joined 01:29 Sqirrel left 01:30 FROGGS_ left
lue Heh, it's funny to see a little "Party like it's 1999" fly across a blank page :) 01:49
raiph so i've installed rakudo (per gist.github.com/raiph/a6a5303b97de78a58b1a) 01:53
and now i want to install panda 01:54
do i: cd install; git clone github.com/tadzik/panda.git ? 01:55
lue just clone panda where you normally clone things and run bootstrap.pl inside
raiph thx
"Dynamic variable $*EXECUTABLE not found" 01:57
Mouq Whoa, what's with all the spectest fails in gist.github.com/raiph/a6a5303b97de78a58b1a? 01:58
raiph Mouq: that gist is from 2 months ago 01:59
Mouq Ohh
Well, $*EXECUTABLE_NAME got turned into $*EXECUTABLE
So you either need to get a fresh Rakudo or rewind the version of Pand you have :) 02:00
*Panda
02:00 xenoterracide joined
Mouq I think git checkout 2693bbc should work if you're doing the latter 02:00
raiph It's a brand new rakudo clone and brand new panda clone
Mouq Oh... uh... 02:01
timotimo make double sure the perl6 in your path is the one youre meaning to use
that bit me a bunch of times before
Mouq timotimo++
timotimo oh hey mouq 02:02
i should be going to bed. but are you going to make something cool happen in time for the weekly? :P 02:03
raiph No, was trying to setup a dev env so I could do more than one liners with evalbots
timotimo have you considered rakudobrew? 02:04
it'll do all the things for you :)
raiph thx for the pointer, looking
timotimo we should perhaps put a note on that on perl6.org or something 02:05
02:06 xenoterracide left
raiph do i blow away everything and start again with rakudobrew or leave the rakudo i just installed? 02:07
Mouq timotimo: Me?
timotimo: Not in particular… There are some things I've been meaning to write though… 02:08
raiph ok, blew everything away, starting over with rakudobrew 02:09
is this the right line: git clone --recursive git://github.com/tadzik/rakudobrew.git 02:10
timotimo Mouq: that's fine :)
02:11 colomon joined
timotimo i'm not sure when --recursive is even necessary 02:11
raiph i'm cargo culting it from the line in the panda readme (the rakudobrew readme doesn't say)
trying first without the --recursive, see how it goes 02:12
timotimo i think you only need to --recursive if there are submodules involved; otherwise you'll just have to git submodule init and then update which the bootstrap script of panda will do for you 02:13
anyway, i'm going to bed finally
good * everyone!
raiph gnite
Mouq night timotimo! 02:14
02:18 dayangkun left 02:26 woosley joined 02:27 Monkey joined 02:28 Sibin left 02:30 Alula_ joined 02:31 dayangkun joined 02:32 xragnar_ joined, xragnar is now known as Guest64851, Guest64851 left, xragnar_ is now known as xragnar 02:41 xenoterracide joined 02:50 xenoterracide left
raiph I'm trying to install rakudo with debugger (with ui) on feather. Anyone awake/willing to try help me? 02:59
I've previously successfully built/installed rakudo/moarvm. 03:01
Mouq
raiph But I'm getting stuck trying to get panda bootstrapped so I can get the debugger ui.
Mouq :(
Where did you install perl6? 03:02
Or, wait, did you use rakudobrew?
raiph Hi Mouq. Liked your epic golf entry. :)
I've done it three ways, with the last being rakudobrew. 03:03
Mouq raiph: Thanks :) It took long enough to make
raiph: :/
What's `which perl6` ?
raiph The wrong thing: /usr/local/bin/perl6
from ~/panda 03:04
echo $PATH is /home/raiph/rakudobrew/bin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
Mouq raiph: Maybe try export PATH=~/rakudo/install:$PATH ? 03:05
Mouq hasn't used rakudobrew in a long time and doesn't remember how it sets things up… 03:06
raiph The rakudobrew instructions said to prepend ~/rakudobrew/bin (which i did, per the echo $PATH) 03:07
("Install to ~/.rakudobrew Add ~/.rakudobrew/bin to $PATH") 03:08
Mouq Oh. Right. and does `ls ~/.rakudobrew/bin` actually contain perl6?
raiph (I assumed Add meant prepend)
03:09 prevost left 03:10 logie_ joined
raiph No, I think rakudobrew failed 03:11
Mouq tries to make rakudobrew's README a little more verbose 03:12
raiph Last rakudobrew line was "Done, moar-HEAD built" 03:13
But the prior line was "Sorry, I have no idea what 'moar-HEAD' is"
Mouq O_o
raiph gist.github.com/raiph/11130739
and the line prior to that: readdir() attempted on invalid dirhandle $dh at /home/raiph/rakudobrew/bin/rakudobrew line 70. 03:14
Mouq raiph: Well, it looks like everything else is OK, so you should just be able to make a file in ~/.rakudobrew/bin called perl6 with the contents: 03:16
#!/bin/sh
/Users/amoquin/.rakudobrew/moar-HEAD/install/bin/perl6 "$@"
s|'/Users/amoquin'|/home/raiph| 03:17
Rather than fiddle to try and get this to work, 'cause that ain't your job as the user
raiph presumably i need to chmod it? 03:19
Mouq raiph: Oh, yeah, that too :)
I'm trying to reproduce it but git's being stubborn 03:20
raiph the good news is that which perl6 says /home/raiph/rakudobrew/bin/perl6 03:23
the bad news is perl6 bootstrap.pl in panda still gives: 03:24
==> Bootstrapping Panda
Dynamic variable $*EXECUTABLE not found
in method Str at src/gen/CORE.setting:11851
in method Str at src/gen/CORE.setting:950
in method Stringy at src/gen/CORE.setting:960
in method Stringy at src/gen/CORE.setting:959
in block at bootstrap.pl:47
Mouq: Do you have an account on feather? 03:25
Mouq raiph: Negative
github.com/tadzik/rakudobrew/pull/6 03:28
raiph hangon, i see an extra . 03:29
Mouq raiph: As in ~/.rakudobrew? 03:34
raiph yeah, i got that wrong, fixing now to see if it works 03:35
Mouq Ok :)
Mouq can't get it to install moar since make doesn't exit cleanly
raiph think i'm making progress 03:39
(different errors :) 03:40
03:48 thou joined 03:51 adu left 03:55 hoverboard joined
dalek c: f6fc962 | Mouq++ | lib/terms.pod:
Begin documenting Q
04:04
c: 5d54887 | Mouq++ | lib/terms.pod:
Begin describing Q:q
raiph raiph@feather:~/.rakudobrew/moar-HEAD$ ./perl6-debug-m 04:07
> 1
>>> LOADING <REPL 1>
+ <REPL 1> (1 - 1)
| 1
>
\o/
Mouq :D 04:08
raiph++
raiph jnthn++, tadzik++, Mouq++ :)
dalek c: 0828aed | Mouq++ | lib/terms.pod:
Tweak Q intro
04:09
c: 3c78deb | Mouq++ | lib/terms.pod:
Represented in writing, not the language itself
04:11
Mouq #nonsensicalcommitmessages
raiph Now I'm ready to start building a grammar for www.cpan.org/MIRRORED.BY to help with FROGGS++ 's CPAN work. :) 04:17
dalek c: 1c6b3b0 | Mouq++ | lib/terms.pod:
Start on qw
04:25
Mouq Oh, that's wrong 04:26
qw !~~ Q:e
qw ~~ q:w
Qw ~~ Q:w
*qw !~~ Q:w 04:27
So
My goal is to explain this simply
(And I'm not very good at it) 04:28
But it's time for me to sleep
o/
04:28 Mouq left 04:38 BenGoldberg left 04:45 kaare_ joined 04:46 haroldwu left 04:48 haroldwu joined 04:52 anaeem1 joined 04:58 xinming__ joined, araujo left 05:01 xinming_ left 05:02 logie_ left 05:04 raiph left 05:08 SamuraiJack_ joined 05:14 anaeem1 left
dalek c: a807255 | moritz++ | lib/terms.pod:
Try to explain qw vs. Qw
05:19
05:22 xinming_ joined 05:25 xinming__ left 05:27 xinming__ joined, kaleem joined, xinming_ left 05:44 hoverboard left 06:05 thou left 06:07 dayangkun left 06:20 gaussblurinc_ joined 06:24 darutoko joined 06:39 anaeem1 joined
masak morning, #perl6 07:00
dalek c: 2c42a1c | masak++ | lib/terms.pod:
s/defined by/defined as/
07:03
07:03 dayangkun joined 07:05 kaare_ left 07:06 Rotwang joined 07:07 FROGGS__ left
moritz \o masak 07:08
masak moritz o/ 07:09
07:19 gaussblurinc_ left 07:33 FROGGS joined 07:36 Rotwang left 07:39 thou joined 07:43 thou left 07:45 salv0 left, salv0 joined 07:46 salv0 left
FROGGS tadzik: about "I tried --libpath=moar-bundle/nqp/lib/Perl6", you should only point to ".../lib" and not ".../lib/Perl6" 07:46
ohh, nvm
08:00 dmol joined 08:01 Monkey left 08:07 SamuraiJack__ joined
dalek kudo/nom: 9144630 | (Elizabeth Mattijsen)++ | src/core/SupplyOperations.pm:
Mark use of local op as a hack
08:09
08:12 SamuraiJack_ left
masak is there an RT ticket for that parse failure? 08:12
or a failing test?
lizmat checks 08:13
08:13 molaf joined
tadzik "Has the speed of Perl 6 improved so much that you can already play racing games?" :D 08:13
(perlweekly)
masak :) 08:14
m: my &with = -> $x, $y { $x + $y }; my &infix:<op> = &with; say [op] 1..5 08:15
camelia rakudo-moar 349281: OUTPUT«15␤»
lizmat :-)
masak m: my &with = -> $x, $y { $x + $y }; say [[&with]] 1..5
camelia rakudo-moar 349281: OUTPUT«===SORRY!=== Error while compiling /tmp/M1NXm1Ot8B␤Unable to parse expression in bracketed infix; couldn't find final ']' ␤at /tmp/M1NXm1Ot8B:1␤------> y &with = -> $x, $y { $x + $y }; say [[&⏏with]] 1..5␤»
masak std: my &with = -> $x, $y { $x + $y }; say [[&with]] 1..5
camelia std ec3d853: OUTPUT«ok 00:01 134m␤»
masak submits rakudobug
jnthn morning, #perl6 08:16
masak jnthn! \o/ 08:18
lizmat jnthn /o
masak: number? 08:19
masak lizmat: rt.perl.org/Ticket/Display.html?id=121692 08:20
08:22 molaf left
masak tadzik++ # writing games in Perl 6 08:23
nwc10 good *, *
masak * morning, *
nwc10 cynic :-)
08:26 SamuraiJack joined
masak realist. :P 08:27
08:30 SamuraiJack__ left
dalek ast: 999caf1 | (Elizabeth Mattijsen)++ | S13-overloading/metaoperators.t:
Add test for RT #121692
08:32
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=121692
masak lizmat++ 08:37
jnthn We've done little benchmarking/optimization of how Moar copes when trying to scale CPU-bound things over cores. I got curious. Note, this is on a debug build 'cus that's what I have around. gist.github.com/jnthn/c739b869378133ccb09d 08:56
lizmat: Don't suppose you have a golf of that done bug? 08:59
09:00 anaeem1 left 09:03 anaeem1 joined
lizmat jnthn: no, I haven't :-( 09:03
the golf you made, appears to be fixed 09:04
r: my $x = -> $a { { a => sub () { $a } } }; my $foo = $x(42); say $foo<a>.();
camelia rakudo-{parrot,jvm,moar} 349281: OUTPUT«42␤»
lizmat this used to say Mu on Moar
jnthn Right, I fixed that one.
lizmat btw: I'm splitting off the rotoring capabilities off of buffering 09:05
although they implement in similar ways
their usage is different,
and the timing feature interferes with the rotoring 09:06
masak haha, I was going to show this ported palindrome-finder: gist.github.com/masak/11136998
...but I found an unlikely bug along the way: rt.perl.org/Ticket/Display.html?id=121693 09:07
(random walks)++
lizmat: is it your Perl 5 side that makes you put in the '.' in '$foo<a>.()' ? :) 09:08
not meaning to be snide, just a curious question.
lizmat eh, actually, jnthn was the author of that code
masak oh!
lizmat I merely copy/pasted :-)
masak heh.
jnthn: is it your C# side that made you put in the '.' ? :P 09:09
lizmat if it would have been a Perl5ie, it would have been <a>->() :-)
masak well, they might've learned to mechanically translate '->' to '.'
some do, while drawing a sigh of relief :)
09:10 rindolf joined
jnthn masak: Context? 09:11
masak jnthn: above.
dalek ecs: dda1c40 | (Elizabeth Mattijsen)++ | S17-concurrency.pod:
Split off .rotor from .buffering
jnthn Oh, I see 09:12
I dunno. It was golfed down from something much bigger and I tend to golf concepts, not chars. I forget exactly the path it took to looking like that, but probably the . is an artefact of it. 09:13
09:13 spider-mario joined
jnthn You can't write .() in C#, so I rather doubt it's that :) 09:14
lizmat r: my $x = -> $a { { a => sub () { $a } } }; my $foo = $x(42); say $foo<a>(); 09:15
camelia rakudo-{parrot,jvm,moar} 349281: OUTPUT«42␤»
lizmat *phew*
jnthn :) 09:16
OK, I'm going to get the file change watcher supply thingy done, then merge my various branches, then look into the done bug, then probably start working on some examples/slides for my nlpw talk. :) 09:17
09:17 denis_boyun_ joined
masak nice! 09:18
jnthn blasts Amorphis and gets coding 09:20
09:27 thou joined 09:31 anaeem1 left 09:33 thou left 09:34 kurahaupo joined 09:36 salv0 joined 09:39 anaeem1 joined 09:41 anaeem1 left, anaeem1__ joined 09:43 molaf joined 09:44 kurahaupo left 09:48 SamuraiJack left
dalek kudo/nom: 3e4d2ca | (Elizabeth Mattijsen)++ | src/core/Supply (2 files):
Split off Supply.rotor from Supply.buffering
09:55
09:55 kaleem left 09:56 kaleem joined
dalek ast: 32b4e5a | (Elizabeth Mattijsen)++ | S17-concurrency/supply.t:
Add tests for Supply.(buffering|rotor)
09:56
09:57 kaleem left, kaleem joined
woolfy Just read this on the Facebook-page of Sebastian Riedel: #‎perl6‬ is starting to reach the point where i would love to spend more time on a port of ‪#‎mojolicious‬. t.co/9jnPqOzl2u 09:59
:-)
(I just cut and paste the whole post of Riedel) 10:00
vendethiel r: my @a = ^5; say $@a 10:01
camelia rakudo-{parrot,jvm,moar} 914463: OUTPUT«0 1 2 3 4␤»
jnthn Well, he's been asking for async sockets for a long while. And japhb for a shorter while, also. It eventually reached the top of my todo list.
lizmat r: my @a = ^5; say ($@a).WHAT
camelia rakudo-{parrot,jvm,moar} 914463: OUTPUT«(Array)␤»
jnthn r: my @a = ^5; say @a.perl; say $@a.perl 10:02
camelia rakudo-{parrot,jvm,moar} 914463: OUTPUT«Array.new(0, 1, 2, 3, 4)␤[0, 1, 2, 3, 4]␤»
jnthn vive le difference
vendethiel jnthn: la* :)
jnthn Excuse my French. :)
masak he's just trying to be different :P
lizmat vive les differents! 10:03
jnthn oh hell, file system change notification is in a sorry state over the various platforms.
masak I wonder if the above eval doesn't effectively give us (the best parts of) www.perl6.org/archive/rfc/9.pod 10:04
jnthn I'd kinda assumed everywhere had it to the level Windows does, but no...Windows is actually ahead. Apart from it's still crap, because if a file change results in two..low level things...the abstraction leaks and you get dupes you have to filter. 10:05
jnthn learned that when doing it in .Net
The hard way.
lizmat Supply.uniq ?
FROGGS jnthn: solaris is good at that also me thinks, but not a regular linux 10:06
jnthn lizmat: It's more like .sample(:by(*.path), 1)
FROGGS: What *isn't* solaris good at? :)
FROGGS jnthn: not sure :o)
jnthn lizmat: And if we can actually make that work we 1-up Rx on that use case, iirc. 10:07
FROGGS I mean I have solaris virtual machines, but I didn't used them for anything than debugging
jnthn lizmat: .sample(1) is basically "only let an entry through per second"
lizmat: If you add a :by then it's adding a key to do the samples by. 10:08
lizmat that's not how it is specced
jnthn Now how what is spec'd? .sample?
.uniq should just work like .uniq; I'm saying .sample is more useful than .uniq in the dealing-with-Windows-crap case.
lizmat S32-Containers/1053 10:09
S32-Containers:1053
jnthn oh, the name .sample got stolen already? Darn. 10:10
lizmat well, it hasn't gotten implemented yet, afaics
and the spec is about Range.sample
jnthn Yeah but having a wildly different meaning on a supply may be a bad idea. 10:11
I did like that name for it though.
lizmat well, actually I was thinking about .sample this morning in the context of Supplies
jnthn In general I'm just picking the Rx names where there's no obvious Perl one and seeing if they stick.
lizmat Supply.sample( .001 )
jnthn For one because it means I don't have to learn two names :P 10:12
lizmat would give you a Supply with a random sample of the 1/1000 of the original supply
but that's not what you meant, is it?
TimToady specced Range.sample on 24 Feb 10:14
jnthn No
I mean to just let a value through per time period.
Possibly by key. 10:15
lizmat Supply.grep.buffering ?
Supply.grep.buffering(:seconds(1)) 10:16
moritz hopes that .grep takes a matcher
dalek ecs: 13869e3 | (Elizabeth Mattijsen)++ | S32-setting-library/Containers.pod:
De-TAB
jnthn It's not about buffering.
It's about only giving *one* thing per time unit
lizmat Supply.grep(&matcher).buffering(:seconds(1)) # indeed 10:17
jnthn Buffering is about collecting all the things in a given time unit.
lizmat well, .buffering does that for you as well
jnthn Oh?
Then it perhaps does too many things...
lizmat maybe not
jnthn Yeah, I'd be surprised at it doing this
lizmat .buffering is specced to buffer by number of elements and/or time 10:18
jnthn I see buffering as doing a kind of grouping thing.
Over time or element count.
lizmat yup
that's what it does
jnthn .batch would be as good as .buffer...
lizmat or both
hmmm.... batch
jnthn As in "break up into batches" 10:19
lizmat much better, yup
I didn't like "buffer", "buffering" was slight better, "batch" feels much better 10:20
jnthn yeah, to me also 10:21
dalek ecs: 9f36e02 | (Elizabeth Mattijsen)++ | S17-concurrency.pod:
s/buffering/batch/ jnthn++
jnthn nmake 10:24
oops
dalek kudo/nom: 8f4fa15 | (Elizabeth Mattijsen)++ | src/core/Supply (2 files):
Supply s/buffering/batch/
10:29
jnthn haha...the dupes happen here too :)
dalek ast: b1e0e4f | (Elizabeth Mattijsen)++ | S17-concurrency/supply.t:
s/buffering/batch
kudo/nom: d3908f2 | (Elizabeth Mattijsen)++ | docs/ChangeLog:
Update ChangeLog
10:32
moritz finds the wording "+ all timing asynchrony made it to MoarVM" a bit werid 10:37
10:37 dayangkun left
jnthn you and me both :) 10:38
moritz maybe "asynchrnous timers on MoarVM backend"?
+o
jnthn sounds better
moritz what about the NQP asyncops branch? is that merged already? 10:39
dalek kudo/nom: 7d27d37 | moritz++ | docs/ChangeLog:
reword changelog entry
10:40
jnthn No
10:42 colomon left, brother joined
dalek kudo/async: a38725d | jnthn++ | / (2 files):
First pass at IO::Notification.

Provides OS-backed notification of file changes. It's a fairly raw stream; more sophisticated things based on it can likely evolve in module space for the time being.
10:43
10:43 anaeem1__ left, anaeem1_ joined 10:45 SamuraiJack joined
lizmat afk for a few hours& 10:47
10:49 colomon joined, Rotwang joined, Rotwang left 11:03 araujo joined, araujo left, araujo joined 11:12 kurahaupo joined
dalek kudo/async: b4fcf26 | jnthn++ | / (2 files):
Add a basic cancellation object.
11:27
kudo/async: 77d8bbd | jnthn++ | src/core/ThreadPoolScheduler.pm:
Return Cancellation for time-based scheduled work.
11:30 kurahaupo_mobile joined
vendethiel r: sub foo { for ^10 { $_ }}; say foo 11:32
camelia rakudo-jvm 3e4d2c: OUTPUT«(timeout)»
..rakudo-{parrot,moar} 3e4d2c: OUTPUT«Nil␤»
vendethiel m: sub foo { do for ^10 { $_ }}; say foo
camelia rakudo-moar 3e4d2c: OUTPUT«0 1 2 3 4 5 6 7 8 9␤»
11:32 kurahaupo left
vendethiel m: sub foo { my $i = 0; do while $i < 10 { $i++; $i }}; say foo 11:33
camelia rakudo-moar 3e4d2c: OUTPUT«False␤»
11:34 kurahaupo_mobile left 11:37 kaleem left, dayangkun joined, kaleem joined 11:38 dayangkun left, dayangkun joined
dalek p/asyncops: 916eddb | jnthn++ | docs/ops.markdown:
A docs update for nqp::watchfile.
11:43
p/asyncops: 9ad9220 | jnthn++ | tools/build/MOAR_REVISION:
Bump to a MoarVM that supports async ops.
11:44
p: 5fbd68b | jnthn++ | docs/ops.markdown:
Docs nqp::timer and other coming-soon async ops.
11:45
p: b397114 | jnthn++ | src/vm/moar/QAST/QASTOperationsMAST.nqp:
Map async nqp::ops for MoarVM.
p: a66079d | jnthn++ | docs/ops.markdown:
Tweak signal definition.
p: feefbf2 | jnthn++ | src/vm/moar/QAST/QASTOperationsMAST.nqp:
Signal constants.
p: c042626 | jnthn++ | docs/ops.markdown:
Sync async op docs with reality.
p: 916eddb | jnthn++ | docs/ops.markdown:
A docs update for nqp::watchfile.
p: 9ad9220 | jnthn++ | tools/build/MOAR_REVISION:
Bump to a MoarVM that supports async ops.
p: 518ff26 | jnthn++ | / (3 files):
Merge branch 'asyncops'
vendethiel no heuristics : branch merge? 11:46
jnthn It didn't meet the heuristic :P 11:47
tadzik :P 11:50
11:52 dmol left
jnthn Got the Rakudo branch merged locally, but need to fix the JVM build. Lunch first. bbiab 11:55
vendethiel a good heuristic could be to see "merge branch" in the last commit message 12:06
oh, it's p5 :( 12:07
nwc10 convert it to p6? 12:08
vendethiel which raises the question : do we have an IRC module for p6 alreayd ?
nwc10 I don't think so
moritz oh yes we do 12:09
nwc10 glad to be wrong
vendethiel I'd be, really, really surprised
moritz go to modules.perl6.org, search for IRC
vendethiel well, I jump to perl6/ecosystem usually
nwc10 so, camelia6 coming soon? and ilbot6?
moritz nwc10: ilbot6 basically exists, but wasn't stable enough last I tried it
also, reconnecting it as an issue :( 12:10
nwc10 aha. And now jnthn has a whole lot of new bleading-edge MoarVM for it to get hurt by? :-)
moritz well, I'll have to try on MoarVM
vendethiel m: my %enemies = ('evilmoritz', 'evilnwc', 'evilven') X=> True; multi sub isenemy($ where %enemies) { True }; multi sub isenemy($) { False }; say isenemy('a'); say isenemy('evilmoritz') 12:11
camelia rakudo-moar 7d27d3: OUTPUT«False␤True␤»
vendethiel [~~]++
nwc10 but MoarVM is fun, isn't it? And fun magically makes all hard problems easy. :-)
FROGGS true :o) 12:12
12:12 rindolf left
vendethiel so, can you add a github hook to deal with bots ? 12:13
else you kinda have to poll every X minutes to check if new commits were made
FROGGS vendethiel: there are service hooks for that, yes
moritz vendethiel: dalek does both, polling and receiving notifications 12:14
vendethiel moritz: are the notifications not exhaustive enough?
r: class A { has $.a; method foo { :$.a; } }; say A.new(:a(5)).foo; 12:16
camelia rakudo-jvm 7d27d3: OUTPUT«(timeout)»
..rakudo-{parrot,moar} 7d27d3: OUTPUT«"a" => 5␤»
vendethiel m: class A { method foo {} }; say A.new.^find_method('foo'); 12:17
camelia rakudo-moar 7d27d3: OUTPUT«foo␤»
vendethiel m: class A { method foo {} }; say A.new.^find_method('foo').perl;
camelia rakudo-moar 7d27d3: OUTPUT«method foo(A: *%_) { #`(Method|140519222501696) ... }␤»
vendethiel m: class A { method foo {} }; say A.new.^find_method('foo').cando;
camelia rakudo-moar 7d27d3: OUTPUT«Not enough positional parameters passed; got 1 but expected 2␤ in method cando at src/gen/m-CORE.setting:3181␤ in block at /tmp/MAQW2iq_9B:1␤␤»
vendethiel m: class A { method foo {} }; say A.new.^find_method('foo').cando((5)); 12:18
camelia rakudo-moar 7d27d3: OUTPUT«Type check failed in binding $c; expected 'Capture' but got 'Int'␤ in method cando at src/gen/m-CORE.setting:3181␤ in block at /tmp/PxDyXmUWxF:1␤␤»
vendethiel m: class A { method foo($a) {say $a } }; say A.new.^find_method('foo').cando(Capture.new(list => [5]));
camelia rakudo-moar 7d27d3: OUTPUT«␤»
vendethiel m: class A { method foo($a) {say $a } }; say A.new.^find_method('foo').cando(Capture.new(list => [5]))>>.(5);
camelia rakudo-moar 7d27d3: OUTPUT«␤»
vendethiel WATs 12:19
masak wait, why *can't* we do RIIA with 'given' statements?
jnthn vendethiel: It's a method. 12:20
vendethiel: You have to pass it an object too.
masak I mean, I know we don't have refcounting. but it seems to me some kind of escape analysis (or whatever) could reason about the `$f` in `given open('words') -> $f { ... }` being the only reference to that file handle. 12:21
vendethiel masak: because they don't invoke destructors ?
masak so we could make that analysis, and then issue some kind of guaranteed per-object destroy at the end of the `given`...
as long as the rules are clear for when that happens. 12:22
jnthn I'm not sure we want to overload that onto given.
vendethiel given open('words') -> $f { LEAVE $f.close; } ?
masak hm, yeah.
and then fold that into a macro.
moritz and name it masacro 12:23
moritz is proud to have come up with a macro name that's not 'marco' :-) 12:24
vendethiel r: macro riaa($expr) { quasi { given {{{$expr}}} { LEAVE $f.close; } how do I pls } }
camelia rakudo-{parrot,jvm,moar} 7d27d3: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Variable '$f' is not declared␤at /tmp/tmpfile:1␤------> asi { given {{{$expr}}} { LEAVE $f.close⏏; } how do I pls } }␤ expecting any of:␤ …»
colomon ==> Testing Audio::Taglib::Simple 12:25
t/basic.t .. Cannot locate native library 'libtag_c.so'
in method postcircumfix:<( )> at lib/NativeCall.pm6:127
libtag_c.so is in /usr/local/lib. Any hints on getting NativeCall to work with that?
vendethiel r: macro riaa($expr) { quasi { given {{{$expr}}} { LEAVE $_.close; }; how is code going there, idk } }
Well, I'll need somebody more experienced with p6macros to do that :) 12:26
12:26 dayangkun is now known as dayangkun_afk
camelia rakudo-{parrot,jvm,moar} 7d27d3: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Undeclared routines:␤ code used at line 1␤ going used at line 1. Did you mean 'join'?␤ how used at line 1␤ idk used at line 1␤ is used at line 1␤ …» 12:26
12:26 dayangkun_afk left
retupmoca colomon: is it libtag_c.so or libtag_c.so.0 ? (it's the latter on my machine, and NativeCall only looks for .so) 12:28
colomon libtag_c.so 12:29
retupmoca well, nevermind then :P
moritz vendethiel: {{{}}} only works that the statement level
m: macro riaa($expr) { quasi { my $x = {{{ $expr }}}; given $x { LEAVE .close } }; 12:30
camelia rakudo-moar 7d27d3: OUTPUT«===SORRY!=== Error while compiling /tmp/6aqkTJ4s5E␤Unable to parse expression in block; couldn't find final '}' ␤at /tmp/6aqkTJ4s5E:1␤------> $expr }}}; given $x { LEAVE .close } };⏏<EOL>␤ expecting any of…»
vendethiel moritz: there's a bigger problem though
nwc10 t/spec/S04-phasers/first.t now passes for me
retupmoca colomon: LD_LIBRARY_PATH maybe? FWIW, it works for me with the lib in /usr/lib64
vendethiel m: macro riaa($expr) { quasi { my $x = {{{ $expr }}}; given $x { LEAVE .close } } }
camelia ( no output )
vendethiel m: macro riaa($expr) { quasi { my $x = {{{ $expr }}}; given $x { LEAVE .close } } }; class A { method close { say 'oh' } }; riaa(A.new); 12:31
camelia rakudo-moar 7d27d3: OUTPUT«Cannot call method 'STORE' on a null object␤ in any at /tmp/DetV1Lz7YK:1␤ in block at /tmp/DetV1Lz7YK:1␤␤»
colomon manually setting LD_LIBRARY_PATH worked, retupmoca++ 12:32
FROGGS m: my %h; if %h<a>:exists || %h<b>:exists { } # is it meant to do that? 12:33
camelia rakudo-moar 7d27d3: OUTPUT«===SORRY!=== Error while compiling /tmp/aKrC0tY6bF␤You can't adverb that␤at /tmp/aKrC0tY6bF:1␤------> my %h; if %h<a>:exists || %h<b>:exists⏏ { } # is it meant to do that?␤ expecting any of:␤ pair …»
FROGGS m: my %h; if %h<a>:exists or %h<b>:exists { } 12:34
camelia ( no output )
colomon but setting LD_LIBRARY_PATH in .bashrc didn't work?!
nwc10 jnthn: works on "my" machine (apart from the 2 concurrency spectests) 12:36
12:36 btyler joined
nwc10 (not new) 12:36
dalek p: c8a41cf | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java:
Stub cancellation on the JVM.
12:37
kudo/nom: 72db9bf | jnthn++ | src/core/ThreadPoolScheduler.pm:
When an array is scheduled, it is providing args.

This supports various of the async nqp:: ops that pass information to a scheduler in this way. 2528d63 | jnthn++ | src/core/Supply (2 files): Properly handle closing a tap in many built-ins.
This was a leftover NYI from when supplies were first added. Now you can close a tap right at the end of a chain and it cascades all the way up to the top. For example, if there's a Supply.interval at the end of the chain, it will stop the underlying timer from producing values.
12:38
12:38 dalek left, dalek joined, ChanServ sets mode: +v dalek
masak ok, I added some timings to gist.github.com/masak/11136998 12:45
12:45 kbaker joined 12:49 xenoterracide joined
moritz m: say 22.2863 / 0.197 12:54
camelia rakudo-moar 7d27d3: OUTPUT«113.128426␤»
moritz :( 12:55
12:55 anaeem1_ left
moritz masak: which backend is that with? Moar? 12:55
12:56 SamuraiJack_ joined
vendethiel :( 12:56
masak yes.
12:57 xinming__ left
masak I can put up the 'words' file somewhere if someone is interested in doing their own timings. 12:57
12:59 xinming_ joined, ivanshmakov joined, SamuraiJack left
colomon masak: please do 12:59
FROGGS I'd like to know what is the slowest part there... is it open('words').lines or the $line.flip? 13:00
colomon FROGGS: same here 13:01
13:01 kaare_ joined
colomon (I mean, that's why I wanted the words file.) 13:01
masak colomon: masak.org/carl/tmp/words
colomon masak++
masak glad my aimless toying around with stuff has led to one rakudobug and some people doing benchmarking :) 13:02
colomon aimless toying around with p6 is almost always beneficial, IME 13:03
masak aye.
colomon which probably means that should be "aimless" toying around
masak no, it's still aimless :) 13:04
(I'm "actually" building a Beginning Python course.)
13:04 thou joined
colomon locally, I get 9.7 seconds for the entire script, 9.4 seconds for the script minus the block starting with if $line.flip 13:07
jnthn What if you get rid of the "next if" line?
colomon So at first glance it appears that open / lines must be taking the time.
jnthn I'm doubtful it's the open
masak or the for loop itself. 13:08
colomon 9.0 s without the next if line (as well as without the flip block)
13:09 thou left
colomon .2 seconds without the for loop and .lines 13:09
masak :)
colomon so it's not the open
masak how about with just .lines but not the for loop? 13:10
FROGGS .lines then...
masak maybe +.lines or something
FROGGS m: say +lines()
jnthn Well, .lines is lazy, so need to do something to eval it
camelia rakudo-moar 7d27d3: OUTPUT«(signal )»
FROGGS wow
colomon jnthn: not as such here
given open('words') -> $f {
$f.lines;
}
5.4 s
jnthn There's a whole bunch of the cost, then. 13:11
masak colomon: how about with a `while` loop instead of a `for` loop?
something that just uses the iterator by hand.
colomon +$f.lines has the same timing as just $f.lines, so it doesn't seem to be acting lazy in this case.
masak: something like while $line = $f-lines.shift ? 13:12
jnthn while (my $line = $f.get) { } is worth trying
masak what jnthn said.
colomon what jnthn said is 1.9s. 13:13
so using .lines has 150% overhead more than just reading the file using .get 13:14
FROGGS that is what .lines does:
gather while ++$count <= $limit && (my $line = self.get).defined {
take $line;
}
jnthn ugh
FROGGS colomon: can you add that gather and take?
jnthn That ++$count is pointless in the common case 13:15
colomon so, rewriting the entire functionality of find-palindromes using while takes 2.5s
jnthn When we know that $limit is Inf
And .defined is overkill there, .DEFINITE will do.
That <= is also hitting a slow path in that we have an Int on one side and a Num on the other.
Meaning it always has to go through the Bridge path.
masak eech. 13:16
jnthn So no wonder it's slow.
masak I'm willing to re-run my benchmark after someone applies some love to Rakudo.
FROGGS I can patch it if nobody else wants to
colomon ugh
masak ++FROGGS
jnthn FROGGS: Go for it. 13:17
colomon I just timed a simple version of lines written with gather / take
I fear the slowdown is mostly in gather / take 13:18
13:18 daniel-s_ joined
jnthn Well, it's not allowed to batch at all, so it's going to have some overhead. 13:18
There's also the odd micro-opt to get 13:19
colomon gist.github.com/colomon/11142571 # 5.3 s 13:20
jnthn $!chomp is faster to check than $.chomp, for example
colomon and using the (empty) for loop adds another 3.4s 13:21
masak that sounds... high :/ 13:22
jnthn notes that all these were probably worse against a 2014.03. 13:25
masak *nod* 13:26
colomon jnthn++
masak to be frank, I'm happy we're just talking two orders of magnitude here. 13:27
colomon notes this was rakudo compiled about 20 minutes ago, while attempting to get Audio::Taglib::Simple to work without starting all uses by explicitly specifying LD_LIBRARY_PATH
colomon is a bit distressed that the overhead for using gather / take and the overhead for a for loop both outweigh the cost of file I/O. On the bright side, sounds like we have plenty of room for optimization... 13:31
13:32 xenoterracide left 13:33 anaeem1 joined
masak yeah, that's the spirit. 13:34
13:37 bluescreen10 joined
jnthn In another "huh, why'd that get so much slower", stage mast in the setting build seems to have gone up disproportionately given the amount of sutff added. 13:39
FROGGS :/ 13:41
13:41 LLamaRider joined
masak sounds bisectable. 13:43
FROGGS which is not very fun when three projects and their revisions need to be taken into account
jnthn Well, also worth profiling
If MVM_sc_find_object_idx comes out way high then we've a good idea of the culprit...
masak FROGGS: I'd just make a bisect script that realclean'd every time and compared the time it took against a threshold, I think. 13:46
FROGGS ahh, yeah, that might work well 13:47
masak: perhaps rakudo/tools/bisect_parrot.pl is a start 13:48
masak was not aware of that script :)
FROGGS I never used it btw 13:49
stage mast is only 24s where stage parse is 49s... that does not look too bad 13:51
jnthn FROGGS: Here stage mast used to be 14s-15s, now it's 19s. 13:52
FROGGS okay, looks like I do not remember the times that well *g*
13:54 vincent21 joined
FROGGS when I replace the .defined .DEFINITE, do not check for $count if limit is Inf, then we are at 11.0s instead of 11.5s 13:56
when I then string the gave/take and replace it with an array, we are at 9.3s 13:57
but then it isnt lazy anymore...
colomon FROGGS: That corresponds to the numbers I was seeing, I think. .defined and $count < Inf might be sub-optimial, but they are not the main components of the problem here. 14:00
jnthn m: say 11/11.5 14:01
camelia rakudo-moar 544ed9: OUTPUT«0.956522␤»
14:02 thou joined
jnthn Still a ~5% win for a simple change. 14:02
14:02 anaeem1 left 14:03 anaeem1_ joined 14:04 kaleem left 14:06 logie_ joined
dalek kudo/nom: 9605613 | (Tobias Leich)++ | src/core/IO.pm:
slightly optimize IO::Handle.lines

We do not need to check for the limit when it is Inf. Also use .DEFINITE instead of .defined, which delegates directly to p6definite.
14:08
kudo/nom: ca00d7b | jnthn++ | src/core/Supply.pm:
Make on-based supplies also work well with .close.
14:09
14:11 anaeem1_ left 14:12 anaeem1 joined 14:13 guru joined, guru is now known as ajr_
moritz why not use p6definite directly? 14:13
FROGGS yes, should have done it 14:19
masak but now it's TOO LATE! :P
jnthn It works out exactly the same
code-gen wise
masak heh, was gonna ask that :) 14:20
moritz oh, never mind then
masak: a git wizard is never late. He knows git push --force :-)
FROGGS it reads a bit nicer IMO with the nqp::p6definite(...)
[Coke] tries install retroracer deps and fails miserably. :|
FROGGS eww 14:21
[Coke] *to
masak moritz: :P
colomon moritz: whereas Jedi tend to Force push gits 14:22
;)
masak "These are not the commits you are looking for." 14:23
*wave*
jnthn r: my $a = -> $b { c => { d => -> \e { say $b } } }; $a(42).value<d>(1) 14:26
camelia rakudo-jvm 544ed9: OUTPUT«(timeout)»
..rakudo-parrot 544ed9: OUTPUT«42␤»
..rakudo-moar 544ed9: OUTPUT«(Mu)␤»
14:27 SamuraiJack_ left
FROGGS uhh 14:31
14:31 rindolf joined
FROGGS j: my $a = -> $b { c => { d => -> \e { say $b } } }; $a(42).value<d>(1) 14:31
camelia rakudo-jvm 544ed9: OUTPUT«42␤»
[Coke] wonders where all the old jnthn++ blog posts are coming from in his feedly 14:32
(rss reader)
jnthn How old? 14:33
jnthn didn't do anything knowingly, though
blog is just a hosted wordpress one 14:34
[Coke] it's through one of the sixperl aggregrators, I assume something got bumped.
14:35 daniel-s_ left
[Coke] it's just depressing because I keep thinking OOOH jnthn++ blogged AGAIN... oh, wait, that's from 2013. 14:35
jnthn Well, the last post was less than a week ago, and it was 3000 words. :P 14:36
14:40 vincent21 left 14:41 vincent21 joined
dalek kudo/nom: bd9e2a3 | jnthn++ | src/Perl6/Actions.nqp:
Fix pointy blocks inside {...} hashes.

Also need moving to get them correctly scoped. Fixes the .done method call bug in Supply.merge.
14:42
jnthn .tell lizmat bd9e2a3 seems to fix the done bug
yoleaux jnthn: I'll pass your message to lizmat.
[Coke] jnthn, you raised the bar! 14:47
14:53 anaeem1 left, anaeem1 joined
jnthn [Coke]: What can I say, I learn more and more about bars as life goes by... :) 14:57
dalek kudo/nom: 4332d7e | (Tobias Leich)++ | src/core/ (2 files):
make Str.lines cheaper too by not always checking $limit
14:58
15:00 salv0 left
[Coke] jnthn: mmhehehehe 15:00
15:10 anaeem1 left 15:11 kaleem joined
dalek kudo/nom: 3425f2b | (Tobias Leich)++ | src/core/Str.pm:
only check for ICU on parrot in Str.perl
15:11
15:14 salv0 joined 15:21 bluescreen100 joined 15:25 bluescreen10 left
timotimo FROGGS: could that be made even more efficient by turning $icu into a state rather than my variable? 15:25
15:27 raiph joined, kaleem left
raydiak good morning #perl6 15:28
15:29 colomon left, colomon joined
FROGGS timotimo: perhaps yes 15:30
hi raydiak
timotimo i can't believe we've been doing a two-layer hash lookup every time we're trying to .perl a string %) 15:31
masak fortunately, .perl tends to be on "debugging" code paths, where speed is not essential. 15:32
timotimo aye, but .perl on a big hash (like $*VM for example) has been super crazy slow in the past 15:33
15:33 ajr_ left
masak oh. 15:33
15:34 sqirrel joined, guru joined
FROGGS and I still can't believe that not Str.flip is the slowest thing in masak++'s code snippet, but the loops 15:34
15:35 guru is now known as ajr_
masak let's make it Str.flip :) 15:35
(and not by slowing Str.flip down) :P
FROGGS but how so? 15:36
timotimo where do i see masaks code?
FROGGS timotimo: gist.github.com/masak/11136998 15:37
15:37 telex left
FROGGS and masak.org/carl/tmp/words 15:37
masak (temporary URL; grab it while it's hot!)
15:38 telex joined
timotimo wait ... given accepts pointy blocks? 15:39
that's funny
the timings are for moarvm? 15:40
FROGGS yes
it is about 11s for perl6-m on my box though 15:41
15:41 bcode joined
timotimo actually 15:42
masak timotimo: allow me to blow your mind:
timotimo i'm surprised line[::-1] == line actually works
masak timotimo: *if* accepts pointy blocks!
timotimo i know *that* :)
FROGGS and 0.05s for python2.7 and 0.08 for 3.3
masak huh.
timotimo: array equality in Python is defined as element equality.
timotimo i thought given was for setting $_ easily :) 15:43
ah, so it re-interprets the RHS as an array?
that'd make sense
masak oh, arrays and strings :)
strings are sequences of characters in Python.
15:43 rindolf left
masak they are very list-like. 15:43
down to indexing (but not assigning to an element).
timotimo right 15:44
15:44 rindolf joined
masak and slicing, as evidenced. 15:44
and line[::-1] is the idiomatic way to reverse a string.
timotimo i wonder if it'd be faster if we immediately skipped all lines that end in 's
masak that's a microoptimization :) 15:45
timotimo fair enough
what's the exact number of lines in that file?
15:45 atroxaper joined
timotimo so we can know how much time per line rakudo-moar spends on average? 15:45
FROGGS ohh, nvm the python3.3 run, it does not like the syntax :o)
timotimo you'll probably just have to put () around line in the print line line
FROGGS timotimo: 99171 15:46
timotimo okay, so at least we're way below 1 second per line :)
FROGGS timotimo: can p6bench run pythen too?
timotimo it could easily be made to
FROGGS because this would make a good benchmark
15:47 denis_boyun_ left
timotimo r: say "that's {22.2863 / 99171} seconds per line for rakudo and {0.197 / 99171} seconds per line in python" 15:47
jnthn Well, also can write a Perl 5 version of it if we don't want to do that.
camelia rakudo-{parrot,jvm,moar} 544ed9: OUTPUT«that's 0.0002247260 seconds per line for rakudo and 0.000001986 seconds per line in python␤»
FROGGS (good as an internal benchmark, not for handing it out to our customers :o)
timotimo masak: the given block with the file object doesn't really give the same "close automatically on exception" semantics as the with block
so maybe put an UNDO { $f.close } in there? 15:48
FROGGS jnthn: a P5 version of Python? :P
timotimo: but there is no exception 15:49
none at all :P
15:50 treehug88 joined, treehug88 left
timotimo rakudo can't prove that yet! :P 15:50
15:50 treehug88 joined
masak timotimo: maybe LEAVE { $f.close } ? 15:56
15:56 ajr_ left
masak anyway, 's a good idea. 15:56
15:57 guru joined, guru is now known as ajr_
vendethiel m: if 5 -> $a { say $a } 16:00
camelia rakudo-moar 544ed9: OUTPUT«5␤»
vendethiel timotimo: ^
masak updated: gist.github.com/masak/11136998 16:03
vendethiel: timotimo said he knew that one already. 16:04
16:05 politico joined 16:13 guru joined, ajr_ left 16:14 guru is now known as Guest13980 16:15 politico left 16:16 dmol joined 16:22 atroxaper left
retupmoca I think I found a LWP::Simple bug with chunked transfer encoding (that only happens sporadically when hitting real servers) 16:22
fix attempt: github.com/cosimo/perl6-lwp-simple/pull/29
(also, get-unsized.t is hitting a server that now does chunked, so it isn't really testing unsized anymore)
16:24 hoelzro joined
FROGGS retupmoca: on which backends? 16:24
16:24 Guest13980 left 16:25 ajr joined, ajr left
retupmoca FROGGS: I only tested moar, but I'm not seeing anything backend-specific 16:25
16:28 hoverboard joined 16:31 kurahaupo joined 16:35 ajr joined, ajr is now known as Guest12821 16:36 Guest12821 is now known as ajr_
FROGGS retupmoca: k, I had thought it might be parrot related 16:37
16:47 gaussblurinc joined 16:57 a3gis joined 16:58 gaussblurinc left 16:59 Rotwang joined 17:08 treehug88 left 17:10 a3gis left 17:14 sqirrel left 17:18 SamuraiJack_ joined
FROGGS jnthn: building perl6-j is currently broken with HEAD? 17:21
jnthn Shouldn't be.
FROGGS Stage jast : Method 'jast' not found for invocant of class 'NQPMu' 17:22
in (gen/jvm/stage2/QAST.nqp:3813)
in compile_all_the_stmts (gen/jvm/stage2/QAST.nqp:3795)
jnthn Make sure you've HEAD NQP (one in NQP_REVISION)
FROGGS nqp is HEAD also
17:22 atroxaper joined
jnthn That's very likely the error you'd get if you didn't have c8a41cf4, is all. 17:22
oh, maybe not...
hmm, odd 17:23
FROGGS This is nqp version 2014.04-16-gc8a41cf built on JVM
froggs@TL02L-R8RXTCW-linux:~/dev/rakudo$ cat tools/build/NQP_REVISION
2014.04-16-gc8a41cf
jnthn It worked for me earlier.
Like, a few hours ago.
FROGGS hmmm
I am going back, commit by commit in rakudo to see what is going on 17:24
jnthn So it'll be a recent one.
Yeah
FROGGS++
jnthn is currently working on the wonderful "Attempt to unlock mutex by thread not holding it" error 17:25
FROGGS eww
btw, what is your opinion of playing with making hypers multi threaded on moar? 17:26
is that too early?
17:26 atroxaper left 17:29 gaussblurinc_ joined, SamuraiJack_ left
jnthn FROGGS: Well, can always play around with it in module-space first. 17:33
FROGGS: I think a module that loads an alternative hyper implementation would do it.
FROGGS sure, I did not meant to push that to nom directly :o) 17:34
I just wonder if everything needed is in a good shape already
(I did nothing with threads here yet)
jnthn Well, there'll be issues here and there :) 17:36
FROGGS k 17:37
:o)
first bad: 2528d63... Properly handle closing a tap in many built-ins. 17:40
last good: 544ed97... Include Cancellation.pm in JVM setting build.
dalek ast: dec25be | (Elizabeth Mattijsen)++ | S17-concurrency/supply.t:
Unfudge/Normalize Supply.merge tests
17:41
jnthn How the heck could that break it...
FROGGS I dunno... I'll debug it in a bit 17:42
17:45 hoverboard left
dalek ecs: b8a36cb | jnthn++ | S17-concurrency.pod:
Some additions/improvements to Supply spec.

Subject to review, of course.
17:47
lizmat jnthn: looks good to me 17:49
yoleaux 14:42Z <jnthn> lizmat: bd9e2a3 seems to fix the done bug
lizmat and that is now confirmed
should :on_close be specced ? 17:50
jnthn ^^^
jnthn lizmat: Probably yeah 17:56
dalek kudo/nom: bc7efa3 | jnthn++ | src/core/IO/Spec/Win32.pm:
PATH may be Path (or even missing!) on Win32.

This prevents the split from exploding.
17:57
kudo/nom: be57b26 | jnthn++ | src/core/Supply.pm:
Allow argless tap.

Useful for tapping for (do) side-effects.
kudo/nom: a364a1f | jnthn++ | src/core/Supply.pm:
Implement act.
17:57 btyler left
lizmat pulling and spectesting :-) 17:58
dalek kudo/nom: 3b6ab9e | jnthn++ | src/Perl6/Actions.nqp:
Fix CATCH/CONTROL phaser and thread interaction.

We over-shared the blocks, meaning that once threads showed up we got into weird problems. Possibly recursion could reproduce it too. In the threads case, the CATCH in Lock.protect sometimes tried to unlock the wrong mutex.
jnthn lizmat: You'll probably want ^^ too 17:59
Just finished spectesting that here
lizmat ^Cing, pulling and spectesting :-)
jnthn If you've ever got a "Wrong thread trying to unlock mutex" error, it wsa that.
lizmat no, never seen that
jnthn And I'm *really* glad I put the sanity check in Moar to spit out such an error, rather than having it silently fail, then something else screw up... 18:00
OK. I was getting it reliably while building a demo app for my talk :)
lizmat jnthn: "on_close" feels wrong with regards to "done" and "quit"
I mean, they're not called "on_done" and "on_quit" either
maybe "closed" ? 18:01
jnthn I want it to look unusual
lizmat rather then "on_close" or "close" ?
CLOSE ?
CLOSED?
jnthn In so far as it's the only thing that propagates up rather than down.
closing maybe :) 18:02
Because it happens during closing.
lizmat in that case, "closing" feels indeed better than "on_close", at least to me
18:02 btyler joined
lizmat if you want, I can take care of that LHF 18:03
jnthn Feel free
You only use it if creating your own supplies in a lower-level way.
18:06 hoverboard joined
lizmat actually, I just realise that Supply.list is not specced 18:11
conversely, I wonder if we would need a Any.Channel 18:12
or at least a Lo
List.Channel
18:13 anaeem1 joined
lizmat hmmm... it seems that t/spec/S17-concurrency/promise.t now fails the last test under load 18:14
somerimes
sometimes
18:15 treehug88 joined
lizmat # got: '1 0 2 3 4 5 6 7 8 9' 18:15
# expected: '0 1 2 3 4 5 6 7 8 9'
looks like the test is a bit fragile 18:17
jnthn Looks like. 18:18
lizmat whoa: ok 29 - Correct exception stored 18:19
Segmentation fault: 11
only once though :-(
18:19 treehug88 left 18:21 treehug88 joined 18:22 Sqirrel_ left
dalek ast: 2133955 | (Elizabeth Mattijsen)++ | S17-concurrency/promise.t:
Made sleepsort / cas @a test less fragile
18:22
18:24 Sqirrel joined
FROGGS jnthn: see: 18:31
j: class Supply { method foo() { if [] -> &on_close { } } }
camelia ( no output )
FROGGS j: role Supply { method foo() { if [] -> &on_close { } } }
camelia rakudo-jvm 544ed9: OUTPUT«===SORRY!===␤No such method 'jast' for invocant of type 'NQPMu'␤»
jnthn FROGGS: Did your JVM patch earlier address if/unless code-gen with pointies, or just while? 18:33
FROGGS both
18:35 guru joined, guru is now known as Guest26627, hoverboard left
FROGGS that was the patch github.com/perl6/nqp/commit/2a3169...6960d95624 18:36
18:37 ajr_ left 18:38 denis_boyun_ joined
FROGGS do you have an idea why it fails in a role but not in a class? 18:38
j: role Supply { method foo() { if 1 -> $a { } } } # a bit shorter 18:39
camelia rakudo-jvm 544ed9: OUTPUT«===SORRY!===␤No such method 'jast' for invocant of type 'NQPMu'␤»
FROGGS j: class Supply { method foo() { if 1 -> $a { } } } # a bit shorter
camelia ( no output )
18:43 hoverboard joined 18:44 darutoko left 18:47 molaf left
jnthn FROGGS: Yeah. Because role bodies are compiled once at compile time since they need to be run when the role is composed 18:49
FROGGS: Then again post-optimization
FROGGS: So if the first compile ruins the tree...the second one is sad.
FROGGS I see 18:50
dalek ast: 4e3020d | (David Warring [email@hidden.address] | integration/advent2012-day1 (2 files):
adding advent 2012 days 12 & 13
18:52 vincent21 left 18:54 Guest26627 is now known as ajr_ 18:56 gaussblurinc_ left
jnthn FROGGS: Hmm, your patch looks right at first glance 18:57
FROGGS I am patching it now that I do not rebind to $op[1] but to something else, so I can set the blocktype of $op[1] instead of $op[1][0] 18:58
19:01 denis_boyun__ joined 19:02 denis_boyun_ left, anaeem1 left 19:03 anaeem1 joined
ajr_ The bug [perl #121693] recently filed appears not to affect "perl6 version 2014.03.01 built on parrot 6.1.0 revision 0 19:05
"
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=121693
ajr_ I just tried the tests, and they terminated correctly.
19:07 brrt joined
dalek kudo/nom: 257d0cd | (Elizabeth Mattijsen)++ | t/spectest.data:
Add advent2012, day 12 and 13 tests
19:10
kudo/nom: 40c3799 | (Elizabeth Mattijsen)++ | src/core/Supply (2 files):
Rename Tap 'on_close' to 'closing'
lizmat dwarring++
19:11 kurahaupo left
FROGGS ajr_: there was a IO refactoring in MoarVM by that time... but knowing this timespan is very good because we can bisect it easily 19:13
ajr_ Happy to make whatever tiny contribution I can.
19:14 dmol left
FROGGS ajr_++ # :o) 19:14
jnthn FROGGS: I don't suppose it could be anything to do with the cleverness here? github.com/MoarVM/MoarVM/blob/mast...ile.c#L186 19:17
FROGGS: What is lstat gonna do on a symlink?
FROGGS jnthn: ohh that is a good start
jnthn It might just return the length of the symlink.
Well, I've felt a bit uneasy about that code generally.
Not saying it's wrong... 19:18
Just a slightly curious thing to do.
FROGGS okay do that one in a sec
I've got a patch for the jvm bug now
jnthn FROGGS++
I need to prep a bit for my travels tomorrow
But hopefully some code later
dalek p: 3617885 | (Tobias Leich)++ | src/vm/jvm/QAST/Compiler.nqp:
unbreak pointies in if/unless by keeping a ref we reset the blocktype later
19:22
flussence oh hai *
FROGGS hi flussence
flussence I was trying to write a glue script thingy yesterday that checked some dead links using HTTP::Client, but that seems to... flat out not work. Is there something newer I should be using instead? 19:23
19:26 kurahaupo joined
dalek kudo/nom: e974894 | (Tobias Leich)++ | tools/build/NQP_REVISION:
bump nqp rev for unbreak of pointies in if
19:27
retupmoca flussence: have you tried LWP::Simple?
flussence bah, why didn't I think of looking for LWP first... :) 19:28
19:28 zakharyas joined
flussence (I ended up using shell("curl ...") as a workaround, it did what I wanted but it's scary variable-interpolation-into-shell(), and forces one guy playing along with me to load up cygwin stuff...) 19:29
19:29 Vlavv left 19:33 ajr_ left
nwc10 The LWP project folks ought to watch this PyCon talk: pyvideo.org/video/2651/the-sorry-state-of-ssl 19:39
heck, everyone should. It's a useful and fun use of 45 minutes
19:42 Vlavv joined
dalek ecs: 276721d | (Elizabeth Mattijsen)++ | S17-concurrency.pod:
Spec Supply.list
19:45
lizmat timotimo: maybe it is an idea to add a "quote of the week" to the weekly 19:46
timotimo ah? 19:47
jnthn <jnthn> Quotes suck zebra!
lizmat my proposal for this weeks: Sebastian Riedl: "#‎perl6 is starting to reach the point where i would love to spend more time on a port of #‎mojolicious." 19:48
19:48 zakharyas left
timotimo i saw that, too. and it made me happy :) 19:48
_sri :)
lizmat hi Sebastian :-)
_sri o/ 19:49
masak \o 19:54
++_sri
brrt would <3 a perl6 mojolicious port
FROGGS ohh yes!
++_sri
19:57 hoverboard left 20:03 hoverboard joined, beastd joined 20:08 rindolf left
_sri jnthn++ 20:08
segomos _sri++ 20:09
20:12 arturo joined
dalek kudo/nom: b916084 | (Elizabeth Mattijsen)++ | src/core/SupplyOperations.pm:
Make sure Supply.(zip|merge) noop correctly
20:14
timotimo will we be releasing a bistar or a tristar this month? 20:18
jnthn timotimo: It will supporting building all 3, though only 2 are fully functional 20:22
(A handful of module fails left on j)
timotimo thanks
arnsholt Any of the remaining module failures on j potentially NativeCall related? 20:23
jnthn arnsholt: I don't believe so 20:26
dalek ast: 839e811 | (Elizabeth Mattijsen)++ | S17-concurrency/supply.t:
Add some noop tests and some cleanup
20:27
arnsholt Goody! =) 20:30
dalek p: 1c280f2 | (Tobias Leich)++ | tools/build/MOAR_REVISION:
bump moar rev to get symlink/stat fixes
20:31
kudo/nom: 0fb001e | (Tobias Leich)++ | tools/build/NQP_REVISION:
bump moar/nqp rev to get symlink/stat fixes
lizmat pulls, rebuilds and spectests
FROGGS jnthn: yes, lstat on a symlink gives you the .chars of the target filename for st_size 20:32
jnthn: so we had read 6 bytes and the file was just 3 bytes and therefor we did not hit eof :o) 20:33
20:33 anaeem1 left, anaeem1 joined, btyler left
jnthn FROGGS: haha 20:33
FROGGS moritz: camelia is still not up to HEAD :/ 20:35
20:35 Rotwang left
FROGGS arnsholt: the failures are more about lexical lookups from our subs or so... I keep this up-to-date gist.github.com/FROGGS/0ea5537eb675588baaa2 20:36
20:37 effbiai joined
FROGGS sadly the really interesting modules fail on jvm :/ 20:37
20:37 anaeem1 left 20:41 kaare_ left
masak FROGGS++ # gist.github.com/FROGGS/0ea5537eb675588baaa2 20:42
20:42 brrt left
timotimo FROGGS: may i link to that gist from my blog post? 20:42
FROGGS timotimo: sure 20:43
timotimo p6weekly.wordpress.com/?p=146&...58343051b0 20:44
jnthn timotimo: looks good to me 20:47
timotimo published 20:50
segomos bad..ass...
FROGGS timotimo++
lizmat timotimo++ 20:51
fg
20:51 btyler joined
masak jumps to the foreground 20:51
url to timotimo++'s post: p6weekly.wordpress.com/2014/04/21/...-and-gsoc/
[Coke] timotimo++ 20:53
raydiak timotimo++: when you have a moment, have a look at cyberuniverses.com/perl6-bench/ and tell me if you think the weird placement of the tooltip on the bar charts is a deal-breaker. have been wrestling with it without success...would probably have to hack the plotting lib to fix it, or put the bar charts back how they were and just not update those ones for the toggling 20:57
well, there is one more option, to completely re-build the bar charts every time someone clicks a check box, but that's probably too heavy an operation to be a good idea 21:03
jnthn raydiak: ooh, that fastest vs global fastest thing is great 21:05
raydiak++
raydiak jnthn: thanks :) was timotimo's idea 21:06
timotimo oooh! i meant to talk about that in the post, too! 21:07
PerlJam raydiak: Why not have the tooltip show up at a fixed location relative to the graph? Like in a little box next to the title for instance. 21:09
raydiak PerlJam: it's a thought, but would take some doing...the options the plotting lib provides for the tooltip are very limited 21:10
e.g. "‘n’, ‘ne’, ‘e’, ‘se’, ‘s’, ‘sw’, ‘w’, ‘nw’" 21:12
lue wonders when one of these benchmark sites will link you to the actual code used for the test
raydiak where is this thing actually hosted at anyway? 21:13
21:17 dmol joined
raydiak or does nobody have it running on a cron job with the output hosted on a webserver? 21:17
masak 'night, #perl6
raydiak g'night masak 21:18
lizmat FROGGS: problems with statting files on Moar:
$ perl6 t/spec/S16-filehandles/io_in_while_loops.t
1..13
Failed to stat in filehandle: Unknown system error
see it in many tests :-( 21:19
This is perl6 version 2014.04-72-g0fb001e built on MoarVM version 2014.04-24-g4a8dac6 21:20
21:21 IllvilJa joined, raiph left 21:23 gdey joined 21:24 raiph joined 21:31 beastd left 21:35 kurahaupo left 21:36 kbaker left
FROGGS lizmat: k, I'll care 21:37
lizmat: hmmm, at least that test file passes on my box 21:38
lizmat ok, then I'll do a rebuild from sratch and see what gives 21:39
FROGGS hmmm
jnthn OSes? 21:40
jnthn tries on Windows
FROGGS: When building I see this: 21:41
lizmat OSX in my case
jnthn c:\consulting\moarvm\src\io\fileops.c(55) : warning C4715: 'MVM_file_follow_symlinks' : not all control paths return a value
FROGGS jnthn: yes, I've spotted that a second ago too
lizmat: you do not need to rebuild anything now
lizmat okidoki
jnthn Test does pass on Windows, fwiw 21:42
vendethiel timotimo: "Nami-Doc was kind enough to fix this" I, uh, was the one who broke it when I added it to start with :/
FROGGS lizmat: now please only pull and rebuild moar 21:43
jnthn The patch to syncfile looks dubious too
It doesn't stat any more, just does follow sym links?
vendethiel (so I wasn't "kind enough" to fix anything, it took me like 4 PRs to implement something that should've taken 3 minutes ... my bad)
FROGGS the follow_symlink stats
dalek kudo/nom: 98c2b3d | (Elizabeth Mattijsen)++ | src/core/SupplyOperations.pm:
Fixed timed batching with Supply.batch
21:44
jnthn FROGGS: oh...that's a weird name for it then?
FROGGS jnthn: yeah, I considered a much longer name first to express what it does :/
MVM_file_stat_symlink`s_target? 21:45
:/
jnthn MVM_file_stat_follow_symlink 21:46
FROGGS thanks, will change it 21:47
dalek ast: 28ddeb8 | (Elizabeth Mattijsen)++ | S17-concurrency/supply.t:
Add tests for timed batches
21:48
p: 8ac1a92 | (Tobias Leich)++ | tools/build/MOAR_REVISION:
bump moar rev for follow_symlink fix
21:50
kudo/nom: cc017e8 | (Tobias Leich)++ | tools/build/NQP_REVISION:
bump nqp/moar rev for follow_symlink fix
21:51
FROGGS nwc10++ # that TLS talk is really worth watching it
21:52 punter joined
punter Has CPAN started indexing perl6 modules properly? 22:01
FROGGS punter: no, the indexer ignores these atm
punter it will do so soon, though, won't it?
FROGGS I sent a mail to andk on saturday to discuss the indexer 22:02
punter ok
FROGGS I'll write a pull request after I got my answer :o)
22:03 bluescreen100 left
punter kewl 22:04
FROGGS yeah, and then we have to test the "eleven" branch of rakudo heavily and finally connect panda to cpan 22:05
jnthn Time for some rest...early start tomorrow
'night, #perl6
FROGGS night jnthn
timotimo raydiak: i like the functionality; can you make the checkboxes float to the right of the graphs and follow the scrolling? 22:07
raydiak timotimo: sure, great idea...hadn't figured out where to put them yet 22:08
timotimo and then turn that intox a matrix of nqp-jvm / nqp-moarvm / rakudo-jvm on the top and 2013.12 on the left
FROGGS is there something to look at?
raydiak hold on I'll un-break it
22:09 punter left
raydiak cyberuniverses.com/perl6-bench/ 22:10
FROGGS ahh, very nice
raydiak timotimo: when I make them float, they'll overlap the graphs if the window is too narrow...is that acceptable? 22:11
suppose I could add a 'open/close' button to the float too 22:12
FROGGS gnight all
22:12 FROGGS left 22:13 denis_boyun__ left
lizmat also wishes #perl6! a good * 22:15
sleep&
raydiak good night lizmat
22:16 rurban joined 22:19 gdey_ joined 22:23 gdey left, segomos is now known as tonyo 22:24 tonyo is now known as todell 22:28 xenoterracide_ joined
timotimo raydiak: oh, maybe you can make it expandable from the side? 22:28
so if the window is too narrow, it'll collapse and you can show it again with a button? 22:29
raydiak how about just having start collapsed?
timotimo good idea
something else i've just noticed, but you can probably do nothing about that
if there's a dot near the top of the graph, only parts of its mouseover tag will be visible :(
raydiak ah, I see 22:30
not sure, but I'll put it on a list to at least look at
there, fixed it 22:31
and have a start to floating checkboxes
timotimo <3 22:37
now the chartrs with only bars are weird
(regarding mouseover)
raydiak yeah, that's what I started out asking you about :) 22:38
but I'm thinking about a solution based on something PerlJam said...I might be able to get them to at least always show up in a certain corner or something 22:39
22:39 btyler left
timotimo oooh 22:40
also the check boxes seem to have weird "hit boxes"
clicking on the lower quarter or so of one will select the one below it instead
raydiak ah, I can fix that 22:41
timotimo great 22:42
i'm liking the changes a lot so far :)
22:43 treehug88 left 22:46 hoverboard left
raydiak glad to hear it :) 22:49
it has quick-n-dirty open/close for now, can add fancy rolling animation and open/close icon later 22:50
I notice when you hover over hidden bars, it shows a dot (but no tooltip) 22:52
timotimo doesn't do it for me 22:53
raydiak hm
22:54 dmol left
raydiak wish I could just turn that tooltip off for the bar charts, but then there's no way to see the exact value 22:54
the problems with the bar charts boil down to the fact that they used to be 1 series with a datum for each perl, and now it's 1 series per perl with a single datum each, like how the line graphs do it 22:56
b/c there are ways to turn whole series on/off, but not single points 22:57
timotimo oh 22:58
raydiak I'm learning to dislike jqplot...too many options for too little flexibility in the ways I need 22:59
23:06 spider-mario left 23:07 BenGoldberg joined
timotimo if you can save us (yourself) a lot of time by switching to something else, feel free ;) 23:08
23:09 raiph left
raydiak I may take that project on in the future 23:10
23:10 logie_ left 23:13 rurban left 23:20 hoverboard joined
raydiak I got the tooltip to always show in the top left...how does that look? 23:22
timotimo i like it 23:23
raydiak I almost like it more that way...doesn't tend to obscure the region of the graph you're looking at
timotimo aye 23:24
though bottom right may be a better choice all in all
as there's some white space there usually any way
raydiak lol it really didn't like that 23:26
ah there we go, that works 23:28
timotimo i like that more 23:29
but somehow, along the way, bar charts seem to have lost all their annotation 23:30
so you'll have to be not-colorblind
raydiak added roll up/down effect on the toggle drawer
timotimo cute
raydiak ah, right, that was another one of the tradeoffs for the restructuring I had to do
I will add the name of the perl to the tooltip on the bar charts 23:31
timotimo good 23:32
raydiak there, now color-blind people can identify the bars w/o counting from the top/left 23:33
timotimo good
raydiak got a few other issues to address over the evening to finish it up, but I think that's all the show-stopping problems I needed input on 23:35
timotimo \o/
i was planning on going to bed soon
i suppose i'll put the changes to the bench graphs into next week's weekly
(or maybe even write more than one post per week?)
raydiak really want to be thorough, don't you? :) didn't think this kind of minor evolution was newsworthy 23:37
timotimo the post started out quite short :P 23:40
raydiak you do a good job of making it all sound alive and exciting, regardless 23:41
timotimo hah 23:42
that's all that matters in the end ;)
raydiak hid the hover dot on the bar graphs, so now they look completely normal 23:45
timotimo looks good 23:46
i'm going to bed now :)
good luck and thanks for working on this!
raydiak you're quite welcome, I'm glad to help. sleep well! 23:47
23:52 arturo left 23:54 raiph joined