»ö« 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!
Set by masak on 12 May 2015.
00:00 labster joined
labster o/ greetings from the Large Salt Lake 00:01
00:07 gfldex left 00:10 spider-mario left
timotimo o/ 00:15
labster Now that I have finally escaped work, it's time to deal with the pile of pull requests I've assembled. "unit"? Who ordered that? 00:18
00:18 telex left 00:20 telex joined
TimToady some recently deceased physicist or other 00:21
labster TimToady++ gets all of my jokes. 00:25
00:25 jack_rabbit joined 00:28 lizmat left
TimToady -> Reno 00:30
00:31 tinyblak joined 00:32 SevenWolf left 00:37 colomon left 00:38 colomon joined 00:42 colomon left 00:46 lizmat joined 00:52 colomon joined 00:58 larion left 01:02 colomon left, labster left 01:07 colomon joined 01:13 flaviusb joined 01:16 JimmyZ_ joined 01:27 rurban joined 01:32 Peter_R left 01:36 rurban left 01:41 uncleyear left 01:42 uncleyear joined 01:43 mr-foobar joined 01:44 SevenWolf joined 01:45 ilbot3 left 01:46 ilbot3 joined 01:55 fhelmberger joined, nys left 01:56 yqt left, amurf joined 01:59 fhelmberger left 02:00 amurf left 02:04 labster joined 02:07 kaare__ joined 02:08 llfourn joined
gagalicious does anyone know how to use html::treebuilder? i'm not sure how to match this : <div class="presentation editorHtml"> <-- only this part. 02:10
02:13 llfourn left
Util gagalicious: Sure, just a second 02:19
gagalicious: my $d_p_eH = $tree->look_down( _tag => 'div', id => 'presentation editorHtml' ) or die; 02:21
Change $ to @ if you might have more than one occurance; in scalar context, look_down returns first found.
docs: metacpan.org/pod/HTML::Element#look_down 02:22
(The main TreeBuilder doc needs a pointer to the HTML::Element docs) 02:23
gagalicious oh ok. thanks. yeah i got it 02:26
Util yw
gagalicious $the ->as_text... problem is... <a>hello</a><a>there</a>... returns as hellothere. i would like to have "hello there" with space in between. how do i get this done? 02:27
02:28 skids joined
AlexDaniel oh no, not again 02:30
m: grammar MyGrammar { regex TOP { ^ [ <foo> <bar> ]+ $ } regex foo { 'ZZZ' } regex bar { .*? } } my $data = 'ZZZ 123 ZZZ 456'; say MyGrammar.parse($data);
camelia rakudo-moar c2a57e: OUTPUT«5===SORRY!5=== Error while compiling /tmp/NtZuB0vGny␤Strange text after block (missing semicolon or comma?)␤at /tmp/NtZuB0vGny:1␤------> 3mar { regex TOP { ^ [ <foo> <bar> ]+ $ }7⏏5 regex foo { 'ZZZ' } regex bar { .*? } }␤ expecting an…»
labster AlexDaniel: try a semicolon after each block?
AlexDaniel nhm weird 02:31
but no, that's not the problem
Util Well, if there are no spaces between </a> and <a> , it probably is not *displaying* with a space, but try this:
my $a_texts = join ' ', map { $_->as_text } $d_p_eH->look_down( _tag => 'a' );
gagalicious: ^
AlexDaniel m: grammar MyGrammar { regex TOP { ^ [ <foo> <bar> ]+ $ }; regex foo { 'ZZZ' }; regex bar { .*? }; }; my $data = 'ZZZ 123 ZZZ 456'; say MyGrammar.parse($data);
camelia rakudo-moar c2a57e: OUTPUT«「ZZZ 123 ZZZ 456」␤ foo => 「ZZZ」␤ bar => 「」␤ bar => 「 」␤ bar => 「 1」␤ bar => 「 12」␤ bar => 「 123」␤ bar => 「 123 」␤ foo => 「ZZZ」␤ bar => 「」␤ bar => 「 」␤ bar => 「 4」␤ bar => 「 45」␤ …»
AlexDaniel now this is a problem
gagalicious Util : thanks
will try now
AlexDaniel this is probably related to my previous bug report: rt.perl.org/Public/Bug/Display.html?id=125285 02:33
02:34 noganex_ joined
AlexDaniel either I don't get it at all or it is just one fat bug 02:34
ugexe it looks like that bug report is just related to how you quanitfy matches with %%
02:35 rmgk_ joined, rmgk is now known as Guest24678, Guest24678 left, rmgk_ is now known as rmgk
AlexDaniel ugexe: the problem is that I see backtracking 02:35
ugexe: this time there is no %%
but again, it adds partial matches to the match object
if it does so, how can I handle that? For example, I'm using actions 02:36
02:36 noganex left
AlexDaniel and every time it grabs another character my method runs 02:36
gagalicious Util : it's not working. the map part...
Util gagalicious: Can you give me the block of HTML that you are parsing? 02:38
gagalicious ok... hang on
ugexe m: grammar MyGrammar { regex TOP { ^ [ <foo> <bar>* ]+ $ }; regex foo { 'ZZZ' }; regex bar { <thing> }; token thing { \d+ }; }; my $data = 'ZZZ123ZZZ456'; say MyGrammar.parse($data);
camelia rakudo-moar c2a57e: OUTPUT«「ZZZ123ZZZ456」␤ foo => 「ZZZ」␤ bar => 「123」␤ thing => 「123」␤ foo => 「ZZZ」␤ bar => 「456」␤ thing => 「456」␤»
ugexe thats how ive danced around that problem 02:39
github.com/ugexe/zef/blob/master/l....pm6#L6-L7
its not pretty (adding another token per rule) but it works
labster yes, that seems LTA 02:40
gagalicious Util : pastebin.com/HjqL08mz <-- thanks in advance
AlexDaniel ugexe: so I did: regex bar { <thing> }; token thing { .*? }; and now it just hangs 02:41
ugexe make sure you arent ending up with a < some-token* >* deal
labster you can match a lot of zero length strings in a row 02:42
AlexDaniel a lot of zero length strings on the same position?
ummmm
ugexe you are also using a token and expecting backtracking i think 02:43
AlexDaniel confused
Util gagalicious: and what does "not working" look like?
gagalicious still the same output... all joined.
hang on i test again... 02:44
ugexe you are asking for a zero-or-more width match 1 to Infinity times 02:45
i think thats what you are ending up with
labster zero width, infinity times.
AlexDaniel right 02:46
ugexe: sorry but this does not help at all 02:48
so basically you just added \d and it started working 02:49
but that's not the case for me
I want <bar> to eat every character that does not match <foo>
ugexe i didnt just add \d 02:50
gagalicious Util : pastebin.com/STU8sZua
output... same
AlexDaniel ugexe: then why did you add it all...
Util gagalicious: Working on it.
ugexe m: grammar MyGrammar { regex TOP { ^ [ <foo> <bar> ]+ $ }; regex foo { 'ZZZ' }; regex bar { <thing> }; token thing { .+ }; }; my $data = 'ZZZ123ZZZ456'; say MyGrammar.parse($data); 02:51
camelia rakudo-moar c2a57e: OUTPUT«「ZZZ123ZZZ456」␤ foo => 「ZZZ」␤ bar => 「123ZZZ456」␤ thing => 「123ZZZ456」␤»
ugexe happy?
labster ugexe: nope, it ate his Z's
AlexDaniel labster: thanks
ugexe i wasnt trying to give him the answer, just point out what his problem is
as i pointed out earlier, its how you quantify your matches 02:52
02:53 kaare__ is now known as kaare_
AlexDaniel somehow I still don't understand 02:54
labster m: grammar MyGrammar { regex TOP { ^ [ <foo> <bar> ]+ $ }; regex foo { 'ZZZ' }; regex bar { <thing> }; token thing { <![Z]>+ }; }; my $data = 'ZZZ123ZZZ456'; say MyGrammar.parse($data); 02:55
camelia rakudo-moar c2a57e: OUTPUT«(timeout)» 02:56
labster huh, there are no * in there. 02:57
AlexDaniel okay, I think I have a solution 02:58
m: grammar MyGrammar { regex TOP { ^ [ <foo> $<bar>=.*? ]+ $ }; regex foo { 'ZZZ' }; };
camelia ( no output )
AlexDaniel m: grammar MyGrammar { regex TOP { ^ [ <foo> $<bar>=.*? ]+ $ }; regex foo { 'ZZZ' }; }; my $data = 'ZZZ 123 ZZZ 456'; say MyGrammar.parse($data);
camelia rakudo-moar c2a57e: OUTPUT«「ZZZ 123 ZZZ 456」␤ foo => 「ZZZ」␤ bar => 「 123 」␤ foo => 「ZZZ」␤ bar => 「 456」␤» 02:59
labster claps
AlexDaniel labster: do I get it right that it is a bug?
Util gagalicious: That is bad HTML; the last LI element in each UL block has no closing /LI.
However, just by using the A tags, this works for me:
my $d_sAT = $tree->look_down( _tag => 'div', id => 'secondaryActivitiesTree' ) or die; $d_sAT->dump;
my @a_s = map { $_->as_text } $d_sAT->look_down( _tag => 'a' );
use Data::Dumper; $Data::Dumper::Useqq=1; print Dumper \@a_s;
does it work for you?
gagalicious Util : so how? :I
hang on...
let me check what i need to do... 03:00
yes, without the closing li tag... how do i do this? do u know?
labster AlexDaniel: no idea. Maybe we should go ahead and rakudobug it anyway, and have someone tell us that we're wrong.
AlexDaniel labster: well, there is already one that I opened some time ago -- same problem, backtracking stuff in match object 03:02
labster ugexe: ¿do you have any idea why my last camelia times out?, because I'm not seeing it.
AlexDaniel labster: and I already commented there that there is a workaround
so I just applied the same workaround here and it worked
somehow I feel that if that's a bug, then it has the same roots 03:03
gagalicious Util : i see what u mean... u look_down on <a... ok... i guess... that's a quick fix. thanks a lot.
AlexDaniel because, well, instead of doing this: regex TOP { ^ [ <foo> <bar> ]+ $ }; regex bar { .*? }; I just do this regex TOP { ^ [ <foo> $<bar>=.*? ]+ $ }; 03:05
labster I'll add this case to RT#125285, because it seems clearer than your previous one
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=125285
AlexDaniel and honestly, I can't see any reason why it should work differently
labster .oO ( m: grammar MyGrammar { regex TOP { 'ZZ' } } ) 03:06
AlexDaniel in fact, it works exactly the same way, just that the former includes this bullshit: bar => 「 」 bar => 「 1」 bar => 「 12」 bar => 「 123」 bar => 「 123 」 03:07
labster: that would be great
Util gagalicious: yw 03:10
labster I can't believe we just spent half an hour on that.
AlexDaniel labster: actually I've spent much more 03:11
I was trying to figure it out before I submitted that bug report
labster I think I've seen this before. I just assumed I was dumb at grammars and stayed away from them for a while.
AlexDaniel then I just said "okay, whatever, maybe this will get fixed one day"
then after some days I came up with that workaround 03:12
so I started writing more code, and then got stuck on that same problem again
labster AlexDaniel: It's certainly an unintuitive result. 03:14
Util m: my @a = 1..12; say @a.sort( { $^a %% 2 <=> $^b %% 2 or $^a %% 5 <=> $^b %% 5 } ); 03:18
camelia rakudo-moar c2a57e: OUTPUT«1 3 7 9 11 5 2 4 6 8 12 10␤»
Util m: my @a = 1..12; say @a.sort( { $_ %% 2 },{ $_ %% 5 } );
camelia rakudo-moar c2a57e: OUTPUT«Too many positionals passed; expected 1 or 2 arguments but got 3␤ in block <unit> at /tmp/eFNyYPRpFc:1␤␤»
Util Is sort( multiple code blocks ) NYI?
Example 1 is right, and I expect example 2 to work identically. 03:19
AlexDaniel what is the third argument? 03:21
skids AlexDaniel, labster: I did notice some new, possibly related, misbehavior in % but haven't gotten to RTing it (see irclog.perlgeek.de/perl6/2015-05-25#i_10654319)
raydiak AlexDaniel: you're supposed to be able to pass multiple sorting criteria to get subsorting, subsubsorting, etc 03:22
Util: funny thing, I just tried that for the first time today and wondered the same thing :)
AlexDaniel raydiak: yea, but it says that it got 3 arguments but I can only see two
ah 03:23
raydiak that's why we're wondering if it's not yet implemented or if it's a bug
raydiak confesses he didn't check the source and just worked around it 03:24
AlexDaniel skids: yeah 03:28
skids: although I'm not quite sure how to make it work in this case 03:32
skids I don't think I managed to find a non-capturing workaround.
Once camelia can gist again maybe we could check your case against star. 03:34
Oh wait you did get it golfed. 03:35
star: grammar MyGrammar { regex TOP { ^ [ <foo> <bar> ]+ $ }; regex foo { 'ZZZ' }; regex bar { .*? }; }; my $data = 'ZZZ 123 ZZZ 456'; say MyGrammar.parse($data); 03:36
camelia star-m 2015.03: OUTPUT«「ZZZ 123 ZZZ 456」␤ foo => 「ZZZ」␤ bar => 「」␤ bar => 「 」␤ bar => 「 1」␤ bar => 「 12」␤ bar => 「 123」␤ bar => 「 123 」␤ foo => 「ZZZ」␤ bar => 「」␤ bar => 「 」␤ bar => 「 4」␤ bar => 「 45」␤ bar …»
skids star: my $*guard = 0; grammar Foo { regex TOP { [a | [ "[" <R> b? "]" ]]+ % b { die if $*guard++ > 500 } }; regex b { b }; regex R { <TOP>+ % [ <.b>? "/" ] } }; Foo.parse("[aba]").say; Foo.parse("[abab]").say;
camelia star-m 2015.03: OUTPUT«「[aba]」␤ R => 「aba」␤ TOP => 「aba」␤「[abab]」␤ R => 「aba」␤ TOP => 「aba」␤»
skids OK, so not the same thing. I should RT that separately.
03:55 fhelmberger joined 03:57 rurban joined 03:58 llfourn joined 04:00 mr-foobar left 04:02 llfourn left 04:04 tinyblak left 04:05 tinyblak joined 04:10 tinyblak left 04:17 jack_rabbit left 04:24 sty joined, mr-foobar joined 04:26 vendethiel joined 04:33 mr-foobar left 04:37 AlexDaniel left
lizmat tea, earl grey, hot 04:42
yoleaux 6 Jun 2015 18:36Z <jnthn> lizmat: No, despite the name overlap, that's something completely different
6 Jun 2015 20:54Z <quester> lizmat: Hi, I just did a panda install Inline::Perl5 and all of the tests failed with "Can't locate Filter/Simple.pm". Installing the perl5 module Filter::Simple fixed the tests. Perhaps it should be documented as a prerequisite? -- BTW, thanks lizmat++ FROGGS++ niner++!
lizmat hmmm... that's not what I asked for ? :-) 04:43
04:43 rurban left 04:44 mr-foobar joined 04:53 mr-foobar left
BenGoldberg Filter::Simple has been part of perl5 core since 5.7.3 04:56
04:56 mr-foobar joined
BenGoldberg wonders if quester's perl installation is really that ancient 04:57
05:00 gagalicious left
dalek ast: 03ab40a | lizmat++ | S03-operators/arith.t:
Fix too specific tests
05:03
05:04 labster left, labster joined 05:05 gagalicious joined 05:06 tinyblak joined
lizmat barring& 05:07
05:10 Sqirrel left, sty left 05:16 mr-fooba_ joined 05:19 mr-foobar left, Sqirrel joined 05:28 SevenWolf left 05:34 amurf joined 05:36 mr-fooba_ left 05:39 amurf left 05:47 vendethiel left 06:19 labster_ joined 06:22 labster left, labster_ is now known as labster 06:30 araujo_ joined 06:31 BenGoldberg left 06:32 araujo left
dalek kudo/nom: cafe9b9 | lizmat++ | src/vm/jvm/runtime/org/perl6/rakudo/Binder.java:
Unbreak JVM build, bartolin++
06:41
06:48 camelia left, camelia joined 06:49 ChanServ sets mode: +v camelia
lizmat m: say @INC[0] 07:02
camelia rakudo-moar c2a57e: OUTPUT«5===SORRY!5=== Error while compiling /tmp/AajEFlpxfA␤Variable '@INC' is not declared. Did you mean '@?INC'?␤at /tmp/AajEFlpxfA:1␤------> 3say 7⏏5@INC[0]␤»
lizmat m: say @*INC[0]
camelia rakudo-moar c2a57e: OUTPUT«file#/home/camelia/.perl6/2015.05-29-gc2a57ec/lib␤»
07:04 vendethiel joined
dalek kudo/nom: 8ebddfe | lizmat++ | docs/ChangeLog:
Hopefully nudge camelia into a rebuild
07:06
nine I'd guess quester has some bare perl installation. ISTR some Linux distribution splitting core modules off the base package.
yoleaux 4 Jun 2015 18:54Z <japhb> nine: moritz says around irclog.perlgeek.de/perl6/2015-06-04#i_10702197 that you are the only one who can fix the DNS problems plaguing Camelia's rebuilds. Can that power be spread around a bit more? Or is there a blocker to that?
lizmat nine++ 07:07
07:07 aindilis` left
nine .tell japhb moritz would have had the power to fix it. I guess it was more a problem of not knowing how I intended the setup to work. 07:07
yoleaux nine: I'll pass your message to japhb.
07:07 aindilis` joined 07:14 laouji joined 07:26 skids left, tinyblak left 07:35 tinyblak joined 07:36 llfourn joined 07:39 RabidGravy joined 07:40 espadrine_ joined 07:41 llfourn left 07:45 vendethiel left
dalek ast: 29821cf | lizmat++ | S03-operators/is-divisible-by.t:
Fix too specific tests
07:46
07:46 vendethiel joined
dalek kudo/nom: c892940 | lizmat++ | src/core/array_slice.pm:
Speed up @a[^foo] = 1..Inf assignment
07:47
07:51 rindolf joined 07:52 bbkr__ left 07:53 tinyblak left 07:54 AndChat|228864 joined, AndChat|228864 left, AndChat|228864 joined 07:55 AndChat-228864 joined, JimmyZ_ left, AndChat-228864 left, JimmyZ_ joined 07:56 gfldex joined 07:58 AndChat|228864 left 08:01 laouji left 08:05 Ven joined 08:13 tinyblak joined 08:14 darutoko joined
Ven o/, #perl6 08:17
lizmat Ven o/ 08:20
08:21 tinyblak left 08:23 domidumont joined 08:26 labster left 08:27 tinyblak joined 08:28 domidumont left, uncleyear left 08:29 uncleyear joined, domidumont joined 08:45 araujo_ left
dalek kudo/nom: 2fdef2e | lizmat++ | src/core/ (4 files):
Add numerator info to DivideByZero exceptions
08:48
08:48 araujo joined, araujo left, araujo joined
dalek ast: eda5413 | lizmat++ | S03-operators/ (2 files):
Add numerator info to DivideByZero testing
08:54
lizmat m: say @*INC[0] 08:56
camelia rakudo-moar c2a57e: OUTPUT«file#/home/camelia/.perl6/2015.05-29-gc2a57ec/lib␤»
lizmat :-(
.tell nine it appears camelia building needs to be kickstarted again 08:57
yoleaux lizmat: I'll pass your message to nine.
08:59 uncleyear left, tinyblak left 09:00 uncleyear joined 09:01 tinyblak joined, laouji joined 09:06 laouji left 09:07 tinyblak left 09:08 tinyblak joined
lizmat .tell TimToady should Rat.new(42,0) already fail or not ? 09:09
yoleaux lizmat: I'll pass your message to TimToady.
lizmat m: say Rat.new(42,0).nude # we already lost the "42" here 09:12
camelia rakudo-moar c2a57e: OUTPUT«1 0␤»
09:19 Ven left 09:20 diana_olhovik_ joined 09:22 uncleyear left 09:23 uncleyear joined, JimmyZ_ left
[Tux] Is RT#124191 spreading like oil? gist.github.com/Tux/57326e146cc249310195 09:25
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=124191
moritz lizmat: fwiw rakudo on camelia didn't rebuild, because 09:26
Stage classfile : OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x00000007de600000, 390070272, 0) failed; error='Cannot allocate memory' (errno=12)
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (malloc) failed to allocate 390070272 bytes for committing reserved memory.
[Tux] same for csv-ip5pp.pl
lizmat perhaps... but I think this is something jnthn should look at :-( 09:27
moritz p5 question: is there any way to enable or disable global destruction warnings?
[Tux] gist.github.com/Tux/63311ce6f17352102323 even shorter for the state machine 09:28
dalek albot: f1bdc43 | moritz++ | build-scripts/rebuild-rakudo.pl:
Disable r-j build for now

we do not have enough memory for that :(
09:29
moritz .tell nine we don't seem to have enough RAM on the camelia server to rebuild rakudo-jvm; any chance to get a bigger slice? 09:30
yoleaux moritz: I'll pass your message to nine.
moritz r-m rebuild should start in 8 minutes
lizmat moritz++ :-) 09:35
09:36 bbkr joined
moritz m: say 'which version?' 09:41
camelia rakudo-moar 2fdef2: OUTPUT«which version?␤»
moritz wow, that was quick.
less than four minutes for the rebuild
it almost wants me want to split up r-m and r-j rebuilds, and do the r-m rebuilds much more often 09:42
09:45 spider-mario joined
lizmat m: say @*INC[0] 09:45
camelia rakudo-moar 2fdef2: OUTPUT«file#/home/camelia/.perl6/2015.05-130-g2fdef2e/lib␤»
lizmat woot! 09:46
m: 42 % 0
camelia rakudo-moar 2fdef2: OUTPUT«Earlier failure:␤ Attempt to divide 42 by zero using infix:<%>␤ in block <unit> at /tmp/vuB1Ublk2P:1␤␤Final error:␤ Type check failed for return value; expected 'Int' but got 'Failure'␤ in any return_error at src/vm/moar/Perl6/Ops.nqp:639␤ …»
09:47 rindolf left
lizmat moritz: SIG{__WARN__} = sub {} ? 09:47
09:47 smls joined
lizmat gets some shuteye& 09:48
smls m: my $r = /\d+/; say "a42" ~~ /a $r/
camelia rakudo-moar 2fdef2: OUTPUT«「a42」␤»
smls ^^ is this an official feature? 09:49
design.perl6.org/S05.html#Variable_...erpolation doesn't seem to mention it.
09:52 uncleyear left 09:53 uncleyear joined 09:54 xinming left 09:55 larion joined 10:02 larion left 10:05 kaare_ left 10:06 kaare__ joined, bbkr left, bbkr joined 10:07 bbkr__ joined, bbkr left 10:08 larion joined 10:12 diana_olhovik_ left
Timbus smls: github.com/perl6/roast/blob/master...able.t#L36 10:12
smls ok 10:14
10:16 RabidGravy left 10:19 uncleyear left, uncleyear joined 10:26 Ven joined 10:27 laouji joined
Ven www.blackhat.com/us-15/briefings.h...escalation whoops. 10:28
.oO( this could never happen in perl6! therefore... )
10:29
10:34 bbkr joined, bbkr__ left 10:35 beastd joined 10:39 JimmyZ_ joined 10:44 uncleyear left 10:45 uncleyear joined 10:46 rurban joined 10:52 uncleyear left, uncleyear joined 11:00 rurban left, rurban joined 11:02 rurban left 11:05 AlexDaniel joined 11:06 uncleyear left 11:07 uncleyear joined 11:09 Sqirrel left
cognominal github.com/vbarbaresi/MetroGit :) 11:18
11:19 Ven left 11:20 Sqirrel joined, Ven joined 11:21 diana_olhovik_ joined 11:22 rurban joined 11:24 rurban left 11:27 AndChat|228864 joined 11:31 JimmyZ_ left, BenGoldberg joined 11:32 RabidGravy joined 11:33 uncleyear left, uncleyear joined
smls m: say "a" ~~ /<:Latin_1>/ 11:34
camelia rakudo-moar 2fdef2: OUTPUT«Nil␤»
smls ^^ what is the correct way to say this?
11:36 Emeric joined
smls also, why is there no error or warning for specifying an unknown unicode property? 11:37
11:40 mohij joined 11:44 yqt joined 11:49 virtualsue joined 11:52 uncleyear left, uncleyear joined
smls m: "foo/b ar!".subst(/<[\0..\xff]-[a..zA..Z0..9_.~-]>/, *.ord.fmt('%%%02X'), :g) 11:59
camelia ( no output )
smls m: say "foo/b ar!".subst(/<[\0..\xff]-[a..zA..Z0..9_.~-]>/, *.ord.fmt('%%%02X'), :g)
camelia rakudo-moar 2fdef2: OUTPUT«foo/b ar!␤»
smls hm
m: say "f:o-o/b ar!".subst(/<[\x00..\xff]-[a..zA..Z0..9_.~-]>/, *.ord.fmt("%%%02X"), :g) 12:04
camelia rakudo-moar 2fdef2: OUTPUT«f%3Ao-o%2Fb%20ar%21␤»
smls there.
^^does the same as URI::Encode's uri_encode, but much faster.
dalek kudo/nom: 55fba33 | usev6++ | src/core/Capture.pm:
Avoid some NullPointerExceptions with Match objects

Things like 'Match.new.perl', 'Match.new.list', 'Match.new.elems' or
  'Match.new eqv 42' all gave NullPointerExceptions on JVM.
kudo/nom: 49d44b2 | FROGGS++ | src/core/Capture.pm:
Merge pull request #436 from usev6/npe_jvm_match

Avoid some NullPointerExceptions with Match objects
12:05 FROGGS joined, mohij left 12:08 virtualsue left 12:10 uncleyear left 12:11 uncleyear joined
smls Btw, having the three different routines sprintf() .sprintf .fmt for the same functionality (just with different calling conventions) is confusing. 12:11
I'd vote for removing .sprintf and just keeping: 12:12
.fmt -- recommended way to format strings in Perl6
sprintf() -- alternative to make the C/Perl nostalgia crowd happy
Can always go .&sprintf in the unlikely case that you actually need that calling convention 12:13
Opinions?
12:25 Emeric left, flaviusb left 12:29 telex left 12:30 uncleyear left, telex joined, uncleyear joined 12:35 smls left 12:36 Ven left
FROGGS o/ 12:36
12:36 uncleyear left 12:40 _mg_ joined 12:41 _mg_ left 12:44 BenGoldberg left 12:49 Ven joined 12:51 Ven left 12:55 rindolf joined 12:56 mr-foobar joined 12:58 Ven joined 13:00 yqt left 13:03 llfourn joined 13:08 llfourn left 13:09 tinyblak left 13:11 diana_olhovik_ left 13:13 bjz left 13:17 Ven left 13:28 laouji left 13:33 kaare__ left
timotimo o/ 13:40
13:53 Sqirrel left, smls joined 13:56 Sqirrel joined 13:59 nys joined 14:03 Ven joined
smls why does HTTP::UserAgent's .get sometimes hang for many seconds at 100% CPU before finishing the request? 14:03
14:07 Ven left
rjbs Last time I saw something like this, there was some kind of spinning attempting to parse something. 14:08
not in UA, but just in general in p6 somewhere
14:08 tinyblak joined
rjbs but I don't think it's a crazy guess here; something doing too much backtracking trying to decide on a response parse 14:09
14:09 laouji joined 14:10 tinyblak_ joined 14:11 Ven joined
smls it doesn't seem to happen anymore after 'rakudobrew switch moar-nom-master-master' 14:12
rjbs
smls so maybe it's related to the ongoing concurrency fixes
14:13 tinyblak left
smls HTTP::Client, otoh, fails with "You have confused the number c45 with the textual representation "c45";" when calling $response.content :P 14:13
Util smls: sprintf is one of about 78 methods that are marked "is export", which makes a method also into a function. 14:19
Such dual existence supports Perl 5 migration, and programmers who prefer procedural-style coding to OO-style.
So, leaving .sprintf as-is would be more consistent with the rest of the implementation, and be less of a surprise.
Granted, those 77 other methods do not have a shorter-named overlapping cousin.
I would just add to the sprintf docs:
"If you are using the method form of .sprintf, note that .fmt is less to type."
So, -1 to removal, but still listening.
smls except if you consider .fmt to be the method form of sprintf :) 14:20
The problem with .sprintf is that its easy to accidentally use it when .fmt was intended 14:21
whereas it has to be used with pinvocant and argument switched 14:22
14:26 smls left
Util Hmm, I do note that .sprintf is not present in Roast. 14:27
14:30 rindolf left 14:32 mohij joined 14:39 diana_olhovik_ joined 14:41 BenGoldberg joined 14:47 bjz joined 14:57 AndChat|228864 left 14:58 JimmyZ_ joined, JimmyZ_ left, zakharyas joined 15:01 smls joined 15:02 laouji left 15:03 araujo left
smls Util: .sprintf already *is* inconsistent vs how other ($qualifier, @list) signatured subs like sort/map were turned into methods 15:05
"Sorting is an action you can perform on an array" -- Sounds rights.
"Sprintf'ing is an action you can perform on a format" -- Doesn't sound right.
If anything, one might say "I'm sprintf'ing these values *using* a given format".
In other words, *@fields and not $format is the logical invocant when turning sprintf into a method. 15:06
15:06 kaare__ joined
smls Except at that point, you'll find that there are better words to name it, like "format". 15:06
And that's exactly what .fmt is.
I suppose if .sprintf were turned into an alias for .fmt, it would no longer be so confusing 15:07
15:07 kaare__ is now known as kaare_
smls (Sust redundant.) 15:07
*J
15:07 mohij left 15:08 kaare__ joined 15:12 kaare_ left 15:16 breinbaas left 15:19 breinbaas joined
TimToady lizmat: I'd have no problem with Rat preserving the 42 numerator; after all, I'm the one who wrote the paragraph at S02:856 about lazily applying GCD to make adding long columns of fractions fast when two numbers have the same denominator, such as 100 15:27
yoleaux 09:09Z <lizmat> TimToady: should Rat.new(42,0) already fail or not ?
synbot6 Link: design.perl6.org/S02.html#line_856
TimToady so keeping 42/0 in that form is not a problem to me
I think the GCD invariant should be applied at a different point, not after every operation 15:28
smls timotimo: rosettacode.org/wiki/Rosetta_Code/R...ng_the_API 15:29
15:30 dnmfarrell joined
TimToady smls++ 15:31
dnmfarrell hey all, is it possible from within a Grammar token method to access the action classes that the Grammar parse() was called with?
jnthn $*ACTIONS
yoleaux 6 Jun 2015 20:40Z <quester> jnthn: Nevermind, a clean install did fix it. (Although that was a pretty weird error message...) Thank you very much.
6 Jun 2015 23:41Z <TimToady> jnthn: I'm not worried about that particular list-to-remember, because nobody will bother to remember which functions will tell me I'm an idiot right off the bat, and which will let me flail about and figure out I'm an idiot slowly. It's really just another "this can't possible work, and we can tell so at compile time".
dnmfarrell jnthn: thank you :) 15:32
15:37 TimToady left 15:39 TimToady joined
lizmat looking at ~ %query.reverse.map({ "&{.key}={uri-encode .value}" }).join;, I wonder whether we should have a map(Str:D) variant 15:39
we could then write it as:
~ %query.reverse.map("&{.key}={uri-encode .value}").join;
15:40 Emeric joined
jnthn Don't see how that could work; the closures would evaluate in the string too soon 15:40
Emeric Is HTTP::Server::Simple is included in Rakudo Star ? 15:42
How can I use it ? Thanks for your help.
15:44 Sqirrel left
jnthn Emeric: Doens't look like it; guess you'd install it with Panda (the module installer) which is included with Star ("panda install HTTP::Server::Simple" I guess) 15:45
walk &
15:49 Ven left
nwc10 Perl 6 is 6th on Rosetta Code. How apt. 15:50
15:50 Ven joined
nwc10 although 7th an 5th are within striking distance. 15:50
15:50 Sqirrel joined 15:53 Ven left
timotimo smls++ 15:55
15:57 Sqirrel left
Emeric Is Panda included with Star ? (Sorry, I'm a beginner) 15:57
timotimo yes, it is
Util smls++ # for RC 16:01
16:02 Sqirrel joined 16:05 Emeric left 16:06 Begi joined
Begi Sorry, it's me again. I've got a problem : I can't use Panda. (I use Ubuntu on a VM). 16:07
timotimo can you give a bit more information?
ugexe it would be wise to tell us why you can't instead of simply that yuo cant
Begi I try "panda" in the Ubuntu shell, but it doesn't found the command 16:08
ugexe is the appropriate directory in your $PATH 16:09
Begi I asked myself the question 16:10
16:10 spider-mario left
raydiak does "perl6" work? 16:10
ugexe locate bin/panda, then echo $PATH and see if you see it
Begi Yes, "perl6" works.
Panda isn't in my PATH 16:12
lizmat m: say (3.5/0).perl # just testing 16:13
camelia rakudo-moar 49d44b: OUTPUT«<1/0>␤»
raydiak Begi: did you find where it is, though?
ugexe after you run panda's bootstrap.pl it shoudl tell you the location to add to PATH 16:14
Begi Yes, -> home/panda/bin/panda
16:14 aristotle joined
aristotle <someone> aristotle: given this Python program 16:15
<someone> import os; sorted(os.listdir('.'), key=lambda f: os.stat(f).st_mtime)
<someone> is there a reasonable way to write that in Perl6?
raydiak I didn't think that was where the star install puts it...
aristotle someone give me an answer for this person? :)
ugexe is your user 'panda'? seems like there might be permissions related problems 16:16
lizmat aristotle: if I read it correctly, it is sorting by modification time?
Begi -> home/user/panda/bin/panda...
aristotle lizmat: correctly indeed 16:17
Begi I've tried to install only Panda, but it didn't works
lizmat m: say ".".dir.sort(*.modified)
camelia rakudo-moar 49d44b: OUTPUT«Method 'dir' not found for invocant of class 'Str'␤ in block <unit> at /tmp/rneZ8xgwic:1␤␤»
lizmat m: say ".".IO.dir.sort(*.modified)
camelia rakudo-moar 49d44b: OUTPUT«"/home/camelia/p1".IO "/home/camelia/p2".IO "/home/camelia/.bashrc".IO "/home/camelia/.perlbrew".IO "/home/camelia/perl5".IO "/home/camelia/.rcc".IO "/home/camelia/niecza".IO "/home/camelia/.local".IO "/home/camelia/star-2014.09".IO "/home/camelia/bin".IO …»
lizmat m: say ".".IO.dir.sort(*.modified)>>.modified
camelia rakudo-moar 49d44b: OUTPUT«Instant:1414005049 Instant:1414005049 Instant:1414007181 Instant:1414008168 Instant:1414008248 Instant:1414008410 Instant:1414008485 Instant:1414008526 Instant:1414011737 Instant:1414054040 Instant:1415465338 Instant:1415466301 Instant:1417651855 Instant:1…»
ugexe PATH=~/panda/bin:$PATH ? 16:18
flussence m: say dir('.').sort(*.modified)
camelia rakudo-moar 49d44b: OUTPUT«"/home/camelia/p1".IO "/home/camelia/p2".IO "/home/camelia/.bashrc".IO "/home/camelia/.perlbrew".IO "/home/camelia/perl5".IO "/home/camelia/.rcc".IO "/home/camelia/niecza".IO "/home/camelia/.local".IO "/home/camelia/star-2014.09".IO "/home/camelia/bin".IO …»
aristotle flussence: nice
lizmat aristotle: does that answer the question?
aristotle I think so :)
flussence (I tried that line in the REPL and got a segfault... worked fine with -e though :/) 16:19
raydiak was trying the same thing when he got an error from trying to stat a broken symlink
16:20 skids joined
Begi ugexe : it doesn't work... 16:21
16:21 smls_ joined
smls_ Did something change in that area? 16:21
flussence > dir('.').sort␤Cannot call infix:<cmp>(Mu, Mu); none of these signatures match:␤[...]␤> dir('.').sort␤Segmentation fault␤
dalek kudo/nom: 442a567 | lizmat++ | src/core/Rat (2 files):
Preserve numerator if denominator is 0
lizmat breaks a symlink and tries to reproduce 16:22
smls_ sorry, IRC ate some of my messages. again:
rosettacode.org/wiki/Constrained_ge...ity#Perl_6 fails with "Method 'perl' not found for invocant of class 'T'"
It says "Works with: Rakudo version 2010.09.17"
Did something change in that area?
ugexe Begi: if you add the correct path to PATH it will work
alternatively you can just run the /full/file/path/panda if you dont wish to figure out the problem with your systems PATH 16:23
raydiak lizmat: I think it's doing what's expected, just the error is a bit surprising "failed to find file" then you ls and the file it names is right there :) lucky I had ls colors on, the red is what tipped me off
dalek ast: 5486205 | lizmat++ | S03-operators/arith.t:
Adapt tests to numerator preservation if / 0
16:24
16:24 smls left
lizmat raydiak: on what OS are you? 16:24
ugexe Begi: also you can install perl6 using 'rakudobrew' which will also install panda for you in another step. it adds the appropriate PATH entries for you 16:25
flussence «perl6 -e 'say dir(q{.}).sort xx 2'» reliably segfaults on my 32-bit laptop, everything else I have is 64-bit and runs fine. I'll install gdb but... it'll take a while to do that.
lizmat brrt++ # brrt-to-the-future.blogspot.com/201...dying.html 16:26
raydiak lizmat: 64-bit linux
16:27 amurf joined
raydiak lizmat: and rakudo from Wednesday 16:27
dnmfarrell I've found some weird behavior with panda If I do "panda install Pod::Perl5" everything works. But if I clone the Pod::Perl5 repo, and do "panda install ./". the install appears to work, but Pod::Perl5 cannot see Pod::Perl5::Grammar anymore and doesn't work. Can anyone replicate? github.com/dnmfarrell/Pod-Perl5 I'm using Rakudobrew 16:28
Begi ugexe : I'm installing rakudobrew. Thanks for the nice idea. I hope it will work. 16:31
16:32 amurf left 16:33 Peter_R joined
lizmat m: say 42/0 16:35
camelia rakudo-moar 49d44b: OUTPUT«Attempt to divide 1 by zero using div␤ in block <unit> at /tmp/PrAztACfni:1␤␤»
lizmat hmmm... camelia stuck again?
ugexe Begi: if you pastebin the output of 'echo $PATH' and 'locate bin/panda' i might be able to figure out the problem 16:36
ab5tract moritz: I submitted a PR for a bug I ran into with p6doc-index 16:37
though the circumstances are strange... I don't know how nonexistent directories showed up in @*INC 16:38
16:39 labster joined
ab5tract it could be that such a thing should be checked and dealt with on a lower level 16:39
lizmat ab5tract: originally, non-existing dirs did not make it to @*INC 16:40
but that created issues with installing on a new installation
ab5tract I see $home ~ ".perl6/2015.03-369-ga94d687" directories in @*INC
lizmat so FROGGS made them appear again 16:41
is that the version of rakudo you're working with?
ab5tract I don't think so
let me rebuild again
lizmat hmmm...
ab5tract I am doing standard rakudobrew at the moment 16:42
the only thing strange about my setup is that I run fish shell
lizmat m: say 42/0
camelia rakudo-moar 442a56: OUTPUT«Attempt to divide 42 by zero using div␤ in block <unit> at /tmp/Xp2moHFq16:1␤␤»
lizmat woot
16:42 gfldex left
BenGoldberg m: say <42/0> 16:42
camelia rakudo-moar 442a56: OUTPUT«Attempt to divide 42 by zero using div␤ in block <unit> at /tmp/7CWibzdKWC:1␤␤»
ab5tract m: say Rat.new(42,0) 16:43
camelia rakudo-moar 442a56: OUTPUT«Attempt to divide 42 by zero using div␤ in block <unit> at /tmp/qPYEK4fpi6:1␤␤»
lizmat m: 3.5/0 # sigh, confusing, but not sure what to do about it
camelia ( no output )
lizmat m: say 3.5/0 # sigh, confusing, but not sure what to do about it
camelia rakudo-moar 442a56: OUTPUT«Attempt to divide 7 by zero using div␤ in block <unit> at /tmp/kOpRpzVCDW:1␤␤»
BenGoldberg m: 3.5e0 / 0e0
camelia rakudo-moar 442a56: OUTPUT«Unhandled exception: Attempt to divide 3.5 by zero using /␤ at <unknown>:1 (/home/camelia/rakudo-inst-1/share/perl6/runtime/CORE.setting.moarvm:throw:4294967295)␤ from src/gen/m-CORE.setting:16783 (/home/camelia/rakudo-inst-1/share/perl6/runtime/CO…»
Util m: .say for dir(".").sort(- *.modified)>>.Str
camelia rakudo-moar 442a56: OUTPUT«evalbot.log␤rakudo1␤rakudo-inst-1␤rakudo-inst␤std␤rakudo2␤rakudo-inst-2␤evalbot␤Perlito␤.bash_history␤tail␤.perl6␤foobar␤star␤rakudo-star-2015.03␤.lesshst␤.cpanm␤rakudo-star-2015.03.tar.gz␤.viminfo␤rakudo-star-2015.02…»
lizmat Util: why not .Str.say for ... 16:44
and lose the >>.Str at the end?
also, the >>.Str may lose the order ?
Util lizmat: playing around. Also reversed the sort, which was not requested.
lizmat m: say (^10)>>.Str 16:45
camelia rakudo-moar 442a56: OUTPUT«0 1 2 3 4 5 6 7 8 9␤»
lizmat m: say (^10).list>>.Str
camelia rakudo-moar 442a56: OUTPUT«0 1 2 3 4 5 6 7 8 9␤»
raydiak lizmat: I thought » would process in any order but preserve the order of the resulting list
Util lizmat: the >>. will not lose the order. It might executed the .Str method out-of-order, but the list will be restored to original order before being passed to for().
lizmat yeah, you're right
m: (^10).list>>.say 16:46
camelia rakudo-moar 442a56: OUTPUT«9␤7␤5␤3␤1␤8␤6␤4␤2␤0␤»
raydiak yeah that's the one I had to stop writing :)
ab5tract lizmat: upgrading version changes the directories
16:47 jack_rabbit joined
lizmat yeah, I'm not sure what the idea is about that just yet :-) 16:47
Util lizmat: also, I have ».method in my fingers from my current writing. Knee-jerk coding; non-optimal.
lizmat I'm all for having a version named dir with precomps in an installation dir
but having a version named installation dir, I'm not too sure about 16:48
ab5tract it would be shame to end up with a perma-pattern of: for @*INC -> $inc { next unless $inc.e; ... }
BenGoldberg m: "japh".comb>>.print; 16:49
camelia rakudo-moar 442a56: OUTPUT«hapj»
lizmat ab5tract: it's all a bit in flux still atm
BenGoldberg m: "japh".comb>>{ .print };
camelia rakudo-moar 442a56: OUTPUT«Use of uninitialized value <element> of type Any in string context in block <unit> at /tmp/OHcZ3_6PvB:1␤»
lizmat it'll get fixed before Christmas
ab5tract yup, I get that
Util: thanks for confirming that about >>. In reading about hyper-operators, much is made about the out-of-order-ness. 16:50
Enough that I have to remind myself that the returned order of the operation will remain the same.
16:50 dnmfarrell left
Util If we could introspect a method for side-effects, then we could warn on >>.say 16:51
hoelzro o/ #perl6 16:53
raydiak and we wouldn't need to write things by hand like "is pure" :)
\o hoelzro
BenGoldberg . o O (Monads) 16:57
lizmat sightseeing& 16:59
ab5tract o/ hoelzro 17:01
17:01 domidumont left 17:02 domidumont joined 17:03 jack_rabbit left
BenGoldberg m: my @x = comb 'Just Another Perl/Bidi Hacker,'; print(chr(8237) ~ @x.shift ~ chr(8238) ~ @x.pop) while @x; # /me ponders writing this using the >> operator 17:09
camelia rakudo-moar 442a56: OUTPUT«5===SORRY!5=== Error while compiling /tmp/KzoHUhivC9␤Calling comb(str) will never work with proto signature (Any, Any, Any $?)␤at /tmp/KzoHUhivC9:1␤------> 3my @x = 7⏏5comb 'Just Another Perl/Bidi Hacker,'; p␤»
BenGoldberg m: my @x = 'Just Another Perl/Bidi Hacker,'.comb; print(chr(8237) ~ @x.shift ~ chr(8238) ~ @x.pop) while @x; # /me ponders writing this using the >> operator
camelia rakudo-moar 442a56: OUTPUT«‭J‮,‭u‮r‭s‮e‭t‮k‭ ‮c‭A‮a‭n‮H‭o‮ ‭t‮i‭h‮d‭e‮i‭r‮B‭ ‮/‭P‮l‭e‮r»
skids Hrm. RT failed to log a ticket from me. In case anyone can/wants to diagnose, SMTP id [email@hidden.address] Maybe it was angry that it had 「」 characters in it or something. 17:14
17:17 aristotle left
skids Oh it's an SMTP delivery problem NM. 17:18
17:22 jack_rabbit joined 17:27 FROGGS left 17:28 Ven joined 17:29 coffee` left, FROGGS joined 17:30 Ven left 17:35 labster left 17:37 jack_rabbit left 17:39 Ven joined 17:41 coffee` joined, Ven left 17:42 [Tux] left
ugexe m: sub bar is rw { Proxy.new: FETCH => { state $fetch++; }, STORE => method ($a) { state $store++; }; }; say bar 17:42
camelia rakudo-moar 442a56: OUTPUT«9␤»
17:43 Begi left
ugexe what am i overlooking... i thought that would be 1, but FETCH is getting called 9 times 17:43
raydiak probably from getting shuffled around in the rakudo internals 17:45
17:47 tinyblak_ left
ugexe ah ok 17:47
17:52 labster joined 17:53 [Tux] joined 17:55 gfldex joined 17:57 gagalicious left 18:04 gagalicious joined
dalek p/openpipe3: 59b2b38 | FROGGS++ | / (2 files):
map op syncpipe and adjusts tests for latest openpipe
18:06
p/openpipe3: 03f9a2c | FROGGS++ | t/nqp/ (2 files):
update tests for nqp::spawn and nqp::shell
kudo/openpipe3: 8866154 | FROGGS++ | src/core/ (2 files):
follow recent nqp::openpipe changes
18:07
kudo/openpipe3: 2161b14 | FROGGS++ | src/core/control.pm:
adjust use of nqp::spawn and nqp::shell ops
FROGGS hoelzro: now shell and spawn can work like openpipe
hoelzro: did you manage to create a deadlock? 18:08
18:16 virtualsue joined 18:17 amurf joined, tinyblak joined 18:21 amurf left 18:31 llfourn joined 18:33 labster left 18:35 colomon left, llfourn left 18:37 colomon joined 18:38 colomon left 18:40 colomon joined 18:41 colomon left 18:42 mohij joined
FROGGS starts to bisect RT #125345, which is reproducable in nqp too 18:44
18:46 coffee` left, coffee` joined 18:48 colomon joined 18:56 yqt joined 18:57 spider-mario joined 18:59 tinyblak left
FROGGS TimToady: github.com/perl6/nqp/commit/ab80bb3 introduced RT #125345 19:01
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=125345
19:01 yqt left 19:07 yqt joined
hoelzro FROGGS: I did not; I forgot that writing on MoarVM uses libuv, so it's really scheduling a write to happen rather than blocking on a pipe write 19:13
FROGGS ahh 19:14
hoelzro so that's good =)
FROGGS I hope so :o)
19:14 smls_ left 19:15 tinyblak joined 19:16 uncleyear joined
hoelzro I'm looking through old branches of mine, and I'm looking at one where !!! and co. throw an X::StubCode instead of an X::Adhoc exception. I'm trying to build a QAST to perform the throw, but the compiler can't find X::StubCode. Is there something extra I need to do for my new exception type to be visible to World.nqp? 19:20
19:20 domidumont left
FROGGS can you point to the code? 19:22
jnthn hoelzro: When does it fail to find it? 19:23
hoelzro jnthn: when compiling src/gen/m-CORE.setting
jnthn hoelzro: Ah, and the setting stubs stuff...
and uh...you...I guess need to stub the type but...hmm :) 19:24
hoelzro oh, is that why?
I didn't realize the setting stubbed things
jnthn Plenty.
dalek kudo/stub-exception: 7cdad9d | hoelzro++ | src/ (2 files):
StubCode work in progress
hoelzro FROGGS: if you're curious, I just pushed my little bit of work into that branch 19:25
jnthn: =(
jnthn The usual solution to these issues is to stub the type in question early enough but, uh... :)
hoelzro I guess I could have my impl look up X::StubCode when the stub is actually run, but I don't know how I'd go about doing that
jnthn You could also do it in a try, and if you fail just fall back to what it's doing now 19:26
(And leave a comment saying why you've gotta do that)
flussence m: try { my $x = 0; for ^5000 { [+] (1 X+< 10); $x++ }; CATCH { say $x } } 19:27
camelia ( no output )
flussence that line... dies at $x=133 here
jnthn flussence: That's RT'd already; planning to look into it tomorrow 19:28
hoelzro hmm...I can give it a...
flussence oh, okay
hoelzro <sunglasses>try</sunglasses>
jnthn :D
flussence: Well, provided it's the bug I think it is, anyways 19:29
flussence it ends up erroring with a "Cannot call infix:<+>(Mu); none of these signatures match:"
masak hoelzro: (•_•) / ( •_•)>⌐■-■ / (⌐■_■)
hoelzro =) 19:30
flussence there's definitely something wonky on 32-bit, I've been getting all kinds of bizarre bugs on it 19:33
19:33 rindolf joined
hoelzro jnthn++ # ideas 19:34
raydiak m: say (:a<1>:b<2>).hash 19:39
camelia rakudo-moar 442a56: OUTPUT«a => 1, b => 2␤»
raydiak m: say %(:a<1>:b<2>)
camelia rakudo-moar 442a56: OUTPUT«a => 1␤»
masak why are there double parens in `((@x,@y))` in S09:414 ? 19:40
synbot6 Link: design.perl6.org/S09.html#line_414
jnthn Beats me
Those two are wrong in using method rather than subcall form also 19:41
masak oh, right
jnthn Though that's just bitrot 19:42
I found various oddities while taking a glance over S09 recently :)
jnthn is starting to ponder how various bits of it will be implemented
And which bits we'll push off to post-6.0
masak \o/
m: say "finally".uc, "!"
camelia rakudo-moar 442a56: OUTPUT«FINALLY!␤»
vendethiel YAPC::NA added the youtube streaming thingies 19:43
raydiak m: say (my %h).list.perl
camelia rakudo-moar 442a56: OUTPUT«()␤»
19:43 bin_005 joined
raydiak m: say (my %h{Any}).list.perl 19:43
camelia rakudo-moar 442a56: OUTPUT«Nil␤»
masak raydiak: I don't see why that latter one should be Nil when the former isn't. 19:44
jnthn Me either
raydiak nor me
masak even moreso since ISTR Nil was decoupled from meaning "undefined empty list" recently.
19:44 itz left
masak raydiak: please rakudobug-submit, kthx. 19:45
'night, #perl6
raydiak good night masak
19:45 itz joined
raydiak m: say (:a(1):b(2)).hash; say %(:a(1):b(2)); say %(:a(1),:b(2)) # this was the more surprising one to me 19:52
camelia rakudo-moar 442a56: OUTPUT«a => 1, b => 2␤a => 1␤a => 1, b => 2␤»
FROGGS jnthn: if you spot stuff in roast that might be post-6.0, you can mark it as '#?v6+ skip ...' 19:53
jnthn FROGGS: oooh, good to know :)
ab5tract I've been digging into Whatever a bit, hoping to write something that demystifies it a bit 19:58
I'm curious as to what it's potential uses are when assigned to a scalar
m: my $f = $e ~~ *; $f(*).say 19:59
camelia rakudo-moar 442a56: OUTPUT«5===SORRY!5=== Error while compiling /tmp/NJzZqUdBaJ␤Variable '$e' is not declared␤at /tmp/NJzZqUdBaJ:1␤------> 3my $f = 7⏏5$e ~~ *; $f(*).say␤»
ab5tract m: my $e = *; my $f = $e ~~ *; $f(*).say 20:00
camelia rakudo-moar 442a56: OUTPUT«True␤»
ab5tract other than that I haven't found much to do with it :)
jnthn my $limit = get-limit() // *; return 1..$limit; # when you want to talk about it just as a normal value 20:01
Uh, that badly explains it
ab5tract jnthn: well, it does shed some light: it comes in handy precisely in the exception cases where Whatever does not curry to WhateverCode 20:02
jnthn I meant more like, sometimes you may want to use some defined value or just say "whatever", and * being a normal value you can put in a variable lets that happen.
ab5tract (or that was my instant-takeaway from what you said)
jnthn yeah, the code example was fine, I mis-explained it though :)
ab5tract ah, yeah your comment was a bit confusing :) 20:03
the current doc.git explanation explains it just as "The currying is purely semantic". 20:04
I take this to mean something like: "meaning you will get no runtime currying of stored C<Whatever>-stars into C<WhateverCode>" 20:05
GAR. Above I meant: "The currying is purely _syntactic" 20:06
jnthn I was gonna say, syntactic would be clearer :)
But yes, it's a compiler transform.
I think way, way back in Perl 6 history we may have tried it as a runtime one. 20:07
I don't think it ended too well for various reasons...
:)
nine Good evening #perl6 20:10
yoleaux 08:57Z <lizmat> nine: it appears camelia building needs to be kickstarted again
09:30Z <moritz> nine: we don't seem to have enough RAM on the camelia server to rebuild rakudo-jvm; any chance to get a bigger slice?
nine .tell moritz Odd. I thought I'd given camelia 4 GiB, but it saw only about 1 GiB. I explicitely virsh setmem 4G'd it now and free -m shows the memory 20:11
yoleaux nine: I'll pass your message to moritz.
ab5tract jnthn: the fact that it is compiler-level inspires confidence. 20:12
It feels very magical when reading it in examples, but everyone (or so) can understand a compiler transform 20:13
jnthn ab5tract: Yes, I think the reasons it became one were language design sanity as well as implementation sanity :) 20:20
20:21 bin_005 left, darutoko left
japhb jnthn: re: Evject, as far as I can tell you didn't code anything for actually doing a query (all the code and the slides discuss the command processing side). There are a lot of places to put in a way to run queries against current object state, but where is conventional (assuming you're just doing event-sourced CQS, and not full CQRS with a reporting-optimized DB) 20:25
yoleaux 07:07Z <nine> japhb: moritz would have had the power to fix it. I guess it was more a problem of not knowing how I intended the setup to work.
japhb nine: Ah, but all fixed now, excellent. 20:26
nine: Is that knowledge now distributed?
jnthn: I meant, where is the conventional place to tap in and run queries against the current object state? Do you return the object from Domain.process? Do you add a method to Domain to fetch the current version of a particular Aggregate? 20:27
dalek c: 1a04ad2 | paultcochrane++ | / (2 files):
Document Str.substr-eq()
20:30
jnthn japhb: These days I tend to take a hybrid CQS/CQRS approach: for queries that only involve the state of one aggregate, I add something to the dispatcher (Domain in our case) where I give the aggregate ID and a lambda; it then loads the current version of the aggregate and invokes the lambda with it. 20:31
20:31 [Sno] joined
jnthn japhb: For many-aggregate queries (or other cases where it makes sense) I subscribe to the events and build read models 20:32
japhb jnthn: Oh, that's a nice approach ... it mirrors the way process works
jnthn japhb: One thing I've noticed is that when you really nail your aggregate boundaries, they tend to map to the places you need immediate consistency.
japhb Where do tap the event stream? Is this something you already prepared for in Evject, or is this where you would set up a Supply feeding Domain.process, and tappable elsewhere? 20:33
jnthn japhb: Which makes applying a more eventual approach to the read models less scary. :)
japhb jnthn: Yeah, the immediate consistency v. aggregate boundaries comment definitely makes sense
jnthn japhb: I didn't set it up in Evject, but I've generally gone with a supply per event type. 20:34
Then you can write corellations of certain kinds of event
japhb That all makes me wonder, how do you treat several events as a transaction in this pattern? Meaning, let's say one command resulted in attempting several events, but they all have to verify or the whole thing should roll back and throw. How do you manage that? 20:35
jnthn: A supply *per event type*? Wow, that could result in a lot of supplies for complex business rules/aggregates.
20:36 labster joined
jnthn The "all or nothing" is something punted to the event store 20:36
japhb (My transaction question is more general than I phrased it ... I was wondering about changes to multiple aggregates, that may need to command each other based on events ....) 20:37
20:37 bin_005 joined
jnthn I'm not sure if Evject was too simplistic to do this, but I typically set it up so a given command can lead to multiple events 20:37
japhb Hmmmm. So you basically mark the event stream in the event store as being at the end of a transaction, and you never re-run the events if you have a partial stream? 20:38
jnthn And you and that batch of events for all-or-nothing persistence to the event store.
Well, you send your "how many events did we load" count along too
japhb OK, gotcha.
jnthn And then deciding whether to persist the new ones or report a concurrency conflict is just "is the current count events in the aggregates stream equal to the number we loaded" 20:39
That's the optimistic concurrency aspect of it.
japhb nodnod, that much I could see. :-)
jnthn Of course, since all is pure, you're free to automatically retry. :)
In which case you'll either be successful or get a domain exception 'cus the state changed and the command really is not allowed any more 20:40
japhb The annoying thing about this is that a lot of the online references I found for CQS, CQRS, event sourcing, etc. happily described all the easy cases, and glossed over the stuff you need to do something non-trivial.
nine .tell moritz Btw. I added the VM's network (192.168.0.0/16) to bind's allowed networks in /etc/named.conf
yoleaux nine: I'll pass your message to moritz.
japhb I found myself wanting you to continue that objects intersect concurrency talk for another section or two. :-)
nine japhb: it is now ^^^
japhb nine: :-)
jnthn Well, another thing they often don't point out is that find aggregate boundaries is really tricky. 20:41
*finding
japhb Yeah, I could see that too, even with the toy I was building.
jnthn otoh, so is finding (good) object boundaries
The general answer for "I want a multi-aggregate thing" is some kind of process manager, though 20:43
(A state machine that reacts to events and perhaps issues commands)
20:43 brrt joined
japhb Yeah, that's exactly the kind of thing I'm going to need, I think 20:43
The other thing I'm finding is that this pattern feels rather boilerplatey. (Although OMG is the Perl 6 variant cleaner than C# and Java!) 20:44
I guess it's another application of the complexity waterbed 20:45
jnthn Yeah, there's a bit of wiring to don in the C# version
20:45 labster_ joined
jnthn Though tbh if I wasn't trying to make the thing look comfortable for 99% of C# developers, I'd use "dynamic", do a little meta-programming, and be gone with it. :) 20:46
japhb jnthn: PLEASE DO THAT.
:-)
jnthn But .net folks are often so damn addicted to their refactoring tools that can't see through dynamic... :S
japhb That sounds like a GREAT talk
RabidGravy what does "Cannot invoke this object (REPR: Null, cs = 0)" in the context of compiling a module mean? 20:47
japhb Sadly, I know the type. There's a number of effort-saving things we're not allowed to use at $dayjob because the massive refactoring systems would get dispepsia
20:47 labster left, labster_ is now known as labster
brrt never ever uses refactoring tools 20:48
jnthn RabidGravy: "Us compiler writers screwed up"
RabidGravy :)
jnthn RabidGravy: If you have a succinct example, please file it
skids m: my @b; @b.defined.say;
camelia rakudo-moar 442a56: OUTPUT«True␤»
RabidGravy It's the Template6 module the modules list 20:49
hoelzro how does one pass named parameters to methods invoked via :op('callmethod')?
RabidGravy seems to have been doing it since 2015.03
jnthn hoelzro: :named('foo') 20:50
RabidGravy e,g testers.perl6.org/reports/49542.html
hoelzro jnthn: ah, thanks
jnthn hoelzro: On the QAST node corresponding ot the arg
*to the
moritz . 20:51
yoleaux 20:11Z <nine> moritz: Odd. I thought I'd given camelia 4 GiB, but it saw only about 1 GiB. I explicitely virsh setmem 4G'd it now and free -m shows the memory
20:40Z <nine> moritz: Btw. I added the VM's network (192.168.0.0/16) to bind's allowed networks in /etc/named.conf
dalek albot: 2267d41 | moritz++ | build-scripts/rebuild-rakudo.pl:
Revert "Disable r-j build for now"

This reverts commit f1bdc43ca435c05271a1dc30a1e3e95d0fcdf119.
  nine++ bumped the memory for the VM.
20:52
brrt any reasons why S32-num/rat.rakudo.moar would be failing 20:53
20:54 simon joined 20:55 mr-foobar left
moritz brrt: iirc lizmat++ changed somethiing in the way division by zero is handled 20:56
and so likely touched some Rat code
brrt oh, ok, never mind then :-) just never seen it complain before
re: the CQRS discussion just now 20:57
would vector clocks fit in?
moritz there was a CQRS discussion?
I should backlog :-)
20:58 mohij left, espadrine_ left
japhb moritz: From about 35 minutes ago. 20:59
moritz japhb: yes, found it. Pretty dense stuff :-) 21:01
japhb moritz: Here I thought I was asking newbie questions ... that makes me feel a little better. :-) 21:02
moritz japhb: oh, I'm a total CQRS newb; I've heard about it, and pondered it a bit, but never actually tried to implement it 21:03
the whole topic fascinates me 21:04
japhb I had thought about it in the past, but never had a problem that looked like it would be a good fit and was proving difficult to manage using my existing toolbox. So I figured, no time like the present to give it a try. And then I found implementation details online to be ... lacking. 21:05
And very C#/Java specific.
moritz but it also kinda scares me, because "your data should be in an RDBMS and easily queryable" still feels like a pretty strong axiom to me
21:05 kaare__ left, diana_olhovik_ left
moritz mostly because at $dayjob, I regularly get the task to create some new reports (sometimes one-off, sometimes regular) that nobody though of before, and I'm very happy to be able to join 5+ tables in SQL and get both decent performance and the data I want 21:06
japhb Well, a modern RDBMS uses an update journal and then separate read-optimized tables. This just exposes that to a higher level in the app stack.
moritz and ACID
japhb: I know; and I'm not too keen on that shift, because the RDBMS folks already solved that problem for me 21:07
and took care of concurrency and transactional question that I don't have to ponder now, thanks to them :-)
japhb The stuff I found online has a domain model that is driven by the persisted event journal, and the events also published to (often denormalized) relational tables for fast queries.
brrt moritz: but at the cost of a lot of flexibility 21:08
japhb True, but sometimes re-examining abstractions "given what we know now" can be a win.
brrt and the reinvention of the same thing at level higher in the stack
japhb Still, I don't have a working system yet; I'll have to see how this works out when I push at it a bit more.
21:09 simon left
jnthn "don't have to care about the transactional question" is a little over-simplistic too, 'cus the defualt isolation level means your ACID is kinda AC-Iish-D :) 21:09
(Depending on database server configuration, of course.) 21:10
moritz well, as a scientist, event souring makes lots of sense; it's the "record what you measured" principle taken to the software world
japhb moritz: nice way to put it. :-)
21:10 bin_005_z joined
moritz storing only derivative data is a deadly sin in science 21:10
jnthn In some problem domains, you legally need the audit trail also. 21:11
21:11 bin_005 left
moritz aye; and event souring means elevating the audit trail to be your primary data source 21:11
brrt i think the whole cqrs name is a 'memeifcation' reaction
the notion that an idea only spreads if you can put it on a sticker
jnthn Well, and when you unpack it there's actually several ideas.
brrt yes, certainly 21:12
21:12 Doink joined
brrt but my point is; in many cases we can think of, these principles are obvious 21:12
moritz right; I'm not sure I've bought all of these ideas; maybe I should start with a few of them :-)
brrt however, we *have* to name then, put a label on them, give conferences on them
jnthn "Which entity object does this query that involves both entities go on?" "Why put it on either, just shove it on some separate query class." "Ohhhh, that's simpler!"
21:12 Doink is now known as abeoma
brrt because otherwise a great sea of CRUD washes them out 21:13
jnthn CQRS has been taken to mean a load of things, but at the end of the day it's just about splitting up the code paths involved in reads and writes.
You can then optionally push that all the way down to persistence, and doing so enables you to more easily event source.
dalek kudo/stub-exception: 89b9b2a | hoelzro++ | stub-exception-type.t:
Add a test for stub exception types

This will be moved into roast if this branch is merged; it's simply included in Rakudo for ease of review purposes
kudo/stub-exception: d4bcac0 | hoelzro++ | src/core/Exception.pm:
Add new X::StubCode exception type

Exceptions of this type are used when stubbed-out code (eg. .../???/!!!) are called
kudo/stub-exception: 732e95d | hoelzro++ | src/Perl6/Actions.nqp:
Create X::StubCode exceptions when possible for ... and friends
kudo/stub-exception: 733bbbc | hoelzro++ | src/core/Exception.pm:
Allow overriding of X::StubCode.message
kudo/stub-exception: d8887f1 | hoelzro++ | src/Perl6/Actions.nqp:
Make sure args to !!! use X::StubCode as well
hoelzro if anyone's curious, I created a branch (stub-exception) that implements !!!/???/... as X::StubCode instead of as X::AdHoc
if people (esp. TimToady) think this is a good idea, I can merge it into the nom branch and amend roast/specs
moritz hoelzro: not heaving read the branch, just your short summary, i'm pretty sure it's a good idea 21:17
and now, sleep & 21:18
21:19 abeoma left
hoelzro night moritz 21:19
japhb hoelzro: I agree with you and moritz, that seems like a good idea. Feels like a forgiveness >> permission thing, actually. 21:25
21:25 beastd left
brrt yep, seems sane to me 21:25
imho X::AdHoc should not be overused 21:26
it doesn't provide a lot of information
japhb I agree.
hoelzro sure, I just didn't want to abuse my commit bit to force a spec change! 21:31
flussence hoelzro: the good news is core hardly uses AdHoc at all, there's only a dozen or so mentions of it at all there and most of them are for implementing it, so you needn't worry 21:33
21:33 zakharyas left
pmichaud good afternoon, #perl6 21:34
jnthn hoelzro: I and others have introduced typed exceptions for many things without any pushback, so I think this is fine.
hoelzro ok, I'll merge it then!
jnthn o/ pmichaud
pmichaud o/ jnthn
21:35 telex left
japhb o/ pmichaud 21:35
dalek kudo/nom: 043d436 | hoelzro++ | src/core/Exception.pm:
Add new X::StubCode exception type

Exceptions of this type are used when stubbed-out code (eg. .../???/!!!) are called
kudo/nom: 634145a | hoelzro++ | src/Perl6/Actions.nqp:
Create X::StubCode exceptions when possible for ... and friends
21:36
kudo/nom: c4f62a1 | hoelzro++ | src/core/Exception.pm:
Allow overriding of X::StubCode.message
kudo/nom: 6429464 | hoelzro++ | src/Perl6/Actions.nqp:
Make sure args to !!! use X::StubCode as well
pmichaud o/ japhb
21:36 telex joined
japhb How goes it? Are you at YAPC? Or back home? 21:36
hoelzro o/ pmichaud
pmichaud I'm at YAPC
just arrived about 30 mins ago
labster good afternoon from YAPC::NA from me too
brrt night & 21:37
21:37 brrt left
jnthn pmichaud: I'm guessing it's hot? :) 21:37
japhb waves in the general direction of YAPC
pmichaud actually, it's quite nice here
jnthn Yeah, but my definition of "quite nice" is like 15..25 :) 21:38
In C, not F... :)
pmichaud about 28C here
jnthn Tolerable. :)
japhb jnthn: Here in San Jose it's 90+ F, may break 100 tomorrow in the next couple days.
pmichaud yes, in Plano (where I live) it's currently 33c 21:39
labster pmichaud: you missed the thunderstorm here yesterday
pmichaud labster: I most likely drove through it :)
labster not as impressive as orlando T-storms, though. Windows don't seem to leak in this year's hotel. 21:40
pmichaud there were plenty of storms where I was yesterday :)
dalek ast: 845ed56 | hoelzro++ | S32-exceptions/misc.t:
Update !!!/... exception check to use X::StubCode attrs
21:41
ast: 32b2880 | hoelzro++ | S32-exceptions/misc.t:
Check for X::StubCode in !!! check
pmichaud and given that May was the rainiest ever recorded in Texas.... I've seen my share of rain for the year. But I'd of course be happy to see even more :)
RabidGravy for reference there are 104 places in src/core where a bare "die Str" is used. 21:42
jnthn The forecast had been promising me a thunderstorm here, but seems I won't be getting it. :(
labster .u thunder
yoleaux U+2608 THUNDERSTORM [So] (☈)
U+2633 TRIGRAM FOR THUNDER [So] (☳)
U+26C8 THUNDER CLOUD AND RAIN [So] (⛈)
cognominal what is the way to display syntax highlighted Perl 6 in a html page?
jnthn cognominal: I think doc.perl6.org is using Pygments 21:44
hoelzro is it typical to add new exception types to the specs? if so, where would be best? 21:45
cognominal jnthn++, indeed ... pygments.org/ says "and it highlights even Perl 6"!
jnthn hah
labster hoelzro: S32::Exception 21:46
jnthn hoelzro: Adding them to doc would be more useful, if you're going to add them anywhere ;)
hoelzro why not both? ;)
pmichaud s/specs/design documents/ # :) 21:47
jnthn hoelzro: Both is fine if you have time ;) 21:48
dalek ecs: 0da73b8 | hoelzro++ | S32-setting-library/Exception.pod:
Add StubCode to exceptions
labster and the tests too, they're the new specs, right? 21:49
pmichaud I think I'm very likely to rename the specs repo this week :)
jnthn I thought there already was a roast patch...but yes :)
labster just do it pmichaud. During a talk, if possible. 21:51
21:51 rindolf left
dalek c: 4024901 | hoelzro++ | lib/Type/X/StubCode.pod:
Document X::StubCode
21:51
21:54 vendethiel left, amurf joined
pmichaud I'm heading out to get some supplies... bbiaw 21:55
timotimo oh, yapc::na is right now? 21:58
or: very close to now
21:59 amurf left
jnthn Starting very soon, I guess :) 22:01
sleep &
22:03 labster left
timotimo gnite jnthn 22:03
22:12 RabidGravy left
ab5tract m: my $g = * ~~ *; $g(Int,4); 22:16
camelia rakudo-moar 642946: OUTPUT«Invocant requires a 'Int' instance, but a type object was passed. Did you forget a .new?␤ in block <unit> at /tmp/o_bNNTWbfE:1␤␤»
geekosaur that looks backwards? 22:19
ab5tract m: my $g = * ~~ *; $g(Int,4); $g(Int,4.WHAT).say;
camelia rakudo-moar 642946: OUTPUT«Invocant requires a 'Int' instance, but a type object was passed. Did you forget a .new?␤ in block <unit> at /tmp/4JShCLhHf6:1␤␤»
ab5tract m: my $g = * ~~ *; $g(Int,4.WHAT).say;
camelia rakudo-moar 642946: OUTPUT«True␤»
ab5tract geekosaur: how do you mean? 22:20
geekosaur m: say Int ~~ 4;
camelia rakudo-moar 642946: OUTPUT«Invocant requires a 'Int' instance, but a type object was passed. Did you forget a .new?␤ in block <unit> at /tmp/b_RAtOkrls:1␤␤»
geekosaur m: say 4 ~~ Int; 22:21
camelia rakudo-moar 642946: OUTPUT«True␤»
ab5tract geekosaur: wow! I did not realize that smart-matching worked that way
geekosaur RHS is the invocant (ACCEPTS methood, IIRC)
ab5tract if course, it makes sense
22:23 bin_005_z left 22:25 virtualsue left 22:37 labster joined
pmichaud back 22:44
japhb pmichaud: Is there a place (or a branch) to follow GLR internals progress? 22:55
pmichaud japhb: it's all on paper and in my head at the moment. 23:06
I'll be transferring it to bits while here at yapc
timotimo we have spec tests that want rats over 0 to always become 1 over 0 23:09
flussence m: my Int(Str) @a = < 1 3 6 10 > 23:23
camelia rakudo-moar 642946: OUTPUT«5===SORRY!5=== Error while compiling /tmp/8_Ewpk71p2␤Coercion Int(Str) is insufficiently type-like to qualify a variable␤at /tmp/8_Ewpk71p2:1␤------> 3my Int(Str) @a7⏏5 = < 1 3 6 10 >␤ expecting any of:␤ constraint␤»
flussence that's a confusingly helpful error message
it seems to know exactly what I'm asking for, then says I'm doing it wrong. 23:24
23:24 dayangkun joined
grondilu m: my Int[Str] @a = < 1 3 6 10 > 23:26
camelia rakudo-moar 642946: OUTPUT«===SORRY!===␤Cannot find method 'parameterize'␤»
grondilu is not sure this is supposed to work
oh no of course not. silly me. 23:27
flussence m: my @a of Int(Str) = < 1 3 6 10 > 23:28
camelia rakudo-moar 642946: OUTPUT«Unhandled exception: Type check failed in assignment to '@a'; expected 'Int(Str)' but got 'Str'␤ at <unknown>:1 (/home/camelia/rakudo-inst-2/share/perl6/runtime/CORE.setting.moarvm:throw:4294967295)␤ from src/gen/m-CORE.setting:16647 (/home/camelia…»
grondilu m: my Int(Str) $ = 2 23:30
camelia rakudo-moar 642946: OUTPUT«5===SORRY!5=== Error while compiling /tmp/nKPrfjz7Lo␤Coercion Int(Str) is insufficiently type-like to qualify a variable␤at /tmp/nKPrfjz7Lo:1␤------> 3my Int(Str) $7⏏5 = 2␤ expecting any of:␤ constraint␤»
grondilu m: my Int(Str) $ 23:31
camelia rakudo-moar 642946: OUTPUT«5===SORRY!5=== Error while compiling /tmp/dWFbwyD8rX␤Coercion Int(Str) is insufficiently type-like to qualify a variable␤at /tmp/dWFbwyD8rX:1␤------> 3my Int(Str) $7⏏5<EOL>␤ expecting any of:␤ constraint␤»
raydiak guesses it's trying to say "we intentionally don't allow that" 23:41
gagalicious anyone from US? i'm trying to do a regex matching... but i dunno what it means... 2700 E Pridemore Dr 72744, Lincoln, United States. I know US is the "country". Arkansas is the state, "Benton County" is the county, what is lincoln?
can anyone tell me?
timotimo do you also know that "arkansas" is actually pronounced "arkansaw"? 23:44
ugexe its a city, and the state is missing (which is Arkansas)
i.e. it should say Lincoln, Arkansas
flussence
.oO( could also be a 4-dimensional address, with a 4 year granularity )
23:45
ugexe i dont think zip code 72744 includes any other dimensions 23:46
23:46 labster left
gagalicious timotimo : americans like to confuse people. i did realise that when i tried to pronounce it as arkansauce... so what if i pronounce it as arkansauce. it's the problem of the spelling :D 23:46
So... Arkansas (state), Lincoln (city), Benton County (county)... is that correct? 23:47
state city county
ugexe we dont use county. county exists, but if this is a mailing address its not used 23:48
23:49 [Sno] left
ugexe generally you can populate state and city based on zipcode 23:50
timotimo i used to pronounce "arkansas" like "kansas" with an "ar" in front 23:51
raydiak usually /^<city>, <state> zipcode$/ often with the two spaces between state and zip code, and state is often a 2-letter abbreviation
but mainly you don't pretty much ever put the state before the city 23:52
ugexe then there is washington dc
raydiak never addressed a letter there... 23:53
...maybe I should :)
ugexe address parsing is a torture i wouldnt wish upon anyone
23:54 aborazmeh joined, aborazmeh left, aborazmeh joined
timotimo t.h8.lv/string_to_int.svg 23:55
check out what happens to the second argument there 23:56
it's getting the integer argument, boxes it into an Int object, does "a general numification" on it, which creates a num from it, then it coerces the num to an int
makes me want to cry 23:57
23:58 llfourn joined
flussence yow 23:59