»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.pugscode.org/ | UTF-8 is our friend! | Rakudo Star Released!
Set by moderator on 11 August 2010.
00:00 Psyche^ joined 00:01 ruoso joined
ingy greetinga 00:04
greetings
:)
sorear gratings. 00:05
00:07 araujo joined 00:08 colomon joined 00:10 fengshaun joined
[Coke] ingy: hio 00:30
ingy hi [Coke]! 00:36
greatings sorear 00:37
00:42 redicaps joined
[Coke] should .^methods work on an instance or just on the WHAT? 00:48
tylercurtis rakudo: 5.^methods.sort.join(', ').say 00:49
p6eval rakudo 6b318e: OUTPUT«, ACCEPTS, ACCEPTS, BUILD, BUILDALL, Bool, Bool, Bridge, CREATE, Capture, Complex, IO, Int, Num, Numeric, Numeric, Numeric, PARROT, Rat, Real, Seq, Str, Str, WALK, WHENCE, WHERE, WHICH, WHICH, abs, abs, acos, acos, acosec, acosec, acosech, acosech, acosh, acosh, acotan,
..acotan, aco…
tylercurtis [Coke]: S12 says "$obj.^methods();" works. 00:51
[Coke] k. so 66810 is still borked. 00:54
rakudo: say .[1] 00:55
p6eval rakudo 6b318e: OUTPUT«Any()␤»
tylercurtis rakudo: our multi postfix:<?> ($question) { $question; }; say .WHAT? 00:58
p6eval rakudo 6b318e: OUTPUT«Any()␤»
01:02 ash_ joined 01:17 ashleydev joined 01:19 plobsing joined 01:20 ashleydev joined 01:22 cognominal joined 01:24 alc joined 01:28 rurban joined 01:39 hercynium joined
[Coke] rakudo: say 6 >== 2 01:47
p6eval rakudo 6b318e: OUTPUT«Cannot modify readonly value␤ in '&infix:<=>' at line 1␤ in main program body at line 22:/tmp/pcDfDrEhfG␤»
colomon arrrrrr!
[Coke] rakudo: say 01:48
p6eval rakudo 6b318e: OUTPUT«␤»
[Coke] rakudo: [+] 01:49
p6eval rakudo 6b318e: OUTPUT«===SORRY!===␤Confused at line 22, near "[+]"␤»
[Coke] phenny: ask pmichaud if he can review RT #74008, which is a patch for some laziness. 01:52
phenny [Coke]: I'll pass that on when pmichaud is around.
colomon [Coke]: pretty sure that patch is ancient history. 01:53
[Coke] colomon: feel free to close it out. =-) 01:54
(but you have to reply to the guy and thank him.)
colomon ugh 01:55
any idea why prove would return "Input/output error"?
I'm trying to write a new module, and discovering that all the tools seem to be broken on my MacBook. :( 01:58
ah, I see 02:01
sorear now for the part where I have to come up with a sensible representation of character classes 02:09
02:19 jaldhar joined 02:20 rgrau joined
[Coke] rakudo: my %h = {my => "x"}; # RT#74948 02:22
p6eval rakudo 6b318e: OUTPUT«===SORRY!===␤Malformed my at line 22, near "=> \\"x\\"}; #"␤»
[Coke] std: my %h = {my => "x"}; # RT#74948
p6eval std 31912: OUTPUT«ok 00:01 115m␤» 02:23
[Coke] can someone explain what std is parsing that as?
barewords are dead, yes?
ash_ is trac.parrot.org/parrot/wiki/Creatin...h%20NQP-rx still rigt? 02:24
right* 02:25
or does nqp-rx have closure support without doing manual newclosures ?
colomon star: sub a(@b, $c) { say :@b.perl; say :$c.perl; }; a(1..3, 20); 02:27
p6eval star 2010.07: OUTPUT«"b" => 1..3␤"c" => 20␤»
colomon star: sub a(@b, $c) { say :@b.perl; say :$c.perl; }; a((1, 2, 3), 20);
p6eval star 2010.07: OUTPUT«"b" => (1, 2, 3)␤"c" => 20␤»
colomon star: sub a(@b, $c) { say :@b.perl; say :$c.perl; }; a(1...3, 20);
p6eval star 2010.07: OUTPUT«Not enough positional parameters passed; got 1 but expected 2␤ in 'a' at line 22:/tmp/v2qx0M4vkH␤ in main program body at line 22:/tmp/v2qx0M4vkH␤»
colomon star: sub a(@b, $c) { say :@b.perl; say :$c.perl; }; my @array = 1...3; a(@array, 20); 02:30
p6eval star 2010.07: OUTPUT«"b" => [1, 2, 3]␤"c" => 20␤»
[Coke] RT: 671 total, 199 new, 17 need tests.
02:34 ashleydev joined
ash_ nqp: say(1); 02:36
p6eval nqp: OUTPUT«1␤»
ash_ nqp: my $a := 4; my $b := sub { return $a; }; $a := 123; say($b()); 02:37
p6eval nqp: OUTPUT«Routine declaration requires a signature at line 1, near "{ return $"␤current instr.: 'parrot;HLL;Grammar;panic' pc 552 (src/cheats/hll-grammar.pir:205)␤»
ash_ nqp: my $a := 4; my $b := { return $a; }; $a := 123; say($b());
p6eval nqp: ( no output )
ash_ nqp: my $a := 4; my $b := { return $a; }; $a := 123; say(1, $b());
p6eval nqp: ( no output )
ash_ rakudo: my $a := 4; my $b := { return $a; }; $a := 123; say(1, $b()); 02:38
p6eval rakudo 6b318e: ( no output )
ash_ rakudo: sub f($a) { return { return $a + 3; } }; say 4 f 02:40
p6eval rakudo 6b318e: OUTPUT«===SORRY!===␤Confused at line 22, near "say 4 f"␤»
ash_ rakudo: sub f($a) { return { return $a + 3; } }; say f 4
p6eval rakudo 6b318e: OUTPUT«_block87␤»
ash_ rakudo: sub f($a) { return { return $a + 3; } }; say (f 4)(); 02:41
p6eval rakudo 6b318e: ( no output )
ash_ rakudo: sub f($a) { return { return $a + 3; } }; say(f(4)());
p6eval rakudo 6b318e: ( no output )
ash_ nqp: sub f($a) { return { return $a + 3; } }; my $b = f(3); my $c = f(5); say($b()); 02:42
p6eval nqp: OUTPUT«Assignment ("=") not supported in NQP, use ":=" instead at line 1, near " f(3); my "␤current instr.: 'parrot;HLL;Grammar;panic' pc 552 (src/cheats/hll-grammar.pir:205)␤»
02:43 karb joined
plobsing nqp: sub f($a) { return sub () {return $a + 3} }; say(f(1)()) 02:46
p6eval nqp: OUTPUT«4␤»
[Coke] phenny: ask pmichaud if we can close 75030 now.
phenny [Coke]: I'll pass that on when pmichaud is around.
sorear nqp: sub k($x) { sub () { $x }; }; my $a := k(1); my $b := k(2); say($a()); 02:47
p6eval nqp: OUTPUT«1␤»
ash_ ya, nqp-rx supports closures without having to call newclosure now (tested in my terminal)
02:58 agentzh joined 02:59 drbean joined 03:09 masonkramer joined, molaf joined
sorear coming up with a sane representation of character classes: not easy 03:10
sorear ponders <[一..七]> 03:13
ingy :)
tylercurtis .u … 03:14
phenny U+2026 HORIZONTAL ELLIPSIS (…)
ingy 二。。八
sorear rakudo: say '丁' ~~ <[一..七]> 03:15
p6eval rakudo 6b318e: OUTPUT«0␤»
sorear rakudo: say '二' ~~ <[一..七]>
p6eval rakudo 6b318e: OUTPUT«0␤»
sorear oh right I forgot the slashes
rakudo: say '二' ~~ /<[一..七]>/
p6eval rakudo 6b318e: OUTPUT«␤»
sorear rakudo: say '丁' ~~ /<[一..七]>/
p6eval rakudo 6b318e: OUTPUT«丁␤» 03:16
sorear ok it's using codepoint order, not logical order
(that's kinda nice, making <[一..七]> match the correct 7(?) characters would be ... interesting) 03:18
03:28 petdance joined 03:30 kar joined 03:33 cjk101010 joined 03:36 Axius joined 04:03 Axius joined 04:38 cjk101010 joined 04:39 dju joined 04:43 dju joined 04:44 mj41_ joined 04:45 pnate joined, araujo joined 04:46 alc joined 04:51 REPLeffect joined 05:08 alester_ joined 05:09 kaare joined 05:14 Axius joined 05:59 wtw joined
moritz_ good morning 06:13
sorear hello
06:14 uniejo joined 06:16 Axius joined 06:23 dudulz joined
squeeky morning! 06:24
06:29 ghyspran joined 06:30 Mowah joined
squeeky Rakudo's now available for mac homebrew, 'brew update; brew install rakudo-star'. \\o \\o/ o/ 06:31
moritz_ \\o// 06:32
06:43 Casan joined
pugssvn r31962 | moritz++ | [t/spec] tests for RT #RT #77160, flattening of quantified captures in Match objects 06:44
moritz_ phenny: tell bbkr that I improved a test of his in t/spec/S05-match/capturing-contexts.t in commit r31962 - isa_ok $thing, Any; is true for all $things except Mu and Junction - probably not what you want 06:46
phenny moritz_: I'll pass that on when bbkr is around.
pugssvn r31963 | moritz++ | [t/spec] be even more explicit with undefinedness check 06:47
06:59 Axius joined 07:00 dual joined 07:14 drbean joined 07:20 foodoo joined 07:36 baest joined, wamba joined
ingy greetings 07:37
07:41 ash_ joined
moritz_ $ ./perl6 -e '$_="abc"; say m:c/./; say m:c/./' 07:47
a
b
\\o/
sorear ? 07:52
moritz_ I've implemented the default values for :c locally 07:53
07:56 ash__ joined
moritz_ now I just need to move the implementation to where it belongs :-) 08:00
pugssvn r31964 | moritz++ | [S05] saner defaults for :c and :p; without a previous match, $/.to blows up 08:02
moritz_ use.perl.org/~pudge/journal/40493 use.perl.org is open for adoption 08:06
08:08 Mowah joined 08:09 masak joined
masak oh hai, #perl6! 08:09
moritz_ oh hai
frettled ia ia! 08:14
08:14 stereonaut joined
masak how was it again, were numifications of non-numeric strings such as 'foo' going to throw a warning or an error of some kind? twitter.com/catherinedevlin/status/20941945707 08:14
moritz_ it should warn 08:15
masak thanks.
moritz_ a python programmer trying otut Perl 6. NOt bad :-) 08:16
"Trying Perl 6. Wow, I expected it to be a little less... Perl."
so much for the "Perl 6 is not Perl" thing :-)
frettled haha 08:17
kaare_ What does the :auth trait on a classname actually do? 08:18
moritz_ it can distinguish several modules with the same name
kaare_ OK, thought so. Just couldn't find a description in the synopsis 08:19
moritz_ try S10 or S11
kaare_ It's mentioned in S12. But not explained. 08:20
... or maybe explained outside my attention span ;-) 08:21
moritz_ yeah. Look in S11 instead
masak moritz_: one could write your last spec change as +$/.?to :) 08:22
08:22 draxil joined
masak (not saying one should...) 08:22
moritz_ masak: no
it's not the same
a failed match object might have a non-sensical .to 08:23
masak oh, right.
moritz_ one might write it as +($/ || $/.to)
but I don't think there's much to gain with golfing in this part of the spec 08:24
masak true.
and that one depends on the numeric value of False.
which is, or ought to be, a code smell.
moritz_ it's another thing that I first implemented according to the spec, and then I found it didn't work 08:25
(actually I expected it to fail in that way, but I couldn't resist trying anyway)
masak :)
moritz_ is pleased to announce that we now pass t/spec/S05-modifier/continue.t without any fudges 08:26
pugssvn r31965 | moritz++ | [t/spec] unfudge :pos and :continue modifier tests for Rakudo
moritz_ wonders how :g:p is supposed to work 08:28
dalek kudo: 69561ef | moritz++ | src/Perl6/Actions.pm:
:continue and :pos now default to ($/ ?? $/.to !! 0)
08:29 Alias joined 08:43 dakkar joined
jnthn morning, #perl6 :-) 08:43
moritz_ morning jnthn 08:44
masak lolitsjnthn! 08:46
jnthn lol m's 08:47
oha morning
moritz_ the spectests seem to assume that m:p:g/.../ matches multiple times, as long as there are no gaps in the matches
ie each match is tied to the end position of the previous match
now, what happens for a zero-width match?
masak phenny: tell tadzik ufo pulled, including the newest commit. thanks.
phenny masak: I'll pass that on when tadzik is around.
moritz_ I'm inclined to say that a match fails then 08:48
masak moritz_: the Right Thing happens.
moritz_: couldn't it just ignore the zero-width match and move on?
a kind of always-progress criterion.
08:48 Axius joined
moritz_ masak: that's what it does now. But that violates the :p concept 08:49
masak oh, ok.
masak doesn't know what :p does
moritz_ anchors to a specific position 08:50
masak but if it violates it, then an error sounds sane.
it's clearly better than just looping infinitely.
moritz_ well, not error, just no match
masak huh. ok.
oha moritz_?
masak I think I'd have to use it in practice to get a feel for what's useful.
moritz_ oha?
oha if the regex say match nothing, it should match
but if that means infinite loop, that would be better to error 08:51
08:51 meteorjay joined
oha when it happen an deep recursion, you get an error and not return undef 08:51
moritz_ I guess we'll tell people to use :c instead of :p if they want to have zero-width matches combined with :g 08:52
anyway, it's a one-line change if we want any of the other possible behaviours
oha moritz_, may i suggest to warn at least?
masak for those of us who are still on use.perl: use.perl.org/~pudge/journal/40493
pudge is looking to give it away to someone who can give it a 'good home'. 08:53
moritz_ oha: warning seems like a good balance for now 08:54
oha++
08:55 whiteknight joined
sorear masak: hi! 08:56
masak sorear! \\o/
sorear masak: is it deliberate that I get access denied when trying to view commnts on your blog?
masak sorear: definitely not. 08:57
that sounds really odd.
moritz_ sorear: I also have problems viewing use.perl.org comments right now
masak viewing them logged in seems to work fine.
sorear hello jnthn 08:59
moritz_ I see only my own comments, and replies to them
on a blog post by masak that shows "22 Comments
masak I'm not sure what to do to get that fixed. 09:00
jnthn morning, sorear 09:01
moritz_ masak: I'll try active waiting first 09:02
masak rakudo: say '一'..'七'
p6eval rakudo 69561e:
..OUTPUT«(timeout)一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一�
masak stuck on square one... :)
moritz_ rakudo: say ('一'..'七').[^20] 09:03
p6eval rakudo 69561e: OUTPUT«一一一一一一一一一一一一一一一一一一一一␤»
moritz_ rakudo: say '一'.succ 09:04
p6eval rakudo 69561e: OUTPUT«一␤»
moritz_ that explains a lot :/
sorear wonders what that *should* be 09:05
sorear can make a case for 丁 or 二
masak rakudo: class A { sub b { 0x10 }; has $!c = b; method foo { $!c } }; say A.new.foo
p6eval rakudo 69561e: OUTPUT«16␤»
masak \\o/
jnthn thought he fixed that one a couple of weeks ago :-) 09:06
sorear wonders how long it will take #perl6 to notice that I only actually know about ten hanzi
jnthn sorear: Don't worry, I only know enough to expect 二 next ;-)
sorear .u 4e00
phenny U+4E00 CJK UNIFIED IDEOGRAPH-4E00 (一)
sorear .u 4e01 09:07
phenny U+4E01 CJK UNIFIED IDEOGRAPH-4E01 (丁)
sorear that's the case for 丁
jnthn Oh.
masak: #75644 - I agree with your analysis there.
masak: I'd like a better error at some point.
But it's right to error out.
masak aye.
moritz_ is buried in a flood of test-needing tickets 09:08
many of them would be so much nicer to test if we had exception objects... 09:09
09:09 dolmen joined
sorear wait, are you talking about hard-coding rakudo error messages in the implementation independant tests? ick 09:10
oha in src/builtin/Str.pir i see there are "ranges" where succ work on. if the ranges aren't found they just skip to other char: 09:11
dalek ecza: deb4f49 | sorear++ | Cursor.cs:
First draft of the NFA generator and dumper for the LTM system
oha rakudo: say '0一'.succ;
p6eval rakudo 69561e: OUTPUT«1一␤»
sorear mind you, it would not be correct to just treat the hanzi numerals as such a range 09:12
because they don't use the place value system
09:14 briang joined
squeeky 四十二 = 4 10 2, 4 x 10 + 2 = 42 09:14
sorear the successor of 十 is 十一, etc
ingy si shi er 09:17
masak I think we should probably draw the line somewhere before that.
in fact, maybe all the non-ASCII behaviour of ranges and succ et al belongs in well-maintained non-core modules.
just a thought.
sorear ideally written by someone who actually uses said numbers on a regular basis 09:18
ingy [<masak>..<sorear>]
moritz_ +1 09:19
masak three people in agreement!
squeeky hmmm, tempting to procrastinate on work and port Math::Roman to p6....
sorear ingy: I was a bit unclear yesterday when talking about niecza's regex support
ingy: as I see it, niecza is an optimizing p6regex compiler
moritz_ squeeky: somebody already submitted a Math::Roman-like subroutine to rosettacode
(in p6, that is)
09:19 AndreasX joined
sorear ingy: the fact that it also supports non-regex perl 6 code is secondary 09:19
09:20 tom_tsuruhara joined
ingy sorear: I'm not sure I grok all that 09:22
sorear: I'm just looking for an easy way to port pegex into a p6 impl
sorear: but it's not high on any current todo list 09:23
sorear: I'd like to play with niecza though
masak phenny: tell szabgab that I've now pulled szabgab/html-template into masak/html-template. thanks for your help updating the module!
phenny masak: I'll pass that on when szabgab is around.
masak ooh! ooh! I've thought of a new badge for modules.perl6.org ! 09:25
moritz_ do tell
masak this one will require a bit of manual editing each time, but it'll be worth it.
a "reviewed" badge, linking to the review. 09:26
mwhahaha
ingy sorear: I think if you rename github.com/sorear/niecza/blob/master/README to README.pod, github will format it for you...
sorear ingy: is something stopping you?
ingy: re. "I'd like to play with niecza though"
ingy sorear: about 100 things ;)
squeeky but a snitch ain't one of them 09:27
dalek ecza: 09faa31 | sorear++ | README:
Rename README to README.pod (ingy)
09:30
kudo: 9d7428f | moritz++ | src/core/Cool-str.pm:
fix interaction between :g and :p regex modifiers in Cool.match

similar to m/\\G$regex/g in p5
ingy sorear: \\o/ 09:32
09:33 macroron joined
sorear ingy: I don't suppose any of those 100 things can be helped? 09:34
I'm lonely in this sandbox...
masak sorear: a fate that often befalls the implementor of a non-mainstream Perl 6 implementation. 09:35
09:36 colomon joined
oha masak, i've updated a bit the buf.pod 09:36
moritz_ indeed
masak oha: will look.
moritz_ it takes a lot of effort to make a p6 compiler usable, to the point where you can actually attract users 09:37
oha masak, just explained a bit well why i need that
i was thinking to add a http example too
masak moritz_: aye. it's a bit of a bootstrapping Catch 22.
moritz_ even more so since rakudo is failry usable
masak oha: since no-one has picked up on the p6l thread, I'll write a response there now.
oha masak, i was thinking that probably alot are on holydays 09:38
but well, your replies are more then appreciated
masak oha: to be honest, I'm thinking the email you sent could have done a bit more to attract well-deserved attention. :)
oha: but that's not your fault, it's your first email to p6l. 09:39
will try to correct that by explaining why the ideas are worthwhile.
oha masak, i see what you mean. but i have very few knowledge about p6 spec.
masak just hang in there. 09:40
the road up the mountain is shorter than you might think.
oha imho, this may be a virtue in some cases
but well, i can't propose something really :)
(anyway i confess i didn't read the archives to have an idea about how that ML works) 09:42
moritz_, regarding rakudo. i actually think that the poor IO is a big obstacle right now 09:43
i see application where speed isn't an issue, supposed you can do networking
moritz_ oha: I know; and I plan to work a bit on it once masak++ has finished his gsoc project, and his work is merged into master
09:44 daxim joined
moritz_ at least I plan to work on the non-network IO. I don't know enough about networks to make it work 09:44
ingy sorear: I just mean that I have 100 project things and niecza is pretty deep on the stack right now. I'll keep your loneliness in mind though. It would be nice to see how my p6 modules fare on niecza
Casan is perl6's augment like extends in java.. ?
oha moritz_, i've remade IO::Socket::INET to make it usable for binary data, and i was able to write a Gearman::Client in just 2 hours after that.
but that depends on Buf 09:45
sorear Casan: not at all
moritz_ \\o/
sorear Casan: perl6's is is like extends in Java
bbkr moritz_: thanks for correcting test in capturing-contexts.t
phenny bbkr: 06:46Z <moritz_> tell bbkr that I improved a test of his in t/spec/S05-match/capturing-contexts.t in commit r31962 - isa_ok $thing, Any; is true for all $things except Mu and Junction - probably not what you want
sorear class Sub is Super { ... }
augment allows you to modify classes in place. don't use without a good reason.
moritz_ 'augment' is an in-place modification of the class (and generally considered evil, unless you have a good reason) 09:46
oha is augment scoped?
sorear no
moritz_ no
oha nasty but fantasty :)
Casan sorear: thanks for the clarification.. so my understanding is that augment kinda overrides/replaces the existing.
sorear (which is most of why it's evil)
moritz_ if you want something scoped, use a lexical (multi) sub instead
sorear unfortunately, we don't have the ability to treat lexical subs and methods on an equal footing (yet) 09:47
masak oha: email sent.
sorear (do any systems besides CLOS and C# support that?)
oha masak++
moritz_ sorear: well, then don't use the method API, just sub calls 09:48
you can always have a multi that falls back to calling a method 09:49
09:50 briang left
oha is there a way to override core mods in rakudo? 09:52
i mean. i've written this IO2::Socket::INET
but i would like to replace IO::Socket*
09:52 javs joined
masak 'augment' adds to things, and 'supersede' replaces them. 09:54
in theory, that should work with modules also.
but remember that it's antisocial to use MONKEY_TYPING
moritz_ oha: submit a patch :-) 09:55
oha moritz_, not right now. still a mess here
moritz_ there's likely some PIR magic that allows you to alias namespaces 09:56
oha i'll try to work around it
right now the IO::Socket::* is used anywhere? 09:57
moritz_ yes 09:58
mberends has a HTTP server on top of it
oha i must try to make it backward compatible 09:59
moritz_ not necessarily
oha iirw the actual revision have read and write which handle Str 10:00
moritz_ just discuss your changes with mberends when he shows up
oha i've rewritten to use recv and send with Buf
i think i can make read and write syntactic sugar
moritz_, ok. i'll try to catch him
10:00 redicaps left
moritz_ that would certainly be nice (read/write as sugar) 10:00
10:04 NOTevil joined
bbkr rakudo: sub infix:<0.0>(Int, Int) {say "\\o/"}; 0 0.0 0; # curious... 10:05
p6eval rakudo 69561e: OUTPUT«===SORRY!===␤Unrecognized backslash sequence: '\\o' at line 22, near "/\\"}; 0 0.0"␤»
bbkr rakudo: sub infix:<0.0>(Int, Int) {say '\\o/'}; 0 0.0 0; # curious...
p6eval rakudo 69561e: OUTPUT«\\o/␤»
bbkr rakudo++
cono rakudo: grammar A { regex TOP {^<B>$}; token B { <C> | <D> }; token C { c }; token D { d }; }; my $m = A.parse("c"); $m<b><c>.say 10:10
p6eval rakudo 69561e: OUTPUT«Any()␤»
cono Is it a bug? 10:11
moritz_ b vs. B
cono oops ;)
moritz_: thanks 10:12
rakudo: grammar A { regex TOP {^<B>$}; token B { <C> | <D> }; token C { c }; token D { d }; }; my $m = A.parse("c"); $m<B>.keys.perl.say
p6eval rakudo 69561e: OUTPUT«()␤»
cono rakudo: grammar A { regex TOP {^<B>$}; token B { <C> | <D> }; token C { c }; token D { d }; }; my $m = A.parse("c"); %($m<B>).keys.perl.say
p6eval rakudo 69561e: OUTPUT«("C")␤»
cono ah
masak lunch & 10:16
oha i've looked ad Cool.pm but i still can't understand what it does 10:17
cono Null PMC access in get_repr() Is that a critical error ? 10:18
moritz_ yes
seems it's time to blog about Cool 10:21
cono rakudo: class A::B { has $.s = "hey" }; my $q = "B"; my $l = gather { take "A::$q".new; }; $l[0].s.say 10:22
p6eval rakudo 69561e: OUTPUT«Null PMC access in get_repr()␤ in <anon> at line 22:/tmp/kBN02ALah1␤ in 'List::at_pos' at line 1␤ in 'Any::postcircumfix:<[ ]>' at line 1658:CORE.setting␤ in main program body at line 1␤»
cono Found how to reproduce ;)
moritz_ just to have a place to point people to when people ask
rakudo: class A::B { has $.s = "hey" }; my $q = "B"; my $l = gather { take "A::$q".new; }; $l[0]
p6eval rakudo 69561e: OUTPUT«Null PMC access in get_repr()␤ in <anon> at line 22:/tmp/Brx41cXyGM␤ in 'List::at_pos' at line 1␤ in 'Any::postcircumfix:<[ ]>' at line 1658:CORE.setting␤ in main program body at line 1␤» 10:23
moritz_ rakudo: class A::B { has $.s = "hey" }; my $q = "B"; my $l = gather { take "A::$q".new; };
p6eval rakudo 69561e: ( no output )
moritz_ rakudo: class A::B { has $.s = "hey" }; my $q = "B"; my $l = gather { take "A::$q".new; }; $l.eager
p6eval rakudo 69561e: OUTPUT«Null PMC access in get_repr()␤ in <anon> at line 22:/tmp/7avPB0sgCd␤ in main program body at line 1␤»
10:23 krakan joined
cono moritz_: it's only possible if prefix namespace present A::, without it, all good 10:24
rakudo: class B { has $.s = "hey" }; my $q = "B"; my $l = gather { take "$q".new; }; $l[0].s.say
p6eval rakudo 69561e: OUTPUT«hey␤»
gfldex cono: rakudobug@perl.org
cono ok, thanks 10:25
oha moritz_, apropos Cool: it would be welcome :) 10:26
TiMBuS is there a way to un-arrayify optional captures? 'ab' ~~ /(a)? b/; # $0 is an array 10:32
oha TiMBuS, (a||) works? 10:34
TiMBuS does it? I didn't think of that
oha TiMBuS, should. lemme check
TiMBuS oh. nothing isnt allowed 10:35
of course
sorear (a||<?>)
well, [(a)||<?>}
s/}/]/
TiMBuS that's the one
oha rakudo: ("ab"~~/(a||'')b/).perl 10:37
p6eval rakudo 69561e: ( no output )
oha rakudo: ("ab"~~/(a||'')b/).caps 10:39
10:39 azert0x joined
p6eval rakudo 69561e: ( no output ) 10:39
oha rakudo: say ("ab"~~/(a||'')b/).caps
p6eval rakudo 69561e: OUTPUT«0 a␤»
10:39 azert0x joined 10:40 azert0x joined, exodist joined 10:47 Axius joined 10:51 cosimo joined 10:54 masonkramer joined
masak rakudo: class Foo {}; say "Foo".new.perl 10:55
p6eval rakudo 9d7428: OUTPUT«Foo.new()␤»
masak I don't think that should be allowed.
why should Str.new reasonably behave like that?
sorear because that's the way Perl 5 worked, and the overriding principle of Parrot's design is "like Perl 5 unless noted" 10:56
it should be noted that Perl 5 did not reify classes as user data objects; static method invocation involved using the string itself as an object 10:57
masak I think I've seen a rakudobug protesting this behaviour. 10:58
10:58 jhuni joined
jnthn It's Just Plain Wrong. 10:59
No point patching it up though - it'll just die when we switch meta-model.
masak \\o/
I hope people won't grow dependent on it.
11:00 whiteknight joined
dalek ecza: 4ed6d14 | sorear++ | Cursor.cs:
Allow deparsing of general character class terms
11:02
ecza: 974578f | sorear++ | Cursor.cs:
Implement char class nodes, tweak char class design
11:17 Mowah joined
dalek kudo: 811c1c5 | moritz++ | src/core/Match.pm:
remove warning from Match.perl. While Match.new() does not accept subcaptures so
11:21
11:26 tjyang joined
colomon github.com/colomon/List-Utils # had fail when trying to add it to pls last night. :( 11:32
bbkr rt.perl.org/rt3/Ticket/Display.html?id=66620 - can i close this one? it's related to parrot bug fixed 10 months ago. 11:33
moritz_ sure
colomon: JSON doesn't like trailing commas, and you forgot to add a comma after the previous line
... which is why I don't add my project as the list line in the file :-) 11:34
fixed.
colomon wait, so it did push?
moritz_ aye
colomon then why does git keep on telling me ! [rejected] master -> master (non-fast forward) when I try to push it? 11:35
moritz_ github.com/masak/proto/commit/6f794...5d20c69a1b 11:36
colomon: try git pull --rebase
colomon huh. pushed and very clearly with bad commas. sigh. 11:37
moritz_++ for fixing it.
bbkr rakudo: use Test; class Thing {}; my $thing = Thing.new(); ok($thing.isa("Thing")); ok($thing.isa(Thing)); # checking rt.perl.org/rt3/Ticket/Display.html?id=69999 11:39
p6eval rakudo 9d7428: OUTPUT«ok 1 - ␤ok 2 - ␤»
bbkr rakudo: use Test; class Thing::something {}; my $thing = Thing::something.new(); ok($thing.isa("Thing::something")); ok($thing.isa(Thing::something));
p6eval rakudo 9d7428: OUTPUT«not ok 1 - ␤ok 2 - ␤»
11:41 Axius joined
bbkr hmm. can someone tell me if this is expected behavior? .isa("Thing::something") should behave as ~~Thing::something or ~~Str ? 11:42
moritz_ as ~~Thing::something I hope 11:45
at least I don't see why it should behave differently for strings containing short and long type names
11:51 rgrau_ joined
masak uses Møøse for $WORK 11:58
heady stuff.
moritz_ handy stuff, too 11:59
masak ϶oϵ 12:00
12:03 M_o_C joined 12:08 chuhnk joined
chuhnk Just read www.perl.com/pub/2010/08/people-of-...ngton.html and became intrigued 12:09
masak chuhnk: cool!
we're intrigued too, almost all the time :)
chuhnk so perl6 is going to be a compiled language? 12:10
masak chuhnk: Perl 5 is a compiled language.
chuhnk really I never thought of it like that
masak but not everybody knows that.
moritz_ Perl 6 is just a language. The matter of how it is executed is left to the implementor
chuhnk I always thought of it just as a dynamic scripting language
masak it is.
different axes :)
chuhnk interesting 12:11
masak chuhnk++ # learned something new within 2 minutes :)
moritz_ currently rakudo compiles Perl 6 code to bytecode, which it then executes in-memory
but you can write that bytecode to disc too, if you prefer
actually all Perl 6 implementations I know of are (mostly) compilers
masak maybe Pugs started out as pure interpreter. 12:12
I've heard other small project talking about executing from the AST, too.
chuhnk so essentially its like scala? where you can do scalac source.scala and it compiles it into java bytecode or you can do scala source.scala and it compiles then runs it.
masak aye.
chuhnk very nice 12:13
masak that seems a reasonable comparison.
moritz_ pugs compiled to an intermediate code, and then either interpreted that, ,or compiled to another backend
masak even from the start? I don't remember.
moritz_ not sure what it did in the beginning 12:14
chuhnk This is quite exciting because from that link above, theres talk of having threading and parallel programming support
12:15 mj41_ joined
masak tests 12-18 in t/spec/S32-io/IO-Socket-INET.t fail for me with latest Rakudo. known? 12:16
moritz_ masak: try to re-run it
masak does so 12:17
moritz_ masak: i get some random failures from time to time, but usually only one fails
jnthn chuhnk: Yeah, I hope Jonathan gets some work done on that at some point soonish. :-) 12:18
moritz_ hopes so too :-) 12:19
chuhnk ha my boss has just said perl will not go mainstream :p 12:20
i disagree, but what do I know
moritz_ thinks that Perl is already mainstream
masak chuhnk: is your boss very young or living under a rock? 12:21
because that would explain why she doesn't already know that Perl is mainstream.
chuhnk perl6* sorry lol.
masak now that's another matter :) 12:22
I'm on the fence there as well.
we need to get Rakudo or some other implementation fast, then we might have a chance.
rakudo: sub f(Int $x where Inf) { say "called" }; f(Inf); f(42) 12:23
p6eval rakudo 9d7428: OUTPUT«Nominal type check failed for parameter '$x'; expected Int but got Num instead␤ in 'f' at line 22:/tmp/R59qPo3sAx␤ in main program body at line 22:/tmp/R59qPo3sAx␤»
12:23 fod joined, jaldhar joined
masak how do we plan to solve the above? 12:23
it's wrong, right? 12:24
moritz_ it's wrong
Inf is kinda interesting
because it's both of type Num and Int
masak aye. :)
jnthn wtf? 12:25
Multiple inheritance?
masak rakudo: class myInf is Int is Num {}; say myInf ~~ Int; say myInf ~~ Num
moritz_ magic?
jnthn I...think that's going to end very, very badly.
p6eval rakudo 9d7428: OUTPUT«1␤1␤»
masak :D
rakudo: sub f(Int $x = Inf) { say $x }; f(42); f() 12:26
p6eval rakudo 9d7428: OUTPUT«42␤Inf␤»
jnthn Think we still have an RT open about that one. 12:27
I'm not sure how this will work out in the end, anyways.
masak aye.
jnthn: we could typecheck at compile-time! :)
at least for literals.
jnthn masak: Coming soon to a compiler near you! :P
Yes, should be do-able. :-) 12:28
masak makes sekkrit plans to do it in Yapsi
moritz_ I guess we need to have that serialization stuff first :(
colomon at one point, TimToady and I discussed making Inf a separate Numeric type.
I don't know that either of us actually thought through the details. 12:29
masak colomon: wouldn't that make it match neither Int nor Num? 12:30
moritz_ unless it's multi-inerited
*inherited
colomon as far as I can see, yes. 12:31
jnthn moritz_: Yeah. I expect that to happen soonish though.
masak \\o/
colomon the thing is, we probably want Inf and NaN to be there for *every* Real type.
masak colomon: that's a very good point.
12:32 chuhnk left
moritz_ jnthn: btw has your grant been approved? 12:32
colomon so solutions that require multi-inheritance are very limiting.
jnthn moritz_: I got permission from allison++ while at YAPC::EU to do at lesat the most immediately required Parrot change to support it properly there.
masak moritz_: I've re-run t/spec/S32-io/IO-Socket-INET.t about four times now. always failures on 12..18.
jnthn moritz_: No but it's currently being voted on, I believe.
moritz_ masak: :(
jnthn: great that allison isn't against it :-)
jnthn moritz_: Yes, being able to grab a flip chart and scribble diagrams to explain what I was after and why I wanted it was a big help. meatspace++ :-) 12:34
moritz_ indeed 12:36
just imagine how long our 5hrs discussion would have taken over email/irc :-)
jnthn Yeah, plus having the post the stroopwafel packet between each other as we did it woulda been a drag too. 12:37
masak still hasn't opened his
moritz_ :-)
jnthn masak: no, me either :-)
masak guess I'm waiting for a girl to drop by so I can give her some stroopwafels. 12:38
jnthn masak: Though I only really got home yesterday. :-)
masak but the girls are few and far between... :)
moritz_ masak: I have a girl drop by every evening... :-)
jnthn masak: I could do the same but I suspect they have an expirey date... :-)
moritz_ she was very happy about the stroopwafels
:-)
masak has been afflicted by spring hormones in the past few days... in August! 12:39
12:39 pmurias joined
jnthn avoids making a hormones => whoremoans pun 12:40
masak: Maybe it's the weather. Here it's been more springy than summery. :-) 12:41
(Though that mad me happy. It's colder. Phew.) 12:42
masak jnthn: avoidance fail.
jnthn *made
masak jnthn: I suspect it might have been Italy. not sure how.
jnthn :S
Well, just imagine if Kiev had won... :P 12:43
masak oh well. hormones come and go. Perl 6 remains. :)
moritz_ lol
[Coke] "overriding principle of parrot's design" (Freudian slip) 12:49
masak doesn't see the slip 12:52
or was the overriding principle that hormones come and go but Perl 6 remains? :P
moritz_ colomon: btw List-Utils now appears on modules.perl6.org/ 12:53
[Coke] masak: he meant "Perl 6" 12:54
masak who did?
[Coke] sorear:
at least, I assume he did.
12:54 kensanata joined
masak hm. maybe. 12:55
Parrot does look a lot like Perl 5 to me, though.
I always thought of PIR as Perl 5 assembly :)
moritz_ there's certainly a lot of inspiration from p5 in there 12:56
12:56 alc joined
[Coke] yes, but you'd think if that was the overriding principle, we'd run p5 already. 12:56
mathw Well, that would have been easier if we actually understood what Perl 5 does 12:57
moritz_ except for the small fact that p5 is a universe of its own, without a spec
masak mathw: whatever it does, it's blazingly fast!
I mean... wow!
moritz_ and a small number of some hundred magic variabales
12:59 drbean joined
moritz_ did you know that $^N are stored by taking then ^N as an escape sequence, and using the result in the symbol table? :-) 12:59
and other variables of the same format
masak perl6: say "\\x263A" 13:00
p6eval pugs, rakudo 811c1c: OUTPUT«☺␤»
masak \\o/ 13:01
moritz_ hopes to add niecza to the 'perl6' target list soonish 13:02
13:10 Holy_Cow joined 13:11 ruoso joined 13:12 meppl joined 13:13 coffeeyy joined
pmurias ruoso: the smop docs (stuff in lowdoc) should be turned into POD only modules? 13:17
pugssvn r31966 | pmurias++ | [v6-mildew] cleanup 13:26
r31967 | pmurias++ | [smop] add main module
r31968 | pmurias++ | [mildew] use smop's main module
r31969 | pmurias++ | [v6-mildew] remove trash
r31970 | pmurias++ | [smop] [Mildew-Setting-SMOP] update version numbers 13:27
PerlJam from p6l: "we'd need a pure Perl implementation of the rules engine that could match either text or data" Aside from the speed penalty, I wonder how close GGE fits that bill. 13:33
moritz_ mostly ignores Aaron Sherman on p6l. He has good ideas, but it's hard to get actual spec commit out of him 13:34
masak jnthn: aww, Signatures talk not up yet? I wanted to refer to it in a p6l post :/ 13:36
jnthn masak: I made the PDF then lacked internets to upload it. 13:38
masak: Will do it later on today. 13:39
(Gotta pop out for a moment right now...)
masak no worries. sent email, might follow up later when PDF's online.
szabgab masak, jnthn either of you might be available for a perl6 hackathon around 6-7/11 in Eindhoven or near-by? 13:41
phenny szabgab: 09:23Z <masak> tell szabgab that I've now pulled szabgab/html-template into masak/html-template. thanks for your help updating the module!
masak PerlJam: the question isn't really well-posed as it is. with an actual description of how it should work, it might be possible to answer that. 13:42
PerlJam: PGE had several different "engines": p5re, p6re, and file glob. GGE has the p6re one. all of those are centered around matching text, so it's sort of a design assumption. 13:43
szabgab phenny: thank you too
moritz_ aye; assuming that stuff can be easily changed just because it's in Perl 6 is a misconception
masak szabgab: sounds like fun. I'm probably available then, but hesitant to tie myself up without further information. 13:44
moritz_ I mean change something that goes against a fundamental assumption of the module in question
szabgab I don't have further information yet, just asked the organizers of www.t-dose.org/
masak I think one should think of grammars as an inspiration here, not necessarily the means to match binary/hierarchical data.
szabgab for a perl stand and maybe for a room for a hackathong
if they approve good 13:45
if onlt the stand gets approved we can still offer some talks and find a place for a hackathon
and then I'll try to get some funding for it
masak szabgab: using it as an opportunity to meet up with jnthn might be one way I could motivate it.
szabgab so far I have one maybe from pmichaud :)
masak consider it a maybe from me as well :) 13:46
szabgab 2 may-bees
moritz_ github.com/moritz/perlgeek.de/commi...06b0d1ac4a is that clear/readable? 13:49
colomon ooo, hack-a-thong. 13:51
baest moritz_: very 13:52
moritz_++ 13:53
moritz_ \\o/
pugssvn r31971 | pmurias++ | [mildew] use Test::Script to make sure the mildew executable compiles 13:54
moritz_ then I haz blogged
perlgeek.de/blog-en/perl-6/cool.html
lol
baest :) 13:55
[particle] moritz_: why is Cool a Class and not a Role? 13:57
moritz_ [particle]: to be mutable, and thus monkey-typable 13:58
[particle] i suspect enquiring minds want to know
that is, you explain why Cool exists, but not why it's a Class. 14:00
14:00 alester joined
moritz_ right 14:00
moritz_ adds the explanation 14:02
[particle] gives moritz_++ karma points
moritz_ [particle]++
PerlJam saying "Cool fills this role" sounds a little odd then ;)
[particle] s/role/niche|need/ 14:03
moritz_ I dimly recall there being a second reason for it not being a role, but I can't remember what it was
moritz_ changes it to 'niche'
masak moritz_: the fact that we now get to write 'class A is Cool'? :P
moritz_ masak: as a role, it would have been called "Magic" 14:04
so that we can write "class A does Magic"
I meant a technical reason :-)
masak of course.
PerlJam moritz_: you might add a little bit of text about why it's called "Cool" as I'm sure Other People react to the name without realizing there's a reason it has that name. 14:06
moritz_ is not sure what to write about it 14:07
PerlJam either actually 14:10
[particle] "These behaviors have long been considered cool by people new to Perl, so the class is appropriately named." ?
PerlJam Perhaps crib "convienent object oriented loopbacks" and "I'm cool with an argument of that type" and other bits of the paragraph at S02:1744 14:12
14:12 IllvilJa joined
moritz_ PerlJam++ 14:14
PerlJam naming things like "bless" and "Cool" and such cause people outside of Perl to just think we're being cute and that's looked upon with disdain (much like camelia). I think somewhere we should say "yeah, it's cute. It's also memorable, and that's the point" (or something to that effect) 14:15
14:16 tadzik joined
tadzik good {daypart(:local)} #perl6 14:16
phenny tadzik: 08:47Z <masak> tell tadzik ufo pulled, including the newest commit. thanks.
tadzik masak: I hope the newest is included, the elder is broken :)
PerlJam (at least that's how it works for me so I assume Larry did it that way for that purpose ;)
moritz_ PerlJam: you might want to add such a note to the book 14:17
PerlJam moritz++ 14:18
moritz_ in general I'd appreciate it if we had more explanations why stuff is like it is 14:19
14:20 Trashlord joined
PerlJam If we can gather enough "whys" maybe we could explicitly incoporate that into the structure of the book. 14:20
something like: through out the book you will see sidebars that looks like this. These sidebars contain further explanation of why something is the way it is. 14:21
tadzik curiosity: Isn't (1..n).pick doing two array allocations itself?
it's quite an idiomatic way to write (n.rand + 1), could it be optimized to the latter, to avoid object juggling?
PerlJam tadzik: when I first read what you just wrote, I thought, "no it isn't" (wrt idiomatic) because I would tend to not pick that method when it's 1..N. But I *would* choose it for N..M 14:24
tadzik yeah, n..m is even more fun
moritz_ tadzik: you could submit a patch for Range.pick 14:25
tadzik: that avoids flattening the list
tadzik moritz_: what avoids? 14:26
moritz_ Range.pick 14:27
masak tadzik: yes, newest was included. that's why I wrote 'including the newset'. :)
yay, pmichaud's grant has been accepted: news.perlfoundation.org/2010/08/hag...sts-i.html 14:28
14:28 plobsing joined
PerlJam masak: that's a good slightly early birthday present 14:28
tadzik masak: I realized it's broken while being out of the net, yet I managed to login to GH from my friend's computer and make a commit using their web interface. Awful experience, I must say
jnthn yay \\o/
masak tadzik: :)
tadzik what will be a good name for a module with subs replacing common shell commands, like mkdir -p, rm -r, cp -r? I initially named it Shell::Utils, but not sure if it really fits it. Ideas? 14:31
moritz_ File::Utils? 14:32
Path::Utils?
or ::Tools
ExtUtils
PerlJam tadzik: Perl 5 puts those in File::Path.
(not a particularly good name IMHO)
moritz_ otoh Shell::Tools isn't too bad 14:33
tadzik File::Tools? Or File::Utils
jnthn Shell::Emulation
PerlJam of course, they're also called "make_path" and "remove_tree" which I find oddly wrong too (why not remove_path?) 14:34
tadzik that sounds too generic imho
moritz_ MinUS - Minimalist Unix Shell
14:35 spq1 joined, kensanata joined
PerlJam I like FS::Tools personally. The ones mentioned so far aren't about files as much as they are about the file system. What other "common shell commands" will there be? 14:35
moritz_ FS sounds like it's file system manipulation - FAT, Ext3, RaiserFS etc. 14:36
wow, www.reddit.com/r/programming/commen...dern_perl/ is top 5 in r/programming/
at least for a short while :-)
tadzik File::Tools sounds nice 14:37
I'll put File::Copy in here (it's too small and simple to be a separate module imho), definitely 'mkdir -p' (I wrote it myself for neutro, and I see moritz did similar thing for Module::Starter), probably cp -r and rm -r too
[particle] it can be renamed when it makes its way to :auth<CPAN>
PerlJam File::Tools +1 14:38
moritz_ +1 14:39
in Unix, a directory is a kind of file too :-)
tadzik yep
So it shall be done
PerlJam so ... File::Find will be included too? 14:40
tadzik hmm 14:41
Survey: [ ] Include File::Find in File::Tools or [ ] Keep 'em separated
moritz_ [X] bundle 14:42
PerlJam (I'm pro-include too)
moritz_ PerlJam: then make your cross! 14:43
[particle] File::Tools is a distro, right? bundle File::Find.
14:43 ashleydev_ joined
tadzik 's builtin regex engine recognizes only [.] 14:43
PerlJam [particle]++ proper framing is important :)
14:44 mhsparks joined
[particle] i wish there was a way to distinguish distros from modules by name 14:44
14:44 mhsparks left
tadzik I see 3 people for, 0 against 14:44
[particle] ...or some other marker
tadzik the ancient council has spoken
moritz_ now I feel old. Thank you. 14:45
:-)
tadzik shh! It was supposed to be epic and dramatic!
14:46 mhsparks joined
moritz_ increaes the volume of the mysterious background music 14:46
14:46 mhsparks left
szbalint this demands strange unicode symbols! 14:46
PerlJam searches for an excalibur unicode character (it must exist, right?) 14:47
tadzik star: say "\\n\\n\\n\\n\\n\\n\\n\\n\\n"
p6eval star 2010.07: OUTPUT«␤␤␤␤␤␤␤␤␤␤»
moritz_ .sword
.u sword
tadzik .u sword
phenny U+2694 CROSSED SWORDS (⚔)
tadzik yay!
masak did I just miss an ancient council meeting? dang. :)
tadzik there must be a module for this
moritz_ use Council::Ancient <decide>; 14:48
PerlJam .u skull and cross bones
phenny PerlJam: Sorry, no results for 'skull and cross bones'.
PerlJam .u skull
phenny U+2620 SKULL AND CROSSBONES (☠)
masak tadzik: search.cpan.org/~audreyt/App-Uni-v0.12.0/
tadzik yay :)
.u ghost
phenny U+2EE4 CJK RADICAL GHOST (⻤)
tadzik a rectangle here :( 14:49
PerlJam .u grasshopper
phenny PerlJam: Sorry, no results for 'grasshopper'.
tadzik .u pearl
phenny tadzik: Sorry, no results for 'pearl'.
PerlJam .u onion
phenny PerlJam: Sorry, no results for 'onion'.
tadzik .u camel
phenny tadzik: Sorry, no results for 'camel'.
masak I like the sounds of 'radical ghost' :)
moritz_ .u perl
phenny moritz_: Sorry, no results for 'perl'.
PerlJam clearly those unicode wonks have been slacking
tadzik and that's how ancient council meetings end up. Damn you, unicode
moritz_ .u camelia 14:50
phenny moritz_: Sorry, no results for 'camelia'.
masak PerlJam: you must not have seen unicode.org/Public/6.0.0/charts/ver...U1F600.pdf
tadzik I feel a need for Optimize::Fun, which would tell jokes during the long-taking opereations
PerlJam does phenny take hex? 14:51
.u 1f648
phenny PerlJam: Sorry, no results for '1f648'.
PerlJam .u 0x1f648
phenny PerlJam: Sorry, no results for '0x1f648'.
moritz_ phenny doesn't like codepoints > 0xffff iirc 14:52
tadzik: sounds like a nice module
tadzik yet I don't know how to detect long-running subs
moritz_ all subs are long-running subs in rakudo :-) 14:53
PerlJam heh
14:56 envi^home joined 14:59 rurban joined 15:04 Axius joined 15:06 kst joined 15:21 justatheory joined, isBEKaml joined
isBEKaml OHHAI, #perl6! 15:22
oha hi isBEKaml 15:24
masak isBEKaml! \\o/ 15:27
oha i've noticed something on net-io on rakudo test 15:28
it was getting failed over and over, till i've realised that the process got hang
there are 2 issues
1) the test launch a demon which hang there
15:28 risou joined
oha 2) the bind() didn't throw an error if the port is already bound 15:29
i'm fixing the 2)
15:30 kst joined, Italian_Plumber joined
moritz_ I guess you already have a commit bit to the pugs repo? 15:31
15:31 achromic joined
oha moritz_, sorry? 15:31
[Coke] tell perljam to test something. 15:32
isBEKaml masak, oha: \\o/
moritz_ oha: do you have write access to the repository in which the tests are stored?
[Coke] needs the botname, eh?
moritz_ or do you want to fix bind(), not the tests?
oha moritz_, no
15:32 coffeeyy left
oha moritz_, i'm going to fix the bind() 15:32
which is the real issue imho
[Coke] phenny: ask pmichaud if he has a schedule in mind for the grant.
phenny [Coke]: I'll pass that on when pmichaud is around.
moritz_ anyway, if you want access to that repo, just /msg me your email address and desired nickname 15:33
tadzik hmm. If File::Tools has 'use File::Find', and someone will 'use File::Tools', will he/she have access to File::Find functions 15:34
?
moritz_ only if you re-export them somehow (don't ask me how that works...) 15:35
isBEKaml tadzik: hm, I guess File::Find is already available in pugs repo. Not sure how usable it is since that was so long ago. :)
tadzik isBEKaml: it isn't :)
szabgab $page.content ~= qq{<a href="{$elem.attributes<url>}">{$elem.attributes<url>}} ~ "</a>\\n";
tadzik isBEKaml: we wrote the new one, with lazy lists and pink unicorns
szabgab I just fixed that line
isBEKaml tadzik: isn't available or unusable? :)
szabgab it used to be
$page.content ~= qq{<a href="{$elem.attributes<url>}">{$elem.attributes<url>}} ~~ "</a>\\n";
~ instead of ~ 15:36
tadzik isBEKaml: iirc it doesn't work, and our File::Find is better anyway :)
szabgab ~~ instead of ~
tadzik isBEKaml: afair pugs' File::Find is a verbatim port of this awful Perl 5's File::Find
isBEKaml tadzik: hm, better to rewrite the awful into awesome and let the world know! :) 15:37
tadzik++
colomon oooo, I didn't know Rakudo had pink unicorns yet. tadzik++ 15:38
tadzik colomon: actually, that's NYI
colomon tadzik: dang.
tadzik isBEKaml: nothing new, it's in R*
I'll be back later, to implement the invisible pink unicorns and stuff 15:42
15:45 coffeeyy joined 15:46 pyrimidine joined 15:51 britneypire joined
alester It would be swell if vim users were to try installing and using the Perl .vim files at github.com/petdance/vim-perl so I can get some eyeballs on them before vim 7.3 comes out. Just check out the repo and do a "make install" into your ~/.vim dir. 15:52
isBEKaml ooh, tadzik is yet to implement pink unicorns (makes a note to see them when they are out) :)
alester: I installed them from there. But found them too slow in displaying files when dealing with :set ft=perl6 :( 15:53
alester: tried fixing them, but gave up when I found the huuge vimscripts. :(
alester A ticket describing your experiences in the github bit tracker would be welcome. 15:54
Giving details re: slow.
isBEKaml alester: sure, will post them when I get around to it next time.
alester: for now, I just use :set syntax=perl6 for faster loading of files. 15:55
16:02 Axius joined, ashleydev_ joined
isBEKaml bugzilla.gnome.org/show_bug.cgi?id=626593 ## Lol 16:10
masak oha++ just found a place in t/spec/S32-io/IO-Socket-INET.pl which will never work if we do reading with Bufs. 16:16
oha my $s = $io.read(2)~$io.read(1); # this read 1 unicode char of 3 bytes. 16:17
masak apparently line 115 splits a character.
oha it was working with the old implementation
s/old/actual/
masak the char is 3 bytes wide, but that line reads 2.
oha but after i've tried to use Buf i obiously get an error 16:18
Malformed UTF-8 string
masak and that error is *correct*
oha imho, yes
masak because $babe is a Str.
and Strs aren't allowed to contain two thirds of a character. 16:19
so that test needs to be rewritten somehow.
oha masak, i'm not sure how to change it to check the error
masak oha: let me check who wrote that part. 16:20
oha the nice thing is that now $sock have .read(->Buf) and .recv(->Str)
masak carlin++, it seems. 16:21
oha the second is sugar on the first, and give backward compatibility (where possible)
masak I'm not savvy enough to comment on whether that's nice/desirable, but it sounds ok :)
oha masak, honestly, i would prefer recv() by Buf and read() by Str 16:22
masak not sure we need the Str-returning things at all.
feels like a typical FAQ.
oha masak, anyway IO.pm have read(->Buf); 16:23
dakkar what encoding would be used by the Str-returing methods?
masak oha: yep. I wrote that one :)
dakkar: $?ENC, probably.
oha dakkar: multi method recv(Int $bytes, Str $enc)
dakkar oha: better :) 16:24
oha $enc default to UTF-8
if not specified (again, for backward compatibility)
dakkar default encondings are usually evil…
masak aye.
oha i do not want to break HTTP::Server::Simple
masak I'm just doing what the spec says.
dakkar Java went that way, and they had to deprecate half the API
masak aye.
oha i could add a warn, but i fear this will mess all the tests 16:25
dakkar would add a FAIL
masak not having a default encoding simply amounts to making the $enc parameter mandatory. 16:26
dakkar yes 16:27
oha masak, it's a bit better, if the $enc is missing, i call $buf.decode() so i delegate the problem to Buf.pm
dakkar Buf has a 'decode' method without a mandatory encoding? 16:28
dakkar should shut up before degenerating into a rant
oha dakkar, actually yes 16:29
16:29 payload joined 16:30 patrickas joined
patrickas ola 16:30
dakkar ugh
oha hi patrickas 16:31
patrickas ola oha :-)
isBEKaml patrickas! :)
patrickas \\o/ isBEKaml!
dakkar I'd love for an Encoding to be a couple of functions, coercible from Str via lookup… 16:32
isBEKaml patrickas: the deletes worked then! ;)
dakkar so that we could pass around Encoding objects, or their names…
patrickas it seems so! still waiting for the sky to fall :-)
isBEKaml patrickas: erm, didn't break anything... ... (I really should watch things)
patrickas that was a nice patch but did not solve much .... I got me another one that'd give us about 13 more test passes in series ... pending some twits from colomon to review and apply :-) 16:34
ping moritz_ 16:36
isBEKaml patrickas: \\o/
patrickas actually ping anyone with ideas :-) What would be a nice/standard way to present the USAGE information for scripts with both long and short forms of arguments? 16:37
isBEKaml GetOpts ? 16:39
16:39 rgrau joined
patrickas good point ... let's steal from GetOpts :-) heading to CPAN 16:39
16:42 molaf joined
patrickas getopts seems to only process single-character switches maybe Getopt::Long 16:42
isBEKaml patrickas: oh, man. I didn't realise GetOpts was a module on CPAN. I just threw it out. :-) 16:45
patrickas: yes, GetOpt::Long is the way to go. 16:46
patrickas: GetOpt::Long::Descriptive also looks promising.
16:49 jennyf joined 16:50 Mowah joined
patrickas OK I'll steal the Usage on a line followed by a line for each short - long option 16:50
also the short options always mean one letter right ? 16:51
[particle] yes, short options are always one letter 16:56
and if they're bundled, only the last one can take a value
isBEKaml AFAIK, gnu programs always had it that way (single letter short options) and it's usually the case in other programs too.
[particle] forget what you knew about gnu and read S19. there are similarities, but differences, too. 16:57
[particle] really has to finish up his grant... been thinking about it quite a bit lately, just looking for tuits
but, by all means, if you want to implement parts of command line parsing for rakudo, feel free to beat me to it. 16:58
patrickas [particle] I am working on the short options but I am sure I won't implement all of the possibilities ... just the most simple ones I guess 16:59
[particle] patrickas++ 17:00
17:00 Trashlord joined, justatheory joined
rokoteko how would you: close STDOUT; open STDOUT, ">", \\my $str or die $!; print "foo"; warn "str: $str" ... in perl6? 17:03
ie. redirect $*OUT to a variable. 17:04
17:04 Packetknife joined
patrickas [particle] just to clarify I am working on short options passed to the perl script (parsed by MAIN) not to the perl executable 17:06
[particle] it's all the same, except where it's different.
patrickas :-)
17:09 nperez joined
rokoteko temp NYI? 17:14
patrickas NYI IIRC 17:15
masak aye, NYI. 17:16
17:16 Axius joined
[particle] NY, aye. 17:17
rokoteko rakudo: my $var = IO.new; $*OUT := $var; say "foo"; warn "foo is [$var.perl]"
p6eval rakudo 811c1c: OUTPUT«foo is [IO()<0x6c0ce50>.perl] at line 22:/tmp/DPUonfFcAp␤»
pmichaud rakudo: my $a = 5; temp $a = 6; 17:18
phenny pmichaud: 01:52Z <[Coke]> ask pmichaud if he can review RT #74008, which is a patch for some laziness.
pmichaud: 02:46Z <[Coke]> ask pmichaud if we can close 75030 now.
pmichaud: 15:32Z <[Coke]> ask pmichaud if he has a schedule in mind for the grant.
p6eval rakudo 811c1c: OUTPUT«Could not find sub &temp␤ in main program body at line 22:/tmp/zTGyvw4kLk␤»
[particle] looks like IO needs a .perl
pmichaud $var.perl won't interpolate
need parens
my $var = IO.new; say $var.perl; 17:19
rakudo: my $var = IO.new; say "$var.perl() $var.perl";
p6eval rakudo 811c1c: OUTPUT«IO.new(PIO => Any, ins => Any, autoflush => Any, path => Any, stat => IO;Stat.new(path => Any)) IO()<0x612fbd0>.perl␤»
rokoteko rakudo: my $var = IO.new; $*OUT := $var; say "foo"; warn "foo is [" ~ $var.perl ~ "]"
p6eval rakudo 811c1c: OUTPUT«foo is [IO.new(PIO => Any, ins => Any, autoflush => Any, path => Any, stat => IO;Stat.new(path => Any))] at line 22:/tmp/lTfNH9xMFu␤»
rokoteko hmm. probably my $var = IO.new; is just completely wrong in my use case. 17:20
just tried to hack in *somehow* the redirecting to a variable. but as it's IO it obviously is Input and Ouput instantly. maybe I could make it buffered and then read the buffer. .. really no-one can think of a way how redirecting $*OUT to a variable coule be be done when implemented? 17:22
TimToady does it need to work for subprocesses? 17:24
sjohnson hi TimToady long time no see
rokoteko TimToady: I have no further requirements yet. :) 17:26
TimToady is finally back home, and is down to only 12 days of ir clogs
17:26 _macdaddy joined
TimToady my $*OUT = $handle works for a dynamic scope, but not for subprocesses 17:26
rokoteko TimToady: say $handle.WHAT .. ? 17:27
Str() ?
that was one of the first things I tried, but NYI in rakudo, I guess. 17:28
17:28 Axius joined
[Coke] cheeze it, it's the larry.\\ 17:29
TimToady handle can be an IO returned by open 17:31
17:31 Axius joined
TimToady errand & 17:33
rokoteko TimToady: could you please read the lastlogs for past 30mins. Id appreciate. ie. Im curious how would the IO store the data printed to it and how would retrieve it? that sounds merely like a hack to me.
20:34 here now.. and: 20:03 < rokoteko> how would you: close STDOUT; open STDOUT, ">", \\my $str or die $!; print "foo"; warn "str: $str" ... in perl6? 17:34
[Coke] rokoteko: or you could wait until he catches up, like everyone else. =-) 17:36
rokoteko [Coke]: Sure. I just thought I was lucky to be the last one asking when he happened to appear! 17:37
[particle] was it good luck or bad luck? 17:38
rokoteko [particle]: in case of 'bad' luck, I wouldve said unlucky. :/
But surely, it's not an issue of this second. :) I was just curious. I can wait 6 days (I think TimToady handles 12 days of question in max 6 days).. ;) 17:40
pmichaud rokoteko: I don't think IO by itself acts like a stringbuffer. 17:42
rokoteko pmichaud: me neither.
pmichaud but the way that you would do it would be something like:
my $*OUT = IO::StringBuffer.new(); say; say; say 'what-you-want'; 17:43
i.e., you don't rebind the existing $*OUT -- you just create a new one.
rokoteko how would I restore the old? 17:44
pmichaud you don't have to
rokoteko store it in another IO object?
pmichaud the old one will become visible again when the block exits
rokoteko ahhh.
pmichaud that's kind of the point of dynamic variables
17:44 ruoso joined, perl_4_life joined
pmichaud rakudo: sub foo() { say $*abc; }; my $*abc = 'one'; foo(); { my $*abc = 'two'; foo(); }; foo(); 17:45
p6eval rakudo 811c1c: OUTPUT«one␤two␤one␤»
pmichaud note that when foo() is called from the nested block, it sees the nested declaration of $*abc
but when called from outside of the nested block, it sees the outer one. 17:46
rokoteko pmichaud: ok. and in lexical scope it's not yet known how it's going to work? ie. my $newout = IO::StringBuffer.new(); temp $*OUT = $newout; ? 17:48
pmichaud: did you really mean "my $*OUT = IO::StringBuffer.new();" there ??? 17:49
pmichaud rokoteko: yes.
rokoteko the my $*OUT sounds/looks funny.
pmichaud why?
it's just declaring a new variabled called $*OUT
*variable
that variable hides the previous declaration of $*OUT from the setting
(I don't understand the question about 'lexical scope') 17:50
17:50 Axius joined
pmichaud here's the difference between using 'my' and 'temp' with a dynamic variable 17:51
if I use 'temp', then I'm actually modifying the existing dynamic variable in place
so, for example, temp $*OUT = ... would temporarily set $PROCESS::OUT to a new value, and then restore that value upon scope exit 17:52
however, my $*OUT = ... creates a new dynamic $*OUT variable, leaving $PROCESS::OUT unchanged
PerlJam wonders about the utility of temp these days 17:53
rokoteko both makes $*OUT have the same scope?
pmichaud $*OUT always has dynamic scope -- that's what the * means
17:53 pyrimidine left, pyrimidine joined 17:54 whiteknight joined
pmichaud in my example above, note that $*abc in sub foo() isn't lexical. 17:54
i.e., there's no $*abc lexically declared for sub foo(). 17:55
Khisanth so our got replaced with a splat :) 17:56
pmichaud PerlJam: I agree, 'temp' seems much less necessary or desirable now that we have dynamic vars
Khisanth: not really :)
Khisanth: it's not a package variable, either. :-)
rakudo: class A { method xyz() { say $*abc; } }; { my $*abc = 'hello'; A.xyz(); } 17:57
p6eval rakudo 811c1c: OUTPUT«hello␤»
PerlJam Khisanth: Perl 6 has added (or formalized) a few extra axes for variables. Luckily we have these twigils to help us figure out which axis we're looking at. 17:58
oha PerlJam, i like the idea behind 'let' 17:59
isBEKaml rakudo: my $*foo="foo"; { $*foo = "bar"; say $*foo; }; say $*foo; 18:00
p6eval rakudo 811c1c: OUTPUT«bar␤bar␤»
oha i wonder what would happen to have a sort of committable transaction with threads
isBEKaml rakudo: my $*foo="foo"; { my $*foo = "bar"; say $*foo; }; say $*foo;
p6eval rakudo 811c1c: OUTPUT«bar␤foo␤»
rokoteko { my $oldout = $*OUT; my $newout = IO::StringBuffer.new(); my $*OUT = $newout; say "foo"; my $*OUT = $oldout; } ...
.. hmm. accodring to S32 select() is gone.
revdiablo PerlJam: Do you know offhand where the twigils documented? 18:01
PerlJam revdiablo: S02 18:02
S02:1865 looks like
revdiablo Gracias
Found the relevant section
PerlJam btw, looking at that list of variables .... does $<foo> really belong? Or am I suffering a hobgoblin of foolish consistency? 18:04
TimToady actually, temp on dynamic vars is special; temp $*foo is supposed to really mean my $*foo but initialized to the previous value
rokoteko pmichaud: so my $*var is legal because $* stands for dynamic variable?
pmichaud rokoteko: yes
and in the above
my $*OUT = $oldout;
TimToady dynamic vars are really lexicals that allow themselves to be found dynamically
pmichaud would likely be an error 18:05
(and really isn't needed)
18:05 colomon joined
rokoteko pmichaud: .. unless you want to continue withing the block using the old $*OUT 18:05
TimToady temp/let on dynvars just emulate temp/let semantics using my declarations
pmichaud rokoteko: if that's the case, just create a nested block
TimToady but don't really do the save/restore trick 18:06
let has to copy up to the outer dynvar on success
s/outer/old/
pmichaud rakudo: say 'hello'; { my $*OUT = ...; say 'this goes to the inner $*OUT'; }; say 'this goes to the original $*OUT';
p6eval rakudo 811c1c: OUTPUT«hello␤»
pmichaud a better example might be:
rokoteko TimToady: ok. I dont know of "let" yet. :) 18:07
pmichaud rakudo: say 'hello'; { my $*OUT = $*ERR; say 'this goes to the standard error'; }; say 'this goes to the original $*OUT';
TimToady nobody implements any kind of 'let' yet
p6eval rakudo 811c1c: OUTPUT«hello␤this goes to the standard error␤this goes to the original $*OUT␤»
pmichaud rakudo: say 'hello'; { my $*OUT = open('temp', :w); say 'this goes to the temp file'; }; say 'this goes to original $*OUT'; say slurp('temp'); 18:08
p6eval rakudo 811c1c: OUTPUT«hello␤Operation not permitted in safe mode␤ in 'Safe::forbidden' at line 2:/tmp/Wm9CiXRIdm␤ in main program body at line 22:/tmp/Wm9CiXRIdm␤»
pmichaud bah
rokoteko: anyway, the point is that you don't have to explicitly restore $*OUT
PerlJam TimToady: how useful are the subtle distinctions of temp that they would get such a short keyword?
rokoteko pmichaud: yes, you have a chance to specify a dynamic scope for it. I got it thanks. :)
TimToady PerlJam: huffman is not my only razor. 18:10
18:10 Axius joined
rokoteko rakudo: say 'STDOUT: foo 0'; warn 'STDERR: foo 1'; { my $*OUT = $*ERR; say 'STDERR: foo 2'; }; say 'STDOUT: foo 3'; 18:11
p6eval rakudo 811c1c: OUTPUT«STDOUT: foo 0␤STDERR: foo 1 at line 22:/tmp/loy1LTybO5␤STDERR: foo 2␤STDOUT: foo 3␤»
rokoteko there's something wrong there.
pmichaud ...why? 18:12
gfldex rakudo: grammar Grammar::Foo {
rokoteko rakudo: say "foo 1"; warn "foo 2"; say "foo 3"; warn "foo 4";
p6eval rakudo 811c1c: OUTPUT«===SORRY!===␤Unable to parse blockoid, couldn't find final '}' at line 22␤» 18:13
rakudo 811c1c: OUTPUT«foo 1␤foo 2 at line 22:/tmp/43WEOVje61␤foo 3␤foo 4 at line 22:/tmp/43WEOVje61␤»
gfldex rakudo: grammar Grammar::Foo { token foo { 'foo' }; }; say 'foo' ~~ /^<Grammar::Foo::foo>$/;
p6eval rakudo 811c1c: OUTPUT«===SORRY!===␤regex assertion not terminated by angle bracket at line 22, near "::Foo::foo"␤»
rokoteko pmichaud: ahh. nothing. I somehow misinterpreted the bot earlir. :) thank you a bnuch!
pmichaud gist.github.com/521392 # example for rokoteko
gfldex std: grammar Grammar::Foo { token foo { 'foo' }; }; say 'foo' ~~ /^<Grammar::Foo::foo>$/;
p6eval std 31912: OUTPUT«ok 00:01 117m␤»
PerlJam TimToady: So ... what razor are you using for temp that doesn't slice it from the language? :)
TimToady my wait-and-see razor 18:14
pmichaud PerlJam: "much less useful" doesn't always mean "not useful" :-)
[Coke] ... that would explain the crazy hair.
PerlJam TimToady: good enough for me. :)
rokoteko pmichaud++
PerlJam pmichaud: I know an asymptote when I see one. But maybe I'm wrong. 18:15
pmichaud rokoteko: note that if the nested block calls any functions that do 'print' or 'say', they also use the new value of $*OUT and not the global one
rokoteko this was more trivial than I guessed. :) but Im only at S06, so let's forgive me ;)
pmichaud: yes. I understand the dynamic sence. this is related to the 'lexical scope' question you didn't understand earlier. :) 18:16
pmichaud okay.
good
rokoteko 20:48 < rokoteko> pmichaud: ok. and in lexical scope it's not yet known how it's going to work? ie. my $newout = IO::StringBuffer.new(); temp $*OUT = $newout; ?
where $newout is obviously lexical. but I didnt know yet that you can say my $*OUT = $newout; 18:17
pmichaud TimToady: welcome back
rokoteko .. so Im bit confused what happens to $newout when it falls out of lexical scope. :)
TimToady down to 10 days of backlog...
rokoteko s/6 days/1.5 hours/ 18:18
18:22 ashleydev__ joined 18:23 Packetknife joined
PerlJam rokoteko: it drops beyond the horizon of your light-cone :) 18:23
18:25 mberends joined
rokoteko ahh. So I can see it appearing above the horizon of my heavy-cone where everything is backwards. 18:25
18:25 tadzik joined
oha hi mberends 18:25
tadzik hello
mberends good * :) only 3.5 days backlog to go here... 18:26
pmichaud rokoteko: when $newout falls out of lexical scope, it acts like any other lexical var :-)
down to 33 messages in my inbox! woo hoo!
jnthn o/ mberends
18:27 jferrero joined
rokoteko pmichaud: and at after that point when you say "foo"; it goes back to the original $*OUT ? 18:27
18:28 s1n joined
mberends hi jnthn, should I break out my Java books yet ? ;) 18:28
pmichaud well, that depends on $*OUT more than $newout in your example
from what you wrote, though, the temp on $*OUT goes out of scope at the same time that $newout does
but the restoration of $*OUT to its previous value doesn't have anything to do with $newout
tadzik what happens if 2 modules import themselves, is circular dependency an issue? 18:30
jnthn mberends: Soon. ;-)
rokoteko pmichaud: I think I'll have to wait to be able to experiment with this in practice. :) but as you are the PM, my wish is to prioritize StrPos before and then IO::StringBuffer -- of course after all the other stuff that are more important on your list. :) 18:31
pmichaud: thanks a lots for your time! :)
pmichaud rokoteko: noted, and thanks! 18:32
[Coke] he's just /a/ PM. they grow on trees, you know.
rokoteko As do programmers, if you ask from a PM. ;)
18:32 hercynium joined 18:37 unenana joined
dukeleto pmichaud: i sent you a msg in #parrot, just letting you know :) It is about turning the parrot github account into an org so we can have a proper git mirror of parrot 18:39
PerlJam [Coke]: I haven't seen many Patrick Michauds growing on trees. :) 18:40
18:40 wamba joined
tadzik pb.rbfh.de/zUfzTnk3zJUd -- is it possible to get this to work? 18:40
[particle] there's one here in seattle
avar dukeleto: parrot will be using github? 18:41
[Coke] avar: it's a git mirror of the official svn repo. 18:42
(we're moving to git, but probably not github.) 18:43
(but maybe)
tadzik or another thing: A.pm uses B.pm, B.pm has some exported functions. How to make it possible for the user to use subs from B.pm when using A.pm?
18:46 Mowah joined
Tene tadzik: if you want to use subs from another module without importing them, declare them as 'our sub', and then use a full namespace. 18:47
tadzik: That not working is probably a bug. 18:48
tadzik Tene: my case is the File::Tools distribution. It is going to contain File::Find, File::Copy and few other things. File::Find etc. are separate modules, but I'd be nice when someone uses File::Tools and gets all the subs from all the modules avaiable
Tene tadzik: Check the specs, there's syntac (currently NYI) to indicate that you want things re-exported when using a module. 18:50
18:51 tylercurtis joined
PerlJam [Coke]: If github is good enough for perl 5, it should be good enough for parrot :) 18:52
[Coke] cotto's in charge, I defer to him.
pmichaud dukeleto: okay, I'm still recovering from travel and conferences 18:53
[particle]: ping 18:54
(nm, see /msg)
19:00 blaze joined
blaze Hi 19:00
moritz_ hello
tadzik hi blaze
Guest96786 ohww whats that.. my nick got changed
[Coke] welcome to freenode! 19:01
Guest96786 !nick blaze
#nick blaze
oh... cant change my nick
ok.. comming back to the purpose of being here.. 19:02
[Coke] partcl-nqp: puts stderr what? 19:03
p6eval partcl-nqp: OUTPUT«what?␤»
Guest96786 i was wondering if some one could help me point to a page where there is a comparision between perl5 and perl6
whats been dropped in perl6 and whats added to perl6
[Coke] the synopses themselves are kind of written in that fashion.
moritz_ perlgeek.de/en/article/5-to-6
[Coke] perl6.org -> docs -> synopses.
moritz_ not quite what you want, but does contain some comparison
[Coke] but moritz_'s article's probably much friendlier. =-) 19:04
Guest96786 many thanks moritz_ and Coke
pmichaud Guest96786: just a note, the differences are fairly substantial
tylercurtis Guest96786: perlcabal.org/syn/Differences.html may also be helpful.
Guest96786 thank you too.. l'll go through the page as well 19:05
[Coke] pmichaud: looks like we can get a speedup if we change the one-char substr checks in pct & nqp-rx to be ords instead. do you forsee any issues there? 19:06
19:06 dakkar joined
pmichaud [Coke]: no, but I think we could also get a huge speedup if we had an opcode that could do string comparisons in the middle of a string 19:07
[Coke] (potentially unicode issues, I suppose, depending on how clever we are.)
pmichaud I'm thinking something like $I0 = strcmp $S0, $S1, $I1 19:08
19:08 mberends joined
[Coke] pmichaud: I'll try to remember that one too. 19:08
pmichaud which returns true (or -1,0,1) after performing a string comparison between $S0 and ($S1 starting at offset $I1)
right now pct and nqp have to do a lot of
$S1 = substr target, offset, length of $S0
$I0 = cmp $S0, $S1 19:09
...
which involves creating a lot of extra strings
19:09 thepler joined
pmichaud [Coke]: anyway, patches to use ord instead of single-character substrings are okay with me 19:09
pugssvn r31972 | moritz++ | [S05] specify what .keys, .values and .kv do on Match objects 19:10
[Coke] k. substring is a lot more expensive than it used to be, so this should also help out.
pmichaud right 19:11
[Coke] as should your suggestion. less substrings all around.
pmichaud I did a quick scan of the files in nqp-rx/src/gen to see how many times 'substr' got called, and it was enough to make me say "we could probably avoid a lot of these if we just had a better opcode"
might want it to be 'substrcmp' instead of 'strcmp'
[particle] parrot strings are immutable now, yes? 19:12
moritz_ yes
pmichaud [particle]: yes
[particle] should be a smop creating a new string header that points strstart to the middle of an existing string body
pmichaud [particle]: we do that already
moritz_ still a string header that could be avoided
pmichaud but that still involves creating a string header
[Coke] yes, but why create new headers at all if you don't have to.
[particle] hokay 19:13
[Coke] heh.
pmichaud and since we're talking about creating a new string header at *each* comparison, they can add up.
in particular, consider that every token of a source program ends up with a _lot_ of string comparisons before we figure out which token it is
(because it's not just the tokens that match, but also all of those that fail)
19:15 masak joined
[Coke] moritz_: that phrasing is a little odd. 19:15
masak ahoy!
moritz_ [Coke]: better phrasing welcome
[Coke] moritz_: I don't know what you're trying to say. =-)
just that .keys may return both numbers and strings? 19:16
jnthn ahoj, masak :-)
moritz_ [Coke]: hashes have positional (list) and named (hash) parts
masak jnthn: you want to know how pack/unpack are going? they're going quite well :)
moritz_ [Coke]: I want to say that .kv etc work on both parts
jnthn I was about to termentor you about those. :-)
*tor
[Coke] moritz_: at the same time, yes? so you might get 1, 2, 'spaf', 'baz' ?
masak moritz_: s/involved/involve/
jnthn masak: You got something commited in your branch? 19:17
moritz_ [Coke]: yes
[Coke] s/involved/include/
masak jnthn: a tiddle bittle. will commit more as the evening passes. 19:18
[Coke] "the keys may include both numbers and strings". (not sure identifiers is the right word there.)
jnthn masak: Nice :-)
19:18 justatheory joined
jnthn masak: Let me know if you've anything you'd like me to review. 19:18
masak basically, I just need someone to bounce opinions off right now. 19:19
many small decisions to make along the way.
and I'm trying to grok Perl 5's pack/unpack, I've never done that in depth before.
pugssvn r31973 | moritz++ | [S05] attempt to clarify wording, and add an example 19:23
mberends \\o masak: I'm also very interested in what you're cooking up, and may be able to grok some of the funny binary formats.
masak excellent. then I'll accost either you or jnthn, whatever's convenient. :) 19:24
tadzik github.com/tadzik/perl6-File-Tools -- further ideas welcome
jnthn masak: Feel free. I'm doing Perl 6 hacking this evening anyways. :-)
tadzik moritz_: I borrowed your mkdir-p implementation for this
moritz_ mberends: there was lots of interesting in socket work here while you were gone 19:25
tadzik: feel free
masak tadzik: pls add to pls. :)
tadzik masak: but it has no tests! :(
(yet)
masak tadzik: that's no reason to withhold a good module from the public! :)
tadzik :)
alright, alright :)
masak tadzik: and you can always get the medal later :)
jnthn tadzik: just make a t directory with anything in it and you still get teh medal.
Uh, I mean... :-) 19:26
masak that page updates regulatly.
tadzik: or what cheating jnthn said :)
jnthn <innocent look>
tadzik masak: so it's ok to remove File::Find now?
masak tadzik: I have a feeling I'm the wrong person to ask that.
tadzik: why do you want to remove it?
tadzik masak: for it's in File::Tools now 19:27
masak tadzik: ah, ok.
tadzik: did you write File::Find?
tadzik masak: yep
masak then go right ahead.
tadzik it has a watcher, what to do :O
oh, it hasn't *relief* 19:28
tadzik must remember to pull before commiting 19:29
moritz_ tadzik: you'll get a friendly [rejected] if you don't :-) 19:30
tadzik moritz_: To be honest, I find it really unfriendly. Who likes to be rejected? :(
moritz_ tadzik: think of it this way: it means that somebody else has done some work for you in the meantime 19:31
tadzik :)
19:33 mgrabovsky joined 19:35 mgrabovsky left
tadzik sorry for the paste 19:35
> use File::Find; find(:dir<t/dir1>).elems
6
> use File::Find; find(:dir<t/dir1>).sort.elems
7
bug?
it has an additional Any() 19:36
using pmichaud++ range branch, if relevant
moritz_ might be relevant
tadzik let me recompile then
moritz_ try my @a := find(:dir<t/dir1>); say @a.perl; say @a.sort.perl; 19:37
tadzik # On branch master # Your branch is ahead of 'origin/master' by 10 commits.
weird
moritz_: one Any() more
as I said
moritz_ tadzik: well, you exected find() twice (so changes in the file system could change things)
I'm sure there's a bug somewhere 19:38
tadzik any idea about this git? :|
moritz_ masak: any reason why bin/ufo is not executable? 19:39
masak moritz_: nope. let me fix that immediately.
pmichaud (extra Any) sounds familiar... I'm pretty sure the range branch still has a couple of bugs (which is why it hasn't merged to master)
tadzik moritz_, masak: this commiting-via-github broke that
moritz_ ah
tadzik maybe a githb bug, or a feature 19:40
pmichaud af 19:44
*afk
tadzik alright, works on master 19:47
19:51 Packetknife joined
dalek ok: 48d3cb3 | moritz++ | src/grammars.pod:
[grammars] some simplifications; try to be clearer on .ast
19:55
19:56 offerkaye joined, isBEKaml left
moritz_ everybody, please test rakudo on top of the gc_threshold_tuning parrot branch 19:56
and report your findings to chromatic on #parrot, or to me
19:59 pyrimidine left, pyrimidine joined
colomon moritz_: can you tell us more? 19:59
TimToady <masak> by the way, what's so great about .parsefile that .IO.slurp.parse doesn't do? 20:02
set the filename for error messages, mainly
masak fairy nuff.
moritz_ trac.parrot.org/parrot/ticket/1737 colomon, that's the longer story
I guess in theory it's also easier to get .parsefile lazy 20:03
masak TimToady: what's an example of an error message occurring from within a grammar that would merit from having a file name of the file parsed included in it? 20:04
moritz_: that would require some nice hooks down into nqp-rx.
TimToady masak: uh, any error message from a file that could also be forcing the compilation of subfiles? The user generally likes to know which file failed. 20:07
colomon moritz_: so this is another optimization, not one of the ones chromatic has been tweeting about this week? \\o/
masak TimToady: the closest I can get to picturing this is a &die call inside a {} in a rule. how to automatically get the .parsefile file name in there? 20:09
20:10 jaldhar joined
Tene masak: can you give me an example of an error message that would benefit by *not* having the file name included? 20:11
TimToady masak: the locmess method pulls it out of $*FILE<name>
masak TimToady: oh, ok. 20:12
Tene: it might be a file that the user doesn't know about and doesn't need to know about. 20:13
20:14 _jaldhar joined
masak by the way, over lunch I came to talking about dynamic/contextual variables with a friend of mine. the question that came of of that was: why does contextuals lookup have to go through successive OUTER:: scopes? couldn't the runtime just keep a single hash of stacks behind the scenes, and just do dynamic lookup on that hash? 20:16
20:17 Italian_Plumber joined
nperez optimization? 20:17
masak I hope it's an optimisation. many lookups would probably be faster that way. 20:18
there's a slight bureacracy overhead at block entry and exit, I guess. 20:19
nperez right. no I believe I agree with you, just saying it might be premature, thats all :)
masak I agree, it might. 20:20
I should try it both ways with Yapsi.
when I get to dynamic variables.
but it's not hard to imagine that 100 stack frames down into a recursion, the single hash lookup might be faster than 100 hash lookups :) 20:21
TimToady readonly dynvars can easily be cached locally, much like env vars 20:23
and the main point of doing it this way is to avoid globals so we don't get threading issues 20:24
20:24 Holy_Cow joined
TimToady we automatically get thread-local storage this way 20:24
masak readonly dynvars? 'constant $*foo := 42;'? 20:26
TimToady my $*foo ::= 42;
masak ah.
right, ::= means 'readonly' nowadays, not 'compile-time'. 20:27
TimToady and for rw vars you can cache the location at least
so you only have to chase up the stack on first ref
masak where's the cache situated? hooked onto the block?
TimToady it can just be in a sekrit part of the lexpad 20:28
20:28 ruoso joined
TimToady just as first ref to OUTER::OUTER::OUTER::<$foo> puts a secret $foo into the current pad 20:29
masak std: my $*foo; { say $*foo; my $*foo }
TimToady std: my $foo; {{{ $foo; my $foo }}}
p6eval std 31912: OUTPUT«ok 00:01 114m␤»
std 31912: OUTPUT«[31m===[0mSORRY![31m===[0m␤Lexical symbol '$foo' is already bound to an outer symbol (see line 1);␤ the implicit outer binding at line 1 must be rewritten as OUTER::OUTER::OUTER::<$foo>␤ before you can unambiguously declare a new '$foo' in this scope at /tmp/sa9gYIOwjq line
..1…
TimToady except of course that dynamic vars are dynamic
masak :)
20:30 jhuni joined
masak std: { say $foo; say $^foo } 20:30
TimToady so I think it will be possible to implement them efficiently
p6eval std 31912: OUTPUT«[31m===[0mSORRY![31m===[0m␤Variable $foo is not predeclared at /tmp/8taw5b2bQN line 1:␤------> [32m{ say $foo[33m⏏[31m; say $^foo }[0m␤Check failed␤FAILED 00:01 114m␤»
masak std: { say my $foo; say $^foo }
p6eval std 31912: OUTPUT«[31m===[0mSORRY![31m===[0m␤$foo has already been used as a non-placeholder in the surrounding block,␤ so you will confuse the reader if you suddenly declare $^foo here at /tmp/gakQyw7Wzz line 1:␤------> [32m{ say my $foo; say $^foo[33m⏏[31m }[0m␤Potential difficulties:␤
..$…
TimToady snickers
masak 'confuse the reader' :)
I'm happy about now implementing lexicals efficiently in Yapsi. I wonder if any other Perl 6 implementation does that currently. 20:31
tylercurtis masak: Bennu implements them fairly efficiently to the extent that it implements them at all. :) 20:32
masak please tell me more.
tylercurtis Well, if you don't actually implement lexical closures... or containers... or multiple assignment... it's really easy to implement lexical variables efficiently. 20:34
sorear good * #perl6 20:35
Are the rules about exactly *what* \\w \\d \\s \\v et al match documented anywhere?
20:36 KenGuru joined
masak sorear: the corresponding Unicode traits? 20:36
sorear moritz_: ok, I'll put string escape sequences high on my list then. :) 20:42
[Coke]: I did mean Perl 5, although it would have been more correct to say "parrot's current object system's design"
dukeleto pmichaud: cool, thanks. There is no rush. 20:44
sorear alester: I use the vim-perl6 modules. My only complaint is that editing gets laggy in files over 500 lines or so; I don't suppose it would be possible to put in some kind of #vim: this line is outside any function, regex, comment, or string and can be used as a sync point marks? 20:45
alester I don't know. 20:46
Make a ticket for it in github and then I have a place to remember.
sorear pmichaud: ISTR TimToady saying something along the lines of temp $*foo being sugar for my $*foo = CALLER::<$*foo>; as a special case, *not* actually changing the old dynamic var 20:48
20:49 ashleydev_ joined
TimToady I made that point later in the backlog 20:50
20:51 plluksie joined
sorear pmichaud: Note that #parrot-land recently experimented with removing strstart and buffer sharing entirely. It's a significant win except for PCT. 20:53
masak: The corresponding unicode traits are quite obviously wrong for this. (U+000A is not Space) 20:56
[Coke] sorear: I'm not sure I would claim the original object system was designed with any goals in mind, other than a hatred of objects.
masak sorear: no? I thought it was \\v
and hence \\s
[Coke] and that wasn't a goal so much. ;)
sorear U+000A is Cc (OtherControl) 20:57
masak I guess it's an exception, then.
there might be a finite number of those :P
sorear yeah 20:58
TimToady we force the traditional properties within the ASCII range
sorear I'd like a complete list ;)
TimToady nothing outside of 0..127 is forced, iirc
sorear \\w = N + L, \\d = N, what are \\s \\v? 20:59
\\h too
masak sorear: PGE has the complete list. 21:00
sorear: I can give you the URL if you want.
in fact, GGE has it too, but nicer :)
TimToady each \\s is either \\h or \\v; the only surprising one (to some folks) is that CR is considered \\h 21:01
rokoteko am I supposed to receive all the possible documentation when checking out Rakudo star from github, or do you have some share secrets somewhere? not talking about Synopsis etc, but just the actual implementation/ideas docs... ?
21:02 kst joined
tadzik when are filehandles autoclosed? 21:02
cxreg when they're ajar
no wait, wrong joke
masak sorear: github.com/masak/gge/blob/master/li...gex.pm#L20
rokoteko: not much of that, I'm afraid. most user documentation simply isn't written yet. 21:03
rokoteko: best you can do is probably read the Advent Calendar and/or moritz_++'s p5-to-p6 stuff.
sorear tadzik: Process exit.
Nobody's come up with a better answer yet 21:04
tadzik thanks sorear
masak nobody really knows how DESTROY will work under a non-refcounting GC, it seems.
rokoteko masak: I was meaning over-all documentation. Lately Ive found myself browsing through Perl-Pugs docs to learn about how things really are/could/should be implemented. they are way more extensive than what I receive with rakudo star.
sorear At one point somebody (moritz?) recommended switching to a completely synchronous garbage collector, allowing filehandles to be reclaimed when they go out of scope
PerlJam sorear: does that imply a gc run at the end of every scope ? 21:05
masak rokoteko: if there's anything that you would have liked us to have included in Rakudo Star, I'm sure people here will be happy to hear it.
rokoteko masak: .. closest to that (in rakudo) are the core thingies written in perl6, which are quite self-explanatory, after you learn the syntax.
tadzik masak: what do you think about github.com/tadzik/ufo/commit/4a9a5195 ?
masak looks 21:06
tadzik: that makes a whole lot of sense.
tadzik I had some serious headscratching while inlining ufo in neutro, to avoid a dependency. Seriously, took me like an hour to figure it out with a help from someone I don't rememer who is 21:07
run 'make' was then failing, but only in that process
masak: pull request?
masak tadzik: yes please. 21:08
a bit busy with pack/unpack right now, but will pull later.
tadzik masak: done. Sure thing, no need to hurry
oh wait, I think I sent you pull for a wrong repo 21:09
tadzik--
rokoteko masak: well. I got about a year old Perl6-Pugs-6.2.13 downloaded at my current irc host. Ive been browsing through the docs/ dir. maybe you should take a look at there also. in rakudo I miss stuff like notes/ dir, not to mention all the random "what to read" files. etc random thoughts. I just wondered if they are not included in the rakudo package, but instead you store them somewhere else (not publicly available).
PerlJam doesn't grok "not public available"
rokoteko maybe something like docs/unofficial/ in the distro, where the developers can let their thoughts flow?
PerlJam publicLY even 21:10
masak rokoteko: Rakudo != Pugs
so Pugs having a given type of docs does not automatically mean that Rakudo has them.
rokoteko I was just curious how the dev people share the thoughts if they are not in the distro. :) 21:11
masak that said, yes, we do keep some planning/roadmap/design docs in Rakudo's docs/ folder.
PerlJam rokoteko: here :)
masak rokoteko: what PerlJam said.
rokoteko ok. 21:12
pugssvn r31974 | lwall++ | [STD] warn on smartmatch of Bool::True and Bool::False as well
[Coke] I think if you want insight into the minds of the developers, this channel is probably the best bet I've seen.
sorear huh, it appears that GGE doesn't actually implement \\w anywhere 21:13
21:13 Mowah joined
sorear or rather, it translates it to ~~ /\\w/ in the output perl6 21:13
[Coke] GGE?
PerlJam rokoteko: also, if it's speculation on the design, some of that ends up in the synopses
masak sorear: right. cheating there. sorry 'bout that. 21:14
sorear: the README lingers a bit on that.
sorear [Coke]: github.com/masak/gge
[Coke] misses having an infobot.
masak likes the peace and quiet
purl--
KenGuru i'm improving my vim skills (i'm a newby so far), and would like to use rakudo with vim. is there a plugin (not the syntax coloring one) for code completion, and compilation? 21:15
jnthn An infobot that responded only when talked to would be bearable. 21:16
purl, OTOH... :-)
sorear masak: this COOLTHINGS makes me wonder if gge and yapsi are related
KenGuru I'm currently using the most current cream install 7.3 beta
masak sorear: they used to be, more than they are now.
sorear: gge definitely led to yapsi, but I don't see yapsi really needing gge any more.
sorear jnthn: I was the maintainer of one 3 years ago. Check /mode #perl6 +b, I think it's still in the list
masak sorear: largely thanks to the advances in nqp-rx. 21:17
[Coke] jnthn: "speak only when spoken to" is fine.
or a glossary linked to in the topic. =-)
sorear yep, she's still in the ban list 21:18
twice.
masak lamdabot? 21:19
s/md/mbd/ 21:20
KenGuru any vim user out here?
[Coke] hai. 21:21
masak \\o
offerkaye yes but a noob
[Coke] but I don't have an answer to your autocomplete question.
I don't have that for /any/ languages.
tadzik I liked it when I installed it, but have it for variable names and stuff 21:22
KenGuru ok, the autocomplete shouldnt be the prob
tadzik actually, it just completes works
KenGuru ok, then i should only have a look at how to configure vim the right way for executing the files with rakudo 21:23
dwierenga KenGuru: IIUC then ":h make" inside Vim should get you started 21:24
tylercurtis rakudo: role A { has $!foo; }; role B { has $!foo; }; class C does A does B; say 'alive';
p6eval rakudo 811c1c: OUTPUT«===SORRY!===␤Attribute '$!foo' conflicts in role composition␤»
KenGuru whats ILUC?
Tene IIUC = If I Understand Correctly 21:25
dwierenga KenGuru: If I Understand Correctly
tylercurtis rakudo: role A { my $!foo; }; role B { my $!foo; }; class C does A does B; say 'alive';
p6eval rakudo 811c1c: OUTPUT«===SORRY!===␤Lexical 'self' not found␤»
KenGuru japp
ok
masak rakudo: role A { my $!foo }; class C does A {} 21:26
p6eval rakudo 811c1c: OUTPUT«===SORRY!===␤Lexical 'self' not found␤»
masak tylercurtis: known bug?
tylercurtis rakudo: role A { has $!foo; }; role B does A {}; role C does A {}; class D does B does C {}; say 'alive'; 21:27
p6eval rakudo 811c1c: OUTPUT«alive␤»
tylercurtis masak: Don't know. 21:28
21:28 rgrau_ joined, milki_ joined
masak submits rakudobug 21:29
rakudo: role A { my $!foo }; say "alive"
p6eval rakudo 811c1c: OUTPUT«alive␤»
masak rakudo: role A { my $!foo }; say A.new; say "alive"
p6eval rakudo 811c1c: OUTPUT«Lexical 'self' not found␤ in <anon> at line 10:/tmp/zY15QXjyOi␤ in main program body at line 1␤»
masak interesting.
21:31 cosimo_ joined, Juerd_ joined, pmichaud_ joined, pochi_ joined, frettled_ joined 21:33 oha_ joined, ashleydev__ joined
masak observe how those are actually two types of errors. is the first parse-time and the second run-time, or something? 21:34
21:34 dual_ joined
tylercurtis ::?CLASS is NYI, right? 21:34
masak right.
21:34 Helios joined, x3nU joined 21:35 LionMade0fLions joined, jnthn_ joined, dakkar joined, Helios joined
tadzik holy crap 21:36
is anyone alive? 21:37
squeeky they might be having dinner, or a pint. or both.
offerkaye I'm alive, but dead tired :) good night! :)
tadzik o/ :) 21:38
Tene tadzik: what's up? 21:39
21:39 azert0x joined, buubot joined, Helios joined, dakkar joined, jnthn_ joined, LionMade0fLions joined, oha_ joined, frettled_ joined, pochi_ joined, pmichaud_ joined, cosimo_ joined, milki_ joined, kst joined, KenGuru joined, jhuni joined, Italian_Plumber joined, pyrimidine joined, masak joined, thepler joined, mberends joined, tylercurtis joined, s1n joined, nperez joined, payload joined, spq1 joined, exodist joined, krakan joined, meteorjay joined, baest joined, araujo joined, Patterner joined, mtve joined, meinwald joined, astinus joined, cono joined, Intensity joined, arnsholt joined, TimToady joined, Sarten-X joined, wayland76 joined, proller joined, yves joined, HarryS joined, rhr joined, spinclad joined, tylerni7 joined, xinming joined, lue joined, takadonet joined, perlygatekeeper joined, dalek joined, BooK joined, sjohnson joined, mantovani joined, imarcusthis joined, p6eval joined, pjcj joined, mdxi joined, slavik joined, hillu joined, tomaw joined, melte joined, allbery_b joined, jasonmay joined, saaki joined, zostay_ joined, snarkyboojum joined, eternaleye joined, [particle] joined, pragma_ joined, Eevee joined, jdv79 joined, jettero joined, szabgab joined, buu joined, ascent_ joined, shelling_lab joined, cibs joined, Khisanth joined, _sri joined, lucs joined, avuserow joined, kirillm joined, au|irc joined, rcfox joined, spacebat joined, ingy joined, fridim joined, mmmpork joined, hugme joined, BinGOs joined, shabble joined, peters_mops joined, chitragupt joined, japhb joined, grew joined, wolverian joined, nadim joined, PerlJam joined, cmadsen joined, infrared joined, cj joined, gfldex joined, zachy joined, cxreg joined, Getty joined, kolibrie joined, jjore joined, zby joined, fda314925 joined, sbp joined, phenny joined, Gothmog_ joined, Bucciarati joined, dimid joined, revdiablo joined, frodwith joined, m6locks joined, lestrrat joined, mulander joined, mathw joined, gabiruh joined, cotto joined, tewk joined, perigrin joined, sunnavy joined, szbalint joined, diakopter joined, sorear joined
tadzik Tene: the sky has fallen! /o\\ 21:39
21:40 ingyfoo joined, perigrin_ joined 21:41 kolibrie_ joined, mmmpork_ joined, tewk_ joined, cottoo joined, imarcust1is joined, pmichaud joined, pochi joined, mdxi joined, jettero joined, mtve joined, chitragupt joined, Sarten-X2 joined 21:42 phenny joined, meteorjay joined, buubot joined, cmadsen joined, c0nspiracy_ joined 21:43 moritz_ joined, c0nspiracy__ joined
masak rakudo: sub foo { gather { say "OH HAI"; take 42 } }; my $value = foo; say "before"; say $value 21:44
p6eval rakudo 811c1c: OUTPUT«before␤OH HAI␤42␤»
masak oha++ taught me that trick :)
a lazy scalar.
tadzik I don't get it 21:45
oh, I get it
21:45 sunnavy joined, cj joined
masak I hadn't realized gather would work on scalars. 21:46
21:46 saaki joined
tylercurtis rakudo: my $foo = gather { say "evaluating"; take 42; }; say 'in the beginning'; my $a = $foo; say 'in the middle'; my $b = $foo; say 'in the end'; say $a; say $b; 21:48
p6eval rakudo 811c1c: OUTPUT«in the beginning␤in the middle␤in the end␤evaluating␤42␤42␤»
tylercurtis rakudo: my $foo = gather { say "go"; 42 }; say $foo.WHAT 21:49
p6eval rakudo 811c1c: OUTPUT«List()␤»
masak Lists are wondrous beasts.
tadzik six six six, the number of the List9) 21:51
oh noes, I has failed
pmichaud it's not really a scalar -- it's a list containing a scalar. :)
masak a scalar variable containing a list containing a scalar :) 21:52
pmichaud rakudo: my $foo = gather { say 'something'; take 42 }; say $foo ~~ Int;
p6eval rakudo 811c1c: OUTPUT«0␤»
masak ah, that's why it works. I feel better now.
sorear is annoyed at System.Collections.BitArray and non-Perl culture in general 21:55
I want to use bit sets as keys in a hash table.
This came completely for free with vec 21:56
21:59 pyrimidine left
masak right, &vec! I forgot about that one. 22:03
should Perl 6 have one of those?
it should probably work on Buf as well...
tylercurtis masak: by the way, regarding the difference in error for roles with my attributes between role A {...}; A.new; and role A {...}; class B does A {...};, I have a guess that may be incorrect: it's because in the former case, the class that the problem is occurring in is created at runtime, whereas in the latter, the composition of the role occurs at compile-time.
masak tylercurtis: yes, I think that is so. 22:04
when we can do real Proxy objects with STORE, we could even get the lvalue form of &vec to work \\o/ 22:06
sorear I'd be happy with the four-arg form of &vec 22:07
masak perldoc doesn't mention such a form. are you thinking of substr? 22:08
sorear (vec doesn't actually have a four-arg form, but substr and splice do, and there's an obvious mapping)
masak right.
ooh! all of these three do the same, don't they, but on different data structures. 22:09
that's very pretty.
hm, I guess &vec is the odd one out, since it doesn't expand/collapse data.
masak --> sleep 22:10
22:11 tom_tsuruhara joined
tadzik Perl articles can be easily recognised on reddit. They have slightly less downvotes than upvotes, and 90% of the comments are trolling downvoted beyond treshhold 22:20
22:24 mac| joined
mac| hiho 22:24
22:24 Packetknife joined
tadzik mac|: o/ 22:25
22:28 kst joined 22:53 rindolf joined
rindolf Hi all. 22:53
tadzik hey rindolf
22:54 Chillance joined
mac| is going to bed. G'nite for every1! 23:06
23:07 risou joined
rindolf tadzik: what's up? 23:10
tadzik rindolf: insomnia, as usual :)
rindolf tadzik: ah.
tadzik the thin line between "I don't feel like coding anymore" and "I'm sleepy"
this thin line happens tobe pretty thick in my case 23:11
ingy rakudo: say foo => 'bar'
p6eval rakudo 811c1c: OUTPUT«Unexpected named parameter 'foo' passed␤ in 'say' at line 5179:CORE.setting␤ in main program body at line 22:/tmp/XHvKXcvp0Y␤»
tadzik on the night of 2010.07 release I was looking at the irc the whole night, then on 4 AM decided I won't sleep today and got out bikiing
ingy rakudo: say(foo => 'bar') 23:12
p6eval rakudo 811c1c: OUTPUT«Unexpected named parameter 'foo' passed␤ in 'say' at line 5179:CORE.setting␤ in main program body at line 22:/tmp/uCDMVKbW8Z␤»
ingy star: say(foo => 'bar')
p6eval star 2010.07: OUTPUT«Unexpected named parameter 'foo' passed␤ in 'say' at line 5066:CORE.setting␤ in main program body at line 22:/tmp/SeosE9YJkP␤»
tadzik rakudo: say (foo => bar)
p6eval rakudo 811c1c: OUTPUT«Could not find sub &bar␤ in main program body at line 22:/tmp/NhKRgUobc1␤»
tadzik oh 23:13
rakudo: say (foo => 'bar')
p6eval rakudo 811c1c: OUTPUT«foo bar␤»
tadzik ingy: is that what you expected?
23:13 tylercurtis joined
pmichaud rakudo: say 'foo' => 'bar' 23:14
p6eval rakudo 811c1c: OUTPUT«foo bar␤»
23:14 orafu joined
tadzik time to sleep. g'nite #perl6 23:16
23:25 greatflamingfoo joined 23:27 estrabd joined 23:41 ashleydev_ joined 23:43 ashleydev__ joined 23:44 ashleydev__ joined