Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2015-01-15

Perl 6 | Reference Documentation | Rakudo

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:01 lue masak: not that I've done an extensive check between the two lists, but I can't find this one grid I have as a rotation or symmetry in your list.
00:03 lue (I can paste it in chat if you don't mind a 7-line paste)
00:04 lue nvm, I didn't realize I needed to scroll over the gist :P
00:05 ggoebel111111117 joined #perl6
00:05 vendethiel masak: uh, yeah, but $changed = True works
00:05 adu joined #perl6
00:05 masak vendethiel: it does.
00:06 masak vendethiel: I don't have a good rationale, except that it "feels" right to do ++ there.
00:06 vendethiel uhm. oke then :b
00:06 masak vendethiel: something about, it's OK if several actors do the ++, and if this bool were an integer, it'd care.
00:06 vendethiel that's irrelevant tho. it can't go back to false
00:07 adu I think I found a bug
00:07 adu http://pastie.org/9832410#23
00:07 masak vendethiel: neither does an Int if you just ++ it.
00:07 lue I use $sethash<key>++ in a couple places; it feels appropriate, and if I suddenly want to switch to a BagHash and care about the number of ++'s, it still works.
00:07 adu why is children and ident repeated in the .perl dump?
00:10 vendethiel masak: sure, that's not what I'm saying.
00:10 vendethiel I'm just saying -- there's nothing that can go wrong
00:12 masak vendethiel: that is true. this value $changed toggles from False to True (if at all), and then never back.
00:13 masak vendethiel: and yes, I might equally well have used `$changed = True;` there. but somehow, the way I think about that pattern if `$changed++;`
00:13 CurtisOvidPoe m: role A does B {} role B
00:13 camelia rakudo-moar 7af6a8: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/yqEeKgqgqH�Invalid typename�at /tmp/yqEeKgqgqH:1�------> [32mrole A does [33m�[31mB {} role B[0m�»
00:13 masak vendethiel: Perl 6 is gracious enough to make that DTRT with bools.
00:13 masak CurtisOvidPoe: semicolon after block.
00:13 CurtisOvidPoe m: role A does B {}; role B {}
00:13 camelia rakudo-moar 7af6a8: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/g5zut20QMQ�Invalid typename�at /tmp/g5zut20QMQ:1�------> [32mrole A does [33m�[31mB {}; role B {}[0m�»
00:14 masak CurtisOvidPoe: Perl 6 doesn't auto-insert semicolons if you have two statements on the same line.
00:14 CurtisOvidPoe But I just added the semi-colon in that second example;
00:14 psch m: role B { ... }; role A does B; role B { }
00:14 camelia rakudo-moar 7af6a8: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/s3hzsukoi_�Too late for semicolon form of role definition�at /tmp/s3hzsukoi_:1�------> [32mrole B { ... }; role A does B;[33m�[31m role B { }[0m�»
00:14 adu why does .perl have duplicates?
00:14 psch errh
00:14 psch m: role B { ... }; role A does B { }; role B { }
00:14 camelia rakudo-moar 7af6a8: ( no output )
00:15 masak CurtisOvidPoe: one-pass parsing. if you want to refer to a type, you have to have declared, or predeclared it.
00:15 CurtisOvidPoe OK. Thanks.
00:15 masak because the parser doesn't look ahead to see if the type will eventually be declared.
00:15 masak adu: no idea.
00:15 psch adu: depends on your code.  is the code that's on github for C::Parser up to date with what you're running?
00:16 broski joined #perl6
00:16 lue Don't you get duplicates when using .^methods too?
00:16 broski got a question!
00:16 masak shoot!
00:16 broski does perl6 have a cms yet
00:16 masak don't think so.
00:16 masak there's some web stuff.
00:17 masak haven't heard about a CMS.
00:17 adu masak: https://github.com/andydude/p6​-c-parser/tree/cast-version-2
00:17 broski I want to be all over that
00:17 masak (I won't count November, it's bit-rotted.)
00:17 masak broski: glad to hear it :)
00:17 adu masak: psch: it is now, the cast-version-2 branch
00:17 broski does apache have a perl6 module?
00:18 broski i'm sorry noob questions
00:18 masak I don't think it does.
00:18 jercos Does it need to? SCGI, FastCGI, so on so forth seem better to me.
00:18 lue Not to my knowledge, but you can use the various CGIs from P6.
00:18 masak I think Bailador et al just do their own web server.
00:18 masak also, what jercos said.
00:18 masak lue: CGI? what is this, the 90s? :P
00:19 broski yeah seriously lol
00:19 lue masak: CGIs, plural. As in CGI, FastCGI, SCGI, ... :P
00:19 geekosaur WSGI
00:19 * masak .oO( SCSI )
00:19 geekosaur mod_* is kinda considered bad these days
00:21 CurtisOvidPoe Some thoughts on roles: https://github.com/perl6/specs/issues/80
00:21 CurtisOvidPoe It’s a long discussion and I need to head to bed.
00:21 masak 'night, CurtisOvidPoe
00:21 CurtisOvidPoe ‘night masak
00:22 masak ooh, wasn't aware of "Traits: The Formal Model". will read.
00:22 jercos Autobots, transform and role out
00:22 broski :)
00:22 CurtisOvidPoe It’s an awesome paper and reall clears up a lot of confusion.
00:23 dayangkun joined #perl6
00:24 * TimToady is testing his solution for 4x4
00:24 psch m: role Foo { has @.foo; }; class Bar does Foo { }; class Baz is Bar does Foo { }; my $f = Baz.new(:children([1,2,3])); say $f.perl # adu
00:24 camelia rakudo-moar 7af6a8: OUTPUT«Baz.new(foo => Array.new(), foo => Array.new())␤»
00:25 psch that's what happens with e.g. FuncDef, Var and Children
00:25 KCL_ joined #perl6
00:26 psch i'm inclined to agree that it's probably a bug, but i'm not deep in our OOP
00:26 psch it does look wrong... :)
00:26 psch i was expecting composition to fail, as it does when Bar is a role and Baz does both, but...
00:27 psch m: role Foo { has @.foo; }; class Bar does Foo { }; class Baz is Bar does Foo { }; my $f = Baz.new(:foo([1,2,3])); say $f.perl
00:27 camelia rakudo-moar 7af6a8: OUTPUT«Baz.new(foo => Array.new(1, 2, 3), foo => Array.new(1, 2, 3))␤»
00:27 adu psch: wait, so is it because there are two "does Foo"?
00:28 adu I didn't realize that "does Foo" was inherited
00:28 masak that feels... odd...
00:28 masak but I guess you can mix in the same role once at every new inheritance level.
00:28 masak yeah, it's probably kosher.
00:29 TimToady this would probably run faster if I wasn't outputting all the solutions...
00:29 psch adu: roles get composed into the class, i.e. the class is actually created as a mixture between it's own declaration and the role (if i understand it correctly...)
00:29 adu although a pedantic compiler would complain about double-declarations
00:29 adu composition
00:29 adu hm
00:29 masak TimToady: I'm delighted that you've decided to join our obsessive problem-solving :>
00:31 kurahaupo joined #perl6
00:31 lue Let's not forget there's always hexslide :)  (Last I left off, I was busy getting annoyed at my first multithread program ever, a multithreading DLX solver for the square variant :P)
00:31 psch m: role Foo { has @.foo; }; role Bar does Foo { }; class Baz is Bar does Foo { }; Baz.^attributes.elems.say
00:31 camelia rakudo-moar 7af6a8: OUTPUT«2␤»
00:31 masak lue: I most definitely haven't forgotten hexslide.
00:32 masak lue: that third list item there, without a number? http://strangelyconsistent.org/​blog/counting-t4-configurations -- that's the universe daring me to come up with a program to compute it.
00:32 lue (Interestingly, the solver still works. It's specifically the multithreading that breaks things, I didn't break the solver itself when trying to multithread it.)
00:32 lue masak: oh, I know. The puzzle's been on and off my mind ever since you put it up :) .
00:33 masak anyway. sleep time.
00:33 masak 'night, #perl6
00:33 lue ♞ masak o/
00:33 skids joined #perl6
00:33 psch night masak
00:34 psch m: role Foo { has @.foo; }; role Bar does Foo { }; class Baz is Bar does Foo { }; Baz.^attributes.map(*.package).say
00:34 camelia rakudo-moar 7af6a8: OUTPUT«(Baz) (Bar)␤»
00:34 * psch shrugs
00:35 psch adu: that's basically it.  different packages the Attribute belongs to after being composed from the role into the class.  it doesn't look particularly useful to me, but usually that doesn't mean much :)
00:35 psch *different packages allow this to work
00:36 * psch forgot half the sentence there...
00:36 dalek mojo6: ffcaf74 | hoelzro++ | lib/Mojo/DOM/CSS.pm:
00:36 dalek mojo6: Get .class.class2 to work properly
00:36 dalek mojo6: review: https://github.com/coke/mojo6/commit/ffcaf7432d
00:36 dalek mojo6: 88ca37e | hoelzro++ | lib/Mojo/DOM/CSS.pm:
00:36 dalek mojo6: Refactor CSS predicate creation to be clearer
00:36 dalek mojo6: review: https://github.com/coke/mojo6/commit/88ca37e989
00:36 broski see ya masak:
00:36 adu psch: so if I want the expected behaviour, I have to pick one-and-only-one class which "does Foo"
00:37 psch adu: for the current behavior, yes.  you might want to bug TimToady++ or jnthn++ about this though, see if there is a good reason :)
00:39 adu :)
00:39 * adu pokes TimToady
00:43 adu I can't find RoleHOW
00:47 lue adu: I believe there are different things, like ConcreteRoleHOW and whatnot (it's been a while for me though)
00:48 skids For methods the spec says: "A class's explicit method definition hides any role definition of the  same name. A role method in turn hides any methods inherited from other  classes."
00:49 psch i think this ties in with CurtisOvidPoe++'s specs issue, at least if i understood that right as well
00:49 skids Were we talking of methods, class Bar hides role Foo, so you have role Baz overriding the method from Bar, which is really from Foo.
00:50 skids erm no Baz was a class, strike that.
00:51 skids The direct one from Foo overrides the one from Bar which is really from Foo.
00:55 lsm-desktop joined #perl6
00:59 masak just popping by to say: 4x4: 33745 mazes. 4239 after removing symmetries. more details tomorrow.
00:59 masak &
01:03 adu hmm
01:03 adu that's not it
01:03 adu I can't use "use Perl6::Metamodel::ConcreteRoleHOW;" from either perl6 or nqp
01:06 japhb Try just Metamodel::ConcreteRoleHOW
01:07 japhb There's a known issue with the Perl6:: prefix being visible or not.  Also, you don't need to 'use' it, it's already there.
01:07 adu nope
01:08 adu oh without the use
01:08 adu ok
01:08 japhb .ask skids In http://irclog.perlgeek.de/​perl6/2015-01-14#i_9939836 , what do you mean by "If you have a hand-tuned layout some of the .WHYs may present in ways that disrupt the final layout."?
01:08 yoleaux japhb: I'll pass your message to skids.
01:08 adu that works
01:09 skids japhb: when you perl6 --doc the file, the format of a method with a WHY may not be wha you want.
01:09 yoleaux 01:08Z <japhb> skids: In http://irclog.perlgeek.de/​perl6/2015-01-14#i_9939836 , what do you mean by "If you have a hand-tuned layout some of the .WHYs may present in ways that disrupt the final layout."?
01:09 psch hrm, i might have over-fixed marshalling
01:09 psch on the other hand, how useful is a java.lang.Float in perl6..?
01:10 psch $ ./perl6-j -e'use java::lang::String:from<Java>; my $string = String.new("foo"); $string.WHAT.say'
01:10 psch (Str)
01:11 japhb skids: What kinds of things are known to render wrong?  I can probably just avoid those.
01:11 psch i'm fairly sure that's too much
01:12 psch maybe differentiating by "do we come from a constructor" makes sense
01:13 psch although, probably not, considering java is famous for factories
01:15 skids japhb: signatures will have a newline after every parameter, for example.
01:16 japhb Ah, OK, interesting
01:16 japhb Is this a "hard to fix" or a "just not dealt with yet"?
01:19 skids Sort of -- it would be an easy fix to Pod::To:Text if everyone consented, but if you open that file you may fid yourself wanting to rewrite it.
01:20 japhb Oooh, volunteer sniping
01:21 japhb CurtisOvidPoe++ # preso
01:23 yeahnoob joined #perl6
01:24 skids Personally I think a small spec change allowing an author a way to exclude the autogenerated part of a declarator pod is in order, because there's no way to automatically do the best thing for every situation.
01:29 adu psch: sounds like a debate
01:31 TimToady I got an answer of 269895.
01:31 psch adu: i suppose.  i'm not sure what point of view i'm siding with yet either...
01:32 cognominal joined #perl6
01:35 adu psch: I've been debating too
01:35 TimToady masak: assuming it's correct, here's my solution to 4x4: https://gist.github.com/ano​nymous/58437645a8aa131ac7b1
01:37 japhb Woah.
01:37 TimToady it relies on knowing that all solutions will have the same number of walls, and that all solutions must touch every internal point at least once
01:38 TimToady that is, if any wall is misplaced to divide the maze into two mazes, there will be an abandoned point somewhere
01:38 TimToady that's my assumption, anyway
01:42 lue TimToady: y'know, many people would see that many indentation levels and call it a code design smell :P .
01:43 japhb Part of knowing the rules is knowing when to break them.  :-)
01:43 TimToady only because we don't have X that can depend on the previous list yet
01:44 TimToady there might well be a better way to generate all the 9-wall combinations in a set of 24
01:48 * psch goes to sleep &
01:54 colomon joined #perl6
01:54 TimToady also, it would be considerably faster to not reslice every value every time, I'm sure
01:58 KCL joined #perl6
02:24 anaeem1 joined #perl6
02:31 TimToady yes, my assumption is buggy, so my number is wrong
02:31 adu what's the difference between RoleToClassApplier and RoleToClassComposer?
02:32 TimToady oh well, lemme see if I can think of a way to rescue this approach
02:32 adu I should just stop reading the docs, they seem out of sync
02:35 JimmyZ adu: I didn't see RoleToClassComposer
02:35 TimToady afk &
02:36 adu https://github.com/rakudo/rakudo/blob/nom/docs/met​aobject-api.pod#user-content-roletoobjectcomposer
02:36 adu JimmyZ: hence by comments
02:36 adu s/by/my/
02:39 JimmyZ oh, that's the same thing
02:39 JimmyZ *they are
02:45 Mso150_h joined #perl6
02:52 chenryn joined #perl6
02:52 kurahaupo joined #perl6
03:14 chenryn_ joined #perl6
03:15 araujo joined #perl6
03:25 noganex joined #perl6
03:44 mdinger joined #perl6
03:46 mdinger I was looking at http://design.perl6.org/S05.html to determine how a character class  is negated but I couldn't find it. I expect it's different from the perl 5 `[^abc]` but I can't tell. Is it written somewhere/
03:46 mdinger *?
03:47 mdinger I also looked at http://doc.perl6.org/language/regexes and https://github.com/perlpilot/perl6-doc​s/blob/master/intro/p6-regex-intro.pod but still couldn't find it.
03:49 Mouq joined #perl6
03:52 * Mouq is finally fairly confident about his solution. It's generalizable to all grid widths and heights and could probably easily be extended for N-dimensions
03:53 chenryn__ joined #perl6
03:54 Mouq What I have now is available here: https://gist.github.com/Mouq/a2e7dc887a4a35f9a131
03:55 Mouq I'll update it with more comments explaining/proving my algorithm at some point
03:56 Mouq Originally I had a large file that kept my first approach well documented, but I scrapped it
03:57 Mouq However, I get 192 solutions for the 3x3, so it's possible there's an oversight there. They are all unique, and as far as I can tell they're all valid mazes, but I haven't checked programmatically...
03:58 colomon joined #perl6
04:01 Mouq Oh, looks like there's lots of old, misleading comments too! Hm..
04:17 skids mdinger: <-[abcd]> is inverted character class.
04:18 mdinger skids: Okay. Thanks.
04:25 mdinger Is the https://github.com/perl6/specs/ repository the proper place to file an issue such as character class negation difficult to find? It's a design document so it seems somewhat correct...or is there a more proper location?
04:27 vendethiel joined #perl6
04:27 Mouq I'd go with https://github.com/perl6/doc first
04:32 mdinger Mouq: okay
04:35 araujo joined #perl6
04:36 kaleem joined #perl6
04:38 mdinger Thanks guys
04:39 Mouq mdinger++
04:42 novice666 joined #perl6
04:44 lue Mouq: I get 192 too.
04:45 Mouq :D
04:46 * Mouq hasn't run 4x4 yet; is optimizing for readibility now, will optimize for speed next
04:46 Mouq However on 4x3 I get 2415
04:46 novice666 ?What's wrong with phaser BEGIN in perl6 -e ' say $x; BEGIN my $x=10;'   and  also    perl6 -e 'say $x; BEGIN our $x=10;'
04:47 lue I haven't written my code to handle rectangle grids, so I can't confirm anything there.
04:48 Mouq novice666: That's because of non-strictness. "say $x" auto-declares $x, and then you declare it again.
04:48 Mouq m: say $x; BEGIN my $x = 10
04:48 camelia rakudo-moar 7af6a8: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/ZIbYgXdiLyâ�¤Variable '$x' is not declaredâ�¤at /tmp/ZIbYgXdiLy:1â�¤------> [32msay $x[33mâ��[31m; BEGIN my $x = 10[0mâ�¤    expecting any of:â�¤        postfixâ�¤Â»
04:48 Mouq m: say my $x; BEGIN $x = 10
04:48 camelia rakudo-moar 7af6a8: OUTPUT«10␤»
04:49 novice666 Mouq: thanks
04:51 chenryn__ joined #perl6
04:54 novice666 mouq: but...why interpreter ignore BEGIN phase and catch the first mention of the variable?
04:55 Mouq novice666: "my" actually works parse-time, like BEGIN, installing the variable in the innermost scope
04:56 Mouq so, (as far as I understand, anyway), "say my $x" is the same as "BEGIN my $x; say $x" or just "my $x; say $x"
04:57 Mouq So the parser sees that the variable is undefined before it even gets to the BEGIN
04:58 Mouq m: say EVAL '$x'; BEGIN my $x = 10; # :P
04:58 camelia rakudo-moar 7af6a8: OUTPUT«10␤»
05:05 adu why does p6-mode indent every subline?
05:07 adu it seems that emacs' perl-mode seems more accurate for perl6 code
05:07 lue adu: because the indenter's not perfect and I haven't touched it in months :) .
05:08 adu lue: ah, so I can blame you ;)
05:08 lue Hrm, 'M-x perl-mode' just gives me cperl, so I don't know what the real perl-mode is like (and CPerl is just crap, that's why p6-mode even exists)
05:09 vendethiel joined #perl6
05:10 telex joined #perl6
05:13 araujo joined #perl6
05:23 KCL_ joined #perl6
05:23 raiph joined #perl6
05:25 Mso150 joined #perl6
05:31 khisanth_ joined #perl6
05:33 dj_goku joined #perl6
05:33 dj_goku joined #perl6
05:43 vendethiel joined #perl6
05:44 FlipBill joined #perl6
06:01 Rounin joined #perl6
06:10 vendethiel joined #perl6
06:12 yeahnoob joined #perl6
06:21 FlipBill left #perl6
06:43 morealaz joined #perl6
06:47 kaleem joined #perl6
06:55 Mouq Updated (with ~100 lines of comments): https://gist.github.com/Mouq/a2e7dc887a4a35f9a131
06:56 vendethiel joined #perl6
06:56 telex joined #perl6
07:04 morealaz left #perl6
07:07 chenryn___ joined #perl6
07:13 yeahnoob joined #perl6
07:14 yeahnoob joined #perl6
07:25 gfldex joined #perl6
07:30 anaeem1_ joined #perl6
07:31 yeahnoob joined #perl6
07:38 PZt joined #perl6
07:49 yeahnoob joined #perl6
07:49 yeahnoob joined #perl6
07:50 yeahnoob joined #perl6
07:52 FROGGS joined #perl6
07:54 chenryn joined #perl6
07:56 zakharyas joined #perl6
08:07 yakudza joined #perl6
08:15 ponbiki joined #perl6
08:15 ponbiki j xubuntu
08:15 ponbiki oops :x
08:17 darutoko joined #perl6
08:21 chenryn joined #perl6
08:30 brrt joined #perl6
08:31 cstevens joined #perl6
08:32 vendethiel joined #perl6
08:40 [Sno] joined #perl6
08:43 mvuets joined #perl6
08:51 virtualsue joined #perl6
08:51 rurban joined #perl6
08:54 rindolf joined #perl6
08:59 cognominal joined #perl6
09:11 abraxxa joined #perl6
09:34 chenryn joined #perl6
09:36 woolfy nine: ping ping ping
09:36 dalek rakudo/nom: a151332 | lizmat++ | src/core/Parcel.pm:
09:36 dalek rakudo/nom: Add <0 test to Parcel.at_pos
09:36 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/a151332d7d
09:36 dalek rakudo/nom: fdada00 | lizmat++ | src/core/Buf.pm:
09:36 dalek rakudo/nom: Bounds for Blob.at_pos, <0 check for Buf.at_pos
09:36 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/fdada00dbd
09:37 woolfy afk
09:39 kjs_ joined #perl6
09:40 Celelibi joined #perl6
09:44 broquaint joined #perl6
09:44 virtualsue joined #perl6
09:45 masak good antenoon, #perl6
09:48 dakkar joined #perl6
09:50 jnthn o/ masak
09:52 IllvilJa joined #perl6
09:53 masak all the mazes: https://gist.github.com/masak/db​655cb7ab27454cf15c#file-04-mazes
09:53 jnthn Amazing! :P
09:53 masak :D
09:55 jnthn CurtisOvidPoe++ # excellent write-up
09:55 jnthn Will read it again and comment more heavily once I'm not tied up with teaching and a cold.
09:55 CurtisOvidPoe Thanks, jnthn.
09:56 masak Mouq: if you're getting 192 for 3x3, then you should be able to compare my list https://gist.github.com/masak/c17a7c473bf6f6ad83a5 against yours and find a maze that you have but I don't.
09:56 masak Mouq: if you do, then I have a bug.
09:59 CurtisOvidPoe I’m glad the write-up was coherent. I was drinking and staying up late when I wrote it :)
10:02 yeahnoob joined #perl6
10:05 [Sno]_ joined #perl6
10:05 zakharyas joined #perl6
10:07 denis_boyun_ joined #perl6
10:18 * masak reads https://github.com/perl6/specs/issues/80 now
10:24 masak CurtisOvidPoe: fixed a typo: s/Commu<()>tivity/ta/
10:25 pecastro joined #perl6
10:25 CurtisOvidPoe Thanks
10:25 * masak .oO( ta )
10:27 masak CurtisOvidPoe: would "manually resolve the issue" in the last sentence mean something like add a trait to the overriding method to explicitly declare that it overrides?
10:27 moritz masak: and "ta" is short for "takk", right? :-)
10:28 masak moritz: you Norwegians with your "kk" :P
10:29 masak or, should I say, "kk" is admirably analytic/synthetic. but it just looks silly.
10:29 CurtisOvidPoe masak: in Smalltalk, resolving a conflict of that sort involves explicitly excluding conflicting methods. How it should happens in Perl 6 is something I could only guess at.
10:30 masak CurtisOvidPoe: I'm pretty sure with the changes you propose, https://github.com/masak/00​7/blob/master/lib/_007/Q.pm would break in one way or another :)
10:30 masak not that I consider that an argument against the change, necessarily -- what you say makes a whole lot of sense.
10:30 masak but it would be a slightly breaking change.
10:32 CurtisOvidPoe Yeah, I realize that not everyone would be happy with it. I’ve just been bitten by this enough times that I’ve realized that the traits researchers really did a brilliant job in their formalism (as opposed to say, mixins, which were an experimental hack that happened to get to the core of the inheritance problem)
10:32 masak CurtisOvidPoe: if I understand correctly what "explicitly excluding conflicting methods" means, then that feels like a slightly clunky way to do it.
10:33 masak CurtisOvidPoe: well, you had me at "associativity and commutativity" :) I want this too.
10:33 CurtisOvidPoe masak: I’m not overly fussed about the implementation so long as I can *know* when behavior is being discarded.
10:33 masak *nod*
10:34 ugexe joined #perl6
10:39 virtualsue joined #perl6
10:54 fhelmberger joined #perl6
10:59 masak TimToady++'s maze solver may have been wrong, but thinking about it made me think about another way to write my solver.
11:03 FROGGS now I think about thinking about thinking to write about a solver
11:08 rurban better FFI to a good existing solver, sat or smt. Simple ones get really slow soon
11:09 masak rurban: part of the joy is using Perl 6 for this, though.
11:10 denis_boyun joined #perl6
11:10 masak rurban: also, I didn't find much of any code to enumerate spanning trees. much less identify symmetries afterward.
11:10 chenryn joined #perl6
11:13 araujo joined #perl6
11:13 araujo joined #perl6
11:21 grondilu joined #perl6
11:22 grondilu std: sub (:$a, @b) {}
11:22 camelia std f9b7f55: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤Cannot put required parameter after variadic parameters at /tmp/QucSA3sbdY line 1:â�¤------> [32msub (:$a, @b[33mâ��[31m) {}[0mâ�¤Potential difficulties:â�¤  @b is declared but not used at /tmp/QucSA3sbdY line 1:â�¤------> [3…»
11:22 * grondilu is not quite sure about this
11:22 sqirrel joined #perl6
11:22 masak then maybe read up on S06 :)
11:23 masak can't put positionals after nameds in signatures.
11:23 masak it's fine in argument lists, though.
11:28 ab5tract joined #perl6
11:35 grondilu I thought I could put named args wherever I want.
11:35 jnthn CurtisOvidPoe: I wonder if you have an example of com/assoc bustage *without* using subset types.
11:35 grondilu (I mean, isn't that the point of nming them?)
11:36 jnthn grondilu: No, you put positional ones first in the sig, then nameds.
11:36 jnthn Been that way for as long as I can remember.
11:36 jnthn It's probably sane for the reader :)
11:37 grondilu k
11:37 jnthn CurtisOvidPoe: My gut feeling is that a warning is not the way to go, and an error and having to mark up the resolution somehow is maybe closer.
11:38 colomon joined #perl6
11:39 donaldh joined #perl6
11:40 xfix joined #perl6
11:40 xfix joined #perl6
11:42 CurtisOvidPoe jnthn: You might be right, but I’m unsure. I’ve dithered on that a lot.
11:43 CurtisOvidPoe jnthn: the setset examples were there because they brought out the multi issues. For issues without multis, the subsets are necessarily to show the issue.
11:44 CurtisOvidPoe Gah! “For issues without multis, the subsets *aren’t necessary* to show the issue.”
11:45 CurtisOvidPoe I rather like the idea of fatal ambiguity due to the forcing devs to treat it more seriously and building unambiguous systems. However, I’ve had a number of people object to that idea in Moose on the grounds that “it wasn’t Perlish”.
11:49 jnthn CurtisOvidPoe: Well, we're stricter on various axes in Perl 6, so it may be more fitting with the langauge generally than it is in Perl 5...
11:49 dalek rakudo/nom: 4af3cab | lizmat++ | src/core/Any.pm:
11:49 dalek rakudo/nom: Merge two at_pos candidates
11:49 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/4af3cab6ed
11:51 jnthn CurtisOvidPoe: I'd appreciate an example without multis/subsets, because I think it would make it clearer exactly where the issues lie; there may also be more than one underlying issue that wants looking at here.
11:51 CurtisOvidPoe Will do.
11:51 jnthn Thanks!
11:53 psch hi #perl6 \o
11:54 jnthn I should have a bit of time before FOSDEM to prototype some changes, if we can figure out what to try changing. :)
11:54 jnthn hi psch
11:57 psch o/ jnthn
11:58 psch jnthn: did you see the role attribute composition WAT by adu in the backlog?
11:58 psch m: role Foo { has @.foo; }; role Bar does Foo { }; class Baz is Bar does Foo { }; Baz.^attributes.map(*.package).say
11:58 camelia rakudo-moar fdada0: OUTPUT«(Baz) (Bar)␤»
11:59 psch i have a feeling that ties in with what CurtisOvidPoe bugged, but my understanding might be limited
12:01 psch also i got past my troubles in Binder.java and PR 354 implements definednes constraints :)
12:02 jnthn psch: taht's not a WAT, that's how it should work.#
12:02 jnthn Heck, the MOP even has code that *relies* on that.
12:03 jnthn More generally, attributes are scoped to classes
12:04 jnthn m: class Bar { has @.foo }; class Baz is Bar { has @.foo }; Baz.^attributes.map(*.package).say
12:04 camelia rakudo-moar fdada0: OUTPUT«(Baz) (Bar)␤»
12:04 jnthn It's equivalent to that.
12:04 CurtisOvidPoe jnthn: I’ve posted an example as a response on that ticket.
12:06 psch jnthn: oh, okay, shows what i know... :)
12:07 chenryn joined #perl6
12:08 masak CurtisOvidPoe, jnthn: +1 on errors/strictures. the philosophy in Perl 6 is that if you require higher-level abstractions (such as declared types), then Perl 6 feels it can require things of *you*, the programmer, in return.
12:09 PerlJam joined #perl6
12:15 jnthn CurtisOvidPoe: Thanks.
12:16 jnthn And yeah, that illustrates what's at stake much more simply.
12:17 sqirrel joined #perl6
12:18 jnthn psch: Does #354 pass spectest?
12:19 psch jnthn: i had 2 flaps, in supply-related tests, but they passed on their own
12:20 psch aside from that it's a few TODOs passed, the ones mentioned in RT #122229
12:20 synopsebot Link: https://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=122229
12:26 psch ...i'm rerunning now to be sure
12:28 dalek rakudo/nom: a0de41f | lizmat++ | src/core/ (6 files):
12:28 dalek rakudo/nom: Some more at_pos / assign_pos streamlining
12:28 dalek rakudo/nom:
12:28 dalek rakudo/nom: - have at least < 0 check
12:28 dalek rakudo/nom: - simplified range info in exception (no need to make a real Range object)
12:28 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/a0de41f8b1
12:29 dalek roast: 8e21b00 | lizmat++ | S32-exceptions/misc.t:
12:29 dalek roast: Adjust for simplified Range information
12:29 dalek roast: review: https://github.com/perl6/roast/commit/8e21b0085e
12:32 rindolf joined #perl6
12:38 kaleem joined #perl6
12:45 psch jnthn: yes, spectest passes (with a different flapping test this time)
12:51 colomon joined #perl6
12:55 dalek roast: 5b8cca1 | hoelzro++ | S32-exceptions/misc.t:
12:55 dalek roast: Test that parameters are included in suggestions
12:55 dalek roast: review: https://github.com/perl6/roast/commit/5b8cca1376
12:55 dalek roast: 22f9e21 | hoelzro++ | S32-exceptions/misc.t:
12:55 dalek roast:  Test attribute suggestion
12:55 dalek roast:
12:55 dalek roast:  ...when a lexical of the same name is accidentally used
12:55 dalek roast: review: https://github.com/perl6/roast/commit/22f9e21daa
12:56 colomon looking at CurtisOvidPoe's latest emailed example,isn't that exactly how p6 is supposed to work?
12:56 CurtisOvidPoe colomon: my latest emailed example? Do you mean the github issue I raised?
12:57 colomon yes
12:57 colomon sorry, they are emailed to me from github
12:57 anaeem1__ joined #perl6
12:57 CurtisOvidPoe The traits paper’s state that the order in which roles are composed is irrelevant. The P6 spec also states that the order is irrelevant. But I posted several examples where the order is very irrelevant.
12:58 moritz well
12:58 CurtisOvidPoe Since ordering issues in multiple inheritance (and mixins) are one of the core problems that traits were designed to solve, there’s a problem here.
12:58 moritz roles can carry superclasses too
12:58 moritz and order of superclasses matters
12:59 moritz so at least in that case there's probably not much we can do
12:59 moritz in other cases, maybe
12:59 dalek rakudo/nom: bba2447 | lizmat++ | src/core/Capture.pm:
12:59 dalek rakudo/nom: Unify on returning Nil on non-existing elements
12:59 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/bba2447549
12:59 dalek rakudo/nom: 0bb3add | lizmat++ | src/core/array_slice.pm:
12:59 dalek rakudo/nom: Remove < 0 check from postcircumfix:<[ ]>
12:59 dalek rakudo/nom:
12:59 dalek rakudo/nom: All of the at_pos/assign_pos have their own checks now, catered to the
12:59 dalek rakudo/nom: actual situation.  This causes some spectest breakage, because in some
12:59 dalek rakudo/nom: situations the exception type has changed.  Soon to be fixed.
12:59 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/0bb3adda51
13:00 lizmat ^^^ this should make inlining postcircumfix:<[ ]> a lot more feasible
13:00 colomon CurtisOvidPoe: you're saying that we shouldn't be able to declare a role which does another role but overrides one of its methods?
13:01 lizmat m: my $a; $a[10] := 24'   # ooh, wow
13:01 camelia rakudo-moar 4af3ca: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/lEhkFAI99Vâ�¤Two terms in a rowâ�¤at /tmp/lEhkFAI99V:1â�¤------> [32mmy $a; $a[10] := 24[33mâ��[31m'   # ooh, wow[0mâ�¤    expecting any of:â�¤        infix stopperâ�¤        infix or meta-infix…»
13:01 CurtisOvidPoe No. I’m saying that we shouldn’t silently discard the other methods behavior and make a casual reordering of roles cause silent changes to the code’s behavior.
13:01 lizmat m: my $a; $a[10] := 24   # ooh, wow
13:01 camelia rakudo-moar 4af3ca: OUTPUT«No such method 'bind_pos' for invocant of type 'Any'␤  in sub postcircumfix:<[ ]> at src/gen/m-CORE.setting:2858␤  in block <unit> at /tmp/A37GDrCFms:1␤␤»
13:02 abraxxa joined #perl6
13:03 lizmat m: my $a = (1,2,3); $a[2] := 24  # huh?  this is all legal, no?
13:03 camelia rakudo-moar 4af3ca: OUTPUT«No such method 'bind_pos' for invocant of type 'Parcel'␤  in sub postcircumfix:<[ ]> at src/gen/m-CORE.setting:2858␤  in block <unit> at /tmp/kIWj5BbYSw:1␤␤»
13:03 colomon but you're explicitly saying A does B but with A's foo in one case,and B does A but with B's foo in the other
13:04 lizmat m: my $a = (1,my $b,3).list; $a[1] := 24   # one more
13:04 camelia rakudo-moar 4af3ca: OUTPUT«No such method 'bind_pos' for invocant of type 'List'␤  in sub postcircumfix:<[ ]> at src/gen/m-CORE.setting:2858␤  in block <unit> at /tmp/JIMgXW12ai:1␤␤»
13:04 moritz lizmat: I don't think parcel should allow binding to slots
13:05 moritz lizmat: but I might very well be confused
13:05 lizmat well, if you're allowed to assign into a Parcel, why wouldn't you allowed to bind into one ?
13:11 lizmat brb
13:21 cognominal joined #perl6
13:35 pmichaud good morning, #perl6
13:36 moritz good am, pm
13:37 leont joined #perl6
13:37 ab5tract yesterday i was playing with SQL::Rabbit in perl 5
13:38 ab5tract something like this would be awesome to have in p6
13:38 ab5tract https://github.com/robinsmidsrod/XML-Rabbit
13:38 ab5tract now if only someone would finish a libxml wrapper ;)
13:39 robinsmidsrod ab5tract: :)
13:40 ab5tract oh, hai robinsmidsrod! awesome work there
13:40 ab5tract when possible, i will attempt to port that over to p6 :D
13:44 ab5tract still trying to think about how it would actually look as a p6-native module..
13:47 chenryn joined #perl6
13:47 ab5tract erm, wires crossed as i was looking at p5 db connectivity options.. that is XML::Rabbit
13:48 dalek roast: 4b5a806 | lizmat++ | S02-types/ (2 files):
13:48 dalek roast: Change exception types to new type
13:48 dalek roast: review: https://github.com/perl6/roast/commit/4b5a8063d4
13:48 dalek roast: 22ef35b | lizmat++ | S02-types/nested_arrays.t:
13:48 dalek roast: Fudge problematic test: we're throwing immediately
13:48 dalek roast: review: https://github.com/perl6/roast/commit/22ef35ba3f
13:48 dalek roast: 7cbffe8 | lizmat++ | S17-scheduler/at.t:
13:48 dalek roast: Make sure we don't die on empty arrays
13:48 dalek roast: review: https://github.com/perl6/roast/commit/7cbffe88d5
13:48 jnthn o/ pmichaud
13:48 ab5tract but speaking of SQL.. i am also dithering on porting something like http://sequel.jeremyevans.net to p6
13:49 robinsmidsrod ab5tract: yeah, I haven't been paying much attention to p6, to be honest, and have little idea how it would work with the benefits that the p6 object model gives
13:49 dalek rakudo-star-daily: 9c0dc9b | coke++ | log/ (9 files):
13:49 dalek rakudo-star-daily: today (automated commit)
13:49 dalek rakudo-star-daily: review: https://github.com/coke/rakudo​-star-daily/commit/9c0dc9bfd8
13:49 ab5tract robinsmidsrod: one thing i can quickly imagine is using the FALLBACK functionality to create the accessors
13:50 robinsmidsrod ab5tract: some of the internal method names and attributes could have better (more descriptive) names - I remember I was struggling a bit with moose internals when I created it
13:50 dalek rakudo/nom: 63933cd | peschwa++ | src/vm/jvm/runtime/org/perl6/rakudo/Binder.java:
13:50 dalek rakudo/nom: Implement definedness checks for the JVM Binder.
13:50 dalek rakudo/nom:
13:50 dalek rakudo/nom: This fixes RT #122229.
13:50 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/63933cd537
13:50 synopsebot Link: https://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=122229
13:50 dalek rakudo/nom: 9c74ab6 | jnthn++ | src/vm/jvm/runtime/org/perl6/rakudo/Binder.java:
13:50 dalek rakudo/nom: Merge pull request #354 from peschwa/rt122229
13:50 dalek rakudo/nom:
13:50 dalek rakudo/nom: Implement definedness checks for the JVM Binder.
13:50 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/9c74ab6907
13:51 jnthn lizmat: Yu're not allow to assign into a Parcel, you're allowed to assign into containers a Parcel may hold.
13:51 lizmat ok, so the error message is LTA  :-)
13:52 ab5tract i haven't actually looked at the internals yet, but the interface is really awesome
13:52 lizmat m: my $a; $a[10] := 24   # but this should work, no?
13:52 camelia rakudo-moar 0bb3ad: OUTPUT«No such method 'bind_pos' for invocant of type 'Any'␤  in sub postcircumfix:<[ ]> at src/gen/m-CORE.setting:2843␤  in block <unit> at /tmp/qGB4WKSHCv:1␤␤»
13:52 robinsmidsrod ab5tract: well, do ask if something about XML::Rabbit is strange, and I'll try to explain as best I can - you can also join the #xml-toolkit channel on irc.perl.org were we discuss it occasionally
13:53 ab5tract will do, thanks :)
13:53 * moritz was confused about the name, because he works a lot with RabbitMQ recently
13:53 * ab5tract wonders if psch++'s recent work on JVM interop means that accessing an XML parser in Java is now feasible
13:54 ab5tract where feasible stands for hacking-on-it-is-fun
13:56 psch ab5tract: well, i'm always looking for real use-case feedback... ;)
13:58 KCL joined #perl6
14:00 [Coke] psch++
14:00 [Coke] thank you SO MUCH for improving the state of rakudo-jvm
14:01 psch [Coke]: you're welcome :)
14:02 moritz and somebody please give psch++ a rakudo commit bit
14:02 moritz psch: have you submitted a CLA to The Perl Foundation already?
14:02 psch moritz: about 6 weeks ago or so i think.  i inquired 2 or 3 weeks back if it arrived and was told it hasn't yet
14:06 [Coke] still not entered into the list.
14:06 jnthn Aww
14:06 jnthn But +1 from me for psch to have commit bit once CLA is in the list
14:08 masak my new 4x4 maze algorithm runs for 32 minutes. that's a bit better than the last one, which ran for 2.5 hours.
14:09 masak (the new algorithm, instead of "melting" away fringe walls, "grows" walls in all possible ways from an empty starting state)
14:09 ab5tract what's a CLA? btw, i did check here first: https://github.com/perl6/specs​/blob/master/S99-glossary.pod
14:09 masak unfortunately, *this* algorithm thinks there are 4258 solutions! grr.
14:09 [Coke] Contributor Licensing Agreement.
14:09 ab5tract masak: will you be publishing a blog post? i love reading about the mini-challenges on strangelyconsistent
14:10 [Coke] s/ing/e/
14:10 masak ab5tract: I just might. this was a captivating problem.
14:10 [Coke] http://www.perlfoundation.org/​contributor_license_agreement
14:10 jnthn .oO( Commit-bit Legal Annoyance )
14:10 * masak .oO( Come, Lawyer Away! )
14:11 [Coke] basically, you agree that the TPF has a license to use the stuff you commit directly.
14:21 [Tux] joined #perl6
14:24 woolfy left #perl6
14:25 chenryn joined #perl6
14:27 masak wow, this is the worst rakudobug I've had in a while.
14:28 masak m: for 2, 3 -> $n { my $s = "0" x $n ~ "1"; say $s, ": ", $s.substr(0, 1) ~ "1" ~ $s.substr(2) }
14:28 camelia rakudo-moar 0bb3ad: OUTPUT«001: 011␤0001: 0100␤»
14:28 masak just stare at that for a while.
14:28 woolfy joined #perl6
14:28 masak that last expression with the .substr calls essentially means "put in a 1 in the second place, but leave everything else intact".
14:29 masak well, if that is so, where did the final "1" go in "0001"?
14:29 * masak submits rakudobug
14:29 masak p6: for 2, 3 -> $n { my $s = "0" x $n ~ "1"; say $s, ": ", $s.substr(0, 1) ~ "1" ~ $s.substr(2) }
14:29 camelia rakudo-parrot 0bb3ad: OUTPUT«001: 011␤0001: 0101␤»
14:29 camelia ..rakudo-moar 0bb3ad: OUTPUT«001: 011␤0001: 0100␤»
14:29 masak right.
14:29 IllvilJa joined #perl6
14:30 masak since I know a tiny bit about how strings are implemented on Moar, I predict that the bug will be tracked down in how string repetitions are handled.
14:31 masak this is ultimately what's causing the different results for me in the maze finding. well, it's the most obvious cause, anyway.
14:32 masak p6: for 2, 3 -> $n { my $s = "0" x $n ~ "1"; say $s.substr(2) }
14:32 camelia rakudo-moar 0bb3ad: OUTPUT«1␤00␤»
14:32 camelia ..rakudo-parrot 0bb3ad: OUTPUT«1␤01␤»
14:33 masak p6: my $s = "0" x 3 ~ "1"; say $s.substr(2)
14:33 camelia rakudo-moar 0bb3ad: OUTPUT«00␤»
14:33 camelia ..rakudo-parrot 0bb3ad: OUTPUT«01␤»
14:33 masak p6: say ("0" x 3 ~ "1").substr(2)
14:33 camelia rakudo-moar 0bb3ad: OUTPUT«00␤»
14:33 camelia ..rakudo-parrot 0bb3ad: OUTPUT«01␤»
14:33 masak even golfer.
14:37 masak ...and if anyone felt that we took up a bit much of the airwaves with our mazes nonsense, know that it led directly to the finding of this bug. :>
14:38 skids joined #perl6
14:40 * moritz is only sorry that he couldn't follow the airwaves more closely
14:43 tadzik hmm, at some point Steroids got broken, in particular this: https://github.com/tadzik/steroids/​blob/master/lib/Steroids/SDL.pm#L45
14:43 tadzik it says "use the :() form if you meant to add signature info to the function's type", where should that colon go?
14:43 tadzik &cb:() doesn't seem to do the same thing
14:44 pmurias joined #perl6
14:45 pdcawley joined #perl6
14:45 pmurias tadzik: add whitespace, I have seen the same error in Inline-Python
14:45 masak `&cb (int32)`?
14:46 pmurias yes
14:46 tadzik yeah, that works
14:46 tadzik thank you pmurias++
14:47 woolfy nine: ping svp
14:53 tadzik wow. Profiling Steroids is eye opening
14:53 araujo joined #perl6
14:53 araujo joined #perl6
14:53 tadzik I might just have a very interesting talk cooking up :)
14:54 FROGGS I expected 'memory consuming', but your's is better :o)
14:54 tadzik that too
14:54 tadzik 4.4 MB HTML file is no fun for any browser I've tried
14:54 FROGGS yeah
14:54 tadzik I literally wait a few minutes after each click for angular to react
14:54 tadzik (or crash my browser. JS pls)
14:54 FROGGS though, 4.4MB does not sound that much
14:55 tadzik most of it is JSON, aiui
14:55 FROGGS but still
14:55 FROGGS that's not BIG DATA, is it?
14:55 tadzik you know what big data is? :D
14:55 tadzik https://s-media-cache-ak0.pinimg.com/736x/91​/fd/52/91fd522284b34b4e133656f5c222c57f.jpg
14:55 FROGGS I have an idea :o)
14:56 FROGGS >.<
14:56 FROGGS *g*
14:56 tadzik anyway: most GC runs take more than there's time for a single game frame to render
14:56 tadzik the clear winner of allocations is no other than our friend Scalar
14:57 tadzik so if we somehow avoided boxing things, perhaps using binding here and there, we'll be able to relieve GC a little bit, does that make sense?
14:57 woolfy nine: I am afk, till later this evening...
14:59 pmichaud woolfy: did you get my email?
14:59 pmichaud Ah, I just got your reply, thanks.
15:02 raiph joined #perl6
15:03 tadzik pmichaud: can you tell me if my ramblings above sound correct? About Scalar allocations being avoidable to our benefit in certain places?
15:07 masak pmichaud! \o/
15:08 donaldh jnthn: what was the motivation for using annotations on the JVM backend?
15:10 donaldh jnthn: I think annotations have a performance cost, versus an alternative like generating coderef init code.
15:11 tadzik :w
15:11 tadzik pardon
15:12 * masak .oO( yes )
15:12 pmurias tadzik: you have a gigantic list you made with ng-repeat?
15:13 tadzik pmurias: ng-repeat? Well I do have lists here and there :)
15:14 * skids wonders whether applying a type system on the endianness issue has been done elegantly in any existing HL language.
15:15 skids i.e. is it the right tool for that job, and if so why is it seldom used for that job.
15:19 araujo joined #perl6
15:19 araujo joined #perl6
15:25 jnthn donaldh: I think annotations did work out faster for some reason, possibly because they deserialize lazily
15:25 jnthn donaldh: I think it led to smaller output than the code-gen too
15:26 jnthn donaldh: I know we replaced some code-gen with annotations along the way.
15:27 jnthn And it was some kind of improvement :)
15:27 donaldh jnthn: I'm seeing ~ 500ms time being spent in sun.reflect.annotation.Annot​ationParser.parseAnnotations
15:28 sqirrel joined #perl6
15:28 jnthn Wow
15:28 Hor|zon joined #perl6
15:29 donaldh jnthn: this is for ./perl6 -e 'say "hi"' which currently takes 3.2s on my machine.
15:29 H2O1 joined #perl6
15:30 jnthn donaldh: Hmm...question is if generating/executing code would take less than that.
15:30 donaldh I know. And the only way to find out for sure is to try it.
15:30 jnthn Well, other question is if we're being too eager about looking at annotations
15:30 donaldh Yes, I think that is the case.
15:30 H2O1 left #perl6
15:31 jnthn And if we can put off accessing some of them until later - as in, never for many things we dont' use.
15:31 donaldh That path may be quite fruitful.
15:31 jnthn Yeah, I'd explore that before code-gen.
15:31 * donaldh is exploring adding profiling capability like moar has.
15:32 jnthn Also maybe mine the commit log.
15:32 jnthn Because there may be hints about "why annotations" in there.
15:32 pmurias jnthn: what is required for automatic precompilation?
15:33 jnthn masak: Wow, nice golf.
15:33 masak :)
15:33 donaldh Yeah. I can't remember if annotations predate jvm landing in the nqp repo
15:33 jnthn donaldh: I'm sure they don't.
15:33 jnthn So you should find it in the nqp log.
15:34 tadzik jnthn: could you check my logic in http://irclog.perlgeek.de/​perl6/2015-01-15#i_9946128 ?
15:34 jnthn pmurias: Well, making manual precompilation have a bug or two less may be a pre-req. But then, some mechanism of knowing (a) where to cache precomps, and (b) how to invalidate them when something they depend on changed
15:35 pmurias IMHO automatic precompilation is a really important feature
15:36 pmurias because the current alternatives are either waiting which is boring and causes distractions
15:36 pmurias or writing Makefiles which is barbaric and annoying
15:38 tadzik and even if you do that it blows up in your face every so often
15:38 donaldh jnthn: This is probably the most insightful commit message - "Eliminate code-gen for huge code refs array."
15:42 jluis joined #perl6
15:43 jnthn donaldh: Apparently it caused problems, then :)
15:43 jnthn tadzik: How long do you have for a frame, ooc?
15:43 jnthn m: say 1/60
15:43 camelia rakudo-moar 9c74ab: OUTPUT«0.016667␤»
15:43 tadzik jnthn: 16.6ms
15:44 tadzik most GC runs on this machine (a little aged) take about 18
15:44 donaldh jnthn: Yes, the setting may have blown some classfile limit like method size.
15:44 jnthn Hm, that's a bit longer than I'm used to seeing. I wonder why.
15:44 jnthn donaldh: That sounds familiar. :)
15:44 jnthn donaldh: That problem happened quite a bit in general - blowing limits.
15:45 tadzik jnthn: http://imgur.com/7qbsVS6 might explain a bit :)
15:45 tadzik every run slices off about 400,000 Scalars
15:45 jnthn That explains GC frequency better than it explains the GC taking a while.
15:46 tadzik err, scratch that
15:46 jnthn Wait, what are the colors in the allocations graph?
15:46 * jnthn doesn't remember that chart :)
15:47 molaf joined #perl6
15:47 tadzik oh, hm, I assumed greens are those removed from nursery
15:48 tadzik 54 garbage collections for the code in that sample
15:48 jnthn Well, I understand the graph in the GC tab
15:48 jnthn But I dunno what the graph in the allocation tab means.
15:48 jnthn I'm fairly sure I didn't implement it. :)
15:48 tadzik you don't know? We're doomed :D
15:49 jnthn timotimo may know :)
15:49 tadzik oh, that's okay :)
15:49 tadzik anyway, I did some experiments and it's clear that binding and avoiding 'for' is a great way to avoid Scalar allocation
15:50 tadzik so if I throw a lot of that away, it's a huge win
15:51 tadzik I wonder if there's anything to do about BOOTCode
15:51 gfldex joined #perl6
15:52 jnthn Less closures... :)
15:53 tadzik heh
15:53 tadzik a loop {} running ten times comes up with 20 BOOTCodes
15:54 jnthn An...empty loop? o.O
15:54 tadzik no, not empty :)
15:54 hoelzro o/ #perl6
15:54 jnthn oh, well could be anything in there then :P
15:54 tadzik oh wait, if I cross the loop out it's still 11
15:54 tadzik so it makes sense
15:55 xinming joined #perl6
15:55 tadzik so, I think I'll talk on FOSDEM about it, looking at allocations and avoiding them to make your code less GC reliant and thus faster :)
15:56 KCL_ joined #perl6
15:59 [Sno] joined #perl6
16:00 jnthn Hopefully showing the tool that helps you discover such things :)
16:00 masak ++tadzik
16:00 jnthn BTW, for folks wishing the profiler UI wasn't written in Angular: I'm not attached to it, I just had to write it in the space of about a couple of days worth of working time.
16:01 jnthn And it's a quick way tos omething that works at all.
16:01 tadzik jnthn: otherwise even I myself wouldn't believe it :P
16:01 masak Angular for prototyping! \o/
16:01 tadzik I like it, and the reasons why it stutters on tons of data I can understand
16:01 tadzik it looks shiny and works well
16:01 jnthn Aye
16:02 jnthn Well, looks shiny is mostly thanks to BS
16:02 masak jnthn: tbh, I think I would enjoy stripping off the Angular and making it pure JS and more performant. :)
16:02 jnthn masak: Happy stripping :)
16:02 telex joined #perl6
16:02 masak wouldn't mind pairing up with someone over it.
16:03 tadzik thanks to BS? Hmm
16:03 tadzik oh, Bootstrap. Of course
16:04 jnthn Yes! :P
16:04 donaldh yes bootstrap is good for shiny OOTB
16:04 jnthn Yeah, I even used it for moarvm.org :P
16:07 pmichaud tadzik: oops, just now saw your comment
16:07 pmichaud reading
16:08 pmichaud avoiding scalar allocations can be helpful, but I think you have to be very careful with context.
16:09 pmichaud Scalars are also a way that flattening behavior is controlled.  For something that is naturally flat, it doesn't matter if it's in a Scalar, but for something like an Array, Range, or Hash (something Iterable), binding directly instead of using a Scalar may cause it to flatten where otherwise it wouldn't.
16:14 moritz what's an example of a thing that's naturally flat?
16:16 FROGGS a disk?
16:17 PerlJam pancakes :)
16:17 donaldh http://en.wikipedia.org/wiki/Flat_Earth
16:17 lumimies The NL?
16:17 moritz ... in Perl 6 context
16:17 FROGGS our jokes
16:18 PerlJam moritz: isn't a Parcel "naturally flat" in some sense?
16:18 masak the adoption curve
16:18 FROGGS >.<
16:18 lumimies FROGGS: They're not naturally flat, they just fall that way
16:18 moritz m: say 42 for $(1, 2), $(4, 3)
16:18 camelia rakudo-moar 9c74ab: OUTPUT«42␤42␤»
16:18 moritz PerlJam: ^^ two non-flat Parcels
16:19 spider-mario joined #perl6
16:19 PerlJam yeah, but you forced item context upon them against their will
16:20 masak nice. I now have parity between the two algorithms. there are 4238 4x4 mazes.
16:24 jnthn stuff &
16:24 * masak .oO( you are in a result set of 4238 unique 4x4 mazes, all alike )
16:26 dalek doc: c5c4e68 | moritz++ | lib/Language/regexes.pod:
16:26 dalek doc: Expand on negated char classes. Closes #40.
16:26 dalek doc: review: https://github.com/perl6/doc/commit/c5c4e68677
16:29 masak new, easier/faster solution: https://gist.github.com/masak/6f1c0ba393fe5eb508b1
16:30 masak I note with sadness that gist.github.com no longer highlights Perl 6.
16:30 masak :/
16:32 masak would someone be willing to port 01-mazes.p6 to Perl 5, and measure how long it takes to run? I'd appreciate that.
16:32 masak maybe we can use this as a benchmark in p6bench (though with lots fewer iterations).
16:33 masak also, I'd be very interested in any possible speedups to the Perl 6 program.
16:40 wtw left #perl6
16:41 chenryn joined #perl6
16:43 moritz where's that program?
16:43 masak https://gist.github.com/masak/6f1c0ba393fe5eb508b1
16:44 japhb masak: I happened to see it since it's near the bottom, but if you mention it as 'perl6-bench' instead of 'p6bench', I'll be highlighted.
16:45 masak got it
16:45 jluis_ joined #perl6
16:49 japhb So question for the erstwhile designers/architects: I am designing a framework for RPG systems.  I've gotten to a point where I'm not sure about the right OO design to describe my mental model.
16:50 japhb When I create a character, I have a system by which I can apply a set of templates to a "blank" character, and build up most of the basic character stats that way.
16:50 japhb I want to have different types of templates have a decent OO type layout.
16:51 japhb So for example, I have a class for AttributeTemplate, which has arrays for unused score numbers, and a preferred array to apply them.
16:52 * masak doesn't sense a question yet
16:53 japhb Now I want to be able to specify e.g. HeroicNPCAttributes, and have it provide *default values* for the unused score numbers, and e.g. MeleeFighter, and provide default preference order array.
16:53 japhb Gah, sorry, VERY poor connectivity right now
16:53 masak japhb: I'm getting vibes of http://steve-yegge.blogspot.se/200​8/10/universal-design-pattern.html -- but you're probably already aware of that.
16:54 anaeem1_ joined #perl6
16:54 japhb So mentally I'm thinking of these as roles to apply to a (possibly anopnymous) classand instantiate.
16:55 japhb masak: Quite possibly
16:55 japhb In any case, the question is (or perhaps questions are):
16:56 japhb How would you best specify default values for attributes in a role that should be applied to the parents' attributes?
16:57 japhb Is there a better design for that kind of default setting than instantiating as: (AttributeTemplate but HeroicNPCAttributes does MeleeFigher).new(...other stuff...) ?
16:57 * sjn thought roles were applied to classes, and when doing so may add change or require attributes
16:57 japhb Gah, this connectivity is killing me
16:58 sjn japhb: it sounds to me that you're overgeneralizing
16:58 anaeem___ joined #perl6
16:58 japhb sjn: Unfortunately, I got here from a more specialized design, and had to keep generalizing.
16:59 vendethiel seems like I can't type [ and ] in perl6's repl
16:59 japhb It turns out when people design pen&paper RPGs, they design completely free-form rules.  So you take e.g. Pathfinder and try to convert even just character generation rules to code, and you go crazy with special cases and crazy cross-cutting concerns
17:00 masak japhb: I'm also reminded of OLOO. don't have a good reference for that, but here's *something*: https://gist.github.com/getify/5572383
17:01 dsm what's the Perl6 version of open( my $fh, '>', \$content );?
17:01 masak dsm: writing to a scalar reference?
17:01 dsm writing to a scalar
17:02 masak dsm: I'd probably make a custom class for that which responds to the right method calls.
17:02 masak dsm: I often make a custom Output thingy -- and there's a module for that by sergot++ -- hold on
17:03 masak https://github.com/sergot/IO-Capture-Simple/
17:03 sqirrel joined #perl6
17:03 dsm great
17:03 masak here's a similar, simple example: https://github.com/masak/007/bl​ob/master/lib/_007/Test.pm#L68
17:03 araujo joined #perl6
17:04 anaeem1 joined #perl6
17:08 ab5tract what's the difference between that use and slurp ?
17:09 masak ab5tract: it's the difference between output and input.
17:09 masak (for one thing)
17:10 ab5tract okay, i must be dumbing at the moment
17:10 rurban joined #perl6
17:10 mr-foobar joined #perl6
17:12 jack_rabbit joined #perl6
17:15 Mouq joined #perl6
17:20 pmurias if I call QAST::CompUnit.new(QAST::Block.new(...)) from Perl6 it should work?
17:21 pmurias the *@children on the nqp is passed a proper nqp::list?
17:23 anaeem1_ joined #perl6
17:28 hoelzro I just saw this in S05-regex.pod: method name { "Name = $.name" }
17:28 hoelzro won't that infinitely loop?
17:29 hoelzro shouldn't it be $!name there?
17:29 * japhb is rereading that Steve Yegge article masak++ linked above -- it's amazing how much more I'm thinking about all the details when I'm hip deep in a relevant problem, rather than just reading for general knowledge
17:30 [Tux] use Test should mention the line of tests that fail (like Test::More does)
17:30 [Tux] s/line/line number/
17:30 masak japhb: glad I could help :)
17:31 japhb masak++  # Sometimes it's just the right thing said at the right time, even when the listener "already knows that"
17:33 TimToady tadzik: note tht &cb (int32) is technically wrong and will likely break someday; the current implementation steals the subsig slot for attaching function parameter constraints, but eventually we will steal it back, and &cb:(int32) will be the correct form
17:35 TimToady and the latter form ought to work currently, since the parser is just pretending the colon is a space; at least I thought I made it do that
17:37 virtualsue joined #perl6
17:37 dalek perl6-roast-data: 57b62aa | coke++ | / (5 files):
17:37 dalek perl6-roast-data: today (automated commit)
17:37 dalek perl6-roast-data: review: https://github.com/coke/perl6​-roast-data/commit/57b62aa2df
17:38 TimToady tadzik: so the &cb:(int32) form will be more future proof, if it works
17:38 TimToady and if it doesn't, I'd like to know why...
17:39 masak why during this Twitter conversation do I feel a little confused? https://twitter.com/YDKJS/​status/555119366115565571 (for context, the quiz was "Can you name three or more cases of 'significant whitespace' in JavaScript?" https://twitter.com/YDKJS/​status/555117730198585344 )
17:40 huf if + + vs ++ matters, then so does par seInt vs parseInt
17:40 huf s/matters/counts/
17:41 masak huf: except that the latter is not legal syntax.
17:41 huf hey, the meaning changes :)
17:41 huf but yeah, okay.
17:41 TimToady .oO(one of them is meaner)
17:42 huf we just feel that symboly stuff should be less whitespace-sensitive than alnummy stuff
17:44 dwarring joined #perl6
17:45 masak I dunno... that's just not what I *mean* by "significant whitespace"...
17:45 TimToady "I don't like your I-know-what-a-word-is-li-ness."  :P
17:45 masak :P
17:45 huf a ton of english words have spaces inside them
17:46 huf it's just an artifact of ortography, the germans (or we) wouldnt put any space in the middle of compound words
17:46 PerlJam huf: we call those "phrases"  :)
17:47 huf sure, sure :)
17:47 masak I can't think of another case in JavaScript where it's valid both to have two words with whitespace between them, and to write them together, and where those two cases have different meaning.
17:49 lumimies masak: var mint = 1; varmint = 1
17:50 huf a-ha! :)
17:51 [Tux] can someone explain why http://www.xs4all.nl/~hmbrand/t.pl gives me "Variable $!show used where no 'self' is available "
17:52 [Tux] can't I have helper subs inside a class?
17:52 TimToady those are called private methods
17:52 TimToady subs have no invocant
17:53 masak lumimies: :D I *just* realized that one too! but your variable name is better ;)
17:54 PerlJam [Tux]: you could move the helper sub into a scope where an invocant is available.  (but maybe hic sunt dracones if you're not careful:)
17:55 TimToady [Tux]: so declare 'method !myhelper {...}' and then call self!myhelper()
17:55 TimToady we try to keep subs and methods very far apart in Perl 6, after all the confusion in Perl 5
17:55 [Tux] I tried it like this because I want that sub to be used from two (or more) different methods but I do not want the method visible to the caller of the class
17:55 PerlJam [Tux]: private method it is then!
17:59 treehug88 joined #perl6
18:01 TimToady m: class Me { has $!show = "me"; sub myhelper(\self, *@args) { say @args, $!show }; method start() { myhelper(self, "Sink ") } }
18:01 camelia rakudo-moar 9c74ab: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/fx3EPQTGCC�Variable $!show used where no 'self' is available�at /tmp/fx3EPQTGCC:1�------> [32melper(\self, *@args) { say @args, $!show[33m�[31m }; method start() { myhelper(self, "Sin[0m�»
18:01 TimToady aww
18:01 TimToady there is so a 'self' available :P
18:02 TimToady jnthn: ^^ should that be made to work?
18:03 TimToady or do we need to know the class of self at compile time?
18:03 anaeem1_ joined #perl6
18:04 TimToady m: class Me { has $.show = "me"; sub myhelper(\self, *@args) { say @args, $.show }; method start() { myhelper(self, "Sink ") } }
18:04 camelia rakudo-moar 9c74ab: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/TnjJCfKcEO�Variable $.show used where no 'self' is available�at /tmp/TnjJCfKcEO:1�------> [32melper(\self, *@args) { say @args, $.show[33m�[31m }; method start() { myhelper(self, "Sin[0m…»
18:04 TimToady arguably that one should worker than the first one
18:05 [Tux] http://tux.nl/Files/20150115190501.png
18:05 [Tux] \o/
18:06 [Tux] some parts do not (yet) DWIM for me :)
18:06 * [Tux] commits and pushes
18:06 Mouq masak: perl6 masak-maz3.perl6 | perl6 masak-sym3.perl6 |perl6 -e"my @masak's = lines; my @mouq's = <my-3x3-sym.txt>.IO.lines; say @mouq's (-) @masak's"
18:06 Mouq set(000100010011, 000100011100, 000101010010, 000101100010)
18:07 eternaleye joined #perl6
18:07 psch hrm, i found what's probably a big blocker for real-world jvminterop use :/
18:08 psch https://gist.github.com/pe​schwa/45ff88238adc74aa2405
18:08 psch it's not only StringBuilder that has that problem, but i haven't isolated yet what pattern causes it
18:12 tgt joined #perl6
18:13 tgt masak: Did anyone translate 01-mazes.p6 to Perl 5?
18:14 vendethiel I'm looking at some kind of hole to start backlogging in, but it seems today has been a busy day :-)
18:14 masak Mouq: very interesting. I'm having supper now -- will verify later.
18:15 telex joined #perl6
18:16 masak tgt: not to my knowledge, no.
18:16 masak tgt: feel free -- it would be great to know how much faster the Perl 5 version is.
18:19 tgt I just did a quick translation. Takes just under 3s in Perl 5, but results are currently slightly different from the fifth iteration, not sure why yet. (920 vs 917, 2442 vs 2435).
18:21 cognominal joined #perl6
18:25 masak interesting.
18:25 jack_rabbit joined #perl6
18:25 masak well, at least one of the versions is wrong, then :P
18:27 revdiablo joined #perl6
18:27 treehug8_ joined #perl6
18:28 * Mouq tried to run 4x4 last night and saw output at ~30,000 before stopping it this morning (I forgot to prevent my computer from falling asleep)
18:30 Mouq Though I may be misremebering severly, since I no longer have the output
18:31 tgt How long can I expect the Perl 6 version to take? It's been running for about 20 minutes so far.
18:31 moritz tgt: it takes 21 minutes on hack.p6c.org with rakudo-moar
18:32 tadzik TimToady: it didnot
18:32 tadzik I got some strange "Expected Signature, got Any when calling such function"
18:33 mvuets joined #perl6
18:35 tgt Current Perl 5 version: https://gist.github.com/tgt/e07a3ba2a82ab4bc9348
18:36 jluis_ joined #perl6
18:43 masak tgt: on my laptop it took 32 minutes.
18:43 masak tgt: surprised you don't get a warning if you omit the parens at https://gist.github.com/tgt/e07a3ba​2a82ab4bc9348#file-gistfile1-pl-L11
18:44 masak looks like a very straightforward translation. nice.
18:44 masak tgt++
18:45 masak any discrepancies will turn out to be quite enlightening.
18:51 Sqirrel joined #perl6
18:51 kjs_ joined #perl6
18:58 flussence hi *! I'm trying to use Grammar::Tracer but it's giving me the silent treatment. I've used it before, but it's not working with a moar I built 10 minutes ago...
19:00 PerlJam flussence: are you sure you put "use Grammar::Tracer;" at the top of your code? :)
19:01 flussence yep, right before the grammar ...; line even
19:01 flussence (I've tried putting it in a few places besides that, nothing works...)
19:04 flussence oh... MVM_SPESH_DISABLE makes it work.
19:06 PerlJam sounds like either a bug that needs fixing or at least something that should be documented with Grammar::Tracer
19:10 TimToady p6: for <aa aba> xx 50 { if not m/b/ { print "."; next }; print "!"; }; say "";
19:10 camelia rakudo-moar 9c74ab: OUTPUT«.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!​.!.!.!.!.!.!.!.!.!.!.!.!.!...........​.................................␤»
19:10 camelia ..rakudo-parrot 9c74ab: OUTPUT«.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!​.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.​!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!␤»
19:10 TimToady there's a lovely moarvm bug
19:11 TimToady works right on jvm too
19:13 TimToady disabling spesh fixes it
19:14 flussence huh, if I clone the grammar-debugger repo and add to the tests to check for some output, it works fine. Maybe it's a precomp bug...
19:14 PerlJam sounds like disabled spesh is often a good thing :(
19:14 geekosaur mrrr. masak should test his little joy with spesh disabled too, perhaps
19:16 TimToady however, disabling jit, osr, or inline does not fix it
19:17 abraxxa joined #perl6
19:17 TimToady moving discussion of this bug over to #moarvm
19:20 flussence well now I'm just confused; my problem went away without spesh disabled...
19:22 abraxxa joined #perl6
19:25 kjs_ joined #perl6
19:28 anaeem1_ joined #perl6
19:28 dalek roast: ef44fab | coke++ | S17-supply/ (24 files):
19:28 dalek roast: :D now works in rakudo.jvm, unfudge
19:28 dalek roast: review: https://github.com/perl6/roast/commit/ef44fab55c
19:28 [Coke] ^^ psch++
19:29 [Coke] whoops, it was D:
19:29 vendethiel :D
19:30 telex joined #perl6
19:30 psch D: isn't a thing, that's half of :D and the invocant marker
19:30 [Coke] er :D: ?
19:31 [Coke] anyway, unfudged. thanks for doing the hard work.
19:31 psch well, that patch was mostly translating the existing binder to java
19:32 psch ...but i suppose the emphasis is on "doing" and not on "hard" :)
19:34 psch m: my method foo(Str:D :) { "yup, have self: " ~ self }; say foo "foo"
19:34 camelia rakudo-moar 9c74ab: OUTPUT«yup, have self: foo␤»
19:36 moritz masak: I have a trivial-ish patch that speeds up your script from 20m55s to 7m57s
19:36 itz_ joined #perl6
19:37 moritz masak: the trick is to numify %summetries values up-front, so that it isn't repeated inside the tight loop
19:37 moritz rot1 => +«<15 19 23 14 18 22 13 17 21 12 16 20 2 5 8 11 1 4 7 10 0 3 6 9 24>,
19:37 moritz and with +« for the other ones too
19:43 tgt masak: Using minstr instead of min in the Perl 5 code causes them to behave the same. 100000000100000100100011 and 100000000100000100110001 are identical when compared numerically since they're too large.
19:43 kaare__ joined #perl6
19:46 tgt (Gist updated.)
19:46 FROGGS joined #perl6
19:51 xfix joined #perl6
19:51 xfix joined #perl6
19:53 anaeem1 joined #perl6
19:56 obra joined #perl6
19:58 rurban joined #perl6
20:03 kjs_ joined #perl6
20:11 cognominal joined #perl6
20:18 mr-foobar joined #perl6
20:25 c0m0 joined #perl6
20:30 timotimo tadzik, jnthn, the colors in the allocations tab show how many allocations have been made from interpreted, spesh'd or jitted code
20:32 Mouq joined #perl6
20:40 abraxxa joined #perl6
20:43 andreoss joined #perl6
20:44 andreoss how do i declare state variable within multi subroutine?
20:44 moritz same as everywhere
20:44 moritz 'state $var;'
20:45 psch i think using the same state var over multiple multi candidates isn't obviously possible and you need a wrapper method or somesuch
20:46 andreoss moritz: seems it's not shared between multies
20:46 timotimo psch: not a wrapper method, just put it into the proto method
20:46 timotimo "just"
20:47 moritz andreoss: correct
20:47 moritz andreoss: you could have a common outer scope, and a state variable in there, if you need that
20:48 * moritz wonders if multis can be inside the proto
20:48 timotimo hm, interesting question
20:49 moritz m: proto f(\x) { state $a; multi f(Int $x) { $a += $x }; multi f(Str) { say $a }; {*} }; f 42; f 'a'
20:49 camelia rakudo-moar 9c74ab: OUTPUT«Cannot call 'f'; none of these signatures match:␤  in sub f at /tmp/yHPufhFJpS:1␤  in block <unit> at /tmp/yHPufhFJpS:1␤␤»
20:49 Mouq m: proto foo { state $*called = 0; {*}}; multi foo { say $*called++ }; foo
20:49 camelia rakudo-moar 9c74ab: OUTPUT«0␤»
20:55 lizmat moritz: the multi's inside the proto would not be visible outside unless you made them our maybe ?
20:56 skids Mouq: That's neat.  I bet there's somewhere I've failed to use that,  (Assuming it is working because it is supposed to.)
20:56 lizmat m: proto f(\x) { state $a; our multi f(Int $x) { $a += $x }; our multi f(Str) { say $a }; {*} }; f 42; f 'a'
20:56 camelia rakudo-moar 9c74ab: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/OwCogCehiL�Cannot use 'our' with individual multi candidates. Please declare an our-scoped proto instead�at /tmp/OwCogCehiL:1�------> [32mate $a; our multi f(Int $x) { $a += $x }[33m�[31m…»
20:56 lizmat m: our proto f(\x) { state $a; our multi f(Int $x) { $a += $x }; our multi f(Str) { say $a }; {*} }; f 42; f 'a'
20:56 camelia rakudo-moar 9c74ab: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/fHL0IbXeKe�Cannot use 'our' with individual multi candidates. Please declare an our-scoped proto instead�at /tmp/fHL0IbXeKe:1�------> [32mate $a; our multi f(Int $x) { $a += $x }[33m�[31m…»
20:56 lizmat m: our proto f(\x) { state $a; multi f(Int $x) { $a += $x }; multi f(Str) { say $a }; {*} }; f 42; f 'a'
20:56 camelia rakudo-moar 9c74ab: OUTPUT«Cannot call 'f'; none of these signatures match:␤  in sub f at /tmp/AbnXREYpl8:1␤  in block <unit> at /tmp/AbnXREYpl8:1␤␤»
20:57 lizmat alas
20:59 lizmat TimToady: is there a reason there is no autogenerated signature: (self: *@_, *%_) on methods ?
21:00 lizmat m: class A { method a { .say for @_ } }; A.a(1,2,3)
21:00 camelia rakudo-moar 9c74ab: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/qo1_ea5vW2�Placeholder variables cannot be used in a method�at /tmp/qo1_ea5vW2:1�------> [32mclass A { method a { .say for @_ } [33m�[31m}; A.a(1,2,3)[0m�»
21:00 lizmat m: class A { method a(*@_) { .say for @_ } }; A.a(1,2,3)
21:00 camelia rakudo-moar 9c74ab: OUTPUT«1␤2␤3␤»
21:03 moritz masak: I've tried some more optimizations, but +« is the only one worth it
21:04 timotimo tadzik: i'm very strongly hoping Escape Analysis and stack-allocations will make eliminating scalar container allocations manually a thing of the past
21:04 timotimo at some point in the future ...
21:05 masak tgt: ooh, I'm glad the bug was on the Perl 5 side for once :>
21:05 TimToady lizmat: well, only that @_ is a sop to P5 programmers in the first place, so extending it to methods seemed like gilding a pig's ear
21:06 lizmat sop?
21:06 TimToady other than that, it would certainly make sense to allow it in methods
21:06 TimToady hmm
21:06 masak moritz: trying your speedup.
21:07 lizmat standing operating procedure ?
21:07 FROGGS lizmat: http://www.dict.cc/?s=sop
21:07 timotimo .o( gilding a pig's ear? )
21:07 hobbs lizmat: no, like... concession.
21:07 lizmat pacifier  ok, I can go with that
21:07 TimToady no, a bribe, a sweetener
21:08 hobbs that too
21:08 FROGGS nine would say 'Zuckerl' :o)
21:08 lizmat so, don't we need to bribe P5 class programmers as well :-)
21:08 TimToady sorry, all my native english seems to have leaked out all at once :)
21:08 * lizmat hands TimToady a blanky
21:10 masak "something given to pacify or quiet, or as a bribe", says http://dictionary.reference.com/browse/sop
21:11 TimToady like what you give a baby to suck on so it doesn't cry
21:11 TimToady except I've never heard a baby pacifier called a 'sop'
21:11 masak @_ ==> baby
21:11 TimToady looks more like a perambulator
21:12 TimToady other than 'pacifier', I've heard 'plug' and 'binky'
21:14 timotimo and then there's the words the little ones invent to refer to the pacifier
21:14 TimToady specifically, however, a sop is something porous that you've dipped into a liquid and given to someone
21:14 TimToady quite a complicated valence
21:14 vendethiel joined #perl6
21:14 TimToady 'pah', for one of our kids
21:15 moritz ah, in good old Bavaria that liquid would have been beer, even for babies
21:15 lizmat and in france, it would probably be wine  :-)
21:15 * vendethiel has never drank wine in a family dinner
21:16 moritz lizmat: array_slice.pm has lots of occurrences of '+@positions'. Shouldn't @positions.elems be faster?
21:16 moritz lizmat: prefix:<+> dispatches to .Numeric, and .Numeric to .elems
21:16 lizmat moritz: will do that
21:16 lizmat but it won't matter much, I'm afraid
21:17 moritz lizmat: I'd do it myself, but I have no idea how to benchmark it
21:17 lizmat to make things like @a[^10] much faster
21:17 moritz because I don't know which path triggers it
21:17 lizmat we need a separate at_range method, I think
21:17 * TimToady notes that putting the <0 check into at_pos means every entry of [^10] has to check it
21:18 TimToady unless we provide an at_pos_raw
21:18 lizmat well, I was more thinking at_range
21:18 TimToady well, would probably be _nocheck
21:19 lizmat BTW, at the moment this also happens
21:19 timotimo if you implement at_range, that wouldn't "automatically" exist for things that implement at_pos ...
21:20 lizmat because @a[^20] internally maps to @a[$_} for ^20
21:20 lizmat *]
21:20 lizmat I actually tried to put a shortcut to at_pos in there
21:20 lizmat but then all sorts of nested arrays break
21:21 bartolin joined #perl6
21:21 lizmat timotimo: at_range would be called from circumfix:<[ ]> only for limited Range objects
21:22 lizmat with numeric keys, so we can do the bounds check on the first/last element of the range once
21:22 virtualsue joined #perl6
21:22 timotimo OK, fair enough
21:24 timotimo oooooh my gosh
21:24 lizmat ???
21:24 timotimo i can move through the history of CWDs in fish shell just with alt and left and right arrows
21:24 timotimo that's awesome
21:25 * TimToady just leaves a different desktop in each directory
21:25 timotimo hehe
21:27 TimToady I know that nom/src is two to the right and two down from here
21:27 TimToady specs are just down one, nom to the right of that, nom/nqp to the right of that, and nom/nqp/MoarVM to the right of that :)
21:28 timotimo have you ever considered a "3d grid" of workspaces? :)
21:29 TimToady that's my other computer :)
21:30 masak moritz: yup. 7 minutes, 14 seconds here too.
21:30 masak moritz: I wonder if there's an optimization could be crammed out of that one.
21:30 timotimo out of what exactly? @positions.elems?
21:31 moritz timotimo: pre-numifying a list of strings that is used often
21:31 moritz timotimo: in masak++'s maze code
21:31 timotimo oh
21:32 lizmat masak: hmmm.... seems Array.elems is falling back to List.elems
21:32 timotimo is there an optimization opportunity in that?
21:32 lizmat hmmm...  I guess we must check for unreified elemens  :-(
21:33 lizmat something for the GLR for sure
21:33 timotimo oh, hm
21:33 lizmat on bounded Array's for sure  :-)
21:33 * moritz has an idea for that
21:35 moritz can't we check nqp::defined($!nextiter), and only call .gimme if it's defined?
21:36 lizmat moritz: I'm still not sure when I can do that, but I can sure try  :-)
21:36 moritz lizmat: I can try too :-)
21:36 lizmat be my guest :-)
21:36 timotimo gimme also checks if nqp::defined($!nextiter), right? but we probably don't inline that
21:37 dalek rakudo/nom: 4853cce | lizmat++ | src/core/array_slice.pm:
21:37 dalek rakudo/nom: Faster check for +@positions, moritz++
21:37 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/4853cce012
21:37 TimToady yowsers, https://euobserver.com/justice/127232
21:37 TimToady now where would a large group of people be gathering in Belgium...
21:37 lizmat I specifically did not touch that, as I hoped it would solve itself when pmichaud continues to work on the GLR
21:38 moritz lizmat: you're probably right
21:38 moritz lizmat: I also note that either I have to introduce a new scope, or do a return, both of which might be slower
21:38 lizmat yeah  :-(
21:39 lizmat but I do think I can make the [*-1] case faster
21:39 timotimo hm
21:39 timotimo maybe we could have a global instance of *-1 that we can identity-check and special-case?
21:40 timotimo because i think *-1 is pretty common
21:40 [Tux] FROGGS++; # Tuxic - it caused my return
21:40 TimToady might be able to generalize to *-anything
21:40 lizmat well, *-1 is a Callable
21:40 timotimo TimToady: perhaps ... perhaps with the 6model parametric extensions :)
21:40 lizmat can we distinguish that any other way ?
21:41 TimToady we have control of the parse, so anything is possible :P
21:41 FROGGS [Tux]: but I did nothing in that regards lately :o)
21:41 timotimo if our optimizer turns all instances of *-1 into the same instance of Callable, we can just $argument eqv (*-1)
21:41 [Tux] it still works
21:42 lizmat m: (*-1).WHAT.say
21:42 camelia rakudo-moar 9c74ab: OUTPUT«(WhateverCode)␤»
21:42 lizmat still, I don't know how to introspect that for the "-1" part
21:42 timotimo just let it does an int or something :P
21:42 timotimo Int*
21:43 kurahaupo joined #perl6
21:44 TimToady you use that introspect word again, which is evil
21:45 TimToady the parser should turn it into a different type
21:45 TimToady it could be something derived from WhateverCode
21:49 TimToady or maybe it could be a specially typed integer that just counts from the end, and happens to respond as a WhateverCode as well
21:50 TimToady just optimizing for *-1 is too specific
21:50 timotimo fair enough
21:56 lizmat TimToady: the  big time sink atm is the gimme(*) on the array
21:56 lizmat just to find out how many elements there will be
22:02 TimToady gimme is a vast pit of introspection
22:04 timotimo aye
22:04 dalek doc: 0e44c0c | moritz++ | lib/Type/IO/FileTestable.pod:
22:04 dalek doc: IO::FileTestable: link anchors, mention method form
22:04 dalek doc: review: https://github.com/perl6/doc/commit/0e44c0c833
22:06 moritz http://perlpunks.de/paste/show/54b839ca.21f9.313 spectests fine; does anybody know how to benchmark it in a meaningful way?
22:06 moritz shaves off one second off the spectest run, which is just noise
22:07 lizmat m: for ^10000 { (1,2,3).list.elems }
22:07 camelia rakudo-moar 9c74ab: ( no output )
22:07 lizmat the difference between the patches is your gain / loss
22:08 Ugator joined #perl6
22:11 moritz ok, my patch makes it slower :(
22:11 moritz erm, no
22:11 moritz I compared the wrong way around :-)
22:12 moritz time ./perl6-m -e 'my $l := (1, 2, 3).list; loop (my int $i = 0; $i < 100_000; $i = $i + 1 ) { $l.elems }'
22:12 moritz before: 0.61s
22:12 moritz after: 0.55s
22:12 jnthn TimToady: No, making attribute lookup work in a sub just 'cus there happens to be a \self is probably a bad idea. Just write a private method instead of a sub.
22:12 moritz m: say (0.61 - 0.55) / 0.61 * 100
22:12 camelia rakudo-moar 9c74ab: OUTPUT«9.836066␤»
22:13 moritz ... except that the 0.55s was an outlier
22:13 moritz now I get 0.59s instead
22:13 timotimo oh, huh
22:13 moritz m: say (0.61 - 0.59) / 0.61 * 100
22:13 camelia rakudo-moar 9c74ab: OUTPUT«3.278689␤»
22:13 dalek rakudo/nom: 0463a4b | lizmat++ | src/core/array_slice.pm:
22:13 dalek rakudo/nom: Streamline @a[*-1]:adverb by about 25%
22:13 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/0463a4b9f6
22:13 jnthn PerlJam: Joy, the first MoarVM dynamic optimizer bug I see in literally weeks and you treat it like we have one every day. :/
22:14 jnthn When was the last time you implemented a VM's dynamic optimizer?
22:14 jnthn *sigh*
22:14 moritz I'd like to use this opportunity to point out how few JIT bugs we've had
22:14 jnthn That also.
22:14 moritz I really didn't expect that
22:15 PerlJam jnthn: nah, just that I'd seen "works without spesh" like 3 times "all at once" (relatively speaking)
22:15 jnthn The last significant soruce of MoarVM bugs was the various OSX segfaults.
22:15 jnthn *source
22:16 jnthn TimToady: I guess we have $*PACKAGE available when compiling the sub so technically we could perhaps make it work. I'm still not sure if it's a good idea... We've kept sub/method pretty separate.
22:16 * moritz messed up the benchmarks again
22:16 lizmat m: my $a; (1,my $,3).list[1] := $a    # should this be allowed ?
22:16 camelia rakudo-moar 9c74ab: OUTPUT«No such method 'bind_pos' for invocant of type 'List'␤  in sub postcircumfix:<[ ]> at src/gen/m-CORE.setting:2843␤  in block <unit> at /tmp/rD_n0tQi9x:1␤␤»
22:17 [Sno] joined #perl6
22:17 moritz I'd also think that making attributes in subs work just because there's a 'self' makes 'self' much more magical than it is now
22:17 PerlJam indeed.
22:18 moritz m: say (0.61 - 0.54) / 0.61 * 100
22:18 camelia rakudo-moar 9c74ab: OUTPUT«11.475410␤»
22:20 lizmat m: say .54/.61
22:20 camelia rakudo-moar 9c74ab: OUTPUT«0.885246␤»
22:21 lizmat is what I usually do and see that's about 11%
22:21 moritz m: say 1 - 54 / 61 # :-)
22:21 camelia rakudo-moar 9c74ab: OUTPUT«0.114754␤»
22:22 lizmat moritz: turns out I didn't need .elems at all
22:23 moritz lizmat++
22:23 * moritz -> sleep
22:24 lizmat gnight, moritz
22:27 adu joined #perl6
22:28 kurahaupo joined #perl6
22:36 kjs_ joined #perl6
22:37 dagurval joined #perl6
22:37 sjn joined #perl6
22:40 psch https://github.com/peschwa/eigmi​p6/blob/master/tritone-in-c.pl6 heh
22:40 psch apparently generative music is fun, i hadn't known :P
22:41 psch with all the frameworks for it in some lisp-dialect it's not that easy to find out either
22:41 psch (fsvo "all")
22:41 Sqirrel joined #perl6
22:43 labster_ joined #perl6
22:45 psch well, maybe it's more "random chords" and not really generative...
22:45 sven_123_ joined #perl6
22:46 nebuchad` joined #perl6
22:46 mr-fooba_ joined #perl6
22:46 kshannon joined #perl6
22:46 nine_ joined #perl6
22:46 mls_ joined #perl6
22:47 moritz_ joined #perl6
22:47 torbjorn_ joined #perl6
22:47 Util_ joined #perl6
22:47 gtodd1 joined #perl6
22:47 masak__ joined #perl6
22:47 mattp_ joined #perl6
22:47 [particle]1 joined #perl6
22:47 amkrankr1leuen joined #perl6
22:47 sergot_ joined #perl6
22:47 Maddingu1 joined #perl6
22:48 robins joined #perl6
22:48 haroldwu_ joined #perl6
22:49 bonsaikitten joined #perl6
22:49 btyler joined #perl6
22:49 jferrero_ joined #perl6
22:50 stux|RC joined #perl6
22:51 erdic_ joined #perl6
22:51 jdv79_ joined #perl6
22:51 BinGOs_ joined #perl6
22:51 breinbaa1 joined #perl6
22:51 sivoais_ joined #perl6
22:51 petercom1and joined #perl6
22:51 perlpilot joined #perl6
22:51 spider-mario_ joined #perl6
22:52 ribasushi joined #perl6
22:52 Colby` joined #perl6
22:52 revdiablo joined #perl6
22:53 anocelot_ joined #perl6
22:53 xprime joined #perl6
22:53 Sqirrel_ joined #perl6
22:53 virtualsue joined #perl6
22:53 andreoss joined #perl6
22:53 pdcawley joined #perl6
22:53 ggoebel111111117 joined #perl6
22:53 TuxCM joined #perl6
22:53 tadzik joined #perl6
22:53 Woodi joined #perl6
22:53 mst joined #perl6
22:53 pochi joined #perl6
22:53 ka05 joined #perl6
22:53 MilkmanDan joined #perl6
22:53 Guest22354 joined #perl6
22:53 skaufman1 joined #perl6
22:53 ingy joined #perl6
22:53 daxim joined #perl6
22:53 jnthn joined #perl6
22:53 cxreg joined #perl6
22:53 mtj- joined #perl6
22:53 mathw joined #perl6
22:53 El_Che joined #perl6
22:53 Timbus joined #perl6
22:53 tinita_ joined #perl6
22:53 leedo_ joined #perl6
22:53 jakesyl_insomnia joined #perl6
22:53 bartolin joined #perl6
22:54 BinGOs joined #perl6
22:54 jakesyl_insomnia joined #perl6
22:54 epochbel1 joined #perl6
22:54 [Sno] joined #perl6
22:54 c0m0 joined #perl6
22:54 Psyche^ joined #perl6
22:54 clkao_ joined #perl6
22:54 hugme joined #perl6
22:54 vike joined #perl6
22:54 dylanwh joined #perl6
22:54 go|dfish joined #perl6
22:54 pyrimidine joined #perl6
22:54 mtj_ joined #perl6
22:54 vendethiel- joined #perl6
22:55 atta joined #perl6
23:02 ilbot3 joined #perl6
23:02 Topic for #perl6 is now »ö« Welcome to Perl 6! | http://perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: http://irc.perl6.org | UTF-8 is our friend!
23:02 davido_ joined #perl6
23:03 sergot joined #perl6
23:03 Grrrr joined #perl6
23:03 araujo joined #perl6
23:03 treehug88 joined #perl6
23:03 pmichaud_ joined #perl6
23:03 Sir_Ragnarok_ joined #perl6
23:04 DarthGandalf joined #perl6
23:04 eternaleye joined #perl6
23:04 Woodi_ joined #perl6
23:04 anocelot joined #perl6
23:05 muraiki joined #perl6
23:05 18VABY2H2 joined #perl6
23:05 mattp_ joined #perl6
23:05 ivan`` joined #perl6
23:05 felher joined #perl6
23:05 simcop2387 joined #perl6
23:05 leedo joined #perl6
23:05 camelia joined #perl6
23:05 torbjorn joined #perl6
23:05 tinita joined #perl6
23:05 Juerd joined #perl6
23:05 lumimies joined #perl6
23:05 mephinet- joined #perl6
23:05 integral joined #perl6
23:05 yogan joined #perl6
23:05 flussence joined #perl6
23:05 dalek joined #perl6
23:05 JimmyZ joined #perl6
23:05 frew joined #perl6
23:05 lestrrat joined #perl6
23:06 haroldwu joined #perl6
23:06 btyler joined #perl6
23:06 ajr joined #perl6
23:06 salv0 joined #perl6
23:06 Pleiades` joined #perl6
23:06 rmgk joined #perl6
23:07 itz joined #perl6
23:07 arnsholt joined #perl6
23:07 xinming joined #perl6
23:07 BooK joined #perl6
23:08 araujo joined #perl6
23:08 jtpalmer joined #perl6
23:08 ruoso joined #perl6
23:09 profan joined #perl6
23:09 jluis joined #perl6
23:09 tadzik joined #perl6
23:09 jack_rabbit joined #perl6
23:10 silug joined #perl6
23:10 cxreg joined #perl6
23:10 atta joined #perl6
23:10 broquaint joined #perl6
23:10 mtj joined #perl6
23:10 mst joined #perl6
23:10 nine joined #perl6
23:10 ingy joined #perl6
23:10 leont joined #perl6
23:11 ka05 joined #perl6
23:11 adu joined #perl6
23:12 sjn joined #perl6
23:12 ponbiki joined #perl6
23:12 dalek joined #perl6
23:12 moritz joined #perl6
23:12 eMBee joined #perl6
23:12 18VABY4HM joined #perl6
23:12 zoosha joined #perl6
23:12 revdiablo joined #perl6
23:12 skaufman joined #perl6
23:12 apejens joined #perl6
23:12 jnthn joined #perl6
23:12 nwc10 joined #perl6
23:12 gtodd joined #perl6
23:12 prammer joined #perl6
23:12 7YUAAFKS9 joined #perl6
23:12 pochi joined #perl6
23:12 MilkmanDan joined #perl6
23:12 bowtie joined #perl6
23:12 pyrimidine joined #perl6
23:12 go|dfish joined #perl6
23:12 dylanwh joined #perl6
23:12 vike joined #perl6
23:12 hugme joined #perl6
23:12 clkao_ joined #perl6
23:12 Psyche^ joined #perl6
23:12 c0m0 joined #perl6
23:12 [Sno] joined #perl6
23:12 epochbel1 joined #perl6
23:12 telex_ joined #perl6
23:12 djanatyn joined #perl6
23:12 ribasushi_ joined #perl6
23:12 dagurval_ joined #perl6
23:12 ggoebel111111118 joined #perl6
23:12 prime- joined #perl6
23:12 masak__ joined #perl6
23:12 ivan`` joined #perl6
23:12 mathw joined #perl6
23:12 obra joined #perl6
23:12 sivoais joined #perl6
23:12 awwaiid joined #perl6
23:12 TuxCM joined #perl6
23:12 Maddingue joined #perl6
23:12 stux|RC-only joined #perl6
23:13 psch joined #perl6
23:13 Hor|zon joined #perl6
23:13 daxim joined #perl6
23:13 TimToady joined #perl6
23:13 Khisanth joined #perl6
23:13 sunnavy joined #perl6
23:13 Timbus joined #perl6
23:13 FROGGS joined #perl6
23:13 Bucciarati joined #perl6
23:13 petercommand joined #perl6
23:13 synopsebot joined #perl6
23:13 raydiak joined #perl6
23:13 mephinet joined #perl6
23:13 nyuszika7h joined #perl6
23:13 Spot___ joined #perl6
23:13 lsm-desktop joined #perl6
23:13 hobbs joined #perl6
23:14 telex joined #perl6
23:15 skarn joined #perl6
23:15 jferrero joined #perl6
23:16 erdic joined #perl6
23:16 masak_grr found this on LinkedIn: https://gist.github.com/masak/401aeda40b6631ed4ae9
23:16 nyuszika7h joined #perl6
23:16 masak_grr is this still an issue?
23:17 cibs joined #perl6
23:17 El_Che joined #perl6
23:19 rhr joined #perl6
23:22 Mouq masak_grr: I found I can count the number of mazes without keeping track of the state of the walls
23:23 77CAABZU1 joined #perl6
23:23 1JTAABMSD joined #perl6
23:23 masak_grr Mouq: count, but not enumerate, right?
23:24 Mouq masak_grr: Well sure, enumerating would entail keeping track of them
23:25 masak_grr hm. I guess that's fine by the original problem specification :)
23:26 Mouq available here, no comments though: https://gist.github.com/Mouq/a2e7dc8​87a4a35f9a131#file-reboot-quicker-p6
23:26 masak_grr me looks
23:26 * masak_grr looks
23:31 Spot__ joined #perl6
23:31 mephinet joined #perl6
23:33 masak_grr Mouq: you're still getting 192 3x3 mazes? I have 160, and I'm fairly confident about that number now.
23:33 masak_grr Mouq: thing is, when you're only getting a *number*, we can't compare our mazes :P
23:34 Mouq masak_grr: The first file still generates the mazes
23:35 7YUAAFL3J joined #perl6
23:35 64MABRKDD joined #perl6
23:36 Mouq masak_grr: Oh, actually I forgot to add the code to make it print like yours does, given --numify. Updated
23:36 Mouq (for the first file)
23:36 masak_grr Mouq: well, here are my 160 mazes: https://gist.github.com/masak/bdcb97294af42e31a804
23:37 masak_grr (something about looking at those arrays of mazes reminds me of Unicode CJK code pages)
23:37 Mouq masak_grr: What about the 4 maze symmetries here: http://irclog.perlgeek.de/​perl6/2015-01-15#i_9947672
23:38 masak_grr oh, I forgot about those.
23:38 * masak_grr looks now
23:40 masak_grr ...huh.
23:40 masak_grr yes, well, I clearly don't have that first one. and I should.
23:41 masak_grr ok, you've convinced me that something is wrong somewhere in my code.
23:42 Mouq masak_grr: Still, your approach is an order of magnitude faster than mine :)
23:45 masak_grr I'll congratulate myself on that when it's correct... :)
23:46 sivoais joined #perl6
23:47 masak_grr oh, I see what's happening.
23:48 masak_grr my algorithm doesn't allow two edges to grow out of the same corner.
23:48 masak_grr that's what all my missing solutions have in common: a 90-degree corner in the middle of the maze.
23:48 sivoais_ joined #perl6
23:49 Perl6Fanboy joined #perl6
23:49 masak_grr oh, it's lovely to be wrong :>
23:50 Perl6Fanboy left #perl6
23:51 masak_grr in the case of the "melting" algorithm, as maz3 was, the two walls in a corner end up protecting each other from melting, even though they are both fringe edges.
23:52 dalek specs: f076396 | hoelzro++ | S05-regex.pod:
23:52 dalek specs: Don't use accessor methods in their own implementation
23:52 dalek specs:
23:52 dalek specs: &name should not be defined in terms of &name with no terminating
23:52 dalek specs: condition
23:52 dalek specs: review: https://github.com/perl6/specs/commit/f076396696
23:56 hoelzro I would like to add some text describing how Grammar actions' methods work with look[ahead|behind]; where would that go best?
23:58 El_Che ladies and gentlemen, le voila: https://fosdem.org/2015/schedule/track/perl/
23:58 masak_grr \o/
23:58 El_Che wendy harassing you all == results :)

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo