»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend!
Set by sorear on 4 February 2011.
00:14 takadonet joined 00:21 clkao left 00:26 lumi_ left 00:27 lumi_ joined
dalek kudo/nom: 969bd88 | jnthn++ | src/Perl6/Actions.pm:
Fix braino with storing subset name.
00:31
kudo/nom: c19d81d | jnthn++ | src/binder/bind.c:
Toss a couple of unused statics.
kudo/nom: 5a08e61 | jnthn++ | src/ (8 files):
Wire up **@foo to make a LoL.
sorear *envy* 00:33
jnthn pmichaud: This much works: 00:39
> sub foo(*@x) { say @x.HOW.name(@x) }; foo(1,2,3)
Array
> sub foo(**@x) { say @x.HOW.name(@x) }; foo(1,2,3)
LoL
pmichaud: Note that .WHAT is busted... :/
oh, no wonder...
sorear is WHAT really busted, or just WHAT.Str? 00:40
jnthn sorear: the latter
sorear also
jnthn sorear: .WHAT would be hard to be busted since it's mostly just a pointer follow :)
sorear jnthn: I take it you've finally figured out the correct semantics for **@x
jnthn: I have learned never to call a bug impossible :)
jnthn sorear: Actually pmichaud++ asked me to write up the binder. 00:41
sorear Plural you.
jnthn sorear: er, *wire up*
sorear: ah, OK :)
english-- :)
sorear heh. maybe I should say thou when I mean thou, it would no doubt annoy thou... 00:42
+but 00:43
jnthn ;)
TimToady well, plural you should be ye
pmichaud I thought I fixed WHAT earlier today 00:45
which part is busted?
sorear jnthn: 'method trymop($f) { unless try { $f(); True } { self.sorry($!) }; }' :) 00:46
jnthn pmichaud: see push 00:51
sorear: \o/
dalek kudo/nom: 716ffd2 | jnthn++ | src/core/ (3 files):
Various stringificaiton fixes.
00:52
sorear jnthn: How well does the nom GLOBAL merger handler cyclic package graphs?
jnthn pmichaud: Missing: src/core/LoL.pm :)
sorear: Given it represents about 10 minutes of coding time, probably horrendously at the moment. :)
sorear: Example? 00:53
(not sure I'm thinking what you are...)
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:54
jnthn pmichaud: No hurry for it. 00:55
sorear Foo.pm: class Foo { }
Foo/Bar.pm: class Foo::Bar { use Foo :OUR }
jnthn pmichaud: As in, no more urgent that then time scale you just suggested. :)
pmichaud jnthn: oh. Yeah, I hadn't had a chance to review/fix the bogus Str() methods yet. 00:56
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.
pmichaud right
that's something we'll probably have to watch
jnthn sorear: I suspect ESTACKOVERFLOW
pmichaud or write tests for, more likely
sorear note that while cycles are the worst case, they aren't the most common corner case
jnthn sorear: Apart from...no :OUR in use yet :)
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. :-)
jnthn sorear: Have you added above to the spectest at all?
sorear jnthn: no, because I'm not really sure what it should do
jnthn sorear: oh, OK :)
sorear the obvious answer is Prolog-style unification
but blech
jnthn sorear: Not sure where you're going with the export one, since EXPORT is lexical. 00:59
e.g. we never have to merge EXPORT
Unless people go writing our package EXPORT { } somewhere... :/
sorear there are situations where merging lexical packages is necessary 01:00
at least, importable lexical packages 01:01
hmm
EXPORT is never importable, is it?
jnthn I'm not convinced on merging lexical packages yet.
sorear A.pm: my class A { } 01:02
B.pm: use A; class A::B is A { }
C.pm: use A; class A::C is A { }
main: use A; use B; use C; # what's in A:: ?
jnthn wonders what nom's merge does with that today... 01:04
01:04 donri left, noganex left
jnthn though ooc... 01:05
01:05 donri joined
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
jnthn oh heh 01:07
nom's import is an epic cheat today
The answer to "what would it do" today though, from looking at the code... 01:08
...is that use B would cause it to create GLOBAL::A::B.
And the global merger would have no clue about the lexical A
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:09
Not particularly suggesting that's great behavior. :) 01:10
Guess we can only prevent people from shooting themselves in the foot so much...
01:11 lumi_ left 01:12 lumi_ joined
jnthn OK, enough for tonight. 01:12
dalek kudo/nom: a16dfeb | jnthn++ | NOMMAP.markdown:
Update nommap.
01:12 tokuhirom joined 01:14 yinyin joined, takadonet left
jnthn & 01:15
01:16 whiteknight left 01:20 woosley joined 01:21 cotto left 01:24 icwiener joined, icwiener left, icwiener joined 01:27 icwiener_ left 01:29 lumi_ left 01:30 lumi_ joined 01:39 icwiener left 01:51 ingy left 01:56 lumi_ left 01:57 lumi_ joined 02:02 Tene left, ingy joined 02:03 ingy left 02:14 ingy joined 02:31 daniel-s_ joined 02:33 lichtkind left 02:36 lumi_ left, araujo left 02:37 lumi_ joined, araujo joined 02:39 cooper left, cooper joined
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␤»
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
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?
cooper only a few minutes
02:50 yinyin joined
cooper even if run rakudo at all `perl6` (the prompt thing) 02:51
it uses like 90mb ram almost
colomon oh, sure, I'd expect 90mb there.
cooper really? it seems prettyyy high to me
is there a more resource-friendly interpreter that you would suggest? 02:52
colomon give me a moment 02:53
02:55 s1n left, s1n joined
colomon I verify the 87.2 MB running rakudo prompt, 47.2 running niecza. 02:56
so you could try niecza 02:57
02:57 clkao joined
cooper i will do that, thank you 02:57
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:59 obra joined
alyx When will perl6 have a nice small interpreted like perl5 does? :( 02:59
02:59 obra left
colomon alyx: no idea. I think speed is likely to be a higher priority in the short term. 03:00
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
cooper yeah
yes, it is hardly worth using a language whose interpreter eats so much memory :(
alyx -/+ buffers: 97 5
cooper and on some systems you might not even be able to !
alyx I cannot run either interpreter. This causes speed to be a very low priority. :P
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.
cooper TimToady: but no Perl 6 interpreter will as light as a perl
+be
if it is i'll be dead by then 03:03
TimToady but a compiled p6 program might be
alyx cooper: hopefully it won't be as bad as Ruby! :P
cooper :P
TimToady p5 has a lot of cruft to, it's all just buried deep in C code
*too 03:04
daniel-s_ perl6: my @a = (1, 2, 3); my $b = @a; $b.perl.say;
p6eval pugs, rakudo ae5bea, niecza v6-153-g6cb84d6: OUTPUT«[1, 2, 3]␤»
TimToady there are ways in which the p6 design is much cleaner
in the long run this will make it much more optimizable than p5
alyx it may be dirtier, but at least it's usable. :P
ooh, nice
TimToady p6 is usable now, for some definitions of usable not including ancient hardware, alas 03:05
and some definition of fast that isn't :/
but it's getting better
I think people will end up liking p6 better than DNF. 03:06
alyx DNF?
03:06 jaldhar joined
TimToady They rushed Duke Nukem Forever out the door too soon. :) 03:06
alyx xD 03:07
TimToady: it only took a decade!
colomon afk # bed 03:08
TimToady o/
alyx night colomon
cooper night
03:11 lumi_ left, takadonet joined 03:12 lumi_ joined 03:13 kevin_ joined 03:16 kevin_ left, [particle] left
starcoder alyx | cooper: hopefully it won't be as bad as Ruby! :P 03:17
Ruby's not that bad, actually
03:17 [particle] joined
cooper yes, it is nice that we live where we can share our opinions 03:17
alyx starcoder: RoR uses more memory than Java.
starcoder: I consider this "Bad"
starcoder you didn't say RoR 03:18
:P
alyx starcoder: Ruby is also not particularly friendly with the resources on its own
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
starcoder lol 03:19
cooper k
at least it isn't using over a GB of memory like irb was five minutes ago
alyx cooper: LOLWHAT 03:20
03:20 Trashlord joined
cooper alyx: it wasn't doing anything, i dunno why it was using that much 03:20
03:20 lateau joined
alyx cooper: ..wow 03:20
TimToady finds it amusing that people from NJ, TX, and CA agree on anything :)
lateau hello perl6 03:21
cooper alyx: yes, that's what i was thinking
alyx TimToady: xD
cooper I was actually checking on rakudo when i saw that
03:21 lumi_ left
cooper then i was unpleasantly surprised again when i saw that rakudo was using so much >_> 03:22
03:22 Eevee left, lumi_ joined
alyx "Oh, irb was using a gig of memory, BUT RAKUDO WAS USING 90 MB! THE HORROD!" 03:22
*HORROR
TimToady lateau: 今日は
cooper my exact thoughts ^ 03:23
alyx 53
cooper alyx: actually it was using 183mb
(not rakudo alone, but this IRC bot)
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
sorear cooper: give me a year or two... can you stay alive that long?
03:25 lateau left
cooper i'll try to :D 03:25
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
rakudo: say "I am a string.".WHAT
p6eval rakudo ae5bea: OUTPUT«Str()␤»
cooper thanks
03:27 Su-Shee left
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, Eevee joined
sorear Perl 5's parser is... well... I've seen slower bytecode loaders. :/ 03:28
NOT going to be easy to compete with.
TimToady hehheh
03:28 Su-Shee joined
TimToady that's because it cheats all over the place 03:28
cooper cheats?
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:29
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:
Perl 6 uses some very novel parsing technology, there are no mature yacc-like tools that we can use for the p6 grammar 03:31
TimToady the bet here is that computers are getting fast enough that the benefits of not using LALR(1) outweigh the liabilities 03:32
03:32 lateau left, daniel-s_ left
TimToady benefits such as better error messages than "Syntax error" 03:32
oh yes, sometimes the lexer simply lies to the yacc grammar too about what it saw 03:33
oh, and there's both lookahead and lookbehind dwimmery of a most hacky sort
(in p5) 03:34
sorear most of the dwimmery in p5 is hacky
TimToady yeah, some hacker wrote it, I hear...
the other fun thing the p5 parse does is interleave 3 different passes simultaneously 03:35
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?
ow
TimToady no 03:37
CHECk is called at the end of the main compilation unit
the peephole optimizer is called separately for each sub
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
is interleaving of passes a bad thing?
it seems necessary for BEGIN to work
03:39 JimmyZ joined
TimToady correct, it's just tricksy for people to understand, and hence contributes to the insanity 03:39
but it should be a bit easier in p6 with much less downward context propagation
03:40 envi_laptop joined 03:42 lateau joined
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
missing some verb in there or other...
03:44 satyavvd joined
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:45
03:47 lateau left, lateau joined 03:52 lateau left
sorear TimToady: how long did it take you to work out the details of mortalisation? 03:56
03:59 hudnix left, wamba joined
TimToady about as long as it would have taken to work out the details of real GC :) 04:00
04:02 lateau joined
TimToady not refcounting items on the stack was probably a mistake, in retrospect 04:04
a premature optimization
04:04 lumi_ left
TimToady but p5 is as fast as it is because of all the premature optimizations ;) 04:05
04:05 lumi_ joined 04:06 cooper left 04:12 lateau left 04:14 lateau joined 04:17 cotto joined 04:18 lateau left 04:21 scottp joined 04:24 dukeleto left 04:29 scottp left 04:30 mberends left 04:34 scottp joined 04:45 scottp left 04:51 scottp joined 04:55 lumi_ left 04:56 lumi_ joined 05:04 JimmyZ left 05:05 cognominal left, cognominal joined
sorear std: my $¢ 05:09
p6eval std 37a0cdd: OUTPUT«ok 00:01 119m␤»
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)␤»
sorear nom: module Foo { has $!bar }
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 05:21 koban left
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:21
so a package *can* have attributes if it happens to be a class as well 05:22
or something like that...
it's more like "this kind of package declaration doesn't supply a sufficiently powerful meta-object to declare an attribute 05:23
but that's a bit long-winded
"You can't declare that here!" would be more to the point 05:24
05:25 molaf joined 05:27 scottp left 05:31 scottp joined 05:35 ingy left
scottp perl6: say 3; 05:40
p6eval pugs, rakudo ae5bea, niecza v6-153-g6cb84d6: OUTPUT«3␤»
05:42 ingy joined 05:50 ingy left, ingy joined 05:56 Bzek joined 06:00 ingy left 06:01 ingy joined 06:04 wamba left, araujo left 06:05 lumi_ left, araujo joined 06:06 lumi_ joined 06:08 jedai_ left, dju_ joined, dju_ left, dju_ joined 06:10 dju__ joined, jedai joined 06:13 dju__ left, dju_ left 06:14 daniel-s_ joined 06:17 dju joined, dju left, dju joined
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 06:21 dju left 06:32 daniel-s_ left 06:35 dju joined 06:37 dju left, dju joined 06:39 dju_ joined, dju_ left, dju_ joined 06:40 dju left, thou left 06:41 dju_ left, dju__ joined 06:46 Shozan joined
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:␤------> if 5 -> ⏏$five { $_ := 5 }; say $_␤␤5␤»
..pugs: OUTPUT«*** Cannot bind to non-existing variable: "$five"␤ at /tmp/yAvxmRGR3a line 1, column 1␤»
..rakudo ae5bea: OUTPUT«Any()␤»
sorear Is Rakudo right here?
niecza currently likes to pretend that $_ exists only in blocks with an implicit $_ signature 07:05
07:14 mj41 joined 07:18 lumi_ left 07:19 lumi_ joined 07:20 birdwindupbird joined
dalek ecza: 46b6529 | sorear++ | / (6 files):
Add functionality to Niecza core add_my_name to detect redefinitions
07:21
07:24 wamba joined 07:30 wamba left 07:31 breatharian joined
breatharian howdy 4th dimensioners 07:31
I brought up another Perl5 question on SO. stackoverflow.com/questions/6328137...ng-in-cpan 07:32
Wondering, what's the Perl 6 way to do that? 07:33
07:33 dju__ left, dju_ joined
breatharian I like the suggestion using 'find_max' to implement 'longest'. 07:33
I asked the List::MoreUtils guys if they'd include it. :-) 07:34
07:34 dju__ joined, dju__ left, dju__ joined, dju_ left 07:35 koban joined 07:41 mikehh left
moritz rakudo: say <ab foobar x>.max: *.chars 07:44
p6eval rakudo ae5bea: OUTPUT«foobar␤»
07:45 cooper joined, cooper left, cooper joined
moritz breatharian: is that short enough for you? :-) 07:46
07:46 lumi_ left 07:47 lumi_ joined
breatharian moritz, Thanks! 07:48
moritz, Why the ": *.chars" at the end? Seems like it works without that as well (at the rakudo repl).
What "kind of object" does <a ab abc> return? I.e. is that a Perl 6 list of strings? 07:49
moritz list of strings, yes 07:51
breatharian: without it it only works by accident 07:52
rakudo: say <x a fooobarbaz>.max
p6eval rakudo ae5bea: OUTPUT«x␤»
moritz rakudo: say <x a fooobarbaz>.max: *.chars
p6eval rakudo ae5bea: OUTPUT«fooobarbaz␤»
breatharian moritz, Is there a way to query any expression for it's "type"?
moritz rakudo: say <x a fooobarbaz>.WHAT
p6eval rakudo ae5bea: OUTPUT«Parcel()␤»
breatharian (so that I can answer that question myself for other expressions) :-)
moritz rakudo: say <x a fooobarbaz>[0].WHAT
p6eval rakudo ae5bea: OUTPUT«Str()␤»
breatharian aha
moritz "Parcel" is "Parenthesis Cell", and something like a List 07:53
breatharian ok
Ah so <...> is similar to P5's qw{...} 07:55
moritz aye 07:56
but it's supposed to be smarter about types (but it isn't yet in rakudo)
breatharian It's too bad P5 doesn't have something like find_max in a common module.
moritz, What's not in rakudo?
moritz smart about types
breatharian aha
moritz <1 23 foo>.[0] should be an Int, it is a Str
breatharian aha
So workaround is: <1 23 abc>.[0].Int.WHAT 07:58
?
moritz if you need an Int, yes
breatharian kewl
moritz or just (1, 23, 'abc')
breatharian moritz, Uh oh: <a b c cd z>.max 08:00
returns 'z' on rakudo
sorear has been dreaming lately of a new Perl 6 implementation
breatharian: you forgot : *.chars
breatharian 8-)
sorear breatharian: without : *.chars, it picks the alphabetically last
moritz sorear: another new one? :-)
sorear moritz: yes 08:01
breatharian thanks sorear
sorear I'm wondering when I should try to share my thoughts... next #phasers maybe?
breatharian So the ": *.chars" modifies the behaviour of 'max'?
moritz or a blog post
sorear breatharian: yes
moritz breatharian: right, it tells .max what to maximize
sorear breatharian: $object.METHOD: ARGUMENT is equivalent to $object.METHOD(ARGUMENT) 08:02
breatharian: .max takes a single optional argument which tells it how to compare
like how p5 'sort' takes an optional comparison function
breatharian Aha. so there's a 'chars' method on strings?
sorear yes 08:03
breatharian Is there a way to get a list of methods on a given object? (like Python's introspection abilities)
sorear but in Perl 6, sorting and searching methods are slightly smarter, and can use one-argument functions as well
.say for 5.^methods
moritz rakudo: say ~ 'foobar'.^methods(:local)
p6eval rakudo ae5bea: OUTPUT«ACCEPTS perl pred succ WHICH Bool Str encode indent␤»
moritz rakudo: say ~ 'foobar'.^methods()
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
..atan2…
breatharian woah...
sorear strings and numbers have most of the same methods, and they coerce as needed 08:04
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
breatharian :-)
nebuchadnezzar SIGCOFFEA
sorear breatharian: all Perl 6 objects can pretend to be singleton lists, for DWIM sake; should .length return 1 ? 08:06
breatharian: also, there was at one point an idea that strings should answer to .chars .graphs .codes .bytes
breatharian aha 08:07
sorear although nowadays sequences of characters and sequences of bytes are entirely separate types
breatharian .nouns, .verbs, ... :-)
.vowels
:-p
jlaire .typos would be useful
breatharian ha
08:13 kevin___ joined
breatharian sorear, So what is the dreamy new Perl 6 about? :-) 08:13
sorear breatharian: very hard optimizing for startup speed 08:14
breatharian aha
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?
sorear No
if by "active" you mean "modified this year and able to run 'say 2 + 2'" 08:16
jlaire something like that
(can yapsi do addition? :P)
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"
jlaire: Not natively. 08:18
Su-Shee kevin___: just get it, try it and if its useful to you, use it.
sorear jlaire: It has increment, decrement, test for zero, and looping, so it's at least Turing complete...
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
sorear Su-Shee: of course you can ask 08:19
Su-Shee sorear: I was wondering what the use of c# and the .net really means and what is your idea behind it. 08:20
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
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
sorear also C# compilers make Perl5's parser look *slow* 08:21
Su-Shee sorear: so only technical reasons? 08:22
08:22 lumi_ joined, TiMBuS joined
sorear There's also a historical reason; it started as a fork of perlesque 08:22
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/
wait that sounds like a bad thing
sorear Su-Shee: sorry, I couldn't parse that. 08:25
TiMBuS niecza is the ENTERPRIZE version of perl6 by default 08:26
sorear Ha
TiMBuS as it cleanly synergizes with already implemented and proven architectures within the company
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
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"
let's go for.
sorear Su-Shee: if I can make that happen, it's a lovely fringe benefit 08:28
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
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:29
TiMBuS like a litear selling point 08:30
big companies actually pay for this stuff 08:31
literal
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:33
kevin___ Is Rakudo too slow now? 08:38
moritz yes 08:39
08:39 dakkar joined
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
kevin___ Thanks, hope next version will be better. 08:41
08:42 daxim joined, Woodi left 08:43 Woodi joined 08:45 Mowah joined 08:50 kevin___ left 08:52 RKG joined 08:53 RKG left 08:57 lumi_ left 08:58 lumi_ joined 09:06 agentzh joined
daniel-s perl6: (3,2).say x2; 09:22
p6eval niecza v6-154-g46b6529: OUTPUT«===SORRY!===␤␤Whitespace is required between alphanumeric tokens at /tmp/aCdtCmA8mK line 1:␤------> (3,2).say x⏏2;␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 469 (CORE die @ 2) ␤ at
../home/p6eval/niec…
..rakudo ae5bea: OUTPUT«===SORRY!===␤Confused at line 22, near "(3,2).say "␤»
..pugs: OUTPUT«*** ␤ Unexpected "x2"␤ expecting operator␤ at /tmp/vwiEh6WyOf line 1, column 11␤»
sorear daniel-s: what are you trying to do? 09:23
daniel-s I remember x did something 09:24
but I can't remember
sorear rakudo: say "foo" x 5
p6eval rakudo ae5bea: OUTPUT«foofoofoofoofoo␤»
sorear it's an infix op
daniel-s thanks
jnthn morning, #perl6 09:27
09:27 tzhs joined
moritz \o 09:27
dalek ecza: d58f791 | sorear++ | / (4 files):
Rewrite "declared but not used" check using niecza-metamodel
09:28
sorear '
'night, #perl6.
jnthn good mor...night, sorear :) 09:30
09:33 lumi_ left 09:34 lumi_ joined 09:38 icwiener joined
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_
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, Woodi left 09:51 Woodi joined 10:03 woosley left, daniel-s left 10:05 daniel-s joined 10:12 Woodi left, lichtkind joined
lichtkind cheers 10:13
10:14 Woodi joined 10:33 Woodi left 10:34 Woodi joined
dalek kudo/nom: 5788019 | jnthn++ | src/ (3 files):
Constraint types on parameters.
10:36
10:40 Woodi left
lichtkind moin jnthn 10:44
jnthn o/ lichtkind 10:47
10:47 Woodi joined
lichtkind glad to see you in <schwarzenegger voice>action</schwarzenegger voice> 10:48
jnthn: does nom/model 6 has any MOP?
jnthn lichtkind: For sure - that's kind of the point of 6model. :) 10:53
lichtkind: See github.com/rakudo/rakudo/tree/nom/.../Metamodel
lichtkind thanks 10:58
10:58 lumi_ left 10:59 lumi_ joined
lichtkind jnthn: has it any resemblance with SMOP or the perl 5 antlers? 10:59
jnthn lichtkind: Both have influenced the design, yes.
lichtkind: It's different to both, but drew from both of them.
11:07 yinyin left
daxim rakudo, "\cL,¢,â".split.perl 11:10
rakudo, "\cL,¢,â".split.perl.say
rakudo, "\cL,¢,â".split(//).perl.say 11:11
:< narf 11:12
jnthn rakudo: "\cL,¢,â".split.perl.say 11:14
p6eval rakudo ae5bea: OUTPUT«===SORRY!===␤Method 'panic' not found for invocant of class 'Regex;Match'␤»
jnthn ouch
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)␤»
lichtkind jnthn: the plans to replase rakudo* with something different after a year are still valid? 11:18
jnthn lichtkind: That's probably a topic for discussion at YAPC::EU when various Rakudo devs will be about. 11:22
dalek kudo/nom: b51aaa0 | jnthn++ | src/Perl6/ (2 files):
Make has $a; style attribute declarations work (declares $!a and $a as a lexical alias).
11:23
kudo/nom: 4851795 | jnthn++ | src/Perl6/Actions.pm:
Fix up implicit $_ handling a little.
p: 00a7fe4 | jonathan++ | src/HLL/Actions.pm:
Fix broken error reporting in string_to_int (daxim++).
11:24
lichtkind jnthn: thanks so i just have to ask masak about the state of the module installer
moritz ask tadzik
he wrote panda 11:25
which actually worked last I looked :-)
lichtkind moritz: thanks 11:26
was panda formerly known as pies?
moritz yes
(-ish)
11:27 lumi_ left, lumi_ joined
lichtkind :) 11:27
tadzik: are you around? 11:28
11:34 fhelmberger left
lichtkind maybe now i understand the hello pandas better 11:34
11:35 fhelmberger joined 11:40 d4l3k_ joined 11:41 dalek left, d4l3k_ is now known as dalek, ChanServ sets mode: +v dalek 11:42 woosley joined 11:45 cooper left 11:48 mtk joined 12:03 silug left, pernatiy joined 12:08 lumi_ left, lumi_ joined 12:12 agentzh left
takadonet morning all 12:16
jnthn o/ takadonet 12:18
takadonet jnthn: how are u sir?
jnthn takadonet: Well, thanks :) 12:19
And you? 12:20
takadonet good good 12:21
12:21 PZt left 12:22 mtk left 12:24 mtk joined 12:28 dju__ left 12:29 mtk left 12:30 mtk joined 12:34 jaldhar left 12:35 PZt joined, Mowah left, jaldhar joined 12:38 hudnix joined
lichtkind takadonet: \o 12:39
takadonet lichtkind: \o 12:40
12:41 araujo left, lumi_ left 12:42 lumi_ joined, chitragupt left
daxim panda? 12:46
12:46 mtk left
daxim hey, didn't you have a factbot here? 12:46
12:46 Mowah joined 12:47 estrabd left 12:48 pothos_ joined, mtk joined
daxim I just installed the latest stable rakudo* to try to port some perl5 snippets 12:48
12:48 pothos left, chitragupt joined, pothos_ is now known as pothos
daxim I see an XML writer there and a HTTP server, how did you manage that without an encoding module? 12:48
moritz rakudo has some encodings built-in 12:49
most notably utf-8 and latin-1
daxim oh great, that covers a lot
moritz rakudo: say chr(165).encode('utf-8').perl
p6eval rakudo ae5bea: OUTPUT«Buf.new(165)␤»
daxim what about iso-646?
moritz urks, tht looks wrongish, doesn't it?
rakudo: say chr(165).encode.perl 12:50
p6eval rakudo ae5bea: OUTPUT«Buf.new(165)␤»
moritz rakudo: say chr(250).encode.perl
p6eval rakudo ae5bea: OUTPUT«Buf.new(250)␤»
moritz rakudo: say chr(260).encode.perl
p6eval rakudo ae5bea: OUTPUT«Buf.new(196, 132)␤»
moritz where's masak when you need hin?
daxim I see the name ASCII is recognised, where is the registry of encoding names? 12:51
moritz daxim: try grepping in src/core/{Str,Buf}.pm 12:52
daxim Str.pm:9: my @KNOWN_ENCODINGS = <utf-8 iso-8859-1 ascii>; 12:53
long way to go :( 12:54
moritz patches welcome :-) 12:55
I think parrot understands more
you'd just have to hook them up somehow
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
á la Encode's CHECK coderef
jnthn Hmm, that array looks...inextensible.
12:56 Holy_Cow joined
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 13:22 leprevost joined 13:26 dju joined 13:29 dju left 13:30 dju joined, dju left, dju joined 13:31 lumi_ left 13:32 lumi_ joined 13:36 Woodi left 13:37 MayDaniel joined 13:42 pernatiy left 13:43 Woodi joined 13:45 sftp left
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)␤»
moritz wanted urgently: actual type name in the error message
nom: say <a b c>.WHAT
p6eval nom: OUTPUT«Parcel()␤»
13:48 sftp joined 13:50 Woodi left 13:51 molaf left
daniel-s what's nom? 13:52
moritz rakudo on a New Object Model 13:53
13:54 wamba joined, Woodi joined, Trashlord left 13:58 Woodi left 14:00 Woodi joined 14:03 silug joined 14:04 Woodi left 14:05 MayDaniel left, Woodi joined
moritz nom: method x(Int:D:, $x) { } 14:06
colomon rakudo: my @a = 1..100; my @slice = 3..5; say @a[@slice]
p6eval nom: OUTPUT«Malformed parameter at line 1, near ", $x) { }"␤current instr.: 'nqp;HLL;Grammar;panic' pc 23569 (src/stage2/gen/NQPHLL.pir:6311)␤»
rakudo ae5bea: OUTPUT«456␤»
moritz nom: method x(Int:D: $, $x) { }
p6eval nom: OUTPUT«Contextual $*PKGDECL not found␤current instr.: 'nqp;Perl6;Actions;_block2493' pc 45699 (src/gen/perl6-actions.pir:15844)␤»
moritz nom: method x(Int:D: $self, $x) { }
p6eval nom: OUTPUT«Contextual $*PKGDECL not found␤current instr.: 'nqp;Perl6;Actions;_block2493' pc 45699 (src/gen/perl6-actions.pir:15844)␤»
moritz nom: class A { method x(Int:D: $self, $x) { } }
p6eval nom: ( no output )
moritz nom: class A { method x(Int:D: $, $x) { } } 14:07
p6eval nom: ( no output )
jnthn eww, that's a nasty way to fail 14:08
It, er, fails at failing. :/
moritz aye
jnthn It wants to use $*PKGDECL in the error.
Maybe "you cannot but a named method here" is simpler. :)
moritz my $*PKGDECL = '<mainline>'; # in TOP ? 14:09
jnthn Along the same lines as TimToady++ suggested we do for attributes.
Hm
maybe but I'm not sure to have degree mentioning the $*PKGDECL in errors is approved of.
I thought it was a good idea.
TimToady seemed to feel otherwise, and he kinda has a point. 14:10
It's really how people think about classes and modules and packages in relation to one another, I guess.
To me package and class aren't in a realtionship, they're two HOWs that compose some of the same roles.
But I probably have too lowlevely a view. :)
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) {"␤»
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)␤»
moritz why does it want 3?
the invocant, $a, and ... ?
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)
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
jnthn moritz: You declare the invocant and two more. 14:16
The invocant, $ and $a.
I think you maybe meant x(A:D $: $a) 14:17
moritz oh
jnthn But you don't need that $ there
The : is a separator
er, the second colon is ;)
moritz ah, just no comma after it
jnthn : is a comma
well
:)
It plays the same role as one :)
14:18 rindolf joined 14:19 estrabd joined
dalek kudo/nom: 9ede977 | moritz++ | src/core/ (2 files):
implement ACCEPTS in Str and Numeric
14:24
14:26 bluescreen10 joined
daniel-s I've tread really hard to read the synopses on packages and modules 14:26
I don't think it's very clear on what the difference is
(at least not to me)
moritz daniel-s: same here
daniel-s: I gathered that modules have somehow "more meat" than packages
PerlJam what moritz said 14:27
moritz and that packages are somehow the lowest common divisor of (module, class, role, grammar) or so
PerlJam or, sometimes I think of it as packages are "historic" and modules are the new Perl 6 way.
moritz but I don't quite got what exactly it is that a module has that a package has not
jnthn Also compare github.com/rakudo/rakudo/blob/nom/...kageHOW.pm vs github.com/rakudo/rakudo/blob/nom/...duleHOW.pm
One important thing though 14:28
class A::B { }
What is A there? We need to auto-viv *something* to hold B.
That A is a package
daniel-s because in the synopsis it says that module is supposed to replace package
jnthn But a package can always "go away"
daniel-s or something like that
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.
daniel-s but there are also packages
PerlJam jnthn: so modules have versions and such, but packages do not?
jnthn moritz: Sure
daniel-s there's a whole synopsis on packages
jnthn PerlJam: They have versions, yes.
More importantly though, you could write:
daniel-s is there a pastbin for pod?
moritz jnthn: so class is basically a superset of the Module functionality?
daniel-s one that renders it nicely
jnthn package A { }; class A::B { }; class A { }
but this is not OK:
module A { }; class A::B { }; class A { }
The class A would be a redeclaration error. 14:30
Actually
remove class A::B { } from both examples
And property still holds.
moritz so, "a package is what you use to stub namespaces"?
jnthn moritz: Pretty much.
moritz: (functionality) Yeah. Again, see the list of roles: github.com/rakudo/rakudo/blob/nom/...lassHOW.pm :)
PerlJam at least that jnthn's current understanding ;-) 14:31
jnthn All the ones for Module, plus some more.
PerlJam: No, the spec says that too.
moritz ... just not very clearly
daniel-s PerlJam: I've started writing a pod about modules
pastebin.com/HndeWJ7M
is it too simple?
PerlJam there's no such thing as "too simple"
Simple is good.
(IMHO)
daniel-s also, I intend to describe how to create modules, export functions, import different versions, and some other stuff 14:32
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
daniel-s isn't there somebody who is supposed to just know?
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)␤»
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.
moritz daniel-s: on a nearly related topic, I can recommand ttjjss.wordpress.com/2010/08/09/so-...-6-module/
14:37 bluescreen10 left
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:38
moritz heh, somebody thinks I read the specs :-) 14:39
14:43 Trashlord joined
tadzik lichtkind: not really 14:45
jnthn moritz: In the patch you just did for ACCEPTS, need to remove the protos.
moritz: Declaring a proto = hide all candidates higher in the inheritance hierarchy.
moritz oh
and there's a proto in Mu?
jnthn Yes.
Basically we walk up the inheritance hierarchy to find a proto. 14:46
14:46 koban left
moritz I'm slowly starting to see the sense in protos 14:46
lichtkind tadzik: you mean panda wasnt really named pies? 14:47
jnthn moritz: :)
moritz: The code that does all of that is fairly accessible, fwiw: github.com/rakudo/rakudo/blob/nom/...ntainer.pm
tadzik lichtkind: I should be back to life in like 17 hours
lichtkind: Panda is an implementation of Pies, Pies like like pls 14:48
and back to maths, see you tomorrow :)
lichtkind yup
thanks
even i understood nothing 14:49
tadzik hm
lichtkind pies semes to be some protocol
tadzik more-less
lichtkind but maybe i just can hack some understanding together by reading the repo
tadzik Pies is rather like "how it should look like"
lichtkind bye
tadzik bye o/ 14:50
14:50 wamba left 14:51 mtk left
moritz jnthn: it does look very readable. jnthn++ 14:51
14:52 bluescreen10 joined 14:56 mtk joined
dalek kudo/nom: 95fea15 | moritz++ | src/core/ (2 files):
remove those superfluous protos, jnthn++
14:56
14:59 daniel-s left
dalek p: ecc33ba | jonathan++ | src/pmc/sixmodelobject.pmc:
Ensure error messages for 'method not found' and 'vtable not implemented' include the class name, not just SixModelObject.
15:01
moritz \o/
jnthn nom needs NQP_REVISION bump to use it 15:02
15:02 Shozan left
jnthn Will do it later, or feel free to beat me. 15:02
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
dalek kudo/nom: 71e6791 | moritz++ | tools/build/NQP_REVISION:
bump NQP_REVISION to get better error messages for method not found
15:06
moritz yay, I get karma for stuff that jnthn++ implemented :-) 15:07
15:14 kaare_ joined
lichtkind moritz: buddha said even good karma is karma, wise people seek to have no karma at all :) 15:15
moritz lichtkind: I guess I can live with not being wise 15:16
jnthn moritz++ # helping me look wiser
lichtkind moritz: thats very wise :)
jnthn ;)
TimToady It's not so wise to add bad karma to your life to offset the good karma... :) 15:18
15:19 aloha left
lichtkind TimToady: but it works :) 15:19
15:19 tzhs left
TimToady that depends greatly on what you mean by "works" :) 15:20
15:20 aloha joined
lichtkind TimToady: sorry to keep nagging but a simple reusage of the 5.6 would not be just fine? 15:20
15:20 wamba joined
lichtkind there was nothinh version specific in it 15:20
15:21 molaf left
TimToady could you email me a copy? I might have a chance to look at it today 15:21
15:21 jdv79 left, charsbar__ left, envi_laptop left 15:22 jdv79 joined, molaf joined
lichtkind TimToady: would gladly but i own only the german translation, i will ask johan 15:22
15:22 envi_laptop joined
lichtkind TimToady: done 15:27
15:30 jaldhar left, hudnix left, jaldhar joined 15:31 hudnix joined 15:33 rindolf left 15:37 charsbar__ joined
jnthn afk 15:45
dalek ecs: 30b46a5 | larry++ | S1 (2 files):
be more upfront about class < module < package
moritz (that larry guy)++ 15:55
erm, TimToady++
16:05 thou joined 16:11 woosley left 16:26 bluescreen10 left, bluescreen10 joined 16:28 spq1 joined 16:29 alester joined 16:39 kevin_ joined 16:52 tokuhirom left 16:54 birdwindupbird left 16:58 dakkar left 16:59 kevin_ left, lumi_ left 17:03 mj41 left 17:05 Chillance joined 17:12 cdarroch joined, cdarroch left, cdarroch joined 17:19 kaare_ left
dalek kudo: 2482447 | pmichaud++ | / (2 files):
Add PAST::Stmt nodes to enable temporary register sharing.
17:25
17:33 daxim left 17:38 cognominal_ joined 17:42 cognominal left 17:56 mj41 joined 18:15 mj41 left 18:21 fhelmberger left
tadzik hello folks 18:21
colomon o/ 18:24
18:30 uniejo left
moritz \o 18:30
18:34 Bzek left, mkramer joined 18:40 mkramer left, GinoMan joined 18:44 rafl joined 18:46 envi_laptop left 18:54 GinoMan left 19:00 alester left
sorear good * #perl6 19:06
frettled My asterisk is very good, thank you, sorear! 19:10
19:21 bluescreen10 left 19:32 buubot_backup left 19:38 mberends joined 19:43 buubot_backup joined 19:47 uniejo joined, Reaganomicon left 19:49 fuzzyflounder joined, fuzzyflounder left, fuzzyflounder joined 19:58 fuzzyflounder is now known as cooper
jnthn evening o/ 20:12
sorear hello jnthn! 20:13
jnthn o/ sorear 20:14
Only 2 days to NPW! :)
sorear :/
I won't be there :(
moritz neither 20:15
jnthn It's curious to be on the organizer side rather than the speaker side. :)
jnthn tried being an attendee once too :) 20:16
Kept thinking "oh, when's my talk...oh wait...I don't have one here" :) 20:17
20:24 masak joined
masak lol hi #perl6 20:25
flussence o/
sorear HI masak!
masak tonight, as jnthn pointed out, is game night :)
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
flussence (and it turns out cmp_ok is a really nice replacement for ad-hoc debugging checks..) 20:27
masak indeed.
sub assert { my ($condition) = @_; die unless $condition } 20:28
assert cmp_ok $a, $b;
jnthn masak! \o/ 20:30
masak jnthn! \o/ 20:31
haven't seen you in quite a while :P
sorear he's been busy nomming. 20:34
jnthn Hey, how'd you know what I've been...oh, wait. :P
masak oh the polysemy.
jnthn the WHAT?! 20:35
oh, not...yeah, I mis-thunk.
frettled o_O
jnthn :P
masak trust jnthn to see more meanings in a word than are actually there :P
jnthn is inventive :) 20:36
masak that's why we put you on implementing Perl 6... :)
TimToady jnthn is nominative...
masak jnthna is genetive... :) 20:37
genitive*
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.
jnthn :D 20:40
masak wait. this is the public channel. :P
^W ^W ^W
jnthn
.oO( locative fail )
20:41
frettled is almost dormative. 20:42
masak is almost loquative 20:43
frettled merely almost?
masak barely merely almost.
hardly.
what was the question again? :) 20:44
frettled are we becoming querulative? 20:46
masak figuratively.
in fact, one of my favorite languages is Lative.
20:48 mj41 joined 21:00 dorlamm joined
masak I updated strangelyconsistent.org/blog/june-1...-operators -- adding in some final notes about precedence and junctions. 21:06
(I don't need junctions for anything, it just felt like a nice place to mention them) 21:07
std: SOME_LABEL: loop { next SOME_LABEL } 21:10
p6eval std 37a0cdd: OUTPUT«ok 00:01 119m␤»
masak std: SOME_LABEL: { redo SOME_LABEL }
21:10 donri left
p6eval std 37a0cdd: OUTPUT«ok 00:01 119m␤» 21:10
masak TimToady: can I redo/last immediate blocks?
guess not, 'cus they're not loops. 21:11
jnthn You'll hose up inlining of them too :P 21:12
masak oh, troo.
jnthn Well
To the degree that we're not allowed to assume we can detect usage of control exceptions.
I'm not actually sure what the rules are there. 21:13
Like, is "no return statement in lexical scope of a sub" = "no return handler needed" a valid optimization.
Trouble is that it's not actually a return statement 21:14
It's just a sub call.
tylercur1is rakudo: my &foo := { return 1; }; sub bar { foo; return 2; }; say bar; # curious 21:18
p6eval rakudo 248244: OUTPUT«1␤»
jnthn I suspect that behavior is wrong, fwiw.
dalek ecza: 55018cb | sorear++ | / (4 files):
Move add_categorical responsibilities out of STD.add_my_name
ecza: a94e021 | sorear++ | / (10 files):
Remove all lexical handling from grammar.
jnthn rakudo: my &foo := &return; sub bar { foo 1; return 2 }; say bar 21:19
p6eval rakudo 248244: OUTPUT«1␤»
jnthn That one is more of a concern.
sorear I should probably give the grammar a name other than 'STD:ver<6.0.0>:auth<perl.org>'...
masak sorear: if you're diverging, yes.
you basically don't have dibs on that :auth :) 21:20
sorear (that last commit deleted over 1400 lines \o/) 21:21
masak wow
sorear there are a few kinks left ... make test is warning about unused stuff that it really shouldn't 21:22
masak blog post! strangelyconsistent.org/blog/june-15-2011-chomp
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
../home/p6eval/ni…
masak right.
sorear niecza: SOME_LABEL: loop { next SOME_LABEL }
p6eval niecza v6-155-gd58f791: OUTPUT«(timeout)»
21:24 Reaganomicon joined
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
I was looking for a better way to do that.
'repeat while True { ... }' is one way, but... 21:25
feels like that cure is worse than the disease :)
er, sorry, 'repeat while False { ... }'
lichtkind masak: cheers, whats your main project currently 21:27
is there ab opengl binding for parrot/rakudo? 21:28
21:29 hudnix left
masak lichtkind: main project currently: blogging. 21:33
I don't know about the status of OpenGL bindings, but I haven't heard that anyone's working on it.
lichtkind thanks 21:34
masak closest thing I can think of is a blog post Su-Shee did over a year ago. 21:35
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:36
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␤»
masak but it looks like I remember it wrong: sushee.schreibsturm.org/entries/200...kperl.html is about Perl 5, it seems.
Util rakudo: my @a = a => 1, b => 2; for @a -> [$c, $n] { say "$c $n" }
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}" }
p6eval rakudo 248244: OUTPUT«a 1␤b 2␤»
Util What signature can I use to unpack pairs, to avoid having to explicitly call .key and .value?
Or is there something like a Pair.kv method?
PerlJam TIAS :)
masak Util: it doesn't work yet because Pairs are too parroty.
21:38 dorlamm left
masak Util: will work in nom :) 21:38
jnthn orly?
I suspect making Pair Positional is orthogonal... 21:39
masak oh.
jnthn If we even want to do that.
masak no, I meant being able to unpack Pairs in siggies.
you can't at present.
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␤»
PerlJam But he can $pair.kv though
masak oh, sure.
PerlJam what jnthn said
masak but not unpacking, which is also nice sometimes.
jnthn masak: How is unpacking pairs meant to work?
masak: I remember a discussion of this before but not a conclusion... :)
masak jnthn: Pairs are objects, so like any object unpacking.
jnthn masak: Ah, you mean [:$key, :$value]? 21:41
Yes, that'd work.
masak yeah.
in nom. :)
jnthn ah, yeah, I can guess why it doesn't in master.
Util PerlJam: I read that part of S32/Containers yesterday, be did not actually try it. (Chagrin) Thanks.
masak jnthn: right.
21:41 Psyche^ joined
Util s/be/but/ 21:41
Thanks all! 21:43
21:44 Patterner left, Psyche^ is now known as Patterner 21:45 wamba left 22:01 dju_ joined 22:02 Tedd1 left 22:03 Tedd1 joined 22:04 dju left
Util $s ~~ /b/ is creating a match object in $/ . 22:07
Should $s.match(/b) also set $/ ?
(adding missing /) 22:09
Should $s.match(/b/) also set $/ ?
masak I doubt the spec says. 22:13
22:14 dju_ is now known as dju 22:16 stepnem left 22:19 mberends left 22:20 ShaneC joined
sorear Util: implementation defined, I'd say 22:20
22:20 ShaneC left
Util Thx 22:21
22:21 mj41 left 22:24 whiteknight joined
masak 'night, #perl6. 22:25
22:25 masak left 22:27 stepnem joined
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:36
tadzik oh, I got it just now :) 22:37
also, lichtkind, I'm more-less there
lichtkind tadzik: great 22:39
tadzik: ready to answer something?
ah you mena in riga :) 22:40
tadzik lichtkind: no, not in Riga :P 22:41
more-less alive and not learning
22:47 leprevost left
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 23:09 Tene joined, Tene left, Tene joined 23:10 Mowah left 23:21 Holy_Cow joined 23:24 avar joined 23:30 ascent_ left, ascent_ joined 23:34 dalek left, dalek joined 23:35 phenny left 23:36 _jaldhar joined, jaldhar left, y3llow left, gbacon left 23:37 y3llow_ joined, gbacon_ joined 23:44 daemon left, Reaganomicon left, Reaganomicon joined 23:51 gbacon_ left 23:52 araujo left, Chillance left, spq1 left 23:53 [particle] left, colomon left, zamolxes left, szabgab left, PerlJam left, apejens left, drbean left, Katibe left, yath left, moritz left, Patterner left, Woodi left, sftp left, rafl left, pothos left, jedai left, mikemol left, kst left, sorear left, BinGOs left, Util left, starcoder2 left, barika left, cotto_work left, ascent_ left, Tene left, ingy left, pnu left, amkrankruleuen left, c1sung left, cxreg left, hatseflats left, miso2217 left, pyrimidine left 23:54 HarryS left, kolibrie_ left, diakopter left, ggoebel left, gfldex left, mattp_ left, rhr left, revdiablo left, bs338 left, spinclad left, krunen left, jlaire left, estrabd left, PZt left, skangas left, slavik left, cookys left, Woody2143 left, nebuchadnezzar left, baest left, estrai_ left, sjn left, Krunch left, renormalist left, broquaint left, frodwith left, zb left, jdv79 left, takadonet left, f00li5h left, Bucciarati left, hillu left, _ilbot left, benabik left, tty234 left, wooden left, Lorn left, flussence left 23:55 jjore left, mathw left, takesako left, tadzik left, sunnavy left, stepnem left, dju left, scottp left, cotto left, betterworld left, Guest87668 left, meteorjay left, xinming left, kcwu left, szbalint left, ChrisDennis left, cschimm1_ left, robinsmidsrod left, geekosaur left, buubot_backup left, aloha left, s1n left, pjcj left, awwaiid left, shachaf left, risou left, larks left, tylercur1is left, Vlavv left, lue left, domidumont left, jnthn left, yves left, jql left, nrr left, LoRe left, wolverian left, whiteknight left, mtk left 23:56 tomize left, alyx left, frettled left, sivoais left, jtpalmer left, ribasushi left, snarkyboojum left, Holy_Cow left, icwiener left, TiMBuS left, clkao left, breinbaas left, kfo left, jerome left, lestrrat left, TimToady left, pochi left, jesk left, mux left, llabthgie left, avar left, krakan left, mdxi left, felher left, cooper left, uniejo left, Su-Shee left, starcoder left, Pathin left, jasonmay left, Helios left, Grrrr left, _patch left, nsh| left, thou left, Trashlord left, pmichaud left, Maddingue left, REPLeffect left, simcop2387 left, bbkr_ left, foomator left, beppu left, prammer left, silug left, Yappoko__ left, ashleydev left, eternaleye left, jdhore1 left, Raynes left, JodaZ left, athomason left, y3llow_ left, Tedd1 left, cognominal_ left, Eevee left, _sri left, ruoso left, PacoLinux left, sjohnson left, yahooooo left, slavik1 left, huf left, sbp left, arnsholt left, molaf left, lichtkind left, noganex left, gabiruh left, felipe left, tomaw left, Gothmog_ left, literal left, perplexa left, daemon joined, dalek left, aindilis` left, aindilis` joined, dalek joined, p6eval left, daemon left, daemon joined, p6eval joined