»ö« | perl6.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' or rakudo: / pugs: / std: , or /msg p6eval perl6: ... | irclog: irc.pugscode.org/ | UTF-8 is our friend! Set by wolfe.freenode.net on 30 October 2009. |
|||
colomon | Cool, eh? | 00:00 | |
holli | (but still relying on firebug for development) | ||
colomon: i like it. it's slick and blazing fast | 00:01 | ||
colomon | I've been loving Chrome (beta) for OS X. | 00:02 | |
zaslon | lolperl6adventhazblogged! perl6advent++ 'Day 20: Little big things': perl6advent.wordpress.com/2009/12/2...ig-things/ | 00:03 | |
00:05
mdxi left,
colomon left
00:06
mdxi joined,
mdxi left,
mdxi joined
00:21
adhoc joined
|
|||
lisppaste3 | vamped pasted "Method 'prime' not found for invocant of class 'Integer'" at paste.lisp.org/display/92371 | 00:21 | |
vamped | S02 mentions a .prime method in an example, but .prime is not yet implemented. I tried making my own. | 00:23 | |
00:23
lumi joined
00:41
colomon joined
00:42
lumi_ left
|
|||
colomon | vamped: I don | 00:42 | |
vamped: I don't think prime is intended to be part of Perl 6. | 00:43 | ||
At least, it's never mentioned except as an example in the documentation of other things... | 00:44 | ||
00:54
pmurias left
01:05
xomas left
01:06
xomas_ joined,
kensanata joined
01:18
cls_bsd joined
|
|||
vamped | colomon: your comment never posted here - but did in the irc log. | 01:23 | |
colomon | vamped: weird. | 01:24 | |
vamped | colomon: still -- any advice on how to make my example work? | ||
colomon | This is in rakudo master, I presume? | 01:25 | |
01:25
vamped left,
vamped joined
|
|||
colomon | rakudo: class Int is also { method prime() { say "prime!"; }; }; 1.prime; | 01:25 | |
p6eval | rakudo 8dc189: prime! | ||
vamped | yes | ||
colomon | Trying it locally now. | 01:27 | |
It works for the first six tests and then fails for you, too? | |||
looks to me like you have found a very weird bug. | 01:28 | ||
vamped | 1.prime 2.prime ... work. but: for 1..25 { .prime } fails at 2 | ||
colomon | I added .WHAT.say before the .prime in the loop and both 1 and 2 are Ints. | 01:29 | |
01:30
lumi_ joined,
lumi left
|
|||
colomon | I don't see how it can be anything other than a Rakudo bug. | 01:30 | |
vamped | i did that too. but then it complains about an "Integer" class | ||
01:31
Guest13816 left
|
|||
vamped | I guess I'll email [email@hidden.address] (right?) | 01:32 | |
colomon | right | ||
afk | |||
TimToady | rakudo: say "divisible" if 30 !% 3; | ||
p6eval | rakudo 8dc189: divisible | ||
TimToady | vamped: you can also us !% | 01:33 | |
vamped | ok cool. | ||
TimToady | also, you really only need to test 2..^ sqrt(self) | 01:35 | |
er, 2 .. sqrt(self) rather | 01:36 | ||
can't exclude the sqrt in that case | |||
vamped | that will speed it up a bit. good to know. | ||
TimToady | another normal trick is to special case 2, and then just test odd numbers | 01:37 | |
rakudo: for 2, 3 ... *+2, 25 { .say } | 01:38 | ||
p6eval | rakudo 8dc189: 235791113151719212325 | ||
01:39
kensanata left
|
|||
vamped | TimToady: did you look at my lisppaste? code? Did you see any errors (b4 I post bug) | 01:39 | |
TimToady | looked okay to me | 01:55 | |
vamped | thanks. I'll report bug. | ||
colomon | Occurs to me it might be something weird with the internal type... like the Parrot type for second element of the series is wrong, even though it claims to be Int. | 02:07 | |
But that's still a bug, of course. | |||
02:15
Baggio_ joined
02:33
Alias left
03:00
nihiliad left
03:03
vamped left
03:11
_jaldhar left,
Baggio_ left
03:15
astrojp left
03:20
_jaldhar joined
|
|||
diakopter | pugs: my bit $a = 0; say $a.WHAT | 03:43 | |
p6eval | pugs: Int | ||
03:43
rachelBROWN left
|
|||
diakopter | o i c | 03:43 | |
03:45
rachelBROWN joined
|
|||
TimToady | native types are really subset types that can be relied on for smaller storage footprint | 03:58 | |
but semantically they are really the base type like Int | 03:59 | ||
04:10
patspam left
04:11
meppel joined,
meppl left,
meppel is now known as meppl
04:12
lumi joined
04:25
pointme left,
mubot left,
zaslon left,
pointme joined,
mubot joined
04:26
zaslon joined
04:30
lumi_ left
04:36
gabiruh joined
|
|||
carlin | rakudo: "say 1".eval | 04:37 | |
p6eval | rakudo 8dc189: maximum recursion depth exceededin Main (file <unknown>, line <unknown>) | ||
diakopter | oo | 04:41 | |
rakudo: "say 1" | 04:42 | ||
p6eval | rakudo 8dc189: ( no output ) | ||
diakopter | rakudo: "say 1".() | ||
p6eval | rakudo 8dc189: invoke() not implemented in class 'Perl6Str'in Main (file <unknown>, line <unknown>) | ||
diakopter | rakudo: "say 1".eval() | ||
p6eval | rakudo 8dc189: maximum recursion depth exceededin Main (file <unknown>, line <unknown>) | ||
diakopter | rakudo: Str.eval("say 1") | ||
p6eval | rakudo 8dc189: No applicable candidates found to dispatch to for 'eval'in Main (file <unknown>, line <unknown>) | ||
diakopter | rakudo: eval("say 1") | 04:43 | |
p6eval | rakudo 8dc189: ( no output ) | ||
diakopter | o_O | ||
O_o | |||
04:44
gfx joined
|
|||
TimToady | might be disabled in the bot | 04:45 | |
if so, message is LTA | |||
04:46
JimmyZ joined
05:01
JimmyZ left
|
|||
mberends | phenny, tell masak when you interrupted the first LLVM make and reconfigured, maybe it carried some files over and did not rebuild them. try 'make clean', ./configure, make. | 05:04 | |
phenny | mberends: I'll pass that on when masak is around. | ||
05:04
Baggio_ joined
|
|||
mberends | diakopter: ping | 05:08 | |
05:08
cls_bsd left
|
|||
diakopter | mberends: PONG | 05:10 | |
05:11
Baggio_ left
05:13
Baggio_ joined
|
|||
mberends | diakopter: I would like to pick you brains about AST walking use cases. I'm considering abstracting my depth first traversal algortihm, into a generic utility method, and want to go over its to-be-designed API | 05:14 | |
05:14
matsuzine joined
|
|||
mberends | first off, the current one is recursive - is this bad? | 05:14 | |
diakopter | not necessarily | 05:15 | |
depends on how you want to be able to exit the traversal | |||
if at all | |||
or change the order/tree while you're traversing it | |||
mberends | that was question #2 | ||
apart from full traversals, should I be designing for partial traversals too, in the case of processing VAST ? | 05:16 | ||
considering that the use case is a compiler, not an interpreter | 05:17 | ||
diakopter | hm | 05:18 | |
mberends | I'm thinking full only, a lot easier to build | ||
error cases don't matter, we can abandon them | 05:19 | ||
diakopter | SGTM | 05:20 | |
seems/sounds good to me | |||
mberends | good to know :) in the extreme, your %seen reduces to 1 bit in each node itself - that's already working, just a matter of refactoring it :) | 05:21 | |
diakopter | yep; 1 bit | 05:22 | |
mberends | what worried me was the partial traversals, but I could not imagine when they might occur | 05:23 | |
TimToady | constant folding | ||
mberends | oh | ||
yes | |||
TimToady | anything evaluated at compile time, like a use expression | 05:24 | |
or a constant initializer | |||
mberends | there may be a 2 bit solution, but more use cases propel them to n bit | ||
diakopter | well, at some level it will always be an interpreter | ||
so now that I'm reminded of that by this TimToady fellow, I'll backpedal from the SGTM | 05:25 | ||
mberends | I'm glad I asked | ||
diakopter | well, unless you're compiling to a system that knows how to compile | ||
mberends | I guess anything that stores state in the tree itself is vulnerable | ||
constant folding etc were not on my roadmap, but perhaps they should be. Talk about answering a question with a question :-/ | 05:27 | ||
diakopter | I'm still a fan of an implementation implementing eval() first :) | 05:28 | |
mberends | I'm definitely not ;) | ||
diakopter | the *idea* of it, I mean :D | 05:29 | |
mberends | ok, the next most complex implementation replaces recursion with state in a linked list | ||
question #3: does breadth first occur in this problem space? | 05:30 | ||
the difference between depth first and breadth first can be accommodated in the linked lists, but may be overkill | 05:31 | ||
I cannot think of a use case | 05:32 | ||
this is enough to go on - it's easier for me right now, I've just woken up and you guys are probably beyond the help of coffee | 05:35 | ||
thanks | 05:36 | ||
TimToady | thanks :) | ||
diakopter | mberends: yeah, breadth first will occur if you implement LTM parsing (eventually) as an interpreter | 05:37 | |
mberends | :D your brain's still ok. that won't happen in the AST, but it will in a regex engine. good to know :) | 05:39 | |
mberends is happy with the answers :) | 05:40 | ||
diakopter isn't | |||
mberends | oh? | 05:41 | |
diakopter | 'tsjust ... | 05:45 | |
brings back memories | |||
mberends | diakopter: ah, reading your last answer carefully, there is a problem when replacing viv with another LTM parser for STD.pm | ||
diakopter | yah, but that's my department (someday) :P | 05:46 | |
mberends | this began with the idea of separating out the tree walker code, so I'd like to cover all the cases | 05:47 | |
TimToady | LTM is sort of "breadth last" | ||
mberends thinks. longer. | 05:49 | ||
sorry about the coffee remark | 05:50 | ||
diakopter | breadth last outside the LTM itself; breadth first if you do it char-by-char inside the LTM | 05:51 | |
diakopter hopes | |||
mberends | char-by-char sounds inefficient, there should be bigger atoms | 05:52 | |
diakopter | char-by-char meaning breadth-first-in-parallel | ||
keeping-priority/order | |||
where in-parallel means one-char-at-a-time per branch | 05:53 | ||
it's just another way of simulating the implementation of something that compiles POSIX-style regexes to a DFA | 05:54 | ||
mberends | ok, it doesn't feel right to be anticipating that right now in AST processing code | 05:55 | |
diakopter | no | ||
I mean: I agree | |||
mberends is happy again | |||
diakopter almost getting annoyed with writing IL *in* C# b/c I haven't quite learned the [any] idia | 05:56 | ||
TimToady: plural of idiom ? | |||
idiomi? | 05:57 | ||
idiomses? | |||
mberends | what is [any] ? a kind of untyped container? | ||
diakopter | any meaning, I haven't quite learned any idioms | ||
mberends | oh dear, that's worse | ||
diakopter | heh | 05:58 | |
mberends feels like making coffee. care for some? | |||
diakopter | yes, but starbucks isn't open at 10 pm nearby | 06:03 | |
06:06
Baggio_ left
06:11
zloyrusskiy joined
|
|||
mberends | backloggers: s/next most complex/next simplest/ | 06:15 | |
06:15
matsuzine left
|
|||
diakopter | mberends: next least complex? | 06:15 | |
mberends | er | 06:16 | |
yes, that, too ;) | |||
depends on your half empty/half full perspective | 06:17 | ||
mberends hopes masak gets vill to make on OS X | 06:18 | ||
06:39
Baggio_ joined
|
|||
diakopter | _yes_ I got arbitrary type local declaration/assignment generators working in runsharp | 06:40 | |
whee | |||
it could do only built-in types as far as I could tell | 06:41 | ||
mberends | runsharp looks cool, and your extensions make it even better | 06:42 | |
diakopter | its binder needs a bit of help | 06:47 | |
07:04
JimmyZ joined
07:07
JimmyZ left
07:12
JimmyZ joined
07:20
Baggio_ left
07:35
langs joined
07:37
langs left
07:42
Baggio_ joined
07:48
holli left
08:00
Baggio_ left
08:02
Baggio_ joined
08:12
Baggio_ left
08:21
Chillance joined
08:25
Baggio_ joined
08:29
Chillance left,
Chillance joined
08:30
Chillance left,
Chillance joined
08:34
xinming_ is now known as xinming
08:40
pdcawley joined
|
|||
mberends | snowing now in southern NL - depth increasing to 15-20cm | 08:41 | |
08:41
lumi_ joined
|
|||
JimmyZ | wow | 08:50 | |
08:51
Su-Shee joined
08:52
gfx left
09:00
lumi left
09:01
justatheory left
09:09
Baggio_ left
09:12
kaare joined,
kaare is now known as Guest41989
09:14
FalseVinylShrub joined
09:26
iblechbot joined
09:43
cls_bsd joined
09:56
plainhao left
09:58
tgrasp joined
10:12
tgrasp left
10:20
zloyrusskiy left
10:21
FalseVinylShrub left
10:56
meteorjay left
11:23
lest_away is now known as lestrrat
11:29
holli_ joined
|
|||
mberends | holli_: hi | 11:32 | |
holli_ | salutations | 11:33 | |
11:35
arthur-_ joined
|
|||
Supaplex | return $hello->standard; | 11:56 | |
holli_ | purl, weather EDDR | 11:59 | |
ah, wrong channel | 12:00 | ||
mberends | ENOPURL | ||
Supaplex | lol. nice one mberends. | ||
12:03
deepu joined
12:04
mikehh joined
|
|||
colomon | ng: "say 1".eval; | 12:06 | |
p6eval | ng 9d5018: 1 | ||
colomon | rakudo: "say 1". eval; | ||
p6eval | rakudo 8dc189: Confused at line 2, near ". eval;"in Main (file <unknown>, line <unknown>) | ||
colomon | rakudo: "say 1".eval; | ||
p6eval | rakudo 8dc189: maximum recursion depth exceededin Main (file <unknown>, line <unknown>) | ||
12:07
JimmyZ left
|
|||
holli_ | rakudo:say [+] <1 2 3> | 12:20 | |
rakudo: say [+] <1 2 3> | |||
p6eval | rakudo 8dc189: 6 | ||
holli_ | rakudo: my $f = sub { say "foo" }; [$f] <1 2 3> | 12:21 | |
p6eval | rakudo 8dc189: Confused at line 2, near "2 3>"in Main (file <unknown>, line <unknown>) | ||
colomon | holli_: I believe you can only use/pass an operator to [ ]. | 12:31 | |
12:31
lumi joined
|
|||
colomon | and I'm fairly certain you can't pass it as a variable currently. (Not sure if that is ever intended to work.) | 12:32 | |
rakudo: my $f = sub { say $_ ~ "foo" }; <1 2 3>.reduce($f); | |||
p6eval | rakudo 8dc189: ( no output ) | ||
colomon | ack, that's still very wrong. | 12:35 | |
I think maybe you wanted | |||
want something like this: | |||
12:36
deepu left
|
|||
colomon | rakudo: my $f = -> $a { say "foo $a"; }; <1 2 3>.map($f); | 12:36 | |
p6eval | rakudo 8dc189: foo 1foo 2foo 3 | ||
12:40
colomon left
12:50
lumi_ left,
meppl left
13:04
iblechbot left
13:10
JimmyZ joined
13:11
pmurias joined
13:17
colomon joined
13:18
Astoria` joined,
FalseVinylShrub_ joined
13:23
FalseVinylShrub_ left
13:32
JimmyZ left
13:39
iblechbot joined
13:41
masak joined
|
|||
masak | no, because I didn't just rebuild, I removed the whole folder and untarred it again. | 13:42 | |
phenny | masak: 19 Dec 20:50Z <mberends> tell masak an expert at #llvm said the --prefix=/usr *should* work on OS X as well. "probably something is expecting 32-bit code and using 64-bit or vice versa" | ||
mberends | .oO( here goes! ) |
||
phenny | masak: 05:04Z <mberends> tell masak when you interrupted the first LLVM make and reconfigured, maybe it carried some files over and did not rebuild them. try 'make clean', ./configure, make. | ||
masak | though admittedly, I didn't do --prefix=/usr either. | ||
mberends | could you focus on 'make test' in LLVM first, before 'make install' ? | 13:43 | |
masak | certainly. | ||
mberends | :) | ||
mberends is very happy with diakopter's ideas for graph_traverse.h | 13:44 | ||
masak | cool. I read swtch.com/~rsc/regexp/regexp1.html today for lunch. | 13:45 | |
a nice read. | |||
but I guess you're traversing VAST, not regex nodes. | |||
mberends | indeed, but regexen will interest me soon | 13:46 | |
masak | it strikes me that if I equip GGE with a 'Thompson mode', I can beat PGE for speed in some (pathological) cases. | 13:47 | |
mberends | skim skim skim. presumably the mode entails a major redesign | 13:48 | |
masak | it's more of a plug-in that can be activated if/when the regex is pure enough. | 13:49 | |
mberends | nice! | 13:50 | |
the "knee" of the Perl graph scares me enough to consider using Thompson all the time | 13:51 | ||
masak | you can't. | ||
mberends doesn't know what he's talking about | |||
masak | but certainly in a large percentage of cases. | ||
Thompson starts to blow up when we use more advanced features, such as variable interpolation, formerly known as 'backreferences'. | 13:52 | ||
13:53
orafu left,
orafu joined
|
|||
masak | I suspect, but haven't proved to myself yet, that code assertions and re-entrant subrule calls will be similarly problematic. | 13:53 | |
13:54
pmurias left
|
|||
mberends | good luck masak, I'll apply my precious tuits to VAST | 13:54 | |
masak | the good news is that one can enable Thompson for the small sub-part where it's known to work, and then switch it on for other sub-parts later as one gets nice ideas about how to reduce problematic things to Thompson-friendly ones. | 13:55 | |
thanks; I'll try to get GGE 'done' before doing Thompson experiments. | |||
but today I'll see if I can implement the TreeSpider in GGE. :) | |||
mberends | does the pge -> nqp-rx replacement give you a GGE-ng todo? | 13:57 | |
masak | I was thinking of doing a refactor. pmichaud_ opined that that doesn't sound quite right, since nqp-rx is a complete re-implementation. so we'll see. maybe I'll do a complete re-implementation too. but it feels... less motivated to port NQP to Perl 6 than to port PIR to Perl 6. :) | 13:59 | |
what most attracts me, of course, is the things we'll be able to do with a Perl 6 Perl 6 parser. | 14:00 | ||
actually, I should write a separate document about that for GGE. | |||
mberends wonders what to port to C | |||
masak | well, the TreeSpider will actually be quite a big deviation (semantically) from PGE. | 14:01 | |
it's because I'm not smart enough to emulate STD.pm's LazyMap yet. | 14:02 | ||
so I have no way of faking continuations. instead I play call stack myself, and backtrack 'manually'. | |||
mberends | it's head-hurting to think of that. does viv do that too? | 14:03 | |
14:03
pmurias joined
|
|||
masak | dunno. | 14:03 | |
I should say gimme5's LazyMap, not STD.pm's. | |||
pmurias | mberends: you are planning to write a grammar engine in C? | 14:04 | |
mberends | pmurias: I'm too scared to even answer that question to myself | ||
14:06
lumi left
|
|||
mberends | there are so many unknowns, all we can assume is that the other solutions will probably have C in their toolchains. That implies that it's doable, if you peel off al the layers of abstractions. | 14:06 | |
masak | of course it's doable. :) | 14:07 | |
the question is more like, how painful is it. | |||
mberends | yes | ||
14:09
patspam joined
|
|||
pmurias | we can use B::C to compile STD.pmc, that would be neither painfull nor usefull | 14:10 | |
masak | I nominate that the oddest remark so far today. :) | 14:11 | |
mberends | if there was the slightest use in it, it would still merit consideration. However, there are like to be more elegant or efficient solutions out there, somewhere. | 14:13 | |
arnsholt | One option might be a compiler-compiler using Perl 6 grammar syntax but C in the actions? | ||
(long-term) | |||
mberends likes | |||
arnsholt | A port og PGE, for example | ||
*of | |||
masak | arnsholt: I think only masochists should attempt to port PGE, now that nqp-rx exists. | 14:15 | |
mberends | (the voice of experience :) | ||
pmurias | arnsholt: what would be the point of having C in actions? | ||
mberends | emit LLVM IR, for example | 14:16 | |
arnsholt | pmurias: Well, if it's a C library, having Perl 6 in the actions would be kind of hard | 14:17 | |
masak: True, true. A port of an existing implementation, at any rate | |||
masak | arnsholt: nod. nqp-rx has the capacity to take us much longer than PGE. | ||
mberends | it's not LTM today, but can get there if necessary | 14:19 | |
arnsholt | mberends: That's certainly an option as well. It just means I have to learn LLVM. How would one do actions with that approach though? | ||
14:20
adhoc left
|
|||
mberends | arnsholt: I cannot imagine the implementation right now, but I'd like to spend a while thinking about the possibility | 14:20 | |
arnsholt | Certainly. I'm already pondering the C approach =) | 14:21 | |
masak is made happy by twitter.com/mcmire/status/6841786387 | 14:23 | ||
arnsholt | Hooray! | 14:24 | |
colomon | \o/ | 14:25 | |
arnsholt | If one has said it, more are probably thinking it | ||
14:26
rjbs joined
|
|||
rjbs | I'm looking at today's Advent calendar article, which goes from discussing &foo.arity to a map block that does -> $x, $y | 14:26 | |
14:27
Bill joined
|
|||
rjbs | Is there some object being created there which responds to .arity? | 14:27 | |
C<< my @foo = map -> $x, $y { ... }, @bar; >> | |||
masak | rjbs: yes. the block. | ||
the point block, even. | |||
s/point/pointy/ | 14:28 | ||
rjbs | is the -> the beginning of the pointy block? | ||
colomon | rjbs: -> $x, $y { ... } is a block object with arity 2. | ||
rjbs | great, thanks. | ||
masak | rjbs: yes, exactly. | ||
rjbs: the '->' is pronounced 'lambda' :) | |||
rjbs | (but "pointy" means the {} right, not the -> ? | ||
masak | rjbs: no, it means the '->'. | ||
rjbs | All these years, I thought it was the braces that were pointy! | 14:29 | |
masak | that doesn't work becayse '{}' without '->' have the same braces. :) | ||
rjbs | Yeah, but I thought -that- was a pointy block. my $block = { .. }; | ||
I thought that was considered a pointy blocky. | |||
but everything I know about perl 6 I learned from the telephone game. | |||
14:30
KatrinaTheLamia left
14:31
y3llow_ is now known as y3llow
|
|||
masak | rjbs: that's all everyone does. it's possible to learn everything from the primary sources, because the primary sources presuppose knowledge of Perl 6. :) | 14:33 | |
pmurias | mberends: you meant impossible? | 14:34 | |
huf | patspam: you meant masak? | ||
colomon | my favorite trick is to try to work out what I want to do using p6eval here. If I can't figure it out, someone else usually chimes in pretty quickly. | ||
masak | pmurias: yes. | ||
pmurias | huf: yes | ||
masak | huf: you meant pmurias? | ||
huf | yes ;) | 14:35 | |
masak is trying to remember the name of the (deeply ironic) effect wherein a correction often contains errors | 14:37 | ||
14:40
payload joined
|
|||
arnsholt | On UserFriendly it was called Naruki's law | 14:40 | |
But there's another name as well, I think | |||
14:41
Baggio_ joined
|
|||
masak | mberends: says "make: Nothing to be done for `test'". | 14:44 | |
mberends: this is on a completely clean build of llvm-2.6. | |||
carlin | masak: Muphry's law? | ||
masak | carlin: well, no, it's more specific than that. | 14:45 | |
carlin | (the typo is intentional) | ||
masak | I'm pretty sure I've seen a name for the phenomenon on Language Log, but my Google-fu fails me. | ||
carlin: ah. I missed that. :) | |||
nice one, but I think there's a name for it already. | |||
carlin | en.wikipedia.org/wiki/Muphry%27s_law | 14:46 | |
masak | oh, I see. | 14:47 | |
rjbs | ha | ||
masak | strange; that's not the name I remember. | ||
arnsholt | "Harman's Law of Prescriptivist Retaliation" that name tickles my (descriptive) linguist bone ^^ | ||
masak: There are a few alternatives in the article | 14:48 | ||
McKean and Skitt's for example | |||
masak | 'The Law of Prescriptive Retaliation' sounds most familiar. | 14:49 | |
"any article or statement about correct grammar, punctuation, or spelling is bound to contain at least one eror" | 14:50 | ||
mberends | pmurias: C language action methods are not specced, but imaginable (not portable across implementations though) | 14:52 | |
a bit like Q:PIR in Rakudo | 14:53 | ||
masak: currently no other idea, will check more LLVM docs :( | 14:55 | ||
masak | mberends: thanks. I'll try to put a spider in my GGE in the meantime. | 14:58 | |
mberends | know any Darwin emulator available for test purposes? | 14:59 | |
15:01
iblechbot left
|
|||
masak | mberends: no. :( I never have the need. | 15:03 | |
today's line of code: | |||
GGE::TreeSpider.new(:exp($!regex), :$target, :pos(*)).crawl(:$debug); | |||
mberends | :) somewhat like my struct ... graph_traverse_begin(...) ;) | 15:05 | |
15:05
hugh4life_ left
|
|||
arnsholt | Is there a simple way to convert the Synopsis PODs to PDF? | 15:05 | |
mberends | there are several Perl 5 POD->PDF modules, YMMV | ||
15:06
Su-Shee left
|
|||
mberends | masak: what was :pos(*) for? | 15:08 | |
15:08
Patterner left,
Psyche^ joined,
Psyche^ is now known as Patterner
15:09
Baggio_ left
15:10
masak` joined
15:11
masak left
|
|||
masak` | mberends: I somehow want to specify that this traversal should start over after it's tried position 0, and try to match on position 1 ... up to position $target.chars - 1. | 15:12 | |
mberends | oh, ok | 15:13 | |
15:23
masak` is now known as masak
|
|||
masak | which looks nicer, `$pos ~~ Whatever` or `$pos === *`? | 15:24 | |
mberends | ~~ Whatever is more mnemonic | 15:25 | |
masak | I'll go with that, then. | 15:26 | |
15:29
Baggio_ joined
15:34
colomon left
15:42
will__ joined
|
|||
masak | rakudo: enum A::B <a b c>; say b | 15:45 | |
15:45
payload1 joined,
payload left
|
|||
p6eval | rakudo 8dc189: ( no output ) | 15:45 | |
masak | locally, 'Null PMC access in type()'. | ||
masak submits rakudobug | |||
masak hopes enums will be less full of fail in ng | 15:46 | ||
dbrock | when you say `std: ...', what does that run? | 15:48 | |
masak | dbrock: it runs TimToady's Perl 6 grammar. | ||
mberends | dbrock: viv from /pugs/src/perl6 | 15:49 | |
masak | STD.pm. you'll find it in the Pugs repo, under src/perl6/ | ||
15:49
colomon_ joined,
Baggio_ left
|
|||
masak | dbrock: what mberends said. viv is the technology allowing STD.pm to run without a Perl 6 implementation. :) | 15:49 | |
dbrock | hmm :-) | 15:50 | |
masak | the sad thing about the enum bug above is that I pondered giving my enum a name with '::' in it, but though "hm, will that really work? better check first...". that's how low my trust in enums is. :/ | 15:51 | |
arnsholt | Hmm. S05 uses some kind of weird spacing | 15:52 | |
masak | O RLY? | 15:53 | |
arnsholt | Yep | ||
If you load it up in less and search for a literal space | |||
you'll notice that the space between Perl and 5 isn't highlighted | |||
A non-breaking space, probably | 15:54 | ||
mberends | yes, 0xa0 possibly | ||
masak | arnsholt: the whole spec does that, by design. | 15:56 | |
15:56
Bill left
|
|||
masak | it's not some kind of weird spacing, it's a non-breaking space. | 15:57 | |
15:58
will__ left,
will_ joined
16:00
nihiliad joined
|
|||
mberends | masak, may I call my thingy that walks the AST 'spider' as well? | 16:01 | |
masak | I'd be honoured. | 16:02 | |
mberends | :) thanks | ||
masak | I stole the name for those web crawlers. | ||
mberends | 'course, it's _just_ right | 16:03 | |
masak | I think it's more lively than RegexControlFlowManager or something. | ||
mberends | live spiders! | ||
arnsholt | masak: If it's not a literal space, it's weird ;p | ||
mberends | afk & | 16:04 | |
masak | arnsholt: that feels like a slightly outdated opinion on character sets. :) | ||
carlin would prefer something more entomophobic friendly | |||
16:04
cognominal joined
|
|||
arnsholt | masak: True, true. But it turns out that my LaTeX doesn't like it =) | 16:05 | |
masak | arnsholt: if only there were some convenient tool which can process text. preferably with regular expressions... | 16:06 | |
carlin: TreeSnake? :) | 16:07 | ||
rakudo: say (* ~~ Whatever).WHAT | 16:09 | ||
p6eval | rakudo 8dc189: Int() | ||
masak | Int!? | ||
can I submit this as a bug? | |||
arnsholt | masak: =p | 16:10 | |
16:10
cognominal left
|
|||
arnsholt | I got that particular wrinkle fixed | 16:10 | |
Now it's something different | |||
masak | rakudo: say ("OH HAI" ~~ Str).WHAT | ||
p6eval | rakudo 8dc189: Int() | ||
masak submits rakudobug | |||
carlin | masak: preferably something non-venomous | 16:11 | |
TreeKitten :-) | 16:12 | ||
Although that may upset the ailurophobiacs | |||
16:12
SmokeMachine left
|
|||
colomon_ | ummm. | 16:14 | |
rakudo: " " ~~ m/ <ws>+ / ; say $/; | |||
appears to hang on my system. | |||
p6eval | rakudo 8dc189: ( no output ) | ||
colomon_ | wth? | ||
rakudo: " " ~~ m/ \s+ /; say $/; | 16:15 | ||
p6eval | rakudo 8dc189:  | ||
colomon_ | rakudo: " " ~~ m/ (\s+) /; say $/; | ||
p6eval | rakudo 8dc189:  | ||
colomon_ | rakudo: " " ~~ m/ <ws> /; say $/; | 16:16 | |
p6eval | rakudo 8dc189:  | ||
colomon_ | hmmm.... | ||
16:21
Chillance_ joined
|
|||
mberends | masak: spider is the "TraversalControlFlowManager" and spidey is the little guy that moves around ;) | 16:34 | |
masak | heh :) in my implementation, I call the spidey '$!current' | 16:37 | |
holli_ | anybody seen "Avatar" yet? | 16:46 | |
i wonder if it's worth the 15€ for the 3D show | 16:47 | ||
masak | my eyes are of the kind that they don't pick up 3D, so I wonder too. :) | 16:50 | |
holli_ | huh? i assuma | 16:51 | |
e you're talkkin about artificial 3d | |||
masak | no, I only have 2D vision. | 16:52 | |
I've never seen depth. | |||
holli_ | how does this work? or rather "not work" | ||
unless you have only one eye left of course | 16:53 | ||
masak | early in infancy the brain does a check: can it get the eyes to produce a coherent signal necessary to build a 3D experience? | ||
if it can't (as in my case), it turns off that ability. | |||
I do have both eyes, but they don't do the consensus bit. | 16:54 | ||
I went to a 3D movie a couple of months back. waste of time :) | 16:55 | ||
and not only because the movie was really bad. ('Final Destination') | |||
holli_ | wtf? final destination is cool. | 16:56 | |
masak | I think we'll have to disagree on that point. :) | ||
holli_ | but i envision you had some interesting experiences in school sports | ||
masak | I was never very good, if that's what you mean. but I guess that goes for most geeks. | ||
I got pretty decent at dancing. :) | 16:57 | ||
16:57
fagzal joined
|
|||
holli_ | i mean like not catching balls because of a misconception how far its away et al | 16:58 | |
masak | it happens, yeah. | ||
I'll probably never excel at tennis and badminton for that reason -- even if I try real hard. | |||
holli_ | me neither. i'm too small =) | 17:01 | |
masak | :) | ||
holli_ | lol. i'll buy for $100 ( thedailyworsethanfailure.com/Buy.aspx ) | 17:07 | |
masak | holli_: if you go with Perl 6, your lines of code will last longer! | 17:11 | |
holli_ | tell me again next xmas. when we have something production ready =) | 17:13 | |
masak | quite. different people get on at different times. | 17:14 | |
carlin | I wonder what rakudo will be like next Christmas | ||
holli_ | .oO( rakudo bucks ) |
17:15 | |
17:18
colomon_ joined
|
|||
masak | oh dear. | 17:24 | |
I just got this error message: | |||
compiler returned NULL ByteCode './lib/GGE/TreeSpider.pir' - The opcode 'getattribute_p_ic_sc' (getattribute<3>) was not found. Check the type and number of the arguments | |||
is that... bad? :/ | |||
holli_ | say these .pir files, are they hand written or generated from something? | ||
masak | holli_: Rakudo has the ability to compile Perl 6 code down to .pir files. | 17:25 | |
holli_: I do that because it decreases startup time, by not having to parse all the source files each time. | |||
holli_ | looks like i'm still confused of how rakuperl6 is bootstrapped/implemented | 17:26 | |
17:27
iblechbot joined
|
|||
masak | may I recommend this? perlgeek.de/blog-en/perl-6/rakudo-overview.html | 17:27 | |
Tene | ack. only like 5 days left before christmas. I should start working on my secret project. | 17:28 | |
17:28
kcwu joined
|
|||
masak | Tene: yes, you should. | 17:28 | |
holli_ | mask: interesting. thx | 17:29 | |
Tene | I'll start on it tonight, then. | ||
AFK, grinding social reputation. | |||
holli_ | reputation is overrated | 17:30 | |
17:35
IllvilJa joined
|
|||
mberends | speaking of sekrits, I was thinking of blogging in Perl6Advent about 'vill', if it's generally considered an appropriate kind of article and if someone scheduled for one of the few remaining days is willing to donate the space. | 17:41 | |
masak | rakudo: class A { has $!to; method x { loop { (:$!to); } } } | 17:42 | |
p6eval | rakudo 8dc189: The opcode 'getattribute_p_ic_sc' (getattribute<3>) was not found. Check the type and number of the argumentsin Main (file <unknown>, line <unknown>) | ||
masak submits horrible rakudobug | |||
mberends: I definitely don't speak for everyone -- and I'd love for vill to get attention. but what makes it deserve space in the Advent Calendar more than Elf, Sprixel or M0ld? | 17:45 | ||
holli_ | so vill is yap6i? | ||
masak | I've gotten awfully profit-centered lately, seeing people be inspired for Perl 6 from reading the blog. I hope we can use the last few days to keep doing that. a vill post might pull in interest towards vill, but at the expense of pulling in interest towards Perl 6. maybe. | 17:47 | |
on the other hand, pmichaud_ is thinking of doing an ng branch post on the 24th, so I guess I should have similar reservations against that. :) | |||
mberends | masak: The Advent theme has been excellent examples of Perl 6 language, so a new implementation announcement is a bit off topic. Elf, Sprixel and M0ld are even more worthy, but I'm less qualified to write about them. | 17:48 | |
PerlJam | What is vill exactly? | ||
rjbs | As a random reader of the p6advent blog, it would take a *lot* for me to be interested in reading about yet another implementation rather than language features. | 17:49 | |
mberends | a viv + llvm mashup, to compile native executables from a Perl 6 subset | ||
PerlJam | gotch | ||
masak | mberends: again, no offense intended, but it would be a bit like: cool code... cool code... cool code... would people be interested to help me work on my implementation which is just getting started and doesn't do 1% of the things we've shown here lately? | ||
PerlJam | er, gotcha | ||
holli_ | viv? llvm? | 17:51 | |
mberends | yeah, I had my doubts anyway, I think you guys make good points. | ||
masak | holli_: viv is that STD.pm converted we just talked about. llvm is a virtual machine. | ||
PerlJam | We did talk the other day about continuing to do a perl6 post a day in the new year. (similar to the advent calendar, but perhaps the focus could be broadened a bit) | 17:52 | |
masak | mberends: I -do- think we should go out with a bang somehow. and with all due respect, I'm not sure pmichaud_'s ng branch post is it either. but pmichaud_ has surprised me before, so I'll withhold judgement. besides, I don't have any better ideas at present. | 17:53 | |
PerlJam: interesting. | |||
rjbs | PerlJam: I think if you do that, you'll want to have themed runs. | 17:54 | |
like "January is all about foo" | |||
so that it's easier to tune in or out | |||
masak | and a plan for how to keep the volunteers motivated. | ||
PerlJam | indeed. | ||
masak | the 1-post-a-day tempo is all fine for December... | ||
holli_ | .o( oh yeah, baby. motivate me ) | 17:55 | |
PerlJam | 1 a week could work. | ||
masak | PerlJam: many of us are doing that already :) | ||
PerlJam | true :) | ||
17:55
cognominal joined
|
|||
holli_ | at the yapc, mst promised to blog about catalyst once a week for one year. | 17:55 | |
or otherwise he'd pay a penalty of some sort (forgot what it was exactly) | 17:56 | ||
masak | well, blog about Perl. | ||
holli_ | but i think it inviolved his hair | ||
masak | and the penalty was that someone got to choose talk title and hair color for mst for an upcoming conference. | 17:57 | |
PerlJam | masak: perhaps a nice moniker for people to rally behind would be good as far as publicity and garnering contributors beyond the current #perl6 regulars | 17:58 | |
"Your Weekly Perl 6" | |||
holli_ | do we have an official mascot yet? pleaso not this stupid butterfly | 17:59 | |
PerlJam | holli_: Camelia is the official mascot. | ||
mberends | holli_: aww, you may have just hurt Larry Wall's feelings ;) | 18:00 | |
masak | holli_: it's the stupid butterfly. | ||
holli_: besides, it's cute! :) | |||
.oO( embrace your inner butterfly... ) |
|||
PerlJam | holli_: denigrating someone else's work or ideas is hardly in the spirit of the Perl 6 community. | 18:01 | |
holli_ | yeah, you're right. i'm sorry. | ||
but www.yopi.de/image/prod_pics/23/e/23562.jpg | |||
masak | hugme: hug holli_ | ||
hugme hugs holli_ | |||
holli_ | lol | 18:02 | |
rjbs | nice bot | ||
holli_ | to clarify: in germany camelia is a sanitary (womens) towel | 18:03 | |
mberends | holli_: I'm not that impressed by the butterfly either, fwiw | ||
masak | I used to have my doubts about the butterfly, but not anymore. | 18:04 | |
holli_ | and actually, the butterfly would be a nice fit on the towel package xD | ||
PerlJam | holli_, mberends: You're free to try your hand at coming up with something better. | ||
:-) | |||
holli_ | i'd chose some kind of parrot, one distinct kind for every implementation | 18:05 | |
mberends | my efforts would be worse, I recall earlier discussions on this subject as well. | ||
holli_ | ah no, too specific | ||
probably camelia will share fate with the onion. | 18:08 | ||
let's see what o'reilly comes up with xD | |||
pmurias likes camelia | 18:09 | ||
carlin | www.oreilly.de/catalog/newcovers/97...79_cat.gif | ||
holli_ | now that's a strong beast =) | 18:10 | |
colomon_ 's little boy likes camelia | 18:31 | ||
PerlJam | And that's the strongest commendation for Camelia that I can think of. | 18:33 | |
mberends | :) | 18:34 | |
colomon_ | It actually has gotten to be a bit of a problem, because if he sees Camelia on the top of the #perl6 log, he fusses if I scroll away from it... | 18:36 | |
masak | :D | 18:41 | |
18:42
pmurias joined
18:54
nihiliad joined
|
|||
masak | food & | 18:57 | |
18:57
matsuzine joined
19:02
ash___ joined,
pmurias left
19:04
[particle]1 joined
19:09
[particle] left
19:17
matsuzine left
19:23
nacho__ joined
19:39
nihiliad1 joined,
nihiliad left
20:00
nihiliad1 left
20:06
IllvilJa left
20:09
kensanata joined
20:23
pmurias joined
20:42
pmurias_ joined,
pmurias_ left
20:44
pmurias left
20:50
colomon_ left,
colomon joined,
pmurias joined
|
|||
pugs_svn | r29382 | pmurias++ | [mildew-js] compiled code now lives in js-compiled | 20:58 | |
r29382 | removed debugging leftover in say | |||
20:58
colomon left
|
|||
pugs_svn | r29383 | pmurias++ | [mildew] remove unused STD snapshot | 20:58 | |
21:08
nihiliad joined,
iblechbot left
21:09
nacho__ left
21:10
nacho__ joined
21:15
pmurias left,
pmurias joined
21:42
masak joined
|
|||
masak | mwhaha! | 21:42 | |
I'm back to bother you with my endless bug reports :) | 21:43 | ||
rakudo: class A { method foo(@a: $x) { say $x } }; A.new.foo("OH HAI") | |||
p6eval | rakudo 8dc189: ( no output ) | ||
masak | locally, "OH HAI" | ||
masak submits rakudobug | |||
rakudo: class A { method foo($_: $b) {} }; A.new.foo(1, 2) | |||
p6eval | rakudo 8dc189: ( no output ) | 21:44 | |
masak | locally, "Too many positional parameters passed; got 3 but expected 2" | ||
(which is fine, but now...) | |||
rakudo: class A { method foo($_: %b) {} }; A.new.foo(1, 2) | |||
p6eval | rakudo 8dc189: ( no output ) | ||
masak | locally, "Nominal type check failed for parameter '11111111111000000000100000101100'; expected Associative but got Int instead" | ||
(which means that locally, I'm doing this: o.O) | 21:45 | ||
masak submits rakudobug | |||
rakudo: sub foo(%h) {}; foo(1, 2) | 21:50 | ||
p6eval | rakudo 8dc189: ''' is not a valid sprintf formatin Main (file <unknown>, line <unknown>) | ||
masak | something weird is definitely going on here... | ||
jnthn | ...wtf... | 22:03 | |
Yes, weird indeed. | |||
Looks like a bug in generating the error message. | |||
masak | ah, there you are. :) | 22:04 | |
I'm starting to find those holes in the new binder you requested long ago. :) | |||
22:04
slavik1 left
|
|||
masak | one of the silly error messages even has a fan on Twitter. :) | 22:05 | |
jnthn | oh great, soon CNN will be reporting on it then. | ||
masak | only a matter of time. :) | ||
jnthn has been kinda ill today. :-/ | |||
masak | :/ | 22:06 | |
here it is: twitter.com/flexibeast/status/6598140411 | |||
when you take it literally, it's acutally kinda... interesting. | |||
jnthn | hehe | ||
masak | did it expect 1.5 parameters? | ||
jnthn | I wonder how on earth it's managed to come up with *that* error. | ||
masak | jnthn: I know, I checked. | 22:07 | |
jnthn: there's a variable called whoz_op... | |||
I am not making this up. | |||
22:07
Astoria` joined
|
|||
jnthn | ;-) | 22:07 | |
masak | I can't imagine who wrote this code... | ||
jnthn | Me either. | ||
masak | anyway, | ||
whoz_op assumes that the error message was caused for legitimate reasons. | |||
jnthn | Guy should probably be shot or something. | ||
masak | or punished by having to implement Perl 6. | 22:08 | |
or something. | |||
22:08
jan_ joined
|
|||
jnthn | Well, at least we get something useful out of that approach. ;-) | 22:08 | |
Heh, I doubt we should end up in that routine if we've got not got an arg count mis-match. | |||
masak | this error, however, did not occur under circumstances which, in layman speech, "should happen". | ||
jnthn | Oh? | 22:09 | |
I'm guessing we somehow construct a very wrong signature object. | |||
masak | thus, whoz_op falls back on the number of parameters being too few, since there is no third choice. | ||
22:09
Astoria` left
|
|||
masak | jnthn: the problem is that the error should be caught at compile time. | 22:09 | |
jnthn | Ah. | ||
That's why the binder doesn't handle it then. | 22:10 | ||
masak | and when it isn't, the impossible happens, and hurts a bit. | ||
jnthn | Yeah | ||
So the fix is enforcing the zone constraints or something I guess. | |||
But anyway, at least it isn't a binder bug, just a lack of error detection earlier. | |||
Which should be easy to fix. | |||
Anyways, I'm sure you've filed a ticket so it won't get forgotten. :-) | 22:11 | ||
masak | there is a ticket. | ||
jnthn | masak++ | ||
masak | that's how the guy on Twitter saw it. | ||
apparently, people read my tickets. :> | |||
22:12
pointme joined,
mubot joined,
zaslon joined
22:14
snearch joined
|
|||
jnthn | masak: Yeah, I do that occasionally too. | 22:14 | |
masak | cool. | ||
jnthn | There's been this branch distracting me of late though. | ||
masak | jnthn: so, what about that branch? | ||
it should have been merged ages ago, eh? | 22:15 | ||
masak is impatient | |||
jnthn | Yes, it's dragged out. | ||
It's ended up doing more stuff than I first expected. | |||
22:15
snearch left
|
|||
masak | first it was to be merged for the November release... | 22:15 | |
carlin | so it has branched out a bit? | ||
masak | and then for the December release... | 22:16 | |
at the latest early January... | |||
I think it would be good to merge it soon, so that we have a chance to make the April release stable. | 22:17 | ||
jnthn | Yes, me too. | ||
But it's kinda not exactly ready yet. :-| | |||
We don't even really have hashes together. | |||
masak | it'd be easier if we weren't blocking on stuff that we can't help with. | ||
things like laziness. | 22:18 | ||
pmichaud_ keeps saying he has it covered. | |||
jnthn | I think part of the problem is that it hasn't been done before and the spec is evolving. | ||
but yes, I really hope pmichaud will be able to get that in shape Real Soon. | 22:19 | ||
masak | I'm expressing concern and impatience because it seems to me that we are slipping from our estimates. | ||
and that means that we'll have to compromise on things. | |||
jnthn | Oh, I'd agree it's slipped a long way. | ||
Well, yes. It's just a case of "what do we want to compromise on". | 22:20 | ||
masak | the estimates themselves were pretty optimistic, to be sure. but for a while it seemed they were possible. | ||
I don't want to compromise on anything. I want all the things slated for April. :) | |||
if I knew back in August that they were in jeopardy, I would have groaned louder, sooner. | 22:21 | ||
jnthn | The fact that the branch covers laziness and enables most of the priority 1 items in the roadmap (or does them) is an encouraging sign. | ||
But yes, I am concerned. | 22:22 | ||
masak | equip me with the means to make a difference, and I'll help. | ||
jnthn | We really, really should try and get this merged by the next release, but that feels oh so close already. | ||
masak | but right now my hands are tied, and I don't know what to do. | ||
jnthn | The ability to write stuff in the setting is already in place - that's a place to help. | 22:24 | |
colomon++ has found plenty to do and done plenty | |||
The iterator design/impl missing is quite an issue at the moment though. | |||
masak | I'll have another look at the setting. | 22:25 | |
jnthn | I really didn't expect us to not have that laid down by now. | ||
masak: Another thing that you may or may not be interested in is starting to sketch out Hash. | |||
masak | that sounds like fun. | ||
jnthn | Starting from role Hash[::T] does Associative[T] { ... } and filling it out from there. | ||
masak | \o/ | 22:26 | |
jnthn | A Parrot Hash PMC can be used for underlying storage. | ||
masak | nodnod. | ||
jnthn | I think we can write the whole thing in the setting. | ||
masak | 'write the whole thing in one sitting' | ||
jnthn | I've been working on parametric roles. | ||
22:26
justatheory joined,
kensanata left
|
|||
masak | cool. | 22:26 | |
jnthn | Almost there. | ||
masak | enough to do the above? | ||
jnthn | Wanted to finish it this weekend, but haven't felt up to it. | ||
masak | do you have a cold? | 22:27 | |
jnthn | I think so | ||
masak | gesuntheit. | ||
jnthn | Not a bad one as such. Just feel rather tireder than expected. | ||
And struggling to concentrate on much. And working on ng tends to need some concentratoin. | |||
masak | aye. | 22:28 | |
ash___ | jnthn: i think i figured out part of whats wrong with RoleHOW#methods, its expecting the thing passed to be a RoleHOW, doing A.HOW.methods(A.HOW) seems okay, altough i am getting a funny result and am not sure why | ||
jnthn | Anyway, I'm hoping some decent sleep tonight might have me in better shape tomorrow. | ||
masak | it seems pmichaud_ has similar issues, but with holidays instead of a cold. | ||
22:29
meppl joined
|
|||
jnthn | ash___: Yes. I think there's a design isuse somewhere in it all, but I'm not clear headed enough to think it through just yet. | 22:30 | |
masak: Yup. | |||
masak: I've holidays here too, but it's going to be fairly quiet. | |||
masak | same here. | ||
jnthn | I'm hoping that I'll be able to spend some decent time on Rakudo over the next week or so. | ||
masak | \o/ | 22:31 | |
jnthn++ # Get Well Soon | |||
jnthn | Thanks :-) | ||
ash___ | well, i have it returnning the right list now, but its acting funny, like its not getting turned into a rakudo type, like if i say: "say Foo.^methods" it returns the lenght of the array, and if i do $a = Foo.&methods; say $a.WHAT; i get an error saying "WHAT" not found on "ResizablePMCArray" | 22:32 | |
jnthn | There's a bit of a bootstrapping issue there, yes. | ||
ash___ | being sick's no good jnthn, get better soon | ||
jnthn | Problem is that we want to use the metaclass when defining various List and Array classes. | 22:33 | |
So we can't rely on them being available. | |||
But we also want to return instances of them. | |||
:-) | |||
We'll probably have to just replace those methods at a certain point in the bootstrap with ones that do the Right Thing. | 22:34 | ||
ash___ | i was thinking maybe there is a way to send it to the ClassHOW methods | ||
then you'd only need to maintain 1 instance of the function and then just have RoleHOW go to it maybe? | 22:35 | ||
jnthn | No | ||
I did ponder that route at one point. | |||
Thing is that RoleHOW keeps the data mostly in its attributes directly. | |||
We don't use the underlying Parrot role for very much now. | |||
Whereas ClassHOW will keep on using the Parrot class PMC. | 22:36 | ||
In the end (but not in ng) I probably want to write RoleHOW in NQP. | 22:37 | ||
(Eventually maybe ClassHOW too, but we'll see.) | |||
Anyway, I think we'll have to adopt a "replace it later" approach. | 22:38 | ||
ash___ | okay, well, for now i made a small change that got RoleHOW#methods to get to the right stuff so it doesn't give an error | 22:39 | |
jnthn | We can avoid a lot of issues by getting the ordering of things right, but not everything, I fear. | ||
ash___: OK. And roles still work? | |||
As in, the composition stuff? | |||
ash___ | yeah | ||
jnthn | OK, great. | ||
(They use .methods to find the methods to compose. :-)) | 22:40 | ||
ash___++ | |||
heh heh # "to see if jnthn++ freaks | |||
" | |||
jnthn will review that change more tomorrow and decide whether to freak or not. | 22:41 | ||
;-) | |||
ash___ | are you sure? | ||
i added a few says and a _dumper to the pir code for RoleHOW.methods and it only is getting called once | |||
well, the output's happening once | |||
22:42
cotto joined
|
|||
ash___ | so i assume its only getting called once | 22:42 | |
and its only when i call it | |||
jnthn | ash___: See RoleToRoleApplier.nqp for example. | ||
Heh. "cool typing". | 22:43 | ||
ash___ | jnthn: i see why i am not getting any problems, in RoleToClassApplier.nqp they avoid directly calling the .methods funciton | 22:45 | |
i'll check if it works with RoleToRoleApplier.nqp | |||
yup, it does call it | 22:46 | ||
but it still working | |||
just need to figure out how to turn ResizablePMCArray into a rakudo type | |||
do you know how? | |||
22:48
jimi_hendrix left
|
|||
jnthn | ash___: Now, it's calling it. | 22:48 | |
for @composees { | |||
my @methods := $_.HOW.methods($_.HOW); | |||
ash___ | ng is very lazy, it didn't compose the second role I defined until i actually call use it | ||
jnthn: well, what I am trying to fix is when you use RoleName.^methods; in your actual code | 22:49 | ||
ng: role A { }; say A.^methods; | |||
p6eval | ng 9d5018: No such attribute 'parrotclass'current instr.: 'perl6;RoleHOW;methods' pc 4866 (src/metamodel/RoleHOW.pir:47) | ||
ash___ | all i effectively did was: | ||
ng: role A { }; say A.HOW.methods(A.HOW); | |||
p6eval | ng 9d5018: 0 | ||
ash___ | i just added a check to methods to see if the first param was a RoleHOW, if not i call 'HOW' on the object | 22:50 | |
jnthn | ash___: The problem is that List does Positional, Positional has methods and so we can't use List at that point. | 22:51 | |
Since role composition needs to use .methods | |||
masak | I don't know why, but I'm constantly surprised that the \ in push @a, \%h; is necessary. | ||
ash___ | hmm *that went over my head* | ||
jnthn | ash___: The right Rakudo type to return would most likely be a List. | 22:52 | |
masak | ash___: jnthn is suffering from the fact that he can't use the full arsenal of the type system during the construction of same. | ||
ash___ | so, the right type that should return is a list, but that's not useable at that point since list require .methods? | ||
jnthn | ash___: But we need to call the methods method of RoleHOW before the class List is defined. | ||
ash___ | okay, i see | ||
jnthn | ash___: Yes, thus why I suspect we may have to patch in / update those methods later in the "bootstrap". | 22:53 | |
ash___ | okay, yeah that makes sense | ||
jnthn | masak: That surprises me a bit too. | ||
masak | jnthn: hashes flatten to a list of pairs there. | 22:54 | |
jnthn | masak: I mean, I know why it...yes, right. | ||
masak | yes, same here. | ||
I know why, but it feels... odd. | |||
jnthn | Yeah. A place you have to care about "references" in a sea of not caring. | ||
masak | maybe the semantics are wrong, and neither arrays nor hashes should flatten in Perl 6 push :) | 22:55 | |
and so you'll have to use prefix:<|> for both when you actually want flattening. | |||
ash___ | jnthn: does that seem right to you? to have to replace a function like that at a later point? (is that the "Right way" to fix the problem?) | ||
jnthn | masak: I could go with that, but then it's siggy probably needs to change. | ||
masak .oO( flattening will get you anywhere... ) | |||
jnthn | .oO( well flattering her got me nowhere, next time I'll try that... ) |
22:56 | |
ash___: It doesn't strike me as especially wrong. | |||
ash___ | jnthn: what if at runtime you wanted to compose a role and you had already replaced that method with a new one, would it still be compatable? | 22:57 | |
jnthn | ash___: Should be provided the composer is able to deal with Rakudo arrays and Parrot arrays. | ||
Which as it's currently written it probably should be. | 22:58 | ||
masak: Question is what would the right signature for push be. | 22:59 | ||
masak | jnthn: the same, I think. | ||
it's convenient to be able to push several things at once. | 23:00 | ||
jnthn | masak: No, it can't be. | ||
masak: Binding to a slurpy param enforces list context. | |||
masak: That's what causes the flattening. | |||
masak | oh! | ||
jnthn | masak: Also, what would you expect push @a, @b to do? | ||
masak | put the @b inside @a, at the end. | 23:01 | |
jnthn | And not flatten it? | ||
masak | right. | ||
in my new, imagined model. | |||
jnthn | Yeah, we kinda lack a way to take a variable number of arguments and not enforce the list context, I think. | ||
*\@array would be the "logical" way to say htat I guess. ;-) | 23:02 | ||
masak | the current way, yes. | ||
PerlJam | greetings. | ||
jnthn | masak: My other comment if you had wanted push @a, @b to still flatten woulda been to ask "should a hash do .paris in list context? | 23:03 | |
oh hai, PerlJam | |||
masak would like to do Paris | |||
PerlJam | If we have .paris, is there also .rome ? | ||
jnthn | masak: Hilton? ;-) | 23:04 | |
masak blushes | |||
not necessarily. | |||
she's not my type. | |||
jnthn | No, mine either. | ||
masak: Anyway, it's an interesting question. It does feel a bit odd. | 23:05 | ||
TimToady: fwiw, I need to give the Cool failover thing a bit more thought (preferably when my brain is in better working order). It doesn't make me immediately freak out. I'm curious why single dispatch has to care about the Cool package. I'm also curious what failover subs we'll put in there by default, e.g. will the most generic multi infix:<+> live in there too. | 23:09 | ||
ash___ | jnthn: do you know where the 'bootstrap' should take place? I am not sure where that should be happening | 23:13 | |
jnthn | ash___: Not exactly, sorry. | 23:15 | |
ash___: It needs more thought yet. | |||
ash___ | k | ||
thats fine | |||
jnthn | Will think on it when my thinker works better again. :-) | ||
Feel free to take a look and propose a place too. | 23:16 | ||
ash___ | will do, i was just making sure there wasn't an established place already | ||
masak | look! pretty! gist.github.com/260687 | 23:18 | |
ash___ | in ClassHOW you call: new "Array" , which kind of array is that? | ||
jnthn | ash___: That'd be the Rakudo one, I believe. | 23:19 | |
ash___: We may get away with it there. | |||
ash___: Or alternatively, it may be a relic. | |||
ash___ | jnthn: alright, just checking | 23:20 | |
jnthn | masak: Nice!! | ||
masak++ | |||
masak | jnthn: that's the new traversal engine at work. :) | ||
I'm -so- glad I developed it standalone before trying to get it working inside GGE. | 23:21 | ||
it was a lot of work to develop it standalone, and it's a lot of work now. | |||
the two combined would likely have made me give up. | 23:22 | ||
23:23
PacoLinux left
23:24
will_ joined
|
|||
jnthn | Wow. By the time my new laptop reaches me it will have been through 4 countries already. :) | 23:24 | |
jnthn is hopefull he'll have it tomorrow | |||
Then my Rakudo compiles will be a LOT faster! | |||
otoh, the snow may spoil things. | |||
ash___ | what kind of new toy did you get? | 23:25 | |
23:25
will_ left
|
|||
jnthn | ash___: A new ThinkPad. | 23:26 | |
ash___: Hoped to have it a week or two ago, but they've been a bit slow to build and ship it. | |||
ash___ | jnthn: holiday rush i am sure | 23:27 | |
jnthn | ash___: Aye. | ||
I'm hoping for fast compiles since it's got some solid state caching in too. :-) | |||
masak | fast compiles for jnthn means Rakudo gets better faster \o/ | 23:28 | |
ash___ | does it have a solid state hard drive? | ||
those are amazing, i can't wait for their prices to come down | 23:29 | ||
jnthn | ash___: No, too pricey. I went for conventional hard drive but one of those Intel Turbo thingies. | 23:30 | |
That keeps a solid state cache of your most frequently accessed stuff. | |||
Not sure how well it works. | 23:31 | ||
But wasn't especially expensive to add, so figured it was worth a try. :-) | |||
OK, time for me to take some rest. | |||
ash___ | wonder how those work. i have always wished they had a combo drive for laptop's that was part solid state part normal drive, but i can see why, partically speaking, thats hard to do | 23:32 | |
jnthn | Catch y'all tomorrow. | ||
ash___ | jnthn: if i make any productive progress on the role thing i'll send you a patch | ||
jnthn | ash___: Yay! Thanks. :-) | ||
o/ | |||
pmurias | jnthn: does the compilation access enough stuff that it won't all fit in the ram? | 23:34 | |
23:41
silent11 joined
23:42
colomon joined
|
|||
pugs_svn | r29384 | pmurias++ | [mildew] removing debugging leftover | 23:42 | |
r29385 | pmurias++ | [mildew-js] optimalisation, .DISPATCH() can return a value | |||
23:45
soupdragon joined
23:57
eternaleye joined
|