»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: irc.perl6.org | UTF-8 is our friend! Set by moritz on 25 December 2014. |
|||
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:01 | |
00:03
ggoebel111111117 left
|
|||
lue | (I can paste it in chat if you don't mind a 7-line paste) | 00:03 | |
nvm, I didn't realize I needed to scroll over the gist :P | 00:04 | ||
00:05
ggoebel111111117 joined
|
|||
vendethiel | masak: uh, yeah, but $changed = True works | 00:05 | |
00:05
adu joined
|
|||
masak | vendethiel: it does. | 00:05 | |
vendethiel: I don't have a good rationale, except that it "feels" right to do ++ there. | 00:06 | ||
vendethiel | uhm. oke then :b | ||
masak | vendethiel: something about, it's OK if several actors do the ++, and if this bool were an integer, it'd care. | ||
vendethiel | that's irrelevant tho. it can't go back to false | ||
adu | I think I found a bug | 00:07 | |
pastie.org/9832410#23 | |||
masak | vendethiel: neither does an Int if you just ++ it. | ||
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. | ||
adu | why is children and ident repeated in the .perl dump? | ||
vendethiel | masak: sure, that's not what I'm saying. | 00:10 | |
I'm just saying -- there's nothing that can go wrong | |||
00:11
colomon left
|
|||
masak | vendethiel: that is true. this value $changed toggles from False to True (if at all), and then never back. | 00:12 | |
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 | ||
camelia | rakudo-moar 7af6a8: OUTPUT«===SORRY!=== Error while compiling /tmp/yqEeKgqgqHInvalid typenameat /tmp/yqEeKgqgqH:1------> role A does ⏏B {} role B» | ||
masak | vendethiel: Perl 6 is gracious enough to make that DTRT with bools. | ||
CurtisOvidPoe: semicolon after block. | |||
CurtisOvidPoe | m: role A does B {}; role B {} | ||
camelia | rakudo-moar 7af6a8: OUTPUT«===SORRY!=== Error while compiling /tmp/g5zut20QMQInvalid typenameat /tmp/g5zut20QMQ:1------> role A does ⏏B {}; role B {}» | ||
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; | ||
psch | m: role B { ... }; role A does B; role B { } | ||
camelia | rakudo-moar 7af6a8: OUTPUT«===SORRY!=== Error while compiling /tmp/s3hzsukoi_Too late for semicolon form of role definitionat /tmp/s3hzsukoi_:1------> role B { ... }; role A does B;⏏ role B { }» | ||
adu | why does .perl have duplicates? | ||
psch | errh | ||
m: role B { ... }; role A does B { }; role B { } | |||
camelia | ( no output ) | ||
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. | ||
masak | because the parser doesn't look ahead to see if the type will eventually be declared. | ||
adu: no idea. | |||
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
|
|||
lue | Don't you get duplicates when using .^methods too? | 00:16 | |
broski | got a question! | ||
masak | shoot! | ||
broski | does perl6 have a cms yet | ||
masak | don't think so. | ||
there's some web stuff. | 00:17 | ||
haven't heard about a CMS. | |||
adu | masak: github.com/andydude/p6-c-parser/tr...-version-2 | ||
broski | I want to be all over that | ||
masak | (I won't count November, it's bit-rotted.) | ||
broski: glad to hear it :) | |||
adu | masak: psch: it is now, the cast-version-2 branch | ||
broski | does apache have a perl6 module? | ||
i'm sorry noob questions | 00:18 | ||
masak | I don't think it does. | ||
jercos | Does it need to? SCGI, FastCGI, so on so forth seem better to me. | ||
lue | Not to my knowledge, but you can use the various CGIs from P6. | ||
masak | I think Bailador et al just do their own web server. | ||
also, what jercos said. | |||
lue: CGI? what is this, the 90s? :P | |||
broski | yeah seriously lol | 00:19 | |
lue | masak: CGIs, plural. As in CGI, FastCGI, SCGI, ... :P | ||
geekosaur | WSGI | ||
masak .oO( SCSI ) | |||
geekosaur | mod_* is kinda considered bad these days | ||
CurtisOvidPoe | Some thoughts on roles: github.com/perl6/specs/issues/80 | 00:21 | |
It’s a long discussion and I need to head to bed. | |||
masak | 'night, CurtisOvidPoe | ||
CurtisOvidPoe | ‘night masak | ||
masak | ooh, wasn't aware of "Traits: The Formal Model". will read. | 00:22 | |
jercos | Autobots, transform and role out | ||
broski | :) | ||
CurtisOvidPoe | It’s an awesome paper and reall clears up a lot of confusion. | ||
00:23
dayangkun joined
|
|||
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 | ||
camelia | rakudo-moar 7af6a8: OUTPUT«Baz.new(foo => Array.new(), foo => Array.new())» | ||
psch | that's what happens with e.g. FuncDef, Var and Children | 00:25 | |
00:25
KCL_ joined
|
|||
psch | i'm inclined to agree that it's probably a bug, but i'm not deep in our OOP | 00:26 | |
it does look wrong... :) | |||
i was expecting composition to fail, as it does when Bar is a role and Baz does both, but... | |||
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))» | ||
adu | psch: wait, so is it because there are two "does Foo"? | ||
I didn't realize that "does Foo" was inherited | 00:28 | ||
masak | that feels... odd... | ||
but I guess you can mix in the same role once at every new inheritance level. | |||
yeah, it's probably kosher. | |||
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...) | ||
adu | although a pedantic compiler would complain about double-declarations | ||
composition | |||
hm | |||
masak | TimToady: I'm delighted that you've decided to join our obsessive problem-solving :> | ||
00:31
kurahaupo joined
|
|||
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 | ||
camelia | rakudo-moar 7af6a8: OUTPUT«2» | ||
masak | lue: I most definitely haven't forgotten hexslide. | ||
lue: that third list item there, without a number? strangelyconsistent.org/blog/counti...igurations -- 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.) | ||
masak: oh, I know. The puzzle's been on and off my mind ever since you put it up :) . | |||
masak | anyway. sleep time. | 00:33 | |
'night, #perl6 | |||
lue | ♞ masak o/ | ||
00:33
skids joined
|
|||
psch | night masak | 00:33 | |
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)» | ||
psch shrugs | |||
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 | ||
*different packages allow this to work | |||
psch forgot half the sentence there... | 00:36 | ||
dalek | jo6: ffcaf74 | hoelzro++ | lib/Mojo/DOM/CSS.pm: Get .class.class2 to work properly |
||
jo6: 88ca37e | hoelzro++ | lib/Mojo/DOM/CSS.pm: Refactor CSS predicate creation to be clearer |
|||
broski | see ya masak: | ||
adu | psch: so if I want the expected behaviour, I have to pick one-and-only-one class which "does Foo" | ||
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:37 | |
adu | :) | 00:39 | |
adu pokes TimToady | |||
I can't find RoleHOW | 00:43 | ||
lue | adu: I believe there are different things, like ConcreteRoleHOW and whatnot (it's been a while for me though) | 00:47 | |
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:48 | |
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. | ||
erm no Baz was a class, strike that. | 00:50 | ||
The direct one from Foo overrides the one from Bar which is really from Foo. | 00:51 | ||
00:55
lsm-desktop joined
|
|||
masak | just popping by to say: 4x4: 33745 mazes. 4239 after removing symmetries. more details tomorrow. | 00:59 | |
& | |||
adu | hmm | 01:03 | |
that's not it | |||
I can't use "use Perl6::Metamodel::ConcreteRoleHOW;" from either perl6 or nqp | |||
japhb | Try just Metamodel::ConcreteRoleHOW | 01:06 | |
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:07
broski left
|
|||
adu | oh without the use | 01:08 | |
ok | |||
japhb | .ask skids In 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."? | ||
yoleaux | japhb: I'll pass your message to skids. | ||
adu | that works | ||
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 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."? | ||
psch | hrm, i might have over-fixed marshalling | ||
on the other hand, how useful is a java.lang.Float in perl6..? | |||
$ ./perl6-j -e'use java::lang::String:from<Java>; my $string = String.new("foo"); $string.WHAT.say' | 01:10 | ||
(Str) | |||
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 | ||
maybe differentiating by "do we come from a constructor" makes sense | 01:12 | ||
although, probably not, considering java is famous for factories | 01:13 | ||
skids | japhb: signatures will have a newline after every parameter, for example. | 01:15 | |
japhb | Ah, OK, interesting | 01:16 | |
Is this a "hard to fix" or a "just not dealt with yet"? | |||
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:19 | |
01:20
kurahaupo left
|
|||
japhb | Oooh, volunteer sniping | 01:20 | |
CurtisOvidPoe++ # preso | 01:21 | ||
01:23
yeahnoob joined
|
|||
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:24 | |
01:25
Mouq left
|
|||
adu | psch: sounds like a debate | 01:29 | |
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
01:34
avuserow_ left
|
|||
adu | psch: I've been debating too | 01:35 | |
TimToady | masak: assuming it's correct, here's my solution to 4x4: gist.github.com/anonymous/58437645a8aa131ac7b1 | ||
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 | ||
that is, if any wall is misplaced to divide the maze into two mazes, there will be an abandoned point somewhere | 01:38 | ||
that's my assumption, anyway | |||
lue | TimToady: y'know, many people would see that many indentation levels and call it a code design smell :P . | 01:42 | |
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 | ||
there might well be a better way to generate all the 9-wall combinations in a set of 24 | 01:44 | ||
psch goes to sleep & | 01:48 | ||
01:54
colomon joined
|
|||
TimToady | also, it would be considerably faster to not reslice every value every time, I'm sure | 01:54 | |
01:58
KCL joined
02:01
KCL_ left
02:24
anaeem1 joined
02:26
anaeem1 left
|
|||
TimToady | yes, my assumption is buggy, so my number is wrong | 02:31 | |
adu | what's the difference between RoleToClassApplier and RoleToClassComposer? | ||
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 | ||
JimmyZ | adu: I didn't see RoleToClassComposer | 02:35 | |
TimToady | afk & | ||
adu | github.com/rakudo/rakudo/blob/nom/...ctcomposer | 02:36 | |
JimmyZ: hence by comments | |||
s/by/my/ | |||
JimmyZ | oh, that's the same thing | 02:39 | |
*they are | |||
02:40
colomon left
02:45
Mso150_h joined
02:52
chenryn joined,
kurahaupo joined
03:14
chenryn_ joined,
araujo left
03:15
araujo joined,
chenryn left
03:25
noganex joined
03:28
noganex_ left
03:44
mdinger joined
|
|||
mdinger | I was looking at 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 | |
*? | |||
I also looked at doc.perl6.org/language/regexes and github.com/perlpilot/perl6-docs/bl...-intro.pod but still couldn't find it. | 03:47 | ||
03:49
Mouq joined
|
|||
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:52 | ||
03:53
chenryn__ joined
03:54
chenryn_ left
|
|||
Mouq | What I have now is available here: gist.github.com/Mouq/a2e7dc887a4a35f9a131 | 03:54 | |
I'll update it with more comments explaining/proving my algorithm at some point | 03:55 | ||
Originally I had a large file that kept my first approach well documented, but I scrapped it | 03:56 | ||
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:57 | ||
03:57
vendethiel left
03:58
colomon joined
|
|||
Mouq | Oh, looks like there's lots of old, misleading comments too! Hm.. | 04:01 | |
04:08
chenryn__ left
04:14
colomon left
|
|||
skids | mdinger: <-[abcd]> is inverted character class. | 04:17 | |
mdinger | skids: Okay. Thanks. | 04:18 | |
04:25
molaf left
|
|||
mdinger | Is the 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:25 | |
04:27
vendethiel joined
|
|||
Mouq | I'd go with github.com/perl6/doc first | 04:27 | |
04:28
araujo left
04:30
BenGoldberg left
04:32
Mso150_h left
|
|||
mdinger | Mouq: okay | 04:32 | |
04:35
araujo joined
04:36
kaleem joined
|
|||
mdinger | Thanks guys | 04:38 | |
Mouq | mdinger++ | 04:39 | |
04:42
novice666 joined
|
|||
lue | Mouq: I get 192 too. | 04:44 | |
Mouq | :D | 04:45 | |
Mouq hasn't run 4x4 yet; is optimizing for readibility now, will optimize for speed next | 04:46 | ||
However on 4x3 I get 2415 | |||
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;' | ||
lue | I haven't written my code to handle rectangle grids, so I can't confirm anything there. | 04:47 | |
04:47
mdinger left
|
|||
Mouq | novice666: That's because of non-strictness. "say $x" auto-declares $x, and then you declare it again. | 04:48 | |
m: say $x; BEGIN my $x = 10 | |||
camelia | rakudo-moar 7af6a8: OUTPUT«===SORRY!=== Error while compiling /tmp/ZIbYgXdiLyVariable '$x' is not declaredat /tmp/ZIbYgXdiLy:1------> say $x⏏; BEGIN my $x = 10 expecting any of: postfix» | ||
Mouq | m: say my $x; BEGIN $x = 10 | ||
camelia | rakudo-moar 7af6a8: OUTPUT«10» | ||
novice666 | Mouq: thanks | 04:49 | |
04:49
vendethiel left
04:51
chenryn__ joined
|
|||
novice666 | mouq: but...why interpreter ignore BEGIN phase and catch the first mention of the variable? | 04:54 | |
04:55
leont left
|
|||
Mouq | novice666: "my" actually works parse-time, like BEGIN, installing the variable in the innermost scope | 04:55 | |
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:56 | ||
So the parser sees that the variable is undefined before it even gets to the BEGIN | 04:57 | ||
m: say EVAL '$x'; BEGIN my $x = 10; # :P | 04:58 | ||
camelia | rakudo-moar 7af6a8: OUTPUT«10» | ||
adu | why does p6-mode indent every subline? | 05:05 | |
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 :) . | ||
adu | lue: ah, so I can blame you ;) | 05:08 | |
05:08
telex left,
dj_goku left
|
|||
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:08 | |
05:09
vendethiel joined,
araujo left
05:10
telex joined
05:13
araujo joined
05:23
KCL_ joined,
raiph joined
05:25
Mso150 joined,
KCL left
05:26
FlipBill left
05:27
kaleem left
05:30
vendethiel left
05:31
khisanth_ joined
05:33
dj_goku joined,
dj_goku left,
dj_goku joined
05:34
Khisanth left
05:40
raiph left
05:43
vendethiel joined
05:44
FlipBill joined
05:51
kurahaupo left
06:01
Rounin joined
06:04
adu left
06:06
vendethiel left
06:08
yeahnoob left
06:10
vendethiel joined
06:12
yeahnoob joined
06:21
FlipBill left
06:31
yeahnoob left
06:38
FROGGS_ left
06:43
morealaz joined
06:47
dayangkun left,
kaleem joined
06:51
telex left
06:52
vendethiel left
|
|||
Mouq | Updated (with ~100 lines of comments): gist.github.com/Mouq/a2e7dc887a4a35f9a131 | 06:55 | |
06:56
vendethiel joined,
telex joined
07:04
morealaz left
07:05
broquaint left
07:06
[Sno] left
07:07
chenryn___ joined,
chenryn__ left
07:12
mr-foobar left
07:13
yeahnoob joined
07:14
yeahnoob left,
yeahnoob joined
07:17
vendethiel left,
yeahnoob left,
ponbiki left
07:25
gfldex joined
07:30
Sqirrel left,
anaeem1_ joined
07:31
yeahnoob joined
07:38
PZt joined
07:44
yeahnoob left
07:45
chenryn___ left
07:49
yeahnoob joined,
yeahnoob left
07:50
yeahnoob joined,
yeahnoob left,
yeahnoob joined
07:52
FROGGS joined
07:54
chenryn joined
07:56
zakharyas joined,
gfldex left
08:07
yakudza joined
08:15
ponbiki joined
|
|||
ponbiki | j xubuntu | 08:15 | |
oops :x | |||
08:17
darutoko joined
08:21
chenryn left,
chenryn joined
08:30
brrt joined
08:31
cstevens joined
08:32
cstevens left,
vendethiel joined
08:40
[Sno] joined
08:41
zakharyas left
08:43
mvuets joined,
cognominal left
08:51
virtualsue joined,
rurban joined
08:54
rindolf joined
08:58
Celelibi left
08:59
cognominal joined
09:01
Mouq left
09:11
abraxxa joined
09:15
novice666 left
09:22
virtualsue left
09:30
yeahnoob left
09:32
IllvilJa left
09:34
chenryn left,
chenryn joined
|
|||
woolfy | nine: ping ping ping | 09:36 | |
dalek | kudo/nom: a151332 | lizmat++ | src/core/Parcel.pm: Add <0 test to Parcel.at_pos |
||
kudo/nom: fdada00 | lizmat++ | src/core/Buf.pm: Bounds for Blob.at_pos, <0 check for Buf.at_pos |
|||
woolfy | afk | 09:37 | |
09:39
kjs_ joined
09:40
Celelibi joined
09:41
Mso150 left
09:44
broquaint joined,
virtualsue joined
|
|||
masak | good antenoon, #perl6 | 09:45 | |
09:48
dakkar joined
09:49
virtualsue left
|
|||
jnthn | o/ masak | 09:50 | |
09:51
vladtz left
09:52
IllvilJa joined
|
|||
masak | all the mazes: gist.github.com/masak/db655cb7ab27...e-04-mazes | 09:53 | |
jnthn | Amazing! :P | ||
masak | :D | ||
jnthn | CurtisOvidPoe++ # excellent write-up | 09:55 | |
Will read it again and comment more heavily once I'm not tied up with teaching and a cold. | |||
CurtisOvidPoe | Thanks, jnthn. | ||
masak | Mouq: if you're getting 192 for 3x3, then you should be able to compare my list gist.github.com/masak/c17a7c473bf6f6ad83a5 against yours and find a maze that you have but I don't. | 09:56 | |
Mouq: if you do, then I have a bug. | |||
CurtisOvidPoe | I’m glad the write-up was coherent. I was drinking and staying up late when I wrote it :) | 09:59 | |
10:02
yeahnoob joined
10:05
[Sno]_ joined,
zakharyas joined
10:06
[Sno] left,
[Sno]_ is now known as [Sno]
10:07
denis_boyun_ joined
10:09
denis_boyun_ left
10:11
chenryn left
|
|||
masak reads github.com/perl6/specs/issues/80 now | 10:18 | ||
CurtisOvidPoe: fixed a typo: s/Commu<()>tivity/ta/ | 10:24 | ||
10:25
pecastro joined
|
|||
CurtisOvidPoe | Thanks | 10:25 | |
masak .oO( ta ) | |||
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? :-) | ||
masak | moritz: you Norwegians with your "kk" :P | 10:28 | |
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. | ||
masak | CurtisOvidPoe: I'm pretty sure with the changes you propose, github.com/masak/007/blob/master/lib/_007/Q.pm would break in one way or another :) | 10:30 | |
not that I consider that an argument against the change, necessarily -- what you say makes a whole lot of sense. | |||
but it would be a slightly breaking change. | |||
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. | ||
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. | ||
masak | *nod* | ||
10:34
ugexe left,
ugexe joined
10:39
jack_rabbit left,
virtualsue joined
10:50
araujo left
10:54
fhelmberger joined
|
|||
masak | TimToady++'s maze solver may have been wrong, but thinking about it made me think about another way to write my solver. | 10:59 | |
FROGGS | now I think about thinking about thinking to write about a solver | 11:03 | |
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
|
|||
masak | rurban: also, I didn't find much of any code to enumerate spanning trees. much less identify symmetries afterward. | 11:10 | |
11:10
chenryn joined
11:13
araujo joined,
araujo left,
araujo joined
11:21
grondilu joined
|
|||
grondilu | std: sub (:$a, @b) {} | 11:22 | |
camelia | std f9b7f55: OUTPUT«===SORRY!===Cannot put required parameter after variadic parameters at /tmp/QucSA3sbdY line 1:------> sub (:$a, @b⏏) {}Potential difficulties: @b is declared but not used at /tmp/QucSA3sbdY line 1:------> [3…» | ||
grondilu is not quite sure about this | |||
11:22
sqirrel joined
|
|||
masak | then maybe read up on S06 :) | 11:22 | |
can't put positionals after nameds in signatures. | 11:23 | ||
it's fine in argument lists, though. | |||
11:28
ab5tract joined
11:33
brrt left
|
|||
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. | ||
grondilu | (I mean, isn't that the point of nming them?) | ||
jnthn | grondilu: No, you put positional ones first in the sig, then nameds. | 11:36 | |
Been that way for as long as I can remember. | |||
It's probably sane for the reader :) | |||
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
11:39
donaldh joined
11:40
xfix joined,
xfix left,
xfix joined
11:41
colomon left
|
|||
CurtisOvidPoe | jnthn: You might be right, but I’m unsure. I’ve dithered on that a lot. | 11:42 | |
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:43 | ||
Gah! “For issues without multis, the subsets *aren’t necessary* to show the issue.” | 11:44 | ||
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:45 | ||
11:48
kaleem left
|
|||
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 | kudo/nom: 4af3cab | lizmat++ | src/core/Any.pm: Merge two at_pos candidates |
11:50 | |
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. | ||
jnthn | Thanks! | ||
psch | hi #perl6 \o | 11:53 | |
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 | |
hi psch | |||
11:55
grondilu left
|
|||
psch | o/ jnthn | 11:57 | |
jnthn: did you see the role attribute composition WAT by adu in the backlog? | 11:58 | ||
m: role Foo { has @.foo; }; role Bar does Foo { }; class Baz is Bar does Foo { }; Baz.^attributes.map(*.package).say | |||
camelia | rakudo-moar fdada0: OUTPUT«(Baz) (Bar)» | ||
psch | i have a feeling that ties in with what CurtisOvidPoe bugged, but my understanding might be limited | 11:59 | |
also i got past my troubles in Binder.java and PR 354 implements definednes constraints :) | 12:01 | ||
jnthn | psch: taht's not a WAT, that's how it should work.# | 12:02 | |
Heck, the MOP even has code that *relies* on that. | |||
More generally, attributes are scoped to classes | 12:03 | ||
12:03
chenryn left
|
|||
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)» | ||
jnthn | It's equivalent to that. | ||
CurtisOvidPoe | jnthn: I’ve posted an example as a response on that ticket. | ||
12:05
sqirrel left
|
|||
psch | jnthn: oh, okay, shows what i know... :) | 12:06 | |
12:07
chenryn joined
|
|||
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:08 | |
12:09
PerlJam left,
PerlJam joined
|
|||
jnthn | CurtisOvidPoe: Thanks. | 12:15 | |
And yeah, that illustrates what's at stake much more simply. | 12:16 | ||
12:17
sqirrel joined
|
|||
jnthn | psch: Does #354 pass spectest? | 12:18 | |
psch | jnthn: i had 2 flaps, in supply-related tests, but they passed on their own | 12:19 | |
aside from that it's a few TODOs passed, the ones mentioned in RT #122229 | 12:20 | ||
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=122229 | ||
12:26
yeahnoob left
|
|||
psch | ...i'm rerunning now to be sure | 12:26 | |
12:27
rindolf left
|
|||
dalek | kudo/nom: a0de41f | lizmat++ | src/core/ (6 files): Some more at_pos / assign_pos streamlining - have at least < 0 check - simplified range info in exception (no need to make a real Range object) |
12:28 | |
ast: 8e21b00 | lizmat++ | S32-exceptions/misc.t: Adjust for simplified Range information |
12:29 | ||
12:31
chenryn left
12:32
rindolf joined
12:39
kaleem joined
|
|||
psch | jnthn: yes, spectest passes (with a different flapping test this time) | 12:45 | |
12:46
skids left
12:51
colomon joined
|
|||
dalek | ast: 5b8cca1 | hoelzro++ | S32-exceptions/misc.t: Test that parameters are included in suggestions |
12:55 | |
ast: 22f9e21 | hoelzro++ | S32-exceptions/misc.t: Test attribute suggestion ...when a lexical of the same name is accidentally used |
|||
colomon | looking at CurtisOvidPoe's latest emailed example,isn't that exactly how p6 is supposed to work? | 12:56 | |
12:56
kaare__ left
|
|||
CurtisOvidPoe | colomon: my latest emailed example? Do you mean the github issue I raised? | 12:56 | |
colomon | yes | 12:57 | |
sorry, they are emailed to me from github | |||
12:57
anaeem1__ joined
|
|||
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:57 | |
moritz | well | 12:58 | |
12:58
anaeem1__ left
|
|||
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 | ||
and order of superclasses matters | |||
so at least in that case there's probably not much we can do | 12:59 | ||
in other cases, maybe | |||
dalek | kudo/nom: bba2447 | lizmat++ | src/core/Capture.pm: Unify on returning Nil on non-existing elements |
||
kudo/nom: 0bb3add | lizmat++ | src/core/array_slice.pm: Remove < 0 check from postcircumfix:<[ ]> All of the at_pos/assign_pos have their own checks now, catered to the actual situation. This causes some spectest breakage, because in some situations the exception type has changed. Soon to be fixed. |
|||
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
anaeem1_ left
|
|||
lizmat | m: my $a; $a[10] := 24' # ooh, wow | 13:01 | |
camelia | rakudo-moar 4af3ca: OUTPUT«===SORRY!=== Error while compiling /tmp/lEhkFAI99VTwo terms in a rowat /tmp/lEhkFAI99V:1------> my $a; $a[10] := 24⏏' # ooh, wow expecting any of: infix stopper infix or meta-infix…» | ||
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. | ||
lizmat | m: my $a; $a[10] := 24 # ooh, wow | ||
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 left,
abraxxa joined
|
|||
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» | ||
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 | ||
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» | ||
moritz | lizmat: I don't think parcel should allow binding to slots | ||
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 ? | ||
brb | 13:11 | ||
13:21
cognominal left,
cognominal joined
13:24
sqirrel left
|
|||
pmichaud | good morning, #perl6 | 13:35 | |
moritz | good am, pm | 13:36 | |
13:37
leont joined
|
|||
ab5tract | yesterday i was playing with SQL::Rabbit in perl 5 | 13:37 | |
something like this would be awesome to have in p6 | 13:38 | ||
github.com/robinsmidsrod/XML-Rabbit | |||
now if only someone would finish a libxml wrapper ;) | |||
robinsmidsrod | ab5tract: :) | 13:39 | |
ab5tract | oh, hai robinsmidsrod! awesome work there | 13:40 | |
when possible, i will attempt to port that over to p6 :D | |||
still trying to think about how it would actually look as a p6-native module.. | 13:44 | ||
13:47
chenryn joined
|
|||
ab5tract | erm, wires crossed as i was looking at p5 db connectivity options.. that is XML::Rabbit | 13:47 | |
dalek | ast: 4b5a806 | lizmat++ | S02-types/ (2 files): Change exception types to new type |
13:48 | |
ast: 22ef35b | lizmat++ | S02-types/nested_arrays.t: Fudge problematic test: we're throwing immediately |
|||
ast: 7cbffe8 | lizmat++ | S17-scheduler/at.t: Make sure we don't die on empty arrays |
|||
jnthn | o/ pmichaud | ||
ab5tract | but speaking of SQL.. i am also dithering on porting something like sequel.jeremyevans.net to p6 | ||
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 | kudo-star-daily: 9c0dc9b | coke++ | log/ (9 files): today (automated commit) |
||
ab5tract | robinsmidsrod: one thing i can quickly imagine is using the FALLBACK functionality to create the accessors | ||
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 | kudo/nom: 63933cd | peschwa++ | src/vm/jvm/runtime/org/perl6/rakudo/Binder.java: Implement definedness checks for the JVM Binder. This fixes RT #122229. |
||
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=122229 | ||
dalek | kudo/nom: 9c74ab6 | jnthn++ | src/vm/jvm/runtime/org/perl6/rakudo/Binder.java: Merge pull request #354 from peschwa/rt122229 Implement definedness checks for the JVM Binder. |
||
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 :-) | ||
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? | ||
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» | ||
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 | ||
ab5tract | will do, thanks :) | 13:53 | |
moritz was confused about the name, because he works a lot with RabbitMQ recently | |||
ab5tract wonders if psch++'s recent work on JVM interop means that accessing an XML parser in Java is now feasible | 13:54 | ||
where feasible stands for hacking-on-it-is-fun | |||
psch | ab5tract: well, i'm always looking for real use-case feedback... ;) | 13:56 | |
13:58
KCL joined,
Rounin left
|
|||
[Coke] | psch++ | 14:00 | |
thank you SO MUCH for improving the state of rakudo-jvm | |||
14:01
KCL_ left
|
|||
psch | [Coke]: you're welcome :) | 14:01 | |
moritz | and somebody please give psch++ a rakudo commit bit | 14:02 | |
psch: have you submitted a CLA to The Perl Foundation already? | |||
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 | ||
[Coke] | still not entered into the list. | 14:06 | |
jnthn | Aww | ||
But +1 from me for psch to have commit bit once CLA is in the list | |||
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:08 | |
(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: github.com/perl6/specs/blob/master...ossary.pod | ||
masak | unfortunately, *this* algorithm thinks there are 4258 solutions! grr. | ||
[Coke] | Contributor Licensing Agreement. | ||
ab5tract | masak: will you be publishing a blog post? i love reading about the mini-challenges on strangelyconsistent | ||
[Coke] | s/ing/e/ | 14:10 | |
masak | ab5tract: I just might. this was a captivating problem. | ||
[Coke] | www.perlfoundation.org/contributor_..._agreement | ||
jnthn | .oO( Commit-bit Legal Annoyance ) |
||
masak .oO( Come, Lawyer Away! ) | |||
[Coke] | basically, you agree that the TPF has a license to use the stuff you commit directly. | 14:11 | |
14:13
IllvilJa left
14:16
chenryn left
14:18
[Tux] left
14:20
xinming left
14:21
[Tux] joined
14:24
woolfy left
14:25
araujo left,
chenryn joined
|
|||
masak | wow, this is the worst rakudobug I've had in a while. | 14:27 | |
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: 0110001: 0100» | ||
masak | just stare at that for a while. | ||
14:28
woolfy joined
|
|||
masak | that last expression with the .substr calls essentially means "put in a 1 in the second place, but leave everything else intact". | 14:28 | |
well, if that is so, where did the final "1" go in "0001"? | 14:29 | ||
masak submits rakudobug | |||
p6: for 2, 3 -> $n { my $s = "0" x $n ~ "1"; say $s, ": ", $s.substr(0, 1) ~ "1" ~ $s.substr(2) } | |||
camelia | rakudo-parrot 0bb3ad: OUTPUT«001: 0110001: 0101» | ||
..rakudo-moar 0bb3ad: OUTPUT«001: 0110001: 0100» | |||
masak | right. | ||
14:29
IllvilJa joined
|
|||
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:30 | |
this is ultimately what's causing the different results for me in the maze finding. well, it's the most obvious cause, anyway. | 14:31 | ||
p6: for 2, 3 -> $n { my $s = "0" x $n ~ "1"; say $s.substr(2) } | 14:32 | ||
camelia | rakudo-moar 0bb3ad: OUTPUT«100» | ||
..rakudo-parrot 0bb3ad: OUTPUT«101» | |||
masak | p6: my $s = "0" x 3 ~ "1"; say $s.substr(2) | 14:33 | |
camelia | rakudo-moar 0bb3ad: OUTPUT«00» | ||
..rakudo-parrot 0bb3ad: OUTPUT«01» | |||
masak | p6: say ("0" x 3 ~ "1").substr(2) | ||
camelia | rakudo-moar 0bb3ad: OUTPUT«00» | ||
..rakudo-parrot 0bb3ad: OUTPUT«01» | |||
masak | even golfer. | ||
...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:37 | ||
14:38
skids joined
|
|||
moritz is only sorry that he couldn't follow the airwaves more closely | 14:40 | ||
tadzik | hmm, at some point Steroids got broken, in particular this: github.com/tadzik/steroids/blob/ma...SDL.pm#L45 | 14:43 | |
it says "use the :() form if you meant to add signature info to the function's type", where should that colon go? | |||
&cb:() doesn't seem to do the same thing | |||
14:44
pmurias joined
14:45
pdcawley joined
|
|||
pmurias | tadzik: add whitespace, I have seen the same error in Inline-Python | 14:45 | |
masak | `&cb (int32)`? | ||
pmurias | yes | 14:46 | |
tadzik | yeah, that works | ||
thank you pmurias++ | |||
woolfy | nine: ping svp | 14:47 | |
tadzik | wow. Profiling Steroids is eye opening | 14:53 | |
14:53
araujo joined,
araujo left,
araujo joined
|
|||
tadzik | I might just have a very interesting talk cooking up :) | 14:53 | |
FROGGS | I expected 'memory consuming', but your's is better :o) | 14:54 | |
tadzik | that too | ||
4.4 MB HTML file is no fun for any browser I've tried | |||
FROGGS | yeah | ||
tadzik | I literally wait a few minutes after each click for angular to react | ||
(or crash my browser. JS pls) | |||
FROGGS | though, 4.4MB does not sound that much | ||
tadzik | most of it is JSON, aiui | 14:55 | |
FROGGS | but still | ||
that's not BIG DATA, is it? | |||
tadzik | you know what big data is? :D | ||
s-media-cache-ak0.pinimg.com/736x/...22c57f.jpg | |||
FROGGS | I have an idea :o) | ||
>.< | 14:56 | ||
*g* | |||
tadzik | anyway: most GC runs take more than there's time for a single game frame to render | ||
the clear winner of allocations is no other than our friend Scalar | |||
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... | ||
pmichaud | woolfy: did you get my email? | 14:59 | |
14:59
araujo left
|
|||
pmichaud | Ah, I just got your reply, thanks. | 14:59 | |
15:02
raiph joined
|
|||
tadzik | pmichaud: can you tell me if my ramblings above sound correct? About Scalar allocations being avoidable to our benefit in certain places? | 15:03 | |
masak | pmichaud! \o/ | 15:07 | |
15:08
KCL left
|
|||
donaldh | jnthn: what was the motivation for using annotations on the JVM backend? | 15:08 | |
jnthn: I think annotations have a performance cost, versus an alternative like generating coderef init code. | 15:10 | ||
tadzik | :w | 15:11 | |
pardon | |||
masak .oO( yes ) | 15:12 | ||
pmurias | tadzik: you have a gigantic list you made with ng-repeat? | ||
tadzik | pmurias: ng-repeat? Well I do have lists here and there :) | 15:13 | |
skids wonders whether applying a type system on the endianness issue has been done elegantly in any existing HL language. | 15:14 | ||
i.e. is it the right tool for that job, and if so why is it seldom used for that job. | 15:15 | ||
15:19
araujo joined,
araujo left,
araujo joined,
raiph left
|
|||
jnthn | donaldh: I think annotations did work out faster for some reason, possibly because they deserialize lazily | 15:25 | |
donaldh: I think it led to smaller output than the code-gen too | |||
donaldh: I know we replaced some code-gen with annotations along the way. | 15:26 | ||
And it was some kind of improvement :) | 15:27 | ||
donaldh | jnthn: I'm seeing ~ 500ms time being spent in sun.reflect.annotation.AnnotationParser.parseAnnotations | 15:28 | |
15:28
sqirrel joined,
Hor|zon left
|
|||
jnthn | Wow | 15:28 | |
15:28
Hor|zon joined
|
|||
donaldh | jnthn: this is for ./perl6 -e 'say "hi"' which currently takes 3.2s on my machine. | 15:29 | |
15:29
H2O1 joined
|
|||
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. | ||
jnthn | Well, other question is if we're being too eager about looking at annotations | ||
donaldh | Yes, I think that is the case. | ||
15:30
H2O1 left
|
|||
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. | ||
jnthn | Yeah, I'd explore that before code-gen. | ||
donaldh is exploring adding profiling capability like moar has. | |||
jnthn | Also maybe mine the commit log. | 15:32 | |
Because there may be hints about "why annotations" in there. | |||
pmurias | jnthn: what is required for automatic precompilation? | ||
jnthn | masak: Wow, nice golf. | 15:33 | |
masak | :) | ||
donaldh | Yeah. I can't remember if annotations predate jvm landing in the nqp repo | ||
jnthn | donaldh: I'm sure they don't. | ||
So you should find it in the nqp log. | |||
tadzik | jnthn: could you check my logic in 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
jluis left
|
|||
pmurias | IMHO automatic precompilation is a really important feature | 15:35 | |
because the current alternatives are either waiting which is boring and causes distractions | 15:36 | ||
or writing Makefiles which is barbaric and annoying | |||
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
|
|||
jnthn | donaldh: Apparently it caused problems, then :) | 15:43 | |
tadzik: How long do you have for a frame, ooc? | |||
m: say 1/60 | |||
camelia | rakudo-moar 9c74ab: OUTPUT«0.016667» | ||
tadzik | jnthn: 16.6ms | ||
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. | ||
jnthn | Hm, that's a bit longer than I'm used to seeing. I wonder why. | ||
donaldh: That sounds familiar. :) | |||
donaldh: That problem happened quite a bit in general - blowing limits. | |||
tadzik | jnthn: imgur.com/7qbsVS6 might explain a bit :) | 15:45 | |
every run slices off about 400,000 Scalars | |||
jnthn | That explains GC frequency better than it explains the GC taking a while. | ||
tadzik | err, scratch that | 15:46 | |
jnthn | Wait, what are the colors in the allocations graph? | ||
jnthn doesn't remember that chart :) | |||
15:47
molaf joined
|
|||
tadzik | oh, hm, I assumed greens are those removed from nursery | 15:47 | |
54 garbage collections for the code in that sample | 15:48 | ||
jnthn | Well, I understand the graph in the GC tab | ||
But I dunno what the graph in the allocation tab means. | |||
I'm fairly sure I didn't implement it. :) | |||
tadzik | you don't know? We're doomed :D | ||
jnthn | timotimo may know :) | 15:49 | |
tadzik | oh, that's okay :) | ||
anyway, I did some experiments and it's clear that binding and avoiding 'for' is a great way to avoid Scalar allocation | 15:50 | ||
so if I throw a lot of that away, it's a huge win | |||
I wonder if there's anything to do about BOOTCode | 15:51 | ||
15:51
gfldex joined
|
|||
jnthn | Less closures... :) | 15:52 | |
15:53
kaleem left
|
|||
tadzik | heh | 15:53 | |
a loop {} running ten times comes up with 20 BOOTCodes | |||
jnthn | An...empty loop? o.O | 15:54 | |
tadzik | no, not empty :) | ||
hoelzro | o/ #perl6 | ||
jnthn | oh, well could be anything in there then :P | ||
tadzik | oh wait, if I cross the loop out it's still 11 | ||
so it makes sense | |||
15:55
xinming joined
|
|||
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:55 | |
15:56
KCL_ joined
15:59
[Sno] left,
[Sno] joined
|
|||
jnthn | Hopefully showing the tool that helps you discover such things :) | 16:00 | |
16:00
telex left
|
|||
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. | ||
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
KCL_ left
|
|||
masak | Angular for prototyping! \o/ | 16:01 | |
tadzik | I like it, and the reasons why it stutters on tons of data I can understand | ||
it looks shiny and works well | |||
jnthn | Aye | ||
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. :) | ||
jnthn | masak: Happy stripping :) | ||
16:02
telex joined
|
|||
masak | wouldn't mind pairing up with someone over it. | 16:02 | |
tadzik | thanks to BS? Hmm | 16:03 | |
oh, Bootstrap. Of course | |||
jnthn | Yes! :P | 16:04 | |
donaldh | yes bootstrap is good for shiny OOTB | ||
jnthn | Yeah, I even used it for moarvm.org :P | ||
16:04
[Sno] left
|
|||
pmichaud | tadzik: oops, just now saw your comment | 16:07 | |
reading | |||
avoiding scalar allocations can be helpful, but I think you have to be very careful with context. | 16:08 | ||
16:09
rurban left
|
|||
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:09 | |
16:11
virtualsue left
|
|||
moritz | what's an example of a thing that's naturally flat? | 16:14 | |
FROGGS | a disk? | 16:17 | |
PerlJam | pancakes :) | ||
donaldh | en.wikipedia.org/wiki/Flat_Earth | ||
lumimies | The NL? | ||
moritz | ... in Perl 6 context | ||
FROGGS | our jokes | ||
PerlJam | moritz: isn't a Parcel "naturally flat" in some sense? | 16:18 | |
masak | the adoption curve | ||
FROGGS | >.< | ||
lumimies | FROGGS: They're not naturally flat, they just fall that way | ||
moritz | m: say 42 for $(1, 2), $(4, 3) | ||
camelia | rakudo-moar 9c74ab: OUTPUT«4242» | ||
moritz | PerlJam: ^^ two non-flat Parcels | ||
16:19
spider-mario joined
|
|||
PerlJam | yeah, but you forced item context upon them against their will | 16:19 | |
masak | nice. I now have parity between the two algorithms. there are 4238 4x4 mazes. | 16:20 | |
jnthn | stuff & | 16:24 | |
masak .oO( you are in a result set of 4238 unique 4x4 mazes, all alike ) | |||
dalek | c: c5c4e68 | moritz++ | lib/Language/regexes.pod: Expand on negated char classes. Closes #40. |
16:26 | |
masak | new, easier/faster solution: gist.github.com/masak/6f1c0ba393fe5eb508b1 | 16:29 | |
I note with sadness that gist.github.com no longer highlights Perl 6. | 16:30 | ||
:/ | |||
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 | ||
maybe we can use this as a benchmark in p6bench (though with lots fewer iterations). | |||
also, I'd be very interested in any possible speedups to the Perl 6 program. | 16:33 | ||
16:38
sqirrel left
16:39
chenryn left
16:40
wtw left,
denis_boyun left
16:41
chenryn joined
|
|||
moritz | where's that program? | 16:43 | |
16:43
chenryn left
|
|||
masak | gist.github.com/masak/6f1c0ba393fe5eb508b1 | 16:43 | |
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:44 | |
masak | got it | 16:45 | |
16:45
jluis_ joined
|
|||
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:49 | |
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 | ||
I want to have different types of templates have a decent OO type layout. | |||
So for example, I have a class for AttributeTemplate, which has arrays for unused score numbers, and a preferred array to apply them. | 16:51 | ||
masak doesn't sense a question yet | 16:52 | ||
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 | |
Gah, sorry, VERY poor connectivity right now | |||
masak | japhb: I'm getting vibes of steve-yegge.blogspot.se/2008/10/uni...ttern.html -- but you're probably already aware of that. | 16:54 | |
16:54
anaeem1_ joined
|
|||
japhb | So mentally I'm thinking of these as roles to apply to a (possibly anopnymous) classand instantiate. | 16:54 | |
masak: Quite possibly | 16:55 | ||
16:55
FROGGS left
|
|||
japhb | In any case, the question is (or perhaps questions are): | 16:55 | |
How would you best specify default values for attributes in a role that should be applied to the parents' attributes? | 16:56 | ||
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 | |||
japhb | Gah, this connectivity is killing me | ||
sjn | japhb: it sounds to me that you're overgeneralizing | 16:58 | |
16:58
anaeem1_ left,
anaeem___ joined
|
|||
japhb | sjn: Unfortunately, I got here from a more specialized design, and had to keep generalizing. | 16:58 | |
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 | ||
masak | japhb: I'm also reminded of OLOO. don't have a good reference for that, but here's *something*: gist.github.com/getify/5572383 | 17:00 | |
dsm | what's the Perl6 version of open( my $fh, '>', \$content );? | 17:01 | |
masak | dsm: writing to a scalar reference? | ||
17:01
araujo left
|
|||
dsm | writing to a scalar | 17:01 | |
masak | dsm: I'd probably make a custom class for that which responds to the right method calls. | 17:02 | |
17:02
anaeem___ left
|
|||
masak | dsm: I often make a custom Output thingy -- and there's a module for that by sergot++ -- hold on | 17:02 | |
github.com/sergot/IO-Capture-Simple/ | 17:03 | ||
17:03
sqirrel joined
|
|||
dsm | great | 17:03 | |
masak | here's a similar, simple example: github.com/masak/007/blob/master/l...est.pm#L68 | ||
17:03
araujo joined
17:04
anaeem1 joined
17:05
donaldh left
|
|||
ab5tract | what's the difference between that use and slurp ? | 17:08 | |
17:09
abraxxa left
|
|||
masak | ab5tract: it's the difference between output and input. | 17:09 | |
(for one thing) | |||
ab5tract | okay, i must be dumbing at the moment | 17:10 | |
17:10
rurban joined,
mr-foobar joined
17:12
jack_rabbit joined
17:15
Mouq joined,
anaeem1 left
|
|||
pmurias | if I call QAST::CompUnit.new(QAST::Block.new(...)) from Perl6 it should work? | 17:20 | |
the *@children on the nqp is passed a proper nqp::list? | 17:21 | ||
17:23
anaeem1_ joined
17:26
mvuets left
|
|||
hoelzro | I just saw this in S05-regex.pod: method name { "Name = $.name" } | 17:28 | |
won't that infinitely loop? | |||
shouldn't it be $!name there? | 17:29 | ||
17:29
khisanth_ is now known as Khisanth
|
|||
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:29 | ||
[Tux] | use Test should mention the line of tests that fail (like Test::More does) | 17:30 | |
s/line/line number/ | |||
masak | japhb: glad I could help :) | ||
japhb | masak++ # Sometimes it's just the right thing said at the right time, even when the listener "already knows that" | 17:31 | |
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:33 | |
17:35
anaeem1_ left
|
|||
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:35 | |
17:37
virtualsue joined
|
|||
dalek | rl6-roast-data: 57b62aa | coke++ | / (5 files): today (automated commit) |
17:37 | |
TimToady | tadzik: so the &cb:(int32) form will be more future proof, if it works | 17:38 | |
and if it doesn't, I'd like to know why... | |||
masak | why during this Twitter conversation do I feel a little confused? twitter.com/YDKJS/status/555119366115565571 (for context, the quiz was "Can you name three or more cases of 'significant whitespace' in JavaScript?" twitter.com/YDKJS/status/555117730198585344 ) | 17:39 | |
huf | if + + vs ++ matters, then so does par seInt vs parseInt | 17:40 | |
17:40
jluis_ left
|
|||
huf | s/matters/counts/ | 17:40 | |
masak | huf: except that the latter is not legal syntax. | 17:41 | |
huf | hey, the meaning changes :) | ||
but yeah, okay. | |||
TimToady | .oO(one of them is meaner) |
||
huf | we just feel that symboly stuff should be less whitespace-sensitive than alnummy stuff | 17:42 | |
17:43
sqirrel left
17:44
dwarring joined
|
|||
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 | ||
masak | :P | ||
huf | a ton of english words have spaces inside them | 17:46 | |
it's just an artifact of ortography, the germans (or we) wouldnt put any space in the middle of compound words | |||
PerlJam | huf: we call those "phrases" :) | ||
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:48
rurban left
|
|||
lumimies | masak: var mint = 1; varmint = 1 | 17:49 | |
huf | a-ha! :) | 17:50 | |
17:51
jack_rabbit left
|
|||
[Tux] | can someone explain why www.xs4all.nl/~hmbrand/t.pl gives me "Variable $!show used where no 'self' is available " | 17:51 | |
can't I have helper subs inside a class? | 17:52 | ||
TimToady | those are called private methods | ||
subs have no invocant | |||
masak | lumimies: :D I *just* realized that one too! but your variable name is better ;) | 17:53 | |
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:54 | |
TimToady | [Tux]: so declare 'method !myhelper {...}' and then call self!myhelper() | 17:55 | |
we try to keep subs and methods very far apart in Perl 6, after all the confusion in Perl 5 | |||
[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 | ||
PerlJam | [Tux]: private method it is then! | ||
17:56
kjs_ left
17:57
molaf left
17:58
dakkar left
17:59
treehug88 joined
|
|||
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«===SORRY!=== Error while compiling /tmp/fx3EPQTGCCVariable $!show used where no 'self' is availableat /tmp/fx3EPQTGCC:1------> elper(\self, *@args) { say @args, $!show⏏ }; method start() { myhelper(self, "Sin» | ||
TimToady | aww | ||
there is so a 'self' available :P | |||
18:02
pmurias left
|
|||
TimToady | jnthn: ^^ should that be made to work? | 18:02 | |
or do we need to know the class of self at compile time? | 18:03 | ||
18:03
anaeem1_ joined
|
|||
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«===SORRY!=== Error while compiling /tmp/TnjJCfKcEOVariable $.show used where no 'self' is availableat /tmp/TnjJCfKcEO:1------> elper(\self, *@args) { say @args, $.show⏏ }; method start() { myhelper(self, "Sin…» | ||
TimToady | arguably that one should worker than the first one | ||
[Tux] | tux.nl/Files/20150115190501.png | 18:05 | |
\o/ | |||
18:05
eternaleye left
|
|||
[Tux] | some parts do not (yet) DWIM for me :) | 18:06 | |
[Tux] commits and pushes | |||
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" | ||
set(000100010011, 000100011100, 000101010010, 000101100010) | |||
18:07
eternaleye joined
|
|||
psch | hrm, i found what's probably a big blocker for real-world jvminterop use :/ | 18:07 | |
gist.github.com/peschwa/45ff88238adc74aa2405 | 18:08 | ||
it's not only StringBuilder that has that problem, but i haven't isolated yet what pattern causes it | |||
18:12
tgt joined
|
|||
tgt | masak: Did anyone translate 01-mazes.p6 to Perl 5? | 18:13 | |
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 left,
telex joined
|
|||
masak | tgt: not to my knowledge, no. | 18:16 | |
tgt: feel free -- it would be great to know how much faster the Perl 5 version is. | |||
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:19 | |
18:21
cognominal left,
cognominal joined
|
|||
masak | interesting. | 18:25 | |
18:25
jack_rabbit joined
|
|||
masak | well, at least one of the versions is wrong, then :P | 18:25 | |
18:26
anaeem1_ left,
orevdiabl left
18:27
revdiablo joined,
treehug8_ joined
|
|||
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:28 | ||
18:28
treehug8_ left
18:29
treehug88 left
|
|||
Mouq | Though I may be misremebering severly, since I no longer have the output | 18:30 | |
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 | ||
tadzik | TimToady: it didnot | 18:32 | |
I got some strange "Expected Signature, got Any when calling such function" | |||
18:33
mvuets joined
|
|||
tgt | Current Perl 5 version: gist.github.com/tgt/e07a3ba2a82ab4bc9348 | 18:35 | |
18:36
jluis_ joined
|
|||
masak | tgt: on my laptop it took 32 minutes. | 18:43 | |
tgt: surprised you don't get a warning if you omit the parens at gist.github.com/tgt/e07a3ba2a82ab4...le1-pl-L11 | |||
looks like a very straightforward translation. nice. | 18:44 | ||
tgt++ | |||
any discrepancies will turn out to be quite enlightening. | 18:45 | ||
18:47
cognominal left
18:49
pecastro left
18:51
Sqirrel joined,
kjs_ joined
18:53
obra left
18:57
xfix left
|
|||
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... | 18:58 | |
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 | ||
(I've tried putting it in a few places besides that, nothing works...) | |||
19:04
fhelmberger left
|
|||
flussence | oh... MVM_SPESH_DISABLE makes it work. | 19:04 | |
PerlJam | sounds like either a bug that needs fixing or at least something that should be documented with Grammar::Tracer | 19:06 | |
19:07
kjs_ left
|
|||
TimToady | p6: for <aa aba> xx 50 { if not m/b/ { print "."; next }; print "!"; }; say ""; | 19:10 | |
camelia | rakudo-moar 9c74ab: OUTPUT«.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!............................................» | ||
..rakudo-parrot 9c74ab: OUTPUT«.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!» | |||
TimToady | there's a lovely moarvm bug | ||
works right on jvm too | 19:11 | ||
disabling spesh fixes it | 19:13 | ||
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 :( | ||
geekosaur | mrrr. masak should test his little joy with spesh disabled too, perhaps | ||
TimToady | however, disabling jit, osr, or inline does not fix it | 19:16 | |
19:17
abraxxa joined
|
|||
TimToady | moving discussion of this bug over to #moarvm | 19:17 | |
flussence | well now I'm just confused; my problem went away without spesh disabled... | 19:20 | |
19:21
rindolf left,
abraxxa left
19:22
abraxxa joined
19:25
kjs_ joined
19:28
anaeem1_ joined,
telex left
|
|||
dalek | ast: ef44fab | coke++ | S17-supply/ (24 files): :D now works in rakudo.jvm, unfudge |
19:28 | |
[Coke] | ^^ psch++ | ||
whoops, it was D: | 19:29 | ||
vendethiel | :D | ||
19:30
telex joined
|
|||
psch | D: isn't a thing, that's half of :D and the invocant marker | 19:30 | |
[Coke] | er :D: ? | ||
anyway, unfudged. thanks for doing the hard work. | 19:31 | ||
psch | well, that patch was mostly translating the existing binder to java | ||
...but i suppose the emphasis is on "doing" and not on "hard" :) | 19:32 | ||
m: my method foo(Str:D :) { "yup, have self: " ~ self }; say foo "foo" | 19:34 | ||
camelia | rakudo-moar 9c74ab: OUTPUT«yup, have self: foo» | ||
moritz | masak: I have a trivial-ish patch that speeds up your script from 20m55s to 7m57s | 19:36 | |
19:36
itz_ joined
|
|||
moritz | masak: the trick is to numify %summetries values up-front, so that it isn't repeated inside the tight loop | 19:37 | |
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
itz left
|
|||
moritz | and with +« for the other ones too | 19:37 | |
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 | |
19:43
kaare__ joined
|
|||
tgt | (Gist updated.) | 19:46 | |
19:46
FROGGS joined
19:51
xfix joined,
xfix left,
xfix joined
19:52
anaeem1_ left
19:53
anaeem1 joined
19:56
obra joined
19:57
anaeem1 left
19:59
rurban joined,
Mouq left
20:00
kjs_ left
20:03
kjs_ joined
20:08
zakharyas left
20:11
cognominal joined
20:13
jluis_ left,
darutoko left
20:17
mr-foobar left
20:18
mr-foobar joined
20:19
geekosaur is now known as eviltwin_b
20:20
abraxxa left,
eviltwin_b is now known as geekosaur
20:25
c0m0 joined
|
|||
timotimo | tadzik, jnthn, the colors in the allocations tab show how many allocations have been made from interpreted, spesh'd or jitted code | 20:30 | |
20:32
Mouq joined
20:40
abraxxa joined
20:43
andreoss joined,
abraxxa left
|
|||
andreoss | how do i declare state variable within multi subroutine? | 20:44 | |
moritz | same as everywhere | ||
'state $var;' | |||
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:45 | |
andreoss | moritz: seems it's not shared between multies | 20:46 | |
timotimo | psch: not a wrapper method, just put it into the proto method | ||
"just" | |||
moritz | andreoss: correct | 20:47 | |
andreoss: you could have a common outer scope, and a state variable in there, if you need that | |||
moritz wonders if multis can be inside the proto | 20:48 | ||
timotimo | hm, interesting question | ||
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» | ||
Mouq | m: proto foo { state $*called = 0; {*}}; multi foo { say $*called++ }; foo | ||
camelia | rakudo-moar 9c74ab: OUTPUT«0» | ||
20:55
rurban left
|
|||
lizmat | moritz: the multi's inside the proto would not be visible outside unless you made them our maybe ? | 20:55 | |
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' | ||
camelia | rakudo-moar 9c74ab: OUTPUT«===SORRY!=== Error while compiling /tmp/OwCogCehiLCannot use 'our' with individual multi candidates. Please declare an our-scoped proto insteadat /tmp/OwCogCehiL:1------> ate $a; our multi f(Int $x) { $a += $x }⏏…» | ||
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' | ||
camelia | rakudo-moar 9c74ab: OUTPUT«===SORRY!=== Error while compiling /tmp/fHL0IbXeKeCannot use 'our' with individual multi candidates. Please declare an our-scoped proto insteadat /tmp/fHL0IbXeKe:1------> ate $a; our multi f(Int $x) { $a += $x }⏏…» | ||
lizmat | m: our proto f(\x) { state $a; multi f(Int $x) { $a += $x }; multi f(Str) { say $a }; {*} }; f 42; f 'a' | ||
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» | ||
lizmat | alas | 20:57 | |
TimToady: is there a reason there is no autogenerated signature: (self: *@_, *%_) on methods ? | 20:59 | ||
m: class A { method a { .say for @_ } }; A.a(1,2,3) | 21:00 | ||
camelia | rakudo-moar 9c74ab: OUTPUT«===SORRY!=== Error while compiling /tmp/qo1_ea5vW2Placeholder variables cannot be used in a methodat /tmp/qo1_ea5vW2:1------> class A { method a { .say for @_ } ⏏}; A.a(1,2,3)» | ||
lizmat | m: class A { method a(*@_) { .say for @_ } }; A.a(1,2,3) | ||
camelia | rakudo-moar 9c74ab: OUTPUT«123» | ||
21:00
virtualsue left
21:01
vendethiel left
|
|||
moritz | masak: I've tried some more optimizations, but +« is the only one worth it | 21:03 | |
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 | |
at some point in the future ... | |||
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 | ||
lizmat | sop? | 21:06 | |
TimToady | other than that, it would certainly make sense to allow it in methods | ||
hmm | |||
masak | moritz: trying your speedup. | ||
lizmat | standing operating procedure ? | 21:07 | |
FROGGS | lizmat: www.dict.cc/?s=sop | ||
timotimo | .o( gilding a pig's ear? ) | ||
hobbs | lizmat: no, like... concession. | ||
lizmat | pacifier ok, I can go with that | ||
TimToady | no, a bribe, a sweetener | ||
hobbs | that too | 21:08 | |
FROGGS | nine would say 'Zuckerl' :o) | ||
lizmat | so, don't we need to bribe P5 class programmers as well :-) | ||
TimToady | sorry, all my native english seems to have leaked out all at once :) | ||
lizmat hands TimToady a blanky | |||
masak | "something given to pacify or quiet, or as a bribe", says dictionary.reference.com/browse/sop | 21:10 | |
TimToady | like what you give a baby to suck on so it doesn't cry | 21:11 | |
except I've never heard a baby pacifier called a 'sop' | |||
masak | @_ ==> baby | ||
TimToady | looks more like a perambulator | ||
21:12
bartolin left
|
|||
TimToady | other than 'pacifier', I've heard 'plug' and 'binky' | 21:12 | |
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 | ||
quite a complicated valence | |||
21:14
vendethiel joined
|
|||
TimToady | 'pah', for one of our kids | 21:14 | |
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 :-) | ||
vendethiel has never drank wine in a family dinner | |||
moritz | lizmat: array_slice.pm has lots of occurrences of '+@positions'. Shouldn't @positions.elems be faster? | 21:16 | |
lizmat: prefix:<+> dispatches to .Numeric, and .Numeric to .elems | |||
lizmat | moritz: will do that | ||
but it won't matter much, I'm afraid | |||
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 | ||
moritz | because I don't know which path triggers it | ||
lizmat | we need a separate at_range method, I think | ||
TimToady notes that putting the <0 check into at_pos means every entry of [^10] has to check it | |||
unless we provide an at_pos_raw | 21:18 | ||
lizmat | well, I was more thinking at_range | ||
TimToady | well, would probably be _nocheck | ||
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 ... | ||
lizmat | because @a[^20] internally maps to @a[$_} for ^20 | 21:20 | |
*] | |||
I actually tried to put a shortcut to at_pos in there | |||
but then all sorts of nested arrays break | |||
21:21
bartolin joined
|
|||
lizmat | timotimo: at_range would be called from circumfix:<[ ]> only for limited Range objects | 21:21 | |
with numeric keys, so we can do the bounds check on the first/last element of the range once | 21:22 | ||
21:22
virtualsue joined
|
|||
timotimo | OK, fair enough | 21:22 | |
oooooh my gosh | 21:24 | ||
lizmat | ??? | ||
timotimo | i can move through the history of CWDs in fish shell just with alt and left and right arrows | ||
that's awesome | |||
TimToady just leaves a different desktop in each directory | 21:25 | ||
timotimo | hehe | ||
TimToady | I know that nom/src is two to the right and two down from here | 21:27 | |
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 :) | |||
timotimo | have you ever considered a "3d grid" of workspaces? :) | 21:28 | |
TimToady | that's my other computer :) | 21:29 | |
21:29
mvuets left,
kjs_ left
|
|||
masak | moritz: yup. 7 minutes, 14 seconds here too. | 21:30 | |
moritz: I wonder if there's an optimization could be crammed out of that one. | |||
timotimo | out of what exactly? @positions.elems? | 21:31 | |
moritz | timotimo: pre-numifying a list of strings that is used often | ||
timotimo: in masak++'s maze code | |||
timotimo | oh | ||
21:31
xfix left
|
|||
lizmat | masak: hmmm.... seems Array.elems is falling back to List.elems | 21:32 | |
timotimo | is there an optimization opportunity in that? | ||
lizmat | hmmm... I guess we must check for unreified elemens :-( | ||
something for the GLR for sure | 21:33 | ||
timotimo | oh, hm | ||
lizmat | on bounded Array's for sure :-) | ||
moritz has an idea for that | |||
can't we check nqp::defined($!nextiter), and only call .gimme if it's defined? | 21:35 | ||
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 :-) | ||
lizmat | be my guest :-) | ||
timotimo | gimme also checks if nqp::defined($!nextiter), right? but we probably don't inline that | ||
dalek | kudo/nom: 4853cce | lizmat++ | src/core/array_slice.pm: Faster check for +@positions, moritz++ |
21:37 | |
TimToady | yowsers, euobserver.com/justice/127232 | ||
now where would a large group of people be gathering in Belgium... | |||
lizmat | I specifically did not touch that, as I hoped it would solve itself when pmichaud continues to work on the GLR | ||
moritz | lizmat: you're probably right | 21:38 | |
lizmat: I also note that either I have to introduce a new scope, or do a return, both of which might be slower | |||
lizmat | yeah :-( | ||
but I do think I can make the [*-1] case faster | 21:39 | ||
timotimo | hm | ||
maybe we could have a global instance of *-1 that we can identity-check and special-case? | |||
because i think *-1 is pretty common | 21:40 | ||
[Tux] | FROGGS++; # Tuxic - it caused my return | ||
TimToady | might be able to generalize to *-anything | ||
lizmat | well, *-1 is a Callable | ||
timotimo | TimToady: perhaps ... perhaps with the 6model parametric extensions :) | ||
lizmat | can we distinguish that any other way ? | 21:41 | |
TimToady | we have control of the parse, so anything is possible :P | ||
FROGGS | [Tux]: but I did nothing in that regards lately :o) | ||
timotimo | if our optimizer turns all instances of *-1 into the same instance of Callable, we can just $argument eqv (*-1) | ||
[Tux] | it still works | ||
lizmat | m: (*-1).WHAT.say | 21:42 | |
camelia | rakudo-moar 9c74ab: OUTPUT«(WhateverCode)» | ||
lizmat | still, I don't know how to introspect that for the "-1" part | ||
timotimo | just let it does an int or something :P | ||
Int* | |||
21:43
kurahaupo joined
|
|||
TimToady | you use that introspect word again, which is evil | 21:44 | |
the parser should turn it into a different type | 21:45 | ||
it could be something derived from WhateverCode | |||
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:49 | ||
just optimizing for *-1 is too specific | 21:50 | ||
timotimo | fair enough | ||
21:52
Sqirrel left
|
|||
lizmat | TimToady: the big time sink atm is the gimme(*) on the array | 21:56 | |
just to find out how many elements there will be | |||
TimToady | gimme is a vast pit of introspection | 22:02 | |
timotimo | aye | 22:04 | |
dalek | c: 0e44c0c | moritz++ | lib/Type/IO/FileTestable.pod: IO::FileTestable: link anchors, mention method form |
||
22:04
skids left
|
|||
moritz | perlpunks.de/paste/show/54b839ca.21f9.313 spectests fine; does anybody know how to benchmark it in a meaningful way? | 22:06 | |
shaves off one second off the spectest run, which is just noise | |||
lizmat | m: for ^10000 { (1,2,3).list.elems } | 22:07 | |
camelia | ( no output ) | ||
lizmat | the difference between the patches is your gain / loss | ||
22:08
rhr left,
Ugator joined
|
|||
moritz | ok, my patch makes it slower :( | 22:11 | |
erm, no | |||
I compared the wrong way around :-) | |||
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 | ||
before: 0.61s | |||
after: 0.55s | |||
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. | ||
moritz | m: say (0.61 - 0.55) / 0.61 * 100 | ||
camelia | rakudo-moar 9c74ab: OUTPUT«9.836066» | ||
moritz | ... except that the 0.55s was an outlier | 22:13 | |
now I get 0.59s instead | |||
timotimo | oh, huh | ||
moritz | m: say (0.61 - 0.59) / 0.61 * 100 | ||
camelia | rakudo-moar 9c74ab: OUTPUT«3.278689» | ||
dalek | kudo/nom: 0463a4b | lizmat++ | src/core/array_slice.pm: Streamline @a[*-1]:adverb by about 25% |
||
jnthn | PerlJam: Joy, the first MoarVM dynamic optimizer bug I see in literally weeks and you treat it like we have one every day. :/ | ||
When was the last time you implemented a VM's dynamic optimizer? | 22:14 | ||
*sigh* | |||
moritz | I'd like to use this opportunity to point out how few JIT bugs we've had | ||
jnthn | That also. | ||
moritz | I really didn't expect that | ||
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. | ||
*source | |||
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 | |||
lizmat | m: my $a; (1,my $,3).list[1] := $a # should this be allowed ? | ||
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
|
|||
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. | ||
moritz | m: say (0.61 - 0.54) / 0.61 * 100 | 22:18 | |
camelia | rakudo-moar 9c74ab: OUTPUT«11.475410» | ||
lizmat | m: say .54/.61 | 22:20 | |
camelia | rakudo-moar 9c74ab: OUTPUT«0.885246» | ||
lizmat | is what I usually do and see that's about 11% | 22:21 | |
moritz | m: say 1 - 54 / 61 # :-) | ||
camelia | rakudo-moar 9c74ab: OUTPUT«0.114754» | ||
lizmat | moritz: turns out I didn't need .elems at all | 22:22 | |
moritz | lizmat++ | 22:23 | |
moritz -> sleep | 22:24 | ||
lizmat | gnight, moritz | ||
22:26
kurahaupo left
22:27
adu joined,
kaare__ left
22:28
kurahaupo joined
22:29
sjn left,
dagurval_ left
22:36
kjs_ joined
22:37
cognominal left,
dagurval joined,
sjn joined
|
|||
psch | github.com/peschwa/eigmip6/blob/ma...e-in-c.pl6 heh | 22:40 | |
apparently generative music is fun, i hadn't known :P | |||
with all the frameworks for it in some lisp-dialect it's not that easy to find out either | 22:41 | ||
(fsvo "all") | |||
22:41
Sqirrel joined
22:43
labster_ joined
|
|||
psch | well, maybe it's more "random chords" and not really generative... | 22:45 | |
22:45
sven_123_ joined
22:46
nebuchad` joined,
mr-fooba_ joined,
kshannon joined,
nine_ joined
22:47
mls_ joined,
moritz_ joined,
torbjorn_ joined,
Util_ joined,
gtodd1 joined,
masak__ joined,
mattp_ joined,
[particle]1 joined,
amkrankr1leuen joined,
sergot_ joined,
Maddingu1 joined
22:48
robins joined,
haroldwu_ joined
22:49
bonsaikitten joined,
btyler joined,
jferrero_ joined
22:50
stux|RC joined
22:51
erdic_ joined,
jdv79_ joined,
BinGOs_ joined,
breinbaa1 joined,
sivoais_ joined,
petercom1and joined,
perlpilot joined,
mr-foobar left,
revdiablo left,
yakudza left,
Khisanth left,
moritz left,
djanatyn left,
Spot__ left,
masak left,
sunnavy_ left,
kshannon_ left,
synopsebot left,
Util left,
amkrankruleuen left,
ribasushi left,
sergot left,
atta left,
nine left,
robinsmidsrod left,
muraiki left,
[Sno] left,
c0m0 left,
Psyche^ left,
clkao_ left,
hugme left,
vike left,
dylanwh left,
go|dfish left,
pyrimidine left,
cibs left,
kurahaupo left,
virtualsue left,
andreoss left,
pdcawley left,
ggoebel111111117 left,
jakesyl_insomnia left,
TuxCM left,
tadzik left,
Woodi left,
mst left,
pochi left,
ka05 left,
MilkmanDan left,
Guest22354 left,
skaufman1 left,
ingy left,
daxim left,
jnthn left,
cxreg left,
mtj- left,
mathw left,
El_Che left,
Timbus left,
tinita_ left,
leedo_ left,
spider-mario_ joined
22:52
ribasushi joined,
masak__ is now known as masak,
Colby` joined,
jack_rabbit left,
sven_123 left,
stux|RC-only left,
lue left,
mls left,
torbjorn left,
Pleiades` left,
lestrrat left,
labster left,
felher left,
epochbell left,
labster_ is now known as labster,
Colby` is now known as Pleiades`,
Sqirrel left,
kjs_ left,
bartolin left,
tgt left,
eternaleye left,
lsm-desktop left,
hobbs left,
revdiablo joined
22:53
anocelot_ joined,
xprime joined,
Sqirrel_ joined,
virtualsue joined,
andreoss joined,
pdcawley joined,
ggoebel111111117 joined,
TuxCM joined,
tadzik joined,
Woodi joined,
mst joined,
pochi joined,
ka05 joined,
MilkmanDan joined,
Guest22354 joined,
skaufman1 joined,
ingy joined,
daxim joined,
jnthn joined,
cxreg joined,
mtj- joined,
mathw joined,
El_Che joined,
Timbus joined,
tinita_ joined,
leedo_ joined,
jakesyl_insomnia joined,
BinGOs left,
bartolin joined,
BinGOs_ is now known as BinGOs
22:54
Juerd left,
lumimies left,
mephinet- left,
integral left,
yogan left,
flussence left,
dalek left,
ggherdov left,
skarn left,
Vlavv left,
geekosaur left,
danaj left,
haroldwu left,
jferrero left,
JimmyZ left,
nebuchadnezzar left,
gtodd left,
btyler_ left,
xiaomiao left,
BinGOs left,
BinGOs joined,
jakesyl_insomnia left,
jakesyl_insomnia joined,
epochbel1 joined,
[Sno] joined,
c0m0 joined,
Psyche^ joined,
clkao_ joined,
hugme joined,
vike joined,
dylanwh joined,
go|dfish joined,
pyrimidine joined,
sinisalo.freenode.net sets mode: +v hugme,
nyuszika7h left,
vendethiel left,
mtj_ joined,
vendethiel- joined
22:55
atta joined,
spider-mario left,
PerlJam left,
ponbiki left,
[particle] left,
sivoais left,
mattp__ left,
salv0 left,
petercommand left,
breinbaas left,
Maddingue left,
mtj_- left,
erdic left,
oetiker left,
Bucciarati left,
Gothmog_ left,
TimToady left,
anocelot left,
jdv79 left,
salparadise left
22:56
noganex_ joined,
Bucciarati joined,
dagurval left
22:57
simcop2387 left
22:58
ggherdov joined,
Gothmog_ joined
23:00
sven_123 joined,
tony-o_ joined,
esaym joined,
breinbaas joined,
perlfan_ joined,
noganex left
23:01
avalenn_ joined,
sven_123_ left,
sivoais_ left,
silug left,
haroldwu_ left,
kshannon left,
BinGOs left,
btyler left,
moritz_ left,
araujo left,
kshannon joined,
pdcawley_ joined,
PerlJam joined,
danaj joined,
PZt left,
Maddingu1 left,
SHODAN left,
ivan`` left,
geekosaur joined,
geekosaur left,
breinbaa1 left,
camelia left,
BooK left,
ilbot3 left,
revdiablo left,
ribasushi left,
perlpilot left,
jferrero_ left,
itz_ left,
jtpalmer left,
profan left,
arnsholt left,
lizmat_ joined,
BinGOs joined,
yakudza joined
23:02
labster_ joined,
vendethiel joined,
oetiker joined,
Vlavv` joined,
lue joined
|
|||
lizmat | jnthn: is :D the same check as self.DEFINITE ? | 23:02 | |
23:02
Hor|zon left,
lizmat left,
Grrrr left,
avalenn left,
petercom1and left,
erdic_ left,
davido_ left,
vukcrni left,
nwc10 left,
obra left,
xinming left,
tony-o left,
awwaiid left,
telex left,
DarthGandalf left,
esaym153 left,
psch left,
perlfan left,
geekosaur joined,
Shozan joined,
ilbot3 joined,
davido_ joined
23:03
sergot joined,
Grrrr joined,
araujo joined,
treehug88 joined,
pmichaud_ joined,
Sir_Ragnarok_ joined
23:04
DarthGandalf joined,
eternaleye joined,
Woodi_ joined
23:05
anocelot joined,
mattp_ is now known as 17WAAXY9L,
muraiki joined,
VABY2H2 joined,
mattp_ joined,
ivan`` joined,
felher joined,
simcop2387 joined,
leedo joined,
ivan`` left,
camelia joined,
torbjorn joined,
epochbel1 left,
[Sno] left,
c0m0 left,
Psyche^ left,
clkao_ left,
hugme left,
vike left,
dylanwh left,
go|dfish left,
pyrimidine left,
vendethiel- left,
anocelot_ left,
xprime left,
Sqirrel_ left,
virtualsue left,
andreoss left,
pdcawley left,
ggoebel111111117 left,
TuxCM left,
tadzik left,
Woodi left,
mst left,
pochi left,
ka05 left,
MilkmanDan left,
Guest22354 left,
skaufman1 left,
ingy left,
daxim left,
jnthn left,
cxreg left,
mtj- left,
mathw left,
El_Che left,
Timbus left,
tinita_ left,
leedo_ left,
Pleiades` left,
stux|RC left,
masak left,
gtodd1 left,
torbjorn_ left,
nine_ left,
nebuchad` left,
labster left,
sjn left,
jluis left,
broquaint left,
rmgk left,
frew left,
Sir_Ragnarok left,
zoosha left,
labster_ is now known as labster,
tinita joined,
Juerd joined,
lumimies joined,
mephinet- joined,
integral joined,
yogan joined,
flussence joined,
dalek joined,
JimmyZ joined,
sinisalo.freenode.net sets mode: +v dalek,
felher is now known as Guest19303,
frew joined,
lestrrat joined
23:06
haroldwu joined,
btyler joined,
ajr joined,
salv0 joined,
Pleiades` joined,
ajr is now known as Guest37082,
rmgk joined
23:07
itz joined,
araujo left,
arnsholt joined,
xinming joined,
dalek left,
BooK joined,
Bucciarati left,
atta left,
sergot_ left,
17WAAXY9L left,
FROGGS left,
leont left,
dj_goku left,
CurtisOvidPoe left,
pmichaud left,
ruoso left,
eMBee left,
apejens left,
raydiak left,
prammer left
23:08
araujo joined,
jtpalmer joined,
ruoso joined,
ChanServ sets mode: +v camelia
23:09
profan joined,
jluis joined,
tadzik joined
23:10
jack_rabbit joined,
silug joined,
mephinet- left,
cxreg joined,
adu left,
atta joined,
broquaint joined,
mtj joined,
mst joined,
nine joined,
ingy joined,
leont joined
23:11
ka05 joined,
adu joined
23:12
sjn joined,
ponbiki joined,
dalek joined,
ChanServ sets mode: +v dalek,
ponbiki is now known as Guest24916,
moritz joined,
eMBee joined,
mst is now known as 77CAABY7Q,
VABY4HM joined,
zoosha joined,
revdiablo joined,
skaufman joined,
apejens joined,
jnthn joined,
nwc10 joined,
gtodd joined,
prammer joined,
YUAAFKS9 joined,
pochi joined,
MilkmanDan joined,
bowtie joined,
pyrimidine joined,
go|dfish joined,
dylanwh joined,
vike joined,
hugme joined,
clkao_ joined,
Psyche^ joined,
c0m0 joined,
[Sno] joined,
epochbel1 joined,
telex_ joined,
djanatyn joined,
ribasushi_ joined,
dagurval_ joined,
ggoebel111111118 joined,
prime- joined,
masak__ joined,
ivan`` joined,
mathw joined,
obra joined,
sivoais joined,
awwaiid joined,
sinisalo.freenode.net sets mode: +v hugme,
TuxCM joined,
Maddingue joined,
stux|RC-only joined
23:13
psch joined,
Hor|zon joined,
daxim joined,
TimToady joined,
Khisanth joined,
sunnavy joined,
Timbus joined,
FROGGS joined,
Bucciarati joined,
petercommand joined,
synopsebot joined,
raydiak joined,
mephinet joined,
nyuszika7h joined,
Spot___ joined,
lsm-desktop joined,
hobbs joined,
sivoais is now known as 7GHAAMI3M
23:14
telex_ left,
masak__ is now known as masak,
nyuszika7h left,
telex joined,
ribasushi_ is now known as ribasushi,
bowtie is now known as Guest53643,
Khisanth is now known as Guest38736,
masak is now known as Guest3703,
7GHAAMI3M left
23:15
skarn joined,
jferrero joined
23:16
erdic joined,
Guest3703 is now known as masak_grr
|
|||
masak_grr | found this on LinkedIn: gist.github.com/masak/401aeda40b6631ed4ae9 | 23:16 | |
23:16
nyuszika7h joined
|
|||
masak_grr | is this still an issue? | 23:16 | |
23:16
spider-mario_ left
23:17
cibs joined,
El_Che joined
23:19
rhr joined
23:20
c0m0 left
|
|||
Mouq | masak_grr: I found I can count the number of mazes without keeping track of the state of the walls | 23:22 | |
23:23
CAABZU1 joined,
JTAABMSD joined
|
|||
masak_grr | Mouq: count, but not enumerate, right? | 23:23 | |
Mouq | masak_grr: Well sure, enumerating would entail keeping track of them | 23:24 | |
masak_grr | hm. I guess that's fine by the original problem specification :) | 23:25 | |
23:25
Spot___ is now known as Spot__
|
|||
Mouq | available here, no comments though: gist.github.com/Mouq/a2e7dc887a4a3...quicker-p6 | 23:26 | |
masak_grr | me looks | ||
masak_grr looks | |||
23:29
krunen left
23:31
Spot__ left,
Spot__ joined,
mephinet left,
mephinet joined
|
|||
masak_grr | Mouq: you're still getting 192 3x3 mazes? I have 160, and I'm fairly confident about that number now. | 23:33 | |
Mouq: thing is, when you're only getting a *number*, we can't compare our mazes :P | |||
Mouq | masak_grr: The first file still generates the mazes | 23:34 | |
23:35
YUAAFL3J joined,
MABRKDD joined
|
|||
Mouq | masak_grr: Oh, actually I forgot to add the code to make it print like yours does, given --numify. Updated | 23:36 | |
(for the first file) | |||
masak_grr | Mouq: well, here are my 160 mazes: gist.github.com/masak/bdcb97294af42e31a804 | ||
(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: irclog.perlgeek.de/perl6/2015-01-15#i_9947672 | ||
masak_grr | oh, I forgot about those. | 23:38 | |
masak_grr looks now | |||
...huh. | 23:40 | ||
yes, well, I clearly don't have that first one. and I should. | |||
ok, you've convinced me that something is wrong somewhere in my code. | 23:41 | ||
Mouq | masak_grr: Still, your approach is an order of magnitude faster than mine :) | 23:42 | |
masak_grr | I'll congratulate myself on that when it's correct... :) | 23:45 | |
23:46
sivoais joined
|
|||
masak_grr | oh, I see what's happening. | 23:47 | |
my algorithm doesn't allow two edges to grow out of the same corner. | 23:48 | ||
that's what all my missing solutions have in common: a 90-degree corner in the middle of the maze. | |||
23:48
sivoais_ joined
23:49
Perl6Fanboy joined
|
|||
masak_grr | oh, it's lovely to be wrong :> | 23:49 | |
23:50
Perl6Fanboy left
|
|||
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:51 | |
dalek | ecs: f076396 | hoelzro++ | S05-regex.pod: Don't use accessor methods in their own implementation &name should not be defined in terms of &name with no terminating condition |
23:52 | |
23:55
sivoais left,
treehug88 left
|
|||
hoelzro | I would like to add some text describing how Grammar actions' methods work with look[ahead|behind]; where would that go best? | 23:56 | |
El_Che | ladies and gentlemen, le voila: fosdem.org/2015/schedule/track/perl/ | 23:58 | |
masak_grr | \o/ | ||
El_Che | wendy harassing you all == results :) |