»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: irc.perl6.org | UTF-8 is our friend! | feather will shut down permanently on 2015-03-31
Set by jnthn on 28 February 2015.
00:01 Vlavv left 00:03 gfldex left 00:06 airdisa left
tony-o rose 00:07
00:08 airdisa joined 00:14 Vlavv joined 00:52 airdisa left 01:10 raiph joined 01:31 tinyblak joined 01:49 aborazmeh joined, aborazmeh left, aborazmeh joined 02:21 noganex joined 02:24 noganex_ left, rmgk_ joined, rmgk is now known as Guest93589, Guest93589 left, rmgk_ is now known as rmgk 02:25 cognominal left 02:38 xinming_ joined 02:40 xinming left
dalek osystem: 40f47dd | (David Farrell)++ | META.list:
Update META.list

Added Module-Minter, an app that creates the basic files for a distribution
02:47
02:47 dnmfarrell joined 02:49 skids joined
b2gills m: say Bool.roll(*) 03:02
camelia rakudo-moar 676c25: OUTPUT«True False True False False True True True False False False False True False True False False False True False True True True False False False False False False False False True False False True False False True False True True True False False False Fal…»
b2gills The point is that the list is infinite but rakudo doesn't think it is, so some operations don't fail properly 03:03
dnmfarrell hey does `proto` in method declaration stand for prototype? 03:04
b2gills as far as I know ... yes 03:05
dnmfarrell b2gills: thanks :) 03:07
b2gills There are also proto tokens, and proto subs
dnmfarrell ah found the docs design.perl6.org/S06.html#Routine_modifiers 03:08
03:10 aborazmeh left 03:21 al2o3-cr joined 03:46 dnmfarrell left 03:57 vendethiel joined 03:59 araujo joined 04:00 araujo left
al2o3-cr p6: say 3; 04:02
camelia rakudo-moar 676c25: OUTPUT«3␤»
al2o3-cr p6: say "awesomeness; 04:03
camelia rakudo-moar 676c25: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tmpfile␤Unable to parse expression in double quotes; couldn't find final '"' ␤at /tmp/tmpfile:1␤------> 3say "awesomeness;7⏏5<EOL>␤ expecting any of:␤ argument list␤ double qu…»
al2o3-cr p6: say "awesomeness"; 04:04
camelia rakudo-moar 676c25: OUTPUT«awesomeness␤»
04:34 alini joined 04:42 raiph left 04:57 rindolf joined
dalek on: 354b936 | moritz++ | / (3 files):
Switch from Match.ast do Match.made
05:02
05:02 vendethiel left 05:07 skids left 05:11 Akagi201 joined 05:25 diana_olhovik joined 05:44 BenGoldberg left 05:45 Psyche^ joined 05:50 Patterner left 05:56 khisanth__ is now known as Khisanth
dalek ast: 89c07da | TimToady++ | S03-metaops/hyper.t:
start testing some nodels
06:11
kudo/nom: f3ecf86 | TimToady++ | src/core/Parcel.pm:
parcels need their own nodals till list merge
06:16 kaare__ joined 06:18 alini left 06:23 Akagi201 left, Akagi201 joined 06:26 Akagi201_ joined
dalek c: 5e2da46 | paultcochrane++ | lib/Type/List.pod:
Mention assigning and binding rotor output differences
06:26
c: 5fc01a1 | paultcochrane++ | lib/Language/ (2 files):
Merge branch 'master' of github.com:perl6/doc
06:30 Akagi201 left 06:31 jack_rabbit joined, RabidGravy joined 06:33 diana_olhovik left 06:43 diana_olhovik_ joined 06:44 rindolf left
nwc10 $ 06:45
[ptc] ^ 06:49
RabidGravy 😈 07:01
🕗 07:03
07:04 xfix joined, xfix left, xfix joined 07:19 lolisa is now known as cute_handsome_lo 07:20 cute_handsome_lo is now known as verycute_lolisa, verycute_lolisa is now known as lolisa
itz_ pl6anet.org/stats/ 07:21
07:21 labster left 07:27 labster joined 07:44 alini joined 07:55 eli-se joined 07:56 rurban joined 08:14 darutoko joined 08:15 Rounin joined 08:17 wtw joined 08:19 Ven joined 08:30 Ven left, RabidGravy left 08:35 diana_olhovik_ left 08:42 espadrine joined 08:44 lolisa left 08:45 Foxcool_ joined, domidumont joined 08:47 Ven joined 08:49 domidumont left 08:50 domidumont joined
moritz itz_: thanks for sharing them 09:00
www.p6c.org/stats/ exists too
09:03 gfldex joined 09:10 rindolf joined 09:11 spider-mario joined 09:18 Alina-malina joined, Alina-malina left, Alina-malina joined 09:22 raiph joined 09:25 eli-se_ joined 09:26 eli-se left
raiph .tell lizmat i've added a question to gist.github.com/lizmat/c7f53fa206da900c2b42 09:30
yoleaux raiph: I'll pass your message to lizmat.
lizmat good *, #perl6! 09:31
yoleaux 09:30Z <raiph> lizmat: i've added a question to gist.github.com/lizmat/c7f53fa206da900c2b42
raiph hi lizmat :)
lizmat raiph: the whole idea of auth/version in the use statement, is that as a developer, you can "freeze" the version of a module that you want to use in a given scope 09:32
provided this auth/version of that module are *not* removed from a system
you can be assured that everything will continue to work, regardless of other versions of that module being installed on a system 09:33
if an upgrade of an app changes the auth/version of a module being used, then that auth/version of the module should also be installed 09:34
for apps, you could e.g. force the use of a single CUR object in @*INC, which has all of the needed modules installed aka local::lib 09:35
raiph lizmat: thanks, will read later, gotta run 09:39
09:42 fhelmberger joined 09:45 spider-mario left 09:47 fhelmberger left, ir2ivps4 left
dalek p: a757bfa | jnthn++ | tools/build/MOAR_REVISION:
Get a MoarVM with string heap opt.
09:52
p: 18ece1f | jnthn++ | src/vm/moar/QAST/QASTCompilerMAST.nqp:
Avoid generating string heap QAST on MoarVM.

See MoarVM commit 0acd74b for details on what enables this change.
09:54 eli-se_ left 09:57 Ven left 10:03 Alina-malina left 10:05 Alina-malina joined
dalek kudo/nom: f188351 | lizmat++ | src/core/List.pm:
Make all List.pick candidates use the same logic

There is no performance gain to be seen from using an nqp op for creating a random number. So revert to using higher language constructs that may be better optimised / optimizable.
10:06
10:18 Ven joined 10:23 spider-mario joined 10:24 jack_rabbit left 10:25 telex left 10:26 telex joined 10:27 Alina-malina left 10:29 rindolf left
lizmat m: my @a := Bool.roll(*); say @a.infinite # just checking 10:34
camelia rakudo-moar f18835: OUTPUT«False␤»
dalek kudo/nom: 95411f5 | lizmat++ | src/core/List.pm:
Some List.roll improvements

General performance improved and seperate List.roll(*) candidate that returns a list that knows it's infinite.
10:36
lizmat $ 6 'my @a := Bool.roll(*); say @a.infinite'
True
.tell b2gills Bool.roll(*) should now know it's infinite, as any List.roll(*) now does 10:37
yoleaux lizmat: I'll pass your message to b2gills.
10:39 raiph left 10:40 eli-se joined 10:42 kaare__ left
dalek ast: 70d8514 | lizmat++ | S32-list/roll.t:
Add check for infiniteness of List.roll(*)
10:44
10:46 rindolf joined 10:48 diana_olhovik_ joined 10:50 spider-mario left
lizmat sometimes I think we need a way to execute some code, just after the setting is loaded, without looking at @*INC order 10:50
especially in the context of apps 10:51
a piece of code that could load custom CompUnitRepo objects, for instance
10:52 cschwenz joined
lizmat something like -r execute_me_first.pl 10:54
10:58 kaare__ joined 11:00 cschwenz left
jnthn lizmat: Anything you use gets run right then 11:01
lizmat yes, but use follows the (standard) @*INC, which is something you may not want
jnthn Well, can write a BEGIN block 11:02
lizmat especially in the context of a self-contained app with all its requirements wrapped in a single tar ball
11:02 rurban left
jnthn Or alternatively, perhaps a custom setting is what you're after 11:02
lizmat BEGIN block ?
well, possibly, yes
jnthn m: BEGIN { say "I run really soon after the setting is loaded" } 11:03
camelia rakudo-moar 95411f: OUTPUT«I run really soon after the setting is loaded␤»
lizmat jnthn: but where would you put that BEGIN block?
jnthn lizmat: If you're in the context of an app, then you have a single script that it will start off in, so just at the top of that? 11:04
lizmat hmm.. duh 11:05
ok, scratch the -r idea :-)
jnthn I think between than and a custom setting we have two ways to do what you're wanting. :) 11:06
*that
lizmat yup, thanks for waking me up :-)
11:10 Ven left 11:20 rindolf left 11:34 raiph joined 11:35 rindolf joined 11:41 virtualsue joined 11:43 Ven joined 11:47 konsolebox joined 11:50 Ven left 11:51 PZt left
[Tux] what was the workaround for Inline::Perl5 atm? 11:51
yoleaux 1 May 2015 09:09Z <quester> [Tux]: I have just posted a fairly awkward workaround if you are in a hurry, but it looks like jnthn and lizmat are looking into at least one of the underlying problems, so there is light at the end of the tunnel.
[Tux] or are we near the end of that tunnel? 11:52
lizmat line 743: - for Any.^methods>>.gist -> $name { 11:53
+ for Any.^methods>>.name -> $name {
[Tux] in panda or Inline::Perl5?
lizmat Inline/Perl5.pm6
jnthn is currently pondering a couple of possible solutions to the general issue that tickled this one.
[Tux] ok, I'll wait for that then. 11:54
[Tux] continues on the docs
RT#124191 RT#124298 still fail too :(
synbot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=124191
12:05 raiph left
literal why is there no 2015.04 in rakudo.org/downloads/star/ ? 12:13
lizmat 1. nobody made it (yet)
12:14 Ven joined
lizmat 2. there is a severe performance regression when there are many modules installed 12:14
literal I see
lizmat this is in the process of being fixed
jnthn Which probably means that nobody will make it
The point of R* is to provide some greater amount of stability.
[Tux] (writing doc)++; # find more bugs :) 12:15
12:20 rurban joined, Ven left, diana_olhovik_ left, domidumont left 12:23 diana_olhovik_ joined 12:28 virtualsue left 12:38 Alina-malina joined
lizmat .tell FROGGS is there a reason we add $home/.perl6/$ver/lib as a CURLF *and* as a CURLI ? 12:45
yoleaux lizmat: I'll pass your message to FROGGS.
lizmat .tell FROGGS feels to me like adding it as a CURLI would be sufficient ? You don't usually use such a dir for development ? 12:46
yoleaux lizmat: I'll pass your message to FROGGS.
dalek c: 565c4d2 | moritz++ | lib/Language/syntax.pod:
Document array literals
12:50
12:50 aborazmeh joined, aborazmeh left, aborazmeh joined 12:57 aborazmeh left, PZt joined
lizmat got startup time down to .16 from .22 (without any modules installed) 13:08
too bad precomp is now broken :-(
13:09 raiph joined
lizmat will look at it again after some cycling& 13:09
13:11 xfix left 13:17 vendethiel joined
moritz "it's easy to get the wrong answer in 0.16 seconds" :-) 13:17
lizmat++ # performance hacking
jnthn I guess that's before we get the improvements from the MoarVM/NQP side too, since I didn't bump NQP_REVISION yet :) 13:23
timotimo cool; is that from something yet unpushed, lizmat? 13:24
jnthn timotimo: I didn't see any push relating to that, so I'd guess yes :) 13:25
lizmat yes, unpushable atm
timotimo ah
lizmat and yes, before jnthn's improvements
timotimo because it breaks precomp, i suppose
lizmat yup
timotimo precomp is such a fragile beast
lizmat need to make sure it doesn't break panda 13:26
timotimo i wonder if i should try to get JSON::Fast into rakudo for the module database loading
lizmat anyway, fist some fresh air &
jnthn Well, if you're doing stuff at startup that interacts with module loading, you can't code it in ignorance of pre-comp :)
lizmat jnthn: indeed
:-)
jnthn timotimo: I'm rather go with some non-JSON solution... 13:27
timotimo last time i thought about that (or rather: was asked to) i thought froggs' work to use MVM's serialization instead was about to finish
jnthn Like FROGGS++ was working on
timotimo yes
jnthn Yeah, he ran into some difficulties. I *think* I may have figured out an answer to that though.
timotimo i find it a little bit uncool that the database would end up not readable by anything but moarvm + some nqp code
but the json slowness isn't something i'd like to keep around either 13:28
lizmat gist.github.com/lizmat/de168f78dc687bf6c841 # for the impatient
timotimo cool! :)
jnthn Well, it's only a cache, and we can always make something to dump it
jnthn thinks he'll take a walk while the weather is decent 13:29
bbiab
lizmat really afk&
timotimo good walk, you two!
or ... maybe liz is biking rather than walking?
good weather to both of you! :) 13:30
TimToady well, we'll be driving through Death Valley (after breakfast)
yes, we have lots of water :)
timotimo and replacement parts for your car? 13:31
and maps and gps devices with extra battery power etc etc
(i don't actually know how to death valley properly)
13:35 Foxcool_ left 13:44 BenGoldberg joined
TimToady well, mostly don't go where other people don't go 13:53
timotimo bah, real tourists know that only the places other people didn't go yet are the exciting ones! :P
13:54 hobbs left, vendethiel left, hobbs joined 13:55 RabidGravy joined
dalek kudo-star-daily: 674468e | coke++ | log/ (2 files):
today (automated commit)
13:59
[Coke] is at the hackathon with rjbs & kid51 et al. 14:01
14:02 vendethiel joined 14:03 Alina-malina left
rjbs [Coke]: twitter.com/rjbs/status/594502699577643009 14:04
14:10 thou joined
mattp|spurs rjbs: lol. go check out the 29th floor observation deck ;) 14:11
14:16 thou left 14:23 dolmen joined 14:25 araujo joined
rjbs mattp|spurs: Saw it yesterday, very nice! 14:25
14:25 araujo left, vendethiel left 14:26 BenGoldberg left 14:27 mr-foobar joined
[Coke] sadly I missed it. arglebargle 14:29
14:33 sjn left 14:39 mj41 joined 14:40 konsolebox left
mj41 Hi. Perl 6 Q1/2015 projects Git statistics: github.com/mj41/Perl6-Analytics-re...-prev2.pdf 14:41
eli-se m: Set("FOO(BAR", "BAZ)QUX") === Set("BAZ)QUX Str|FOO(BAR") 14:42
camelia ( no output )
eli-se m: say Set("FOO(BAR", "BAZ)QUX") === Set("BAZ)QUX Str|FOO(BAR")
camelia rakudo-moar 95411f: OUTPUT«True␤»
eli-se epic fail
jnthn Patches welcome. 14:44
14:46 liztormato joined
liztormato eli-se: known issue. We need a better way to compare two ObjAt objects without stringification 14:48
There are todo tests for this, Afaik
14:51 araujo joined 14:54 [TuxCM] joined, eli-se left
[TuxCM] m: sub xx (*%h) { .say for keys %h; }; xx(foo => 0) 14:55
camelia rakudo-moar 95411f: OUTPUT«foo␤»
[TuxCM] m: sub xx (*%h) { .say for keys %h; }; my Str $t = "foo"; xx($t => 0)
camelia rakudo-moar 95411f: OUTPUT«Too many positionals passed; expected 0 arguments but got 1␤ in sub xx at /tmp/rHfDWrkOZd:1␤ in block <unit> at /tmp/rHfDWrkOZd:1␤␤»
[TuxCM] isn't that allowed?
14:56 zakharyas joined
liztormato $t => 0 is passed as a positional Pair 14:58
foo => 0 as a named param
[TuxCM] sounds like there is no easy escape here 14:59
liztormato Personally, I don't like this difference
[TuxCM] fwiw "$t" => 0 behaves the same 15:00
jnthn m: sub xx (*%h) { .say for keys %h; }; my Str $t = "foo"; xx(|($t => 0))
camelia rakudo-moar 95411f: OUTPUT«foo␤»
[TuxCM] hmm, doable for the tests
Arg-flattening | is only valid in an argument list 15:02
I did xx(foo => 0, |($t => 1)) 15:03
bug?
jnthn m: sub xx (*%h) { .say for keys %h; }; my Str $t = "foo"; xx(bar => 0, |($t => 1));
camelia rakudo-moar 95411f: OUTPUT«bar␤foo␤»
jnthn m: sub xx (*%h) { .say for keys %h; }; my Str $t = "foo"; xx(foo => 0, |($t => 1));
camelia rakudo-moar 95411f: OUTPUT«foo␤»
jnthn Looks fine to me? 15:04
15:04 Alina-malina joined
timotimo ohai jnthn 15:04
[TuxCM] for (< after_in on_in before_out >) -> $t {
is_deeply (csv (in => $file, |($t => &Empty) ), @aoa, "callback $t on AOA with empty sub");
is_deeply (csv (in => $file, callbacks => { |($t => &Empty) }), @aoa, "callback $t on AOA with empty sub");
}
jnthn { ... } is a hash composer, not an argument list 15:05
[TuxCM] that is where I got that error
jnthn And you don't need |(...) there
m: my $t = 'foo'; say { $t => 1 }.perl
camelia rakudo-moar 95411f: OUTPUT«{:foo(1)}␤»
[TuxCM] got it. jnthn++ 15:07
15:10 Foxcool_ joined
[Coke] what rule in the grammar handles strings that interpolate? 15:13
15:13 dolmen left, liztormato left 15:15 liztormato joined
jnthn [Coke]: Look for role qq 15:17
15:18 liztormato left 15:19 zakharyas left
jdv79 anyone else getting failures in t/01-sanity/54-use-lib.t? 15:20
15:22 prammer left
[TuxCM] I cannot imagine there is not a better way to write this: @cb = keys %$b Z values %$b; 15:23
15:23 liztormato joined
jnthn $b.pairs ? 15:23
Or $b.kv ?
15:23 Rounin left
liztormato jdv79: i probable broke that 15:23
jnthn jdv79: I see it too but figured it's ongoing liztormato++ work :) 15:24
liztormato Yeah, that. 
jdv79 ok 15:25
[TuxCM] $b.kv returns *all* keys and values? sounds likwhat I was looking for
jdv79 should i open a ticket or not then? 15:26
jnthn [TuxCM]: Yes
timotimo i wonder if the precedence is what [TuxCM] expects on keys %$b Z values %$b
liztormato Jdv79: No need. Will fix when I'm home again
jdv79 thanks ^H 15:32
hoelzro morning #perl6! 15:40
ruoso_ spending some more time on github.com/ruoso/Grammar-EBNF 15:43
15:44 ruoso_ is now known as ruoso 15:45 Ven joined
Ven .u ° 15:45
yoleaux U+00B0 DEGREE SIGN [So] (°)
DrForr ruoso: You might want to check out github.com/drforr/perl6-ANTLR4 - It's got a subset that's almost EBNF.
ruoso Right, that's a slightly different thing... I'm not just trying to parse EBNF, I want to allow you to use EBNF grammars as native Perl6 grammars... github.com/ruoso/Grammar-EBNF/blob...ernation.t 15:47
but I may have misread the antlr module 15:48
ruoso taking a deeper look
dalek ast/date-time-slices-tz: 30171c1 | (Chris Jepeway)++ | S32-temporal/DateTime.t:
added tests that &.formatter is preserved by .later() -- b2gills++
15:50
ruoso yeah, what I'm trying to do is taking the next step from what perl6-ANTLR4 is doing... I chose EBNF because it is a pretty simplistic syntax
DrForr Well, I'm intent on taking the next step as well, it's just that I wanted to parse a decidedly non-trivial syntax. 15:52
ruoso ok, I actually already have the slang working, with the "ebnf-grammar" keyword (see the link to the test I posted) 15:53
I now need to actually translate the EBNF matching rules into Perl6 regexes
which is what github.com/ruoso/Grammar-EBNF/blob...Actions.pm is doing 15:54
DrForr Yeah, my actions file just translates to an AST, I was going to try subclassing that or walking t later to generate perl6. 15:55
ruoso oh, the thing is that the slang has to do it in a single pass, afaiu 15:56
15:56 liztormato left
DrForr That seems to be the mantra for perl6, yeah. 15:57
ruoso you could probably do something different than what I'm doing in github.com/ruoso/Grammar-EBNF/blob...BNF.pm#L36 15:58
16:00 Ven left 16:03 Ven joined
DrForr I'll take a look when I've gotten a few more bits of these rules into place. 16:03
16:03 diana_olhovik_ left 16:05 rurban left
ruoso so, the issue I'm blocked on right now is that I can't find a way to dynamically create subrules... i.e.: create a regex with a named capture that should match from a regex that I have in a variable... 16:05
doing <::($name)> would be close (even if not supported by rakudo right now), but it still doesn't allow me to set a name for the capture 16:06
sorry, it's not a regex that I have... 16:07
what I have is the name of another rule to be invoked
DrForr I expect I'll be there in a few days :)
ruoso I'm thinking that I may have to create a faux regex object
hoelzro does FROGGS still have that ecosystem smoker around? 16:11
ugexe panda smoke?
hoelzro I don't remember what it was called =/ 16:12
there's this: smoke.perl6.org/report 16:13
ugexe `PANDA_SUBMIT_TESTREPORTS=1 panda smoke` probably does what you want
which reports to testers.p6c.org
hoelzro but I think FROGGS had a different one
16:14 Ven left
ugexe speaking of, panda needs to ignore things from --exclude from smoking even as dependencies. openssl is messing up all reports that come after it 16:14
this is for smoke.perl6.org github.com/perl6-community-modules/SmokeResults 16:15
hoelzro I wonder how hard it would be to configure panda to pick up on deprecation warnings (and other types of warnings) 16:17
ugexe it wouldnt be too difficult
timotimo huh. something's wrong with my computer ... things taking ages to execute
but cpu usage is way low
ugexe thrashing? 16:18
16:18 dwarring left
timotimo shouldn't be 16:18
other things are running very responsile
responsively
things that have already run before 16:19
could be a hard drive problem
that would be very unhappyning
16:19 [TuxCM] left
timotimo unhappyfiying 16:19
16:19 konsolebox joined 16:20 konsolebox left
ugexe much nicer these days though with how easy it is to just clone a ssd and have it work 16:20
16:21 konsolebox joined
timotimo hm? 16:21
16:21 konsolebox left
timotimo i'll try to bring the system down and up again, that should shake loose whatever got stuck 16:22
ugexe is monkey typing considered poor practice? 16:24
arnsholt Definitely a tool of last resort 16:25
timotimo yeah; also, method caches don't properly get invalidated for classes that derive from what you've augmented
16:26 diana_olhovik_ joined 16:31 [TuxCM] joined
[Coke] oooh, incoming. 16:32
dalek ast: 427f1dc | (Xinyuan Wang)++ | S09-typed-arrays/arrays.t:
RT120506, nypm hackathon,skip and document failed array type, review Will
16:37
16:38 konsolebox joined
b2gills lizmat: you broke *.roll(Inf) with that change 16:40
yoleaux 10:37Z <lizmat> b2gills: Bool.roll(*) should now know it's infinite, as any List.roll(*) now does
timotimo that ... exists?
b2gills m: say Bool.roll(Inf)
camelia rakudo-moar 95411f: OUTPUT«This type cannot unbox to a native integer␤ in block <unit> at /tmp/f1gCg1ojLJ:1␤␤»
b2gills star-m: say Bool.roll(Inf)
camelia star-m 2015.03: OUTPUT«True True True False False False True True True True True True False False False False True True True True False False False False False True False True False False True False True False True False False True False True True True True False True True True Fals…»
ruoso can rule aliasing use a dynamic name? /$<$name>=$faux_regex/ creates a literal '$name' capture alias instead of interpolating the name... 16:48
b2gills m: my @a = gather while !$++ { take 1 } :infinite; say @a.infinite; # I guess there is a way to mark a gather loop as infinite 16:51
camelia rakudo-moar 95411f: OUTPUT«True␤»
b2gills m: my @a = gather while !$++ { take 1 } :infinite; say @a; say @a.infinite; # I guess there is a way to mark a gather loop as infinite
camelia rakudo-moar 95411f: OUTPUT«1␤False␤»
16:54 sjn joined 16:56 domidumont joined 16:57 rurban joined
hoelzro you can *only* provide parameters to a role, right? you can't do class PriorityQueue[::T]? 16:58
[Coke] Xinyuan found that one of the closed tests is broken again; I reopened the ticket, she refudged it. 16:59
jnthn hoelzro: Correct 17:00
hoelzro jnthn: ok, thanks
17:04 raiph left
[Coke] I have a user who has windows here who is trying to build strawberry perl. 17:16
17:17 cognominal joined
jdv79 that's me. lunch though & 17:17
lizmat b2gills: looking at it 17:18
apparently, there is no spectest for it :-(
17:18 raiph joined
[Coke] OHAI 17:21
so can jdv79 use strawberry, or do we need to have him get the free MS toolsuite.
dalek kudo/nom: 179193a | lizmat++ | src/core/List.pm:
Fix List.roll(Inf), spotted by b2gills++
17:25
17:26 Alina-malina left
ruoso yay... my subrule test now passes... used EVAL to compose the dynamic subrule aliasing... github.com/ruoso/Grammar-EBNF/blob..._subrule.t now passes 17:26
lizmat ruoso: at the PQAH, tadzik worked on dynamically adding rules for his BNF parsing module 17:31
perhaps that can be an inspiration not to have to use EVAL ?
dalek kudo/nom: 56cae10 | lizmat++ | t/01-sanity/54-use-lib.t:
Fix use lib sanity testing, spotted by jdv79++
17:32
17:34 hobbs left
lizmat ruoso: github.com/tadzik/Grammar-BNF 17:34
17:36 thou joined 17:38 hobbs joined
colomon [Coke]: I tried to build rakudo-moar with Strawberry a few weeks ago, it failed. :( 17:41
afk # son has requested I read to him
jdv79 i hoped it would have found mingw through strawberry or something but that didn't happen 17:43
17:43 Alina-malina joined 17:45 rindolf left 17:46 thou left
jdv79 at least this hackathon has brought to my attention that i need to figure out the linux wireless on this box. i assumed there would be wired which works fine... 17:52
17:54 diana_olhovik_ left
timotimo the only networking i've had to figure out in the last years was the one on my desktop when i installed windows and wired wasn't working 17:55
normal folks are used to nothing working on windows upon a fresh install, though. it just took me by surprise
17:55 bowtie joined, bowtie is now known as Guest90792 17:57 cognominal left
timotimo that reminds me of the article written by a tesla driver about trying out an internal combustion engine car as if it were the first time they had heard about them 17:57
with things like "turns out no car manufacturer came up with the idea of building gas stations where you can fill up your car for free" 17:58
lizmat is looking forward to the time that a car with an internal combustion engine would be as strange as a steam-driven car is now
moritz is looking forward to the time when human-driven cars would be as strange as a steam-driven car is now 18:00
arnsholt I think the latter is going to happen before the former 18:01
And I'm not overly optimistic about the latter, TBH =/
ruoso lizmat: ah, interesting, we're implementing literally the same thing...
lizmat you mean you and tadzik? 18:02
ruoso yeah
lizmat yeah, felt like it
sort of saw the problems you had: was sitting next to tadzik when he had the same issues :-)
timotimo hehe.
lizmat m: sub a(Str:D $a?) {}; a # should probably be caught at compile time 18:05
camelia rakudo-moar 56cae1: OUTPUT«Parameter '$a' requires a 'Str' instance, but a type object was passed. Did you forget a .new?␤ in sub a at /tmp/BOyA8xuqK0:1␤ in block <unit> at /tmp/BOyA8xuqK0:1␤␤»
timotimo right, a :D and a ? don't mix very well 18:09
lizmat catchable at compile time, I would think
jdv79 so, how to ouput pod? perl6 --doc on Test.pm doesn't seem to be happy. 18:10
ruoso although a^H^Haa
[A[B[C[B[C[A[D
18:10 vendethiel joined
timotimo yeah, all the necessary info should be available when you build the signature from the %signature_info hash or what it's called 18:11
rjbs So, I had a program that used to work in Rakudo, and stopped...
[Coke]++ helped me find the cause. I had a sub called "byte" which is now a reserved word.
But the error! Oh boy! 18:12
m: sub byte($i) { 1 } byte(5)
camelia rakudo-moar 56cae1: OUTPUT«5===SORRY!5=== Error while compiling /tmp/Keeei239hl␤Strange text after block (missing semicolon or comma?)␤at /tmp/Keeei239hl:1␤------> 3sub byte($i) { 1 }7⏏5 byte(5)␤ expecting any of:␤ infix␤ infix stopper␤ …»
rjbs Okay, well, that's going to be messing up something... but the error I get is not when defining sub byte, but when I call it. If I call byte(1) I get:
Cannot invoke this object (REPR: P6int, cs = 0)
ruoso sheesh... things that happen when you have too much delay in your ssh connection...
rjbs m: sub byte($i) { 1 } ; byte(5) 18:13
camelia rakudo-moar 56cae1: OUTPUT«Cannot invoke this object (REPR: P6int, cs = 0)␤ in block <unit> at /tmp/eHWAIGQiwS:1␤␤»
lizmat m: int(5) # any native type does that :- 18:14
camelia rakudo-moar 56cae1: OUTPUT«Cannot invoke this object (REPR: P6int, cs = 0)␤ in block <unit> at /tmp/4cjukBgmEq:1␤␤»
[Coke] m: Int(2);
camelia ( no output )
lizmat this happens somewhere deep in the nqp bowels
[Coke] m: Int(2).say;
camelia rakudo-moar 56cae1: OUTPUT«2␤»
lizmat [Coke]: yes, only the native types 18:15
[Coke] huh. I didn't know that worked.
lizmat rjbs: you want to rakudobug it ?
[Coke]: I think it's like 2.Int 18:16
[Coke] rjbs: *please* rakudobug it and then come sit at the p6 table. :)
lizmat m: say Int(3.14) # same as 3.14.Int
camelia rakudo-moar 56cae1: OUTPUT«3␤»
rjbs Okay! 18:17
lizmat m: sub Int($a) { say "foo" }; say Int(3.14) # seems we need to check for class named subs 18:20
camelia rakudo-moar 56cae1: OUTPUT«3␤»
lizmat rjbs: we usually copy-n-paste from the irc log :-) 18:21
18:23 pecastro joined
rjbs Wait, how do I rakudobug? 18:23
moritz mailto:rakudobug@.perl.org 18:24
s/\.//
rjbs Oh, that's easy. :) 18:25
lizmat yes, we got many of them :-) 18:27
rjbs Done, thanks! 18:29
lizmat thank you! 18:30
nwc10 rjbs: it's the perl6 queue on rt.cpan.org IIRC 18:31
fingers
rt.perl.org 18:32
rjbs :) 18:33
18:34 vendethiel left 18:39 hahainte1net is now known as hahainternet
rjbs was assigned #124442. 18:43
literal w/W 4
18:44 vendethiel joined, rindolf joined
lizmat rjbs++ 18:45
m: sub a() { my %h = a => 42; (%h,42) }; my (%a,$b) = a # feels like a rakudobug to me 18:50
camelia rakudo-moar 56cae1: OUTPUT«Odd number of elements found where hash initializer expected␤ in block <unit> at /tmp/LH3NuEitbT:1␤␤»
lizmat m: sub a() { my %h = a => 42; (666,%h) }; my ($a,%b) = a; say %b.perl # this works 18:51
camelia rakudo-moar 56cae1: OUTPUT«{:a(42)}<>␤»
18:52 Alina-malina left 19:00 Alina-malina joined 19:01 Alina-malina left, rindolf left
jnthn lizmat: You need to use binding for that to work, iirc 19:03
lizmat so, not a bug ? 19:04
the fact that the order matters, isn't a big thing?
jnthn lizmat: I *think* this falls out of the (GLR-preserved) decision that list assignment is flattening... 19:06
lizmat ok, well, I can live with the binding :-) 19:07
19:07 tinyblak left 19:08 Alina-malina joined 19:09 virtualsue joined
dalek ast: d7a7f86 | (Justin Devuyst)++ | S02-names/symbolic-deref.t:
Add test for RT #76400. #NYCPerlHackathon.
19:14
synbot6 Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=76400
19:17 Ven joined 19:20 Ven left 19:25 zakharyas joined
dalek ast: 36ef6bf | lembark++ | S03-smartmatch/array-hash.t:
test blows up; see RT #124444
19:25
synbot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=124444
19:27 vendethiel left 19:31 Ven joined
colomon p6 table? is there a hackathon ongoing? 19:31
lizmat yeah, in NY 19:32
rjbs Is there a pronunciation guide on "niecza"
lizmat colomon: www.meetup.com/The-New-York-Perl-Me...221319780/
19:32 domidumont left
colomon neetcha 19:32
lizmat++ 19:33
who all is there? [Coke], I take it. 19:34
ruoso too
19:35 Ven left 19:36 Ven joined 19:38 Ven left
lizmat not, but will be at the Oslo P6 hackathon (or whatever P6 related is going to happen there) 19:38
labster colomon: github.com/perl6-community-modules...smoke_test still gets its data from feather 19:39
19:41 Ven joined
Ven is "»" supposed to be deep? 19:41
jnthn Think so; I think "how deep" is related to the nodal stuff TimToady++ has been doing of late 19:42
19:44 fhelmberger joined 19:46 vendethiel joined
jdv79 is perl6 --doc supposed to work? 19:48
19:48 fhelmberger left
jnthn Believe so 19:49
Ven uh-uhm. Is `is nodal` speced?
lizmat S03:4289 19:50
synbot6 Link: design.perl6.org/S03.html#line_4289
jnthn If it is, prolly in S03
ah, lizmat++ is faster :)
ruoso r: my $a = '23333'; $b = /2(3*)/; say ($a ~~ /^$b$/).gist 19:51
camelia rakudo-{moar,jvm} 56cae1: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tmpfile␤Variable '$b' is not declared␤at /tmp/tmpfile:1␤------> 3my $a = '23333'; $b7⏏5 = /2(3*)/; say ($a ~~ /^$b$/).gist␤ expecting any of:␤ postfix␤»
ruoso r: my $a = '23333'; my $b = /2(3*)/; say ($a ~~ /^$b$/).gist 19:52
camelia rakudo-{moar,jvm} 56cae1: OUTPUT«「23333」␤»
ruoso shouldn't that have the '333' captured?
jnthn You'll have to do a little more to get that 19:53
m: my $a = '23333'; my $b = /2(3*)/; say ($a ~~ /^$<b>=$b$/).gist
camelia rakudo-moar 56cae1: OUTPUT«「23333」␤ b => 「23333」␤ 0 => 「3333」␤»
mj41 colors and a few more issues fixed ... so enjoy 15 years of Perl 6 history on GoodData dashboards .... github.com/mj41/Perl6-Analytics-re...-prev2.pdf 19:54
ruoso hmm... is this on purpose or a bug?
rjbs [Coke]: as requested github.com/rjbs/rjbs-vim-dots 19:55
jnthn ruoso: By design.
ruoso is there a way to force the capture to come up without introducing another named capture? 19:56
jnthn No
Well, not that I know of.
ruoso is that for each level of indirection? or does it flatten it
ruoso building regexes dynamically in a Actions class 19:57
19:58 al2o3-cr left
lizmat m: my Nil %h = a => Any # cute 19:58
camelia rakudo-moar 56cae1: OUTPUT«Type check failed in binding $x; expected 'Any' but got 'Any'␤ in block <unit> at /tmp/of6KDfMv2C:1␤␤»
19:59 Ven left, yqt joined, diana_olhovik_ joined
ruoso I guess I do see why that is the case, in order to make the numbered captures to be more predictable.... 19:59
19:59 Ven joined
jnthn Yeah, the capture naming is syntactic. 20:00
And regexes are first-class code objects that are compiled
Not strings
So by the time we see the interpolation it's too late. 20:01
[Coke] (here), me, rjbs, jdv79, Xinyuan Wang (new roast committer) , lembark (new roast committer)
ruoso well, but named captures do propagate
[Coke] kid51 is also here, but not p6ing
also the perltricks guy.
OH and ruoso!
20:02 rurban1 joined
[Coke] so, quite a few people at the p6 table. maybe 1/6 of total. 20:02
20:03 prammer joined
lizmat cool! 20:04
ruoso hmm... maybe I'm wrong, named captures don't actually propagate... 20:05
20:05 Ven left
colomon [Coke], that’s great! 20:06
ruoso I guess my approach of composing regexes calling regexes is not actually workable
20:06 rurban1 left
rjbs How can I give an attribute a lazy default? 20:06
20:08 rurban1 joined 20:09 Ven joined 20:10 vendethiel left
lizmat $:foo = "default" 20:10
has $.foo = "default" I mean 20:11
rjbs: ^^ is that what you're looking for ?
20:12 rurban1 left, Ven left 20:13 rurban1 joined
rjbs kYes, thanks! 20:13
Someone has pointed out that this is in S12. I didn't look there because instead I was looking at doc.perl6.org/language/classtut
next question is how to get a lazy default 20:15
Oh, wait.
Sorry, so I thought I asked a different question earlier...
I have an object that has a filename attr. I also want a filehandle attr, but I don't want it to be opened until it's requested.
20:15 airdisa joined
rjbs my first guess would be has $.fh = { ... } -- trying ! :) 20:16
mj41 Simple html/markdown version (no PDF) --- 15 years of Perl 6 history (Git commits of 324 #perl6 projects) on screenshots from my @gooddata project j.mp/p6gdmd
rjbs Nope, not that. :-)
lizmat .tell FROGGS re github.com/rakudo/rakudo/commit/d2...1bf4e8fea, shouldn't it be the responsibility of panda to create a directory in which to install?
yoleaux lizmat: I'll pass your message to FROGGS.
ruoso are lazy blocks a thing? 20:17
lizmat has $.fh = do { }; ?
ruoso they were a thing a while back
20:17 rurban1 left
ruoso r: my $a = lazy { 42 }; 20:17
rjbs lizmat: Nope, that's run at init.
camelia ( no output )
20:17 Ven joined
rjbs ruoso: That also gets run when the object is created. 20:18
ruoso I believe that may be a bug... something is probably evaluating the attribute eagerly in the object creation 20:19
jnthn lazy is just about lists, iirc... 20:20
I'd probably write an accessor method method attr() { $!attr //= ... }, or if I was doing it a lot factor that out into a trait 20:21
mj41 feedback and retweets twitter.com/mj41cz/status/594595907745751041 are welcome. 20:22
rjbs I can say from writing Moose code that I want lazy default -all the time-.
jdv79 use Inline::Perl5 and Moo? 20:23
lizmat m: class A { has $!a; method a() { say "hi" } }; A.new; A.new.a # rjbs 20:24
camelia rakudo-moar 56cae1: OUTPUT«hi␤»
20:27 telex left 20:28 telex joined 20:29 darutoko left
rjbs lizmat: Yeah, that's what I did, in the end. I made my own method 'attr' that initialiazes $!attr. My prediction is that I will miss having a short syntax for this, but we'll see. :) 20:30
lizmat I'm not sure how to make that work, without adding a burden to auto-generated accessors 20:31
rjbs If I write a module with a multi sub "foo" and it's export, should I put "is export" on every version of it or..?
ugexe put it on the proto
proto sub foo is export {*} # now all multi sub foo are exported 20:32
lizmat I guess we could add an attribute like "is lazy" that would create an accessor with the blorst as a once block in the accessor
rjbs Got it, thanks!
lizmat *autogenerated accessor
jdv79 i also find it a little disturbing that lazy attrs are not available.
rjbs lizmat: yeah, that's roughly what I would've expected to exist
jdv79 i did not notice that - probably cause i haven't written enough p6; yet. 20:33
20:34 vendethiel joined 20:35 rurban1 joined
jnthn I imagine you already can implement a trait that mixes into the Attribute object and overrides accessor generation 20:35
20:35 rurban1 left
jnthn So you could get a lazy accessor thing going 20:36
If there's consensus around a way to do it, it could go in core some day.
rjbs Cool. 20:37
I'll see how much momentum I can keep up. :) 20:38
lizmat jnthn: looking at just that right now
20:39 rarara left
jnthn lizmat: I'd help but I'm busy with the hash... :) 20:39
lizmat I just wonder how I can get at the blorst inside the trait mod
20:40 quester joined
lizmat is that the $!auto_viv_container ?? 20:40
no 20:41
20:41 inokenty left
rjbs Presumably if I want a required attribute, I say "has $.x = !!!" ? 20:41
lizmat yup 20:42
rjbs Thanks.
lizmat++
jnthn lizmat: .build_closure or so
lizmat or "has $.x = die "must speciffy";
jnthn: ok
jnthn !!! "must specify" probably works too :)
lizmat m: class A { has $.a = !!! }; A.new # doesn't say much 20:43
camelia rakudo-moar 56cae1: OUTPUT«Stub code executed␤ in method at /tmp/AhJ7veXB8j:1␤ in block <unit> at /tmp/AhJ7veXB8j:1␤␤»
lizmat m: class A { has $.a = die "must specify an a" }; A.new 20:44
camelia rakudo-moar 56cae1: OUTPUT«must specify an a␤ in method at /tmp/cWikdCBdHK:1␤ in block <unit> at /tmp/cWikdCBdHK:1␤␤»
jnthn m: class A { has $.a = !!! "gimme an 'a'!" }; A.new
camelia rakudo-moar 56cae1: OUTPUT«gimme an 'a'!␤ in method at /tmp/AMR8XLt3rD:1␤ in block <unit> at /tmp/AMR8XLt3rD:1␤␤»
20:44 raiph left 20:47 rurban1 joined 20:48 rurban1 left 20:53 Ven left
lizmat $ 6 'class A { has $.a is lazy = 42 }; A.new' 20:55
(Mu)
seems like $!build_closure isn't set yet at trait mod time
jnthn lizmat: No, but what are you doing there?
lizmat: I'd mix in a role that does something at attribute compose time, I think. 20:56
lizmat ok, I'll try that
having a COMPOSE phaser on a class would help here :-) 20:58
21:00 Sqirrel joined 21:02 rurban1 joined 21:03 rurban2 joined, rurban1 left
lizmat ah, we seem to have a compose method in Attribute :-) 21:04
jnthn lizmat: yeah, that's the one I was thinking of :)
21:05 rurban2 left, mj41 left
lizmat jnthn: does this seem odd to you: 21:14
+multi sub trait_mod:<is>(Attribute:D \attr, :$lazy!) {
+ attr := attr but role { method lazy { 42 } }
+}
jnthn yes. 21:15
attr does role ...
You need in-place mixin.
dalek osystem: ecad53f | (Michal Jurosz)++ | META.list:
Fix dnmfarrell/Module-Minter url
21:16
21:16 vendethiel left 21:28 Zoffix joined 21:31 airdisa left 21:34 dolmen joined
lizmat jnthn: I think I got a prototype now: the only thing is that I can't stop the blorst from being executed at build time 21:42
I guess I need to poke in the default BUILD to fix that, right ?
rjbs: getting closer to "is lazy" attr but not tonight 21:46
so good night, #perl6!, see you tomorrow
&
jnthn lizmat: Yeah, just set it to an empty block or so 21:48
jnthn should also rest
'night, #perl6
21:53 zakharyas left 21:54 skids joined 22:04 smi1er left 22:05 smi1er joined
skids ruoso: Grafting captures through the /<$rx>/ barrier would indeed be nice. But I wonder if the EVALs aren't just a perfectly fine way to do it even though instinct says "avoid EVALs". 22:11
timotimo you could "use QAST::Nodes" (or something?) and nqp::getcomp('qregex') (is that actually the right one?) and build your regexes from an actual ast 22:12
one day, the macros marsak is working on will give you a "prettier" way to do that
skids I haven't had time to look at ANTR4, is that what DrForr is doing? 22:13
*ANTLR4
ruoso++ for finding the slang magic incantantions BTW. 22:15
22:17 Ven joined
Ven \o, #perl6 22:18
22:19 dustinm` left 22:20 Ven left 22:21 Zoffix left 22:22 dustinm` joined
dalek kudo-star-daily: 2582e4d | coke++ | log/ (2 files):
today (automated commit)
22:22
rl6-roast-data: 591d5fd | coke++ | / (9 files):
today (automated commit)
rl6-roast-data: 193a334 | coke++ | perl6_pass_rates.csv:
today (automated commit)
22:23 Zoffix joined
[Coke] waves from Penn. 22:26
22:26 Zoffix left
[Coke] weird, daily runs for rakudo.moar died missing t/spectest.data 22:30
22:32 quester left, cognominal joined 22:35 rurban left 22:36 Ven joined 22:38 Ven left 22:43 virtualsue left
dalek rl6-roast-data: 3d3e796 | coke++ | perl6_pass_rates.csv:
remove weird entries with no impl.

Need to stop these from getting added.
22:46
22:52 virtualsue joined 22:53 yqt left 23:00 virtualsue left 23:02 BenGoldberg joined 23:04 diana_olhovik_ left 23:06 vendethiel joined 23:07 RabidGravy left 23:10 espadrine left
labster m: my int $s = 0; $s += 1/2; 23:16
camelia rakudo-moar 56cae1: OUTPUT«This type cannot unbox to a native integer␤ in block <unit> at /tmp/a7LuCSZFZ7:1␤␤»
labster m: my float $s = 0; $s += 1/2; 23:18
camelia rakudo-moar 56cae1: OUTPUT«5===SORRY!5===␤Type 'float' is not declared␤at /tmp/GDXbDuj55Y:1␤------> 3my float7⏏5 $s = 0; $s += 1/2;␤Malformed my␤at /tmp/GDXbDuj55Y:1␤------> 3my7⏏5 float $s = 0; $s += 1/2;␤␤»
timotimo m: my num $s = 0; $s += 1/2
camelia rakudo-moar 56cae1: OUTPUT«This type cannot unbox to a native number␤ in block <unit> at /tmp/N8Ri7dXBkd:1␤␤»
timotimo m: my num $s = 0; $s += 1/2e0
camelia rakudo-moar 56cae1: OUTPUT«This type cannot unbox to a native number␤ in block <unit> at /tmp/ghAFSEfrcu:1␤␤»
timotimo m: my num $s = 0; $s += 1e0 / 2e0
camelia rakudo-moar 56cae1: OUTPUT«This type cannot unbox to a native number␤ in block <unit> at /tmp/T7GbQOpaZ1:1␤␤»
labster Rats!
timotimo it really wants to be a rat, yeah
with natively typed variables, you'll apparently have to be a bit more dilligent in coercing to nums? 23:19
labster feels like a bug to me 23:20
m: my num $s = 0; $s + <1/2>.Num; 23:21
camelia rakudo-moar 56cae1: OUTPUT«This type cannot unbox to a native number␤ in block <unit> at /tmp/RWv7E_TFNX:1␤␤»
23:23 raiph joined
timotimo huh 23:25
m: my num $s = 0; 23:26
camelia rakudo-moar 56cae1: OUTPUT«This type cannot unbox to a native number␤ in block <unit> at /tmp/4QGslqlJFf:1␤␤»
timotimo golfed :P
m: my num $s = 0e0;
camelia ( no output )
timotimo m: my num $s = 0e0; $s += 1/2
camelia ( no output )
timotimo m: my num $s = 0e0; $s += 1/2; say $s
camelia rakudo-moar 56cae1: OUTPUT«0.5␤»
timotimo there you go
23:27 vendethiel left 23:30 dolmen left 23:32 erdic left
labster lol timotimo. Is there any reason we shouldn't be able to initialize a num with an Int, though? Seems like a multi might be needed. Or a better error message. 23:33
m: my int $a = 0; my num $b = $a; 23:34
camelia ( no output )
labster m: my Int $a = 0; my num $b = $a; 23:35
camelia rakudo-moar 56cae1: OUTPUT«This type cannot unbox to a native number␤ in block <unit> at /tmp/_h7ytCPHLK:1␤␤»
23:37 airdisa joined 23:42 kaare_ joined
timotimo we've had this a few times in the past 23:45
the discussion, i mean
i forgot what the result was, though
23:46 kaare__ left 23:52 Foxcool_ left