»ö« | perl6.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' or rakudo:, alpha:, pugs:, std:, or /msg p6eval perl6: ... | irclog: irc.pugscode.org/ | UTF-8 is our friend! Set by lichtkind on 5 March 2010. |
|||
pmichaud | hugme: show nqp-rx | 00:03 | |
hugme | pmichaud: the following people have power over 'nqp-rx': PerlJam, TimToady, [particle], colomon, jnthn, masak, moritz_, pmichaud. URL: github.com/perl6/nqp-rx/ | ||
jnthn plays cheesy 80's "I got the power!" song | 00:04 | ||
...actually not. | |||
:-) | |||
colomon | jnthn: also the fact we have four different trig bases... | ||
jnthn | Four your base... | ||
colomon: Yeah, it multiplies out pretty quickly. :-) | |||
pmichaud | all your base are belong to... | ||
jnthn | ...our spectests. :) | ||
sjohnson | camelia | 00:05 | |
pmichaud | hugme: show help | ||
hugme | pmichaud: sorry, I don't know anything about 'help' | ||
pmichaud | hugme: help | ||
hugme | pmichaud: (add $who to $project | list projects | show $project | hug $nickname | tweet $twittername $message ) | ||
pmichaud | how do I see who has commit access to a project? | ||
diakopter | hugme: show rakudo | 00:06 | |
hugme | diakopter: sorry, I don't know anything about 'rakudo' | ||
diakopter | hugme: show nqp-rx | ||
sorear | hugme: add sorear to nqp-rx | ||
hugme | diakopter: the following people have power over 'nqp-rx': PerlJam, TimToady, [particle], colomon, jnthn, masak, moritz_, pmichaud. URL: github.com/perl6/nqp-rx/ | ||
sorear: sorry, you don't have permissions to change 'nqp-rx' | |||
sjohnson | hugme: show hugme | ||
hugme | sjohnson: the following people have power over 'hugme': PerlJam, TimToady, [particle], colomon, jnthn, masak, mberends, moritz_, pmichaud. URL: github.com/moritz/hugme/ | ||
jnthn | pmichaud: I thought show did that. | ||
pmichaud | jnthn: me too, but the list that hugme gives doesn't match the actual collaborators list | ||
jnthn | pmichaud: Maybe it only knows about the ones added through hugme. | ||
pmichaud | for example, sorear++ is a nqp-rx committer, and TimToady isn't. | 00:07 | |
jnthn | Oh. | ||
pmichaud | I think it might be reporting who has meta-level control | ||
jnthn | Maybe it's bugge^Wbuggy. | ||
pmichaud | i.e., who's authorized to had committers | ||
as opposed to who the committers are | |||
jnthn | Yeah | ||
I'm not sure if it equates the two. | |||
Pugs repo style. | 00:08 | ||
00:09
cdarroch left
|
|||
sorear | do spectest runs normally take >1 hour? | 00:10 | |
00:10
rv2733 left
|
|||
sorear | ok, I'm down to failing three spectests | 00:10 | |
jnthn | sorear: Not for me. It depends on your hw | ||
sorear | S05-mass/properties-general.t | ||
S32-list/map.t | |||
S32-num/rounders.t | |||
actually the S05-mass one is just TODO passage since I have ICU | 00:13 | ||
jnthn | rounders.t may be a compiler specific issue. I have a box where I get fails in that. | 00:14 | |
map.t otoh is probably more concerning. | |||
sorear | map.t needs to be fudged better | 00:16 | |
it was silently giving the wrong answer before, so we todo'd it | |||
with my changes it dies | |||
rakudo: next | 00:17 | ||
p6eval | rakudo e98866: OUTPUT«Warning» | ||
sorear | stefan@stefans:~/rakudo$ ./perl6 -e 'next' | ||
Uncaught control exception 64 in eval | |||
so I'm going to declare this spectest run "good enough" | 00:18 | ||
sorear commits remaining changes and passes the baton to pmichaud | |||
pmichaud | sorear++ | 00:23 | |
pugssvn | r30628 | sorear++ | Refudge S32-list/map to account for a possible control exception | 00:24 | |
jnthn | Ah, yes, fudging things from todo to skip is often OK. | 00:25 | |
jnthn has had to do that various times too | |||
pmichaud | hugme: add bacek to nqp-rx | 00:41 | |
hugme hugs bacek. Welcome to nqp-rx! | |||
sjohnson hugs himself | 00:43 | ||
diakopter | hugme: hug hugme | 00:46 | |
hugme hugs hugme | |||
diakopter | hugme: hug hugme | ||
hugme hugs hugme | |||
diakopter | hugme: hug hugme | ||
hugme hugs hugme | |||
00:47
plobsing joined
|
|||
diakopter | hugme: hug hugme | 00:51 | |
hugme hugs hugme | |||
diakopter | aww | ||
pmichaud | autohugging. hmmm. | 00:52 | |
diakopter | hugme: hug themselves | ||
hugme hugs themselves | |||
jnthn | hugme: hug like that nice Icelandic girl I met | 00:53 | |
hugme hugs like | |||
jnthn | ...aww! | ||
00:53
eternaleye joined
|
|||
jnthn | .oO( /hug (\w+)/ ) |
00:53 | |
diakopter | hugme: huge sky | ||
hugme | diakopter: | ||
00:54
k23z__ joined
|
|||
k23z__ | anyone awake ? | 00:54 | |
diakopter | O_O | ||
pmichaud | zzzzz | ||
k23z__ | I remember seeing some discussions about OR being carried out in parallel | ||
and stuff like that | 00:55 | ||
and I'd like to mention a language where that *IS* currently implemented | |||
it's called ORC | |||
orc.csres.utexas.edu | |||
check out the documentationz orc.csres.utexas.edu/userguide/html/all.html | |||
diakopter | or is it? | ||
pmichaud | k23z__: awesome | ||
k23z__ | orc.csres.utexas.edu/userguide/html...tml#N11091 | 00:56 | |
pmichaud, orc.csres.utexas.edu/userguide/html...tml#N11091 | |||
is this in p6 spec ? | |||
pmichaud | k23z__: yes, as or-junctions | 00:57 | |
jnthn | I guess an any junction would be able to do something like that as an optimization. | ||
They're spec'd as parallel allowed. | |||
k23z__ | pmichaud, this currently implemented in Rakudo ? | ||
jnthn | And as soon as one thing says true, that's enough for the lot to me. | ||
pmichaud | if foo() | bar() | baz() { ... } is allowed to do parallel testing | ||
k23z__: or junctions are implemented, but not the parallel optimizatin | |||
k23z__ | ah ok | 00:58 | |
if you guys ever want to kickstart this you might want to look at the ORC source ... | |||
jnthn | pmichaud: Careful - would that not have to call all of the functions and then construct the junction? I guess we could thunk it, but I'm not sure if that's spec'd. | ||
k23z__ | this parallel thing seems to be the strong-point of ORC | ||
pmichaud | jnthn: I think it's allowed to be thunked | ||
jnthn | pmichaud: OK. | ||
pmichaud: I can't think of how thunking it would break the semantics, so I guess it's fine. | |||
jnthn puts the ORC link onto his "things to look at when I have more time and conciousness" pile | 01:01 | ||
pmichaud | yeah, I need a break to let the allergy/sinus meds to kick in. :-| | ||
bbiaw | |||
jnthn | Aww | ||
01:09
jferrero left
|
|||
pugssvn | r30629 | colomon++ | [t/spec] Cut back on a few more or less duplicate tests. | 01:27 | |
01:37
rml_ joined
01:44
orafu left
|
|||
isBEKaml | sorear++ # stagestats fix :) | 01:48 | |
01:59
gbacon_ joined
02:09
wknight8111 left
02:17
patspam left,
patspam joined
|
|||
colomon | 32129 passing tests, time for bed. | 02:25 | |
pugssvn | r30630 | colomon++ | [t/spec] Unfudge test after tweaking it a bit to avoid a unnecessary Rakudo bug which was irrelevant to what was being tested. | ||
02:41
gbacon_ left
02:42
gbacon_ joined
02:50
k23z__ left
02:53
gbacon_ left
03:00
masonkramer left,
masonkramer_ joined,
masonkramer_ is now known as masonkramer
03:08
dalek joined
03:09
patspam left
03:13
PenThrive joined
03:22
envi^home joined
|
|||
pugssvn | r30631 | sorear++ | Mostly unbitrot STD_syntax_highlight; it can now parse most of Rakudo's Perl6 | 03:38 | |
sorear | it's still failing on STD.pm6 though. | 03:40 | |
even though 'std' can handle STD | |||
and they're using the same parsercore | |||
03:42
plobsing left
03:43
plobsing joined
|
|||
sorear | seems to be an encoding issue; it barfs on the first line mentioning $¢ | 03:51 | |
03:57
snarkyboojum left
|
|||
sorear | yeeaap. @MEMOS[$\u{fffd} | 03:57 | |
no wonder it barfed | |||
03:58
JimmyZ joined
04:07
alester joined
04:10
snarkyboojum joined
|
|||
sorear | does azawawi IRC? | 04:10 | |
pugssvn | r30632 | sorear++ | Fix encoding error. STD_syntax_highlight can parse STD.pm6 now! | 04:17 | |
sorear | I'm not crazy about the colors but it's a far cry better than perl6.vim | ||
in terms of what it can parse without losing sync | |||
sorear reads STD.pm6 | 04:18 | ||
04:18
hercynium left
|
|||
diakopter | sorear: I see azawawi here occasionally | 04:26 | |
04:28
justatheory left
04:36
Guest75855 left
04:39
snarkyboojum left
04:43
snarkyboojum joined
|
|||
sorear | seen Juerd | 04:50 | |
buubot: seen Juerd | |||
buubot | sorear: I don't think I've seen Juerd. | ||
sorear | wat. | 04:51 | |
Who runs perl6.org? | 04:52 | ||
isBEKaml looks at moritz_ | 04:59 | ||
PerlJam | Is there something wrong with perl6.org? | 05:00 | |
isBEKaml | pointme: IRSeekBot | 05:02 | |
05:03
snarkyboojum left
|
|||
isBEKaml | :( | 05:03 | |
sorear | PerlJam: No, but it could be more awesome | 05:07 | |
isBEKaml | vim's perl6 syntax highlight file is over 2k lines! I wondered why vim was slow in displaying p6 files.. o.O | ||
PerlJam | sorear: do you have a commit bit to the pugs repo? | ||
sorear | PerlJam: Yes | 05:09 | |
PerlJam | sorear: see docs/feather/perl6.org | ||
sorear | But that doesn't translate into a crontab bit on whatever hosts perl6.org | ||
05:09
snarkyboojum joined
|
|||
isBEKaml | sorear: You can make small changes directly there. a cron job would update it every 15 mins. perl6.org/about/ | 05:09 | |
oh | 05:10 | ||
sorear | You see, I just made the Perl 6 -> HTML converter work (again?) | ||
So... we could have nicer links for STD.pm6 and in the spectest inserts | 05:11 | ||
05:18
alester left
05:22
snarkyboojum left
05:24
snarkyboojum joined
05:52
snarkyboojum left
05:56
Targhan_ left,
snarkyboojum joined
|
|||
isBEKaml | pmichaud.com/2009/pres/oscon-rakudo...start.html | 05:59 | |
pmichaud++ | 06:00 | ||
the presentation makes me badly want to write some code, heck, even a module that no one will use. Like, LOLTest! :D | |||
pmichaud: I cannot view beyond slide 92 on your awesome presentation. . :( | 06:02 | ||
06:04
Chillance left
|
|||
sorear finally made it through STD.pm6 | 06:09 | ||
I blame reasonable higlighting | |||
isBEKaml | pmichaud: nm. Waited a while, I can see them now. Awesome presentation! :) | 06:12 | |
06:15
meppl joined
|
|||
sorear | careful there | 06:16 | |
tat's alpha | |||
isBEKaml | sorear: ? | 06:17 | |
sorear | isBEKaml: the stuff about PGE is wrong | ||
outdated, very much, rather | |||
the front end of Rakudo was completely replaced in February | 06:18 | ||
isBEKaml | sorear: Doesn't matter, I was just looking to gain more into how Rakudo came to be, now. :) | ||
sorear | rakudo: say pir::typeof__SP(Perl6::Grammar) | ||
p6eval | rakudo ddaab3: OUTPUT«Perl6::Grammar» | ||
sorear | alpha: say pir::typeof__SP(Perl6::Grammar) | ||
p6eval | alpha 30e0ed: OUTPUT«invoke() not implemented in class 'Undef'in Main (file <unknown>, line <unknown>)» | ||
isBEKaml | Besides, we know where to look for new things, right? ;) | ||
sorear | std: role Foo { after bar() { ... } } | 06:48 | |
p6eval | std 30632: OUTPUT«===SORRY!===Unexpected block in infix position (two terms in a row, or previous statement missing semicolon?) at /tmp/KJEZnpnHcm line 1:------> role Foo { after bar() ⏏{ ... } } expecting any of: bracketed infix infix or | ||
..meta-infixUndec… | |||
sorear | std: role Foo { after bar() { ... }; } | ||
p6eval | std 30632: OUTPUT«===SORRY!===Unexpected block in infix position (two terms in a row, or previous statement missing semicolon?) at /tmp/9OSllPfYFj line 1:------> role Foo { after bar() ⏏{ ... }; } expecting any of: bracketed infix infix or | ||
..meta-infixUnde… | |||
sorear | does Perl 6 have method modifiers? | 06:49 | |
colomon | method modifers? | 06:51 | |
after is a comparison operator, btw... | 06:52 | ||
isBEKaml | this looks like AOP to me, from what I have briefly worked on them... | ||
06:52
dual left
|
|||
isBEKaml | I think sorear wants to call something after some method is executed, something like a listener, perhaps? | 06:52 | |
sorear | no, no | 06:54 | |
after NAME => SUB is sugar for method NAME { super.NAME; without-changing-return-value (SUB } | |||
in Moose | |||
is the Perl 6 class system planned to reach feature parity with Moose at any point? | 06:55 | ||
06:58
dual joined
|
|||
colomon | I'm not aware of sugar for that. | 07:02 | |
I believe callsame should call the super's version of the method. | |||
seems like the sort of thing which could be easily hacked into the object system with a module? | 07:09 | ||
07:10
iblechbot joined
07:12
JimmyZ left
|
|||
pugssvn | r30633 | colomon++ | [t/spec] Unfudge tests, add needed sort. | 07:17 | |
sorear | colomon: I'm pretty sure I'd need a macro for that | 07:18 | |
colomon | sorear: woah, too bad no one is working on macros... ;) | 07:19 | |
sorear finds the level of disagreement between the Moose and Perl6 communities quite ironic | |||
dalek | kudo: 82f7ef3 | (Solomon Foster)++ | src/core/Pair.pm: Add Pair.keys and Pair.values. |
07:21 | |
07:29
JimmyZ joined
|
|||
JimmyZ wonders what's the difference between $.key and self.key | 07:30 | ||
sorear | none whatsoever | 07:45 | |
moritz_ | good morning | 08:00 | |
isBEKaml | moritz_: good morning! | 08:03 | |
sjohnson | hi | 08:04 | |
08:09
iblechbot left,
XaeroOne joined
|
|||
isBEKaml | rakudo: class List { method do_something { for self.kv { .say } } }; List.new.say; | 08:16 | |
p6eval | rakudo ddaab3: OUTPUT«Illegal redeclaration of symbol 'List'current instr.: 'perl6;Perl6;Grammar;_block257' pc 42865 (src/gen/perl6-grammar.pir:265)» | ||
isBEKaml | uhh, when was List added in? | 08:17 | |
moritz_ | pretty early | ||
JimmyZ | nqp: module ResizablePMCArray { method WHO() { 'I\'m an Array'; } }; say(my @a.WHO); | ||
p6eval | nqp: OUTPUT«I'm an Array» | ||
isBEKaml | moritz_: so how can I, say, add a new method to the existing List and still reuse it? | 08:18 | |
moritz_ | isBEKaml: yes, that's what 'augment' is for | ||
isBEKaml | moritz_: something like inherit it and add.. | ||
moritz_ | or inheriting, yes | ||
though rakudo has problems with augmenting and inheriting from some builtin types | 08:19 | ||
isBEKaml | MONKEY_TYPING? | ||
moritz_: like what? is that on RT that I can see? | 08:20 | ||
moritz_ | no idea | ||
rakudo: augment class Int { method foo { say "OH HAI" } }; 5.foo | 08:21 | ||
p6eval | rakudo ddaab3: OUTPUT«Can't augment class Int without 'use MONKEY_TYPING'current instr.: 'perl6;Perl6;Grammar;add_name' pc 43094 (src/gen/perl6-grammar.pir:344)» | ||
isBEKaml | yes, I got something like that already here. | ||
moritz_ | rakudo: use MONKEY_TYPING; augment class Int { method foo { say "OH HAI" } }; 5.foo | ||
p6eval | rakudo ddaab3: OUTPUT«Method 'foo' not found for invocant of class 'Integer'current instr.: '_block14' pc 29 (EVAL_1:0)» | ||
moritz_ | rakudo: use MONKEY_TYPING; augment class Integer { method foo { say "OH HAI" } }; 5.foo | ||
p6eval | rakudo ddaab3: OUTPUT«Can't augment class that doesn't existcurrent instr.: 'perl6;Perl6;Grammar;add_name' pc 43094 (src/gen/perl6-grammar.pir:344)» | ||
moritz_ | I'll report it, just in case | 08:22 | |
isBEKaml | ok | 08:23 | |
JimmyZ | rakudo: use MONKEY_TYPING; augment class Str { method Yes() { 'yes, please'; } }; 'No'.Yes().say; | 08:25 | |
p6eval | rakudo ddaab3: OUTPUT«Method 'Yes' not found for invocant of class 'Perl6Str'current instr.: '_block14' pc 29 (EVAL_1:0)» | ||
isBEKaml | rakudo: use MONKEY_TYPING; augment class Str { method YES() { 'yes, no, yes'; }; "No".Str.new.YES().say; | 08:32 | |
p6eval | rakudo ddaab3: OUTPUT«Unable to parse blockoid, couldn't find final '}' at line 11current instr.: 'perl6;Regex;Cursor;FAILGOAL' pc 1696 (ext/nqp-rx/src/stage0/Regex-s0.pir:932)» | ||
isBEKaml | oh... | ||
08:32
snarkyboojum left
|
|||
isBEKaml | rakudo: use MONKEY_TYPING; augment class Str { method YES() { 'yes, no, yes'; } }; "No".Str.new.YES().say; | 08:32 | |
p6eval | rakudo ddaab3: OUTPUT«Null PMC access in get_repr()current instr.: 'perl6;Mu;CREATE' pc 2049 (src/builtins/Mu.pir:207)» | ||
isBEKaml | moritz_: is this related? | 08:33 | |
08:33
kaare joined,
kaare is now known as Guest50318
08:34
snarkyboojum joined
|
|||
moritz_ | rakudo: Str.new | 08:34 | |
p6eval | rakudo ddaab3: ( no output ) | ||
moritz_ | rakudo: Str.new.foo | ||
p6eval | rakudo ddaab3: OUTPUT«Method 'foo' not found for invocant of class 'Str'current instr.: '_block14' pc 29 (EVAL_1:0)» | 08:35 | |
moritz_ | isBEKaml: might be | ||
isBEKaml | rakudo: use MONKEY_TYPING; augment class Str { method YES() { 'yes, no, yes'; } }; Str.new.YES().say; | 08:39 | |
p6eval | rakudo ddaab3: OUTPUT«yes, no, yes» | ||
isBEKaml | yeeesh, I don't understand this at all... :( | ||
moritz_ | rakudo: say 'a'.PARROT | 08:40 | |
p6eval | rakudo ddaab3: OUTPUT«Perl6Str» | ||
moritz_ | rakudo: say 'a'.Str.new.PARROT | 08:42 | |
p6eval | rakudo ddaab3: OUTPUT«Null PMC access in get_repr()current instr.: 'perl6;Mu;CREATE' pc 2049 (src/builtins/Mu.pir:207)» | ||
moritz_ | rakudo: say Str.new.PARROT | ||
p6eval | rakudo 82f7ef: OUTPUT«Str» | ||
moritz_ | so a string literal is less Str'y then a new Str :/ | ||
isBEKaml | my thinking was, I'm still calling a method on an instantiated string that's defined in Str class. So why should that fail? | 08:43 | |
this is akin to saying (semantically speaking): Str.new.method is fine but not "somestring".Str.new.method. :/ | 08:44 | ||
moritz_ | leaky HLL mapping, most likely | ||
08:44
Guest50318 left
|
|||
moritz_ | but I don't understand that aspect of Rakudo at all | 08:45 | |
JimmyZ | Actions.pm ~= s/Perl6Str/Str/g works, thought I'm not sure whether it's right or not. | 08:47 | |
moritz_ | in line 18 it's certainly not right | 08:49 | |
JimmyZ | yes, that's not right | 08:50 | |
isBEKaml | uhh, why are there 2 Str definitions? Perl6Str and Str ? Like one for Parrot and one for p6? | ||
in 18 and 19 | 08:51 | ||
JimmyZ | I changed it in quote_EXPR and quote_delimited | ||
08:52
plobsing left
|
|||
moritz_ | nqp: say(:foo('bar')) | 08:53 | |
p6eval | nqp: OUTPUT«» | ||
moritz_ | nqp: say(:foo<bar>) | ||
p6eval | nqp: OUTPUT«» | ||
moritz_ | nqp: say(:foo<bar>.key) | ||
p6eval | nqp: OUTPUT«Method 'key' not found for invocant of class 'String'current instr.: '_block11' pc 0 (EVAL_1:835567572)» | ||
JimmyZ | > say 'a'.PARROT | 08:55 | |
Str | |||
moritz_ | JimmyZ: and can you agument Str locally, and use the new methods? | 08:56 | |
*augment | |||
JimmyZ | do you mean Actions.pm ~= s/Perl6Str/Str/ in in quote_EXPR and quote_delimited? if it is, yes, I can | 08:57 | |
isBEKaml | JimmyZ: can you try this? use MONKEY_TYPING; augment class Str { method YES() { 'yes, no, yes'; } }; "No".Str.new.YES().say; | 08:59 | |
moritz_ | Null PMC access in get_repr() | 09:00 | |
isBEKaml: the problem is that "No".Str.new calls .new on an instance, not on the type object | |||
JimmyZ | isBEKaml: the same as moritz_ | ||
moritz_ | because "No".Str is again an instance | 09:01 | |
JimmyZ | I can't augment Int | 09:02 | |
isBEKaml | that can't be right, can it? I mean, we should be able to use methods defined in Str even on instantiated Str objects. | ||
moritz_ | not so sure with .new | 09:03 | |
but if it's not usable, you shouldn't be able to call it | |||
you can say "No".WHAT.new and expect it to work | |||
isBEKaml | not sure what you mean. Am I missing something here? | ||
moritz_ | jnthn, pmichaud: s:g/Perl6Str/Str/ in methods quote_EXPR and quote_delimited makes calling monkey-typed methods in class Str on string literals work... is it the "right" fix? | 09:04 | |
isBEKaml: .new is meant to create new instance | 09:05 | ||
isBEKaml | moritz_: you mean a new instance of the Str class, not the augmented one? | ||
moritz_ | instance = object | ||
but an instance/object can have other methods mixed in at run time | 09:06 | ||
what would .new on such an object return? one with thew mixed in methods, too? or a pure Str? | |||
isBEKaml | I would expect the one with mixed in methods, since that's what we coded for. | ||
moritz_ | if it's supposed to work at all, it needs more spec | 09:07 | |
JimmyZ | rakudo: use MONKEY_TYPING; augment class Array { method Yes() { "hi"; } }; my @a; say @a.Yes; | 09:11 | |
p6eval | rakudo 82f7ef: OUTPUT«hi» | ||
pugssvn | r30634 | moritz++ | [t/spec] fix bogus test ($! as parameter) | 09:14 | |
09:18
orafu joined
09:21
PenThrive left
|
|||
isBEKaml | moritz_: are namespaces and scoping strictly defined here? We may define augmented classes for existing ones.But if namespaces are clearly demarcated, we can get away with .new methods returning objects of augmented classes and not the existing ones. | 09:22 | |
moritz_ | augmenting isn't limited to a particular scope, if that's what you are asking | 09:24 | |
apart from that, I don't understand what you're saying | |||
isBEKaml | I mean namespaces as in package level scoping, file level scoping or even block level scoping(if inner classes exist in P6) | 09:25 | |
if augmenting is not limited to any scopes, then .new should be able to return instances of any class that we ask for, right? The question is, how do we say we want the augmented class or the pure base class instead of leaving it to the compiler to figure that one out? | 09:28 | ||
moritz_ | we always want the augmented class | ||
if that wasn't the case, we wouldn't use augmenting, but inheritance | |||
JimmyZ | rakudo: say 5.WHAT; say 5.Hi; | 09:29 | |
p6eval | rakudo 82f7ef: OUTPUT«Int()Method 'Hi' not found for invocant of class 'Integer'current instr.: '_block14' pc 29 (EVAL_1:0)» | ||
moritz_ | also after augmenting there is no "original" class anymore | 09:30 | |
isBEKaml | well, in this case, .new doesn't seem to return the augmented class. "No".Str.new.augmented_method | ||
moritz_ | .new isn't supposed to return a class | ||
isBEKaml | terminology always got me before. :( | 09:31 | |
here, I mean. "no".Str.new shouldn't return an instance of base Str, but the augmented Str and treat it with the augmented method that we added? | 09:32 | ||
moritz_ | "no" should be augmented already | ||
and "no".Str too | |||
09:34
k23z__ joined
|
|||
isBEKaml | moritz_: heh. I took so long to get here. I now see what you mean. Sorry for all the line noise and thank you very much for your patience. | 09:36 | |
moritz_ | no problem :-) | ||
isBEKaml | moritz_: I was confused over calling a method on an instance and on the class. :( | ||
09:37
kel_ joined
|
|||
isBEKaml | moritz_++ ## enormous patience. :) | 09:37 | |
JimmyZ | Will Num be replaced to Numeric? | 09:38 | |
rakudo: use MONKEY_TYPING; augment class Numeric { method Yes() { "hi"; } }; my Num $a; say $a.Yes; | 09:39 | ||
p6eval | rakudo 82f7ef: OUTPUT«Method 'Yes' not found for invocant of class ''current instr.: '_block14' pc 29 (EVAL_1:0)» | ||
JimmyZ | rakudo: use MONKEY_TYPING; augment class Numeric { method Yes() { "hi"; } }; my Numeric $a; say $a.Yes; | 09:40 | |
p6eval | rakudo 82f7ef: OUTPUT«hi» | ||
JimmyZ | afk | ||
moritz_ | JimmyZ: Num will continue to exist to abstract floating point numbers | ||
JimmyZ | and Numeric? | ||
moritz_ | JimmyZ: and Numeric is a role that all number types will implement | ||
so +$thing will try to coerce $thing to Numeric | |||
so any type that does Numeric is OK | 09:41 | ||
JimmyZ | ah, ok, thanks | ||
I just got a mistake | 09:42 | ||
moritz_ | isBEKaml: would it be helpful to have a page on Perl 6 terminology? | ||
09:42
JimmyZ left
|
|||
isBEKaml | yes, glossary of terms. | 09:43 | |
moritz_: we already have glossary.pod in docs? | |||
moritz_ | right, I just remembered that | ||
isBEKaml | moritz_: perhaps add more to it? | ||
moritz_ | isBEKaml: aye; and render it as HTML somewhere | 09:47 | |
how would you define "instance"? | 09:49 | ||
isBEKaml | moritz_: thinking about it, there's a slight difference between p6's way of calling .new and java's way of calling new. java: class A {...} A anInstance = new A(); | 09:53 | |
moritz_ | yes, Perl 6 has type objects | ||
ie the class itself is also an object | 09:54 | ||
isBEKaml | moritz_: it's pretty straightforward looking at it, class "A" has all the blueprint of methods and anInstance carries it forward into the real world. | ||
moritz_: ie. you cannot use class "A" per se unless it's a static class. | |||
moritz_ | isBEKaml: I'll put that into the glossary | 09:56 | |
isBEKaml | now thinking about how I erred in p6's way: "A".Str.new.method_augmented() --> "A".Str.new actually presents a blank state to the method and hence we see Null PMC access. Am I right? | ||
moritz_ | not sure; it's a bit more complicated with value types (and I'm a bit confused by other stuff atm) | ||
isBEKaml | moritz_: can we represent the glossary like a plain text file ( a la *nix fortunes) | 09:57 | |
moritz_ | isBEKaml: should be easy, with pod2text | 09:58 | |
std: my $x = class { } | 09:59 | ||
p6eval | std 30634: OUTPUT«ok 00:01 113m» | ||
isBEKaml | moritz_: my p5.10's pod2text got confused by multiple =head1 tags.. | 10:00 | |
moritz_ | isBEKaml: more likely by the =begin glossary... =end glossary | 10:01 | |
isBEKaml | Shouldn't be problem though.. | ||
moritz_ | grep -vE '^=(begin|end)' glossary.pod | pod2text | 10:02 | |
phenny: ask masak if there's any tool that used the =begin glossary marker in docs/u4x/documentation - if not I'd like to remove it, because then it happens to be valid perl 5 POD, and easier for me to process :-) | 10:06 | ||
phenny | moritz_: I'll pass that on when masak is around. | ||
isBEKaml | moritz_: the problem is, I don't find =begin or =end in the pod text. where's it used actually? | 10:11 | |
grep -E '=(begin|end)' glossary.pod returned nothing | |||
moritz_ | are we talking about the same file? | 10:12 | |
isBEKaml | so did this: fgrep -e '^=(begin|end)' *.pod | ||
moritz_ | docs/u4x/documentation/glossary.pod | ||
in the pugs repo | |||
isBEKaml | Ah, I see. not the same file. | ||
moritz_ | now I'm curious, which one did you look at? | 10:13 | |
isBEKaml | git pulled rakudo docs file. | ||
github.com/rakudo/rakudo/blob/maste...ossary.pod | 10:15 | ||
moritz_ | yes | ||
that's pretty... skinny | |||
and rakudo specific | |||
isBEKaml | hmm, then I'll check out u4x. | 10:16 | |
u4x's glossary has only 4 terms? | 10:17 | ||
moritz_ | did you svn up? | ||
should be 6 or so :-) | |||
isBEKaml | svn.pugscode.org/pugs/docs/u4x/documentation/ | ||
moritz_ | oh | 10:18 | |
I fogot to svn dcomiit | |||
isBEKaml | :) | ||
pugssvn | r30635 | moritz++ | [docs] an anonymous sub can have a name, in fact | ||
r30636 | moritz++ | [docs] expand glossary, and restore alphabetical order; contains a nice description of instances by isBEKaml++ | |||
r30637 | moritz++ | [t/spec] some Rakudo unfudges | |||
isBEKaml | nice. we'll add more to it when we see them coming. :) | 10:21 | |
so, here's to more clarity out of chaos! ;) | |||
moritz_: There's a small typo in instances, I think. most types are defiC<defined($instance)> | 10:23 | ||
defiC<de... | |||
moritz_ | isBEKaml: could you please fix it? | ||
I hope you have commit access already? | 10:24 | ||
isBEKaml | I don't have a commit bit. | ||
moritz_ | high time to change that | ||
please tell me your email address (in private message, if you wish) and desired svn nick | |||
isBEKaml | moritz_: I hope you got my private msg? | 10:26 | |
moritz_ | isBEKaml: yes; mail sent | ||
isBEKaml: welcoem to the pugs repo; please add yourself to AUTHORS in your first commit | |||
isBEKaml | moritz_: cool. traditional first commit to AUTHORS? :) | 10:27 | |
moritz_ | yes | ||
pugssvn | r30638 | moritz++ | [docs/u4x] small p5 script to render u4x docs into HTML | 10:31 | |
moritz_ | so, what shall we call the domain? docs.perl6.org? or doc? u4x? | 10:34 | |
funny, python has python.org/doc/ and docs.python.org | 10:35 | ||
isBEKaml | docs.perl6.org - for perl6's documentation page. Since this is u4x, this will always be u4x. u4x.perl6.org | ||
moritz_ | and php has phpdoc.org, and php.org/docs/ | ||
ok, will do after breakfast :-) | 10:36 | ||
10:36
lestrrat is now known as lest_away
|
|||
arnsholt | I vote for a single URL, at least | 10:36 | |
docs. might be easier for newcomers to remember than u4x. | 10:37 | ||
isBEKaml | u4x is special! ;) | ||
As somebody once said, everyday will be X'Mas once Perl6 is out. | 10:38 | ||
10:38
drake1 joined
|
|||
arnsholt | I think that was audreyt | 10:38 | |
pugssvn | r30639 | svatsan++ | First traditional commit to AUTHORS | 10:40 | |
isBEKaml | yay! :) | ||
drake1 | hello, why not allow sed like array subscripts? | ||
arnsholt | What do those look like? I'm not really familiar with sed | 10:41 | |
drake1 | like @array[3,$] to extract from element 3 to the last element | ||
arnsholt | It'll be possible to slice an array from one place to the end. Can't remember the syntax off-hand though | ||
drake1 | in perl6? | 10:42 | |
in sed you can also address based on grep like patterns like @array[/from pattern/,/to pattern/] | 10:43 | ||
arnsholt | How does that last work? Matches don't return anything int-like | 10:44 | |
drake1 | in sed it would apply the subsequent commands to the range of elements in between the first and the last match | 10:45 | |
arnsholt | I think that's very sed-specific | 10:46 | |
drake1 | but it's a nice feature | ||
moritz_ | drake1: that would be [3..*] in Perl 6 | ||
drake1 | perl is more for the .. that , though | ||
s,that,than | 10:47 | ||
3..* is from element three to the last? | |||
actually it's not sed specific | 10:48 | ||
ed uses similar semantics | |||
isBEKaml | moritz_: would it be right to say a non-zero value holds to be True for Boolean? | ||
or do we have a specific True for Booleans? | |||
rakudo: my Str $temp="hello"; say defined($temp); | 10:49 | ||
p6eval | rakudo 82f7ef: OUTPUT«1» | ||
isBEKaml | moritz_: IIRC, that was how it was in p5. | ||
snarkyboojum | say ?"hello" | 10:53 | |
rakudo: say ?"hello" | |||
p6eval | rakudo 82f7ef: OUTPUT«1» | ||
drake1 | in perl6 you would proably have to say: @array2 = grep /from pattern/../to pattern/, @array1 | 10:54 | |
snarkyboojum | rakudo: say ?''; say ?Nil; say ?Any | 10:56 | |
p6eval | rakudo 82f7ef: OUTPUT«000» | ||
isBEKaml | snarkyboojum: I was referring to the case when we instantiate an object of a class/ or a native type class like Str and call defined() on them. They always return 1. So I was asking if 1 meant True or we have a separate Boolean type for that. | 11:00 | |
moritz_ | rakudo: say True.perl | 11:03 | |
p6eval | rakudo 82f7ef: OUTPUT«Bool::True» | ||
moritz_ | isBEKaml: we have enum Bool <False True> | ||
isBEKaml: remember to fix that typo :-) | 11:04 | ||
isBEKaml | moritz_: yeah, I was looking to fix that typo and was thinking of providing a small snippet to show defined($instance). Was unsure when I saw "1" returned. | 11:05 | |
:) | |||
moritz_ | True stringifies to '1' | ||
rakudo: say True | |||
p6eval | rakudo 82f7ef: OUTPUT«1» | ||
moritz_ | you can always use | ||
Trashlord | Peyote Sound System - Aqua Dub | 11:06 | |
moritz_ | if defined($instance) { say "OH YES" } | ||
Trashlord | er, wrong channel, sorry about that | ||
drake1 | until cond;do .... hehe | 11:07 | |
snarkyboojum | rakudo: class A {}; A.new.defined.perl.say | ||
p6eval | rakudo 82f7ef: OUTPUT«Bool::True» | ||
snarkyboojum | rakudo: (~True).perl.say | 11:08 | |
p6eval | rakudo 82f7ef: OUTPUT«"1"» | ||
snarkyboojum | :) | ||
cognominal | jonathan, suppose I declare my ($pos, $pos-args, $named-args); than I use ($pos, $pos-args, $named-args) many times in lhs. Is this possible to use your pattern signature stuff to avoid repeating my self? | 11:09 | |
isBEKaml | I now understand why documentation is tough. We have to think what to include and what not to so as not to confuse the reader. :) | ||
bacek | rakudo: my Int $a = 42; say $a; | ||
p6eval | rakudo 82f7ef: OUTPUT«42» | ||
cognominal | *then | ||
drake1 | oh it's getting alot closer to C++ then | 11:10 | |
with explicit storage declarations | |||
cognominal | that would be patterns as replacement for ala C textual macros | ||
I suppose jonathan is geeklagged :) | 11:12 | ||
moritz_ | cognominal: my $sig = \($pos, $pos-args, :$named-args); or something | ||
erm | |||
:($pos, $pos-args, ...) | |||
so create a signature | 11:13 | ||
cognominal | I meant jnthn | ||
drake1 | in perl6 is a reference to an integer the same as a pointer to one? | ||
moritz_ | we officially have abolished pointers in Perl 6 :-) | 11:14 | |
cognominal | I will try it. I just have more success when I have the moral support of a true hacker | ||
drake1 | but your type declarations seem similar | ||
snarkyboojum | no "references" per se either right moritz_ ? | ||
drake1 | really | ||
moritz_ | well, to some degree everything is a reference | ||
drake1 | references made many things easy | 11:15 | |
snarkyboojum | right | ||
do mean along the lines of 'anything can be stored in a scalar'? | |||
drake1 | that was the trick; that references could be stored as scalar values | 11:16 | |
moritz_ | rakudo: my @a = 1, 2, 3; @a[1] = <foo bar baz>; say @a.perl | ||
p6eval | rakudo 82f7ef: OUTPUT«[1, ("foo", "bar", "baz"), 3]» | ||
snarkyboojum | rakudo: my @list = 1, 2, 3; my $ref = @list; say $ref.elems | 11:17 | |
p6eval | rakudo 82f7ef: OUTPUT«3» | ||
snarkyboojum | I shouldn't have called that $ref :) | ||
cognominal | rakudo: my $sig = \( $a, $b); $sig = ( 1, 2); say "$a$b" | 11:18 | |
p6eval | rakudo 82f7ef: OUTPUT«Symbol '$a' not predeclared in <anonymous>current instr.: 'perl6;PCT;HLLCompiler;panic' pc 152 (compilers/pct/src/PCT/HLLCompiler.pir:108)» | ||
snarkyboojum | rakudo: my @list = 1, 2, 3; my $ref = @list; say $ref.WHAT | ||
p6eval | rakudo 82f7ef: OUTPUT«Array()» | ||
pugssvn | r30640 | svatsan++ | [u4x docs] Fixed minor typo and added examples to section on instances | 11:19 | |
cognominal is clearly cargoculting | 11:20 | ||
11:20
xomas_ joined
11:21
xomas_ is now known as xomas
|
|||
cognominal | and if cargos will ever land, that will be on my poor head. | 11:21 | |
drake1 | gotta write a C99 version of a perl5 server daemon | 11:22 | |
pugssvn | r30641 | moritz++ | [u4x/scripts] account for current script location in path | 11:23 | |
moritz_ | u4x.perl6.org/control-flow.html | 11:24 | |
drake1 | rakuda: my $integer_ref = \123;say ${$integer_ref} | ||
oh | 11:25 | ||
moritz_ | it would be $(...) in Perl 6, if any | ||
isBEKaml | drake1: s/uda/udo/ ;) | ||
drake1 | oops heheh | ||
cognominal | I bet a synopsis dedicated about Signature, Capture and other Parcels is warranted, as well as binding using := | 11:26 | |
drake1 | rakudo: my $intp = \123;say $$intp | ||
p6eval | rakudo 82f7ef: OUTPUT«Confused at line 11, near "say $$intp"current instr.: 'perl6;HLL;Grammar;panic' pc 501 (ext/nqp-rx/src/stage0/HLL-s0.pir:327)» | ||
moritz_ | rakudo: my $intp = \123; say $($intp) | ||
drake1 | wicked | ||
p6eval | rakudo 82f7ef: OUTPUT«Capture()<0x3725d40>» | ||
moritz_ | but there's really no good reason to use an explicit capture of a single scalar | 11:27 | |
cognominal | ...because that subjet somehow becomes orthogonal to routines. | ||
drake1 | many of my own routines are macro substitution | 11:28 | |
moritz_ | ... and? | ||
drake1 | then explitic usage becomes important | 11:29 | |
moritz_ | so what would you use explicit captures of a single variable for? | 11:31 | |
pmichaud | synopsis about signature: S06 | ||
synopsis about Capture and Parcels: S07 | |||
drake1 | moritz: probably nothing | ||
pmichaud | don't believe anything you currently read in S07 :-) | ||
oops, s/S07/S08/ | 11:32 | ||
moritz_ doesn't | |||
pmichaud | actually, much of S07 is in flux as well :-) | ||
cognominal | pmichaud++ # I forgot it was already there | ||
moritz_ | pmichaud: btw your "wholly inadequate reply to an Anonymous Monk" is ranked as second-best node of the year on perlmonks | ||
pmichaud | moritz_: wow, I didn't know that. Good to know. | 11:33 | |
(I didn't even know that such statistics were available :-) | |||
moritz_ | www.perlmonks.org/?node=Best Nodes | ||
www.perlmonks.org/?node=Best%20Nodes # with proper URL escaping | 11:34 | ||
(it's also best of the month, but that's much easier to achieve) | |||
isBEKaml | moritz_: the HTMLified control-flow docs has turned out good. Could be made more awesome. (no, I'm not thinking perldoc.perl.org, heavy on my poor little machine) | ||
moritz_ | isBEKaml: if nobody steps up to awesomeify it here, I'll make it another "This Week's Contribution to Perl 6" | 11:35 | |
:-) | |||
and TPF has greed to sponsor a few t-shirts to the new contributors | |||
so everybody wins :-) | |||
isBEKaml | moritz_++ ## awesomeness++ | ||
pmichaud | afk, errands | 11:36 | |
drake1 | Im more for the cat <<EOF |ed t-sthirt | ||
isBEKaml | moritz_: easily done. All that's needed a single style.css that can accomodate all the tags without even having to modify them. :) | 11:41 | |
moritz_ | isBEKaml: feel free to put it in u4x/scripts | ||
pugssvn | r30642 | moritz++ | [helpnow] update REAMDE, new idea (awesomify u4x.perl6.org) | 11:42 | |
drake1 | then it's just: /^.IM print.format 22,23/s/23/24/ to adjust the position | ||
moritz_ | diakopter, colomon: you are listed as potential voluntueers in misc/helpnow/README... do you want to create next week's challenge? | ||
colomon | hmm | 11:43 | |
colomon is trying to remember what ideas he had through a groggy sleep-deprived brain.... | 11:44 | ||
s/through/with/ | |||
moritz_ | colomon: the README also has some ideas | ||
colomon: and there's no need to settle for one today | |||
isBEKaml | moritz_: port a smallish module. I like that! | ||
not too easy. not too hard either. | 11:45 | ||
moritz_ | isBEKaml: yes, but we'd have to think of a smallish module that can easily be ported | ||
11:45
xomas left
|
|||
isBEKaml | then somebody would come up with YOU_ARE_HERE.pm and E2MUCHMAGIC. :) | 11:45 | |
moritz_ | I thought of List::Util, but it contains only one function that's not core in Perl 6 :-) | 11:46 | |
Date::Simple is already ported | |||
drake1 | perls new pattern caret and dollar isn't line-feed oriented by default, right? | 11:47 | |
11:47
clintongormley joined
|
|||
moritz_ | right | 11:47 | |
drake1 | nice | 11:48 | |
moritz_ | ^ stands for start-of-string | ||
isBEKaml | Log::Message? Should be easy right? | ||
moritz_ | ^^ stands for start-of-line | ||
drake1 | thats really nice | ||
moritz_ | isBEKaml: that's a good idea... I just haven't used it yet | ||
isBEKaml | moritz_: enough to hold interest for the weekend. :) | 11:49 | |
colomon | moritz_: what one function in List::Util isn't core? | 11:50 | |
moritz_ | colomon: first | ||
colomon | that's like grep but returning only the first match? | ||
moritz_ | right | 11:51 | |
colomon | that's in CORE. | ||
moritz_ | it is? | ||
rakudo: say <a b c >.first(b|c) | |||
p6eval | rakudo 82f7ef: OUTPUT«Could not find sub &bcurrent instr.: '_block14' pc 29 (EVAL_1:0)» | ||
colomon | line 27 any-list.pm | ||
moritz_ | rakudo: say <a b c >.first("b"|"c") | ||
p6eval | rakudo 82f7ef: OUTPUT«any("b", "c")» | ||
moritz_ | now that looks wrong | ||
colomon | rakudo: say <a b c >.first("b") | 11:52 | |
p6eval | rakudo 82f7ef: OUTPUT«b» | ||
isBEKaml | rakudo: say <a b c b d e>.first("b") | ||
p6eval | rakudo 82f7ef: OUTPUT«b» | ||
drake1 | <a b c> is for a list object? | ||
colomon | rakudo: say (1... 10).first({ * !% 3}) | ||
moritz_ | drake1: yes | ||
p6eval | rakudo 82f7ef: OUTPUT«Method 'Num' not found for invocant of class 'Block'current instr.: 'perl6;Mu;' pc -1 ((unknown file):-1)» | ||
isBEKaml | again, shouldn't that be returning an index or something? | ||
drake1 | moritz: nice | ||
colomon | rakudo: say (1... 10).first({ $_ !% 3}) | 11:53 | |
moritz_ | the problem is that the argument isn't Mu | ||
p6eval | rakudo 82f7ef: OUTPUT«3» | ||
moritz_ | so List.first autothreads | ||
drake1 | moritz: sometimes blank separation is gettin cumbersome in the shell | ||
colomon | moritz_: we should have a test about that. | ||
11:53
xomas_ joined
|
|||
colomon | but clearly first should take the same argument as grep. | 11:53 | |
moritz_ | colomon: aye; I'm spectesting my fix right now | ||
colomon | moritz_++ | ||
isBEKaml | colomon, moritz_: when calling on first(), shouldn't the default output be the string itself with the _index_ in the list/string? | 11:54 | |
moritz_ | isBEKaml: that's not what the spec says | ||
that would be first_index from List::MoreUtils | 11:55 | ||
that said, we could have :key and :pair named args | |||
11:55
wknight8111 joined
|
|||
moritz_ | where :key returns the index, and :pair returns an index => value pair | 11:55 | |
isBEKaml | moritz_: key-value pairs are a good idea. TimToady++ | ||
drake1 | how to create an array with all the filenames in a directory? like my @name = <*>; or something new? | 11:59 | |
moritz_ | my @name = glob '*'; # probably | ||
drake1 | fine | ||
I do for F in $(ls|grep ...) alot | 12:00 | ||
pugssvn | r30643 | moritz++ | [t/spec] the "first" sub/method should also work with a junction as matcher | ||
drake1 | but that isn't standard glob | ||
moritz_ | you have regexes in Perl 6 too :-) | ||
isBEKaml | drake1: don't you use *nix find at all? | 12:01 | |
drake1 | yeah but `glob' is bourne shell name substitution patterns? | ||
12:01
JimmyZ joined
|
|||
isBEKaml | drake1: from what I have seen, passing the output of ls to for loops in shell can cause problems, if you don't know they cointain shell special chars.. | 12:02 | |
drake1 | isBEKaml: I don't use `find | ||
' alot, no\ | |||
isBEKaml: that's true | |||
isBEKaml | drake1: then use it. that's better than passing around ls outputs to for loops. | 12:03 | |
drake1 | isBEKaml: because the stream needs a separation character to distinguish a name element | ||
12:03
jhuni left
|
|||
isBEKaml | drake1: exactly what I meant. I can't tell you how many backups I lost due to that until I found out about find. :) | 12:04 | |
drake1 | isBEKaml: when you don't work in a clean directory is can be a pain | 12:05 | |
s,is can,it can | |||
isBEKaml | nothing's clean. you just work with what you got. just using the right tools can get the job done most of the time. | 12:06 | |
drake1 | isBEKaml: but `find' can use NUL separation in the stream and cpan has a perl specific version | ||
isBEKaml: yeah, I always end up with a C rock | |||
isBEKaml | drake1: if you're referring to File::Find, that's limited in scope compared the Shell's find utility. Some have suggested File::Find::Object instead. | 12:07 | |
moritz_ | file, File::Find is quite nice, but needs getting used to | ||
drake1 | isBEKaml: then it's all matching exactly the memory | ||
isBEKaml | though I have used neither. | ||
moritz_ | File::Find is actually just a directory iterator | ||
and you provide a closure that takes a filename + path | |||
drake1 | it don't do stat? | ||
moritz_ | it does readdir | 12:08 | |
why should it do stat? | |||
drake1 | recursively on directory entries? | ||
moritz_ | ah, right | ||
dalek | kudo: 16e9537 | moritz++ | src/core/Any-list.pm: accept junctions as matcher argument to first() |
||
moritz_ | it does that | ||
drake1 | ok | ||
isBEKaml | moritz_: Text::Wrap is anothe rsmallish module that can be ported though I don't know how useful it would be in p6 (wrt unicode handling). just a plain exercise? | 12:11 | |
moritz_ | Text::Wrap might be a good candidate | ||
isBEKaml | yeah, that's small at around 200 lines. | 12:12 | |
moritz_ | ah cool | ||
it's a ... condensed Perl 5 code | 12:13 | ||
but there's no need to copy the implementation | |||
isBEKaml | yeah, very small enough to hold in your head for a couple of hours. :) | 12:14 | |
I was unsure how useful it would be in p6.. | 12:15 | ||
moritz_ | I am, too | ||
but still it's a nice idea for porting | |||
arnsholt | A question about R*: Is it going to distribute a set of working modules as well? (My memory can't decide what I've heard and not) | 12:17 | |
moritz_ | arnsholt: I think it wll | ||
*will | |||
drake1 | so far I only have a shell escape with perl in the bin | 12:18 | |
arnsholt | Right. Then the second question: what's the current rough estimate on when it'll be released? | ||
moritz_ | June | ||
12:19
iblechbot joined
|
|||
pmichaud | June. | 12:21 | |
drake1 | do you think it's better with a perl module for environment parameters or is @ARGV alright? | 12:23 | |
arnsholt | Right. I've got the beginnings of a HMM decoder module that might be nice for R*, but June might be a bit early to get it done | ||
drake1 | environment parameters / header information | ||
arnsholt | (I need to get my exams and papers done before I can really get some work done on it) | 12:24 | |
12:27
_kiss joined
12:29
_kiss left
12:34
TiMBuS joined
|
|||
drake1 | like execve("/usr/bin/perl",parameters versus use module; module.getparam | 12:34 | |
alternatively the perl system could be loaded all the time with modularized IPC | 12:39 | ||
except I don't know how complicated that would become | 12:41 | ||
perl would probably prefer a separate parallel task | 12:48 | ||
snarkyboojum | rakudo: my $a = ... | 12:49 | |
p6eval | rakudo 16e953: OUTPUT«No exception handler and no messagecurrent instr.: '&fail' pc 18021 (src/builtins/Junction.pir:481)» | ||
snarkyboojum | std: my $a = ... | ||
p6eval | std 30643: OUTPUT«ok 00:01 113m» | ||
drake1 | did you write a doc on the module interface for C code? | 12:50 | |
would be pretty awesome to allow access to the shared server page | 12:52 | ||
12:55
am0c joined
|
|||
drake1 | if I only knew how to set the function address and to pass a scalar perl could run all the time | 12:59 | |
snarkyboojum | rakudo: sub test; say "hi"; | 13:01 | |
p6eval | rakudo 16e953: OUTPUT«Symbol '$ss_SS_S_S__S_S_s' not predeclared in <anonymous>current instr.: 'perl6;PCT;HLLCompiler;panic' pc 152 (compilers/pct/src/PCT/HLLCompiler.pir:108)» | ||
snarkyboojum | std: sub test; say "hi"; | ||
p6eval | std 30643: OUTPUT«===SORRY!===Missing block at /tmp/kl6SqnrhQu line 1:------> sub test⏏; say "hi"; expecting any of: block new name to be defined routine_def traitParse failedFAILED 00:01 112m» | 13:02 | |
snarkyboojum | interesting rakudo error there :) | 13:03 | |
drake1 | while(read(0,func,1) { perl_func(AUTO_FUNC_MACRO,args); } or similar | 13:04 | |
snarkyboojum | or error *message* I should say | ||
moritz_ | snarkyboojum: has to do with p6eval | ||
snarkyboojum: try it locally | |||
snarkyboojum | moritz_: oh ok | ||
moritz_++ # more sane - Could not find sub &test | 13:05 | ||
drake1 | what's the easiest way to let perl work like an interactive shell with symbolic integer input? | 13:08 | |
instead of ascii commands | 13:09 | ||
moritz_ | uhm, are integers not represented in ascii? | ||
dalek | p-rx: 08a765d | pmichaud++ | src/NQP/ (2 files): Add typename parsing to variable declarations. |
13:10 | |
p-rx: cf979eb | pmichaud++ | src/NQP/Grammar.pm: Enable typename parsing for parameters. Again, this simply for now. |
|||
drake1 | yeah, bit I wan't to be able to write an integer and let perl understand the symbolic meaning | ||
s,bit,but | |||
moritz_ | rakudo: say 345 | ||
p6eval | rakudo 16e953: OUTPUT«345» | ||
moritz_ | rakudo: say chr(65) | ||
p6eval | rakudo 16e953: OUTPUT«A» | ||
drake1 | so I need to find out how to read four characters and associate them with a function | 13:12 | |
moritz_ | I still don't understand what you're trying to achieve | ||
represent a program by a list of its ascii character values? | |||
drake1 | a parallel functional interface from perl to any other language | ||
moritz: so perl input pipe can be used for IPC | 13:13 | ||
jnthn | pmichaud: Ooh...interesting commits. ;-) | 13:14 | |
o/ all | |||
moritz_ | \o | ||
isBEKaml | hi jnthn | ||
jnthn | cognominal: It's possible augment ($foo, $bar) := blah() # may do what you want | ||
drake1 | moritz: and so perl can access "our" shared server page via module extensions | ||
moritz_ | drake1: something like mod_perl / mod_parrot? | ||
jnthn | rakudo: sub foo() { return 1,2,:c<3> }; my ($a, $b, :$c) := foo(); say "$a $b $c" | ||
p6eval | rakudo 16e953: OUTPUT«1 2 Any()» | ||
drake1 | moritz: yes, but for a completely different system with separate task allocation for perl | 13:15 | |
moritz_ | jnthn: would have been more impressive if it actually worked :-) | ||
jnthn | Curious... | ||
moritz_: I thought it did...I thought it was tested too. :-| | |||
moritz_ | rakudo: sub foo() { return (1,2,:c<3>) }; my ($a, $b, :$c) := foo(); say "$a $b $c" | 13:16 | |
p6eval | rakudo 16e953: OUTPUT«1 2 3» | ||
moritz_ | jnthn: return() probably ignores named args | ||
drake1 | moritz: the module should then be able to fetch the page reference from the environment parameters and get the semaphore via C code | ||
moritz_ | jnthn: .sub '&return' .param pmc retvals :slurpy | ||
jnthn | moritz_: It shouldn't transform it to a named arg, though | ||
moritz_: return takes only a parcel | 13:17 | ||
(There's some compiler magic to handle that.) | |||
rakudo: sub foo() { return 1,2,:c<3> }; my ($a, $b, $c) := foo(); say "$a $b $c" | |||
p6eval | rakudo 16e953: OUTPUT«1 2 Any()» | ||
jnthn | hm | ||
rakudo: sub foo() { return 1,2,:c<3> }; my ($a, $b, $c) = foo(); say "$a $b $c" | 13:18 | ||
p6eval | rakudo 16e953: OUTPUT«1 2 c Any()» | ||
moritz_ | rakudo: sub foo() { return 1,2,:c<3> }; say foo().perl | ||
p6eval | rakudo 16e953: OUTPUT«(1, 2, "c" => Any)» | ||
jnthn | er. | ||
moritz_ | er. is a good comment | ||
jnthn | OK, so it's not the unpacking that's broken after all. | ||
rakudo: sub foo() { return 1,2,:c(3) }; my ($a, $b, $c) = foo(); say "$a $b $c" | |||
p6eval | rakudo 16e953: OUTPUT«1 2 c Any()» | ||
cognominal | hum, so := is in rakudo, whatever it does... | 13:19 | |
jnthn | rakudo: sub foo() { return 1,2,c=>3 }; say foo().perl | ||
p6eval | rakudo 16e953: OUTPUT«(1, 2, "c" => Any)» | ||
moritz_ submits rakudobug | |||
isBEKaml | rakudo: 'sub foo() { return 1,2,{:c(3)} }; my ($a, $b, $c) = foo(); say "$a $b $c"; | ||
p6eval | rakudo 16e953: OUTPUT«Confused at line 11, near "'sub foo()"current instr.: 'perl6;HLL;Grammar;panic' pc 501 (ext/nqp-rx/src/stage0/HLL-s0.pir:327)» | ||
jnthn | rakudo: sub foo() { return c=>3 }; say foo().perl | ||
p6eval | rakudo 16e953: OUTPUT«"c" => Any» | ||
isBEKaml | rakudo: sub foo() { return 1,2,{:c(3)} }; my ($a, $b, $c) = foo(); say "$a $b $c"; | ||
p6eval | rakudo 16e953: OUTPUT«1 2 c 3» | ||
isBEKaml | funnily enough, it gave out the value when I put in curlies as a blockoid. :) | 13:20 | |
moritz_ | rakudo: sub foo() { return 1,2,{:c(3)} }; say foo().perl | ||
p6eval | rakudo 16e953: OUTPUT«(1, 2, {"c" => 3})» | ||
moritz_ | because it's a (positional) hash, not a named argument | ||
isBEKaml | hmmm, so return with multiple values translates to either a list or an hash. | 13:22 | |
moritz_ | not either | ||
a Parcel | |||
which has both listy and hashy characteristics | |||
13:23
cls_bsd left,
cls_bsd joined
|
|||
moritz_ | or was that a Capture? | 13:23 | |
moritz_ sighs | |||
capture, probably | |||
isBEKaml | I don't know about Parcels yet. | 13:24 | |
13:24
cls_bsd left
|
|||
moritz_ neither, sadly | 13:24 | ||
jnthn | moritz_: return hands back a Parcel | ||
isBEKaml goes looking at S08, but finds it under [draft] | |||
jnthn | When you do my (...some sig) := foo(); then the Parcel from foo is coerced into a capture | ||
*Capture | |||
It's that coercion that makes the paris in the Parcel into nameds. | 13:25 | ||
When you do a call normally, we just make a Capture right away though - return is special (in fact, in theory everything with a signature of :(\|$parcel) | |||
13:28
pmurias joined,
cls_bsd joined
|
|||
isBEKaml | so whenever we bind my ($...) := foo_method(), the method returns a parcel but how about routinely defined subs that return ($...); ? | 13:28 | |
moritz_ | every routine returnes a Capture | ||
which is supposed to flatten in list context | 13:29 | ||
13:29
cls_bsd left
|
|||
isBEKaml | jnthn: my ($a, $b,$c) = foo(); but foo() here has the last return statement; return ($x,$y,$z); | 13:29 | |
Capture inlist context? | |||
drake1 | := is for immediate evaluation? | ||
moritz_ | sorry, I'm being confusing | ||
pugssvn | r30644 | moritz++ | [t/spec] tests for RT #75118, named arguments to return() | ||
moritz_ | drake1: := is for binding | ||
drake1 | ok | ||
jnthn | I'd imagine return ($x,$y,$z); and return($x, $y, $z) work the same was as they do with function calls, since really you're just making a call to return. | 13:30 | |
drake1 | in `make' := means immediate whereas = means to first evaluate at substition | ||
jnthn afk for a bit | 13:31 | ||
13:33
cls_bsd joined
|
|||
isBEKaml | jnthn: I don't understand... " return ($x,$y,$z); and return($x, $y, $z) work the same " I must have missed something... What's the difference between the two? | 13:34 | |
moritz_ | the spec | ||
*space | |||
moritz_ fights with the lag monster | |||
isBEKaml | jnthn: sub foo() { ... return ($x, $y,$z); } my ($a,$b,$c) = foo() ## this is a simple method call? no capture/parcel here? | ||
moritz_: that's significant? :O | 13:35 | ||
moritz_ | yes | ||
13:35
christine left
|
|||
moritz_ | foo (1, 2, 3); # calls foo with one argument, which is a Parcel of 3 items | 13:35 | |
foo(1, 2, 3); # calls foo with three arguments | |||
isBEKaml | for a moment, I thought you were joking. ;) | 13:36 | |
moritz_ | I'm not | ||
13:37
christine joined
13:38
meteorjay left
|
|||
drake1 | maybe I should add a bit to my hoebrew conf language like the ability to say: PARAM=$(1)sepchar$(2); STRING=~ /(cap1)otherset(cap2)/$PARAM hehe | 13:43 | |
13:43
meteorjay joined
|
|||
drake1 | but I don't need it | 13:43 | |
isBEKaml | moritz_: you're right. We lose free form with subs. I used to write method name with params on the next line. Should remind myself to write them on the same line... | ||
moritz_ | isBEKaml: Perl 6 is still mostly free form | 13:44 | |
isBEKaml | moritz_++ ## spaced clarification. :) | ||
moritz_: yes, *mostly* | |||
moritz_ | isBEKaml: it never makes a difference if you have 1 or 10 spaces in a particular place | ||
just non vs. some makes a difference | 13:45 | ||
and that's true in Perl 5 too, but in less spots | |||
and I think it's very sane that Perl 6 forbids the space after the sigil | 13:46 | ||
buubot: eval: my $x = 3; $ x + $x | |||
buubot | moritz_: 6 | ||
isBEKaml | yes, but sub method-name\n(params) is no more usable approach. | ||
moritz_ | there are two solutions | ||
three, actually | |||
1) method-name(\n params) | 13:47 | ||
2) method-name:\n params | |||
3) method-name\\n(params) | |||
I like 2) best | |||
drake1 | how is the new evaluation syntax for perl6 patterns? | 13:48 | |
isBEKaml | wow, I can still have place holders to say there's more to come! yay! :) | ||
I actually like the first way, though I can use 2 too.. | |||
drake1 | like s/pat/code/e ? | 13:49 | |
moritz_ recommdns reading S02 (for isBEKaml ) | |||
drake1: s[pat] = code; | |||
drake1 | ok | ||
interesting | |||
pmurias | diakopter: hi | 13:50 | |
moritz_ | rakudo: my $x = 'foo'; $x ~~ s[o] = 4 + 5; say $x; | ||
p6eval | rakudo 16e953: OUTPUT«f9o» | ||
13:50
meteorjay left
|
|||
drake1 | moritz: seems a bit like memory representation in macro fields | 13:50 | |
13:50
meteorjay joined
|
|||
isBEKaml | moritz_: I initially started with S02, still haven't gotten halfway through.. Slow reading :( | 13:51 | |
moritz_ | it's a tough read at first, I know | ||
arnsholt | isBEKaml: I've found that a more tractable approach is to read a bit here and a bit there, as you want to know about some particular subject | ||
Keeps my brain from exploding, at least =) | |||
drake1 | just found out that bash has a special command substitution operator in the <( sequence heh | 13:52 | |
isBEKaml | arnsholt: better approach. hang out on #perl6 and ask questions about everything that piques your interests as discussions happen. ;) | ||
isBEKaml runs and hides. | |||
arnsholt | Yeah, I do that as well ^^ | ||
isBEKaml | arnsholt: cat Specs & | 13:53 | |
13:54
vapace joined
|
|||
diakopter | pmurias: hi | 14:04 | |
pmurias | diakopter: how much is left to be done for classes in perlesque? | 14:05 | |
dalek | kudo: 8ef25bd | moritz++ | t/spectest.data: run another test file (for "eager") |
14:09 | |
moritz_ | rakudo: say [+] | 14:10 | |
p6eval | rakudo 16e953: OUTPUT«Unable to parse postcircumfix:sym<[ ]>, couldn't find final ']' at line 11current instr.: 'perl6;Regex;Cursor;FAILGOAL' pc 1696 (ext/nqp-rx/src/stage0/Regex-s0.pir:932)» | ||
diakopter | pmurias: about 3-6 hours or so | 14:12 | |
pmurias | is there anything i could help with? | 14:13 | |
drake1 | I have a sed command that could need some ungetc in the `q' phase | ||
j/k | 14:14 | ||
but that isn't perl | |||
specifically | |||
14:15
XaeroOne left
|
|||
moritz_ | rakudo: say NaN | 14:16 | |
p6eval | rakudo 16e953: OUTPUT«NaN» | ||
jnthn | rakudo: say "{NaN} bread" | ||
p6eval | rakudo 16e953: OUTPUT«NaN bread» | ||
14:18
vapace left,
vapace joined
14:20
rv2733 joined
|
|||
drake1 | just linked a line of library objects from a shell set to one single executable. pretty easy | 14:20 | |
arnsholt | jnthn: Yes, we have no bread? =) | 14:21 | |
14:22
meteorjay left
14:23
pmurias left,
pmurias_ joined
|
|||
moritz_ | rakudo: printf '%- 8s', 34 | 14:23 | |
p6eval | rakudo 16e953: OUTPUT«34 » | ||
moritz_ | rakudo: printf '%-8s', 34 | ||
14:23
pmurias_ left
|
|||
p6eval | rakudo 16e953: OUTPUT«34 » | 14:23 | |
JimmyZ | rakudo: printf '%-16s', 34 | ||
p6eval | rakudo 16e953: OUTPUT«34 » | ||
14:23
pmurias joined,
meteorjay joined
|
|||
jnthn | rakudo: my $cap; my $*OUT = class { method print(*@args) { $cap ~= @args; } }; printf '%-16s', 34; say $cap; # just curious if it works... | 14:24 | |
p6eval | rakudo 16e953: OUTPUT«Method 'printf' not found for invocant of class ''current instr.: 'printf' pc 375002 (src/gen/core.pir:28858)» | 14:25 | |
jnthn | rakudo: my $cap; my $*OUT = class :: is IO { method print(*@args) { $cap ~= @args; } }; printf '%-16s', 34; say $cap; # just curious if it works... | ||
p6eval | rakudo 16e953: ( no output ) | ||
jnthn | Heh. | ||
:-) | |||
dalek | ok: 71cb8c0 | moritz++ | src/builtins.pod: [builtins] Nan is spelled NaN |
14:27 | |
ok: 60c5804 | (Prakash Kailasa)++ | src/multi-dispatch.pod: minor fixes in examples |
|||
ok: 063bc7a | moritz++ | src/operators.pod: make pair object explanation a bit clearer |
|||
ok: 6858b1d | moritz++ | src/operators.pod: [ops] use the same code consistently in example and explanation |
|||
moritz_ | phenny: tell sahadev that I've applied most patches from your 'book' fork; I didn't apply the one about custom paper size because it makes it harder to talk about a specific page number across platforms | 14:29 | |
phenny | moritz_: I'll pass that on when sahadev is around. | ||
14:30
jaffa4 joined
|
|||
moritz_ | rakudo: 1 ==> 2 | 14:31 | |
p6eval | rakudo 16e953: OUTPUT«Confused at line 11, near "1 ==> 2"current instr.: 'perl6;HLL;Grammar;panic' pc 501 (ext/nqp-rx/src/stage0/HLL-s0.pir:327)» | ||
dalek | ok: 199a8e1 | (Prakash Kailasa)++ | src/basics.pod: missing statement terminator in example. also, use B<< .. >> so Signed-off-by: Moritz Lenz [email@hidden.address] |
14:32 | |
drake1 | the arrow or -> means sub operator in perl? | 14:34 | |
jnthn | You could read it as "lambda" | ||
It's an anonymous block that may take parameters | |||
rakudo: my $code = -> $a, $b { say $a + $b }; $code(3,39) | |||
p6eval | rakudo 16e953: OUTPUT«42» | ||
drake1 | also parameters ok | 14:35 | |
jnthn | Well, -> { ... } works too; just means it takes 0 parameters. | ||
drake1 | thats pretty smart | 14:36 | |
14:40
JimmyZ left
|
|||
drake1 | so $a and $b works like template parameters? | 14:41 | |
moritz_ | if they are between -> and {, they are the signature | ||
drake1 | like function(a,b) ? | 14:42 | |
moritz_ | yes | 14:43 | |
drake1 | then it's a bit curly | ||
jnthn | It's the same thing that shows up in e.g. for loops | 14:45 | |
rakudo: my @a = 1,2,3; for @a -> $thingy { say $thingy } | |||
p6eval | rakudo 8ef25b: OUTPUT«123» | ||
drake1 | like in a shift? | ||
jnthn | But you can then iteratre multiple things at a time | ||
rakudo: my @a = 1,2,3,4; for @a -> $thing, $other-thing { say "$thing, $other-thing" } | 14:46 | ||
p6eval | rakudo 8ef25b: OUTPUT«1, 23, 4» | ||
isBEKaml finds pugs/docs/tutorial/ full of good reads, pods riddled with references to HHGTTG. :) | |||
jnthn | drake1: In the sense that in Perl 5, you use shift to get hold of parameters, yes. In Perl 6, you needn't do that - just write a signature saying what variables they should go into. | ||
isBEKaml | pfft, s/riddled/sprinked/ | 14:47 | |
*sprinkled | |||
though they are a bit dated. | 14:48 | ||
drake1 | pretty nice for matrix abstraction | ||
can you modify a subroutine to another language? | 14:58 | ||
without having to call a compiler through system calls | 14:59 | ||
15:01
jferrero joined
|
|||
drake1 | I mean with a built in address in memory when it's run | 15:01 | |
something like: sub <C> { int a, b; and blah blah } #end of C routine | 15:03 | ||
15:07
kulp joined
|
|||
dalek | p-rx: cf5f0c7 | pmichaud++ | src/setting/ (4 files): Make sure setting subroutines are properly package ('our') scoped |
15:08 | |
p-rx: c5a3363 | pmichaud++ | build/Makefile.in: Fix test target to rebuild nqp-settings.pbc prior to running tests. |
|||
p-rx: 1232366 | pmichaud++ | src/Regex/P6Regex (2 files): Turn INIT() sub in P6Regex::Actions into a standard INIT {...} block. |
|||
nqp-rx: f4c4650 | pmichaud++ | src/NQP/Actions.pm: | |||
nqp-rx: Adjust so that load_bytecode on a precompiled module automatically | 15:09 | ||
nqp-rx: executes the mainline of the module. This is required for | |||
nqp-rx: lexically-scoped subroutines to be initialized properly inside of | |||
jnthn | pmichaud: cf5f0c7 makes nqp-rx have not-Perl-6 semantics, fwiw. | 15:10 | |
Guess that's part of the "not quite" :-) | |||
drake1 | like you can write assembler in C it would also be nice to write to write Python in Perl etc | ||
jnthn | drake1: Such things would be possible if there's a compiler that targets the same VM for the language as you're running Perl 6 on. | 15:11 | |
drake1: The idea of switching languages inside a given scope is certainly something very built-in to Perl 6 though. | |||
It's what happens when you write a regex. | |||
pmichaud: Just fyi, f4c4650 was already done in Rakudo too. :-) | 15:12 | ||
drake1 | it would be sweet | ||
I only have it like that in the make scripts | 15:13 | ||
but that is very dirty tricks | 15:14 | ||
compared to a simple language modifier | 15:16 | ||
pmichaud | 15:10 <jnthn> pmichaud: cf5f0c7 makes nqp-rx have not-Perl-6 semantics, fwiw. | ||
...? | 15:17 | ||
how so? | |||
15:18
TiMBuS left
|
|||
pmichaud | if you mean that core setting in Perl 6 has lexically scoped subs, then yes. | 15:18 | |
but these really aren't NQP core setting -- NQP doesn't come with a runtime library | |||
in order to make use of nqp-setting, it has to be explicitly loaded. | |||
in that sense, perhaps "setting" is the wrong word to use there (I've never been fond of this term for what this library is providing) | 15:19 | ||
jnthn: and yes, the code for f4c4650 comes from rakudo | 15:20 | ||
drake1 | some kind of xs wrapper perhaps? | 15:21 | |
pmichaud | afk for a while | ||
15:22
n00bie joined
|
|||
n00bie | !eval test | 15:22 | |
:p guess not | 15:23 | ||
jnthn | pmichaud: I just meant the "defaulting to our" | ||
pmichaud: But yes, there's maybe a nicer word than "setting" in order to avoid confusion. | 15:24 | ||
drake1 | "our" is shared in between package scopes, right? | ||
moritz_ | "our" means it appears in a symbol table | 15:25 | |
and can be accessed from other packages | |||
jnthn | pmichaud: Ah, wait, I just read the patch. | ||
drake1 | ok | ||
moritz_ | but it's not the same in all packages, if that's what you mean with 'shared' | ||
jnthn | pmichaud: The commit message made me think there was a compiler tweak to default to "our". | ||
pmichaud: So, I'm not worried at all now. :-) | |||
jnthn should read patches before complaining about them. ;-) | |||
moritz_ | btw I've pushed the 'mob4' branch to github | 15:29 | |
drake1 | moritz: so it isn't like file scope? | 15:30 | |
moritz_ | it has working support for native Perl 6 match objects which only contain named, non-quantified captures :-) | ||
and uses a very ugly hack, as seen in the last commit on that bnrach | |||
drake1: nope | |||
drake1 | moritz: I always forget what it means | 15:31 | |
moritz_ | drake1: perldoc -f our | ||
it's pretty much the same in Perl 6 | |||
in the mob4 branch, I use a :vtable( | 15:32 | ||
set_pmc_keyed' | |||
which re-dispatches to eval_hash_setter | |||
drake1 | for some time I thought it was shared across forks | ||
moritz_ | if it re-dispatches to postcircumfix:<{ }>, it looks endlessly | ||
jnthn, pmichaud: I'd appreciate it if you could take a look there - I haven't managed to solve it properly | 15:33 | ||
15:54
k23z__ left
|
|||
drake1 | our volatile shared parameter with implicit collision handlers | 16:00 | |
16:02
xinming left
16:06
iblechbot left
16:07
xinming joined
|
|||
drake1 | must be some dialect this other ones say different. gotta go. bye | 16:11 | |
16:12
drake1 left
16:13
pmurias left
16:18
justatheory joined
|
|||
dalek | kudo: 92508d6 | moritz++ | (4 files): NYI error messages for feed operators |
16:26 | |
meta: r272 | diakopter++ | trunk/Sprixel/t/man_or_boy.t: [perlesque] add some more iterations to man_or_boy.t |
16:27 | ||
16:34
thraidh joined
16:38
Targhan joined
|
|||
pugssvn | r30645 | svatsan++ | First cut towards awesomifying u4x.perl6.org | 16:51 | |
arnsholt | Hmm. is u4x.perl6.org supposed to be publicly accessible? | 16:54 | |
moritz_ | arnsholt: yes, but I haven't created an index.html yet | ||
arnsholt | Ah, right. That would explain the 403 | ||
moritz_ | and for some reason the directory listing doesn't work | ||
16:55
ruoso joined
|
|||
pugssvn | r30646 | moritz++ | [docs/u4x] copy style file to document root | 16:58 | |
isBEKaml | moritz_: I was about to modify the script to do that. :) | ||
moritz_ | afk | 16:59 | |
17:10
{shade} left
|
|||
isBEKaml | hmm, <pre> code samples not really nice on the glossary... LTA | 17:11 | |
17:14
{shade} joined
17:17
pmurias joined,
LowRider joined,
pmurias left
17:18
pmurias joined
17:19
LowRider left
17:21
pmurias left
|
|||
colomon | moritz_: hooking up additional arguments to .subst -- LHF suitable for your project? | 17:29 | |
afk -- nap to try to make up for 3 hours up with a teething little guy last night. | |||
17:42
justatheory left
|
|||
pugssvn | r30647 | svatsan++ | removed newlines to avoid LTA htmlification | 17:44 | |
thraidh | are all grammars implicitly derived from Cursor? | 17:46 | |
arnsholt | IIRC they are. Check S05 to be sure though | 17:47 | |
thraidh | S05 is not clear on that matter | 17:48 | |
jnthn | I believe it is the case. | ||
thraidh | at least not to me... | ||
when i introduce a method in a grammar i learned that i can treat that method like a rule, but it has to accept and return a Cursor object | 17:52 | ||
is the Cursor object given to the method read-only or can i modify it and return that instead of leaving the original alone and creating a new one? | 17:54 | ||
18:01
alester joined
18:02
k23z__ joined
18:03
justatheory joined
18:04
M_o_C joined
|
|||
pmichaud | jnthn: yes... actually, there's a problem with nqp now that unscoped sub declarations default to both 'my' and 'our' | 18:08 | |
I meant to fix that many months ago (shortly after switching nqp to default subs to 'my') but apparently forgot to do that | 18:09 | ||
the other patches today are intended to get things to the point where it's possible to fix that | |||
I'm about to commit a patch so that a sub explicitly declared 'my' is definitely only lexically scoped, at least. | 18:10 | ||
18:10
pjcj left
|
|||
pmichaud | (the underlying problem is that parrot puts the subs in the namespace by default -- forgot to turn that off when I created the lexically bound subs) | 18:10 | |
but that means that a lot of code has been able to "cheat" because the subs were available via the package | |||
so... that needs a bit of cleaning up | 18:11 | ||
18:16
vapace left
18:19
n00bie is now known as Weather
|
|||
thraidh | how do i create a Cursor-object and how do i set the new position? according to S32 the position is Int, but cannot be modified | 18:19 | |
18:20
Weather is now known as [n0b0ty]
|
|||
pmichaud | there's an example in STD.pm | 18:22 | |
er, STD.pm6 | |||
thraidh | pmichaud: thank you | 18:23 | |
pmichaud | oops, I was slightly wrong there | ||
it's creating a new cursor from an existing one | 18:24 | ||
$here = self.cursor($*HIGHWATER) if $highvalid; | |||
anyway, I'm not sure the API for Cursor's is fully stabilized yet -- it'll want some coordination between implementations | |||
in answer to your earlier question, objects aren't really ever "read-only", iirc | 18:25 | ||
but most of the regex engines expect you to return a new cursor, not reuse an existing one. (also not set in stone) | 18:26 | ||
thraidh | with "read-only" i actually meant "supposed not to be modified", i.e. contractually read-only | 18:28 | |
pmichaud | yes, it's probably meant to be treated read-only | ||
thraidh | now, i only have to find out what the argument to self.cursor means. but i'll dig in STD.pm6 | 18:29 | |
pmichaud | I think it's a position. | 18:30 | |
anyway, the typical mechanism for setting a position to a cursor is via the :pos() or :continue() arguments, I think. | |||
thraidh | (i should really turn of the the ascii-to-icon-smiley-translation...) | 18:31 | |
i hope STD.pm6 will help me find enlightenment | 18:33 | ||
:pos() is not supposed to contain a smiley showing its tongue... | 18:34 | ||
jnthn | pmichaud: Aye, I had to do quite a bit of clean-up when I fixed a similar issue in Rakudo. | 18:36 | |
pmichaud: Though the Rakudo issue was failing to clear $*SCOPE in places that STD did so. | |||
pmichaud: I shook out a bunch more related issues when adding lexical classes/roles too...and the leixcal setting of course. | |||
pmichaud | yes, clearing $*SCOPE is next on my list | 18:39 | |
18:40
M_o_C left
|
|||
pmichaud | I also think I'm going to add a simplified $*HIGHWATER to nqp for better error reporting... if it works out we can do something similar in rakudo | 18:40 | |
thraidh | is $/.sqrt supposed to work now or anytime in the future? | 18:41 | |
pugssvn | r30648 | svatsan++ | [u4x docs] use File::Find, File::Basename | ||
thraidh | question rephrased: does perl6 know it has to implicitly convert $/ from Match to Str to Num to run the .sqrt method? | 18:42 | |
18:48
nimiezko joined
|
|||
jnthn | pmichaud: +1 | 18:51 | |
pmichaud: A nicer error for "two terms in a row" could be nice too. | |||
Dunno how hard it is - I think part of it is in EXPR, which I'm scared to touch. :-) | 18:52 | ||
18:53
jaffa4 left
|
|||
cognominal | rakudo: sub { Str $toto } # not a friendly message when scope specifier forgotten. common mistake coming from C | 18:54 | |
p6eval | rakudo 92508d: OUTPUT«Unable to parse blockoid, couldn't find final '}' at line 11current instr.: 'perl6;Regex;Cursor;FAILGOAL' pc 1696 (ext/nqp-rx/src/stage0/Regex-s0.pir:932)» | ||
thraidh | moritz_ told me it wasn't as hard as it looks | ||
i think he lied ;) | |||
jnthn | std: sub { Str $toto } | 18:55 | |
p6eval | std 30647: OUTPUT«Use of uninitialized value $FATALS in numeric gt (>) at STD.pm line 100909.===SORRY!===Confused at /tmp/PGMpG3gzat line 1:------> sub { Str ⏏$toto } expecting any of: bracketed infix infix or meta-infix statement modifier | ||
..loopParse fa… | |||
jnthn | oooh! | ||
cognominal | ironically, the error is given by FAILGOAL that is designed to be user friendly :) | 18:56 | |
diakopter | line 100909 | ||
thraidh | actually rakudo error message always look somewhat scary | 18:57 | |
pmichaud | (two terms in a row) -- just having $*HIGHWATER should be enough to at least point to the right place for the error | ||
jnthn | pmichaud: Cool! :-) | ||
pmichaud | even if it doesn't say "two terms in a row", it'll at least be at the beginning of the offending second term | ||
18:58
nimiezko left
|
|||
jnthn | *nod* | 18:58 | |
pmichaud | std: sub { Str $toto } # curious | ||
p6eval | std 30647: OUTPUT«Use of uninitialized value $FATALS in numeric gt (>) at STD.pm line 100909.===SORRY!===Confused at /tmp/rirakGhPx7 line 1:------> sub { Str ⏏$toto } # curious expecting any of: bracketed infix infix or meta-infix statement | ||
..modifier lo… | |||
pmichaud | oh, jnthn++ already tried it | ||
we can probably clean that one up some also | 18:59 | ||
jnthn | pmichaud: Yes. Note that it manages to make STD's error handling warn too. ;-) | ||
pugssvn | r30649 | svatsan++ | [u4x docs] minor change to include style in render script | ||
cognominal | traidh, thx to pmichaud++ and jnthn++, rakudo error message are more and more precise and helpful | ||
thraidh | is Cursor.pmc which resides beneath STD.pm6 supposed to be looked at? | ||
cognominal: i'm not saying that they are not helpful | |||
they are, if you are brave enough to come back to the screen after hiding with the monsters under your bed | 19:00 | ||
19:01
jhuni joined
|
|||
thraidh | and i'm very thankful for everything you guys do | 19:01 | |
19:01
plobsing joined
|
|||
thraidh | it's just that from a (new) user's perspective the stack trace is at first sight more confusing than helping | 19:04 | |
isBEKaml | moritz_: I have made a few changes to the render script and I will pick up on the first cut of stylesheet tomorrow. Meanwhile, can you try that out and let me know how that goes? | ||
pmichaud | thraidh: I totally agree. So far we have limited ability to control the stacktrace dump | 19:05 | |
it can be done... but it's a bit painful | |||
19:05
pjcj joined
|
|||
thraidh | but since rakudo is currently probably more developed than "used", it's probably ok the way it is | 19:05 | |
pmichaud | no, I think we should get rid of the stacktrace (more) | 19:06 | |
19:06
iblechbot joined
|
|||
lue | AUGCAUAUUUAA! | 19:06 | |
pmichaud | what I *really* want to have is that rakudo dumps a simple error message, and saves the stacktrace information somewhere that we can then display it if we're interested :-) | ||
lue | I smell logfiles! | ||
pmichaud | lue: or core dumps :) | 19:07 | |
isBEKaml time for bed. Later, #perl6! :) | |||
thraidh | --developer-debug switch? | ||
pmichaud | thraidh: more likely an environment variable | ||
(as well as a switch) | |||
or a policy setting | |||
lue | that implie someone panicked. | ||
*implies | 19:08 | ||
.oO( and we all know what happened last time when a death star's core was shot— dumped. :) ) |
|||
thraidh | ask the monsters under my bed, when i told them of the stack trace ;( | ||
19:08
isBEKaml left
|
|||
lue | .oO(wouldn't we dump a camel though? Or a butterfly?) |
19:10 | |
.oO(楽土 panic. »ö« dumped.) |
19:11 | ||
thraidh | ooh... i always thought that was a "checking if your UTF-8 is working" | 19:13 | |
now i see the butterfly | |||
lue | well, a better check would be the japanese. The french quotes and o with umlaut are only within the latin subset (I believe) :) | 19:14 | |
駱駝道。 | 19:15 | ||
arnsholt | But the encoding of the guillemets is different in UTF-8 and iso-8859, so it works just as well | ||
As a bonus, people are more likely to have the guillemets in their fontset | 19:16 | ||
lue | guillemets? | ||
arnsholt | The French quotes. They're called guillemets in French =) | ||
jnthn | Those fancy French words. | ||
arnsholt | I don't get many chances to use my French, so I take what I get =) | 19:17 | |
lue | Tu parles français? | 19:18 | |
thraidh | i thought it was guillemots? but then i wasn't very good in french | ||
lue | I would think it's guille*ments* | ||
arnsholt | It's guillemets | 19:19 | |
(Ref. en.wikipedia.org/wiki/Guillemet) | |||
thraidh | you're right | ||
arnsholt | But apparently X11 calls them guillemots | 19:21 | |
lue | XFree86 or XOrg? | 19:22 | |
*Xorg | |||
thraidh | according to wikipedia that's a common misspelling | ||
arnsholt | The X Windows headers, so both of them probably | ||
Yeah, I can see why. "mot" and "met" are quite similar phonetically in French, so an anglophone may very well have trouble distinguishing them | 19:23 | ||
lue | (Anywell), anything interesting happen in Rakudo lately? /me doesn't want to backlog :P | 19:25 | |
rakudo: my $a = 2; my $b := $a; $b = 4; say $a; | |||
p6eval | rakudo 92508d: OUTPUT«:= binding of variables not yet implementedcurrent instr.: '&die' pc 17864 (src/builtins/Junction.pir:393)» | ||
thraidh | i think they are quite distinguishable, but an anglophone may have problems to pronounce "met" since there is no equivalent vowel in english | 19:26 | |
19:28
rv2733 left
|
|||
cognominal | Interestingly the french wikipedia article says that guillemet is not derived from Guillaume, contrary to the english article. | 19:29 | |
lue | good thing I have an Italian who grew up also speaking French for a french teacher :) | 19:30 | |
cognominal | so www.decodeunicode.org/en/u+00ab would be a fiction | ||
lue | rakudo: say "anyone using Linux Libertine ought to appreciate \xE000 , unless I screw that up."; | 19:31 | |
p6eval | rakudo 92508d: OUTPUT«anyone using Linux Libertine ought to appreciate , unless I screw that up.» | ||
19:32
wknight8111 left
|
|||
lue | .u E000 | 19:32 | |
phenny | U+E000 (No name found) | ||
lue | me just noticed an update to util/cperl-mode.el in the pugs repo ! | 19:34 | |
(it may have been a while, but I just updated) | 19:35 | ||
thraidh | what does $here.<PRE>:delete mean? | 19:41 | |
actually only the :delete part | |||
jnthn | It means "delete this from the hash" | ||
It's an adverb. | |||
(just like a parameter that gets passed along to the indexer) | 19:42 | ||
thraidh | oh | ||
jnthn | So it knows rather than just to look up the key PRE, it should delete it. | ||
19:42
molaf joined
|
|||
thraidh | since the whole line is: $PRE=$here.<PRE>:delete; i assume that it is looked up, assigned to $PRE and then deleted from $here | 19:43 | |
jnthn | No, it looks is up, deletes it and returns what was deleted. | 19:45 | |
And then that gets assigned. | |||
Think of it along the same lines as when you do $x++ | |||
It modifies $x, but returns what it used to be. | |||
thraidh | since $here is also a Cursor-object, is the rule PRE called? | ||
jnthn | No | 19:46 | |
I don't know why the . was written there, it'd function the same without it. | |||
It's just a hash indexer. | |||
thraidh | that is, the Cursor-object contains the matches so far | 19:48 | |
jnthn | Oh, if $here is some match object then in that case, yes. I thought you meant at this particular line of code. | ||
thraidh | and the named rule PRE is deleted from the set of known matches? | 19:49 | |
jnthn | The *thing that it matched* is deleted from... | ||
iiuc. | |||
thraidh | yes... i'll have to learn to express myself more precise | 19:50 | |
19:55
kst left
|
|||
sorear | pmichaud: Hi | 19:58 | |
jnthn | sorear! \o/ | 19:59 | |
sorear | jnthn: That line of code comes from STD.pm6 | 20:01 | |
have you ever looked inside gimme5? | 20:02 | ||
20:03
rgrau joined
20:04
kst joined
20:06
mariano joined
|
|||
lue | afk | 20:08 | |
20:08
kst left
|
|||
jnthn | sorear: Yes, I figured. | 20:11 | |
sorear: I've glanced at it, but no more. | |||
sorear | gimme5 doesn't support full perl6 | 20:12 | |
it parses perl6 using about 2000 lines of p5regex | |||
my first reaction reading it was "TimToady should apply to the IOCCC" | 20:13 | ||
cognominal | he is a serial offender | 20:14 | |
thraidh | is Cursor.pmc to be taken as a valid reference to learn things or should there be a warning sign to stay away? | 20:18 | |
jnthn | I thought pmc was generated from pm6, but maybe I am wrong. | 20:19 | |
thraidh | Cursor.pmc looks very perl5 to me | 20:20 | |
while Cursor.pm6 only consists of colour definitions | |||
20:22
micr0spell joined
|
|||
sorear | Cursor.pmc is hand-written Perl 5 | 20:23 | |
it's called .pmc because Perl 5 looks for .pmc, then .pm | |||
while Perl 6 looks for .pm6, then .pm | |||
Cursor.pmc is a grab bag for everything that TimToady wanted to implement in STD, but couldn't because of gimme5 design limitations | 20:24 | ||
it also contains the STD rules kernel | |||
you might be interested in reading the equivalent Rakudo file, src/Regex/Cursor.pir in nqp-rx | 20:25 | ||
thraidh | so far i'm still in the state of being scared by rakudo's error messages | 20:27 | |
i think, reading .pir files is a magnitude (or more) greater | |||
micr0spell Discounts!! Our Special Limited Time Offers Up To May,22!!! Notebooks,Plasma and LCD TV's.Buy your electronic needs at our unique prices. Laptop Sony VAIOxAE VGN-FW590FFD-575,57$!!!Apple MacBookxAE Air MC234LL/A-695,27$!!! www.elplace.com/ | |||
20:27
micr0spell left
|
|||
thraidh | and i want to express my deep respect to anyone handcoding .pir files | 20:28 | |
does rakudo share parts of nqp-rx? i.e. is rakudo using the same Cursor as nqp? | 20:31 | ||
sorear | pmichaud has my NQP-rx and Rakudo batons; I need a project | ||
thraidh: the rakudo parser is written in nqp-rx, so yes | |||
20:34
envi^home left
|
|||
thraidh | ok... do the programs written in rakudo use the same Cursor as nqp? | 20:34 | |
after all, rakudo could be implemented in java with antlr but generate parrot code | 20:35 | ||
that code would need to refer to a Cursor implementation | 20:36 | ||
diakopter | sorear: if I may offer a project suggestion, how about fleshing out the emit_p5 edition of viv? | 20:37 | |
lue: have you read the paper "Study of the techniques for emulation programming" | 20:40 | ||
jnthn | thraidh: Yes, Rakudo ues the same Cursor class as nqp-rx. | 20:43 | |
thraidh | then i fear i will have to look into Cursor.pir, since it seems not to be compatible with Cursor.pmc (or STD.pm6) | 20:44 | |
sorear | thraidh: Right now, Rakudo doesn't actually implement Perl6 regex at all; regex operations are delegated to NQP-rx, which must be available at runtime | 20:46 | |
masak is planning to fix this at some point | |||
not just cursors, but also the Match objects are a sticking point for spectests | |||
thraidh | ah | 20:47 | |
jnthn | sorear: It's not really "delegated" as such. It's just that nqp-rx happens to hold the regex implementation. | ||
sorear: We just subclass it and add some extra bits. | |||
sorear | partly because NQP's match objects are very simplified, mostly because they don't inherit from Mu | ||
thraidh | that explains probably why i can't use .perl on Match objects | ||
sorear | diakopter: mm viv | 20:48 | |
20:48
alester left
|
|||
thraidh | and i thought, i could just write a simple program to make my girlfriend's life easier | 20:50 | |
20:51
kst joined
20:55
elmex left
|
|||
sorear | You may be in the wrong channel. | 20:59 | |
If you just want to write programs, use Perl 5. | |||
thraidh | no... i already know (a good part of) Perl 5 | 21:02 | |
it's time to learn something new | |||
21:10
elmex joined
|
|||
thraidh | is the nqp EXPR implementation expected to be stable | 21:26 | |
or "somewhat stable" | 21:27 | ||
as opposed to "definitely temporary" | |||
21:28
molaf left
21:29
pjcj left
|
|||
thraidh | or, to rephrase the question, is EXPR contained in some specification? | 21:29 | |
21:35
iblechbot left
21:37
pjcj joined
|
|||
k23z__ | buubot, eval $^_^$;; | 21:45 | |
buubot | k23z__: | ||
colomon | thraidh: pretty sure nqp's EXPR is not contained in any specification. | 21:53 | |
thraidh | i feared that | ||
is it to be expected that some EXPR will one day be in any specification? | 21:54 | ||
or will it be an internal specification detail? | |||
even if it is just too useful | 21:55 | ||
21:56
[n0b0ty] left
|
|||
sorear | we reserve the right to add things to the spec as they are seen useful | 21:57 | |
feel free to exploit unspecified and undocumented features of rakudo | |||
if enough people use them, they will make it into perl6 | 21:58 | ||
thraidh | have you ever considered a thing like "set -x" for perl6? | 22:08 | |
sorear | you mean -d:Trace ? | 22:11 | |
or -Mautodie ? | |||
thraidh | probably -d:Trace | ||
i'll try | |||
22:12
justatheory left
|
|||
sorear | those are both perl5 command line options | 22:13 | |
rakudo: say pir::loadlib__PS("libm.so") | 22:15 | ||
p6eval | rakudo 92508d: OUTPUT«libm» | ||
sorear | rakudo: say pir::dlfunc__PPSS(pir::loadlib__PS("libm.so"), "sin", "dd") | ||
p6eval | rakudo 92508d: ( no output ) | ||
sorear | rakudo: say pir::dlfunc__PPSS(pir::loadlib__PS("libm.so"), "sin", "dd")(1) | ||
p6eval | rakudo 92508d: OUTPUT«0.841470984807897» | ||
sorear | rakudo: say pir::dlfunc__PPSS(pir::loadlib__PS("libm.so"), "sinf", "ff")(1) | 22:16 | |
p6eval | rakudo 92508d: OUTPUT«No NCI thunk available for signature 'ff'current instr.: '_block14' pc 29 (EVAL_1:0)» | ||
sorear | rakudo: pir::trace(1); 2+2; pir::trace(0) | 22:17 | |
p6eval | rakudo 92508d: OUTPUT«0087 set_args PC24 (2), 2, 2008b find_sub_not_null P1, "&infix:<+>" P1=PMCNULL 008e invokecc P1 P1=Perl6MultiSub=PMC(0x35a93c0)49075 get_params PC113 (1), P6 | ||
..PC11… | |||
sorear | rakudo: pir::trace(4); 2+2; pir::trace(0) | ||
p6eval | rakudo 92508d: OUTPUT«# Calling sub 'perl6;infix:<+>'# current instr.: '_block14' pc 142 (EVAL_1:64)*** switching to # Calling sub 'perl6;upgrade_to_num_if_needed'# current instr.: 'infix:<+>' pc 299219 (src/gen/core.pir:1021)# Calling sub 'parrot;P6protoobject;ACCEPTS'# current instr.: | ||
..'upgrade_t… | |||
jnthn | sorear: (native calling) Zavolaj wraps those very PIR ops. :-) | 22:19 | |
sorear | jnthn: plobsing in #parrot was looking for NCI functions that didn't work | ||
he's testing a libjit framebuilder patch | |||
jnthn | sorear: Oh, cool! | ||
plobsing++ | |||
plobsing | it's not a patch. it's a dynext library | 22:20 | |
jnthn | plobsing: Using libjit rather than the hard-coded NCI thunks, though? | 22:21 | |
plobsing | yes | ||
jnthn | :-) | ||
That will make Zavolaj a bunch more useful. | |||
plobsing | you can give it a try at git://github.com/plobsing/parrot-libjit-fb.git if you like | 22:23 | |
jnthn | plobsing: Thanks, may well have time to play tomorrow. :-) | 22:24 | |
(bit tired now, so going for sleep soon here :-)) | |||
plobsing | bug reports welcome! | ||
22:28
k23z__ left
22:29
sorear left
|
|||
thraidh | now, that i can use EXPR in rakudo to build my own syntax trees, i'll go to sleep, too | 22:31 | |
22:32
thraidh left
22:34
rgrau left
22:35
sorear joined
22:36
constant left
22:44
Trashlord left
22:45
kel_ left
22:48
jaldhar_ joined
22:52
jaldhar_ is now known as jaldhar
22:58
Psyche^ joined
23:02
Patterner left,
Psyche^ is now known as Patterner
|
|||
sorear | hilight: 2+2 | 23:13 | |
highlight: 2+2 | |||
p6eval | Please use /msg p6eval 2+2 | ||
diakopter | sorear: msg me if you want an acct on the p6eval box | 23:20 | |
23:21
Chillance joined
|
|||
diakopter | to diagnose that error... | 23:21 | |
(I don't know what's wrong with it) | |||
sorear | neither do I, but it's obvious from looking at the source that it could never have worked in the first place | 23:29 | |
23:29
JimmyZ joined
|
|||
sorear | and I'm not real keen on fixing up something that's half-implementex | 23:30 | |
lue | is that STD hilight? | ||
sorear | theoretically | 23:31 | |
I have the actual STD hilighter working | |||
sorear just discovered 'tloop' | 23:32 | ||
it's a STD repl!!! | |||
now part of me really wants to attach tloop to viv and make a Standard Perl 6 evaluator | |||
lue forgot for a second that STD only checks syntax | 23:36 | ||
sorear | no | 23:41 | |
STD also checks scoping | |||
std: say $foo | 23:42 | ||
p6eval | std 30649: OUTPUT«===SORRY!===Variable $foo is not predeclared at /tmp/lq9c0tOFqh line 1:------> say $foo⏏<EOL>Check failedFAILED 00:01 112m» | ||
lue | OK. When I first saw that statement, I thought .oO(doesn't STD already eval— oh yeah, it doesn't.) | 23:43 | |
sorear: how's it going with := ? | 23:46 | ||
23:48
meppl left
|
|||
sorear | lue: starved for pm-tuits | 23:49 | |
pm has this way of inspiring me to do things The Right Way or not at all | |||
it's vaguely annoying | |||
lue | what do you need from him? | 23:52 | |
sorear | a complete specification of how := works in edge cases like (@x[5], @x) := foo() | ||
I could just implement LHSes that are simple variables or postcircumfix expressions, but I know he'd have no part of it | 23:53 | ||
lue | why would you do that in the first place? :) | 23:54 | |
I can see (@x[5], @y), but not that. First set element 5 of @x to foo(), then rewrite the entire array to contain foo() [from my understanding] | 23:55 | ||
sorear | like I said, edge cases. | 23:57 | |
lue | I can see why you need his explanation (or Larry's :) ) of how that should work. I'm very confused right now. | 23:58 | |
plobsing | is '[:=] @x' valid? | ||
lue | std: my @x; [:=] @x | ||
p6eval | std 30649: OUTPUT«ok 00:01 113m» | 23:59 | |
lue | syntactically, it seems to be OK. |