»ö« | 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-infix␤Undec…
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-infix␤Unde…
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 exist␤current 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 11␤current 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«0␤0␤0␤»
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 &b␤current 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 message␤current 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␤ trait␤Parse failed␤FAILED 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 11␤current 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«1␤2␤3␤»
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, 2␤3, 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 11␤current 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
..loop␤Parse 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 implemented␤current 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 VAIO􏿽xAE VGN-FW590FFD-575,57$!!!Apple MacBook􏿽xAE 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, 2␤008b 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 failed␤FAILED 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.