Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2011-06-15

Perl 6 | Reference Documentation | Rakudo

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:14 takadonet joined #perl6
00:21 clkao left #perl6
00:26 lumi_ left #perl6
00:27 lumi_ joined #perl6
00:31 dalek rakudo/nom: 969bd88 | jnthn++ | src/Perl6/Actions.pm:
00:31 dalek rakudo/nom: Fix braino with storing subset name.
00:31 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/969bd88af7
00:31 dalek rakudo/nom: c19d81d | jnthn++ | src/binder/bind.c:
00:31 dalek rakudo/nom: Toss a couple of unused statics.
00:31 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/c19d81d004
00:31 dalek rakudo/nom: 5a08e61 | jnthn++ | src/ (8 files):
00:31 dalek rakudo/nom: Wire up **@foo to make a LoL.
00:31 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/5a08e61521
00:33 sorear *envy*
00:39 jnthn pmichaud: This much works:
00:39 jnthn > sub foo(*@x) { say @x.HOW.name(@x) }; foo(1,2,3)
00:39 jnthn Array
00:39 jnthn > sub foo(**@x) { say @x.HOW.name(@x) }; foo(1,2,3)
00:39 jnthn LoL
00:39 jnthn pmichaud: Note that .WHAT is busted... :/
00:39 jnthn oh, no wonder...
00:40 sorear is WHAT really busted, or just WHAT.Str?
00:40 jnthn sorear: the latter
00:40 sorear also
00:40 jnthn sorear: .WHAT would be hard to be busted since it's mostly just a pointer follow :)
00:40 sorear jnthn: I take it you've finally figured out the correct semantics for **@x
00:40 sorear jnthn: I have learned never to call a bug impossible :)
00:41 jnthn sorear: Actually pmichaud++ asked me to write up the binder.
00:41 sorear Plural you.
00:41 jnthn sorear: er, *wire up*
00:41 jnthn sorear: ah, OK :)
00:41 jnthn english-- :)
00:42 sorear heh.  maybe I should say thou when I mean thou, it would no doubt annoy thou...
00:43 sorear +but
00:43 jnthn ;)
00:43 TimToady well, plural you should be ye
00:45 pmichaud I thought I fixed WHAT earlier today
00:45 pmichaud which part is busted?
00:46 sorear jnthn: 'method trymop($f) { unless try { $f(); True } { self.sorry($!) }; }' :)
00:51 jnthn pmichaud: see push
00:51 jnthn sorear: \o/
00:52 dalek rakudo/nom: 716ffd2 | jnthn++ | src/core/ (3 files):
00:52 dalek rakudo/nom: Various stringificaiton fixes.
00:52 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/716ffd24ae
00:52 sorear jnthn: How well does the nom GLOBAL merger handler cyclic package graphs?
00:52 jnthn pmichaud: Missing: src/core/LoL.pm :)
00:52 jnthn sorear: Given it represents about 10 minutes of coding time, probably horrendously at the moment. :)
00:53 jnthn sorear: Example?
00:53 jnthn (not sure I'm thinking what you are...)
00:54 pmichaud jnthn: I don't have a LoL.pm yet, you can stub an empty one.  I'm hoping to have one tomorrow (maybe tonight even)
00:55 jnthn pmichaud: No hurry for it.
00:55 sorear Foo.pm: class Foo { }
00:55 sorear Foo/Bar.pm: class Foo::Bar { use Foo :OUR }
00:55 jnthn pmichaud: As in, no more urgent that then time scale you just suggested. :)
00:56 pmichaud jnthn: oh.  Yeah, I hadn't had a chance to review/fix the bogus Str() methods yet.
00:57 sorear niecza has a rather ugly solution involving special "graft" nodes in the metapackage graph
00:57 jnthn pmichaud: Just done the ones a quick search showed up.
00:57 pmichaud right
00:57 pmichaud that's something we'll probably have to watch
00:57 jnthn sorear: I suspect ESTACKOVERFLOW
00:57 pmichaud or write tests for, more likely
00:57 sorear note that while cycles are the worst case, they aren't the most common corner case
00:57 jnthn sorear: Apart from...no :OUR in use yet :)
00:58 sorear class Foo is export { } creates Foo, EXPORT::DEFAULT::Foo, and EXPORT::ALL::Foo as synonym
00:58 pmichaud we should run through all of the builtin types and verify that .Str works on the type objects.  :-)
00:58 jnthn sorear: Have you added above to the spectest at all?
00:58 sorear jnthn: no, because I'm not really sure what it should do
00:58 jnthn sorear: oh, OK :)
00:58 sorear the obvious answer is Prolog-style unification
00:58 sorear but blech
00:59 jnthn sorear: Not sure where you're going with the export one, since EXPORT is lexical.
00:59 jnthn e.g. we never have to merge EXPORT
00:59 jnthn Unless people go writing our package EXPORT { } somewhere... :/
01:00 sorear there are situations where merging lexical packages is necessary
01:01 sorear at least, importable lexical packages
01:01 sorear hmm
01:01 sorear EXPORT is never importable, is it?
01:01 jnthn I'm not convinced on merging lexical packages yet.
01:02 sorear A.pm: my class A { }
01:02 sorear B.pm: use A; class A::B is A { }
01:02 sorear C.pm: use A; class A::C is A { }
01:02 sorear main: use A; use B; use C; # what's in A:: ?
01:04 * jnthn wonders what nom's merge does with that today...
01:04 donri left #perl6
01:04 noganex left #perl6
01:05 jnthn though ooc...
01:05 donri joined #perl6
01:05 jnthn nom: my class A { }; class A::B { }; class A::C { } # I hope at least this is OK...
01:05 p6eval nom:  ( no output )
01:06 noganex joined #perl6
01:07 jnthn oh heh
01:07 jnthn nom's import is an epic cheat today
01:08 jnthn The answer to "what would it do" today though, from looking at the code...
01:08 jnthn ...is that use B would cause it to create GLOBAL::A::B.
01:08 jnthn And the global merger would have no clue about the lexical A
01:09 jnthn So it'd "work out" in the global merge but the leixcal A that was imported would hide the GLOBAL A that the global merger stuck in place.
01:10 jnthn Not particularly suggesting that's great behavior. :)
01:10 jnthn Guess we can only prevent people from shooting themselves in the foot so much...
01:11 lumi_ left #perl6
01:12 lumi_ joined #perl6
01:12 jnthn OK, enough for tonight.
01:12 dalek rakudo/nom: a16dfeb | jnthn++ | NOMMAP.markdown:
01:12 dalek rakudo/nom: Update nommap.
01:12 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/a16dfebe74
01:12 tokuhirom joined #perl6
01:14 yinyin joined #perl6
01:14 takadonet left #perl6
01:15 jnthn &
01:16 whiteknight left #perl6
01:20 woosley joined #perl6
01:21 cotto left #perl6
01:24 icwiener joined #perl6
01:24 icwiener left #perl6
01:24 icwiener joined #perl6
01:27 icwiener_ left #perl6
01:29 lumi_ left #perl6
01:30 lumi_ joined #perl6
01:39 icwiener left #perl6
01:51 ingy left #perl6
01:56 lumi_ left #perl6
01:57 lumi_ joined #perl6
02:02 Tene left #perl6
02:02 ingy joined #perl6
02:03 ingy left #perl6
02:14 ingy joined #perl6
02:31 daniel-s_ joined #perl6
02:33 lichtkind left #perl6
02:36 lumi_ left #perl6
02:36 araujo left #perl6
02:37 lumi_ joined #perl6
02:37 araujo joined #perl6
02:39 cooper left #perl6
02:39 cooper joined #perl6
02:43 daniel-s_ perl6: my @a = (1, 2, 3); my $b = @a; say $b;
02:43 p6eval pugs, rakudo ae5bea, niecza v6-153-g6cb84d6: OUTPUT«1 2 3␤»
02:49 cooper is it normal for rakudo to use extreme amounts of memory?
02:49 colomon cooper: probably.  what are you doing?
02:49 yinyin left #perl6
02:50 cooper colomon: it's an extremely simple IRC bot, and it's using more RAM than everything else on my system combined
02:50 colomon has it been running for a while?
02:50 cooper only a few minutes
02:50 yinyin joined #perl6
02:51 cooper even if run rakudo at all `perl6` (the prompt thing)
02:51 cooper it uses like 90mb ram almost
02:51 colomon oh, sure, I'd expect 90mb there.
02:51 cooper really? it seems prettyyy high to me
02:52 cooper is there a more resource-friendly interpreter that you would suggest?
02:53 colomon give me a moment
02:55 s1n left #perl6
02:55 s1n joined #perl6
02:56 colomon I verify the 87.2 MB running rakudo prompt, 47.2 running niecza.
02:57 colomon so you could try niecza
02:57 clkao joined #perl6
02:57 cooper i will do that, thank you
02:58 alyx o_o
02:58 colomon I have to admit that even 90 MB is lost in the shuffle on my machine -- Safari, Firefox, Chrome, iTunes, Parallels, etc are all using more than that.
02:58 obra joined #perl6
02:59 alyx When will perl6 have a nice small interpreted like perl5 does? :(
02:59 obra left #perl6
03:00 colomon alyx: no idea.  I think speed is likely to be a higher priority in the short term.
03:01 alyx colomon: speed is nice, but not useful if you can't even run the interpreter. :P
03:01 TimToady the two tend to go together though
03:01 cooper yeah
03:01 cooper yes, it is hardly worth using a language whose interpreter eats so much memory :(
03:01 alyx -/+ buffers:                 97            5
03:01 cooper and on some systems you might not even be able to !
03:01 alyx I cannot run either interpreter. This causes speed to be a very low priority. :P
03:02 TimToady making it faster will very likely make it much smaller too
03:02 alyx TimToady: \o/ that would be awesome. Small and fast would be lovely.
03:02 cooper TimToady: but no Perl 6 interpreter will as light as a perl
03:02 cooper +be
03:03 cooper if it is i'll be dead by then
03:03 TimToady but a compiled p6 program might be
03:03 alyx cooper: hopefully it won't be as bad as Ruby! :P
03:03 cooper :P
03:03 TimToady p5 has a lot of cruft to, it's all just buried deep in C code
03:04 TimToady *too
03:04 daniel-s_ perl6: my @a = (1, 2, 3); my $b = @a; $b.perl.say;
03:04 p6eval pugs, rakudo ae5bea, niecza v6-153-g6cb84d6: OUTPUT«[1, 2, 3]␤»
03:04 TimToady there are ways in which the p6 design is much cleaner
03:04 TimToady in the long run this will make it much more optimizable than p5
03:04 alyx it may be dirtier, but at least it's usable. :P
03:04 alyx ooh, nice
03:05 TimToady p6 is usable now, for some definitions of usable not including ancient hardware, alas
03:05 TimToady and some definition of fast that isn't :/
03:05 TimToady but it's getting better
03:06 TimToady I think people will end up liking p6 better than DNF.
03:06 alyx DNF?
03:06 jaldhar joined #perl6
03:06 TimToady They rushed Duke Nukem Forever out the door too soon.  :)
03:07 alyx xD
03:07 alyx TimToady: it only took a decade!
03:08 colomon afk # bed
03:08 TimToady o/
03:08 alyx night colomon
03:08 cooper night
03:11 lumi_ left #perl6
03:11 takadonet joined #perl6
03:12 lumi_ joined #perl6
03:13 kevin_ joined #perl6
03:16 kevin_ left #perl6
03:16 [particle] left #perl6
03:17 starcoder alyx | cooper: hopefully it won't be as bad as Ruby! :P
03:17 starcoder Ruby's not that bad, actually
03:17 [particle] joined #perl6
03:17 cooper yes, it is nice that we live where we can share our opinions
03:17 alyx starcoder: RoR uses more memory than Java.
03:17 alyx starcoder: I consider this "Bad"
03:18 starcoder you didn't say RoR
03:18 starcoder :P
03:18 alyx starcoder: Ruby is also not particularly friendly with the resources on its own
03:18 alyx starcoder: but then, given that I can indeed run Ruby on Jirachi, whereas I cannot run either of the seemingly popular Perl6 implementations, why am I complaining? :P
03:19 starcoder lol
03:19 cooper k
03:19 cooper at least it isn't using over a GB of memory like irb was five minutes ago
03:20 alyx cooper: LOLWHAT
03:20 Trashlord joined #perl6
03:20 cooper alyx: it wasn't doing anything, i dunno why it was using that much
03:20 lateau joined #perl6
03:20 alyx cooper: ..wow
03:20 * TimToady finds it amusing that people from NJ, TX, and CA agree on anything  :)
03:21 lateau hello perl6
03:21 cooper alyx: yes, that's what i was thinking
03:21 alyx TimToady: xD
03:21 cooper I was actually checking on rakudo when i saw that
03:21 lumi_ left #perl6
03:22 cooper then i was unpleasantly surprised again when i saw that rakudo was using so much >_>
03:22 Eevee left #perl6
03:22 lumi_ joined #perl6
03:22 alyx "Oh, irb was using a gig of memory, BUT RAKUDO WAS USING 90 MB! THE HORROD!"
03:22 alyx *HORROR
03:22 TimToady lateau: 今日は
03:23 cooper my exact thoughts ^
03:23 alyx 53
03:23 cooper alyx: actually it was using 183mb
03:23 cooper (not rakudo alone, but this IRC bot)
03:25 cooper is there a Perl 6 method such as Ruby's .class ?
03:25 TimToady rakudo/nom will be much more compact, since it now supports C-style structs, rather than throwing oodles of Parrot PMCs at it
03:25 sorear cooper: give me a year or two... can you stay alive that long?
03:25 lateau left #perl6
03:25 cooper i'll try to :D
03:26 TimToady cooper: well, p6's classes work a bit differently from ruby's, but .WHAT will give you the type object, from which you can find anything else type-ish including the metaobject
03:26 TimToady rakudo: say "I am a string.".WHAT
03:26 p6eval rakudo ae5bea: OUTPUT«Str()␤»
03:26 cooper thanks
03:27 Su-Shee left #perl6
03:27 TimToady and all the type stuff is real objects, not just faked with strings like p5 does
03:27 sorear I have plans for making all of Perl 6 within 5x of Perl 5, except the parser, I haven't figured that one out yet
03:27 lateau joined #perl6
03:27 Eevee joined #perl6
03:28 sorear Perl 5's parser is... well... I've seen slower bytecode loaders. :/
03:28 sorear NOT going to be easy to compete with.
03:28 TimToady hehheh
03:28 Su-Shee joined #perl6
03:28 TimToady that's because it cheats all over the place
03:28 cooper cheats?
03:29 TimToady of the 5 or 6 ways that a lexer/parser can lie to itself about what is going on, Perl 5 does 7 or 8 of them... :)
03:30 TimToady rewriting the buffer, token stuffing, subparsing, using next pointers temporarily as start pointers, tree rewrites, and several others I've put out of my memory
03:30 sorear I thought most of those were D::D cheats D:
03:31 sorear Perl 6 uses some very novel parsing technology, there are no mature yacc-like tools that we can use for the p6 grammar
03:32 TimToady the bet here is that computers are getting fast enough that the benefits of not using LALR(1) outweigh the liabilities
03:32 lateau left #perl6
03:32 daniel-s_ left #perl6
03:32 TimToady benefits such as better error messages than "Syntax error"
03:33 TimToady oh yes, sometimes the lexer simply lies to the yacc grammar too about what it saw
03:33 TimToady oh, and there's both lookahead and lookbehind dwimmery of a most hacky sort
03:34 TimToady (in p5)
03:34 sorear most of the dwimmery in p5 is hacky
03:34 TimToady yeah, some hacker wrote it, I hear...
03:35 TimToady the other fun thing the p5 parse does is interleave 3 different passes simultaneously
03:36 TimToady propagating info up the syntax tree and down, as well as the peephole optimizer pass
03:36 sorear so despite the name, CHECK functions are called interleaved with parsing?
03:36 sorear ow
03:37 TimToady no
03:37 TimToady CHECk is called at the end of the main compilation unit
03:37 TimToady the peephole optimizer is called separately for each sub
03:38 TimToady the only parsing CHECK precedes is any eval
03:38 sorear STD.pmc is 1.5MB, perl5 can parse it in 2.2 seconds here... niecza can parse STD.pm6 (200K) in 50 seconds.   so I still have a factor of 375 to go
03:38 sorear is interleaving of passes a bad thing?
03:38 sorear it seems necessary for BEGIN to work
03:39 JimmyZ joined #perl6
03:39 TimToady correct, it's just tricksy for people to understand, and hence contributes to the insanity
03:39 TimToady but it should be a bit easier in p6 with much less downward context propagation
03:40 envi_laptop joined #perl6
03:42 lateau joined #perl6
03:43 TimToady I think the parser will also get much faster as we substitute more struct-y tree nodes for what we currently use hash-y objects
03:43 TimToady missing some verb in there or other...
03:44 satyavvd joined #perl6
03:45 sorear I'm just talking about my own version of the parser currently... the worst part is it's resisted most of my attempts to profile it :/
03:47 lateau left #perl6
03:47 lateau joined #perl6
03:52 lateau left #perl6
03:56 sorear TimToady: how long did it take you to work out the details of mortalisation?
03:59 hudnix left #perl6
03:59 wamba joined #perl6
04:00 TimToady about as long as it would have taken to work out the details of real GC  :)
04:02 lateau joined #perl6
04:04 TimToady not refcounting items on the stack was probably a mistake, in retrospect
04:04 TimToady a premature optimization
04:04 lumi_ left #perl6
04:05 TimToady but p5 is as fast as it is because of all the premature optimizations ;)
04:05 lumi_ joined #perl6
04:06 cooper left #perl6
04:12 lateau left #perl6
04:14 lateau joined #perl6
04:17 cotto joined #perl6
04:18 lateau left #perl6
04:21 scottp joined #perl6
04:24 dukeleto left #perl6
04:29 scottp left #perl6
04:30 mberends left #perl6
04:34 scottp joined #perl6
04:45 scottp left #perl6
04:51 scottp joined #perl6
04:55 lumi_ left #perl6
04:56 lumi_ joined #perl6
05:04 JimmyZ left #perl6
05:05 cognominal left #perl6
05:05 cognominal joined #perl6
05:09 sorear std: my $¢
05:09 p6eval std 37a0cdd: OUTPUT«ok 00:01 119m␤»
05:15 sorear nom: package Foo { has $!bar }
05:15 p6eval nom: OUTPUT«A package cannot have attributes at line 1, near " }"␤current instr.: 'nqp;HLL;Grammar;panic' pc 23569 (src/stage2/gen/NQPHLL.pir:6311)␤»
05:15 sorear nom: module Foo { has $!bar }
05:15 p6eval nom: OUTPUT«A module cannot have attributes at line 1, near " }"␤current instr.: 'nqp;HLL;Grammar;panic' pc 23569 (src/stage2/gen/NQPHLL.pir:6311)␤»
05:20 koban joined #perl6
05:21 koban left #perl6
05:21 TimToady well, that's not quite right either, since a class is a kind of module, and a module is a kind of package...
05:22 TimToady so a package *can* have attributes if it happens to be a class as well
05:22 TimToady or something like that...
05:23 TimToady it's more like "this kind of package declaration doesn't supply a sufficiently powerful meta-object to declare an attribute
05:23 TimToady but that's a bit long-winded
05:24 TimToady "You can't declare that here!" would be more to the point
05:25 molaf joined #perl6
05:27 scottp left #perl6
05:31 scottp joined #perl6
05:35 ingy left #perl6
05:40 scottp perl6: say 3;
05:40 p6eval pugs, rakudo ae5bea, niecza v6-153-g6cb84d6: OUTPUT«3␤»
05:42 ingy joined #perl6
05:50 ingy left #perl6
05:50 ingy joined #perl6
05:56 Bzek joined #perl6
06:00 ingy left #perl6
06:01 ingy joined #perl6
06:04 wamba left #perl6
06:04 araujo left #perl6
06:05 lumi_ left #perl6
06:05 araujo joined #perl6
06:06 lumi_ joined #perl6
06:08 jedai_ left #perl6
06:08 dju_ joined #perl6
06:08 dju_ left #perl6
06:08 dju_ joined #perl6
06:10 dju__ joined #perl6
06:10 jedai joined #perl6
06:13 dju__ left #perl6
06:13 dju_ left #perl6
06:14 daniel-s_ joined #perl6
06:17 dju joined #perl6
06:17 dju left #perl6
06:17 dju joined #perl6
06:17 daniel-s_ perl6: (1, 2, 3).perl.say; [1, 2, 3].perl.say;
06:17 p6eval pugs, rakudo ae5bea, niecza v6-153-g6cb84d6: OUTPUT«(1, 2, 3)␤[1, 2, 3]␤»
06:18 satyavvd left #perl6
06:21 dju left #perl6
06:32 daniel-s_ left #perl6
06:35 dju joined #perl6
06:37 dju left #perl6
06:37 dju joined #perl6
06:39 dju_ joined #perl6
06:39 dju_ left #perl6
06:39 dju_ joined #perl6
06:40 dju left #perl6
06:40 thou left #perl6
06:41 dju_ left #perl6
06:41 dju__ joined #perl6
06:46 Shozan joined #perl6
07:04 sorear perl6: if 5 -> $five { $_ := 5 }; say $_
07:04 p6eval niecza v6-153-g6cb84d6: OUTPUT«Potential difficulties:␤  $five is declared but not used at /tmp/isyUcjKR3q line 1:␤------> [32mif 5 -> [33m⏏[31m$five { $_ := 5 }; say $_[0m␤␤5␤»
07:04 p6eval ..pugs: OUTPUT«*** Cannot bind to non-existing variable: "$five"␤    at /tmp/yAvxmRGR3a line 1, column 1␤»
07:04 p6eval ..rakudo ae5bea: OUTPUT«Any()␤»
07:04 sorear Is Rakudo right here?
07:05 sorear niecza currently likes to pretend that $_ exists only in blocks with an implicit $_ signature
07:14 mj41 joined #perl6
07:18 lumi_ left #perl6
07:19 lumi_ joined #perl6
07:20 birdwindupbird joined #perl6
07:21 dalek niecza: 46b6529 | sorear++ | / (6 files):
07:21 dalek niecza: Add functionality to Niecza core add_my_name to detect redefinitions
07:21 dalek niecza: review: https://github.com/sorear/niecza/commit/46b6529a64
07:24 wamba joined #perl6
07:30 wamba left #perl6
07:31 breatharian joined #perl6
07:31 breatharian howdy 4th dimensioners
07:32 breatharian I brought up another Perl5 question on SO. http://stackoverflow.com/question​s/6328137/longest-string-in-cpan
07:33 breatharian Wondering, what's the Perl 6 way to do that?
07:33 dju__ left #perl6
07:33 dju_ joined #perl6
07:33 breatharian I like the suggestion using 'find_max' to implement 'longest'.
07:34 breatharian I asked the List::MoreUtils guys if they'd include it. :-)
07:34 dju__ joined #perl6
07:34 dju__ left #perl6
07:34 dju__ joined #perl6
07:34 dju_ left #perl6
07:35 koban joined #perl6
07:41 mikehh left #perl6
07:44 moritz rakudo: say <ab foobar x>.max: *.chars
07:44 p6eval rakudo ae5bea: OUTPUT«foobar␤»
07:45 cooper joined #perl6
07:45 cooper left #perl6
07:45 cooper joined #perl6
07:46 moritz breatharian: is that short enough for you? :-)
07:46 lumi_ left #perl6
07:47 lumi_ joined #perl6
07:48 breatharian moritz, Thanks!
07:48 breatharian moritz, Why the ": *.chars" at the end? Seems like it works without that as well (at the rakudo repl).
07:49 breatharian What "kind of object" does <a ab abc> return? I.e. is that a Perl 6 list of strings?
07:51 moritz list of strings, yes
07:52 moritz breatharian: without it it only works by accident
07:52 moritz rakudo: say <x a fooobarbaz>.max
07:52 p6eval rakudo ae5bea: OUTPUT«x␤»
07:52 moritz rakudo: say <x a fooobarbaz>.max: *.chars
07:52 p6eval rakudo ae5bea: OUTPUT«fooobarbaz␤»
07:52 breatharian moritz, Is there a way to query any expression for it's "type"?
07:52 moritz rakudo: say <x a fooobarbaz>.WHAT
07:52 p6eval rakudo ae5bea: OUTPUT«Parcel()␤»
07:52 breatharian (so that I can answer that question myself for other expressions) :-)
07:52 moritz rakudo: say <x a fooobarbaz>[0].WHAT
07:52 p6eval rakudo ae5bea: OUTPUT«Str()␤»
07:52 breatharian aha
07:53 moritz "Parcel" is "Parenthesis Cell", and something like a List
07:53 breatharian ok
07:55 breatharian Ah so <...> is similar to P5's qw{...}
07:56 moritz aye
07:56 moritz but it's supposed to be smarter about types (but it isn't yet in rakudo)
07:56 breatharian It's too bad P5 doesn't have something like find_max in a common module.
07:56 breatharian moritz, What's not in rakudo?
07:56 moritz smart about types
07:56 breatharian aha
07:56 moritz <1 23 foo>.[0] should be an Int, it is a Str
07:56 breatharian aha
07:58 breatharian So workaround is: <1 23 abc>.[0].Int.WHAT
07:58 breatharian ?
07:58 moritz if you need an Int, yes
07:58 breatharian kewl
07:58 moritz or just (1, 23, 'abc')
08:00 breatharian moritz, Uh oh: <a b c cd z>.max
08:00 breatharian returns 'z' on rakudo
08:00 * sorear has been dreaming lately of a new Perl 6 implementation
08:00 sorear breatharian: you forgot : *.chars
08:00 breatharian 8-)
08:00 sorear breatharian: without : *.chars, it picks the alphabetically last
08:00 moritz sorear: another new one? :-)
08:01 sorear moritz: yes
08:01 breatharian thanks sorear
08:01 sorear I'm wondering when I should try to share my thoughts... next #phasers maybe?
08:01 breatharian So the ": *.chars" modifies the behaviour of 'max'?
08:01 moritz or a blog post
08:01 sorear breatharian: yes
08:01 moritz breatharian: right, it tells .max what to maximize
08:02 sorear breatharian: $object.METHOD: ARGUMENT is equivalent to $object.METHOD(ARGUMENT)
08:02 sorear breatharian: .max takes a single optional argument which tells it how to compare
08:02 sorear like how p5 'sort' takes an optional comparison function
08:02 breatharian Aha. so there's a 'chars' method on strings?
08:03 sorear yes
08:03 breatharian Is there a way to get a list of methods on a given object? (like Python's introspection abilities)
08:03 sorear but in Perl 6, sorting and searching methods are slightly smarter, and can use one-argument functions as well
08:03 sorear .say for 5.^methods
08:03 moritz rakudo: say ~ 'foobar'.^methods(:local)
08:03 p6eval rakudo ae5bea: OUTPUT«ACCEPTS perl pred succ WHICH Bool Str encode indent␤»
08:03 moritz rakudo: say ~ 'foobar'.^methods()
08:03 p6eval rakudo ae5bea: OUTPUT«ACCEPTS perl pred succ WHICH Bool Str encode indent Numeric Real Int Rat Num abs conjugate exp log log10 sqrt roots to-radians from-radians floor ceiling round truncate sign cis unpolar chr chrs rand sin cos tan sec cosec cotan sinh cosh tanh sech cosech cotanh asin acos atan
08:03 p6eval ..atan2…
08:03 breatharian woah...
08:04 sorear strings and numbers have most of the same methods, and they coerce as needed
08:05 breatharian I'm surprised it's called 'chars'. Is there not a method like 'size' or 'length' for sequence-like objects in general?
08:05 sorear breatharian: length is outlawed since it's too vague
08:05 breatharian :-)
08:05 nebuchadnezzar SIGCOFFEA
08:06 sorear breatharian: all Perl 6 objects can pretend to be singleton lists, for DWIM sake; should .length return 1 ?
08:06 sorear breatharian: also, there was at one point an idea that strings should answer to .chars .graphs .codes .bytes
08:07 breatharian aha
08:07 sorear although nowadays sequences of characters and sequences of bytes are entirely separate types
08:07 breatharian .nouns, .verbs, ... :-)
08:07 breatharian .vowels
08:07 breatharian :-p
08:07 jlaire .typos would be useful
08:07 breatharian ha
08:13 kevin___ joined #perl6
08:13 breatharian sorear, So what is the dreamy new Perl 6 about? :-)
08:14 sorear breatharian: very hard optimizing for startup speed
08:14 breatharian aha
08:15 sorear perl -e '' takes 1 or 2 1/HZ locally.  Not really measurable
08:15 jlaire are there other active implementation projects than rakudo and niecza?
08:15 sorear No
08:16 sorear if by "active" you mean "modified this year and able to run 'say 2 + 2'"
08:16 jlaire something like that
08:16 jlaire (can yapsi do addition? :P)
08:17 kevin___ when will the production version of perl6 come out?
08:17 sorear kevin___: TimToady isn't going to bless any version, you'll have to decide for yourself when it's "done enough"
08:18 sorear jlaire: Not natively.
08:18 Su-Shee kevin___: just get it, try it and if its useful to you, use it.
08:18 sorear jlaire: It has increment, decrement, test for zero, and looping, so it's at least Turing complete...
08:19 Su-Shee sorear: can I ask a favor of you (niecza related :)
08:19 breatharian Gotta run. Thanks for the help guys!
08:19 breatharian left #perl6
08:19 sorear Su-Shee: of course you can ask
08:20 Su-Shee sorear: I was wondering what the use of c# and the .net really means and what is your idea behind it.
08:21 Su-Shee sorear: and I think the a nice article about it would be interesting.
08:21 sorear Su-Shee: nothing political, it's just a good balance between fun and fast
08:21 Su-Shee sorear: because when I hear something like c#/.net integration I think "cool, let's get the enterprise folks and the windows devels"
08:21 lumi_ left #perl6
08:21 sorear also C# compilers make Perl5's parser look *slow*
08:22 Su-Shee sorear: so only technical reasons?
08:22 lumi_ joined #perl6
08:22 TiMBuS joined #perl6
08:22 sorear There's also a historical reason; it started as a fork of perlesque
08:23 Su-Shee sorear: but how will you go about if niecza approaches "let's use that in our company"? at least someone like me would expect the conscious desicion of "it's c#/.net, so I really get .NET".
08:23 TiMBuS i have successfully ban evaded \o/
08:23 TiMBuS wait that sounds like a bad thing
08:25 sorear Su-Shee: sorry, I couldn't parse that.
08:26 TiMBuS niecza is the ENTERPRIZE version of perl6 by default
08:26 sorear Ha
08:26 TiMBuS as it cleanly synergizes with already implemented and proven architectures within the company
08:27 Su-Shee sorear: we (the company I work for) struggle with windows integrational stuff in perl, so when I read "perl 6, c#, .net" I start drooling over it because it sounds like bindings we would love to have.
08:27 Su-Shee sorear: so I was wondering wether your thinking ever was "well, let's for for the enterprises and make a perl 6 for the windows world with c# and .net"
08:27 Su-Shee let's go for.
08:28 sorear Su-Shee: if I can make that happen, it's a lovely fringe benefit
08:28 sorear but I'm a naive 20-year-old not even out of college, and I haven't touched a Windows compiler since 2003, and I really am not the best person to be thinking about enterprise windows stuff
08:29 Su-Shee sorear: let's put it that way: it's a serious selling point, like "rakudo now runs on the jvm, let's do it like clojure does" would be.
08:30 TiMBuS like a litear selling point
08:31 TiMBuS big companies actually pay for this stuff
08:31 TiMBuS literal
08:33 TiMBuS youre heading to the big leagues son. a shooting star. some people have greatness thrust upon them, others make a compiler thats pretty great
08:38 kevin___ Is Rakudo too slow now?
08:39 moritz yes
08:39 dakkar joined #perl6
08:39 moritz we're working on it
08:39 sorear kevin___: we can't make value judgements for you, but it's too slow for me
08:41 kevin___ Thanks, hope next version will be better.
08:42 daxim joined #perl6
08:42 Woodi left #perl6
08:43 Woodi joined #perl6
08:45 Mowah joined #perl6
08:50 kevin___ left #perl6
08:52 RKG joined #perl6
08:53 RKG left #perl6
08:57 lumi_ left #perl6
08:58 lumi_ joined #perl6
09:06 agentzh joined #perl6
09:22 daniel-s perl6: (3,2).say x2;
09:22 p6eval niecza v6-154-g46b6529: OUTPUT«[31m===[0mSORRY![31m===[0m␤␤Whitespace is required between alphanumeric tokens at /tmp/aCdtCmA8mK line 1:␤------> [32m(3,2).say x[33m⏏[31m2;[0m␤␤Unhandled exception: Check failed␤␤  at /home/p6eval/niecza/boot/lib/CORE.setting line 469 (CORE die @ 2) ␤  at
09:22 p6eval ../home/p6eval/niec…
09:22 p6eval ..rakudo ae5bea: OUTPUT«===SORRY!===␤Confused at line 22, near "(3,2).say "␤»
09:22 p6eval ..pugs: OUTPUT«*** ␤    Unexpected "x2"␤    expecting operator␤    at /tmp/vwiEh6WyOf line 1, column 11␤»
09:23 sorear daniel-s: what are you trying to do?
09:24 daniel-s I remember x did something
09:24 daniel-s but I can't remember
09:24 sorear rakudo: say "foo" x 5
09:24 p6eval rakudo ae5bea: OUTPUT«foofoofoofoofoo␤»
09:24 sorear it's an infix op
09:24 daniel-s thanks
09:27 jnthn morning, #perl6
09:27 tzhs joined #perl6
09:27 moritz \o
09:28 dalek niecza: d58f791 | sorear++ | / (4 files):
09:28 dalek niecza: Rewrite "declared but not used" check using niecza-metamodel
09:28 dalek niecza: review: https://github.com/sorear/niecza/commit/d58f79152d
09:28 sorear '
09:28 sorear 'night, #perl6.
09:30 jnthn good mor...night, sorear :)
09:33 lumi_ left #perl6
09:34 lumi_ joined #perl6
09:38 icwiener joined #perl6
09:48 daniel-s phenny: tell daniel-s_ you're cool
09:48 phenny daniel-s: I'll pass that on when daniel-s_ is around.
09:49 daniel-s is now known as daniel-s_
09:49 daniel-s_ a
09:49 phenny daniel-s_: 09:48Z <daniel-s> tell daniel-s_ you're cool
09:49 daniel-s_ is now known as daniel-s
09:49 Woodi left #perl6
09:51 Woodi joined #perl6
10:03 woosley left #perl6
10:03 daniel-s left #perl6
10:05 daniel-s joined #perl6
10:12 Woodi left #perl6
10:12 lichtkind joined #perl6
10:13 lichtkind cheers
10:14 Woodi joined #perl6
10:33 Woodi left #perl6
10:34 Woodi joined #perl6
10:36 dalek rakudo/nom: 5788019 | jnthn++ | src/ (3 files):
10:36 dalek rakudo/nom: Constraint types on parameters.
10:36 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/5788019b22
10:40 Woodi left #perl6
10:44 lichtkind moin jnthn
10:47 jnthn o/ lichtkind
10:47 Woodi joined #perl6
10:48 lichtkind glad to see you in  <schwarzenegger voice>action</schwarzenegger voice>
10:48 lichtkind jnthn: does nom/model 6 has any MOP?
10:53 jnthn lichtkind: For sure - that's kind of the point of 6model. :)
10:53 jnthn lichtkind: See https://github.com/rakudo/rakud​o/tree/nom/src/Perl6/Metamodel
10:58 lichtkind thanks
10:58 lumi_ left #perl6
10:59 lumi_ joined #perl6
10:59 lichtkind jnthn: has it any resemblance with SMOP or the perl 5 antlers?
10:59 jnthn lichtkind: Both have influenced the design, yes.
10:59 jnthn lichtkind: It's different to both, but drew from both of them.
11:07 yinyin left #perl6
11:10 daxim rakudo, "\cL,¢,â".split.perl
11:10 daxim rakudo, "\cL,¢,â".split.perl.say
11:11 daxim rakudo, "\cL,¢,â".split(//).perl.say
11:12 daxim :<  narf
11:14 jnthn rakudo: "\cL,¢,â".split.perl.say
11:14 p6eval rakudo ae5bea: OUTPUT«===SORRY!===␤Method 'panic' not found for invocant of class 'Regex;Match'␤»
11:14 jnthn ouch
11:16 jnthn nom: "\cL,¢,â".split.perl.say
11:16 p6eval nom: OUTPUT«Method 'panic' not found for invocant of class 'SixModelObject'␤current instr.: 'nqp;HLL;Actions;_block1326' pc 25966 (src/stage2/gen/NQPHLL.pir:7341)␤»
11:18 lichtkind jnthn: the plans to replase rakudo* with something different after a year are still valid?
11:22 jnthn lichtkind: That's probably a topic for discussion at YAPC::EU when various Rakudo devs will be about.
11:23 dalek rakudo/nom: b51aaa0 | jnthn++ | src/Perl6/ (2 files):
11:23 dalek rakudo/nom: Make has $a; style attribute declarations work (declares $!a and $a as a lexical alias).
11:23 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b51aaa05c2
11:23 dalek rakudo/nom: 4851795 | jnthn++ | src/Perl6/Actions.pm:
11:23 dalek rakudo/nom: Fix up implicit $_ handling a little.
11:23 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/4851795dee
11:24 dalek nqp: 00a7fe4 | jonathan++ | src/HLL/Actions.pm:
11:24 dalek nqp: Fix broken error reporting in string_to_int (daxim++).
11:24 dalek nqp: review: https://github.com/perl6/nqp/commit/00a7fe4a2c
11:24 lichtkind jnthn: thanks so i just have to ask masak about the state of the module installer
11:24 moritz ask tadzik
11:25 moritz he wrote panda
11:25 moritz which actually worked last I looked :-)
11:26 lichtkind moritz: thanks
11:26 lichtkind was panda formerly known as pies?
11:26 moritz yes
11:26 moritz (-ish)
11:27 lumi_ left #perl6
11:27 lumi_ joined #perl6
11:27 lichtkind :)
11:28 lichtkind tadzik: are you around?
11:34 fhelmberger left #perl6
11:34 lichtkind maybe now i understand the hello pandas better
11:35 fhelmberger joined #perl6
11:40 d4l3k_ joined #perl6
11:41 dalek left #perl6
11:41 d4l3k_ is now known as dalek
11:42 woosley joined #perl6
11:45 cooper left #perl6
11:48 mtk joined #perl6
12:03 silug left #perl6
12:03 pernatiy joined #perl6
12:08 lumi_ left #perl6
12:08 lumi_ joined #perl6
12:12 agentzh left #perl6
12:16 takadonet morning all
12:18 jnthn o/ takadonet
12:18 takadonet jnthn: how are u sir?
12:19 jnthn takadonet: Well, thanks :)
12:20 jnthn And you?
12:21 takadonet good good
12:21 PZt left #perl6
12:22 mtk left #perl6
12:24 mtk joined #perl6
12:28 dju__ left #perl6
12:29 mtk left #perl6
12:30 mtk joined #perl6
12:34 jaldhar left #perl6
12:35 PZt joined #perl6
12:35 Mowah left #perl6
12:35 jaldhar joined #perl6
12:38 hudnix joined #perl6
12:39 lichtkind takadonet: \o
12:40 takadonet lichtkind: \o
12:41 araujo left #perl6
12:41 lumi_ left #perl6
12:42 lumi_ joined #perl6
12:42 chitragupt left #perl6
12:46 daxim panda?
12:46 mtk left #perl6
12:46 daxim hey, didn't you have a factbot here?
12:46 Mowah joined #perl6
12:47 estrabd left #perl6
12:48 pothos_ joined #perl6
12:48 mtk joined #perl6
12:48 daxim I just installed the latest stable rakudo* to try to port some perl5 snippets
12:48 pothos left #perl6
12:48 chitragupt joined #perl6
12:48 pothos_ is now known as pothos
12:48 daxim I see an XML writer there and a HTTP server, how did you manage that without an encoding module?
12:49 moritz rakudo has some encodings built-in
12:49 moritz most notably utf-8 and latin-1
12:49 daxim oh great, that covers a lot
12:49 moritz rakudo: say chr(165).encode('utf-8').perl
12:49 p6eval rakudo ae5bea: OUTPUT«Buf.new(165)␤»
12:49 daxim what about iso-646?
12:49 moritz urks, tht looks wrongish, doesn't it?
12:50 moritz rakudo: say chr(165).encode.perl
12:50 p6eval rakudo ae5bea: OUTPUT«Buf.new(165)␤»
12:50 moritz rakudo: say chr(250).encode.perl
12:50 p6eval rakudo ae5bea: OUTPUT«Buf.new(250)␤»
12:50 moritz rakudo: say chr(260).encode.perl
12:50 p6eval rakudo ae5bea: OUTPUT«Buf.new(196, 132)␤»
12:50 moritz where's masak when you need hin?
12:51 daxim I see the name ASCII is recognised, where is the registry of encoding names?
12:52 moritz daxim: try grepping in src/core/{Str,Buf}.pm
12:53 daxim Str.pm:9:    my @KNOWN_ENCODINGS = <utf-8 iso-8859-1 ascii>;
12:54 daxim long way to go :(
12:55 moritz patches welcome :-)
12:55 moritz I think parrot understands more
12:55 moritz you'd just have to hook them up somehow
12:56 daxim seems so.  error message "Lossy conversion to single byte encoding" is parrot territory, and I have no chance to handle replacement myself
12:56 daxim á la Encode's CHECK coderef
12:56 jnthn Hmm, that array looks...inextensible.
12:56 Holy_Cow joined #perl6
12:57 * jnthn suspects Str/Buf handling in Rakudo needs a good going over at some point in the not too distant future.
12:57 moritz or to put it more bluntly, it should be re-done completely for nom.
12:57 Holy_Cow left #perl6
13:22 leprevost joined #perl6
13:26 dju joined #perl6
13:29 dju left #perl6
13:30 dju joined #perl6
13:30 dju left #perl6
13:30 dju joined #perl6
13:31 lumi_ left #perl6
13:32 lumi_ joined #perl6
13:36 Woodi left #perl6
13:37 MayDaniel joined #perl6
13:42 pernatiy left #perl6
13:43 Woodi joined #perl6
13:45 sftp left #perl6
13:47 moritz nom: say <a b c>.elems
13:47 p6eval nom: OUTPUT«Method 'elems' not found for invocant of class 'SixModelObject'␤current instr.: '_block1002' pc 99 ((file unknown):135) (:1)␤»
13:47 moritz wanted urgently: actual type name in the error message
13:47 moritz nom: say <a b c>.WHAT
13:47 p6eval nom: OUTPUT«Parcel()␤»
13:48 sftp joined #perl6
13:50 Woodi left #perl6
13:51 molaf left #perl6
13:52 daniel-s what's nom?
13:53 moritz rakudo on a New Object Model
13:54 wamba joined #perl6
13:54 Woodi joined #perl6
13:54 Trashlord left #perl6
13:58 Woodi left #perl6
14:00 Woodi joined #perl6
14:03 silug joined #perl6
14:04 Woodi left #perl6
14:05 MayDaniel left #perl6
14:05 Woodi joined #perl6
14:06 moritz nom: method x(Int:D:, $x) { }
14:06 colomon rakudo: my @a = 1..100; my @slice = 3..5; say @a[@slice]
14:06 p6eval nom: OUTPUT«Malformed parameter at line 1, near ", $x) { }"␤current instr.: 'nqp;HLL;Grammar;panic' pc 23569 (src/stage2/gen/NQPHLL.pir:6311)␤»
14:06 p6eval rakudo ae5bea: OUTPUT«456␤»
14:06 moritz nom: method x(Int:D: $, $x) { }
14:06 p6eval nom: OUTPUT«Contextual $*PKGDECL not found␤current instr.: 'nqp;Perl6;Actions;_block2493' pc 45699 (src/gen/perl6-actions.pir:15844)␤»
14:06 moritz nom: method x(Int:D: $self, $x) { }
14:06 p6eval nom: OUTPUT«Contextual $*PKGDECL not found␤current instr.: 'nqp;Perl6;Actions;_block2493' pc 45699 (src/gen/perl6-actions.pir:15844)␤»
14:06 moritz nom: class A { method x(Int:D: $self, $x) { } }
14:06 p6eval nom:  ( no output )
14:07 moritz nom: class A { method x(Int:D: $, $x) { } }
14:07 p6eval nom:  ( no output )
14:08 jnthn eww, that's a nasty way to fail
14:08 jnthn It, er, fails at failing. :/
14:08 moritz aye
14:08 jnthn It wants to use $*PKGDECL in the error.
14:08 jnthn Maybe "you cannot but a named method here" is simpler. :)
14:09 moritz my $*PKGDECL = '<mainline>';  # in TOP ?
14:09 jnthn Along the same lines as TimToady++ suggested we do for attributes.
14:09 jnthn Hm
14:09 jnthn maybe but I'm not sure to have degree mentioning the $*PKGDECL in errors is approved of.
14:09 jnthn I thought it was a good idea.
14:10 jnthn TimToady seemed to feel otherwise, and he kinda has a point.
14:10 jnthn It's really how people think about classes and modules and packages in relation to one another, I guess.
14:10 jnthn To me package and class aren't in a realtionship, they're two HOWs that compose some of the same roles.
14:10 jnthn But I probably have too lowlevely a view. :)
14:12 moritz rakudo: class A { method x(Self:D: $, $a) { say $a } }; A.new.x('foo')
14:12 p6eval rakudo ae5bea: OUTPUT«===SORRY!===␤Invalid typename in parameter declaration at line 22, near ": $, $a) {"␤»
14:13 moritz nom: class A { method x(A:D: $, $a) { say $a } }; A.new.x('foo')
14:13 p6eval nom: OUTPUT«Not enough positional parameters passed; got 2 but expected 3␤current instr.: 'x' pc 317 ((file unknown):42318064) (:1)␤»
14:13 moritz why does it want 3?
14:13 moritz the invocant, $a, and ... ?
14:13 PerlJam jnthn: according to the synopses a class is a package, so that's how people will probably think about them (at least until we get some good docs that tell a different/better story)
14:14 moritz and even if we have good docs, only 10% will read them
14:14 PerlJam moritz: well, we're the extended documentation.  We re-tell the story in the docs.
14:16 araujo joined #perl6
14:16 jnthn moritz: You declare the invocant and two more.
14:16 jnthn The invocant, $ and $a.
14:17 jnthn I think you maybe meant x(A:D $: $a)
14:17 moritz oh
14:17 jnthn But you don't need that $ there
14:17 jnthn The : is a separator
14:17 jnthn er, the second colon is ;)
14:17 moritz ah, just no comma after it
14:17 jnthn : is a comma
14:17 jnthn well
14:17 jnthn :)
14:17 jnthn It plays the same role as one :)
14:18 rindolf joined #perl6
14:19 estrabd joined #perl6
14:24 dalek rakudo/nom: 9ede977 | moritz++ | src/core/ (2 files):
14:24 dalek rakudo/nom: implement ACCEPTS in Str and Numeric
14:24 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/9ede97774a
14:26 bluescreen10 joined #perl6
14:26 daniel-s I've tread really hard to read the synopses on packages and modules
14:26 daniel-s I don't think it's very clear on what the difference is
14:26 daniel-s (at least not to me)
14:26 moritz daniel-s: same here
14:26 moritz daniel-s: I gathered that modules have somehow "more meat" than packages
14:27 PerlJam what moritz said
14:27 moritz and that packages are somehow the lowest common divisor of (module, class, role, grammar) or so
14:27 PerlJam or, sometimes I think of it as packages are "historic" and modules are the new Perl 6 way.
14:27 moritz but I don't quite got what exactly it is that a module has that a package has not
14:27 jnthn Also compare https://github.com/rakudo/rakudo/blob/​nom/src/Perl6/Metamodel/PackageHOW.pm vs https://github.com/rakudo/rakudo/blob​/nom/src/Perl6/Metamodel/ModuleHOW.pm
14:28 jnthn One important thing though
14:28 jnthn class A::B { }
14:28 jnthn What is A there? We need to auto-viv *something* to hold B.
14:28 jnthn That A is a package
14:28 daniel-s because in the synopsis it says that module is supposed to replace package
14:28 jnthn But a package can always "go away"
14:28 daniel-s or something like that
14:29 moritz jnthn: can I export subs from a class?
14:29 jnthn daniel-s: You don't really want to use package in your code, I suspect.
14:29 daniel-s but there are also packages
14:29 PerlJam jnthn: so modules have versions and such, but packages do not?
14:29 jnthn moritz: Sure
14:29 daniel-s there's a whole synopsis on packages
14:29 jnthn PerlJam: They have versions, yes.
14:29 jnthn More importantly though, you could write:
14:29 daniel-s is there a pastbin for pod?
14:29 moritz jnthn: so class is basically a superset of the Module functionality?
14:29 daniel-s one that renders it nicely
14:29 jnthn package A { }; class A::B { }; class A { }
14:29 jnthn but this is not OK:
14:29 jnthn module A { }; class A::B { }; class A { }
14:30 jnthn The class A would be a redeclaration error.
14:30 jnthn Actually
14:30 jnthn remove class A::B { } from both examples
14:30 jnthn And property still holds.
14:30 moritz so, "a package is what you use to stub namespaces"?
14:30 jnthn moritz: Pretty much.
14:30 jnthn moritz: (functionality) Yeah. Again, see the list of roles: https://github.com/rakudo/rakudo/blob​/nom/src/Perl6/Metamodel/ClassHOW.pm :)
14:31 PerlJam at least that jnthn's current understanding  ;-)
14:31 jnthn All the ones for Module, plus some more.
14:31 jnthn PerlJam: No, the spec says that too.
14:31 moritz ... just not very clearly
14:31 daniel-s PerlJam: I've started writing a pod about modules
14:31 daniel-s http://pastebin.com/HndeWJ7M
14:31 daniel-s is it too simple?
14:31 PerlJam there's no such thing as "too simple"
14:31 PerlJam Simple is good.
14:31 PerlJam (IMHO)
14:32 daniel-s also, I intend to describe how to create modules, export functions, import different versions, and some other stuff
14:34 daniel-s when I understand the differences between packages and modules, the first thing I'm doing it is writing it down
14:34 PerlJam daniel-s++ great
14:34 daniel-s isn't there somebody who is supposed to just know?
14:36 jnthn nom: class A { }; A.foo
14:36 p6eval nom: OUTPUT«Method 'foo' not found for invocant of class 'SixModelObject'␤current instr.: '_block1002' pc 95 ((file unknown):28421538) (:1)␤»
14:36 PerlJam daniel-s: There are several somebodies who know I think ... the problem is conveying that knowledge in a way that makes sense and can be relatively easily retransmitted to others.
14:36 moritz daniel-s: on a nearly related topic, I can recommand http://ttjjss.wordpress.com/2010/08/09​/so-you-want-to-write-a-perl-6-module/
14:37 bluescreen10 left #perl6
14:38 PerlJam daniel-s: or think of it this way ... the synopses are supposed to explain this.  you've read them, I've read them, moritz has read them, etc.  and yet we all have a fuzzy understanding.  So ... we probably need to tell the story a little differently.
14:39 moritz heh, somebody thinks I read the specs :-)
14:43 Trashlord joined #perl6
14:45 tadzik lichtkind: not really
14:45 jnthn moritz: In the patch you just did for ACCEPTS, need to remove the protos.
14:45 jnthn moritz: Declaring a proto = hide all candidates higher in the inheritance hierarchy.
14:45 moritz oh
14:45 moritz and there's a proto in Mu?
14:45 jnthn Yes.
14:46 jnthn Basically we walk up the inheritance hierarchy to find a proto.
14:46 koban left #perl6
14:46 moritz I'm slowly starting to see the sense in protos
14:47 lichtkind tadzik: you mean panda wasnt really named pies?
14:47 jnthn moritz: :)
14:47 jnthn moritz: The code that does all of that is fairly accessible, fwiw: https://github.com/rakudo/rakudo/blob/nom/s​rc/Perl6/Metamodel/MultiMethodContainer.pm
14:47 tadzik lichtkind: I should be back to life in like 17 hours
14:48 tadzik lichtkind: Panda is an implementation of Pies, Pies like like pls
14:48 tadzik and back to maths, see you tomorrow :)
14:48 lichtkind yup
14:48 lichtkind thanks
14:49 lichtkind even i understood nothing
14:49 tadzik hm
14:49 lichtkind pies semes to be some protocol
14:49 tadzik more-less
14:49 lichtkind but maybe i just can hack some understanding together by reading the repo
14:49 tadzik Pies is rather like "how it should look like"
14:49 lichtkind bye
14:50 tadzik bye o/
14:50 wamba left #perl6
14:51 mtk left #perl6
14:51 moritz jnthn: it does look very readable. jnthn++
14:52 bluescreen10 joined #perl6
14:56 mtk joined #perl6
14:56 dalek rakudo/nom: 95fea15 | moritz++ | src/core/ (2 files):
14:56 dalek rakudo/nom: remove those superfluous protos, jnthn++
14:56 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/95fea1592d
14:59 daniel-s left #perl6
15:01 dalek nqp: ecc33ba | jonathan++ | src/pmc/sixmodelobject.pmc:
15:01 dalek nqp: Ensure error messages for 'method not found' and 'vtable not implemented' include the class name, not just SixModelObject.
15:01 dalek nqp: review: https://github.com/perl6/nqp/commit/ecc33baa7a
15:01 moritz \o/
15:02 jnthn nom needs NQP_REVISION bump to use it
15:02 Shozan left #perl6
15:02 jnthn Will do it later, or feel free to beat me.
15:03 jnthn Or, beat me to doing it, not beat me for not doing it... :P
15:03 * jnthn gets back to $dayjob-stuff-he-shoulda-done-already :))
15:06 molaf joined #perl6
15:06 dalek rakudo/nom: 71e6791 | moritz++ | tools/build/NQP_REVISION:
15:06 dalek rakudo/nom: bump NQP_REVISION to get better error messages for method not found
15:06 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/71e6791e30
15:07 moritz yay, I get karma for stuff that jnthn++ implemented :-)
15:14 kaare_ joined #perl6
15:15 lichtkind moritz: buddha said even good karma is karma, wise people seek to have no karma at all :)
15:16 moritz lichtkind: I guess I can live with not being wise
15:16 jnthn moritz++ # helping me look wiser
15:16 lichtkind moritz: thats very wise :)
15:16 jnthn ;)
15:18 TimToady It's not so wise to add bad karma to your life to offset the good karma... :)
15:19 aloha left #perl6
15:19 lichtkind TimToady: but it works :)
15:19 tzhs left #perl6
15:20 TimToady that depends greatly on what you mean by "works"  :)
15:20 aloha joined #perl6
15:20 lichtkind TimToady: sorry to keep nagging but a simple reusage of the 5.6 would not be just fine?
15:20 wamba joined #perl6
15:20 lichtkind there was nothinh version specific in it
15:21 molaf left #perl6
15:21 TimToady could you email me a copy?  I might have a chance to look at it today
15:21 jdv79 left #perl6
15:21 charsbar__ left #perl6
15:21 envi_laptop left #perl6
15:22 jdv79 joined #perl6
15:22 molaf joined #perl6
15:22 lichtkind TimToady: would gladly but i own only the german translation, i will ask johan
15:22 envi_laptop joined #perl6
15:27 lichtkind TimToady: done
15:30 jaldhar left #perl6
15:30 hudnix left #perl6
15:30 jaldhar joined #perl6
15:31 hudnix joined #perl6
15:33 rindolf left #perl6
15:37 charsbar__ joined #perl6
15:45 * jnthn afk
15:45 dalek specs: 30b46a5 | larry++ | S1 (2 files):
15:45 dalek specs: be more upfront about class < module < package
15:45 dalek specs: review: https://github.com/perl6/specs/commit/30b46a5d3e
15:55 moritz (that larry guy)++
15:55 moritz erm, TimToady++
16:05 thou joined #perl6
16:11 woosley left #perl6
16:26 bluescreen10 left #perl6
16:26 bluescreen10 joined #perl6
16:28 spq1 joined #perl6
16:29 alester joined #perl6
16:39 kevin_ joined #perl6
16:52 tokuhirom left #perl6
16:54 birdwindupbird left #perl6
16:58 dakkar left #perl6
16:59 kevin_ left #perl6
16:59 lumi_ left #perl6
17:03 mj41 left #perl6
17:05 Chillance joined #perl6
17:12 cdarroch joined #perl6
17:12 cdarroch left #perl6
17:12 cdarroch joined #perl6
17:19 kaare_ left #perl6
17:25 dalek rakudo: 2482447 | pmichaud++ | / (2 files):
17:25 dalek rakudo: Add PAST::Stmt nodes to enable temporary register sharing.
17:25 dalek rakudo: review: https://github.com/rakudo/rakudo/commit/2482447665
17:33 daxim left #perl6
17:38 cognominal_ joined #perl6
17:42 cognominal left #perl6
17:56 mj41 joined #perl6
18:15 mj41 left #perl6
18:21 fhelmberger left #perl6
18:21 tadzik hello folks
18:24 colomon o/
18:30 uniejo left #perl6
18:30 moritz \o
18:34 Bzek left #perl6
18:34 mkramer joined #perl6
18:40 mkramer left #perl6
18:40 GinoMan joined #perl6
18:44 rafl joined #perl6
18:46 envi_laptop left #perl6
18:54 GinoMan left #perl6
19:00 alester left #perl6
19:06 sorear good * #perl6
19:10 frettled My asterisk is very good, thank you, sorear!
19:21 bluescreen10 left #perl6
19:32 buubot_backup left #perl6
19:38 mberends joined #perl6
19:43 buubot_backup joined #perl6
19:47 uniejo joined #perl6
19:47 Reaganomicon left #perl6
19:49 fuzzyflounder joined #perl6
19:49 fuzzyflounder left #perl6
19:49 fuzzyflounder joined #perl6
19:58 fuzzyflounder is now known as cooper
20:12 jnthn evening o/
20:13 sorear hello jnthn!
20:14 jnthn o/ sorear
20:14 jnthn Only 2 days to NPW! :)
20:14 sorear :/
20:14 sorear I won't be there :(
20:15 * moritz neither
20:15 jnthn It's curious to be on the organizer side rather than the speaker side. :)
20:16 * jnthn tried being an attendee once too :)
20:17 jnthn Kept thinking "oh, when's my talk...oh wait...I don't have one here" :)
20:24 masak joined #perl6
20:25 masak lol hi #perl6
20:25 flussence o/
20:25 sorear HI masak!
20:25 masak tonight, as jnthn pointed out, is game night :)
20:26 flussence the guy at $dayjob disapproved of me writing tests before code... so I ignored him. And put the tests *in* the code.
20:26 frettled flussence++ :D
20:27 flussence (and it turns out cmp_ok is a really nice replacement for ad-hoc debugging checks..)
20:27 masak indeed.
20:28 masak sub assert { my ($condition) = @_; die unless $condition }
20:28 masak assert cmp_ok $a, $b;
20:30 jnthn masak! \o/
20:31 masak jnthn! \o/
20:31 masak haven't seen you in quite a while :P
20:34 sorear he's been busy nomming.
20:34 jnthn Hey, how'd you know what I've been...oh, wait. :P
20:34 masak oh the polysemy.
20:35 jnthn the WHAT?!
20:35 jnthn oh, not...yeah, I mis-thunk.
20:35 frettled o_O
20:35 jnthn :P
20:35 masak trust jnthn to see more meanings in a word than are actually there :P
20:36 * jnthn is inventive :)
20:36 masak that's why we put you on implementing Perl 6... :)
20:36 TimToady jnthn is nominative...
20:37 masak jnthna is genetive... :)
20:37 masak genitive*
20:39 jnthn I'm quite vocative after beer, and can be a tad accusative when sleepy... :)
20:39 masak I'm dative if she is. er.
20:40 jnthn :D
20:40 masak wait. this is the public channel. :P
20:40 masak ^W ^W ^W
20:41 jnthn .oO( locative fail )
20:42 * frettled is almost dormative.
20:43 * masak is almost loquative
20:43 frettled merely almost?
20:43 masak barely merely almost.
20:43 masak hardly.
20:44 masak what was the question again? :)
20:46 frettled are we becoming querulative?
20:46 masak figuratively.
20:46 masak in fact, one of my favorite languages is Lative.
20:48 mj41 joined #perl6
21:00 dorlamm joined #perl6
21:06 masak I updated http://strangelyconsistent.org/b​log/june-14-2011-logic-operators -- adding in some final notes about precedence and junctions.
21:07 masak (I don't need junctions for anything, it just felt like a nice place to mention them)
21:10 masak std: SOME_LABEL: loop { next SOME_LABEL }
21:10 p6eval std 37a0cdd: OUTPUT«ok 00:01 119m␤»
21:10 masak std: SOME_LABEL: { redo SOME_LABEL }
21:10 donri left #perl6
21:10 p6eval std 37a0cdd: OUTPUT«ok 00:01 119m␤»
21:10 masak TimToady: can I redo/last immediate blocks?
21:11 masak guess not, 'cus they're not loops.
21:12 jnthn You'll hose up inlining of them too :P
21:12 masak oh, troo.
21:12 jnthn Well
21:12 jnthn To the degree that we're not allowed to assume we can detect usage of control exceptions.
21:13 jnthn I'm not actually sure what the rules are there.
21:13 jnthn Like, is "no return statement in lexical scope of a sub" = "no return handler needed" a valid optimization.
21:14 jnthn Trouble is that it's not actually a return statement
21:14 jnthn It's just a sub call.
21:18 tylercur1is rakudo: my &foo := { return 1; }; sub bar { foo; return 2; }; say bar; # curious
21:18 p6eval rakudo 248244: OUTPUT«1␤»
21:18 jnthn I suspect that behavior is wrong, fwiw.
21:18 dalek niecza: 55018cb | sorear++ | / (4 files):
21:18 dalek niecza: Move add_categorical responsibilities out of STD.add_my_name
21:18 dalek niecza: review: https://github.com/sorear/niecza/commit/55018cb1c4
21:18 dalek niecza: a94e021 | sorear++ | / (10 files):
21:18 dalek niecza: Remove all lexical handling from grammar.
21:18 dalek niecza: review: https://github.com/sorear/niecza/commit/a94e021da5
21:19 jnthn rakudo: my &foo := &return; sub bar { foo 1; return 2 }; say bar
21:19 p6eval rakudo 248244: OUTPUT«1␤»
21:19 jnthn That one is more of a concern.
21:19 sorear I should probably give the grammar a name other than 'STD:ver<6.0.0>:auth<http://perl.org>'...
21:19 masak sorear: if you're diverging, yes.
21:20 masak you basically don't have dibs on that :auth :)
21:21 sorear (that last commit deleted over 1400 lines \o/)
21:21 masak wow
21:22 sorear there are a few kinks left ... make test is warning about unused stuff that it really shouldn't
21:22 masak blog post! http://strangelyconsistent.​org/blog/june-15-2011-chomp
21:24 sorear niecza: SOME_LABEL: { redo SOME_LABEL }
21:24 p6eval niecza v6-155-gd58f791: OUTPUT«Unhandled exception: Illegal control operator: redo(SOME_LABEL, lexotic)␤  at /home/p6eval/niecza/lib/CORE.setting line 595 (CORE _lexotic @ 2) ␤  at /home/p6eval/niecza/lib/CORE.setting line 599 (CORE redo @ 2) ␤  at /tmp/bH1whppt8T line 1 (MAIN mainline @ 6) ␤  at
21:24 p6eval ../home/p6eval/ni…
21:24 masak right.
21:24 sorear niecza: SOME_LABEL: loop { next SOME_LABEL }
21:24 p6eval niecza v6-155-gd58f791: OUTPUT«(timeout)»
21:24 Reaganomicon joined #perl6
21:24 masak in my blog post today, I have to explicitly `last` out of a loop just because it's not a do-once loop.
21:24 masak I was looking for a better way to do that.
21:25 masak 'repeat while True { ... }' is one way, but...
21:25 masak feels like that cure is worse than the disease :)
21:25 masak er, sorry, 'repeat while False { ... }'
21:27 lichtkind masak: cheers, whats your main project currently
21:28 lichtkind is there ab opengl binding for parrot/rakudo?
21:29 hudnix left #perl6
21:33 masak lichtkind: main project currently: blogging.
21:33 masak I don't know about the status of OpenGL bindings, but I haven't heard that anyone's working on it.
21:34 lichtkind thanks
21:35 masak closest thing I can think of is a blog post Su-Shee did over a year ago.
21:36 masak it was about some sort of Perl 6 binding to something. I remember there being a screenshot of a window with graphics in it.
21:37 Util rakudo: my @a = ["a", 1], ["b", 2]; for @a -> [$c, $n] { say "$c $n" }
21:37 p6eval rakudo 248244: OUTPUT«a 1␤b 2␤»
21:37 masak but it looks like I remember it wrong: http://sushee.schreibsturm.org/entries/​2009/02/alpha_channels_in_gtkperl.html is about Perl 5, it seems.
21:37 Util rakudo: my @a =  a => 1,   b => 2;  for @a -> [$c, $n] { say "$c $n" }
21:37 p6eval rakudo 248244: OUTPUT«Nominal type check failed for parameter ''; expected Positional but got Pair instead␤  in <anon> at line 22:/tmp/zCMqnE7omE␤  in main program body at line 1␤»
21:38 Util rakudo: my @a =  a => 1,   b => 2;  for @a             { say "{.key} {.value}" }
21:38 p6eval rakudo 248244: OUTPUT«a 1␤b 2␤»
21:38 Util What signature can I use to unpack pairs, to avoid having to explicitly call .key and .value?
21:38 Util Or is there something like a Pair.kv method?
21:38 PerlJam TIAS  :)
21:38 masak Util: it doesn't work yet because Pairs are too parroty.
21:38 dorlamm left #perl6
21:38 masak Util: will work in nom :)
21:38 jnthn orly?
21:39 jnthn I suspect making Pair Positional is orthogonal...
21:39 masak oh.
21:39 jnthn If we even want to do that.
21:39 masak no, I meant being able to unpack Pairs in siggies.
21:39 masak you can't at present.
21:40 jnthn rakudo: my @a =  a => 1,   b => 2;  for @a>>.kv -> $k, $v { say "$k = $v" }
21:40 p6eval rakudo 248244: OUTPUT«a = 1␤b = 2␤»
21:40 PerlJam But he can $pair.kv though
21:40 masak oh, sure.
21:40 PerlJam what jnthn said
21:40 masak but not unpacking, which is also nice sometimes.
21:40 jnthn masak: How is unpacking pairs meant to work?
21:40 jnthn masak: I remember a discussion of this before but not a conclusion... :)
21:40 masak jnthn: Pairs are objects, so like any object unpacking.
21:41 jnthn masak: Ah, you mean [:$key, :$value]?
21:41 jnthn Yes, that'd work.
21:41 masak yeah.
21:41 masak in nom. :)
21:41 jnthn ah, yeah, I can guess why it doesn't in master.
21:41 Util PerlJam: I read that part of S32/Containers yesterday, be did not actually try it. (Chagrin) Thanks.
21:41 masak jnthn: right.
21:41 Psyche^ joined #perl6
21:41 Util s/be/but/
21:43 Util Thanks all!
21:44 Patterner left #perl6
21:44 Psyche^ is now known as Patterner
21:45 wamba left #perl6
22:01 dju_ joined #perl6
22:02 Tedd1 left #perl6
22:03 Tedd1 joined #perl6
22:04 dju left #perl6
22:07 Util $s ~~ /b/ is creating a match object in $/ .
22:07 Util Should $s.match(/b) also set $/ ?
22:09 Util (adding missing /)
22:09 Util Should $s.match(/b/) also set $/ ?
22:13 masak I doubt the spec says.
22:14 dju_ is now known as dju
22:16 stepnem left #perl6
22:19 mberends left #perl6
22:20 ShaneC joined #perl6
22:20 sorear Util: implementation defined, I'd say
22:20 ShaneC left #perl6
22:21 Util Thx
22:21 mj41 left #perl6
22:24 whiteknight joined #perl6
22:25 masak 'night, #perl6.
22:25 masak left #perl6
22:27 stepnem joined #perl6
22:36 lichtkind andrew++: If the weather is good (no rain), we'll sit'n'roam (or, in Modern Perl it should be written as sit::n::roam)
22:37 tadzik oh, I got it just now :)
22:37 tadzik also, lichtkind, I'm more-less there
22:39 lichtkind tadzik: great
22:39 lichtkind tadzik: ready to answer something?
22:40 lichtkind ah you mena in riga :)
22:41 tadzik lichtkind: no, not in Riga :P
22:41 tadzik more-less alive and not learning
22:47 leprevost left #perl6
23:04 TimToady phenny: tell masak methinks you said "right side" when you meant "left side"
23:04 phenny TimToady: I'll pass that on when masak is around.
23:06 cdarroch left #perl6
23:09 Tene joined #perl6
23:09 Tene left #perl6
23:09 Tene joined #perl6
23:10 Mowah left #perl6
23:21 Holy_Cow joined #perl6
23:24 avar joined #perl6
23:30 ascent_ left #perl6
23:30 ascent_ joined #perl6
23:34 y3llow_ joined #perl6
23:37 gbacon_ joined #perl6
23:40 mberends joined #perl6
23:41 pjcj left #perl6
23:41 pjcj joined #perl6
23:41 thou left #perl6
23:43 Chillance left #perl6
23:46 pjcj left #perl6
23:47 dalek left #perl6
23:49 daniel-s joined #perl6
23:49 molaf_ joined #perl6
23:52 Courz joined #perl6
23:52 Courz someone?
23:53 molaf left #perl6
23:53 Reaganomicon left #perl6
23:53 charsbar__ left #perl6
23:53 jaldhar left #perl6
23:53 chitragupt left #perl6
23:53 y3llow left #perl6
23:53 daemon left #perl6
23:53 jrockway left #perl6
23:53 ilogger2_ left #perl6
23:53 p6eval left #perl6
23:53 aindilis` left #perl6
23:53 phenny left #perl6
23:53 hugme left #perl6
23:53 gbacon left #perl6
23:53 DarthGandalf left #perl6
23:53 y3llow_ is now known as y3llow
23:54 Courz left #perl6
23:55 daniel-s ?
23:55 daniel-s IRC just died
23:57 sorear hallelujah!
23:57 sorear wait
23:57 sorear I seem to still be on IRC
23:57 sorear daniel-s-- # giving me false hope
23:58 daniel-s :(
23:58 sorear IRC really, really needs to die
23:58 daniel-s god took a chainsaw and just cut IRC in half
23:59 p6eval joined #perl6
23:59 daemon joined #perl6
23:59 dalek joined #perl6
23:59 aindilis` joined #perl6
23:59 Reaganomicon joined #perl6
23:59 _jaldhar joined #perl6
23:59 charsbar__ joined #perl6
23:59 chitragupt joined #perl6
23:59 jrockway joined #perl6
23:59 ilogger2_ joined #perl6
23:59 hugme joined #perl6
23:59 DarthGandalf joined #perl6

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo