»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, or /msg camelia p6: ... | irclog: irc.perl6.org or colabti.org/irclogger/irclogger_logs/perl6 | UTF-8 is our friend! Set by moritz on 22 December 2015. |
|||
brokenchicken | ok | 00:00 | |
BenGoldberg | . o O (03●0) | ||
AlexDaniel | I was in the process of labeling stuff and got distracted… | ||
BenGoldberg | AlexDaniel, That's a green circle, right? | ||
AlexDaniel | BenGoldberg: looks green, yes! | ||
u: ● | |||
unicodable6 | AlexDaniel, U+25CF BLACK CIRCLE [So] (●) | ||
AlexDaniel | wait, but that's black | ||
brokenchicken | Hah, that one looks white on my screen | ||
BenGoldberg | I cheated ;) | 00:01 | |
Irc color codes. | |||
brokenchicken | doh | ||
AlexDaniel | doh… | ||
tricked me | |||
brokenchicken | :) | ||
AlexDaniel: what's this stuff? The # >; Looks like fix for broken highlighting? github.com/perl6/whateverable/blob...le.p6#L135 | |||
AlexDaniel | brokenchicken: yep, damn perl6-mode | 00:02 | |
brokenchicken | Hm. Without it, it's actually not borken in Atom, but *with* it is is :} | ||
AlexDaniel | ha | ||
brokenchicken | It seem to think the comment is part of the quote words. | ||
Now I know how it feels when I tell you patches welcome :P | 00:03 | ||
.oO( except my code is perfectly readable, of course! ) |
|||
00:04
espadrine_ joined
|
|||
AlexDaniel | brokenchicken: you want to add the number of results? This is the line: github.com/perl6/whateverable/blob...le.p6#L151 | 00:04 | |
00:05
espadrine left
|
|||
AlexDaniel | it should return nothing | 00:05 | |
00:05
wamba left
|
|||
AlexDaniel | and instead do this: github.com/perl6/whateverable/blob...e.pm6#L297 | 00:05 | |
brokenchicken | Too hard! | 00:06 | |
brokenchicken goes back to playing video games :) | |||
Oh, now I get what you mean.... | |||
AlexDaniel | because if it returns a huge string it gets gisted automatically, and so you cannot really change the format | 00:07 | |
instead return nothing, and upload manually | |||
brokenchicken | I'd go with returning the thing, but with some meta data indicating what the response should be | 00:08 | |
AlexDaniel | oh, that would be awesome! | ||
brokenchicken | k, will do it either tonight or tomorrow | 00:09 | |
AlexDaniel | then, there's this thing: github.com/perl6/whateverable/blob...le.pm6#L52 | ||
and I dunno… perhaps it is a better idea to mix in some roles instead | |||
brokenchicken | IIRC you can return any object from an event and it'd reach the filter just fine (even if it's not "is Str") | 00:12 | |
00:12
labster joined
|
|||
AlexDaniel | yup, I think I wanted it to act like a Str when needed. But any kind of refactoring will be appreciated :) | 00:14 | |
brokenchicken | ok | ||
00:15
lmmx left
00:22
lmmx joined
00:23
rascipi joined,
espadrine_ left
00:24
rascipi left
00:26
shayan_ left
00:27
lmmx left
00:51
aborazmeh joined,
aborazmeh left,
aborazmeh joined,
mr_ron joined
00:55
shayan_ joined
|
|||
SmokeMachine | how do I write yada (...) on nap? | 00:57 | |
timotimo | depends on what effect you want | ||
... turns into warn "stub code executed" i believe | 00:58 | ||
or maybe die "stub code executed" | |||
SmokeMachine | timotimo: die... | ||
I just die? | |||
is that message anywere? some kind of constant? | |||
timotimo | could be a typed exception | 00:59 | |
m: sub ow { ... }; try ow(); say $!.WHAT | |||
camelia | rakudo-moar 7f9703: OUTPUT«(StubCode)» | ||
timotimo | ah | ||
m: die X::StubCode.new() | |||
camelia | rakudo-moar 7f9703: OUTPUT«Stub code executed in block <unit> at <tmp> line 1» | ||
timotimo | like that | ||
SmokeMachine | StubCode! | ||
thanks! | |||
brokenchicken | SmokeMachine: what's "nap"? | 01:00 | |
SmokeMachine | brokenchicken: nap? where? | ||
01:00
shayan_ left
|
|||
brokenchicken | SmokeMachi+│ how do I write yada (...) on nap? | 01:00 | |
timotimo | supposed to be nqp | ||
SmokeMachine | ah! nqp! | ||
brokenchicken | Ah | ||
SmokeMachine | auto correction, sorry... | 01:01 | |
dugword | m: my $foo; say "hello" if $foo == 0 | ||
camelia | rakudo-moar 7f9703: OUTPUT«Use of uninitialized value of type Any in numeric context in block <unit> at <tmp> line 1hello» | ||
BenGoldberg doesn't understand why any programmer would have autocorrect turned on. | |||
brokenchicken | dugword: undef Numerics are zeros | 01:02 | |
more or less... I recall ranting about this while spotting a ton of bugs with the feature.... | |||
01:02
ufobat left
|
|||
dugword | brokenchicken: I don't know what you mean by that... | 01:02 | |
brokenchicken | umm | 01:03 | |
Never mind. I'll wait for the question, I guess. | |||
dugword | Wait, I get what you mean. | ||
01:04
itcharlie1 left
|
|||
dugword | $foo would be 0, so it is true. The question is, should that warn? | 01:04 | |
SmokeMachine | "git grep StubCode src/Perl6/" only returns code on Action... when writing qast... :( | ||
brokenchicken | m: quietly .say for Int, Num, Rat, Complex | ||
camelia | rakudo-moar 7f9703: OUTPUT«(Int)(Num)(Rat)(Complex)» | ||
dugword | I feel like I am going to run into that situation a lot | ||
01:04
itcharlie1 joined
|
|||
brokenchicken | m: quietly _say +$_ for Int, Num, Rat, Complex | 01:04 | |
camelia | rakudo-moar 7f9703: OUTPUT«5===SORRY!5=== Error while compiling <tmp>Undeclared name: _say used at line 1» | ||
brokenchicken | m: quietly say +$_ for Int, Num, Rat, Complex | ||
camelia | rakudo-moar 7f9703: OUTPUT«0000» | ||
brokenchicken | dugword: um, it *does* warn | ||
"Use of uninitialized value of type Any in numeric context" | |||
dugword | right, should it? | ||
brokenchicken | dugword: you mean should it silently assume it's a zero? | 01:05 | |
SmokeMachine | and it wasnt compiling because I | ||
brokenchicken | Definitely not. I'd go the other way: throw | ||
SmokeMachine | forgot the () on die... | ||
brokenchicken looks for the aforementioned rant | |||
hm... if only I knew what nick said it... | 01:06 | ||
dugword | Yeah, perl 5 quietly assumes it is a zero. Which doesn't mean it should, I just noticed that difference | ||
brokenchicken | dugword: if you write idiomatic perl 5, it warns the same. | 01:07 | |
dugword: here's my rant on the topic: irclog.perlgeek.de/perl6-dev/2016-...i_13767071 | |||
01:07
tardisx left
|
|||
dugword | Oh, so it does. If you have 'use warnings' turned on :) . | 01:07 | |
brokenchicken | Or an exhibit of the bugs with this system, depending on how you wanna look at it :) | ||
01:07
tardisx joined
|
|||
dugword | my apologies, I am up to my eyeballs in legacy code that relies on that behavior. Trying to port over some old perl 5 code | 01:08 | |
brokenchicken | heh :) | ||
dugword | Seemed odd at the time, but thinking it through. Yes, warning makes much more sense. | 01:09 | |
01:14
labster left
01:18
aborazmeh left
01:23
kyan joined
01:33
aborazmeh joined,
aborazmeh left,
aborazmeh joined
|
|||
SmokeMachine | there's no examples os die with an object on nqp code... | 02:00 | |
and nqp::die(X::StubCode.new()) gives me: | 02:01 | ||
www.irccloud.com/pastebin/AE1b2ZF9/ | |||
brokenchicken | SmokeMachine: just die with "Stub code executed" or whatever | 02:06 | |
s: StubCode.new, 'CALL-ME' | |||
SourceBaby | brokenchicken, Something's wrong: ERR: ===SORRY!=== Error while compiling -eUndeclared name: StubCode used at line 6 | ||
brokenchicken | s: X::StubCode.new, 'CALL-ME' | ||
SourceBaby | brokenchicken, Something's wrong: ERR: Type check failed in binding to &code; expected Callable but got Nil (Nil) in sub do-sourcery at /home/zoffix/services/lib/CoreHackers-Sourcery/lib/CoreHackers/Sourcery.pm6 (CoreHackers::Sourcery) line 42 in sub sourcery at /home/zoffix/services/lib/CoreHackers-Sourcery/lib/CoreHackers/Sourcery.pm6 (CoreHackers::Sourcery) line 33 in block <unit> at -e line 6 | ||
brokenchicken | oh right | ||
SmokeMachine: never mind. | |||
02:07
curt_ left
|
|||
brokenchicken | s: &die | 02:09 | |
SourceBaby | brokenchicken, Sauce is at github.com/rakudo/rakudo/blob/7f97...ol.pm#L167 | ||
02:09
Herby_ joined
|
|||
brokenchicken | s: X::AdHoc.new, 'throw' | 02:09 | |
SourceBaby | brokenchicken, Sauce is at github.com/rakudo/rakudo/blob/7f97...ion.pm#L53 | ||
Herby_ | o/ | ||
brokenchicken | SmokeMachine: that's prolly a clue: github.com/rakudo/rakudo/blob/7f97...pm#L53-L64 | 02:10 | |
Herby_ | Evening, everyone | ||
brokenchicken | \o | ||
Herby_ | anyone know of a tutorial/guide on slicing strings in p6? | 02:11 | |
ex: grabbing the first 5 characters, dropping the last character etc... | |||
brokenchicken | m: "12345654321".substr(5).say | 02:12 | |
camelia | rakudo-moar 7f9703: OUTPUT«654321» | ||
brokenchicken | m: "12345654321".substr(5).substr(*-5).say | ||
camelia | rakudo-moar 7f9703: OUTPUT«54321» | ||
brokenchicken | m: "12345654321".substr(5).substr(0, *-5).say | ||
camelia | rakudo-moar 7f9703: OUTPUT«6» | ||
Herby_ | ah, that looks like what I'm looking for :) | ||
m: "Drop the last character".substr(*-1) | 02:13 | ||
camelia | ( no output ) | ||
Herby_ | m: "Drop the last character".substr(*-2).say | 02:14 | |
camelia | rakudo-moar 7f9703: OUTPUT«er» | ||
Herby_ | m: "Drop the last character".substr(*-1).say | ||
camelia | rakudo-moar 7f9703: OUTPUT«r» | ||
Herby_ | :( | ||
brokenchicken | m: "1234567890".comb.kv.grep(*.key %% 2).map(*.value).join.say | ||
camelia | rakudo-moar 7f9703: OUTPUT«No such method 'key' for invocant of type 'Int' in whatevercode at <tmp> line 1 in block <unit> at <tmp> line 1» | ||
brokenchicken | m: "1234567890".comb.pairs.grep(*.key %% 2).map(*.value).join.say | 02:15 | |
camelia | rakudo-moar 7f9703: OUTPUT«13579» | ||
02:15
tardisx left
|
|||
Herby_ | m: "Drop the last character".substr(0,*-1).say | 02:15 | |
camelia | rakudo-moar 7f9703: OUTPUT«Drop the last characte» | ||
Herby_ | there we go | ||
brokenchicken | m: "Drop the last character".chop.say | ||
camelia | rakudo-moar 7f9703: OUTPUT«Drop the last characte» | ||
Herby_ | learn something new every day :) | ||
brokenchicken | m: "Drop the last character".chop(10).say | ||
camelia | rakudo-moar 7f9703: OUTPUT«Drop the last» | ||
02:15
tardisx joined
|
|||
Herby_ | thanks, brokenchicken! | 02:15 | |
brokenchicken | m: "Drop the last character".chop(14).substr(*-1, 'beat').say | 02:16 | |
camelia | rakudo-moar 7f9703: OUTPUT«Earlier failure: Cannot convert string to number: base-10 number must begin with valid digits or '.' in '3⏏5beat' (indicated by ⏏) in block <unit> at <tmp> line 1Final error: Type check failed in assignment to $chars; expected Int bu…» | ||
brokenchicken | m: "Drop the last character".chop(14).substr(*, *-1 'beat').say | ||
camelia | rakudo-moar 7f9703: OUTPUT«5===SORRY!5=== Error while compiling <tmp>Unable to parse expression in argument list; couldn't find final ')' at <tmp>:1------> 3e last character".chop(14).substr(*, *-17⏏5 'beat').say expecting any of: infix i…» | ||
SmokeMachine | brokenchicken: thanks! | ||
Herby_ | m: "remove spaces and drop last character".subst(/\s/,"").chop.say | 02:18 | |
camelia | rakudo-moar 7f9703: OUTPUT«removespaces and drop last characte» | ||
Herby_ | m: "remove spaces and drop last character".subst(/\s/,"", :g).chop.say | ||
camelia | rakudo-moar 7f9703: OUTPUT«removespacesanddroplastcharacte» | ||
Herby_ | perfect | ||
brokenchicken | m: "remove spaces and drop last character".words.chop.say | 02:19 | |
camelia | rakudo-moar 7f9703: OUTPUT«remove spaces and drop last characte» | ||
brokenchicken | :/ | 02:20 | |
ah, right | |||
m: "remove spaces and drop last character".words.join.chop.say | |||
camelia | rakudo-moar 7f9703: OUTPUT«removespacesanddroplastcharacte» | ||
Herby_ | i figured there was a cleaner way to do it | ||
brokenchicken | m: .chop(14).substr-rw(*-1) = 'beat' andthen .say given $ = "Drop the last character" | 02:22 | |
It *does* have writable str? | |||
camelia | rakudo-moar 7f9703: OUTPUT«Cannot modify an immutable Str in block <unit> at <tmp> line 1» | ||
brokenchicken | m: .substr-rw(*-1) = 'beat' andthen .say given $ = "Drop the last character" | 02:23 | |
camelia | rakudo-moar 7f9703: OUTPUT«b» | ||
brokenchicken | I see. | ||
m: .= chop(14) andthen .substr-rw(*-1) = 'beat' andthen .say given $ = "Drop the last character" | |||
camelia | rakudo-moar 7f9703: OUTPUT«5===SORRY!5=== Error while compiling <tmp>Preceding context expects a term, but found infix .= insteadat <tmp>:1------> 3.=7⏏5 chop(14) andthen .substr-rw(*-1) = 'bea» | ||
brokenchicken | m: $_ .= chop(14) andthen .substr-rw(*-1) = 'beat' andthen .say given $ = "Drop the last character" | ||
camelia | rakudo-moar 7f9703: OUTPUT«b» | ||
brokenchicken | m: $_ .= chop(14) andthen .substr-rw(0, *-1) = 'beat' andthen .say given $ = "Drop the last character" | ||
camelia | rakudo-moar 7f9703: OUTPUT«beat » | ||
brokenchicken | -_- | 02:24 | |
Herby_ | brokenchicken: if you're feeling adventurous, I have another question | ||
02:24
tardisx left
|
|||
brokenchicken | m: $_ .= chop(14) andthen .substr-rw(*-1) = $_ ~ 'beat' andthen .say given $ = "Drop the last character" | 02:24 | |
camelia | rakudo-moar 7f9703: OUTPUT«D» | ||
brokenchicken | m: $_ .= chop(14) andthen .substr-rw(0, *-1) = $_ ~ 'beat' andthen .say given $ = "Drop the last character" | 02:25 | |
camelia | rakudo-moar 7f9703: OUTPUT«Drop the» | ||
brokenchicken | gah! | ||
Herby_ | I have a CSV. the only column I'm really concerned with is the final column. an example here: pastebin.com/SvqMp3Zf | ||
i need to create a regex similar to Python's re.findall | |||
brokenchicken | buggable: eco Text::CSV | ||
buggable | brokenchicken, Text::CSV 'Handle CSV data. API based on Text::CSV_XS': github.com/Tux/CSV | ||
Herby_ | yep, I'm using a CSV parser. I'm getting stuck on the regex, to capture tuple I guess | 02:26 | |
02:26
mls joined
|
|||
Herby_ | I'd like to return: (250, W12345, FFP, E7777) from that cell | 02:26 | |
I can't figure out how to use a global match | 02:27 | ||
02:27
labster joined
|
|||
brokenchicken | Herby_: what's "noise"? | 02:27 | |
Herby_ | random characters: the format will always be VOLUME\nNOISE\nUNIT\nPRODUCT\nNOISE\nECODE | 02:28 | |
I want to return (volume, unit, product, ecode) | 02:29 | ||
brokenchicken | m: "Product componentsnoise250noiseW12345FFPnoiseE7777".lines[2,4,5,7].say | ||
camelia | rakudo-moar 7f9703: OUTPUT«(250 W12345 FFP E7777)» | ||
Herby_ | the final kicker is you could have that pattern several times in that cell. so I could return multiple matches of (volume,unit,product,ecode) | 02:30 | |
for that cell | |||
i have the script working in python, using re.findall to grab the group of matches, but i'd like to convert it to p6 | 02:31 | ||
this is the barrier for me | |||
brokenchicken | m: "Product componentsnoise250noiseW12345FFPnoiseE7777".lines.elems.say | ||
camelia | rakudo-moar 7f9703: OUTPUT«8» | ||
02:32
rindolf left
|
|||
brokenchicken | Herby_: so it'd be "Product componentsnoise250noiseW12345FFPnoiseE77772502noiseW123452FFP2noiseE77772" ? | 02:33 | |
Herby_ | yep | ||
brokenchicken | m: "Product componentsnoise250noiseW12345FFPnoiseE77772502noiseW123452FFP2noiseE77772".match(/^ [\N+\n]**2 [ $<thing1>=\N+ \n \N+\n $<thing2>=\N+ \n $<thing3>=\N+ \n \N+\n $<thing4>=\N \n? ]+/).caps.say | 02:37 | |
camelia | rakudo-moar 7f9703: OUTPUT«(thing1 => 「250」 thing2 => 「W12345」 thing3 => 「FFP」 thing4 => 「E」 thing1 => 「7777」 thing2 => 「noise」 thing3 => 「W123452」 thing4 => 「n」)» | ||
brokenchicken | something or other | 02:39 | |
hmmm | 02:41 | ||
Herby_ | i think that might get me on the right track | ||
brokenchicken | m: "Product componentsnoise250noiseW12345FFPnoiseE77772502noiseW123452FFP2noiseE77772".lines[2..*].lines[[2+$++,4+$++,5+$++,7+$++] xx *].say | 02:42 | |
camelia | rakudo-moar 7f9703: OUTPUT«()» | ||
02:43
lmmx joined
|
|||
brokenchicken | m: "Product componentsnoise250noiseW12345FFPnoiseE77772502noiseW123452FFP2noiseE77772".lines[2..*].lines[[2,4,5,7]].say | 02:43 | |
camelia | rakudo-moar 7f9703: OUTPUT«(Nil Nil Nil Nil)» | ||
brokenchicken | All Nil? | ||
dugword | m: my @foo = [[1,2,3]]; dd @foo | 02:44 | |
camelia | rakudo-moar 7f9703: OUTPUT«Array @foo = [1, 2, 3]» | ||
dugword | m: my @foo = [[1,2,3]]; say @foo[0][0] | ||
camelia | rakudo-moar 7f9703: OUTPUT«1» | ||
SmokeMachine | what does nqp::decont()? | 02:45 | |
dugword | m: my @foo = [[1,2,3]]; say @foo[0][1] | ||
camelia | rakudo-moar 7f9703: OUTPUT«Index out of range. Is: 1, should be in 0..0 in block <unit> at <tmp> line 1Actually thrown at: in block <unit> at <tmp> line 1» | ||
dugword | Should that create a nested array? | ||
02:45
ilbot3 left
|
|||
Herby_ | brokenchicken: thanks again for the help with strings, and that match. I think that'll get me headed in the right direction and I can try some things | 02:46 | |
brokenchicken | No, singl arg rule. | ||
m: my @foo = [[1,2,3],]; dd @foo | |||
camelia | rakudo-moar 7f9703: OUTPUT«Array @foo = [[1, 2, 3],]» | ||
02:47
ilbot3 joined
|
|||
brokenchicken | something's weird going on... | 02:48 | |
m: "Product componentsnoise250noiseW12345FFPnoiseE77772502noiseW123452FFP2noiseE77772".lines[2..*].lines[[0,2,3,5] xx *].say | |||
camelia | rakudo-moar 7f9703: OUTPUT«()» | ||
brokenchicken | m: <a b c d e f g h i j k l m n o p q>.[[0,2,3,5] xx *].say | 02:49 | |
Oh, doh. | |||
Tis what rotor's for | |||
camelia | rakudo-moar 7f9703: OUTPUT«(timeout)» | ||
brokenchicken | Herby_: but wait! There's a better way! | 02:50 | |
02:51
curt_ joined
|
|||
brokenchicken | m: "Product componentsnoise250noiseW12345FFPnoiseE77772502noiseW123452FFP2noiseE77772".lines[2..*].rotor(1, 1 => 1, 1, 1 => 1).say | 02:51 | |
camelia | rakudo-moar 7f9703: OUTPUT«((250) (noise) (FFP) (noise) (2502) (noise) (FFP2) (noise))» | ||
brokenchicken | Well, I thought this would work :/ | 02:52 | |
oh right >_< | |||
Herby_ | hmm | ||
brokenchicken | m: "Product componentsnoise250noiseW12345FFPnoiseE77772502noiseW123452FFP2noiseE77772".lines[2..*].rotor(6)»[0,2,3,5].say | ||
camelia | rakudo-moar 7f9703: OUTPUT«((250 W12345 FFP E7777) (2502 W123452 FFP2 E77772))» | ||
brokenchicken | there we go | ||
Herby_ | hmmmmmm | 02:54 | |
gonna hop on the work laptop and give it a shot, thanks! | 02:55 | ||
brokenchicken | feels like there's a bugglet harding.. | 02:56 | |
m: my @a = 'a'..'z'; say @a[[0,2,3,5], [0,2,3,5], [0,2,3,5]][^3] | |||
camelia | rakudo-moar 7f9703: OUTPUT«((a c d f) (a c d f) (a c d f))» | ||
brokenchicken | m: my @a = 'a'..'z'; say @a[lazy [0,2,3,5], [0,2,3,5], [0,2,3,5]][^3] | ||
camelia | rakudo-moar 7f9703: OUTPUT«(e e e)» | ||
brokenchicken | Why does it numify them... | ||
m: my @a = 'a'..'z'; say @a[[0,2,3,5] xx 3][^3] | |||
camelia | rakudo-moar 7f9703: OUTPUT«((a c d f) (a c d f) (a c d f))» | ||
brokenchicken | curiouser and curiouser | 02:57 | |
m: [[0,2,3,5] xx *][^3] | |||
camelia | ( no output ) | ||
brokenchicken | m: [[0,2,3,5] xx *][^3].say | ||
camelia | rakudo-moar 7f9703: OUTPUT«([0 2 3 5] [0 2 3 5] [0 2 3 5])» | ||
SmokeMachine | Why when I do X::StubCode.new() it returns a NPQMu? | ||
brokenchicken | m: my @a = 'a'..'z'; say @a[ [0+$++,2+$++,3+$++,5+$++] xx * ][^3] | 02:58 | |
camelia | rakudo-moar 7f9703: OUTPUT«(timeout)» | ||
brokenchicken | m: say [ [0+$++,2+$++,3+$++,5+$++] xx * ][^3] | ||
camelia | rakudo-moar 7f9703: OUTPUT«([0 2 3 5] [1 3 4 6] [2 4 5 7])» | ||
brokenchicken | Ah, k; it hangs cause it numifies them and never gets to the end of the array. | 02:59 | |
m: say WHAT X::StubCode.new | |||
camelia | rakudo-moar 7f9703: OUTPUT«(StubCode)» | ||
brokenchicken | SmokeMachine: seems it's not? | ||
BenGoldberg | m: my @a = 'a'..'z'; say @a[ [[0+$++,2+$++,3+$++,5+$++] xx * ][^3] ] | ||
camelia | rakudo-moar 7f9703: OUTPUT«(e e e)» | ||
brokenchicken | bisectable6: m: my @a = 'a'..'z'; say @a[lazy [0,2,3,5], [0,2,3,5], [0,2,3,5]][^3] | 03:01 | |
bisectable6 | brokenchicken, On both starting points (old=2015.12 new=7f97035) the exit code is 0 and the output is identical as well | ||
brokenchicken, Output on both points: (e e e) | |||
BenGoldberg | m: my @a = 'a'..'z'; say @a[ [eager [0+$++,2+$++,3+$++,5+$++] xx * ][^3] ] | ||
brokenchicken | :/ | ||
BenGoldberg | D'oh, that's gonna timeout | ||
camelia | rakudo-moar 7f9703: OUTPUT«(timeout)» | ||
brokenchicken | bisectable6: m: my @a = 'a'..'g'; say @a[lazy ^10][^3] | ||
bisectable6 | brokenchicken, On both starting points (old=2015.12 new=7f97035) the exit code is 0 and the output is identical as well | ||
brokenchicken, Output on both points: (a b c) | |||
brokenchicken | oops | ||
m: my @a = 'a'..'g'; say @a[lazy ^10][^3] | |||
camelia | rakudo-moar 7f9703: OUTPUT«(a b c)» | ||
SmokeMachine | brokenchicken: it's here: | 03:02 | |
github.com/FCO/rakudo/blob/punning...ng.nqp#L39 | |||
brokenchicken | Looks like the lazy version makes an incorrect assumption about all the stuff given to it being a numeric | ||
nqp: say(X::StubCode.new()) | 03:03 | ||
camelia | nqp-moarvm: OUTPUT«cannot stringify this at gen/moar/stage2/NQPCORE.setting:713 (/home/camelia/rakudo-m-inst-1/share/nqp/lib/NQPCORE.setting.moarvm:join) from gen/moar/stage2/NQPCORE.setting:702 (/home/camelia/rakudo-m-inst-1/share/nqp/lib/NQPCORE.setting.moarvm:say) fr…» | ||
brokenchicken | nqp: say(X::StubCode.new().HOW.name(X::StubCode.new())) | ||
camelia | nqp-moarvm: OUTPUT«NQPMu» | ||
brokenchicken | nqp: say(X::StubYourMamma.new().HOW.name(X::WhatevsBruh.new())) | ||
camelia | nqp-moarvm: OUTPUT«NQPMu» | ||
SmokeMachine | brokenchicken: any advice? | 03:04 | |
03:04
labster left
03:05
curt_ left
|
|||
brokenchicken | SmokeMachine: it ain't got that class up in there. | 03:06 | |
SmokeMachine | brokenchicken: so, how could I get the stub exception message? | ||
brokenchicken | SmokeMachine: you could try $*W.find_symbol(['X', 'SubCode']).new() | 03:07 | |
SmokeMachine | do I have the $*W there? | ||
brokenchicken | TIAS | ||
anothing thing to try is to stub it | 03:08 | ||
03:10
dugword left
|
|||
SmokeMachine | brokenchicken: Cannot find method 'find_symbol' on object of type NQPMu | 03:10 | |
03:23
labster joined,
tardisx joined,
tardisx left
03:29
nowan left
03:34
nowan joined
03:41
lmmx left
03:46
Herby_ left
03:56
curt_ joined
04:05
aindilis left
04:09
tardisx joined
04:18
tardisx left
04:20
tardisx joined
04:53
tardisx left
04:57
flexibeast joined
04:59
dugword joined
05:01
tardisx joined
05:08
khw left
05:11
itcharlie1 left
05:17
azawawi joined
|
|||
azawawi | good morning #perl6 | 05:17 | |
.tell RabidGravy Shorter code without get- and set- prefixes github.com/azawawi/perl6-gtk-scint...02-basic.t :) | 05:18 | ||
yoleaux | azawawi: I'll pass your message to RabidGravy. | ||
05:21
azawawi left
05:22
CIAvash joined,
vendethiel left,
vendethiel joined
05:25
f3ew joined,
llfourn joined,
simcop2387 joined
05:38
Cabanossi left
05:40
Cabanossi joined
|
|||
Geth | oc: flexibeast++ created pull request #1139: Add link to method `connect` in class `IO::Socket::Async`. |
05:51 | |
06:01
xtreak joined
06:04
Actualeyes left
06:08
bwisti left
06:21
xtreak left
06:24
Actualeyes joined
06:32
xtreak joined
06:34
grumble left
06:35
kyan left
06:37
grumble joined
06:38
geekosaur left
06:39
geekosaur joined
06:44
dugword left
06:49
RabidGravy joined
06:53
xtreak left
06:54
xtreak joined
07:02
bjz joined
07:04
holli_ left
07:05
darutoko joined
07:19
domidumont joined
07:27
cibs left
07:29
cibs joined
07:31
BenGoldberg left
07:33
BenGoldberg joined
07:35
raiph left
07:41
wamba joined
07:42
BenGoldberg left
07:50
aborazmeh left
07:55
dugword joined
07:56
xtreak left
08:03
dugword left
08:07
ufobat joined
08:17
zakharyas joined
08:19
Woodi left
08:20
Woodi joined
08:33
jonas1 joined
08:36
domidumont left
08:44
thayne joined
08:45
bjz left
08:46
TEttinger left
08:48
ufobat left
09:01
llfourn left
09:02
noganex joined
09:09
bpmedley left
09:14
ufobat joined
|
|||
masak | stray macro thought: it seems that a lot of macros I want to write in practice are of the form "macro moo only makes sense inside of a loop" | 09:15 | |
or inside some other context like that. a method or a grammar or whatever. | 09:17 | ||
I've had this thought before, but it's now coming to the forefront | |||
it reminds me a bit of AngularJS's `require: "^parentDirective"` | 09:18 | ||
09:19
xtreak joined,
dakkar joined
|
|||
masak | I think it's a healthy thought to consider context-y/container-y QNodes as exposing a kind of API to their descendant nodes, if they want | 09:21 | |
it's actually a suggestive way to explain both `next` and `this` | |||
er, `self`. wrong language. | 09:22 | ||
ETOOMUCHJAVASCRIPT | |||
I need to blog about this. | |||
09:31
cschwenz joined
|
|||
andrzeju_ | hello Perl6 | 09:34 | |
cschwenz | hello andrzeju :-) | 09:36 | |
DrForr | Mornin'. | 09:38 | |
09:41
domidumont joined
|
|||
timotimo | Islamic Cyber Resistance Hacked blogs.perl.org22 Jan 2014, 01:00 ... 2363 emails leaked | 09:42 | |
09:45
domidumont1 joined,
domidumont left
|
|||
lizmat | timotimo: que ? | 09:48 | |
isn't that old news? | |||
timotimo | yeah | ||
i was just surprised to find my email is in there | |||
lizmat | ah | 09:49 | |
DrForr | Good, I was worried there for a sec. | ||
09:51
bjz joined
09:53
bjz_ joined
09:54
labster left
09:56
rindolf joined,
bjz left
09:58
llfourn joined
10:03
llfourn left,
azawawi joined
|
|||
azawawi | hi | 10:03 | |
github.com/azawawi/perl6-gtk-scint...-Editor.md # Documentation in progress :) | 10:04 | ||
and tests github.com/azawawi/perl6-gtk-scint...02-basic.t :) | |||
how can I specify Perl 6 highlighted code in POD6 (using Pod::To::Markdown)? | 10:05 | ||
10:07
AlexDaniel left
10:08
domidumont1 left
10:26
g4 joined,
g4 left,
g4 joined
|
|||
timotimo | neat | 10:28 | |
10:35
domidumont joined
10:39
gregf_ joined
10:43
llfourn joined
10:46
thayne left
10:49
wamba left,
domidumont left
10:50
domidumont joined,
thayne joined
|
|||
SmokeMachine | I have a role (DateTime::Extended) that when applied to a object of type DateTime or Date gives new functionality to the object. | 10:52 | |
You can use it like: DateTime.now but DateTime::Extended | 10:53 | ||
azawawi | timotimo: thx | 10:54 | |
timotimo: hopefully it will be more useful to you than it was :) | 10:55 | ||
SmokeMachine | So I wrote a new way to use it. I added 2 methods on the role: DateTime and Date. That returns the type but DateTime::Extended | ||
The idea is: DateTime::Extended.Date return a Date type with the new functionalities | 10:57 | ||
But the DateTime role has some required methods... I mean: method required-method {...} | 10:59 | ||
But a role with required methods cannot be punned | 11:00 | ||
Because the generated class do not implement that methods... | 11:01 | ||
What makes pun a role with required methods useless... | 11:02 | ||
I'd like to change that... | |||
I'd like to when punning a role with required methods, the generated class will implement those methods with stub code... | 11:04 | ||
I wrote a PoC that almost do that (that's just not a stub yet) | 11:06 | ||
github.com/FCO/rakudo/blob/punning...ng.nqp#L36 | 11:08 | ||
Do you think that could be changed? | 11:09 | ||
11:12
llfourn left
|
|||
jnthn | I'm not particularly keen on making role punning have different semantics to "compose the role into an empty class" | 11:18 | |
That you can't pun a role with stubbed methods - because there's no way it's going to work usefully with the missing bits of functionality - seems reasonable to me. | 11:19 | ||
And if it can work usefully, why are the methods stubbed rather than returning a default value? | |||
11:20
thayne left
|
|||
jnthn | (And then classes that wish override them) | 11:20 | |
SmokeMachine | It can work, for example in my case... the instance methods wouldn't work, but a class method works... | 11:25 | |
jnthn: ^^ | 11:26 | ||
jnthn | That still pretty much violates the usefulness of doing a role. | ||
If is $obj ~~ TheRole or multi-dispatch to a candidate with the role, I expect to get something that meaningfully implements the role. | 11:27 | ||
SmokeMachine | I'm not trying to change the role... only the class that's going to be pinned... | ||
It will! | 11:28 | ||
11:29
kalkin- joined
|
|||
SmokeMachine | The class will implement the role! With stub code... | 11:29 | |
kalkin- | hi #perl6 | ||
jnthn | But "with stub code" is hardly implementing it, is it? | ||
SmokeMachine | It's just for the punned class everything else maintains the same... | 11:30 | |
jnthn | Yes, I'm arguing I don't think it's reasonable to make the punned class special. | ||
Perhaps split the instance and class methods out into separate roles? | |||
timotimo | you could have .^make_unfunny_pun | ||
SmokeMachine | jnthn: the stubcode I mean is the yada ... | ||
jnthn | Yes, I understood it that way. | 11:31 | |
SmokeMachine | timotimo: the unfunny is with or without the stubs? | 11:32 | |
jnthn: the punned class isn't special... | 11:33 | ||
m: role R {method r{...}}; class C does R {method r{..}} | 11:34 | ||
camelia | rakudo-moar babfc3: OUTPUT«5===SORRY!5=== Error while compiling <tmp>Preceding context expects a term, but found infix .. insteadat <tmp>:1------> 3hod r{...}}; class C does R {method r{..7⏏5}}» | ||
SmokeMachine | m: role R {method r{...}}; class C does R {method r{...}} | ||
camelia | ( no output ) | ||
SmokeMachine | C is exactly the same as if R was punned with that change... | 11:35 | |
jnthn: ^^ | 11:36 | ||
jnthn | Sure, but there you've very explicitly stubbed the method, and it's clear enough in the code that you've done so. Having that happen automatically just seems liable to make stuff fail later, when in the common case knowing earlier would seem more valuable. | 11:37 | |
SmokeMachine | The code of the class punned will be equal to the role! | 11:38 | |
IMHO, it's even more readable... | |||
The punned class will behave as if you changed the role keyword tô class | 11:39 | ||
jnthn: makes sense? | 11:47 | ||
jnthn | I understand your argument, I just disagree with it. | ||
Roles are units of re-use. Classes are units of instance management. | 11:48 | ||
SmokeMachine | It will still be... | 11:50 | |
11:52
wamba joined
12:00
wamba left
|
|||
SmokeMachine | IMHO pun a role with stub methods should generate a class with the stub methods or at least give an error: role with stub methods cannot be punned | 12:09 | |
12:11
mr_ron left
|
|||
masak | SmokeMachine: a better error message sounds resasonable -- but besides the wording, isn't that what happens already? | 12:11 | |
m: role R { method foo { ... } }; class C does R {}; say "alive" | |||
camelia | rakudo-moar babfc3: OUTPUT«5===SORRY!5=== Error while compiling <tmp>Method 'foo' must be implemented by C because it is required by roles: R.at <tmp>:1» | ||
masak | SmokeMachine: seems it is. | ||
SmokeMachine: so, are you *only* arguing for a different error message? | 12:12 | ||
lizmat | m: role R { method foo { ... } }; R.new | 12:13 | |
camelia | rakudo-moar babfc3: OUTPUT«Method 'foo' must be implemented by R because it is required by roles: R. in any compose_method_table at gen/moar/Metamodel.nqp line 2832 in any apply at gen/moar/Metamodel.nqp line 2843 in any compose at gen/moar/Metamodel.nqp line 3015 in…» | ||
SmokeMachine | Yes, but I'd prefer the punned class with stub method... | ||
lizmat | masak: specifically that one, I guess | ||
SmokeMachine | lizmat: yes! That one! | 12:14 | |
m: role R { method foo { ... } }; R.^pun | |||
camelia | rakudo-moar babfc3: OUTPUT«Method 'foo' must be implemented by R because it is required by roles: R. in any compose_method_table at gen/moar/Metamodel.nqp line 2832 in any apply at gen/moar/Metamodel.nqp line 2843 in any compose at gen/moar/Metamodel.nqp line 3015 in…» | ||
12:15
wamba joined
|
|||
masak | yes, I agree those error messages are LTA | 12:16 | |
masak .oO( "Method 'foo' must be implemented by a type because it is required by... the same type!" ) | |||
12:16
mr_ron joined,
cibs left
|
|||
masak | SmokeMachine: please open an RT for the LTA error message ;) | 12:16 | |
RT ticket* | 12:17 | ||
SmokeMachine | Why not implement the methods on the generated class? | 12:18 | |
12:18
cibs joined
|
|||
masak | what, you mean automatically? | 12:19 | |
isn't the problem that you're doing `R.new` *on the role itself*, the role doesn't have those methods implemented, and now you're asking it to behave like a concrete class and instantiate, but *it doesn't have the methods implemented* so it can't because it fails to compose? | 12:20 | ||
I think I'm fully with jnthn on this one | |||
and it seems to me you don't fully appreciate jnthn's argument, SmokeMachine | 12:21 | ||
SmokeMachine | masak: yes, I desagree... I think that pun would be much more useful if it implement the stub methods with stub code... | 12:24 | |
But np... | |||
masak | yes, the explanation you're offering right there tells me you don't fully understand the properties we're wanting to preserve with role composition | 12:25 | |
12:25
raschipi joined
|
|||
SmokeMachine | masak: so, could you explain to me again? Please? | 12:26 | |
12:26
bjz_ left
|
|||
masak | happy to | 12:26 | |
roles are in many ways a "fix" on class inheritance | 12:27 | ||
class inheritance has a number of known failure modes, and roles try to be better than that | |||
for example, when two methods conflict in the class inheritance chain, usually there's some kind of "first one wins" semantics; kind of a silent failure which can be very surprising and cause hard-to-detect bugs | 12:28 | ||
compare that with roles, where you can't compose two or more roles with conflicting methods without getting a *compile-time* error (which you then have to resolve by explicitly giving your own method in the composing class) | 12:29 | ||
the operative word here is "compile-time" | |||
12:29
araraloren joined
|
|||
masak | roles can also be used as interfaces -- here, the contract is that if the role stubs a method, then the composing class has to provide an implementation | 12:30 | |
that error is also given at compile-time, with similarly good underlying reasons | |||
azawawi starts working on Odoo::Client - Perl 6 is going ERP soon :) | |||
masak | SmokeMachine, your proposal would essentially remove some of those early compile-time composition errors, and make the same code fail at runtime instead. with no discernible benefit. | 12:31 | |
SmokeMachine | masak: IMHO my proposal changes the behavior to DWIM... because if I'm punning a role I want to create a class like that role... | 12:36 | |
12:36
araraloren left
12:37
xtreak left
|
|||
masak | that's exactly what happens now | 12:38 | |
and when the role is *unsuitable on its own* to being composed into a class, the composition fails | |||
in fact, we could catch this at compile time | |||
`R.new` with R being a role with stubbed methods | 12:39 | ||
12:41
araraloren joined
|
|||
araraloren | Hi guys, anyone know can NativeCall support c out parameters ? | 12:42 | |
SmokeMachine | But roles with stub methods aren't unsuitable... you only needs to implement this methods... | 12:44 | |
raschipi | araraloren: Isn't that a C++ thing? C does it with pointers. | ||
SmokeMachine | masak: I'd probably agree with you if that worked: | ||
masak | SmokeMachine: yes, but *you didn't implement them* before punning the role to a class | ||
12:45
wamba left
|
|||
araraloren | raschipi, for example, a function with siganture int (char **ptr), it maybe modify *ptr . | 12:45 | |
raschipi | araraloren: Perl6 knows how to pass pointers to native types: docs.perl6.org/language/nativecall...f_Pointers | 12:47 | |
SmokeMachine | m: role R {method r{...}}; class R does R {method r{...}} | ||
camelia | rakudo-moar babfc3: OUTPUT«5===SORRY!5=== Error while compiling <tmp>Redeclaration of symbol 'R'at <tmp>:1------> 3role R {method r{...}}; class R does R7⏏5 {method r{...}}» | ||
masak | need `class C does R` | ||
SmokeMachine | I know... | ||
raschipi | araraloren: There's also a "Pointer" type, which can hold a pointer C gives us. | ||
SmokeMachine | But with the same name would be a way to workaround the (in my opinion) pun problem | 12:48 | |
araraloren | raschipi, i know that, wait a moment , i write some sample code. | 12:49 | |
SmokeMachine | masak: that's what I think should be the behavior of punned roles... | 12:50 | |
masak | SmokeMachine: yes -- you think that against the received wisdom of how roles ought to best work ;) | ||
SmokeMachine | masak: I *cant* implement then before punning the role to class... | 12:51 | |
masak | SmokeMachine: I'm trying really hard not to make my replies be "please stop and listen to why things are the way they are -- the reasons for that are pretty sane" | ||
SmokeMachine: that's right, you can't | |||
SmokeMachine: (so stop trying) | |||
raschipi | SmokeMachine: If you don't want the guarantees Roles give, why don't you use a Classe and be done with it? | 12:53 | |
SmokeMachine | OK | 12:54 | |
raschipi: I want those guarantees! | 12:57 | ||
araraloren | raschipi, gist.github.com/araraloren/1ba08ad...6a639e993, please have a look at this code | ||
SmokeMachine | raschipi: I just wanted to pun a role with stub methods... | 12:59 | |
Like this: github.com/FCO/rakudo/blob/punning...ng.nqp#L36 | |||
raschipi: now I'm looking how to do that as a module... | 13:00 | ||
Geth | cosystem: f5274a15ce | (Ahmad M. Zawawi)++ | META.list Add Odoo::Client A simple Odoo ERP client that uses JSON RPC |
||
raschipi | SmokeMachine: do you want the restrictions or not? | 13:01 | |
SmokeMachine | raschipi: I do! I just want to when punning (not "does"ing) the stub methods be auto created on the punned class | 13:02 | |
raschipi | araraloren: sub xmode(CArray[Str] is rw) returns int32 is native('xmode') { * } ==> You need to tell it to pass a pointer. | 13:03 | |
SmokeMachine | I'm not trying to fit a class on a role... I'm creating a class based on a role... it *should* fit the role! | 13:04 | |
I'm not saying this should fit: | |||
raschipi | SmokeMachine: That applies to classes, roles have aditional restrictions. | 13:05 | |
SmokeMachine | m: role R {method r{...}}; class C {} | ||
camelia | ( no output ) | ||
SmokeMachine | But this should: | ||
m: role R {method r{...}}; R.^pun # I'm creating a new class, not trying to fit a existing one | 13:07 | ||
camelia | rakudo-moar babfc3: OUTPUT«Method 'r' must be implemented by R because it is required by roles: R. in any compose_method_table at gen/moar/Metamodel.nqp line 2832 in any apply at gen/moar/Metamodel.nqp line 2843 in any compose at gen/moar/Metamodel.nqp line 3015 in a…» | ||
araraloren | raschipi, sorry, I can get your idea, sub xmode(CArray[Str] is rw #`( add rw ?? )) returns int32 is native('xmode') { * } | ||
raschipi | araraloren: Yes, adding "is rw" means you want to give C a pointer to the type, not the type itself. | ||
SmokeMachine | raschipi: what I'm saying is: a class created based on a role should fit that role! | 13:08 | |
raschipi | SmokeMachine: No it doesn't, because you didn't fulfil the contract. | ||
arnsholt | m: role R { method r() { ... } }; class C does R {}; # Should also be broken | 13:15 | |
camelia | rakudo-moar babfc3: OUTPUT«5===SORRY!5=== Error while compiling <tmp>Method 'r' must be implemented by C because it is required by roles: R.at <tmp>:1» | ||
arnsholt | There ya go | ||
That's what punning a role to a class does | 13:16 | ||
13:17
ChoHag left
13:18
araraloren left
13:19
araraloren joined
|
|||
raschipi | SmokeMachine: You're creating a distinction that doesn't exist. "puning" is compositing a role into a class of the same name of the role. It's still compositing. | 13:20 | |
araraloren: Does my solution works as you expect? | 13:21 | ||
araraloren | raschipi, not working. | ||
It's result same as my version. | 13:22 | ||
13:22
domidumont left,
ChoHag joined
13:23
domidumont joined
13:24
domidumont left
|
|||
arnsholt | araraloren: Perl 6 Str objects are immutable | 13:24 | |
13:24
domidumont joined
|
|||
arnsholt | To let the C code diddle strings, you'll have to encode the string before passing it in and decode the modified array coming back out | 13:24 | |
13:26
mszet joined
|
|||
araraloren | arnsholt, thanks, i will try it. | 13:26 | |
13:26
mszet left
13:28
xtreak joined
13:38
rindolf left,
azawawi left
13:39
azawawi joined
|
|||
araraloren | arnsholt, raschipi Not working too, c modified string and perl6 side can not get original string . | 13:40 | |
raschipi | araraloren: give us a pastie again, please | 13:41 | |
araraloren | Maybe rakudo is not support that . | ||
ok | |||
13:44
wamba joined
13:45
pmurias joined
|
|||
araraloren | raschipi, gist.github.com/araraloren/1ba08ad...86a639e993 | 13:45 | |
raschipi | araraloren: You still need the "is rw". | 13:46 | |
araraloren | add `is rw` is not working too. | ||
13:47
curt_ left
|
|||
arnsholt | araraloren: Oh, you might need to call refresh or whatever the function is called (I forget) on the embedded array | 13:54 | |
Detecting changes done in the C code is non-trivial, so it doesn't always get picked up | 13:55 | ||
araraloren | arnsholt, any document about that? | ||
arnsholt, I found a refresh sub github.com/perl6/specs/blob/master...pod[here], but seems not working too.. | 13:58 | ||
14:09
xtreak left
|
|||
araraloren | arnsholt, raschipi I updated sample code gist.github.com/araraloren/1ba08ad...86a639e993 | 14:11 | |
14:24
tadzik left,
M-Illandan left,
CIAvash[m] left,
Matthew[m] left,
dp[m] left,
ilmari[m] left,
xui_nya[m] left,
mulk[m] left,
Matias[m] left,
wictory[m] left
14:49
Actualeyes left
14:51
azawawi left,
g4 left
14:54
cschwenz left
14:59
mr-foobar left
|
|||
lizmat | m: say "\c[woman facepalming]" # now that we can do this, maybe a docs.perl6.org page about emoji support would be applicable ? | 15:00 | |
camelia | rakudo-moar 2a7c27: OUTPUT«🤦♀️» | ||
15:00
wictory[m] joined
15:07
tadzik joined,
M-Illandan joined,
Matthew[m] joined,
ilmari[m] joined,
dp[m] joined,
xui_nya[m] joined,
mulk[m] joined,
Matias[m] joined,
CIAvash[m] joined
|
|||
DrForr | Huh, [m] suffix - haven't seen that. | 15:09 | |
ilmari | DrForr: the it's the matrix.org irc bridge | 15:10 | |
15:10
abraxxa left
|
|||
ilmari[m] waves from riot.im via matrix.org | 15:10 | ||
15:11
abraxxa joined
15:18
ab6tract joined
|
|||
ab6tract | o/ #perl6 | 15:18 | |
yoleaux | 24 Dec 2016 14:13Z <M-Illandan> ab6tract: there's something wrong with your post. The link to OO::Monitors appears to point nowhere | ||
ab6tract | hmm, think i fixed that :S | ||
m: my @f = slow => "pair", know => "pair", no => "pair"; my %h := :{ |@f } | |||
camelia | rakudo-moar 2a7c27: OUTPUT«Type check failed in binding; expected Associative but got Block (-> ;; $_? is raw { #`...) in block <unit> at <tmp> line 1» | ||
ab6tract | am i crazy or should i be able to do that? | 15:19 | |
15:19
abraxxa left
|
|||
ab6tract | use case: avoiding sorting by first creating an array that you can use to refer to later | 15:19 | |
ilmari | DrForr: the M- prefix is also indicative of matrix.org bridging (they changed it to [m] a while back) | 15:20 | |
15:24
dugword joined
15:30
cdg joined
15:31
curt_ joined
|
|||
ab6tract | m: my @f = slow => "pair", know => "pair", no => "pair"; my %h := %( |@f ) | 15:32 | |
camelia | ( no output ) | ||
ab6tract | m: my @f = slow => "pair", know => "pair", (now) => "pair"; my %h := %( |@f ); dd %h | 15:33 | |
camelia | rakudo-moar 2a7c27: OUTPUT«Hash % = {"Instant:1484580825.309945" => "pair", :know("pair"), :slow("pair")}» | ||
15:33
cdg left
|
|||
ab6tract | yeah, so what's the deal? | 15:33 | |
15:33
cdg joined
15:34
abraxxa joined
15:35
mr-foobar joined
15:37
bpmedley joined,
bpmedley left,
bpmedley joined
|
|||
SmokeMachine | how can I augment Metamodel::RolePunning? | 15:39 | |
m: use MONKEY-TYPING; augment class Metamodel::RolePunning {method make_pun {say "OK"}}; role {}.new | |||
camelia | rakudo-moar 2a7c27: OUTPUT«===SORRY!===Cannot find method 'augmentable' on object of type Archetypes» | ||
Geth | oc: fa81febf50 | Alexis++ | doc/Language/5to6-perlfunc.pod6 Add link to method `connect` in class `IO::Socket::Async`. |
15:47 | |
oc: 6ad377c86e | (Zoffix Znet)++ | doc/Language/5to6-perlfunc.pod6 Merge pull request #1139 from flexibeast/master Add link to method `connect` in class `IO::Socket::Async`. |
|||
oc: zoffixznet++ created pull request #1140: List IO::Socket::INET as an option as well |
15:51 | ||
oc: 03b48f85c0 | (Zoffix Znet)++ | doc/Language/5to6-perlfunc.pod6 List IO::Socket::INET as an option as well |
|||
oc: a9a29fa9e9 | (Zoffix Znet)++ | doc/Language/5to6-perlfunc.pod6 Merge pull request #1140 from zoffixznet/patch-2 List IO::Socket::INET as an option as well |
|||
15:51
ab6tract left
16:00
Ven left
16:02
Ven joined
|
|||
perigrin | w73 | 16:03 | |
16:06
xzhao left
16:08
rindolf joined
|
|||
SmokeMachine | m: role {method ^pun {say "OK"}}.^pun # why this doesn't work and thinks its multi? | 16:09 | |
camelia | rakudo-moar 2a7c27: OUTPUT«Potential difficulties: Useless declaration of a has-scoped method in multi (did you mean 'my method pun'?) at <tmp>:1 ------> 3role {method7⏏5 ^pun {say "OK"}}.^pun # why this doesn'» | ||
16:10
_Vasyl left
|
|||
SmokeMachine | m: role {method ^pun {}} # why this doesn't work and thinks its multi? | 16:13 | |
camelia | rakudo-moar 2a7c27: OUTPUT«Potential difficulties: Useless declaration of a has-scoped method in multi (did you mean 'my method pun'?) at <tmp>:1 ------> 3role {method7⏏5 ^pun {}} # why this doesn't work and th» | ||
16:15
Ven left
|
|||
SmokeMachine | is it here? github.com/rakudo/rakudo/blob/d1c2....nqp#L4051 | 16:15 | |
16:16
holli_ joined
16:18
Ven joined
|
|||
SmokeMachine | shouldn't that enter here? github.com/rakudo/rakudo/blob/d1c2....nqp#L4051 | 16:19 | |
m: use nap; say nqp::can(role {}.HOW, "pun") | 16:20 | ||
camelia | rakudo-moar 2a7c27: OUTPUT«===SORRY!===Could not find nap at line 1 in: /home/camelia/.perl6 /home/camelia/rakudo-m-inst-2/share/perl6/site /home/camelia/rakudo-m-inst-2/share/perl6/vendor /home/camelia/rakudo-m-inst-2/share/perl6 CompUnit::Repositor…» | ||
SmokeMachine | m: use nqp; say nqp::can(role {}.HOW, "pun") | ||
camelia | rakudo-moar 2a7c27: OUTPUT«1» | ||
16:20
CIAvash left
16:22
synopsebot6 joined
16:28
captain-adequate joined,
araraloren left
16:29
Ven left
|
|||
brokenchicken | m: (^20)».say | 16:32 | |
camelia | rakudo-moar 2a7c27: OUTPUT«012345678910111213141516171819» | ||
brokenchicken really wishes that were out of order. | |||
People are teaching others the ». as a way to call a method on a bunch of things, without any mention of the autothreading business. | 16:33 | ||
16:33
Ven joined
|
|||
brokenchicken | And it'd be easier to convince them to give full information if we had an actual example of the issues that'll appear once the autothreaded impl is done | 16:34 | |
SmokeMachine | m: use nqp; say nqp::can(role {}.HOW, "add_meta_method") # thats why! | ||
camelia | rakudo-moar 2a7c27: OUTPUT«0» | ||
Geth | oc: 54faec717b | (Wenzel P. P. Peppmeyer)++ | doc/Language/operators.pod6 index >>. |
16:36 | |
16:38
Gasher joined
16:39
rindolf left
16:40
khw joined,
ab6tract joined
|
|||
ab6tract | brokenchicken: not true. '>>' will preserve order of the outputs | 16:40 | |
even when it gets autothreaded | |||
what is not guaranteed is order of execution | 16:41 | ||
SmokeMachine | should ParametricRoleHOW does MultiMethodContainer? | ||
sorry! | 16:42 | ||
brokenchicken | ab6tract: and which part is not true? | ||
SmokeMachine | should ParametricRoleHOW does MetaMethodContainer? | ||
ab6tract | m: (^20)>>.say | ||
camelia | rakudo-moar 2a7c27: OUTPUT«012345678910111213141516171819» | ||
ab6tract | that will always look like that | ||
brokenchicken | No it won't. | ||
ab6tract | yes, it will | ||
brokenchicken | hah | ||
ab6tract | where did you get this impression/ | ||
race and hyper are two different things | |||
brokenchicken | ab6tract: "ab6tract │ what is not guaranteed is order of execution" | ||
ab6tract | yes | ||
brokenchicken | You've just said it yourself. | 16:43 | |
ab6tract | your case is too simple | ||
the list order will be preserved | |||
but if you were modifying the state of an object | |||
your 11th execution might happen prior to your 9th execution | 16:44 | ||
but it will always appear in the output as the 11th element | |||
brokenchicken | ab6tract: which would make 11th 'say' print its output prior to the 9th 'say' | ||
16:44
domidumont left
|
|||
brokenchicken | The output is generated through the side-effect of the hypered method, not through the final order of the result. | 16:45 | |
16:46
Ven left,
rindolf joined
|
|||
ab6tract | i don't know where you are getting this from | 16:47 | |
because it is not true | |||
maybe in this very specific instance of .say | |||
but even then it runs counter to the distinction between hyper and race | 16:48 | ||
brokenchicken | You're just confused about the code being executed. | ||
jnthn reads and suspects "order of outputs" being ambiguous is the source of confusion | |||
ab6tract | ('a'..'r')>>.uc>>.say | ||
brokenchicken | And contradicting yourself. | ||
16:48
dugword left
|
|||
ab6tract | m: dd ('a'..'r')>>.uc> | 16:49 | |
camelia | rakudo-moar 2a7c27: OUTPUT«5===SORRY!5=== Error while compiling <tmp>Missing required term after infixat <tmp>:1------> 3dd ('a'..'r')>>.uc>7⏏5<EOL> expecting any of: prefix term» | ||
jnthn | hyper preserves the order of values in the result returned relative to the input | ||
ab6tract | m: dd ('a'..'r')>>.uc | ||
camelia | rakudo-moar 2a7c27: OUTPUT«("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R")» | ||
ab6tract | this will always be in that order | ||
jnthn++ | |||
brokenchicken | ab6tract: yes, because you're outputting the FINAL result | ||
ab6tract: whereas ('a'..'r')».say does NOT | |||
ab6tract | brokenchicken: my apologies for not explaining myself properly | ||
yes | 16:50 | ||
correct | |||
jnthn | But it doesn't preserve the order of output in the sense of I/O | ||
Probably best to avoid using the word "output" in the docs of this. | |||
brokenchicken | And therefore, it's output is not guaranteed to always be as .say for ('a'..'r') would | ||
ab6tract | brokenchicken: correct. again, sorry for the confusion | 16:51 | |
16:51
Ven joined
|
|||
ab6tract | and you are right, i was clearly contradicting mysel;f | 16:52 | |
brokenchicken | huggable: hug someone | 16:55 | |
huggable hugs someone | |||
ab6tract | well, it was a nice gesture i guess.. | 16:56 | |
16:56
ab6tract left
|
|||
brokenchicken | :( | 16:57 | |
16:58
ab6tract joined,
dugword joined
|
|||
ab6tract | that is an unfortunate bit of confusion there | 16:59 | |
16:59
ggoebel left
|
|||
ab6tract | and you are right that it will likely break a lot of ecosystem code | 16:59 | |
16:59
Ven left
|
|||
timotimo | who needs side-effects anyway | 17:00 | |
17:02
raschipi left,
Geth left
17:03
Geth joined,
ChanServ sets mode: +v Geth
17:04
ab6tract left
|
|||
mst | timotimo: the FDA's HR department | 17:04 | |
17:07
perlpilot joined
|
|||
jnthn wrote a Perl 6 port-ish of the algo git uses for doing text file vs. binary file detection today, and figured it may as well go in a mdoule | 17:07 | ||
But can't think of a non-awful name for it. | |||
File::TextOrBinary mebbe | 17:09 | ||
brokenchicken | .oO( Algo::Binnable... ) |
||
jnthn | Text::Or::Binary # no! :P | ||
Though I actually implemented it on Blob rather than a file... :) | |||
But can add a file interface for the module too I guess :) | |||
17:11
Ven joined
|
|||
mst | jnthn: Data::IsBinary::Heuristic ? | 17:12 | |
17:12
ggoebel joined
|
|||
mst | (that's not quite right but ...) | 17:12 | |
17:13
dugword left
|
|||
jnthn | Data::Text::Heuristic maybe | 17:13 | |
Though it's still a bit off | |||
mst | BinaryOrText::PlaceBetsNow | ||
jnthn | :P | ||
Data::TextOrBinary I guess explains it OK | 17:14 | ||
mst | yeah | ||
17:16
Ven left,
zakharyas left
17:20
FROGGS joined
|
|||
timotimo | aha, Data:: is for modules that handle data | 17:24 | |
as opposed to modules that don't do anything with data | |||
b2gills | and Data::Data::Data:: is for modules that really really handle data | 17:26 | |
geekosaur | Haskell has Data.Data.Data :p | 17:27 | |
(granted, only the first two are part of the module name) | |||
17:29
mithaldu_ left
17:30
lmmx joined,
mithaldu_ joined
17:31
Ven joined
17:32
dugword joined
17:40
evalable6 left
17:41
statisfiable6 left,
bisectable6 left
17:44
dakkar left
17:47
jonas1 left
17:50
Actualeyes joined
17:51
setty1 left,
domidumont joined
17:52
raschipi joined
17:59
Ven left
|
|||
Geth | cosystem: 2cb66fa477 | (Jonathan Worthington)++ | META.list Add Data::TextOrBinary github.com/jnthn/p6-data-textorbinary |
18:00 | |
18:01
TEttinger joined,
setty1 joined
18:03
Ven joined
18:11
ab6tract joined
|
|||
ab6tract | huggable: hug brokenchicken | 18:14 | |
huggable hugs brokenchicken | |||
18:15
Ven left
|
|||
mr_ron | I don't see a directory or file in roast that tests regex basics like * + ** quantifiers and | | , | alternations. Anyone happen to know? | 18:16 | |
ab6tract | it occurred to me that maybe i was not contradicting myself as much as i thought. the way i was initially looking at it is that >>.say coming out ordered -- while not actually guaranteed by >> -- is actually indicative of the underlying behavior of >> when used in _non-IO_ circumstances. | ||
if that makes any sense :) | |||
18:19
wamba left
|
|||
ab6tract | don't get me wrong, though! i was definitely contradicting myself by saying that the "output" would "always be like that" :) | 18:21 | |
mr_ron | searched roast for "quantifier" and think I found what I was looking for | ||
jnthn | mr_ron: S05-mass/rx.t or something like that | 18:22 | |
ab6tract | m: (4 xx 5) ==> .say # i guess that's where the feed operator could come in? | 18:23 | |
camelia | rakudo-moar 2a7c27: OUTPUT«5===SORRY!5=== Error while compiling <tmp>Sorry, do not know how to handle this case of a feed operator yet.at <tmp>:1------> 3s where the feed operator could come in?7⏏5<EOL>» | ||
18:24
Ven joined
|
|||
dalek | pan style="color: #395be5">perl6-examples: 57d30e5 | (Shlomi Fish)++ | categories/euler/prob125-shlomif.p6: Add Euler #125. Works well. |
18:27 | |
18:28
cgfbee left
|
|||
rindolf | Hi all! Can you please review github.com/perl6/perl6-examples/bl...shlomif.p6 ? | 18:28 | |
mr_ron | jnthn: 743 tests and only one with || in github.com/perl6/roast/blob/master...-mass/rx.t | 18:29 | |
18:30
Ven left,
cdg left,
cdg joined
|
|||
raschipi | m: (4 xx 5) ==> say | 18:32 | |
camelia | rakudo-moar 2a7c27: OUTPUT«5===SORRY!5===Argument to "say" seems to be malformedat <tmp>:1------> 3(4 xx 5) ==> say7⏏5<EOL>Other potential difficulties: Unsupported use of bare "say"; in Perl 6 please use .say if you meant $_, or use an explicit invocant …» | ||
18:33
Ven joined,
ab6tract left
|
|||
raschipi | ab6tract: In this case you need map. | 18:33 | |
18:34
dugword left
|
|||
mr_ron | || has more tests in github.com/perl6/roast/blob/master...ernation.t | 18:35 | |
18:35
ufobat left
|
|||
brokenchicken | ab6tract, any side-effects—IO or otherwise—aren't guaranteed to be in order. The reason it comes ordered right now is because the actual autothreading isn't yet implemented. | 18:40 | |
18:40
andrzejku joined
18:41
UgJkA is now known as lahey,
lahey is now known as UgJkA
|
|||
raschipi | rindolf: It can be made more idiomatic than that. | 18:42 | |
rindolf: you could at least try to cram some interesting features of the language in there to show off. | 18:44 | ||
brokenchicken | rindolf: superfluous quotes are superfluous: "$sum".flip eq "$sum" | 18:46 | |
andrzejku | hey | 18:47 | |
offtopic questions here? | |||
raschipi | go ahead | ||
brokenchicken | And yeah, the example is as boring as apple pie. The palindrome could be checked via a subset, for example, to spice it up. | ||
raschipi | One can writre FORTRAN in any language, I guess. Which is allowed in Perl, of course. But he did ask for a critique. | 18:48 | |
pmurias | lizmat: so @a.skip($n) would be @a[$n..*] but lazy? | 18:49 | |
andrzejku | why if most women do cleaning, the mop was invented by men? | ||
brokenchicken | :S | 18:50 | |
raschipi | andrzejku: wut? | ||
brokenchicken | andrzejku: I question valididty of your data. | ||
andrzejku | ? | ||
I wonder why this happens | 18:51 | ||
sorry guys just smoke a weed today x) | |||
huf | because people keep asking questions that lie | ||
andrzejku | it is not lie | 18:52 | |
it was invited by spain guy | |||
raschipi | It's not the data that's corrupted, it's the pipeline. | ||
pmurias | andrzejku: you mean the meta object protocol? | ||
huf | pmurias++ good attempt at derailing | ||
andrzejku | pmurias, no wet mop | ||
18:53
cgfbee joined
|
|||
andrzejku | nevermind | 18:53 | |
brokenchicken | andrzejku: the "most women do cleaning" is a nonsensical statement. | 18:54 | |
andrzejku: and I doubt there are any reliable sources for who first decided to wipe something with a wet rug... | 18:55 | ||
raschipi | brokenchicken: You're feeding the trolls. Let the guy clear his mind. | ||
andrzejku | raschipi, I am not troll just thinking | 18:56 | |
brokenchicken | It's not the first time he's making sexist statements here. I don't want to just pretend it didn't happen. | 18:57 | |
raschipi | Don't do drugs, people. It looks ridiculous. | ||
moritz | andrzejku: then please stop thinking on #perl6 while high | ||
andrzejku | moritz, ok sorry | ||
sorry | |||
brokenchicken | andrzejku: here's an interesting thing to ponder: en.wikipedia.org/wiki/Time_dilation | 18:58 | |
18:58
dugword joined,
cgfbee left
|
|||
andrzejku | brokenchicken, well thanks but I am going to do Perl today x) | 19:00 | |
19:00
Ven left,
cgfbee joined
|
|||
andrzejku | to see things deeper than they are | 19:00 | |
19:02
lukaramu joined
|
|||
rindolf | m: 615.flip | 19:02 | |
camelia | ( no output ) | ||
rindolf | m: 615.flip ==> say | ||
camelia | rakudo-moar 2a7c27: OUTPUT«5===SORRY!5===Argument to "say" seems to be malformedat <tmp>:1------> 03615.flip ==> say7⏏5<EOL>Other potential difficulties: Unsupported use of bare "say"; in Perl 6 please use .say if you meant $_, or use an explicit invocant…» | ||
brokenchicken | m: 615.flip.say | 19:03 | |
camelia | rakudo-moar 2a7c27: OUTPUT«516» | ||
perlpilot | rindolf: I sometimes want that to work too | ||
19:03
cgfbee left
|
|||
rindolf | perlpilot: ah | 19:03 | |
lizmat | m: 615.flip ==> &say | ||
camelia | rakudo-moar 2a7c27: OUTPUT«5===SORRY!5=== Error while compiling <tmp>Sorry, do not know how to handle this case of a feed operator yet.at <tmp>:1------> 03615.flip ==> &say7⏏5<EOL>» | ||
lizmat | hmmm | ||
m: 615.flip ==> &say() | 19:04 | ||
camelia | rakudo-moar 2a7c27: OUTPUT«516» | ||
19:04
Ven joined
|
|||
lizmat | there you go :-) | 19:04 | |
brokenchicken | \o/ | ||
perlpilot | yeah, but all that extra syntax | ||
lizmat | m: &say() | ||
camelia | rakudo-moar 2a7c27: OUTPUT«» | ||
19:04
cgfbee joined
|
|||
lizmat | m: note | 19:05 | |
camelia | rakudo-moar 2a7c27: OUTPUT«Noted» | ||
perlpilot | huh. That's an odd thing for note to do. | ||
brokenchicken | m: 615.flip ==> say() | ||
camelia | rakudo-moar 2a7c27: OUTPUT«516» | ||
lizmat | brokenchicken++ | 19:06 | |
perlpilot: similar to: | |||
m: die | |||
camelia | rakudo-moar 2a7c27: OUTPUT«Died in block <unit> at <tmp> line 1» | ||
lizmat | m: warn | ||
camelia | rakudo-moar 2a7c27: OUTPUT«Warning: something's wrong in block <unit> at <tmp> line 1» | ||
perlpilot | yes, I guess so. This is the first I've seen note's behavior in that regard, so it's a little surprising | ||
lizmat | one could argue that say() should say "Said" :-) | 19:07 | |
brokenchicken | :D | ||
perlpilot | and put? ;) | ||
lizmat | m: put | ||
camelia | rakudo-moar 2a7c27: OUTPUT«5===SORRY!5===Argument to "put" seems to be malformedat <tmp>:1------> 3put7⏏5<EOL>Other potential difficulties: Function "put" may not be called without arguments (please use () or whitespace to denote arguments, or &put to ref…» | ||
lizmat | m: put() | ||
camelia | rakudo-moar 2a7c27: OUTPUT«» | ||
lizmat | same as say() | ||
dugword | Should I be able to access a sub in a module using the full name. E.g. #./Foo.pm module Foo { sub bar {} }; #./somescript use Foo; Foo::bar(); This works when I declare the sub with "our", e.g. our sub bar{}, but this post makes it seem like I don't need to perl6advent.wordpress.com/2009/12/...exporting/ | ||
19:07
shayan_ joined
|
|||
perlpilot | dugword: subs are lexical (my) by default | 19:08 | |
lizmat | dugword: something from 7 years ago is probably obsolete | ||
19:08
domidumont left
|
|||
perlpilot boggles a little bit that we've been doing the advent calendar for 7 years | 19:08 | ||
lizmat | perhaps we should add some DEPRECATED notices on these old posts ? | 19:09 | |
dugword | so a sub within a sub is lexical to that sub? That's good to know, (and how I would want it, I've been using my sub everywhere) | ||
perlpilot | dugword: it doesn't hurt to be explicit | ||
lizmat | m: sub a() { sub b() { say "inner b" }; b }; sub b() { say "outer b" }; b | 19:10 | |
camelia | rakudo-moar 2a7c27: OUTPUT«outer b» | ||
lizmat | m: sub a() { sub b() { say "inner b" }; b }; sub b() { say "outer b" }; a; b | ||
camelia | rakudo-moar 2a7c27: OUTPUT«inner bouter b» | ||
lizmat | dugword: ^^ | ||
geekosaur | yes, subs changed from "our" to "my" default scope | ||
19:11
andrzejku left
|
|||
dugword | Well thanks guys, couldn't figure out what I was doing wrong. | 19:13 | |
perlpilot | dugword: btw, you don't want to use "is export"? | 19:14 | |
dugword | They are helper functions and not part of the module API, but I wanted to setup tests to make sure they work as expected | ||
is export with (:debug) or something would work | |||
rindolf | Hi all! How do I insert/add an element to a SetHash? It's not here - docs.perl6.org/type/SetHash.html | 19:15 | |
dugword | but I thought that calling it by the full name would be easier. But that wasn't working and I had to figure out why :) | ||
rindolf | ah , I see, | 19:16 | |
%H{$item} = True; | |||
perlpilot | rindolf: or any true value. | 19:17 | |
rindolf | perlpilot: yes | ||
brokenchicken | m: my $s = SetHash.new; $s<42>++; say $s | 19:19 | |
camelia | rakudo-moar 2a7c27: OUTPUT«SetHash.new(42)» | ||
raschipi | m: my SetHash %h; %h = :item | 19:20 | |
camelia | rakudo-moar 2a7c27: OUTPUT«Type check failed in assignment to %h; expected SetHash but got Bool (Bool::True) in block <unit> at <tmp> line 1» | ||
brokenchicken | m: my $s = SetHash.new; $s<42 45>++; say $s | ||
camelia | rakudo-moar 2a7c27: OUTPUT«Cannot resolve caller postfix:<++>(List); the following candidatesmatch the type but require mutable arguments: (Mu:D $a is rw)The following do not match for other reasons: (Bool:D $a is rw) (Bool:U $a is rw) (Int:D $a is r…» | ||
brokenchicken | m: my $s = SetHash.new; $s<42 45> = 1, 2; say $s | ||
camelia | rakudo-moar 2a7c27: OUTPUT«SetHash.new(45, 42)» | ||
raschipi | m: my SetHash %h; %h = item => True | ||
camelia | rakudo-moar 2a7c27: OUTPUT«Type check failed in assignment to %h; expected SetHash but got Bool (Bool::True) in block <unit> at <tmp> line 1» | ||
brokenchicken | hm, that seems wrong | ||
lizmat | m: my %H := SetHash.new; dd %H; %H<a>++; dd %H; %H<a>--; dd %H # ++ and -- also work | ||
camelia | rakudo-moar 2a7c27: OUTPUT«SetHash.new()SetHash.new("a")SetHash.new()» | ||
perlpilot | raschipi: my SetHash %h; doesn't do what you think it does | ||
m: my SetHash %h; dd %h; | 19:21 | ||
camelia | rakudo-moar 2a7c27: OUTPUT«Hash[SetHash] %h = (my SetHash %)» | ||
raschipi | m: my SetHash $h; $h = :item | ||
camelia | rakudo-moar 2a7c27: OUTPUT«Type check failed in assignment to $h; expected SetHash but got Pair (:item) in block <unit> at <tmp> line 1» | ||
brokenchicken | m: my %h{Int}; %h<42> = 42; dd %h | ||
camelia | rakudo-moar 2a7c27: OUTPUT«Hash[Any,Int] %h = (my Any %{Int} = IntStr.new(42, "42") => 42)» | ||
raschipi | I see. | ||
geekosaur | that really needs to be documented better | ||
raschipi | m: my $h = new SetHash; $h = :item | ||
camelia | rakudo-moar 2a7c27: OUTPUT«5===SORRY!5=== Error while compiling <tmp>Unsupported use of C++ constructor syntax; in Perl 6 please use method call syntaxat <tmp>:1------> 3my $h = new SetHash7⏏5; $h = :item» | ||
raschipi | m: my $h =SetHash.new; $h = :item | ||
camelia | ( no output ) | ||
brokenchicken | The %h<42> syntax has an allomorph for the key, but using it with a SetHash, just uses the Int portion | ||
perlpilot | raschipi: What is this "new SetHash"?!? ;-) | 19:22 | |
brokenchicken | for the hash key I mean | ||
raschipi | m: my $h =SetHash.new; $h = :item; say $h | ||
camelia | rakudo-moar 2a7c27: OUTPUT«item => True» | ||
raschipi | Works if one does know P6 xP | ||
brokenchicken | You're swapping SetHash with a Pair | 19:23 | |
19:23
darutoko left
|
|||
raschipi | Hum, swaps the type, not asigns. | 19:23 | |
19:23
dugword left
|
|||
perlpilot | raschipi: I guess assignment doesn't work like you think either. :) | 19:23 | |
brokenchicken | ohhhh | 19:24 | |
m: my $s = SetHash.new; $s<42>++; say $s.keys[0].^name | |||
camelia | rakudo-moar 2a7c27: OUTPUT«IntStr» | ||
brokenchicken | m: my $s = SetHash.new; $s<42>++; say $s | ||
camelia | rakudo-moar 2a7c27: OUTPUT«SetHash.new(42)» | ||
brokenchicken | m: my $s = SetHash.new; $s<42>++; say $s.perl | ||
camelia | rakudo-moar 2a7c27: OUTPUT«SetHash.new(IntStr.new(42, "42"))» | ||
brokenchicken | I see. | ||
raschipi | Assigning a list of elements to a hash variable **first empties** the variable, and then iterates the elements of the right-hand side. If an element is a Pair, its key is taken as a new hash key | 19:25 | |
19:30
girafe joined
19:37
andrzejku joined
19:46
domidumont joined
19:52
rindolf left
19:54
rindolf joined
|
|||
lizmat is working on the Perl 6 Weekly | 19:57 | ||
19:57
dugword joined
|
|||
lizmat | please let me know anything of interest that you think I might have missed :-) | 19:57 | |
20:00
AlexDaniel joined,
alimon left
20:01
benchable6 left,
benchable6 joined,
bisectable6 joined,
ChanServ sets mode: +v benchable6,
ChanServ sets mode: +v bisectable6,
statisfiable6 joined
|
|||
AlexDaniel | brokenchicken: “really wishes that were out of order.” – see RT #130485 | 20:01 | |
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=130485 | ||
20:02
Ven left
|
|||
AlexDaniel | note that it was previously shuffled on purpose, but we lost it | 20:02 | |
20:02
bjz joined
20:03
evalable6 joined,
alimon joined
20:05
Ven joined
|
|||
brokenchicken | mc: (^20)».say | 20:06 | |
committable6 | brokenchicken, ¦«2015.12»: 012345678910111213141516171819 | ||
brokenchicken | mc: (^30)».say | ||
committable6 | brokenchicken, ¦«2015.12»: 01234567891011121314151617181920212223242526272829 | ||
20:06
Tonik joined
|
|||
AlexDaniel | not there | 20:07 | |
brokenchicken | c: 2015.07 (^30)».say | ||
committable6 | brokenchicken, ¦«2015.07»: 29272523211917151311975312826242220181614121086420 | ||
AlexDaniel | yea | ||
brokenchicken | hah | ||
20:07
FROGGS left
|
|||
AlexDaniel | c: 2015.09 (^30)».say | 20:08 | |
committable6 | AlexDaniel, ¦«2015.09»: 01234567891011121314151617181920212223242526272829 | ||
AlexDaniel | c: 2015.08 (^30)».say | ||
committable6 | AlexDaniel, ¦«2015.08»: Cannot find this revision (did you mean “2016.08”?) | ||
AlexDaniel | right… | 20:09 | |
geekosaur | so, glr? | ||
AlexDaniel | github.com/rakudo/rakudo/commit/a5...45458185fe | ||
20:10
mr-foobar left
|
|||
Geth | oc: 3d1db3af56 | (Wenzel P. P. Peppmeyer)++ | doc/Type/Sub.pod6 shink Rakudos ego slightly |
20:11 | |
oc: 2640d9e10f | (Wenzel P. P. Peppmeyer)++ | doc/Type/Sub.pod6 state scoping rules for Sub |
|||
20:11
lmmx left
|
|||
gfldex | I believe I just wrote a paragraph that can only be understand by those who understood it. o.O | 20:12 | |
gfldex is not proud | |||
raschipi | Who is it aimed at? I'm a begginer and understood it. | 20:13 | |
20:13
mr-foobar joined
|
|||
gfldex | do you got a good grasp of scopes? | 20:13 | |
raschipi | yeah, it's like a stack, isn't it? | 20:14 | |
I think I understand about scopes by learning a bit of assembler. | 20:15 | ||
About naming and renaming registers and pushing and popping from the stack. | |||
gfldex | how would you write a closure in assambler? | ||
20:16
Ven left
|
|||
raschipi | Well, it has to be possible. | 20:16 | |
It would probably work like OOP works in C, passing pointers to structs around. | 20:17 | ||
20:17
alimon left
|
|||
raschipi | All the happines to you guys, I'm leaving. XOXO | 20:18 | |
20:18
raschipi left
20:21
alimon joined
20:24
vendethiel- joined,
Ven joined
20:25
labster joined
|
|||
perlpilot | gfldex: I'm not sure why you specifically mention that an our scoped sub won't redefine a same-named outer sub. Is that someone's expectation? | 20:25 | |
20:26
vendethiel left
|
|||
gfldex | perlpilot: imagine you write a our scoped sub today in a fairly large file and in halve a years time you add a sub of the same name in the outer scope. That can lead to very subtile bugs if the signatures a non-trivial and not to dissimilar. | 20:27 | |
20:30
Ven left
|
|||
gfldex | and i hope my little hind may help finding such a bug | 20:31 | |
perlpilot | I agree, I'm just not sure how this sentence really helps the programmer when that happens. | 20:32 | |
gfldex | hint even, I don't really do deers | ||
the programmer may look up the docs for C<our> (not yet in the index, will do that next) | 20:33 | ||
i'm not happy how we doc scopes in general | |||
20:34
domidumont left
20:39
Ven joined,
avuserow left
20:40
avuserow joined
|
|||
mst | gfldex: seems like the sort of problem where a list of rules, followed by a boatload of examples, might be good | 20:43 | |
gfldex | mst: i don't think so. If you don't understand the underlying principle the examples may not make it *click*. Learning by change sounds LTA to me. | 20:46 | |
maybe The Books will have to solve this problem | |||
20:47
Ven left
|
|||
gfldex | s/change/chance/ | 20:47 | |
mst | 'learning by chance' ? how is it chance if the rules are clearly spelled out above the examples, with the examples existing to illustrate the consequences of the rules? | ||
gfldex | but i'm drifting into the murky waters of politics it seams | 20:48 | |
20:49
Ven joined
20:50
wamba joined
|
|||
perlpilot | I don't know about "politics", but I'd like us to asymptotically approach the intersection of clarity and utility. | 20:50 | |
There's a bit of catch-22 with examples though ... sometimes the principle is understood through many examples. You never know though, how other people learn, so it's best to err on the side of verbosity IMHO | 20:53 | ||
gfldex | How the heck does one learn how to program computers anyway? It happend so slowly to me that I never realised that I happend to me. | ||
perlpilot | gfldex: I imagine this is why we have academic degrees in education. It's those people's job to "capture" the process and reveal it. | 20:54 | |
20:55
cdg left,
Gasher left
|
|||
gfldex | i found folk with academic degrees in education seldomly able to do so | 20:55 | |
great teachers are rare | |||
perlpilot | That's because humans are a difficult bunch. (across many many axes) | 20:56 | |
gfldex: I've been told that I'm an excellent teacher, but I think they're wrong. I was an excellent teacher of algebra to my sister-in-law, but I doubt I'd be able to reproduce my success with her across more people. I just happened to find the right words to make things click for her. | 20:57 | ||
My wife on the other hand is an excellent teacher. Period. If you throw her in a situation where she has to teach something she doesn't know anything about, she will learn as much as she can about the subject and then present it in many different ways depending on who she's teaching to | 20:59 | ||
20:59
Gasher joined
21:02
Ven left,
andrzejku left
21:04
bjz left
21:06
Ven joined
|
|||
pmurias | gfldex: isn't the learning how to program computers really different across people? | 21:06 | |
gfldex | that may very well be | 21:08 | |
pmurias | training large quanties of programmers doesn't seem to be a solved problem despite the EU try to throw money at it | 21:11 | |
21:12
lmmx joined
21:17
Ven left
|
|||
pmurias | gfldex: as a kid on the second attempt to learn programming I worked my way throught "Learning Perl" book (the first failed attempt was my dad showing me some stuff in LOGO) | 21:17 | |
21:22
labster left
|
|||
lizmat | and another Perl6 Weekly hits the Net: p6weekly.wordpress.com/2017/01/16/...turing-ok/ | 21:24 | |
samcv | lizmat++ | 21:25 | |
21:26
Ven joined
|
|||
samcv | huggable, release | 21:29 | |
huggable | samcv, nothing found | ||
samcv | NeuralAnomaly, release | ||
NeuralAnomaly, help | |||
NeuralAnomaly | samcv, stats | blockers | ||
samcv | buggable, help | ||
buggable | samcv, tags | tag SOMETAG | eco | eco Some search term | speed | ||
samcv | i forget which bot told me when the next release was | 21:30 | |
moritz | NeuralAnomaly: release | ||
NeuralAnomaly: help | 21:31 | ||
NeuralAnomaly | moritz, stats | blockers | ||
AlexDaniel | NeuralAnomaly: stats | 21:32 | |
NeuralAnomaly | AlexDaniel, [✘] Next release will be in 4 days and 7 hours. Since last release, there are 87 new still-open tickets (87 unreviewed and 0 blockers) and 324 unreviewed commits. See perl6.fail/release/stats for details | ||
21:32
Ven left
21:33
bjz joined
|
|||
AlexDaniel | m: say "\c[woman gesturing OK]".chars | 21:33 | |
camelia | rakudo-moar f67df8: OUTPUT«1» | ||
AlexDaniel | :O | ||
so RT #127048 is now fixed? | 21:34 | ||
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=127048 | ||
21:35
labster joined
21:39
rindolf left
|
|||
perlpilot | Is the bot going to automatically cut a release too? :-) | 21:39 | |
lizmat | AlexDaniel: afaik it's on samcv's radar ? | 21:40 | |
AlexDaniel | well, all unicode issues are on samcv's radar | 21:41 | |
samcv | uhm mostly AlexDaniel . not all the things in the emoji test file pass though | ||
this is a new test | |||
AlexDaniel | ok! | ||
samcv | heh ;) AlexDaniel | ||
run it yourself and see. though we pass almost all of them :) | |||
well. idk there's a lot of tests | |||
# Looks like you failed 275 tests of 1943 | 21:42 | ||
used to be like failed 1500 I believe | |||
21:43
bjz left
|
|||
samcv | will reply to that RT with some info | 21:43 | |
21:43
lmmx left
|
|||
AlexDaniel | mc: my @x = lazy 1..3; my @y = lazy 6..9; say (@x X @y)[^10] | 21:43 | |
committable6 | AlexDaniel, ¦«2015.12»: ((1 6) (1 7) (1 8) (1 9) Nil Nil Nil Nil Nil Nil) | 21:44 | |
AlexDaniel | m: my @x = lazy 1..3; my @y = lazy 6..9; say (@x X @y)[^10] | ||
camelia | rakudo-moar f67df8: OUTPUT«No such method 'EmptyIterator' for invocant of type 'Rakudo::Iterator' in block <unit> at <tmp> line 1» | ||
AlexDaniel | vOv | ||
samcv | m: Uni.new(0x1F3F3, 0xFE0F, 0x200D, 0x1F308).Str.uninames.perl.say | ||
camelia | rakudo-moar f67df8: OUTPUT«("WAVING WHITE FLAG", "VARIATION SELECTOR-16", "ZERO WIDTH JOINER", "RAINBOW").Seq» | ||
samcv | m: Uni.new(0x1F3F3, 0xFE0F, 0x200D, 0x1F308).Str.comb.».uninames.perl.say | ||
camelia | rakudo-moar f67df8: OUTPUT«(("WAVING WHITE FLAG", "VARIATION SELECTOR-16", "ZERO WIDTH JOINER").Seq, ("RAINBOW",).Seq)» | ||
samcv | weird how it breaks there. rainbow must have some odd properties it's not checking | 21:45 | |
AlexDaniel | mc: my @x = lazy 1..3; say (@x X 4..7)[^10] | 21:46 | |
committable6 | AlexDaniel, ¦«2015.12»: ((1 4) (1 5) (1 6) (1 7) (2 4) (2 5) (2 6) (2 7) (3 4) (3 5)) | ||
AlexDaniel | m: my @x = lazy 1..3; say (@x X 4..7)[^10] | ||
camelia | rakudo-moar f67df8: OUTPUT«No such method 'EmptyIterator' for invocant of type 'Rakudo::Iterator' in block <unit> at <tmp> line 1» | ||
AlexDaniel | bisect: my @x = lazy 1..3; say (@x X 4..7)[^10] | ||
bisectable6 | AlexDaniel, Bisecting by exit code (old=2015.12 new=f67df8a). Old exit code: 0 | ||
lizmat | AlexDaniel: github.com/rakudo/rakudo/commit/4386e77b39 # EmptyIterator | ||
bisectable6 | AlexDaniel, bisect log: gist.github.com/777b717d9ee92fe64d...c990f12d96 | ||
AlexDaniel, (2017-01-16) github.com/rakudo/rakudo/commit/8a...3534a07026 | |||
21:46
Ven joined
|
|||
AlexDaniel | lizmat: this won't fix the last issue, right? | 21:47 | |
lizmat checks | |||
AlexDaniel | lizmat: reading the weekly, I don't understand the change related to X and is-lazy | 21:48 | |
lizmat: just because something is lazy doesn't mean it is infinite, right? | |||
lizmat | no, just that the Iterator is marked "is-lazy" | ||
generally that means that you cannot reify it completely | 21:49 | ||
AlexDaniel | m: say (1..3 X 5..9).WHAT | ||
camelia | rakudo-moar f67df8: OUTPUT«(Seq)» | ||
AlexDaniel | lizmat: so why was X changed? | ||
“This is actually pretty nonsensical, as the left hand side of the X will only ever produce the first value, because the right hand side will never exhaust” | 21:50 | ||
lizmat | well, it's not changed, it's just that incorrect uses will now die | ||
AlexDaniel | what is an incorrect use? | ||
lizmat | m: 1..* X 1..* | ||
camelia | rakudo-moar f67df8: OUTPUT«WARNINGS for <tmp>:Useless use of "X" in expression "..* X 1.." in sink context (line 1)Can only have one lazy sequence in a cross in block <unit> at <tmp> line 1» | ||
AlexDaniel | m: 1..* X (lazy 1..5) | 21:51 | |
camelia | rakudo-moar 4386e7: OUTPUT«WARNINGS for <tmp>:Useless use of "X" in expression "..* X (lazy 1..5)" in sink context (line 1)Can only have one lazy sequence in a cross in block <unit> at <tmp> line 1» | ||
AlexDaniel | so no, this change is wrong | ||
21:51
azawawi joined
|
|||
lizmat | but why would you do a lazy 1..5 there ??? | 21:52 | |
why add the lazy there? That's a DIHWIDT | |||
azawawi | Perl 6 rocks... enterprise resource planning here we come... github.com/azawawi/perl6-odoo-clie...in.pl6#L55 :) | ||
AlexDaniel | what if I have something lazy that comes from somewhere else? Is it going to work in this case? | 21:53 | |
lizmat | m: dd (1..* X~ 1..5)[^20] | ||
camelia | rakudo-moar 4386e7: OUTPUT«("11", "12", "13", "14", "15", "21", "22", "23", "24", "25", "31", "32", "33", "34", "35", "41", "42", "43", "44", "45")» | ||
lizmat | if there are 2 lazies, then left one will become unused | ||
AlexDaniel | /o\ | 21:54 | |
let's try something like | |||
m: say 1..* X~ lines() | |||
camelia | rakudo-moar 4386e7: OUTPUT«(...)» | ||
21:54
inra joined
|
|||
AlexDaniel | m: say (1..* X~ lines())[^20] | 21:54 | |
camelia | rakudo-moar 4386e7: OUTPUT«(1»Wann treffen wir drei wieder zusamm?« 1 »Um die siebente Stund‘, am Brückendamm.« 1 »Am Mittelpfeiler.« 1 »Ich lösche die Flamm.« 1 »Ich mit« 1 1 »Ich komme vom Norden her.« 1 »Und ich vom Süden.« 1 …» | ||
AlexDaniel | hmmm | 21:55 | |
lizmat | is that what you expected? | ||
m: say (1..* Z~ lines())[^20] # did you mean this? | |||
camelia | rakudo-moar 4386e7: OUTPUT«(1»Wann treffen wir drei wieder zusamm?« 2 »Um die siebente Stund‘, am Brückendamm.« 3 »Am Mittelpfeiler.« 4 »Ich lösche die Flamm.« 5 »Ich mit« 6 7 »Ich komme vom Norden her.« 8 »Und ich vom Süden.« 9 …» | ||
AlexDaniel | hmmmmm so the point is that because both of them are lazy, potentially we will not be able to reify the right side? | 21:56 | |
and therefore the user has to eager one of them explicitly? | |||
lizmat | doesn't matter whether it's eager or not | 21:57 | |
if you have 2 unending iterables, the first one will only ever produce 1 value | |||
AlexDaniel | but my point was that nobody said they're unending, just lazy | ||
lizmat | fwiw, I think the "is-lazy" name on iterators is actually wrong | 21:58 | |
"is-not-ending" or "is-unending" | |||
would be more correct | |||
gfldex | will-not-EndIteration | ||
lizmat | "is-without-known-ending" | ||
something like that, yeah | 21:59 | ||
21:59
nicq20_ joined
|
|||
nicq20_ | Hello o/ | 21:59 | |
gfldex | does-not-solve-halting-probem :-> | ||
AlexDaniel | e: my @x = lazy 1..3; say (@x X 4..7)[^10] | 22:00 | |
evalable6 | AlexDaniel, rakudo-moar 4386e77: OUTPUT«(Nil Nil Nil Nil Nil Nil Nil Nil Nil Nil)» | ||
AlexDaniel | mc: my @x = lazy 1..3; say (@x X 4..7)[^10] | ||
committable6 | AlexDaniel, ¦«2015.12»: ((1 4) (1 5) (1 6) (1 7) (2 4) (2 5) (2 6) (2 7) (3 4) (3 5)) | ||
22:00
lmmx joined
|
|||
AlexDaniel | lizmat: I guess you're right. But I'm still confused a little bit | 22:01 | |
alotabit… | |||
lizmat | m: my @x = lazy 1..3; say (@x X 4..7)[^10] # this feels wrong, though | ||
camelia | rakudo-moar 4386e7: OUTPUT«(Nil Nil Nil Nil Nil Nil Nil Nil Nil Nil)» | ||
gfldex | since lizmat++ knighted the reddit question to a blog post this may need commenting on: www.reddit.com/r/perl6/comments/5n...e/dcij7nf/ | ||
jnthn | All that `is-lazy` means is that it was marked lazy. | ||
AlexDaniel | lizmat: anyway, this ↑ looks like a regression, right? | ||
lizmat | AlexDaniel: yeah it does, please rakudobug it | ||
22:01
Ven left
|
|||
jnthn | Which means it wants evaluating lazily | 22:01 | |
It may or may not be infinite | 22:02 | ||
AlexDaniel | jnthn: and this was my original point, which made me assume that X should work with lazies just fine | ||
lizmat | m: my @x = lazy 1..3; say @x.elems # jnthn: so this is correct, right ? | ||
camelia | rakudo-moar 4386e7: OUTPUT«Cannot .elems a lazy list in block <unit> at <tmp> line 1Actually thrown at: in block <unit> at <tmp> line 1» | ||
brokenchicken | perlpilot: you jest, but a bot has been cutting releases for the last 4 months... | ||
I don't get why (1..*) X (1..*) is nonsensical. Is X eager? | 22:03 | ||
lizmat | no | ||
brokenchicken | huh | ||
lizmat | but all of your X's will have "1" as the left side | ||
brokenchicken | 0.o | 22:04 | |
AlexDaniel | but… | ||
brokenchicken | m: say ((1..5) X (6..10))[^5] | ||
camelia | rakudo-moar 4386e7: OUTPUT«((1 6) (1 7) (1 8) (1 9) (1 10))» | ||
brokenchicken | Ah, OK. I get it now | ||
lizmat++ | |||
AlexDaniel | brokenchicken: ELI5 :( | ||
brokenchicken has no idea what that is | |||
AlexDaniel | brokenchicken: explain like I'm five | 22:05 | |
lizmat | well, as I said in the commit message: if jnthn TimToady would like to have it removed or s/die/warn/, that's all ok with me | ||
jnthn | lizmat: Yes | ||
lizmat | I was working on that area of the system, and it felt like a thing a could do | ||
22:05
Actualeyes left
|
|||
lizmat | *I | 22:05 | |
perlpilot | brokenchicken: I only ½ jest. The bot has been cutting releases based on a human pushing a button, right? If the bot can tell us when it *can't* cut a release for some reason, then why not let it cut releases on its own? | ||
lizmat | jnthn: s/die/warn/ ? | ||
22:06
Ven joined
|
|||
jnthn | lizmat: I was answering about .elems | 22:06 | |
lizmat | ah, ok | ||
jnthn | You were asking about X? | ||
lizmat | m: dd 1..* X 1..* # jnthn: and this ? | ||
camelia | rakudo-moar 4386e7: OUTPUT«Can only have one lazy sequence in a cross in block <unit> at <tmp> line 1» | ||
lizmat | m: dd 1,2 X 1..* # jnthn: and this ? | 22:07 | |
camelia | rakudo-moar 4386e7: OUTPUT«Can only have single element lists before a lazy sequence in a cross in block <unit> at <tmp> line 1» | ||
jnthn | Hmm...wonder if an error is a bit harsh | ||
AlexDaniel | m: say 4..7 X (lazy 1..3) | ||
camelia | rakudo-moar 4386e7: OUTPUT«Can only have one lazy sequence in a cross in block <unit> at <tmp> line 1» | ||
jnthn | I'm thinking about degenerate cases | ||
AlexDaniel | well there you have it, one lazy sequence… dammit… | ||
m: say (lazy 1..3) X 4..7 | 22:08 | ||
camelia | rakudo-moar 4386e7: OUTPUT«(...)» | ||
lizmat | well, it only broke one spectest, which was specifically doing "1..* X 1..*" | ||
brokenchicken | m: say (4...7) X (1...3) | ||
camelia | rakudo-moar 4386e7: OUTPUT«((4 1) (4 2) (4 3) (5 1) (5 2) (5 3) (6 1) (6 2) (6 3) (7 1) (7 2) (7 3))» | ||
jnthn | m: say (1..* X 1..*)[0] | ||
camelia | rakudo-moar 4386e7: OUTPUT«Can only have one lazy sequence in a cross in block <unit> at <tmp> line 1» | ||
jnthn | star: say (1..* X 1..*)[0] | ||
camelia | star-m 2016.10: OUTPUT«(1 1)» | ||
jnthn | star: say (1..* X 1..*)[1] | 22:09 | |
camelia | star-m 2016.10: OUTPUT«(1 2)» | ||
jnthn | star: say (1..* X 1..*)[^10] | ||
camelia | star-m 2016.10: OUTPUT«((1 1) (1 2) (1 3) (1 4) (1 5) (1 6) (1 7) (1 8) (1 9) (1 10))» | ||
jnthn | Those original outputs look correct? | ||
brokenchicken | Yup | ||
perlpilot | indeed | ||
jnthn | I mean, you'll never progress beyond (1,<something>) | ||
22:09
TEttinger left
|
|||
lizmat | that's the point... | 22:09 | |
gfldex | stackoverflow.com/questions/4155470...-in-perl-6 | ||
lizmat | of the die | ||
gfldex | is missing | 22:10 | |
m: my @l = 1,4,9,7,3; say [max] @l.antipairs | |||
camelia | rakudo-moar 4386e7: OUTPUT«9 => 2» | ||
jnthn | So in effect the data in the first sublist beyond the first item is dead | ||
lizmat | yup | ||
brokenchicken | yup | ||
jnthn | m: say (1,5,9,3,6).max(:k) | ||
camelia | rakudo-moar 4386e7: OUTPUT«9» | ||
jnthn | Aww :) | ||
gfldex's antiparis way is neat :) | 22:11 | ||
brokenchicken | perlpilot: because it's easier to push the button than code and debug all the logic to make it figure out when it's allowed to make a release AND the abort sequence, if we find a blocker or some other reason. | ||
AlexDaniel | anyway, RT #130566 | ||
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=130566 | ||
gfldex | i'm not going to post on stackoverflow | ||
jnthn | lizmat: I dunno, will have to ponder it some more, TimToady may have some thoughts on it | ||
lizmat: Did this arise out of somebody's actual confusion? | 22:12 | ||
Or speculated future confusion? | |||
lizmat | well, I was triggered by: | ||
perlpilot | lizmat: what if the programmer doesn't necessarily know if both lists are lazy or not? Could the star behavior be a feature? | ||
22:12
RabidGravy left
|
|||
AlexDaniel | lizmat: now what about this? | 22:12 | |
e: say 4..7 X (lazy 1..3) | |||
evalable6 | AlexDaniel, rakudo-moar 3e373ff: OUTPUT«(exit code 1) Can only have one lazy sequence in a cross in block <unit> at /tmp/m_dBb9c2z4 line 1» | ||
lizmat | m: dd (1,2 X 1..* X 3,4)[^10] | ||
camelia | rakudo-moar 3e373f: OUTPUT«Can only have single element lists before a lazy sequence in a cross in block <unit> at <tmp> line 1» | ||
lizmat | hehe | ||
22:14
TEttinger joined,
Tonik left
|
|||
lizmat | I've reverted the check | 22:14 | |
AlexDaniel closes RT tab | 22:15 | ||
lizmat | I guess if you want to shoot yourself in the feet, we should give you enough rope :-) | ||
jnthn | lizmat: My gut feeling is the check is a tad heavy-handed, but at the same time I can't think up a practical case where one may run in to it... | 22:16 | |
AlexDaniel | the thing is, even with *one* infinite list it will produce an infinite Seq, so the programmer should be aware of that himself | ||
azawawi | pasteboard.co/mUWFTtQii.png # Odoo::Client in action :) | ||
22:16
Ven left
|
|||
jnthn | Anyways, if we're happy with it reverted, I'm content with it too | 22:17 | |
lizmat | m: $ 6 'dd (1,2 X 1..* X 3,4)[^10]' | ||
((1, 1, 3), (1, 1, 4), (1, 2, 3), (1, 2, 4), (1, 3, 3), (1, 3, 4), (1, 4, 3), (1, 4, 4), (1, 5, 3), (1, 5, 4)) | |||
camelia | rakudo-moar 3e373f: OUTPUT«5===SORRY!5=== Error while compiling <tmp>Two terms in a rowat <tmp>:1------> 3$7⏏5 6 'dd (1,2 X 1..* X 3,4)[^10]' expecting any of: infix infix stopper statement end statement modifier …» | ||
lizmat | $ 6 'dd (1,2 X 1..* X 3,4)[^10]' | ||
((1, 1, 3), (1, 1, 4), (1, 2, 3), (1, 2, 4), (1, 3, 3), (1, 3, 4), (1, 4, 3), (1, 4, 4), (1, 5, 3), (1, 5, 4)) | |||
jnthn goes to rest off his headache, hopefully... | |||
Back tomorrow o/ | |||
lizmat | good night, jnthn, sleep tight! | ||
jnthn | Thanks! :) 'night | 22:18 | |
lizmat | m: my @x = lazy 1..3; say @x # AlexDaniel underlying issue | 22:19 | |
camelia | rakudo-moar 3e373f: OUTPUT«[...]» | ||
AlexDaniel | m: my @x = 6,8,9,3,42,5,-5,0,2; say @x.min | 22:23 | |
camelia | rakudo-moar 3e373f: OUTPUT«-5» | ||
AlexDaniel | m: my @x = 6,8,9,3,42,5,-5,0,2; say @x.max | ||
camelia | rakudo-moar 3e373f: OUTPUT«42» | ||
AlexDaniel | m: my @x = 6,8,9,3,42,5,-5,0,2; say @x.maxpairs | ||
camelia | rakudo-moar 3e373f: OUTPUT«[4 => 42]» | ||
AlexDaniel | m: my @x = 6,8,9,3,42,5,-5,0,2; say @x.minpairs | ||
camelia | rakudo-moar 3e373f: OUTPUT«[6 => -5]» | ||
AlexDaniel | m: my @x = 6,8,9,3,42,5,-5,0,2; say @x.minmax | ||
camelia | rakudo-moar 3e373f: OUTPUT«-5..42» | ||
AlexDaniel | m: my @x = 6,8,9,3,42,5,-5,0,2; say @x.minmaxpairs | ||
camelia | rakudo-moar 3e373f: OUTPUT«No such method 'minmaxpairs' for invocant of type 'Array' in block <unit> at <tmp> line 1» | ||
AlexDaniel | boooo… | ||
:) | |||
m: my @x = 6,8,NaN,5,3; say @x.minmax | 22:24 | ||
camelia | rakudo-moar 3e373f: OUTPUT«3..NaN» | ||
AlexDaniel | :| | ||
nicq20_ | Is there anything I can use to try and find where an error occured, if it does not tell me when it fails? | 22:25 | |
AlexDaniel | --ll-exception ? | ||
22:25
Ven joined
|
|||
nicq20_ | Hmm... That did not seem to do anything. | 22:26 | |
perlpilot | Why does minpairs and maxpairs exist? | ||
AlexDaniel | c: 2015.07 my @x = 6,8,9,3,42,5,-5,0,2; say @x.minpairs | 22:27 | |
committable6 | AlexDaniel, ¦«2015.07»: Method 'minpairs' not found for invocant of class 'Array' in block <unit> at /tmp/PmI6ZnnEbk:1 «exit code = 1» | ||
AlexDaniel | bisect: my @x = 6,8,9,3,42,5,-5,0,2; say @x.minpairs | ||
bisectable6 | AlexDaniel, Bisecting by exit code (old=2015.12 new=9537ccd). Old exit code: 1 | ||
AlexDaniel, bisect log: gist.github.com/605de7ad6fbb48f621...778dc8a4d0 | |||
AlexDaniel | maybe the commit will tell us why | ||
bisectable6 | AlexDaniel, (2016-04-08) github.com/rakudo/rakudo/commit/70...43ce23530d | ||
AlexDaniel | ah no, that's a wrong one | ||
ah, actually, it is the right one | 22:28 | ||
lizmat | it came from QuantHash | ||
and was deemed more generally usable ? | |||
Geth | oc: 5a0a902fc3 | (Wenzel P. P. Peppmeyer)++ | doc/Language/terms.pod6 complex example for `constant` |
22:29 | |
perlpilot | m: my @x = 6,8,9,3,42,5,-5,0,2; say @x.pairs.max(*.value); | ||
camelia | rakudo-moar 3e373f: OUTPUT«4 => 42» | ||
AlexDaniel | I was actually hoping max(:p) would work | 22:30 | |
22:31
Ven left
|
|||
gfldex | perlpilot: maxpairs are setty and baggy methods | 22:31 | |
perlpilot | and don't show up in doc.perl6.org. | 22:32 | |
But, I was thinking that we already have primitives we can combine to get the equivalent to minpairs/maxpairs, so what does the specialization buy us? | 22:33 | ||
AlexDaniel | again, I think these should be adverbs | 22:34 | |
Geth | oc: 0c56823051 | (Wenzel P. P. Peppmeyer)++ | doc/Type/Sub.pod6 index my and our in Sub |
||
gfldex | min/maypairs are ENODOC | ||
roast likes them tho | |||
22:35
azawawi left
|
|||
AlexDaniel | m: my @x = 2,5,3; say @x.grep: {True}, :p | 22:36 | |
camelia | rakudo-moar 9537cc: OUTPUT«(0 => 2 1 => 5 2 => 3)» | ||
22:36
bjz joined
|
|||
AlexDaniel | m: my @x = 2,5,3; say @x.max: :p | 22:36 | |
camelia | rakudo-moar 9537cc: OUTPUT«5» | ||
AlexDaniel | :P | ||
perlpilot: can you create an RFC ticket? | |||
lizmat | AlexDaniel: github.com/rakudo/rakudo/commit/0cd921e351 # RT #130566 | 22:38 | |
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=130566 | ||
lizmat | AlexDaniel++ # good catch! | ||
AlexDaniel | and a quick one too :) | ||
e: my @x = lazy 1..3; say (@x X 4..7)[^10] | |||
evalable6 | AlexDaniel, rakudo-moar 9537ccd: OUTPUT«(Nil Nil Nil Nil Nil Nil Nil Nil Nil Nil)» | ||
AlexDaniel | not yet… | 22:39 | |
lizmat | patience :-) | ||
good night, #perl6! | |||
AlexDaniel | o/ | ||
brokenchicken | nicq20_: that's an argument to the perl6 executable; ensure you're not passing it as an arg to your program | ||
nicq20_ | brokenchicken: Yeah, still no help. I'm trying to use tony-o's Hiker. Errors out with "Unhandled exception: cannot close a closed socket", but I don't know where. | 22:40 | |
22:40
bjz left
|
|||
nicq20_ | Seems to be in the module itself because if I just use the regular boilerplate, it still fails. | 22:41 | |
brokenchicken: Do I need to compile perl6 differently to use it? | 22:43 | ||
AlexDaniel | e: my @x = lazy 1..3; say (@x X 4..7)[^10] | 22:44 | |
evalable6 | AlexDaniel, rakudo-moar 0cd921e: OUTPUT«((1 4) (1 5) (1 6) (1 7) (2 4) (2 5) (2 6) (2 7) (3 4) (3 5))» | ||
AlexDaniel | nicq20_: no | ||
brokenchicken | AlexDaniel: well, I see this condiation with 'close' in it and when the `if` is true, the $.close will runb twice: 1 | ||
gah | |||
This Imean github.com/tony-o/perl6-hiker/blob...m6#L13-L15 | 22:45 | ||
22:45
Ven joined
|
|||
brokenchicken | I mean nicq20_ | 22:47 | |
nicq20_ | I was thinking the problem was either that, or something going out of scope. | ||
Because it happens a few seconds after loading a page. | 22:48 | ||
22:56
bstamour joined
22:59
lukaramu left
|
|||
nicq20_ | brokenchicken: Does not seem to be the 2 "$.close" calls in Render.pm6 | 23:01 | |
23:03
Ven left
23:05
Ven joined
|
|||
jdv79 | shouldn't one of these work?: gist.github.com/anonymous/4153e6dc...d391565a37 | 23:11 | |
yoleaux | 15 Jan 2017 20:13Z <brokenchicken> jdv79: how is the MetaCPAN thing going? How can willing hands contribute? | ||
jdv79 | brokenchicken: good question. nobody has asked so far. probably should have a roadmap or todo list i guess. | ||
likely update the forks to track the new metacpan stuff first since they just changed a bunch of sstuff | 23:12 | ||
and then improve on the existing bugs - there's a list somewhere | |||
and then get them to stand it up | |||
maybe:) | |||
nine_: ^^^ the gist | 23:13 | ||
any ideas? | |||
23:16
Ven left
23:17
dugword left
23:26
Ven joined
23:30
espadrine_ joined
23:33
Ven left
23:36
Ven joined
|
|||
brokenchicken | jdv79: "probably should have a roadmap." Yes, that would be very helpful. People see problems with current ecosystem and propose implementing stuff. They're then told not to, because CPAN is for that. But at the time time no one seems to know who's doing what and how to contribute. And based on updates I personally seen, there hasn't been any significant progress on that project for over a year now. | 23:37 | |
In not overly polite terms: whoever's doing whatever as far as permanet ecosystem goes should either start leading the project properly or stop doing it. | 23:40 | ||
23:41
espadrine_ left,
espadrine_ joined
23:44
Actualeyes joined,
pmurias left,
Gasher left
23:48
Ven left
23:50
Ven joined
23:51
inra left
23:52
kst left
23:53
kst joined
|
|||
jdv79 | brokenchicken: maybe its time for changes, yeah. there were necessary delays with regard to back compat | 23:53 | |
mst was handling that | |||
AlexDaniel | just a little bit of transparency can help, yes | ||
jdv79 | mst: are there any changes? | ||
for a while there we couldn't upload stuff to cpan | |||
that was the major hangup iirc | 23:55 | ||
brokenchicken | Here's mst's respponse on that from yearstersday: "msterrr, I think psixdists is running, ranguard's been popping up in here to ask stuff" | 23:56 | |
jdv79 | hmm | ||
23:57
lmmx left
23:58
lmmx joined
|