»ö« 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/NtZuB0vGnyStrange 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/AajEFlpxfAVariable '@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:1Final 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('.').sortCannot call infix:<cmp>(Mu, Mu); none of these signatures match:[...]> dir('.').sortSegmentation 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.lograkudo1rakudo-inst-1rakudo-inststdrakudo2rakudo-inst-2evalbotPerlito.bash_historytail.perl6foobarstarrakudo-star-2015.03.lesshst.cpanmrakudo-star-2015.03.tar.gz.viminforakudo-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«9753186420» | ||
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/KzoHUhivC9Calling 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,ursetk cAanHo tihdeirB /Pler» | ||
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 => 2a => 1a => 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/NJzZqUdBaJVariable '$e' is not declaredat /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_Ewpk71p2Coercion Int(Str) is insufficiently type-like to qualify a variableat /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/nKPrfjz7LoCoercion Int(Str) is insufficiently type-like to qualify a variableat /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/dWFbwyD8rXCoercion Int(Str) is insufficiently type-like to qualify a variableat /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 |