»ö« 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 hoverboard joined 00:01 cognome joined
timotimo parse_json is faster, array_set_xx is slower, huh. 00:01
jnthn Curious.
timotimo but forest fire is faster, so well done! :)
00:03 cognome_ joined, avuserow left
timotimo jnthn: did you measure the impact on stage parse? :) 00:04
00:06 cognome left 00:07 cognome_ left
jnthn Yeah. Faster. :) 00:08
Stage MAST used to be around the 14.xs mark for me, now it's down to 11.xs
timotimo no numbers?
00:10 BenGoldberg left 00:12 thou joined
timotimo going to bed now :) 00:13
jnthn 'night timotimo 00:14
00:17 thou left, avuserow joined
jnthn sleeps too 00:17
'night
timotimo tomorrow will see a weekly spanning two weeks 00:18
00:20 rurban1 left, rindolf joined 00:25 cognome joined 00:29 cognome left
dalek blets: 684fdd1 | (Herbert Breunung)++ | docs/appendix-d-delta.txt:
backlink design trends properly
00:30
ast: df19092 | (David Warring [email@hidden.address] | integration/99problems-21-to-30.t:
replace invalid autothreading ~~ with subset (<=)
dwarring reads better anyway 00:31
00:35 virtualsue left 00:41 BenGoldberg joined 00:47 atroxaper joined 00:51 atroxaper left 00:59 dayangkun joined 01:04 FROGGS_ joined 01:08 FROGGS left 01:09 kivutar left 01:11 raiph joined 01:20 raiph left 01:21 rurban1 joined 01:22 raiph joined 01:25 rurban1 left, cognome joined 01:30 cognome left, figoe left
raiph .tell timotimo gist.github.com/raiph/c1202f874c2477b09d1f irc summary trawl 01:31
yoleaux raiph: I'll pass your message to timotimo.
01:45 fling_ is now known as fling 01:46 klapperl_ joined 01:50 klapperl left 01:51 lizmat joined 02:01 thou joined 02:05 lizmat_ joined 02:06 thou left, Guest81465 left 02:08 lizmat left 02:12 bowtie joined, bowtie is now known as Guest44954 02:20 noganex joined 02:22 rurban1 joined, kst joined, noganex_ left 02:24 rurban2 joined, itz joined 02:25 cognome joined 02:26 rurban1 left, itz_ left 02:28 rurban2 left 02:30 lustlife joined, cognome left 02:34 ventica2 left 02:38 dayangkun left 02:47 atroxaper joined 02:51 atroxaper left 02:55 Akagi201 left 02:56 Akagi201 joined 02:57 colomon left 03:00 BenGoldberg left
lizmat_ is spectesting last version, and finds it ~5% slower / using 5% more CPU than before :-( 03:00
03:00 lizmat_ is now known as lizmat 03:03 figoe joined 03:05 figoe left 03:06 Akagi201 left, rurban1 joined, Akagi201 joined 03:07 figoe joined
lizmat Files=907, Tests=31845, 232 wallclock secs ( 9.44 usr 4.31 sys + 1466.85 cusr 181.28 csys = 1661.88 CPU) 03:14
with MVM_SPESH_DISABLE=1: Files=907, Tests=31951, 221 wallclock secs ( 8.84 usr 3.87 sys + 1421.61 cusr 154.11 csys = 1588.43 CPU) 03:15
FWIW, the timing with MVM_SPESH_DISABLE=1 are more like the timings I've seen before
03:19 araujo left 03:20 [Sno] left 03:25 ventica2 joined, cognome joined 03:29 cognome left 03:32 raiph left, chenryn joined
ventica2 m: say $*PID; 03:39
camelia rakudo-moar 319a78: OUTPUT«8067␤»
ventica2 m: say $PID;
camelia rakudo-moar 319a78: OUTPUT«===SORRY!=== Error while compiling /tmp/OY0IZgD_dD␤Variable '$PID' is not declared␤at /tmp/OY0IZgD_dD:1␤------> say $PID⏏;␤ expecting any of:␤ postfix␤»
lizmat ventica2: is there something here you didn't expect ? 03:40
ventica2 no
but not grokkin the $* twigil generally
m: say $( 1 & 2 & 3 ); 03:43
camelia rakudo-moar 319a78: OUTPUT«all(1, 2, 3)␤»
03:43 rurban1 left 03:49 dayangkun joined, thou joined 03:50 rurban1 joined
ventica2 say $( 1, 2, 3, ); 03:50
m: say $( 1, 2, 3, ); #oops
camelia rakudo-moar 319a78: OUTPUT«1 2 3␤»
ventica2 ok now that I didn't expect 03:51
should it coerce down to a scalar value?
shouldn't*
03:54 thou left
lue r: say (1,2,3).perl; say $(1,2,3).perl; 03:55
camelia rakudo-{parrot,jvm,moar} 319a78: OUTPUT«(1, 2, 3)␤$(1, 2, 3)␤»
lue ventica2: it is a scalar, just in the programming sense of "one object" (in this case, one Parcel), and not the math sense of "one value" 03:56
ventica2 i'm trying to use $() to say "I gave you an array, but I want a scalar. Pick one and DWIM."
and I mean scalar in the P5 sense
lue ventica2: if you want any one of them, then you want @list.pick or @list.roll :)
ventica2 surely P6 distinguishes between a scalar value and other kinds of "single" things
hrm
lue r: say (1,2,3).roll(5)
ventica2 not grokking the overall idea then
camelia rakudo-moar 319a78: OUTPUT«3 3 2 1 2␤»
..rakudo-jvm 319a78: OUTPUT«3 2 1 3 3␤»
..rakudo-parrot 319a78: OUTPUT«2 2 2 3 3␤»
ventica2 what's the point of $()?
03:57 rurban1 left
lue to force item context instead of list context (lemme try to make an example real quick) 03:57
s/list context/some other context/
ventica2 k thx, appreciated
03:57 chenryn left
lue r: say $_.perl for (1,2,3); 03:58
camelia rakudo-{parrot,jvm,moar} 319a78: OUTPUT«1␤2␤3␤»
lue r: say $_.perl for $(1,2,3);
camelia rakudo-{parrot,jvm,moar} 319a78: OUTPUT«$(1, 2, 3)␤»
ventica2 the second loop executed just once, no?
lue when that list of three elements is seen in list context, you go through each item in the list. When the list is forced into item context, it's seen as a singular item. 03:59
ventica2 ok yeah i'm getting it
m: say $_.perl for 1 & 2 & 3 04:00
camelia rakudo-moar 319a78: OUTPUT«all(1, 2, 3)␤»
ventica2 ok, so all/any/etc act a little bit like $()
the junction is treated as a single item 04:01
lue perhaps, though using Junctions with that thought in your head will surely lead to Bad Things™
ventica2 haha ok
lue A Junction is really multiple things at once, rather than a collection of things.
ventica2 yes
04:02 kaare__ joined
ventica2 so, what I'm really looking for is a "collapse" function for the Junction... "Take this thing that can be ANY or ALL of these things and make it a TRULY single thing" 04:02
how do I do that? 04:03
lue r: sub foo($a) { say $a }; foo((1,2,3)); foo(any(1,2,3)); # here's a quick way to show the difference between a list and junction
camelia rakudo-{parrot,jvm,moar} 319a78: OUTPUT«1 2 3␤1␤2␤3␤»
lue (and yes, the list in the first call was itemized because it was stuffed into a $ variable)
04:04 rurban1 joined
lue ventica2: in your case it would probably be best to use a normal list and just .pick a value 04:05
r: say (1,2,3).pick
camelia rakudo-jvm 319a78: OUTPUT«2␤» 04:06
..rakudo-{parrot,moar} 319a78: OUTPUT«3␤»
04:13 Pleiades` left 04:17 Pleiades` joined 04:22 atroxaper joined 04:24 nbrown joined, atroxaper left 04:25 cognome joined 04:26 figoe left 04:27 chenryn joined 04:28 nbrown left 04:29 cognome left 04:34 chenryn left 04:35 rurban1 left 04:45 gfldex joined 04:46 kaare__ left
avuserow .tell itz thanks for the PR. what tests started failing on parrot 6.6.0? I think Rakudo 2014.07 used Parrot 6.6.0, so I wouldn't expect it to be that bad 04:50
yoleaux avuserow: I'll pass your message to itz.
avuserow timotimo++ # resuming weekly updates 04:53
m: say (so any(1,2,3)).perl 04:56
camelia rakudo-moar 319a78: OUTPUT«Bool::True␤»
avuserow m: say (+any(1,2,3)).perl
camelia rakudo-moar 319a78: OUTPUT«any(1, 2, 3)␤»
avuserow right. 04:57
05:07 dayangkun left 05:19 kaare__ joined 05:21 dayangkun joined 05:22 [Sno] joined 05:23 ventica joined 05:24 rurban1 joined, ventica2 left 05:25 raiph joined, cognome joined 05:28 rurban1 left 05:30 cognome left, dayangkun left 05:31 chenryn joined 05:33 Guest44954 left 05:35 kaare_ joined, kaare__ left, chenryn left 05:37 thou joined 05:40 kurahaupo left 05:41 gfldex left 05:42 thou left 05:43 bowtie joined, woolfy joined, bowtie is now known as Guest81399 05:44 dayangkun joined 05:47 jack_rabbit joined 05:50 Guest81399 left 05:52 ventica2 joined 05:53 ventica left 05:55 bowtie_ joined 06:00 jack_rabbit left 06:01 [Sno] left 06:05 virtualsue joined 06:09 gamo joined 06:15 dayangkun left 06:16 raiph left 06:17 chenryn joined
sergot hi o/ 06:19
06:21 woolfy left 06:24 bowtie_ left, hoverboard left 06:25 cognome joined 06:29 bowtie_ joined, cognome left 06:32 chenryn left 06:35 c1sung left, FROGGS[mobile] joined, c1sung joined 06:38 xinming_ joined 06:41 xinming left
ventica2 avuserow: thanks 06:43
say (so 1 | 2 | 3).perl 06:44
m: say (so 1 | 2 | 3).perl # oops
camelia rakudo-moar 319a78: OUTPUT«Bool::True␤»
ventica2 aha
m: say (so 0 & 2 & 3).perl
camelia rakudo-moar 319a78: OUTPUT«Bool::False␤»
ventica2 there we g
m: say 1 + 2 & 3 06:45
camelia rakudo-moar 319a78: OUTPUT«all(3, 3)␤»
ventica2 m: say 1 + (2 & 3)
camelia rakudo-moar 319a78: OUTPUT«all(3, 4)␤»
ventica2 nice
06:51 xinming_ left 07:06 FROGGS[mobile] left, FROGGS_ is now known as FROGGS
virtualsue o/ 07:10
raydiak \o 07:14
07:17 virtualsue_ joined, virtualsue left, virtualsue_ is now known as virtualsue
avuserow huh, I'm a little surprised that junctions don't drop duplicate values 07:20
07:21 dayangkun joined
avuserow m: my $j = 2; $j &= 2 for ^5; $j.perl.say 07:21
camelia rakudo-moar 319a78: OUTPUT«all(all(all(all(all(2, 2), 2), 2), 2), 2)␤»
FROGGS you need that, otherwise you cannot map that against the input... 07:22
07:22 salv0 joined
FROGGS m: say 2 ~~ 1 | 2 | 2 | 2 | 2 | 3 07:22
camelia rakudo-moar 319a78: OUTPUT«True␤»
moritz avuserow: at least the one() junction wouldn't work if it dropped duplicate values
FROGGS m: say 2 ~~ all 1 | 2 | 2 | 2 | 2 | 3
camelia rakudo-moar 319a78: OUTPUT«True␤»
FROGGS err
moritz you create an all-junction with one value, which is an any-junction 07:23
avuserow right, one() is special here. for some reason, the other junctions seem like they'd be more set-like than list-like in my mind. or maybe bag-like 07:24
07:25 dayangkun left
avuserow I mean, certainly my idea does not pan out if you expected to be able to get the values from a junction, but IIRC that temptation is a bit discouraged 07:25
TimToady seems like one(1,2,2,2,3) could be optimized to one(1,3) 07:26
avuserow (except bags might still work?)
07:26 thou joined, nbrown joined
avuserow m: say so one(1, 2, 2, 2, 3) 07:27
camelia rakudo-moar 319a78: OUTPUT«False␤»
avuserow m: say so one(1, 3)
camelia rakudo-moar 319a78: OUTPUT«False␤»
avuserow oh I see
TimToady m: say so one(1,2,2,2,3) == 2
camelia rakudo-moar 319a78: OUTPUT«False␤»
TimToady m: say so one(1,2,2,2,3) == 3
camelia rakudo-moar 319a78: OUTPUT«True␤»
avuserow m: say so one(1, 3) == 2 07:28
camelia rakudo-moar 319a78: OUTPUT«False␤»
TimToady so it's still worthwhile finding the duplicates, but you do something different with them, is all 07:29
just as ^^ can short circuit on the second true 07:30
07:30 [Sno] joined, [Sno] left, chenryn joined
TimToady m: say True ^^ False ^^ True ^^ die "oops" 07:30
camelia rakudo-moar 319a78: OUTPUT«Nil␤»
07:30 [Sno] joined, dayangkun joined, thou left 07:31 dmol joined, nbrown left
FROGGS somehow the v5 code that got translated from NQP to Perl 6 does not like multi tokens at all :o( 07:32
(except token term...)
avuserow m: sub infix:<!>(**@values) { Junction.new(@values, :type<none>); }; say (1 ! 2 ! 3).perl 07:33
camelia rakudo-moar 319a78: OUTPUT«===SORRY!=== Error while compiling /tmp/ut_aiZURSW␤Negation metaoperator not followed by valid infix␤at /tmp/ut_aiZURSW:1␤------> n.new(@values, :type<none>); }; say (1 !⏏ 2 ! 3).perl␤ expecting any of:␤ …»
avuserow m: sub infix:<&!>(**@values) { Junction.new(@values, :type<none>); }; say (1 &! 2 &! 3).perl 07:34
camelia rakudo-moar 319a78: OUTPUT«none(none(1, 2), 3)␤»
avuserow still I wonder if junctions of a certain size would be better as Bags, assuming the values are hashable... 07:35
07:35 chenryn left
avuserow junctions aren't mutable right? 07:35
moritz right 07:36
TimToady no, so sets are good enough
though you'd need a second set to track one construction, so you'd know to remove that 2 and keep it removed 07:37
avuserow or just de-duplicating a list by hand, since that doesn't require hashability, you'd only do it once, and lists are cheaper?
TimToady well, requires a sort of some sort, likely 07:38
but a sorted list could be searched with a binary search, if you don't want to hash
avuserow do we have unhashable things in perl6? or is that $other-lang brain damage that I'm thinking of? 07:39
TimToady but a hash might be a good way to handle some ops $value eq any(@lots)
mutable objects including containers hash to their identity, not their contents 07:40
moritz but if you construct the hash for just one comparison, it's slower than going through it linearly
TimToady sure
07:46 pecastro left 07:49 dwarring left
TimToady zzz & 07:51
07:51 bjz joined 07:52 darutoko joined 07:55 bjz left, hoverboard joined 07:56 bjz joined 07:57 zakharyas joined 08:02 bjz left 08:04 bjz joined 08:06 Maddingu1 is now known as Maddingue
timotimo o/ 08:07
yoleaux 01:31Z <raiph> timotimo: gist.github.com/raiph/c1202f874c2477b09d1f irc summary trawl
08:07 dayangkun_ joined, virtualsue_ joined 08:08 dayangkun left 08:09 virtualsue left, virtualsue_ is now known as virtualsue
raydiak \o 08:10
timotimo hey raydiak!
good to see you :)
raydiak thanks, you too :)
08:11 gamo left 08:16 xinming joined
timotimo it'd be interesting if we could extract benchmarks from pray 08:19
have you tried pray recently? 08:20
especially yesterday and the day before that jnthn has improved performance nicely 08:21
even though some people are actually reporting performance hits
raydiak that was one of the thoughts I had as I was beginning it...I'm going to be working on math::threed and pray more very soon, so adding some stuff to it specific to benchmarks is a possibility
nwc10 has anyone run the benchmarks since ++jnthn++'s work?
timotimo i have, but it was missing parser speed improvements
raydiak I have tried it enough to confirm that it still works
timotimo so startup time would have been overestimated
raydiak (Pray I mean) 08:22
timotimo thought so
raydiak problem is I got a new (well, new to me) laptop, so comparing the speed of this to anything else is meaningless 08:23
timotimo ah, of course
did you know perl6-bench is a nice tool to build rakudo at different revisions?
raydiak oh, I think I was running them on my server before anyway...I ought to build a new rakudo on the vps and try pray again 08:24
is it?
timotimo like ./bench extract rakudo-moarvm/2014-05 rakudo-moarvm/2014-06 rakudo-moarvm/2014-07; ./bench build rakudo-moarvm/2014-05 rakudo-moarvm/2014-06 rakudo-moarvm/2014-07
raydiak oh neat
I usually use rakudobrew
timotimo in the bench case you don't need the "switch" part
but you don't get a perl6 binary for your path 08:25
08:25 Ven joined
raydiak might not want historical versions in your path anyway :) 08:26
Ven o/, #perl6.
timotimo that's correct
hey ven
raydiak hi Ven
are the performance improvements specific to moar?
timotimo partially
a big chunk of them are 08:27
raydiak I'll build that first them
*then
timotimo recent improvements to moar are a big chunk of "make more things inlinable at spesh time", so if pray happens to have been blocking on that in some place or other, there could certainly be a nice speed boost in store for you :) 08:29
08:30 kaleem joined
timotimo that might also explain the performance hit some people saw so far; we can do more inlinings and maybe they don't end up benefiting performance as much as they take to be done 08:31
08:31 denis_boyun joined, chenryn joined
timotimo only speculations at this point, though 08:32
raydiak hard to say what my bottleneck is...I think Pray is blocking on the fact that at least in the master branch no attempt has ever been made to pay any attention to performance
timotimo oh, you mean the pray code isn't performance-optimized? 08:33
raydiak heck no :)
timotimo that's good, though
it'd point us at things that'd appear in "regular code" that ought to be faster, but isn't
raydiak to an extent...I'm sure some of it is just outright wrong in retrospect, I'll be finding out as I dig back in 08:34
timotimo hah, all right :)
i'm just glad you chose to fly with perl6 airlines
raydiak heh me too
getting new hardware helped...Pray was developed on a VPS w/half a gig ram, via a half-broken laptop from 2007 w/no hard drive 08:35
08:35 FROGGS_ joined 08:36 chenryn left
timotimo ah, that does sound like something you may want to update 08:36
08:36 tempire_ left 08:37 FROGGS left
raydiak I kinda prided myself on being able to limp it by with lean desktops and excessive console use, but that looses entertainment value after a certain amount of time 08:37
timotimo mhm
i've gone back and forth between "geek pride" "hard core" setups and "end-user fancy flashy stuff" multiple times in the past 08:38
kde3 followed by awesome (then xmonad and then i3)
and then xfce4
08:38 tempire joined
raydiak I've been through so many...back in my gentoo days I'd change window managers a few times a week for a while...using mint kde atm 08:39
timotimo at some point i was on gentoo, even did a stage1 build at some point, but that was after (i think) debian and followed by debian, later on fedora
oh, debian, then mint (with cinnamon) and then fedora 08:40
raydiak I've tried to some extent or another at some point between the 90s and now slackware, gentoo, redhat, debian, ubuntu, mint, arch, mandrake, puppy, knoppix, portage... 08:42
can't remember it all, or at least I try not to
timotimo hah, i also used mandrake for a short while
back when it was actually called mandrake and not mandriva 08:43
that was my very second linux distro ever
back then i didn't really know what to do with a linux system; i was much more into gaming then than i am now
masak good antenoon, #perl6
raydiak yeah they had the best hardware autodetection back in the day, I loved the lesser extent I had to futz with kernel modules and so forth 08:44
\o masak
masak m: my $jnthn; say ++$jnthn++
camelia rakudo-moar 319a78: OUTPUT«Cannot assign to an immutable value␤ in sub postfix:<++> at src/gen/m-CORE.setting:4561␤ in block at /tmp/DaBFPrSdkk:1␤␤»
masak m: my $jnthn; say (++$jnthn)++
camelia rakudo-moar 319a78: OUTPUT«Cannot assign to an immutable value␤ in sub postfix:<++> at src/gen/m-CORE.setting:4561␤ in block at /tmp/SYaGRCX_xc:1␤␤»
masak m: my $jnthn; say ++($jnthn++)
camelia rakudo-moar 319a78: OUTPUT«Cannot assign to an immutable value␤ in sub prefix:<++> at src/gen/m-CORE.setting:4553␤ in block at /tmp/Tn1QylpxaJ:1␤␤» 08:45
jnthn ++ returns the value, not the container
masak turns out pre-post-incrementing jnthn's karma is too much :)
masak .oO( circumincrement )
08:46 Mouq_ joined 08:49 Mouq_ left 08:50 virtualsue left
masak prompted by Perl Weekly -- why are formats so rarely used? 08:55
is it due to a shift in what's fashionable/interesting? or were they always rarely used?
timotimo masak: formats, as in @foobar.fmt("this thing in here") #? 08:56
masak hehe, no :)
as in `perldoc perlform`
as in www.learning-perl.com/2014/07/formats/
08:56 kurahaupo joined
timotimo oh! 08:57
that's kinda cute
masak as in www.perl.com/pub/2004/02/27/exegesis7.html 08:58
as in github.com/mathw/form/
Ven oh, I never knew about that
timotimo that's far from implemented, isn't it?
did it actually end up as part of the spec? 08:59
masak no, and that's part of my point.
it was exiled to module-land from the start.
timotimo ah
masak E07 has no synopsis.
timotimo well, yeah, i can see how it'd be quite good in a module
masak S07 today is about something else (lists and iteration).
my question is about the history and evolution of the use of formats. 09:00
where do they come from originally? were they a Perl invention?
were they once wildly popular?
moritz they were pretty popular once, yes 09:02
09:03 [particle]1 left 09:04 [particle] joined 09:05 kurahaupo_mobile joined, bjz left
masak moritz: about the only data I have to support that is the "R" in "Perl" :) 09:05
09:05 bjz joined
raydiak my general impression was that they are crufty and limited...ascii soup, weird scoping rules iirc, stuff like that, and not something that likely belongs in the core anyway, given our shift away from dot-matrix printers and monospaced characters for typographic layout 09:05
straight out of perlform:
"Pretty ugly, eh? It's a common idiom though, so don't be too surprised when you see it." 09:06
09:06 kurahaupo left
ventica2 what is gabor szabo's nick? (i'm watching his YT video tutorials) 09:06
timotimo szagab usually
!seen szagab
ventica2 thx
timotimo yoleaux: seen szagab
how do i ...
masak szabgab usually. 09:07
timotimo oh
masak it's a Hungarian thing, I think, to put the last name first.
ventica2 thinks of cracking bad pun about hungarian notation...
09:07 chenryn joined
masak heh. 09:08
timotimo oh hey ventica2
ventica2 yes
timotimo i see you've "discovered" junctions
ventica2 haha yeha, i used quantum:: back in the day
timotimo it felt like i was the only person to like junctions when i last worked on them
09:08 ivan`` left
ventica2 yeah, I think it will become a killer-app feature of langs after p6 hits mainstream... :) 09:09
timotimo i do agree that if you do something like return junctions from your module's interface-defined subs and methods, that's pretty evil
ventica2 hmm, not sure it's evil... a search function for example might want to say "i found one of X or Y or Z" 09:10
timotimo it does funky things with calls :)
ventica2 implementation bug? 09:11
timotimo no
ventica2 or arch bug?
timotimo anyway, you usually have to declare your variables to hold a Mu if you want to handle junctions
that's just how junctions work
FROGGS_ .seen szabgab
ventica2 k
yoleaux I haven't seen szabgab around.
timotimo m: sub do_something($a) { say "i'm doing something with $a. cool, huh?"; return Bool.pick }; say do_something(1 | 2 | 3).perl
camelia rakudo-moar 319a78: OUTPUT«i'm doing something with 1. cool, huh?␤i'm doing something with 2. cool, huh?␤i'm doing something with 3. cool, huh?␤any(Bool::False, Bool::False, Bool::True)␤»
masak I used to be wildly in love with junctions, too. 09:12
timotimo this is called "autothreading" (not actually multi-threading across cores/threads though (yet))
masak nowadays I consider them to be one of those rather narrow power features to be used in a limited, controlled scope.
timotimo i think the next thing i ought to do with junctions is apply the same optimizing transformation to any(<foo bar baz>) that would happen to "foo" | "bar" | "baz" (in boolean context, that is) 09:13
moritz ventica2: Gabor mostly stopped using IRC about two years ago, IIRC
timotimo irc is quite the time sink :) 09:14
moritz ventica2: but it should be possible to reach him by e-mail
ventica2 moritz: ah
09:14 ivan`` joined
timotimo or twitter, i think 09:14
ventica2 was jst curious if he's around to say "nice job!" on the tuts
09:14 thou joined
timotimo can send a comment on youtube/google+ 09:14
09:14 kivutar joined
ventica2 m: sub foo($a) { return "blah $a"; }; foo(1|2|3); 09:15
camelia ( no output )
ventica2 m: sub foo($a) { return "blah $a"; }; say foo(1|2|3); #oops
camelia rakudo-moar 319a78: OUTPUT«any(blah 1, blah 2, blah 3)␤»
ventica2 m: sub foo($a) { say "blah $a"; }; foo(1|2|3);
camelia rakudo-moar 319a78: OUTPUT«blah 1␤blah 2␤blah 3␤»
ventica2 oooooooooookay
finally
timotimo you see now how that can cause unexpected things? :) 09:16
ventica2 it seems that junctions aren't considered a readability feature? 09:17
timotimo they are totally good for readability
ventica2 yeah... but... seems like they could be made a bit more DWIMmy
timotimo consider if $x & $y == -1 | 0 | 1
how so?
09:18 lustlife left
ventica2 hmm, maybe i just need more time with them... it seems they should be a little more eager to resolve to "classical" states, i.e. to "de-junctionize" 09:18
Ven timotimo: took me some time to understand what that meant
09:19 thou left
timotimo ventica2: they de-junctionize if you .Bool them 09:19
ventica2 m: my $x = 1; my $y = 0; say ($x & $y == -1 | 0 | 1).perl;
camelia rakudo-moar 319a78: OUTPUT«all(any(Bool::False, Bool::False, Bool::True), any(Bool::False, Bool::True, Bool::False))␤»
moritz ventica2: if you want a non-boolean result out of a junction, you shouldn't be using a junction (but a Set) 09:20
ventica2 timo: aha! let me try:
m: my $x = 1; my $y = 0; say ($x & $y == -1 | 0 | 1).Bool.perl;
camelia rakudo-moar 319a78: OUTPUT«Bool::True␤»
timotimo m: my $x = 1; my $y = 0; say so $x & $y == -1 | 0 | 1;
camelia rakudo-moar 319a78: OUTPUT«True␤»
ventica2 theeeeeeeere we go!
ha, u guys made my night
Ven yay :)
timotimo being able to .say a Junction is considered A Feature
ventica2 what is the mnemonic for 'so'
?
timotimo "opposite of not" 09:21
ventica2 as in "it is so" ?
timotimo yup
ventica2 lol TimToady
timotimo that's also why we have ... ?? ... !! ... instead of ... ? ... : ...
ventica2 that's got to be his idea
timotimo not only because the : is for other things now
because prefix:<?> is the opposite of prefix:<!>, i.e. boolification without negation 09:22
ventica2 m: my $x = 1; my $y = -1; say ($x & $y == -1 | 0 | 1).Bool.perl;
camelia rakudo-moar 319a78: OUTPUT«Bool::True␤»
ventica2 m: my $x = 1; my $y = 2; say ($x & $y == -1 | 0 | 1).Bool.perl;
camelia rakudo-moar 319a78: OUTPUT«Bool::False␤»
timotimo so in the ternary operator, the ?? comes before what is the result for a "true" condition, and after the !! is the result for a "false" condition
ventica2 m: my $x = 1; my $y = 2; say ($x | $y == -1 | 0 | 1).Bool.perl;
camelia rakudo-moar 319a78: OUTPUT«Bool::True␤»
ventica2 ^ exactly what I expect 09:23
timotimo great, huh? :)
ventica2 :D
timo: Yeah, same as C
timotimo that's the part of junctions i really enjoy having
bwahaha
ventica2 just different squigglies :P
timotimo would $x | $y == -1 | 0 | 1 in C actually work? %)
through some ridiculous coincidence of bit masks
ventica2 moritz: OK, I haven't gotten to sets yet
timo: No, i meant the ternary operator 09:24
masak no, no, the mnemonic of "so" is children going "not X!" -- "so X!"
ventica2 lol 09:25
masak or "that is *so* true" as an opposite of "that is *not* true"
ventica2 "dude, that is so X!" where "X == cool"
timotimo m: say so "perl6" ~~ Cool
camelia rakudo-moar 319a78: OUTPUT«True␤»
jnthn m: say so not True # :-)
camelia rakudo-moar 319a78: OUTPUT«False␤»
09:26 hoverboard left
timotimo m: say not so True 09:26
ventica2 lol... p6 poetry...
camelia rakudo-moar 319a78: OUTPUT«False␤»
ventica2 wait... how does "perl6" match Cool?? 09:27
timotimo m: say "perl6".^mro
camelia rakudo-moar 319a78: OUTPUT«(Str) (Cool) (Any) (Mu)␤»
masak m: for ^10 { say EVAL "not " x $_ ~ "True" }
camelia rakudo-moar 319a78: OUTPUT«True␤False␤True␤False␤True␤False␤True␤False␤True␤False␤»
ventica2 lol ... um
timotimo m: say (True, not * ... *)[^10
camelia rakudo-moar 319a78: OUTPUT«===SORRY!=== Error while compiling /tmp/FBDCI1Z5G7␤Unable to parse expression in subscript; couldn't find final ']' ␤at /tmp/FBDCI1Z5G7:1␤------> say (True, not * ... *)[^10⏏<EOL>␤ expecting any of:␤ …»
timotimo m: say (True, not * ... *)[^10]
camelia rakudo-moar 319a78: OUTPUT«True False True False True False True False True False␤»
Ven timotimo: oh wow, that's cool :DD 09:28
ventica2 hrm, not grokking that 09:29
timotimo the ... operator?
Ven well, it's the sequence operator using a closure as the "next"
ventica2 looks like * is somehow using the "last" value in constructing the lazy array slice?
am i completley off?
masak m: enum Trool <False Meow True>; sub knot(Trool $t) { Trool(($t + 1) % 3) }; for ^10 { say EVAL "knot " x $_ ~ "Trool::False" } 09:30
camelia rakudo-moar 319a78: OUTPUT«False␤Meow␤True␤False␤Meow␤True␤False␤Meow␤True␤False␤»
Ven it's the Whatever, and here, it creates a closure
timotimo no, that's right; but it's the ... operator that is responsible for that
ventica2 but where's the closure coming from?
masak strangest code I've written in a while ;)
09:30 zakharyas left
Ven m: (not *)(True); # ventica2 09:30
camelia ( no output )
Ven m: say (not *)(True); # ventica2 / ENOSAY
camelia rakudo-moar 319a78: OUTPUT«False␤»
timotimo the ... operator takes, on its left hand side, a list of initial values. but if the list of initial values ends in a callable, it'll be using that as the generator for new values 09:31
ventica2 ohhhhhh
timotimo maybe you've read it as "True, not (* ... *)"
ventica2 so you can have (* ... foo())?
masak m: enum Trool <False Meow True>; sub knot(Trool $t) { Trool(($t + 1) % Trool.WHO.elems) }; for ^10 { say EVAL "knot " x $_ ~ "Trool::False" }
camelia rakudo-moar 319a78: OUTPUT«False␤Meow␤True␤False␤Meow␤True␤False␤Meow␤True␤False␤»
timotimo ventica2: that would use foo to determine whether or not to stop creating new values
ventica2 oh 09:32
8|
09:32 zakharyas joined
timotimo what you're looking for would probably look more like this: 1, &foo ... * > 10 09:32
or something similar
ventica2 k
timotimo m: .say for (1, &rand ... * < 0.01) 09:33
camelia rakudo-moar 319a78: OUTPUT«1␤0.63806099432048␤0.99600266644003␤0.627999792034536␤0.424795260287713␤0.773997386634655␤0.930332430721908␤0.0731129034402533␤0.624690187159723␤0.378498143362509␤0.900633295939546␤0.167187315044206␤0.770091165681623␤0.97043794096…»
timotimo m: say rand(10)
camelia rakudo-moar 319a78: OUTPUT«===SORRY!=== Error while compiling /tmp/ep0hFjK1tS␤Unsupported use of rand(N); in Perl 6 please use N.rand or (1..N).pick␤at /tmp/ep0hFjK1tS:1␤------> say rand⏏(10)␤»
timotimo ah, ok
m: .say for (1, { rand * $_ } ... * < 0.01)
camelia rakudo-moar 319a78: OUTPUT«1␤0.892413575163273␤0.822827642810902␤0.759099022921723␤0.0162804340793365␤0.0123253346263869␤0.00537682554377414␤»
timotimo m: .say for (1, { rand * $_ } ... * < 0.01)
camelia rakudo-moar 319a78: OUTPUT«1␤0.674718120498933␤0.504576203895648␤0.277071311046884␤0.272918659793391␤0.240595504767705␤0.190853393534245␤0.163029548975817␤0.0819790525609101␤0.0648692437531501␤0.0279766166199596␤0.0172190678642668␤0.0145456946016295␤0.00034…»
timotimo m: .say for (1, *.rand ... * < 0.01)
camelia rakudo-moar 319a78: OUTPUT«1␤0.696997511073613␤0.614248875876916␤0.338122651616165␤0.0289001131197655␤0.00732885836923004␤»
timotimo m: .say for (1, *.rand ... * < 0.0001) 09:34
camelia rakudo-moar 319a78: OUTPUT«1␤0.894375562174117␤0.63748354142407␤0.509248141468545␤0.360450555755423␤0.316268196942232␤0.282577593425415␤0.249381263229318␤0.183163300749547␤0.136788393139608␤0.132964163895922␤0.0331698493581032␤0.00457938070950557␤0.00281906…»
timotimo ^- perfectly useful sequence of "randomly" spaced decreasing numbers
09:37 pecastro joined
moritz wy does that only produce decreasing numbers? 09:38
*why 09:39
ah, because we call .rand on the previous number
Ven moritz: because .rand will never produce something greater than its self
ventica2 m: say 1 .. 10;
moritz clever
jnthn Because the previous thing is what we call .rand on
camelia rakudo-moar 319a78: OUTPUT«1..10␤»
ventica2 m: say (1..10).perl;
camelia rakudo-moar 319a78: OUTPUT«1..10␤»
ventica2 m: say $_ for (1..10);
camelia rakudo-moar 319a78: OUTPUT«1␤2␤3␤4␤5␤6␤7␤8␤9␤10␤»
ventica2 m: say $_ for (1,3...10); 09:40
camelia rakudo-moar 319a78: OUTPUT«(timeout)1␤3␤5␤7␤9␤11␤13␤15␤17␤19␤21␤23␤25␤27␤29␤31␤33␤35␤37␤39␤41␤43␤45␤47␤49␤51␤53␤55␤57␤59␤61␤63␤65␤67␤69␤71␤73␤75␤77␤79␤81␤83␤85␤87␤89␤91␤93␤95␤97␤99␤10…»
ventica2 oops
wait, what?
Ven ventica2: it doesn't hit 10, so doesn't stop :)
m: say $_ for (1,3... * > 10); 09:41
camelia rakudo-moar 319a78: OUTPUT«1␤3␤5␤7␤9␤11␤»
ventica2 i see
moritz m: say $_ for (1,3...^ * > 10); 09:42
camelia rakudo-moar 319a78: OUTPUT«1␤3␤5␤7␤9␤»
ventica2 i think it should detect > 10 in a DWIMmy way 09:43
otherwise, too susceptible to hang conditions
unintended 09:44
masak no no, it's a *fun* way to teach people to be careful with infinity! :P
Ven it used it, afaik
it used to*
ventica2 Ven: yeah, in szabgab's tuts, he shows it stopping before 10 for odd no.s 09:45
masak: perhaps... but seems to me to violate the principle of least surprise... :\ 09:46
masak the scheme that dwam 10 was way complicated.
and the complexity bit more than it served. 09:47
Ven yeah, you need to deduce the "direction", right ?
masak yep.
Timbus ? 09:48
m: say 5 ... 1
camelia rakudo-moar 319a78: OUTPUT«5 4 3 2 1␤»
masak m: say 11, 9 ... 0
camelia rakudo-moar 319a78: OUTPUT«(timeout)»
masak (oops, missed) :) 09:49
moritz ventica2: we had automagic detection of upper limits once
ventica2: it was a complete mess with non-monotonic sequences
masak queue moritz retreading my steps :P
moritz++
ventica2 seems to me that non-monotonic is the problem
personally, i'd say dispense non-monotonic and preserve principle of least surprise for monotonic sequences 09:50
masak now you're just insisting on things being as simple as you'd like :)
jnthn Well, infix:<...> is just an operator, so you an always write a module that implements the ... you'd like.
masak sure, if you can prove monotonicity, then you can do clever things with detecting timeouts. 09:51
moritz ... and be surprised how many corner cases lurk in such a seemingly simple operator
ventica2 masak: perhaps... or maybe it's not abt simplicity so much as not introducing unintended bugs when using variables in a sequence construction
$init, $next ... $final
moritz what does that do when $next < $init < $final ? 09:52
masak ventica2: I can definitely see a case for special-casing the simple linear case. but it does feel a little like a slippery slope.
ventica2 for any value of init, next and final, I know what thta means (or error) for monotonic sequences... for non-monotonic, I have no idea what's going to happen
jnthn ventica2: A hang is a pretty obvious bug; I seem to recall the ones introduced by the DWIM-y end point were much more subtle and harder to figure out.
masak moritz: that could also be detected.
moritz masak: sure it can; but what to do?
also
ventica2 idk, I just think of it as a range() function baked into the syntax
moritz one must be careful not to introduce different behavior between 1, 3 ... 10 and 1, *+2 ... 10
masak moritz: why is that important? 09:53
moritz masak: consistency
jnthn 'cus I'd expect to be able to do a refactor like that without changing the semantics.
masak this is about catching statically-determinable beginner mistakes.
moritz oh 09:54
you want extra compile-time analysis
masak moritz: if one dies at compilation, and the other loops infinitely, then that's not immediately "different behavior" to me. it's just we caught one of them.
yes.
ventica2 doesn't see a large distinction between beginner(self) and expert_hasnt_used_this_feature_in_a_couple_months(self)
masak could even be a warning :)
moritz masak: I missed that part
Ven
.oO( ERROR: it seems you're unable to count up to 10 )
masak we detect all kinds of wrong signature binding at compile time. why not wrong sequences? 09:55
moritz m: say (100, 45, *%* ... 0)[*-2]
camelia rakudo-moar 319a78: OUTPUT«5␤»
moritz I still love that GCD implementation
ventica2 O.o
Ven haha nice 09:56
mathw ah yes, formats. definitely better in a module. 09:57
masak mathw++ # making that module 09:58
mathw yeah shame I never maintain it...
and have never finished it...
masak mathw: we could hackathon it sometime.
mathw might be a good idea
give me a Perl 6 knowledge refresh/update too
masak oh, 'd love to!
mathw so focussed lately on C# at work, and using Clojure for some home stuff 09:59
was using Haskell but got bitten by the dependency hell so backed off for a while
timotimo #perl6 memes. today: GMM; Good Man Masak
masak :P
timotimo in perl6 land we got rid of the "dependency hell" by not having any modules you can depend on!
mathw My local PM group are going to start having technical talks, they want something Perl 6-ish and of course they're all looking at me...
masak mathw: dependency hell in Haskell? I thought those people were all into immutable stuff... 10:00
xiaomiao dependency hell is just a matter of having good policies and a package manager available
masak xiaomiao: "just", huh? :P
xiaomiao e.g. perl5: no cyclical dependencies in cpan, ever
mathw yeah... it's not that simple in Haskell-land
xiaomiao that's a massive lesson that the ruby people won't learn, so their stuff is impossible to install
masak xiaomiao: are there package managers with cyclical dependencies!!??? h... how?
moritz xiaomiao: and reliable infrastructure, and packages declaring all deps correctly, ...
mathw cyclical dependencies???
masak I... how?
mathw no, Haskell has problems with versioning 10:01
xiaomiao mostly tests depending on things that need that package installed to run
mathw package A depends on B 1.0.3, package C (which you also want) uses B 1.0.5
xiaomiao so you have to disable all tests to install things
mathw this usually causes some sort of explosion
moritz if you have some kind of transaction thingy, and deps don't need to be satisfied inside the transaction, you can have cyclic deps
xiaomiao e.g. gem :)
mathw: you should never need such precise deps, unless your code is so fragile that you'll bundle that in directly 10:02
bundling is bad!
10:02 fhelmberger joined
timotimo bundling is fun! 10:02
mathw especially as Hackage (Haskell-like CPAN) has a lot of packages with upper version bounds that are way too tight or just too cautious
xiaomiao usually, most of the time, <=1.0.0 would be ok
mathw a lot of packages have broken interfaces on 0.0.1 increments etc.
xiaomiao forcing =1.0.3 like ruby people like to do is bad
Ven you can have cyclical deps in JS :P
mathw bad policies, no enforcement etc.
xiaomiao bad code :)
mathw Haskell library community needs to mature
and they're trying to find a good solution 10:03
xiaomiao they all need to mature, and mostly get rid of the stupid
timotimo i hope we're doing well with the learning from other people's mistakes with perl6 on this topic
xiaomiao e.g. python/pip, it's ... augh
mathw and it's a shame, because it's the only thing holding me back from trying to get everyone using Haskell for everything they're not using Perl 6 for
Ven JS land has specifically-pinned version everywhere 10:04
xiaomiao Ven: JS is based on bundling
Ven (and I use it too, because sometimes your stuff breaks in a minor update and you're like wtf) 10:05
xiaomiao always stapling everything together
10:06 xfix left, fhelmberger left
Ven mathw: looks like the paris pm group will also stuff perl 6 stuff soon :) 10:06
10:09 xfix joined, xfix left, xfix joined
mathw Ven: they all want Perl 6 to happen, it seems, because I've been teasing them about how cool it is 10:10
Ven m: say "{"
camelia rakudo-moar 319a78: OUTPUT«===SORRY!=== Error while compiling /tmp/rQrhVcMnoG␤Unable to parse expression in double quotes; couldn't find final '"' ␤at /tmp/rQrhVcMnoG:1␤------> say "{"⏏<EOL>␤ expecting any of:␤ statement lis…»
Ven mathw: hehe, exactly :o) 10:11
Ven teased them in a talk where he barely had 2 slides which some baby perl 6 code
mathw unfortunately the amount of happening Perl 6 has already had isn't quite enough for them at this point in time
and most of them are working with big Perl 5 codebases so there's that problem to deal with
they're all on board with modern Perl though, which is great
and then I sometimes get a bit jealous because my job is C# and it's annoying 10:12
especially when we've all got F# development environments because it comes with Visual Studio
timotimo and you're not allowed F# at all?
10:13 xfix left
mathw it's something I need to start trying to persuade people to do 10:14
10:14 xfix joined, xfix left, xfix joined
mathw unfortunately they look at C# and it's familiar and the tooling's big and sophisticated (ReSharper) 10:14
jnthn can't use ReSharper; it's just too noisy 10:15
Plain VS stays out of my way enough.
mathw and they look at F# and it's weird and therea ren't any {} and ReSharper doesn't support it (not that F# really needs that much help) and it's just new and weird and...
I now rely on a few ReSharper features, but that's just saving me time when I'm dealing with C#'s peculiarities
if we were using a proper language... 10:16
timotimo that's a jetbrains product, isn't it?
mathw yeah
jnthn Yeah. It's decent enough. It just doesn't fit with the way I work.
timotimo jetbrains make really good stuff
mathw really expensive addon for Visual Studio (which is really expensive) that gives it loads of features it should've already had
and a load of other features you shouldn't need
timotimo can't wait for the stuff they come up with when perl6 actually gets popular %)
mathw marvellous work they've done on it, but it's a solution for a problem that we shouldn't have 10:17
10:17 ssutch joined 10:19 sam_ left 10:29 isBEKaml joined, isBEKaml left, isBEKaml joined, chenryn left, nbrown joined, xfix left 10:31 xfix joined, xfix left, xfix joined 10:34 nbrown left 10:37 kaare_ left
Ven m: say (1.11)[*/2] 10:37
camelia rakudo-moar 319a78: OUTPUT«Index out of range. Is: 0.5, should be in 0..0␤ in method gist at src/gen/m-CORE.setting:12892␤ in sub say at src/gen/m-CORE.setting:13830␤ in block at /tmp/adZBsxKCKy:1␤␤»
Ven "should be 0..0" ?
Timbus not much wiggle room there
how about 0..0.1 10:38
10:38 dayangkun_ left
masak yes, that error shouldn't happen. 10:41
since if it didn't, the 0.5 would be successfully rounded down to 0. 10:42
masak submits rakudobug
10:42 cibs left
Ven masak: you don't think that should be an error ? 10:43
masak I think it shouldn't be an error.
fractional indices don't exist, 0.5 gets rounded down to 0, which is a legal index.
more philosophically, you're doing */2 because you want the middle index, which should work for a 1-element thing. 10:44
Timbus ya its common to.. ^ that
Ven meh.
masak this is a case of "validation should happen *after* dwimming the parameter". 10:45
rt.perl.org/Ticket/Display.html?id=122423 10:47
10:48 xfix left 10:52 xfix joined, xfix left, xfix joined 10:55 xfix left 10:57 chenryn joined, isBEKaml left 10:59 cibs joined, colomon joined
dalek kudo/nom: fd2b197 | (Tobias Leich)++ | src/Perl6/Actions.nqp:
do not try to locate a macro when we do not have a name

A ternary expression resulted if an QAST::Op(if &infix:<>) where the ope name is ignored, but we still tried to find a macro called &infix:<>, which is bogus.
11:01
11:02 thou joined, xfix joined, xfix left, xfix joined 11:05 Ven left 11:06 xfix left 11:07 thou left 11:13 xfix joined, xfix left, xfix joined 11:17 xfix left 11:18 xfix joined, xfix left, xfix joined 11:20 cognome joined 11:22 cognome_ joined, cognome left 11:24 kaare_ joined, aoseki left 11:26 cognome_ left 11:29 virtualsue joined
hoelzro morning #perl6 11:41
11:42 virtualsue left
rindolf hoelzro: morning. 11:43
dalek kudo-star-daily: 3450b6d | coke++ | log/ (14 files):
today (automated commit)
moritz timotimo: perlpunks.de/paste/show/53d6384a.5ff2.12a 11:47
oh, wrong channel
12:05 rindolf left 12:10 virtualsue joined, chenryn left 12:11 mr-foobar left 12:17 kaleem left 12:19 mikegrb left 12:20 cognome joined 12:25 cognome left 12:27 Vendethiel joined 12:28 cognome joined 12:32 cognome left 12:33 raiph joined, colomon left 12:46 takesako left 12:51 thou joined 12:55 thou left 12:59 takesako joined 13:20 cognome joined 13:21 chenryn joined 13:23 akaseki joined 13:24 cognome left 13:26 user3 joined 13:27 virtualsue left 13:30 SamuraiJack joined 13:32 nbrown joined 13:36 nbrown left, user3 left
dalek ast: b289b17 | duff++ | S02-lists/indexing.t:
Add a test for RT #122423
13:36
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=122423
13:40 jnap joined 13:42 virtualsue joined, pmurias joined
pmurias what would be a good way of testing nqp::printfh in combination with nqp::getstdout()/nqp::getstderr()? 13:43
dalek p-js: fee00df | (Pawel Murias)++ | TODO:
Add TODO item.
13:45
kudo/nom: 6be1028 | duff++ | src/core/Any.pm:
Add a fix for RT #122423
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=122423
13:48 Pleiades` left 13:52 Pleiades` joined 13:53 btyler joined
dalek kudo/nom: 3abaf60 | duff++ | t/spectest.data:
Add new file to spectests
13:54
13:56 chenryn left
dalek kudo/nom: d3988a9 | Carlin++ | src/core/ (2 files):
Disallow file operations on directories

This prevents rakudo performing file operations on directories on platforms where the OS itself does not disallow this.
This fixes RT #122358
13:57
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=122358
kudo/nom: 7d92f4c | lizmat++ | src/core/ (2 files):
Merge pull request #297 from carbin/nom

Disallow file operations on directories (RT #122358)
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=122358
masak PerlJam++ # nice fix 13:58
13:58 thou joined
PerlJam m: .say for 0b11..0xa) 14:02
camelia rakudo-moar fd2b19: OUTPUT«===SORRY!=== Error while compiling /tmp/4mgJswD1v5␤Unexpected closing bracket␤at /tmp/4mgJswD1v5:1␤------> .say for 0b11..0xa⏏)␤»
dalek p-js: 7c29c9d | (Pawel Murias)++ | src/vm/js/nqp-runtime-node/ops/fs.js:
nqp::printfh works with nqp::getstdout() and nqp::getstdin().

We need tests for that.
PerlJam m: .say for 0b11..0xa
camelia rakudo-moar fd2b19: OUTPUT«3␤4␤5␤6␤7␤8␤9␤10␤»
timotimo m: .base(2).say for 0b1..0b1111 14:03
camelia rakudo-moar fd2b19: OUTPUT«1␤10␤11␤100␤101␤110␤111␤1000␤1001␤1010␤1011␤1100␤1101␤1110␤1111␤»
timotimo fwiw, i ran features.json through json_verify and it claimed it was valid json 14:06
so i don't know why the feature comparison matrix doesn't get updated
ChoHag I've managed to trigger a missing symbol error against a symbol I'm not using. 14:07
dalek p-js: 4389197 | (Pawel Murias)++ | TODO:
Expand on the TODO list.
14:11
p-js: 682a7b5 | (Pawel Murias)++ | src/vm/js/QAST.nqp:
Add missing file.
14:16 lizmat left
dalek p: 3c49975 | duff++ | / (2 files):
Allow other integer representations for ranges in ** quantifier
14:17
14:18 lizmat joined, araujo joined, araujo left, araujo joined 14:20 cognome joined 14:25 cognome left
pmurias HLL::Compiler should close stdout? 14:25
jnthn: closing the stdout at src/HLL/Compiler.nqp:241 looks like a bug 14:27
14:27 rurban1 joined 14:29 woolfy joined
jnthn 241? 14:30
jnthn sees no close there 14:31
PerlJam I thihnk he means :262
pmurias jnthn: sorry, 262
jnthn ah
I dunno if it's a bug. Typically beyond that point we're existing the program anyway. 14:32
*exiting
FROGGS_ might that explain that I only see the ast printing partial? 14:34
jnthn Hm, maybe? 14:36
FROGGS_ hmmm
jnthn But I'd hope we'd have flushed before closing...
Feel free to try patching it
FROGGS_ will do, have to fiddle with nqp anyway... 14:37
14:37 SamuraiJack left
pmurias shouldn't closing flush? 14:37
FROGGS_ (if/while statements in v5 do not work, the 'immediate' block vanishes)
dalek p-js: fa7ae23 | (Pawel Murias)++ | TODO:
Remove extra whitespace from TODO.
p-js: 9cbad51 | (Pawel Murias)++ | src/vm/js/nqp-runtime-node/ops/fs.js:
Support closing stderr and stdout. They are also true when treated as bools.
p-js: ae24e3e | (Pawel Murias)++ | / (3 files):
'make nqp-js.js' works.
timotimo not only perl6 has the :D → plus.google.com/u/0/11021484805976...5qA2RKtWJH 14:38
PerlJam timotimo++ nice!
14:38 rurban left
pmurias node ./nqp-js.js --optimize=off -e 'say("Hello World")' | node now works 14:38
FROGGS_ \o/ 14:39
14:40 treehug88 joined, jnap left 14:41 `matija left, aoseki joined 14:42 jnap joined 14:43 chenryn joined, akaseki left 14:44 woolfy left
lizmat PDX -> AMS commute& 14:45
14:46 lizmat left
hoelzro lizmat: safe flight! 14:47
[Coke] pmurias++ 14:48
14:48 chenryn left
pmurias the current biggest problem with the build process is that I'm depending on a preinstalled nqp-p to build the cross-compiled-to-parrot nqp-js 14:49
dalek blets: 301d306 | (Herbert Breunung)++ | docs/ (3 files):
preparing and modernize op tablet + related bits
14:50 rindolf joined, chenryn joined
jnthn I'm not sure I'd call a longhaul flight a commute... :P 14:50
14:51 brrt joined
hoelzro pmurias++ 14:54
14:55 chenryn left 14:57 matija joined
dalek ast: bffb321 | Carlin++ | S (5 files):
Test that file operations on directories fail

On some platforms the OS itself does not enforce this
14:58
14:58 psch left 14:59 psch joined
Vendethiel pmurias++ 15:03
carlin \o/ one OpenBSD spectest failure down 15:05
if my moar pull req gets merged it'll be clean
oh except for S02 KERNEL and DISTRO failures but they're more informative than actual failures... 15:06
masak carlin++ 15:09
15:10 denis_boyun left 15:11 prevost joined, chenryn joined, brrt left, telex left 15:12 telex joined, dayangkun joined 15:13 raiph left
dalek p: 294a1fe | (Tobias Leich)++ | src/HLL/Compiler.nqp:
flush filehandles and do not close stdout

AST printing was broken on my machine, also pmurias++ found the bug where we close stdout when this is either not wanted or sane.
15:17
FROGGS_ I'm not going to bump revision in rakudo, because that is just a bit more than cosmetics
ventica2 m: say so "good", "morning", "#perl6";
camelia rakudo-moar 7d92f4: OUTPUT«Truemorning#perl6␤»
FROGGS_ hi ventica2
ventica2 hi
m: say so ("good", "morning", "#perl6"); #oops, precedence 15:18
camelia rakudo-moar 7d92f4: OUTPUT«True␤»
masak apparently 'so' considers itself a prefix op, not a sub.
m: say &so
camelia rakudo-moar 7d92f4: OUTPUT«===SORRY!=== Error while compiling /tmp/PiL3Yb0DxL␤Undeclared routine:␤ &so used at line 1␤␤»
masak m: say &prefix:<so>
camelia rakudo-moar 7d92f4: OUTPUT«sub prefix:<so> (Mu) { #`(Sub+{<anon>}|139915261910160) ... }␤»
masak that... makes sense, since prefix:<not> is an op. 15:19
Vendethiel masak: yeah, it's an op.
carlin ventica2: True morning to you to :p
masak not False morning to you, ventica2!
15:20 raiph joined, cognome joined 15:21 hoverboard joined 15:24 cognome left 15:27 rindolf left, rindolf joined
masak whuu, Python can do string concat through juxtaposition. 15:28
TimToady that's...not a feature
that's a bug
FROGGS_ *g* 15:29
TimToady: there is more than one way to concat :P
timotimo masak: explain that to me please?
pmurias "a" "b"
timotimo juxtaposition? as in, just writing strings next to each other?
pmurias timotimo: yes
timotimo why is that not a feature?
TimToady destoys self-clocking 15:30
15:30 zakharyas left
TimToady *stroys 15:30
same reason P5-style indirect objects was a bad idea
timotimo psst
self-clocking is only a feature in perl6
no other language cares for that sillyness 15:31
TimToady well, it's a feature in P5 too, just not done as well
awwaiid self-clocking?
TimToady an extra channel of information that lets you know if you've gotten out of sync 15:32
many human languages have self-clocking features for redundancy
UPC codes are self-clocking
every pair of bars and spaces will add up to a width of 7
FROGGS_ timotimo: C does too 15:33
TimToady self-clocking let's you catch errors much earlier
awwaiid er. example plz?
TimToady like leaving out the semicolon
FROGGS_ btw, first time I've seen P6 being mentioned besides other languages: en.wikipedia.org/wiki/Comparison_of...strings%29 15:34
awwaiid ah. Or even the presence sigils
TimToady well, they're noun markers, so it's easy to see if you've accidentally put two nouns in a row
awwaiid ya, ok
15:36 hoverboard left 15:38 treehug88 left 15:41 dayangkun left, colomon joined 15:44 mr-foobar joined 15:48 Vendethiel left
dalek rl6-roast-data: c5d9f80 | coke++ | / (5 files):
today (automated commit)
15:53
15:59 gfldex joined
[Coke] FROGGS: did some diving, the perl 6 reference was added by Dreftymac on 31 Oct 2006. 16:02
Do we have a rakudo-jvm champion at the moment? aa 16:04
pmurias what's the state of rakudo-jvm is it progressing or has the development shifted to rakudo-moar? 16:05
[Coke] no one is doing active dev on rakudo-jvm as far as I can tell. lots of daily failures. Much more interesting stuff going on for moar. 16:06
as someone who has said he'd use rakudo-jvm at work, I should probably try harder to fix the fails. 16:07
16:18 cognominal joined, cognome joined 16:20 Akagi201 left, xinming left
ventica2 carlin masak: haha thx 16:24
masak this just in: only string *literals* in Python juxtapose. I guess that saves self-clocking. 16:27
16:27 xinming joined
masak (because that means N juxtaposed string literals are isomorphic to a single one) 16:28
in other news, you may (or may not) remember the discussion a few months back about Python indentation, merge conflicts, and redundancy. 16:29
I just realized that the colons are a form of redundancy in Python, just as good as '{', basically.
but there's still no '}' analogue.
ventica2 is a secret fan of indentation ala YAML, but not Python-style where the indentation is directly chained to the syntax... 16:31
masak ventica2: what's the difference?
more specifically, isn't YAML indentation also "directly chained to the syntax"? 16:32
ventica2 well I misspoke it's not so much the syntax as what the semantics... YAML is a data language and my brain "groks" the indentation of data ... but indentation to create syntactical structures seems bureaucratic to me 16:33
masak interesting. 16:34
ventica2: do you have the same objection to pseudocode?
ventica2 So, a YAML hash entry is created by foo: followed by an indent.... another element can be added to the hash by a dedent, bar: and then another indent... that makes sense to me
16:34 Rotwang joined 16:35 chenryn left
ventica2 masak: probably 16:36
masak: I pretty much buy into the Perl philosophy of whitespace... whitespace should be freely and liberally used to visually format visible syntactical elements 16:37
16:37 rurban1 left
ventica2 I compulsively line up ='s... i had to install Tabular in vim lol 16:37
but I also think a well-designed data-serialization format can accomplish this: pastebin.com/8paDRaSM
do we have a .yaml like the .perl and .gist? 16:38
ruby does and I like that idea
masak I used to compulsively line up = signs, and many other elements, too. seems I somehow stopped doing that, at least most of the time.
ventica2: no .yaml built in, no.
ventica2 k
16:38 xinming left
ventica2 i assume thre is a way to add that in without hacking the core? 16:39
16:39 xinming joined
ventica2 i think i'm thinking of adding a method to Mu class? (have not got to the OO synopsis yet...) 16:41
m: my @a=<a b c>; for @a -> $x, $y { say $x; say $y; }; 16:43
camelia rakudo-moar 7d92f4: OUTPUT«a␤b␤Not enough positional parameters passed; got 1 but expected 2␤ in block at /tmp/iuvXk_oGml:1␤␤»
ventica2 interesting, dyn. failure
PerlJam ventica2: use MONKEY_TYPING; class Mu { method yaml(...) { ... } } # something like that.
jnthn m: my @a=<a b c>; for @a -> $x, $y? { say $x; say $y; }; # can make it optional if you want to not explode 16:44
camelia rakudo-moar 7d92f4: OUTPUT«a␤b␤c␤(Mu)␤»
ventica2 seems a little DWIM-deficient? What about just using Whatever when passing an odd-numbered array to a pointy-block with even-numbered arguments?
PerlJam: thx
16:44 japhb left
ventica2 jnthn: OK 16:44
16:45 pmurias left
ventica2 masak: I find myself doing it increasingly more... it's like a bad habit that just gest worse :P 16:46
masak ventica2: well, make sure you at least have editor support for it, so you don't waste your time doing it manually.
ventica2 no doubt... hence Tabular 16:47
afk & 16:48
16:49 `matija joined 16:50 japhb joined 16:52 [Sno] left 16:53 `matija left
carlin clang's output while building moar/rakudo hurts to look at... probably why it's called clang 17:00
17:03 pecastro left
ventica2 is there a .bytes? 17:06
m: say "foo".chars;
camelia rakudo-moar 7d92f4: OUTPUT«3␤»
ventica2 m: say "foo".bytes;
camelia rakudo-moar 7d92f4: OUTPUT«No such method 'bytes' for invocant of type 'Str'␤Did you mean '.encode($encoding).bytes'?␤ in block at /tmp/_FlgGbuUBb:1␤␤»
ventica2 m: say "foo".utf8.bytes; 17:07
camelia rakudo-moar 7d92f4: OUTPUT«No such method 'utf8' for invocant of type 'Str'␤ in block at /tmp/8qqx81fF0l:1␤␤»
carlin m: say "foobar".encode("ascii").bytes
camelia rakudo-moar 7d92f4: OUTPUT«6␤»
ventica2 aha
ty
17:09 rindolf left, adu joined 17:10 rindolf joined
ventica2 m: my %h = 'foo' => 1, 'bar' => 2; for %h.keys -> $k {say $k} 17:12
camelia rakudo-moar 7d92f4: OUTPUT«foo␤bar␤»
ventica2 m: my %h = 'foo' => 1, 'bar' => 2; for %h :k -> $k {say $k} 17:13
camelia rakudo-moar 7d92f4: OUTPUT«===SORRY!=== Error while compiling /tmp/T_BYZ1so4n␤You can't adverb that␤at /tmp/T_BYZ1so4n:1␤------> y %h = 'foo' => 1, 'bar' => 2; for %h :k⏏ -> $k {say $k}␤ expecting any of:␤ pair value␤»
17:14 vendethiel joined
ventica2 m: my %h = 'foo' => 1, 'bar' => 2; for %h<foo bar> :k -> $k {say $k} 17:14
camelia rakudo-moar 7d92f4: OUTPUT«foo␤bar␤»
ventica2 m: my %h = 'foo' => 1, 'bar' => 2; for %h<foo bar> :exists :k -> $k {say $k}
camelia rakudo-moar 7d92f4: OUTPUT«Unsupported combination of named parameters (exists, k) passed to Hash %h␤ in method gist at src/gen/m-CORE.setting:12903␤ in sub say at src/gen/m-CORE.setting:13841␤ in block at /tmp/lMDXcfeav7:1␤␤»
ventica2 m: my %h = 'foo' => 1, 'bar' => 2; for %h<foo bar> :exists -> $k {say $k} 17:15
camelia rakudo-moar 7d92f4: OUTPUT«True␤True␤»
ventica2 m: my $a=0; say $a infix:<+> 1; 17:19
camelia rakudo-moar 7d92f4: OUTPUT«===SORRY!=== Error while compiling /tmp/FZoPAbTVrd␤Two terms in a row␤at /tmp/FZoPAbTVrd:1␤------> my $a=0; say $a ⏏infix:<+> 1;␤ expecting any of:␤ postfix␤ infix stopper␤ infix …»
ventica2 m: $a=13; say :2($a); say :16($a); 17:21
camelia rakudo-moar 7d92f4: OUTPUT«===SORRY!=== Error while compiling /tmp/Z_3THAxrFE␤Variable '$a' is not declared␤at /tmp/Z_3THAxrFE:1␤------> $a⏏=13; say :2($a); say :16($a);␤ expecting any of:␤ postfix␤»
rindolf Hi all. 17:22
TimToady: hi, how are you feeling?
17:22 Ven joined
timotimo carlin: you're of course free to fix some of teh warnings clang comes up with :) 17:23
17:23 go|dfish left
raydiak good morning #perl6 17:26
timotimo it's no fun hacking in more and more ops for the jit to use when it segfaults really early into stage compile and even nqp builds ;(
ventica2 m: sub f { return @_.perl }; say f("hi!"); 17:29
camelia rakudo-moar 7d92f4: OUTPUT«Array.new("hi!")␤»
ventica2 m: say -> { return "foo" }; 17:30
camelia rakudo-moar 7d92f4: OUTPUT«-> () { #`(Block|140384833825296) ... }␤»
17:31 itz left, itz joined
rindolf raydiak: morning. 17:35
17:36 treehug88 joined 17:45 rindolf left
raydiak timotimo: re performance improvements you were talking about last night, it seems that moar is much faster than jvm for pray now, but if memory serves, jvm has gotten substantially slower (though I haven't actually tested an old version yet for direct comparison) 17:51
timotimo oh 17:52
that's not good :(
raydiak like, if I'm right, it's around half as fast as it was earlier this year...
timotimo that seems better
bad*
FROGGS_ wow
raydiak I'll actually test it today, but I think it's the same scene on the same version of pray on the same vps, gets like 20 pixels/sec now, used to be more like 45 17:54
timotimo it would be fantastic if you were able to verify that
that's a pretty bad performance hit
[Coke] is rakudo-jvm on rakudo-bench?
timotimo unfortunately, the IP address of my home computer seems to have changed, so i can't use it to benchmark properly now :(
yes, you can just build it
raydiak sure, I'll start building an old version right now 17:55
timotimo thank you
raydiak yesterday's moar got like 30 or 35 on the same scene though, in happy news :) 17:56
17:56 zakharyas joined
timotimo that's not as much as 45 :( 17:57
raydiak better than it used to be
which I suppose is a painfully obvious statement 17:58
18:01 Ven left
timotimo :) 18:01
it'd also be interesting if we regressed
not as nice, but still good to know
18:01 virtualsue left 18:02 rindolf joined
raydiak I seem to have regressed on my ability to use p6bench 18:02
18:03 xinming left, xinming joined, raiph left
timotimo how can i help you? 18:03
also, did you pull recently?
raydiak yep 18:04
18:04 kaleem joined
raydiak how do I get a version from like december installed of rakudo jvm? 18:04
well, not *installed* but built...you know what I mean
timotimo ./bench build rakudo-jvm/2013.10
we have tags for releases that are YYYY.MM, so you can use that
well, have to extract first, then build 18:05
raydiak why .10? would expect 11 or 12 for december
jnthn .12 would be December 18:06
The other consideration is JVM version.
raydiak .10 fails configuring nqp with "Unknown option: backends" 18:07
jnthn: I had wondered whether something was wrong with my jvm, got updated/replaced, or something like that
jnthn raydiak: I got a slowdown on a newer JVM vs the one I initially did the port on :( Didn't get to investigate further, or see if latest is better again. 18:08
18:08 treehug88 left
raydiak well, when 2013.12 finishes building, I'll know for sure if it's that or not 18:09
jnthn ok :)
raydiak though tbh I'm not sure if I've done any maintinence to my server this year like updates :P 18:10
18:10 dwarring joined 18:12 raiph joined 18:16 Ven joined
raydiak argh building failed because I have to shove -Xms and -Xmx params into one of the build files at a certain step to get it to work on this machine...starting over 18:16
18:18 [Sno] joined
timotimo raydiak: i have to do a linear search (and use my fingers) each time i want to get from month-name to number and back 18:20
raydiak: so i guessed
raydiak timotimo: I know what you mean, I just have an easier time with the ones closer to the ends 18:21
after 30 years, I have 1-4 and 10-12 down pretty well :) 18:22
18:23 kaleem left
dalek blets: f736d43 | (Herbert Breunung)++ | docs/appendix-c-classtree.txt:
classtree stub, remove misleading stuff
18:31
18:31 treehug88 joined
timotimo raydiak: the date you were using must have been at a point when we still had Configure.pl and ConfigureJVM.pl 18:32
we have moritz++ to thank for the new system with --backends
raydiak ah, cool 18:34
I'd certainly hate to have a different configure for each backend 18:35
timotimo aye.
back then you could only build a single backend per checkout of the source tree
raydiak moritz++ indeed 18:37
[Coke] timotimo: which is what all the normal kids do anyway, even with the new system. :) 18:44
FROGGS_ [Coke]: not true :o)
raydiak theres normal kids around here? 18:45
colomon errr… "Heap corruption detected: pointer 0x10776ae98 to past fromspace"
geekosaur ...what is this "normal" of which you speak? 18:46
carlin I tried being normal once, it was the worst 2 minutes of my life 18:47
raydiak geekosaur: he must mean a vector perpendicular to a plane
timotimo [Coke]: well, i don't ... 18:48
FROGGS_ raydiak: *g* 18:49
[Coke] I am usually testing something; I want the fastest build time to get each platform I'm testing. Can't wait for java when all I want is moar. 18:50
not like the build really has any steps in common for the backend. 18:51
timotimo that's why there is m-install, j-install and p-install targets :)
[Coke] timotimo: yes, but why -build- java if I'm interested in the latest moar?
FROGGS_ because you can... 18:52
[Coke] makes the turnaround time for testing horrible. (... which probably explains why my daily runs still have the most jvm failures. :( )
FROGGS_: apparently I need an upgrade on my primary dev machine, then. :P 18:53
timotimo [Coke]: m-install will not build java
m-install will only build moar for you and install that
colomon jnthn: "Heap corruption detected: pointer 0x10776ae98 to past fromspace" ?
[Coke] is really glad that option works for folks. I just don't see how it helps.
jnthn colomon: -> MoarVM bug report with whatever details you can offer to reproduce it 18:54
FROGGS_ colomon: others have reported that too, but there is no knowledge about what's going on atm
[Coke] timotimo: it won't even build nqp-jvm? ok.
colomon jnthn, FROGGS_: seeing what I can do. but the very quick version is, I got this running t/08-combinations.t from List::Utils 18:55
FROGGS_ I usually build for all backends, because I wanna test my changes on all of them... (even when I tend to not run j-spectest)
timotimo well, building nqp and such isn't part of the "make" step, it's part of the "configure" step (or, if you don't use --gen-nqp, the make step for nqp)
(i personally don't use --gen-* in my working copy) 18:56
[Coke] timotimo: right - does it build nqp-jvm as part of the configure step, even if I'm only going to runb make m-install? It has to, right?
I always use gen
timotimo if you use the gen option, then yes, it has no influence
i personally build rakudo way more often than nqp, though
[Coke] as do i. the gen option only builds if needs be. 18:57
(based on revision, not backend)
[Coke] tries a rakudo.jvm on his mac, it's been a while. 18:58
jnthn colomon: OK; flussence++ also reported a possibly related explosion and was bisecting earlier...
19:01 woosley joined, ivanshmakov left
colomon jnthn: I'm utterly baffled by this at the moment. 19:03
jnthn: I haven't been able to duplicate it.
jnthn: but something has happened twice now -- once (unknown failure) in the smoke run overnight, and then the time I reported above. 19:04
haven't seen it happen again. :\
19:05 ivanshmakov joined
[Coke] wonders tools/build/gen-cat.pl is using perl5 and not nqp. 19:05
*why* 19:06
seems like a LHF to move that over and use a little more dogfood.
19:08 raiph left 19:09 darutoko left 19:10 Ven left
PerlJam Coke: which nqp? nqp-j, nqp-p, or nqp-m ? (seems like an extra little hurdle to jump there) 19:14
19:18 zakharyas left, brrt joined
raydiak okay, pray's first example scene does render somewhat faster using december rakudo jvm, but nowhere near the huge discrepency I was talking about 19:19
19:20 itz_ joined
raydiak I'm starting to think I may have used a sphere instead of a cube back then, but in any case, as much as I'm able to test right now, moar is a good 60+% faster than jvm 19:20
19:21 itz left
jnthn raydiak: And faster than JVM was back then too? 19:21
19:22 Woodi left
colomon jnthn: oh, managed to get the Heap corruption again. 19:22
raydiak jnthn: well I have recollections of getting about 15-20% higher speeds than I do now under any circumstances, but I think I was probably testing with a phere instead of a cube back then 19:23
jnthn: but faster than I test old jvm to be now, yes
^^*sphere
jnthn So I've nothing to phere? :) 19:25
raydiak ha, it does seem that way :) after a few different runs, it's around this neighborhood: old jvm: 20; new jvm: 15; new moar: 30
timotimo sweet :) 19:26
[Coke] PerlJam: we're using it in rakudo's build, so it should be whatever the nqp used to build rakudo is, since you already had to build it or have it. no hurdle. 19:27
jnthn should spend some time teaching the JVM some of the things we've learned in the Moar backend.
[Coke] if you can do that, maybe you can pre-teach js? ;)
19:28 PZt left 19:29 liztormato joined, rindolf left 19:30 rindolf joined 19:31 itz joined 19:32 Bucciarati_ is now known as Bucciarati
raydiak walk to the corner store & 19:32
19:33 itz_ left 19:34 raiph joined, adu left
liztormato is waiting for her flight, which has been delayed ~2 hours 19:34
timotimo :| 19:35
did you bring your coat?
liztormato No. Should I have?
19:37 brrt left
timotimo not sure 19:39
the meme this comes from did not prepare me for this question
jnthn liztormato: ugh, delay. But safe travels.
liztormato: Is this the cross-atlantic leg?
liztormato Yup 19:40
PDX -> AMS
timotimo airplanes are safer than walking
liztormato By number of km travelled, yes! 19:41
19:41 Ven joined
liztormato By number of persontrips, I'm not too sure 19:42
nwc10 as a child (before the first shuttle accident) I think I estimatd that space travel was safer still, per passenger km
timotimo also, most people who try to walk across the ocean would probably die
liztormato Lies, damn lies and statistics!
nwc10 the moon is a long way
exactly.
19:43 beastd joined
liztormato And a harsh mistress 19:43
19:43 treehug88 left
timotimo and people who somehow manage to walk towards the moon will soon find they didn't bring enough breathable air with them 19:43
[Coke] safe travels, liztormato!
liztormato If you can walk to the moon, you don't need air
19:43 itz_ joined
liztormato Thanks all! 19:44
Ven o/ 19:45
timotimo heyo ven
Ven hey timotimo, do you plan to do a weekly ?
19:46 itz left
timotimo yes 19:46
i just opened the wordpress editor
and grumbled about google keep keeping (haha, get it?) my data on my phone and not syncing it to the web ...
Ven good :). timotimo++ raiph++
19:47 denis_boyun joined
timotimo the irc summaries weren't terribly helpful this time around 19:49
i wonder why
19:50 liztormato left
raydiak back 19:53
timotimo i has something to push :3 19:54
dalek kudo/nom: c9fc8af | (Timo Paulssen)++ | src/vm/moar/ops/perl6_ops.c:
if available, use MVM_spesh_get_and_use_facts.
19:55
timotimo this ought to work with a master moar and a split_get_use_facts moar
ventica2 m: for 1 .. * -> $a, $b { say $a; last if $b > 4 }; 19:56
camelia rakudo-moar 7d92f4: OUTPUT«1␤3␤5␤»
ventica2 general implementation questions: 1) how do later statements "track back" to the lazy list they are touching and tell it "give me another one!" and 2) do overwritten values of a lazy list just "go away" or do they hang around and take up space? In the above loop, 3 overwrites 1 in $a... what happened to that 1 in terms of the memory model? 19:58
20:01 kurahaupo_mobile is now known as kurahaupo_
timotimo ... what 20:01
lazy lists have a "reified" part, which is basically a regular list, and at least one generator part 20:02
so if you overwrite (or even read) any given position that's beyond the reified part, all entries up to that point will be reified for you
20:02 treehug88 joined
timotimo now i understand what you mean with "3 overwrites the 1" 20:03
in this case it's actually more like a second call to the pointy block, so the $a that used to be will no longer be there
but since lists keep their initial part reified, the 1 will still be there
20:03 brrt joined
timotimo it might be the case that we use a RangeIter or something in this case so we don't actually keep the list around 20:04
jnthn It'll be a GatherIter I think
And I think it'll be munching its way through the data rather than keeping it.
timotimo that'd be nice
ventica2 thx, that helps... so it looks like the implementation can either keep the values around or discard them, as appropriate 20:05
i just have this foggy worry that if I do a loop a billion times (perfectly reasonable), and i use a lazy list for the iterator, I don't want a billion unused entries in memory that only came into existence as transient counter values 20:06
20:17 liztormato joined
timotimo we already turn for ^$n { } into a simple c-style loop; maybe at some point we'll do betetr with more complicated lists, too 20:19
20:21 liztormato left
ventica2 m: ^3 { say "hi"; } 20:22
camelia rakudo-moar 7d92f4: OUTPUT«===SORRY!=== Error while compiling /tmp/DE9WOtC4Fx␤Unexpected block in infix position (two terms in a row, or previous statement missing semicolon?)␤at /tmp/DE9WOtC4Fx:1␤------> ^3 ⏏{ say "hi"; }␤ expecting…»
ventica2 m: for ^3 { say "hi"; }
camelia rakudo-moar 7d92f4: OUTPUT«hi␤hi␤hi␤»
20:28 Ven left 20:32 Ven joined 20:35 lizmat joined
Ven so, so, onto warn and fail ... *tries to get a grasp of Perl 6's exception-like thinges* 20:37
20:38 kaare_ left
[Coke] j: say "hi" 20:44
camelia rakudo-jvm c9fc8a: OUTPUT«hi␤»
20:45 Khisanth left
lizmat j: say 42.WHY 20:45
camelia rakudo-jvm c9fc8a: OUTPUT«Life, the Universe and Everything␤»
lizmat sane, I would say :-) 20:46
[Coke] -1. :P
github.com/perl6/roast/blob/master...ched.t#L78 20:47
tests 34 and 38 (38 is the last) are explicitly testing that the cache was used, yes?
FROGGS_ ahh, that feels good... v5 (written in Perl 6) passes now the first three tests since the rewrite... 20:48
[Coke] according to S06, that seems like an over eager test. 20:49
"The compiler is free to choose any kind of caching algorithm (including non-expiring, random, lru, pseudo-lru, or adaptive algorithms, or even no caching algorithm at all)."
20:50 hoverboard joined
dalek ast: 4da0e24 | coke++ | S02-names/is_cached.t:
add link to RT #122425, fudge for jvm
20:56
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=122425
20:57 Khisanth joined
masak only now realizes that the Easter egg would have made a lot more sense if "Life, the Universe and Everything".WHY was 42 21:03
timotimo that's true 21:04
itz_ I'm seeing perl6-p fails with t/spec/S02-types/bool.t and modules/jsonrpc/t/server.t
21:05 aoseki left
Ven lazy, sink, quietly, contend don't get much docs. I'll try to check roast ... 21:06
21:06 akaseki joined
jnthn I think contend may well be fossil 21:07
timotimo what, did we kick out STM again? :( 21:08
sergot: do you have something i should report in this weekly (which also covers the week before last week)?
p6weekly.wordpress.com/?p=203&s...6bc4a3b55c - this is the draft so far 21:10
21:11 dmol left
lizmat timotimo: yes, STM is kicked out for the moment 21:12
definitely post 6.0
timotimo okay
lizmat: how's your flight? are you on it yet?
lizmat nope, waiting for the plane to get ready
it was delayed out of Amsterdam because of the bad weather therel, I suppose 21:13
timotimo OK
gtodd is there a nice way match the first 10 characters of a string and move them to the end ... p6-ishly? (my $new = $old) =~ s/^(\d{10})(.*)/$2$1/dg;
timotimo we have a nice little thunderstorm in karlsruhe right now as well
lizmat I'm looking at the plane now, and the captain and crew already entered the plane
so I guess they're doing their pre-flight checks 21:14
gtodd or better yet which pod doc page to read :-|
timotimo m: say <1 2 3 4 a b c d>.rotate(3);
camelia rakudo-moar c9fc8a: OUTPUT«4 a b c d 1 2 3␤»
21:14 Ven left
timotimo m: say "Sixteen characters.".comb.rotate(-10).join 21:14
camelia rakudo-moar c9fc8a: OUTPUT«haracters.Sixteen c␤»
21:14 raiph left
gtodd I think I am running into TATMNWMTOWDI 21:14
too many new waywa to do it
ways 21:15
dalek kudo/nom: c00999a | (Elizabeth Mattijsen)++ | src/core/ (2 files):
Properly easter egg 42
gtodd argh ... you see I knew there was a .method for my madness
lizmat masak++
21:16 raiph joined, brrt left
timotimo %) 21:16
it's not as efficient as doing a substr + concat, though
dalek ecs: 51502a2 | (Elizabeth Mattijsen)++ | S04-control.pod:
Powderize contend fossil
21:17
timotimo m: say(my $s = "Sixteen characters.").substr(10) ~ $s.substr(*-10)
camelia rakudo-moar c9fc8a: OUTPUT«Sixteen characters.␤===SORRY!===␤Start of substr out of range. Is: 10, should be in 0..4␤»
timotimo m: say (my $s = "Sixteen characters.").substr(10) ~ $s.substr(*-10)
camelia rakudo-moar c9fc8a: OUTPUT«aracters.haracters.␤»
masak lizmat: ;)
gtodd timotimo: ok I have string objects ... errm not lists :-D 21:18
21:18 rindolf left
gtodd forgot 21:18
timotimo m: say (my $s = "Sixteen characters.").substr(10) ~ $s.substr(10, *-10)
camelia rakudo-moar c9fc8a: OUTPUT«===SORRY!===␤Length argument to substr out of range. Is: -1, should be in 0..Inf; use *-1 if you want to index relative to the end␤»
timotimo gtodd: that's what .comb is for
gtodd: .comb without arguments turns a string into a list of its characters 21:25
lizmat boarding's starting, see you on the other side of the pond& 21:30
21:30 lizmat left 21:33 denis_boyun left 21:34 gfldex left 21:36 kivutar left 21:37 nbrown joined
masak lizmat: safe flight! 21:39
21:41 nbrown left 22:14 pecastro joined 22:18 xubuntu joined, xubuntu is now known as Guest17235 22:19 Guest17235 left 22:36 dmol joined 22:42 prevost left
masak 'night, #perl6 22:44
timotimo gnite masak! 22:45
looking forward to your further work on escape analysis :)
22:53 dalek left, dalek joined, ChanServ sets mode: +v dalek 22:54 treehug88 left 23:28 thou left 23:31 kurahaupo_ left 23:37 hoverboard left 23:49 dmol left
ventica2 m: say "foo".comb; #checking it out... 23:50
camelia rakudo-moar c00999: OUTPUT«f o o␤»
ventica2 nice
timotimo comb is, so to speak, the opposite of split 23:51
hm, not the opposite, i guess
the congruent operator maybe?
23:52 BenGoldberg joined, xragnar_ joined, xragnar is now known as Guest27915, Guest27915 left, xragnar_ is now known as xragnar
gtodd ventica2: when I use .comb I think of that song by Jim White "www.youtube.com/watch?v=nZEAhyib-lw" Combing my hair in a brand new style 23:56
timotimo www.1-script.com/forums/perl/learni...39094-.htm - what just happened 23:57
ventica2 :P
m: say "foo".split(); 23:58
camelia rakudo-moar c00999: OUTPUT«Cannot call 'split'; none of these signatures match:␤:(Cool: Regex $pat, Any $limit = { ... }, Any :all($all), *%_)␤:(Cool: Cool $pat, Any $limit = { ... }, Any :all($all), *%_)␤:(Str:D: Regex $pat, Any $limit = { ... }, Any :all($all), *%_)␤:(Str:…»
ventica2 m: say "foo".split(//);
camelia rakudo-moar c00999: OUTPUT«===SORRY!=== Error while compiling /tmp/fAAlPNX2fU␤Null regex not allowed␤at /tmp/fAAlPNX2fU:1␤------> say "foo".split(//⏏);␤»
ventica2 hrm
timotimo m: say "foobar".split("")
camelia rakudo-moar c00999: OUTPUT«f o o b a r␤»
BenGoldberg m: say "foobar".comb 23:59
camelia rakudo-moar c00999: OUTPUT«f o o b a r␤»
BenGoldberg m: say Mu.comb
camelia rakudo-moar c00999: OUTPUT«No such method 'comb' for invocant of type 'Mu'␤ in block at /tmp/Bxg0ttJjf_:1␤␤»
BenGoldberg m: say Any.comb
camelia rakudo-moar c00999: OUTPUT«No such method 'comb' for invocant of type 'Any'␤ in block at /tmp/YEy9nKOnAr:1␤␤»
lue timotimo: I think (based just on reading the article) the fancy word to describe comb and split would be "obversion" en.wikipedia.org/wiki/Obversion