»ö« 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:06 b1rkh0ff left, Chillance left
japhb swarley, note that you can: /msg p6eval r: say "Hello!" 00:21
That way you can have a private conversation with the bot,
and only bring to the channel things you need to ask about or point out.
swarley right right, I forgot. That would be better than to do that in channel
japhb No worries. It just gets hard to see the regular conversation between the evalbot exchanges. :-/ 00:22
00:37 sftp left
timotimo r: my %h; %h<foo bar baz> = (1, 2, 3); say %h; # loving this 00:38
p6eval rakudo 92c30b: OUTPUT«("foo" => 1, "bar" => 2, "baz" => 3).hash␤»
timotimo not do terribly long until i can run the modified perl6 repl with ipythoni think 00:40
ported most of the protocol to perl6 today 00:41
but have not tested it one bit yet
currently commuting 00:44
will continue work in a few minutes:)
00:45 balders_dod joined 00:48 balders_1od left
swarley What is the proto 'term' reserved for in the grammar? ie, that is it's intended purpose 00:52
sorear it's not reserved, you can define something named term if you want 00:54
STD uses "term" for, well, terms
swarley Could you give an eample?
example* 00:55
sorear en.wikipedia.org/wiki/Term_(logic)
foo(1,2,3)
5
"hello"
$_
00:55 huf left
swarley Ah. 00:55
00:56 huf joined 01:01 Vlavv left 01:03 atrodo left 01:06 masak left, jlaire left
swarley Can anyone tell me if NQP supports this regular expression, namely the `<~~>' 01:06
token identifier:sym<constant> { ['::']? <+identifier_char - lower - digit> <identifier_char>* [<~~>]?}
Since, <~~> is recursive match, correct? 01:07
r: say "hi" ~~ /.<~~>/
01:07 pmichaud left 01:08 jlaire joined, p6eval left, [Coke] left, Util left, PerlJam left 01:09 Juerd left, tadzik left, sergot left, dalek left, hugme left 01:10 dalek joined, ChanServ sets mode: +v dalek, sergot joined, Util joined
timotimo swarley: you do know you can just REPL nqp? 01:10
01:10 PerlJam joined, masak joined
timotimo nqp: nqp::say(nqp::join(",", [1, 2, 3, 4])); 01:10
01:10 [Coke] joined, tadzik joined, Juerd joined, pmichaud joined
timotimo waits for p6eval to rejoin 01:11
01:11 p6eval joined, ChanServ sets mode: +v p6eval
swarley nqp: say "hi" ~~ /.<~~>/ 01:11
01:11 anuby joined
timotimo nqp: nqp::say(nqp::join(",", [1, 2, 3, 4])); 01:11
p6eval nqp: OUTPUT«Confused at line 2, near "say \"hi\" ~"␤current instr.: 'panic' pc 13207 (src/stage2/gen/NQPHLL.pir:4680) (src/stage2/gen/NQPHLL.pm:328)␤» 01:12
nqp: OUTPUT«1,2,3,4␤»
swarley nqp: say "hello test" ~~ /.[<~~>]*/
p6eval nqp: OUTPUT«Confused at line 2, near "say \"hello"␤current instr.: 'panic' pc 13207 (src/stage2/gen/NQPHLL.pir:4680) (src/stage2/gen/NQPHLL.pm:328)␤»
swarley r: say "hello test" ~~ /.[<~~>]*/
p6eval rakudo 92c30b: OUTPUT«「hello test」␤␤»
timotimo swarley: nqp requires parenthesis for all function and method calls
swarley oh
01:12 hugme joined, ChanServ sets mode: +v hugme
swarley nqp: say("hello test" ~~ /.[<~~>]*/) 01:12
p6eval nqp: OUTPUT«Unrecognized regex metacharacter < (must be quoted to match literally) at line 2, near "<~~>]*/)"␤current instr.: 'panic' pc 13207 (src/stage2/gen/NQPHLL.pir:4680) (src/stage2/gen/NQPHLL.pm:328)␤»
timotimo there you go :) 01:13
what are you trying to do here?
swarley token identifier:sym<constant> { ['::']? <+identifier_char - lower - digit> <identifier_char>* [<~~>]?}
^ That
timotimo i don't even know what <~~> means
swarley it's recursive matching
I believe
timotimo oh, matches the same thing again?
swarley Yes
I was aiming for
::Identifier::Path::That::Repeats
Plus or minus initial double colon 01:14
01:16 benabik joined
swarley nqp: say("This::Is::An::Identifier" ~~ /['::']? <+alnum - lower - digit> <alnum>* [ '::' <~~> ]*/) 01:17
p6eval nqp: OUTPUT«Unrecognized regex metacharacter < (must be quoted to match literally) at line 2, near " '::' <~~>"␤current instr.: 'panic' pc 13207 (src/stage2/gen/NQPHLL.pir:4680) (src/stage2/gen/NQPHLL.pm:328)␤»
swarley r: say("This::Is::An::Identifier" ~~ /['::']? <+alnum - lower - digit> <alnum>* [ '::' <~~> ]*/)
p6eval rakudo 92c30b: OUTPUT«「This::Is::An::Identifier」␤ alnum => 「h」␤ alnum => 「i」␤ alnum => 「s」␤␤»
swarley Blah. so it doesn't work where I need it to :/
timotimo i wouldn't do that with a recursion 01:20
look at how longname is defined in perl6's grammar
swarley I could do it a different way pretty easily
I just wanted to try out a cool feature 01:21
timotimo ah d)
:)
01:45 xinming left, xinming joined 01:54 Khisanth left
skids Is there a jan star rc to test yet? 01:55
timotimo hasn't it been released already? 01:56
oh, it hasn't!
whoops.
japhb That feels like an oops, yes. 01:57
timotimo totally passed me by
well, we still have until tomorrow!
timotimo goes to bed
skids good thing I said something I guess :-) 01:58
timotimo skids++ 01:59
i suppose i'm too comfortable with the stability of nom
skids wonders whether star will eventually bundle the jvm impl 02:02
02:04 Vlavv joined
timotimo don't see why not 02:05
02:19 Khisanth joined 02:38 hash_table left 02:39 Khisanth left 03:06 Khisanth joined 03:10 kaleem joined 03:28 sevin joined 03:44 nnunley joined 03:57 sevin left 04:12 preflex left, preflex_ joined 04:13 preflex_ is now known as preflex 04:36 mehwork joined 04:53 Targen joined 05:03 mtymula left 05:30 sevin joined 05:39 broquaint left, slavik1 left 05:45 slavik1 joined 05:50 broquaint joined 06:15 sevin left 06:16 nnunley left 06:37 ved joined 06:38 ved left 06:40 sevin joined
moritz \o 07:00
arnsholt o/ 07:01
diakopter howdy 07:06
sorear o/ 07:08
07:10 sevin_ joined 07:11 sevin left
dalek kudo/nom: b3fc32a | moritz++ | docs/ChangeLog:
update ChangeLog
07:12
tadzik good morning #perl6 07:14
sorear good morning moritz 07:15
07:28 PacoAir joined 07:49 araujo left
jnthn morning o/ 07:54
diakopter o/
nwc10 evidence points to it being so
07:54 quester joined
diakopter 7 more minutes until morning 07:54
nwc10 o/
(should have done that for alignment)
jnthn Final day of teaching. Well, until Monday. :) 07:59
arnsholt Congrats =)
jnthn Yeah. Gotta worry about a few $dayjob bits tomorrow, but Friday is looking tuitful :) 08:00
arnsholt I've just fired off the testing run for a better sized P6int as well =)
jnthn arnsholt: The get_attribute_stable thing ain't quite what I had in mind...I was thinking more that we push the decision making entirely into the REPR and just give it a full sized slot to read from when binding and write into when getting. 08:01
arnsholt Thinking too much and too hard about pointers makes my brain all mushy, but your objection last night was a good one
jnthn In that sense, all the REPR functions dealing with native types are void. 08:02
And just deal with a discriminated union
That's what I have on the JVM except there's no union types...
arnsholt Ok, so get_attribute_ref and get_attribute_boxed become get_attribute, which returns a struct { union {}; INTVAL type } 08:03
jnthn That's what I was trying to get at with "do soemthing like I did on JVM" anyway. It puts the responsibility for doing the full-width / sized conversion inside the REPR
arnsholt ... kind of thing (premature CR)
jnthn arnsholt: You could have it return it I guess.
oops, gotta start the lecture
bbiab :)
arnsholt TTYL 08:04
I should probably see how it's implemented for the JVM in the meantime
08:15 araujo joined 08:16 daniel-s left 08:20 FROGGS joined 08:35 sevin_ left 08:36 hoelzro|away is now known as hoelzro
hoelzro I have messages! 08:37
phenny hoelzro: 29 Jan 20:23Z <timotimo> tell hoelzro if you had pushed the first work on perl6 for pygments to pygments-master, instacode would have perl6 support already :D
hoelzro (also, good morning)
08:53 quester left 08:58 balders_dod left
GlitchMr I wonder when masak will make his blog post about first task... 09:00
09:00 erkan joined, erkan left, erkan joined
GlitchMr I'm really impatient, I know. 09:02
moritz best not to wonder, but simply ask him 09:04
GlitchMr Perhaps... 09:05
.tell masak github.com/masak/zarah/blob/master...h.pl#L1069 - it should be m[\A/me\s+(.*)] 09:20
phenny: tell masak github.com/masak/zarah/blob/master...h.pl#L1069 - it should be m[\A/me\s+(.*)] 09:21
phenny GlitchMr: I'll pass that on when masak is around.
09:26 sqirrel joined 09:31 fhelmberger joined 09:35 dakkar joined 09:44 Psyche^ joined
arnsholt Teaching is hard, and teaching basic programming is extremely hard 09:46
09:48 Patterner left, Psyche^ is now known as Patterner
moritz aye 09:54
because you have to teach a whole different way of thinking along with teaching syntax and semantics
bonsaikitten and school rarely teaches thinking ;) 09:55
jnthn just taught using a regex to tokenize and a stack to build up nested structure :)
09:56 SmokeMachine joined
jnthn Everybody survived! ;) 09:56
arnsholt Not bad!
moritz jnthn: RPN style? 09:57
arnsholt I tried to explain how when you have "def foo(n): ..." in Python, n will be whatever you put inside the parens when you did "foo(...)" =)
jnthn moritz: Actually just turning a wiki markup language into a simple tree 09:58
But I did point out that a grammar and something that compiles/runs it is much more manageable once you do something non-trivial. 09:59
Also that recursive descent is really tokenize + stack, it's just that you use the call stack as your structure stack :)
diakopter jnthn: do you ever tell your students you hang out here? 10:03
so they can heckle you? :D
jnthn diakopter: I mention that I work on an open source compiler project. Many ask me about it over lunch :)
I mention I'm a Perl guy, amongst many other things, in the obligatory "about the teacher" sldie.
So yeah, by the end the more curious folks tend to know I hack on a Perl 6 compiler :) 10:04
diakopter or five
jnthn To be honest, I've yet to get a negative reaction. 10:05
diakopter *five compilers
jnthn In reality, many .Net folks are fairly isolated in .Net land in their day to day work. 10:06
moritz fwiw, some folks I've talked to think that Perl 6 isn't a good idea, but none said anything negative about me working on it (nor on any of my open source projects)
diakopter s/.Net/{insert language or environment or platform here }/g 10:07
jnthn *nod*
In my experience of attending conferences so far, the most crap I get about Perl 6 is at Perl confs and the least is at those where most folks are doing .Net, Java, etc and general open source ones are somewhere int he middle. 10:08
moritz www.reddit.com/r/programming/commen...er/c8601tf # about JSON's "don't use for evil" clause in the license 10:09
jnthn My Perl 6 talk at We Actually Build Stuff, which had people doing all sorts of stuff in loads of languages many including .Net and Java, got a positive reaction and a lot of genuine curiosity and interest.
jnthn pointed some of the .Net folks to Niecza and sadly didn't have anywhere to point the Java folks 10:10
But soon.... ;-) 10:11
arnsholt That's about to change though =D
Yeah, what you said =)
10:12 anuby left 10:14 sqirrel left
jnthn lunch & 10:21
arnsholt jnthn: I've looked a bit at nqp-jvm, and I think I see what you're going for 10:27
I'll see if I can't hack up something similar soonish
10:49 cog joined 11:02 clkao left 11:06 Su-Shee_ joined
jnthn arnsholt: Yeah. It can be done in C on the stack (pass the address) and with a union rather than with a bunch of fields on some other persistent object. 11:06
nwc10 I get these errors when compiling NQP using gcc: 11:08
KnowHOWREPR.c:87: warning: 'spec.bits' is used uninitialized in this function
P6opaque.c:1067: warning: 'spec.bits' is used uninitialized in this function
HashAttrStore.c:111: warning: 'spec.bits' is used uninitialized in this function
Uninstantiable.c:67: warning: 'spec.bits' is used uninitialized in this function
er, warnings.
11:08 clkao joined
diakopter I'll spec your bits 11:08
nwc10 (as well as the grumble about returning an aggregate, which I think is legacy, in that "You can't do that in K&R"
arnsholt nwc10: Are you on master, or on my in-progress branch?
nwc10 master 11:09
jnthn The returning an aggregate thing ain't going away, but the other warning sounds worth fixing :)
arnsholt In that case it's not really a problem
nwc10 I think it's a valid warning - the structure in question is in an auto variable
so that part of the bitfield is (technically) not initialised
arnsholt The bits field isn't used in master yet, and it's fixed in my branch
nwc10 arnsholt: ah OK cool
I'm glad to know that you're on top of it
11:10 Su-Shee left 11:14 kaleem left
arnsholt Hmm, or at least I think it's not a problem in master 11:14
masak good afternoon, #perl6
phenny masak: 09:20Z <GlitchMr> tell masak github.com/masak/zarah/blob/master...h.pl#L1069 - it should be m[\A/me\s+(.*)]
arnsholt Come to think of it, I'm not entirely sure how P6opaque does inlining of natives. It might do weird stuff there, actually 11:15
masak GlitchMr: yes, you are probably right. :)
rn: my $x = 42; my $y = 5 but role { method foo { say $x } }; $y.foo
p6eval niecza v24-18-gaf64300: OUTPUT«42␤»
..rakudo b3fc32: OUTPUT«Any()␤»
masak submits rakudobug
jnthn I don't think I can fix that. :/ 11:16
GlitchMr masak, also, when you will make a blog article about first task?
jnthn Not in a sensible way.
If I fix it, it will only be more surprising when you try to do it as if you're getting a fresh role each time.
You aren't.
masak jnthn: I have a really short and nice solution to the Eratosthenes thing, but it fails on the above bit.
11:16 Su-Shee_ is now known as Su-Shee
jnthn masak: And...how many times do you mix the role in? 11:17
masak jnthn: many.
jnthn And do you ever do it with different $x's?
diakopter r: role { } but role { }
p6eval rakudo b3fc32: OUTPUT«No such method 'mixin' for invocant of type 'Perl6::Metamodel::ParametricRoleHOW'␤ in sub infix:<but> at src/gen/CORE.setting:12486␤ in block at /tmp/rJ30yjK3Q5:1␤␤»
masak always.
jnthn masak: Right, even if I make that say 42, it won't fix the other thing.
masak I'm not sure I understand but I'll take your word for it that there's a tradeoff in there.
jnthn masak: Your expectation is that we re-closure the methods every time
11:18 kaleem joined
masak yeah. 11:18
jnthn masak: If you reclosure the methods, you need a fresh meta-object and thus a fresh type.;
masak yeah.
in this particular case, that's my expectation.
jnthn To make it work, you're asking for a fresh type every time you do it.
masak yeah.
jnthn Do you knwo how much memory you're going to use?
masak that was the furthest from my mind with this particular task :)
it won't work unless there's a fresh type each time :)
jnthn Even *if* I can make it work, it will be (a) slow and (b) memory costly.
masak jnthn: do you know what task I am solving? :) 11:19
it's not a production thing.
I'd better gist the code for you.
jnthn masak: No, I'm just saying it's a bad idea in general.
masak sure.
diakopter r: 1 but role { die }
p6eval rakudo b3fc32: OUTPUT«Could not instantiate role '<anon>':␤␤ in any specialize at src/gen/Metamodel.pm:1913␤ in at src/gen/Metamodel.pm:2330␤ in at src/gen/Metamodel.pm:2324␤ in any compose at src/gen/Metamodel.pm:2323␤ in any mixin at src/gen/Metamodel.pm:1076␤ in sub infix:<bu…
masak I think we agree on that.
11:20 kaleem left
diakopter r: 1 but role { ... } 11:21
p6eval rakudo b3fc32: OUTPUT«Could not instantiate role '<anon>':␤invoke() not implemented in class 'NQPMu'␤ in any specialize at src/gen/Metamodel.pm:1913␤ in at src/gen/Metamodel.pm:2330␤ in at src/gen/Metamodel.pm:2324␤ in any compose at src/gen/Metamodel.pm:2323␤ in any mixin at src…
masak jnthn: gist.github.com/4672575
jnthn: look how nice and small it is :)
jnthn: I'm currently mulling over what I can do to get a new type each time.
suggestions appreciated. 11:22
diakopter eval?
masak ooh
jnthn masak: You can write a parametric role
masak yeah, was pondering that.
jnthn masak: and mix it in with different paramters each time.
masak tries
jnthn I'm just wary of constructions that are convenient but very hard to do much about optimization wise. 11:23
We already have a lot of hard to optimize but cute things. 11:24
masak aye. 11:25
I'm getting it to run now, but unless "4" became a prime recently, there's a bug somewhere.
jnthn BREAKING NEWS 11:26
:P
moritz BREAKING BUG 11:27
masak jnthn: I just had hilarious mental image of you as a newscaster, reporting in a deadpan voice that 4, as of this morning, is prime. 11:29
tadzik it's a square of prime, I'll allow it ;)
nwc10 this isprime is only a probabalistic check, isn't it? So, odds are, sometimes 4 will be prime, right? :-) 11:30
diakopter r: role B[::A] { }; 11:32
p6eval rakudo b3fc32: OUTPUT«Could not instantiate role 'B':␤Not enough positional parameters passed; got 1 but expected 2␤current instr.: 'specialize' pc 20463 (src/gen/perl6-metamodel.pir:9493) (src/gen/Metamodel.pm:1913)␤called from Sub '' pc 26086 (src/gen/perl6-metamodel.pir:11714) (src/g…
diakopter r: role X[] { }; throw 1 11:34
p6eval rakudo b3fc32: OUTPUT«Error while constructing error object:Could not locate compile-time value for symbol Undeclared::Symbols␤===SORRY!===␤Error while compiling, type X::Undeclared::Symbols␤ post_types: Hash[0xbd9d9c4]␤ unk_types: Hash[0xbd9d9d8]␤ unk_routines: Hash[0xbd9d9ec]␤ rou…
diakopter hee
masak GlitchMr: I'm happy to hear about interest for the p6cc review posts. I didn't find any tuits for it this last weekend. hoping for the upcoming one. 11:35
diakopter r: role a[[]] { } 11:36
p6eval rakudo b3fc32: OUTPUT«Could not instantiate role 'a':␤Not enough positional parameters passed; got 1 but expected 2␤current instr.: 'specialize' pc 20463 (src/gen/perl6-metamodel.pir:9493) (src/gen/Metamodel.pm:1913)␤called from Sub '' pc 26086 (src/gen/perl6-metamodel.pir:11714) (src/g…
masak ok, I'm pretty sure what I'm seeing is a bug in callsame and wrapping roles. 11:38
let me try and recreate it. 11:39
diakopter r: role foo { @bar } # masak... 11:41
p6eval rakudo b3fc32: OUTPUT«===SORRY!===␤Cannot type check against type variable $?CLASS␤»
masak diakopter: feel free to submit it.
diakopter phenny: newbug r: role foo { @bar } # ===SORRY!===␤Cannot type check against type variable $?CLASS␤ 11:42
r: role bar { bar.say } 11:44
p6eval rakudo b3fc32: OUTPUT«(timeout)»
masak hm, not sure I can golf this significantly.
does the following look odd to anyone?
r: role Filter[$factor] { method next { repeat until $.value % $factor { say "R$factor, $.value"; callsame } } }; class Stream { has $.value is rw = 1; method next { say "bottom out $.value"; ++$.value }; method filter { self but Filter[$.value] } }; .next && say .value for Stream.new, *.filter ... *
11:44 kresike joined
p6eval rakudo b3fc32: OUTPUT«(timeout)bottom out 1␤2␤R2, 2␤bottom out 2␤3␤R3, 3␤R2, 3␤bottom out 3␤R2, 4␤R2, 4␤R2, 4␤R2, 4␤R2, 4␤R2, 4␤R2, 4␤R2, 4␤R2, 4␤R2, 4␤R2, 4␤R2, 4␤R2, 4␤R2, 4␤R2, 4␤R2, 4␤R2, 4␤R2, 4␤R2, 4␤R2, 4␤R2, 4␤R2, 4␤R2, 4␤R2, 4␤R2, 4␤R2, 4␤R2, 4␤R2, 4␤R2, 4␤R2, 4␤R2, 4␤R2, 4␤R2,… 11:44
kresike hello all you happy perl6 people
masak kresike! \o/
kresike masak, o/
masak more specifically, why, after 'bottom out 3', does it never bottom out again? 11:45
it's a stack of nested roles, it should bottom out all the time.
the fact that it doesn't feels like a mis-reference somewhere.
(it's a *really* sweet solution, but for this bug. it'd be cool to contribute it to RosettaCode) 11:47
n: role Filter[$factor] { method next { repeat until $.value % $factor { say "R$factor, $.value"; callsame } } }; class Stream { has $.value is rw = 1; method next { say "bottom out $.value"; ++$.value }; method filter { self but Filter[$.value] } }; .next && say .value for Stream.new, *.filter ... *
p6eval niecza v24-18-gaf64300: OUTPUT«(timeout)bottom out 1␤2␤R2, 2␤bottom out 2␤R3, 3␤R2, 3␤bottom out 3␤R2, 4␤bottom out 4␤R5, 5␤R3, 5␤R2, 5␤bottom out 5␤R2, 6␤bottom out 6␤R7, 7␤R5, 7␤R3, 7␤R2, 7␤bottom out 7␤R2, 8␤bottom out 8␤R3, 9␤R2, 9␤bottom out 9␤R2, 10␤bottom out 10␤R11, 11␤R7, 11␤R5…
masak submits rakudobug 11:48
if I find a way to golf the thing, I'll add that to the ticket.
errands & 11:57
12:23 cog left 12:26 perl6examples joined, perl6examples left 12:29 perl6examples joined, perl6examples left 12:31 perl6examples joined, perl6examples left
timotimo good day 12:31
12:32 perl6examples joined, perl6examples left 12:34 perl6examples joined
grondilu Guys, I'd like to suggest an idea for a module: an openscad wrapper (an exclusively parametric CADf language, see openscad.org). I can't really see how it could be done exactly but it should not be too hard and it could be very cool as it would allow to design 3D objects entirely in Perl6). 12:34
tadzik well wolunteered :) 12:35
you can put it on the Most Wanted module list
12:37 perl6examples left
grondilu I haven't think it through a lot, though, as it might be more subtle a problem than I thought. Although it would be a language translation, it might still be tricky. 12:37
12:39 kaleem joined
grondilu I had the idea for such a module when writing this spaceplane: www.thingiverse.com/thing:45044 At some point I wanted to use list comprenhension or at least just list concatenation but amazingly enough, you can't do that in openscad. Unless I missed something, all arrays must be either a variable or a litteral array. So I thought a wrapper in a higher level language should be usefull. There already is one at least in Haskell: ww 12:44
jnthn If you create a package called X you hide all of the X:: exceptions so the compiler can't find an exception to throw any more. 12:53
We could just make it look in $*UNIT_OUTER rather than down the block stack.
Which will mean you never get typed exceptions when compilign the setting I guess... 12:54
colomon grondilu: once you've got OpenSCAD support done, you can probably convince me to add my STEP file parser to the p6 module list, and then plug the two together to read CSG STEP files.... 12:55
grondilu colomon: sorry I know nothing about STEP 12:56
jnthn masak: iiuc, you mix in a role to the current object with a method called filter. The object already has a method filter, which mixes in Filter. Thus when you callsame you end up hitting that filter method.
Which then mixes in again.
timotimo jnthn: as long as failure to throw a typed exception will display what type the exception was and what arguments were passed, that's somewhat less-than-terrible 12:57
jnthn timotimo: It should already do that, I think.
colomon grondilu: en.wikipedia.org/wiki/ISO_10303 12:58
grondilu ok 13:01
The more I think about it, the more difficult it seems to be though. For instance, say you want to generate a list of a thousand cubes. In openscade, you'd write 'for(x=0:1000) translate([x,0,0]) cube(.5)' How would you write that in perl6? You can't write 'for 0 .. 1000 -> $x { Openscade.translate([$x, 0, 0])(Openscade.cube(.5)) }' because that would generate a file with one thousand lines, which is ridunculus. I guess some syntax tree manip 13:05
masak jnthn: two things: 'callsame' is inside .next, not .filter -- the former does the delegation down wrapping layers, the latter does the wrapping. I don't see how what you say applies at all.
jnthn: secondly, Niecza's and Rakudo's p6eval results differ -- and I have an easier time understanding Niecza's. 13:06
grondilu Actually I wonder if that would not the same kind of programming that is needed to translate Perl6 into Parrot code. So it's quite abstract stuff. 13:11
13:12 sqirrel joined
grondilu (which would explain why the only module I know who does that is in Haskell) 13:12
masak grondilu: yes, this sounds like an AST problem. 13:14
or an AST solution, rather ;)
grondilu I'm sure one of you is smart enough to make it in an hundred lines of code or so. 13:15
jnthn masak: OK. I need it golfed into something I can understand if I'm to fix it. 13:16
Or analyze it. 13:17
Where golfed doesn't have to mean "less code" just "less concepts" :)
masak yay, I got gist.github.com/4672575 working on Niecza! \o/ 13:19
(which has got to count for something. but I'll still try and golf it)
also, it's kind of weird I needed to do that last tweak. why does comma work but not && ? :/
the exact same code hangs in Rakudo after outputting "2\n3\n" 13:21
jnthn Well, the delegation stuff is mostly written in NQP :) 13:25
jnthn hopes that means somebody other than him can go hunting, rather than assuming it's "too hard" so only jnthn can fix it... 13:26
13:27 jaldhar left
jnthn uh, deferal, nto delegation :) 13:27
The delegation stuff is mostly written in Perl 6...
arnsholt While not falling asleep last night, I had some ideas for changes to NativeCall to better cope with objects' lifecycles: gist.github.com/4673294 13:28
jnthn arnsholt++ 13:29
arnsholt If those interested in NativeCall (jnthn, moritz, FROGGS, sorear(?)) could have a look at that and comment, that'd be awesome
jnthn arnsholt: I'll take a look over it when I'm not so distracted :)
moritz takes a look
arnsholt To a certain extent this is procrastinatory for me, so it's not required in a hurry =) 13:30
moritz arnsholt: from a user's perspective, that sounds sane :-) 13:31
arnsholt Excellent!
I've been wanting to kill explicitly-manage for a while now 13:32
Just had to figure out how =)
FROGGS arnsholt: currently in a meeting, will read backlog this evening
arnsholt Cool
jnthn gets back to teaching 13:36
13:53 atrodo joined
nwc10 realises he left an ) unclosed earlier. Oops. Hopefully this restores balance in the universe. 13:54
13:56 Targen left 14:01 isBEKaml joined
isBEKaml hello, #perl6! :) 14:02
phenny isBEKaml: 17 Jan 02:49Z <[Coke]> tell isBEKaml about github.com/coke/perl6-roast-data/b...ummary.out
isBEKaml: 17 Jan 18:06Z <moritz> tell isBEKaml that I uploaded the 2013.01 release tarballs. Thanks for doing the release!
14:03 yeltzooo joined
timotimo haha, great :D 14:04
the tarballs are out, but no announcement? 14:05
isBEKaml timotimo: :D those were for rakudo *compiler* release. 14:06
Not star. :)
phenny: tell moritz, the pleasure is entirely mine.
phenny isBEKaml: I'll pass that on when moritz is around.
14:07 skids left
moritz maybe I'll do the star release tonight 14:13
phenny moritz: 14:05Z <isBEKaml> tell moritz the pleasure is entirely mine.
moritz if somebody is willing to help me, compose a release announcement
timotimo oh, right.
14:15 kaare_ joined 14:16 LylePerl joined
isBEKaml moritz: What's the convention for star releases? Whoever releases compiler, releases star too? 14:18
14:19 cog joined
tadzik Star is special 14:20
oh, moritz, I don't think I invited you yet for the Polish Perl Workshop. Want to come? :)
isBEKaml tadzik: ofcourse it is. The Star of Rakudo
tadzik :)
isBEKaml tadzik++ # PlPW
moritz isBEKaml: whoever feels responsible releases star :-)
masak isBEKaml: no, there's no convention, really. 14:21
tadzik isBEKaml: you're coming too? :)
moritz tadzik: want, yes
isBEKaml tadzik: Even if I wanted to, I cannot. :(
tadzik shame :(
isBEKaml tadzik: I know - never been to any .pm or any of perl workshops(not even YAPCs). Shame, yeah. :|
tadzik isBEKaml: high time to break that habit :) 14:22
isBEKaml tadzik: well, hold it in my country. I'll tag along. =)
tadzik: but then that won't be a PlPW :P 14:23
jnthn moritz: I can compose the release announce this evenign :) 14:24
moritz I think I already bumped the versions on my workstation at home 14:25
14:29 mjwhitta joined
kresike bye folks 14:29
14:29 kresike left
masak seems we did quarterly releases of Star all through 2011, then monthly all through 2012, with the exception for March, for some reason. 14:31
14:32 LylePerl left 14:36 mjwhitta left 14:44 hoelzro is now known as hoelzro|away 14:55 stopbit joined 15:01 Liz_ joined
Liz_ good day all 15:01
isBEKaml hello, Liz_ 15:02
moritz \o Liz_
tadzik Liz_! \o/
Liz_ I was wondering whether the Perl 6 cheat sheet is still valid
aka raw.github.com/perl6/mu/master/doc...tsheet.txt 15:03
timotimo this is the kind of thing that could even get its own little integration test suite. 15:04
Liz_ for the FOSDEM this weekend, I was considering making laminated two-sided versions for the Perl stand
one side Perl 5, the other Perl 6
15:05 [particle]1 left
masak Liz_! \o/ 15:05
moritz looks good to me
masak rn: role F[$n] { method x { callsame(); callsame() until $.v % $n } }; class S { has $.v is rw = 1; method x { ++$.v }; method f { self but F[$.v] } }; my $s = S.new; for ^3 { $s.x; say $s.v; $s.=f }
moritz I did a quick glance over it and didn't find a single outdated item
p6eval niecza v24-18-gaf64300: OUTPUT«2␤3␤5␤»
..rakudo b3fc32: OUTPUT«(timeout)2␤3␤»
15:05 [particle] joined
masak jnthn: this is as short as I'm able to golf it. 15:05
moritz r: say 'item'.comb.sort eq 'time'.comb.sort
p6eval rakudo b3fc32: OUTPUT«True␤»
Liz_ moritz: cool, then I'll use that
timotimo r: my $a = Cat.new;
p6eval rakudo b3fc32: OUTPUT«===SORRY!===␤Undeclared name:␤ Cat used at line 1. Did you mean 'Rat'?␤␤»
isBEKaml masak: that's 4-turned-prime headline? :) 15:06
timotimo r: my $a = Blob.new;
p6eval rakudo b3fc32: OUTPUT«===SORRY!===␤Undeclared name:␤ Blob used at line 1␤␤»
timotimo are thos types no longer in perl6? or just NYI? or perhaps created using a different mechanism only?
masak jnthn: the problem happens in the 'callsame()' in the 'until' loop, and the .x method in the S object never gets triggered. or rather, it gets triggered in Niecza, but it gets waylaid in Rakudo.
timotimo: NYI
timotimo OK 15:07
i suppose the Cat type isn't the one you'd get from ACME::Meow?
r: say 10 R- 5;
p6eval rakudo b3fc32: OUTPUT«-5␤»
masak correct.
rn: role F[$n] { method x { callsame; callsame until $.v % $n } }; class S { has $.v is rw = 1; method x { ++$.v }; method f { self but F[$.v] } }; my $s = S.new; for ^3 { $s.x; say $s.v; $s.=f } 15:08
timotimo oh, that's neat
p6eval niecza v24-18-gaf64300: OUTPUT«2␤3␤5␤»
..rakudo b3fc32: OUTPUT«(timeout)2␤3␤»
timotimo what does "sequentialize" do?
masak timotimo: "make a sequence of" 15:10
rn: role F[$n] { method x { callsame; callsame until $.v % $n } }; class S { my $v = 1; method x { ++$v }; method f { self but F[$v] } }; my $s = S.new; for ^3 { $s.x; say $v; $s.=f } 15:11
p6eval rakudo b3fc32: OUTPUT«===SORRY!===␤Variable '$v' is not declared␤at /tmp/9AIiMx7r9j:1␤------> }; my $s = S.new; for ^3 { $s.x; say $v⏏; $s.=f }␤ expecting any of:␤ postfix␤»
..niecza v24-18-gaf64300: OUTPUT«===SORRY!===␤␤Variable $v is not predeclared at /tmp/mzO6qyD2fQ line 1:␤------> } }; my $s = S.new; for ^3 { $s.x; say ⏏$v; $s.=f }␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting lin…
masak oops.
rn: role F[$n] { method x { callsame; callsame until $.v % $n } }; my $v = 1; class S { method x { ++$v }; method f { self but F[$v] } }; my $s = S.new; for ^3 { $s.x; say $v; $s.=f }
p6eval rakudo b3fc32: OUTPUT«2␤Method 'v' not found for invocant of class 'S+{F}'␤current instr.: 'x' pc 170 ((file unknown):817) (/tmp/Iv9iZ7GOxW:1)␤called from Sub '' pc 223 ((file unknown):191753942) (/tmp/Iv9iZ7GOxW:1)␤called from Sub '' pc 256476 (src/gen/CORE.setting.pir:116173) (src/gen…
..niecza v24-18-gaf64300: OUTPUT«2␤Unhandled exception: Unable to resolve method v in type S+F[curried]␤ at /tmp/ru0HsITsWf line 1 (F.x @ 9) ␤ at /tmp/ru0HsITsWf line 1 (mainline @ 14) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4218 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.set…
masak should really do his experimentation offline, as usual 15:12
timotimo masak: well, how do i use Sop? S+, S, and S=> on two lists or two scalars doesn't seem to do anything but throw exceptions that make little sense to me
i guess i could look at the code, though
15:12 kaleem left
masak timotimo: I've never fully understood Sop. 15:13
timotimo: I can promise you that it isn't in any runnable code out there, though.
15:14 palakas joined
timotimo hehe, ok 15:14
masak rn: role F[$n] { method x { callsame; callsame until $.v % $n } }; class S { has $.v is rw = 1; method x { ++$.v } }; my $s = S.new; for ^3 { $s.x; say $s.v; $s but= F[$s.v] } 15:16
p6eval rakudo b3fc32: OUTPUT«(timeout)2␤3␤» 15:17
..niecza v24-18-gaf64300: OUTPUT«===SORRY!===␤␤Cannot make assignment out of but because structural infix operators are diffy at /tmp/u5dEo4QvyN line 1:␤------> S.new; for ^3 { $s.x; say $s.v; $s but=⏏ F[$s.v] }␤␤Unhandled exception: Check failed␤␤ a…
cog rn: grammar G { token TOP() { <lit 'a'> }; token lit($s) { $s } }; G.parse: 'a'
p6eval niecza v24-18-gaf64300: ( no output )
..rakudo b3fc32: OUTPUT«Unmarshallable foreign language value passed for parameter '$s'␤ in regex lit at /tmp/PrRRZFIcdH:1␤ in regex TOP at /tmp/PrRRZFIcdH:1␤ in method parse at src/gen/CORE.setting:10725␤ in block at /tmp/PrRRZFIcdH:1␤␤»
cog hum
masak rn: role F[$n] { method x { callsame; callsame until $.v % $n } }; class S { has $.v is rw = 1; method x { ++$.v } }; my $s = S.new; for ^3 { $s.x; say $s.v; $s = $s but F[$s.v] }
p6eval niecza v24-18-gaf64300: OUTPUT«2␤3␤5␤»
..rakudo b3fc32: OUTPUT«(timeout)2␤3␤»
cog grammar G { token TOP() { <lit: 'a'> }; token lit($s) { $s } }; say G.parse: 'a' 15:19
rn: grammar G { token TOP() { <lit: 'a'> }; token lit($s) { $s } }; say G.parse: 'a'
p6eval niecza v24-18-gaf64300: OUTPUT«#<match from(0) to(1) text(a) pos([].list) named({"lit" => #<match from(0) to(1) text(a) pos([].list) named({}.hash)>}.hash)>␤»
..rakudo b3fc32: OUTPUT«「a」␤ lit => 「a」␤␤»
cog rn: grammar G { token TOP() { <lit('a')> }; token lit($s) { $s } }; say G.parse: 'a'
p6eval niecza v24-18-gaf64300: OUTPUT«#<match from(0) to(1) text(a) pos([].list) named({"lit" => #<match from(0) to(1) text(a) pos([].list) named({}.hash)>}.hash)>␤»
..rakudo b3fc32: OUTPUT«「a」␤ lit => 「a」␤␤»
cog rn: grammar G { token TOP() { <lit 'a'> }; token lit($s) { $s } }; say G.parse: 'a' 15:20
p6eval niecza v24-18-gaf64300: OUTPUT«#<match from(0) to(1) text(a) pos([].list) named({"lit" => #<match from(0) to(1) text(a) pos([].list) named({}.hash)>}.hash)>␤»
..rakudo b3fc32: OUTPUT«Unmarshallable foreign language value passed for parameter '$s'␤ in regex lit at /tmp/W8RbAe2hBe:1␤ in regex TOP at /tmp/W8RbAe2hBe:1␤ in method parse at src/gen/CORE.setting:10725␤ in block at /tmp/W8RbAe2hBe:1␤␤»
cog so that's a rakudo bug
nqp: grammar G { token TOP() { <lit 'a'> }; token lit($s) { $s } }; say( G.parse: 'a') 15:22
p6eval nqp: OUTPUT«a␤»
masak submits rakudobug 15:23
15:25 slavik1 left 15:36 hash_table joined
masak rn: my @primes := gather for 2..Inf { next if $_ %% any(@primes); say take $_ } 15:37
p6eval niecza v24-18-gaf64300: ( no output )
..rakudo b3fc32: OUTPUT«splice() not implemented in class 'Mu'␤current instr.: '' pc 253893 (src/gen/CORE.setting.pir:115092) (src/gen/CORE.setting:5485)␤called from Sub 'reify' pc 253040 (src/gen/CORE.setting.pir:114758) (src/gen/CORE.setting:5457)␤called from Sub 'gimme' pc 261448 (src/…
masak aww :)
Liz_ masak: wouldn't that print primes until the end of the universe? 15:40
timotimo nah, the list is completely lazy, so it won't get started 15:44
hm, is any sufficiently clever for short-circuiting @primes?
n: my @primes := gather for 2..Inf { next if $_ %% any(@primes); say take $_ }; say @primes[10]
p6eval niecza v24-18-gaf64300: OUTPUT«Unhandled exception: Circular data dependency in list iteration, or last fetch threw exception␤ at /tmp/VwsfrqFpvn line 1 (ANON @ 7) ␤ at <unknown> line 0 (KERNEL dogather @ 1) ␤ at /home/p6eval/niecza/lib/CORE.setting line 2425 (GatherIterator.reify @ …
15:45 skids joined
Liz_ timotimo: but the say will be done for each prime taken, no? 15:46
and then the next prime will be reified, no?
so that would still go on forever, or am I missing some inhibiting factor here?
masak Liz_: yes, but p6eval knows how to abort scripts after a few seconds and show the partial output.
r: for 1..Inf { .say if $_ %% 10_000 } 15:47
p6eval rakudo b3fc32: OUTPUT«(timeout)10000␤20000␤» 15:48
timotimo oh, you may be right, there probably needs to be a stopping condition for the any(@primes), else for a prime it will continue forever, no?
masak oh!
yes, I see what you're saying now.
the consumer doesn't know when to stop asking.
timotimo good catch, Liz_
masak Liz_++
ESOLUTIONISTOOPRETZELY 15:49
timotimo hm, but in that concise way you wrote, i can't see how to put a second condition in there to abort, say, if the number is bigger than half
i would have to put another for loop in there and then it's not as pretty any more :( 15:50
masak yeah. 15:52
but that's fine; I'm just toying around with ideas here.
jnthn decommute &
15:59 brrt joined 16:04 nnunley joined 16:08 brrt left 16:10 GlitchMr left 16:11 cog_ joined, cog left
masak "In the creation of any truly new product or product category, it is almost invariably a big advantage to start out as integrated as possible." -- blogs.hbr.org/cs/2013/01/the_787s_p...per_t.html 16:19
feels like it contains an echo of nwc10's "dogfood early, dogfood often".
nwc10 is right until proven otherwise. :-) 16:22
16:23 cog_ left
nwc10 even if you don't want me to be. 16:23
flussence rn: sub a(@foo? is rw) { ... }
p6eval niecza v24-18-gaf64300: OUTPUT«Potential difficulties:␤ @foo is declared but not used at /tmp/ESSUo_iJnC line 1:␤------> sub a(⏏@foo? is rw) { ... }␤ &a is declared but not used at /tmp/ESSUo_iJnC line 1:␤------> sub a⏏(@foo? is rw) { ... }␤␤»…
..rakudo b3fc32: OUTPUT«===SORRY!===␤Cannot use 'is rw' on an optional parameter␤at /tmp/mnD8pnkKKf:1␤------> ␤»
flussence Different error... jeez, is my one day old rakudo out of date *already*? :) 16:24
(it's a NPMCA on the repl)
timotimo moritz: did my 2 line patch end up failing spectests? 16:25
flussence n: sub a(@foo? is rw) { @foo //= 1..3 }; my @bar; a(@bar); say @bar.perl; 16:26
p6eval niecza v24-18-gaf64300: OUTPUT«[].list␤»
16:27 FROGGS left
masak why can't one use 'is rw' on an optional parameter? :) 16:29
16:29 xinming left
masak you can with 'is copy', for example. 16:29
timotimo what are you going to write to if it isn't given?
masak something that wasn't passed.
timotimo will it just be swallowed/autoviv'd?
masak I guess. 16:30
my question is, why is it absolutely forbidden?
we don't tend to forbid things that are only a little impossible.
flussence that's one thing that's possible in PHP - you can pass a variable by reference, but it won't complain if you don't
16:31 brrt joined
masak right. that's what we're talking about here. 16:36
arnsholt timotimo: Where did you end up on your ipython/Rakudo project? Not worthwhile/possible ATM, or did you decide to start it? 16:45
timotimo arnsholt: i started it! yesterday i ported most of the ipython protocol handling logic to perl6 code 16:46
it will only need a thin wrapper now to turn a json based protocol via stdin/stdout into actual zmq.
hm, how does one create a process in perl6 and communicates with its stdin and stdout? 16:47
arnsholt Oh, cool!
A Net::ZMQ module (name negotiable) based on NativeCall is hopefully in my not-too-distant future. Want to join in implementing it? 16:48
timotimo i haven't ever tried NativeCall, but i guess i could help you with low hanging fruit :) 16:49
arnsholt Cool. I'll give you a prod when I get it started
timotimo thanks :) 16:50
16:50 bluescreen10 joined 16:54 grondilu left 17:02 araujo left 17:03 isBEKaml left
jnthn back :) 17:04
masak jnthn! \o/ 17:07
17:09 MayDaniel joined
jnthn yawns tiredly 17:10
nwc10 read, aim, coffee! 17:11
timotimo AOL Instant Messenger?
nwc10 er, ready.
jnthn I'm not doing coffee at this time of day, or I'll not sleep :) 17:13
masak eyes list of requirements, frowning 17:21
so... you want to be not tired, but you also want to sleep, correct?
17:21 Ulti joined
nwc10 um, hangon. If jnthn doesn't sleep, does that mean we get more code by the morning? 17:21
masak I'll go get the coffee.
colomon nwc10: yup!
nwc10 does this scale? 17:22
jnthn Yes but...quality? :P
masak and a funnel.
colomon jnthn: you're still young, you can probably handle a few days of late nights before you start babbling. 17:23
Ulti jnthn spend the rest of your life making a time machine that can transport itself back, then hand yourself a copy to yourself now and use it to make temporal clones of yourself
dalek ar: de12058 | moritz++ | tools/star/Makefile:
bump versions in preparation of the 2013.01 release
17:24
moritz Ulti: if that results in two jnthns coding on rakudo/nqp/jvm stuff, I'm all for it :-)
17:24 brrt left
colomon recalls that even in college, staying up until 4am made his "clever" D&D plans very, very, very stupid. 17:24
moritz colomon: did you have any non-stupid D&D plans, ever? 17:25
if yes, I kinda suspect you didn't understand the game :-)
Ulti also ssh tunnel over the time machine and git pull from 10 years in the future
colomon moritz: I'd like to think most of them were smarter than "I will levitate far over the scene of the battle, cast an anti-magic shell around myself, and then swoop down to neutralize the demon." 17:26
moritz colomon: might have been :-)
masak brilliant!
timotimo hahahaha, the anti magic shell :D
"swoop down", pretty majestically i bet! :D
17:27 Chillance joined
colomon nah, it was more of a straight fall. but I did make an nice little crater when I hit. 17:27
dalek ar: 266205b | moritz++ | modules/ (6 files):
update modules to newest versions
17:28 araujo joined, araujo left, araujo joined
colomon I hadn't even made sure I was over the demon when I did it, so I hit like twenty feet away from the actual fight and didn't even modestly inconvenience it. 17:28
jnthn wonders why people assume clones of him would all sit around hacking, rather than just deciding to go to the pub together :)
nwc10 :-)
jnthn moritz: am working on release announce :)
moritz jnthn: great 17:29
masak handling clones of oneself is tricky.
dalek ar: 05a30fb | moritz++ | / (2 files):
bump more versions (README, Makefile.in)
17:30
jnthn masak: y'all would know :P
17:36 MayDaniel_ joined
masak yes :) 17:36
if you want a (weary) smile put on your face, do a Google search for "&amp;amp;amp;amp;" 17:37
masak smiles wearily
dalek ar: 24eab15 | jnthn++ | docs/announce/2013.01:
Add a 2013.01 release announcement.
17:38
jnthn That's &lt;lt; awesome.
Review of the announce welcomed 17:39
17:40 MayDaniel left
timotimo a quick read-through suggests it's fine 17:42
cannot guarantee there are no factual incorrectnesses, though
moritz jnthn: looks fine 17:43
timotimo so 2012.02 will get Parrot 5.0.0? 17:46
17:46 mr- joined
moritz if we have a reason to bump the required revision, then yes 17:46
moritz.faui2k3.org/tmp/rakudo-star-....01.tar.gz 17:48
please test
Liz_ timotimo: 2012.03 ? 17:49
timotimo: 2013.02 17:50
:-)
timotimo >_< of course
17:56 palakas left 17:59 dakkar left
moritz moritz@casella:~>./tmp/rakudo-star-2013.01/install/bin/perl6 -e 'use JSON::Tiny; say to-json({ a => ["b", 42]})' 18:06
{ "a" : [ "b", 42 ] }
looks good
masak \o/ 18:08
masak .oO( it's called "JSON::Tiny", but I see lots of unnecessary spaces in there ) :P 18:09
18:09 kmwallio joined
[Coke] hopefully someone is testing rakudo on various parrot releases. 18:17
masak ...and probably, no-one is? :) 18:18
18:19 xinming joined
timotimo i was testing rakudo on parrot5 18:20
18:25 palakas joined 18:29 nnunley left
[Coke] timotimo++ 18:33
timotimo testing as in "using" not as in "rigurously testing", though
[Coke] Surely the packagers that care about such things can restrict certain versions of rakudo to use no newer than version x of parrot. :)
but yes, we should setup a test farm or something for the last X rakudo versions we care about and the last X parrot versions and make sure that unless we declare otherwise they are compatible. 18:34
18:34 nnunley joined 18:37 fhelmberger left
moritz any objections to releasing the rakudo-star-2013.01 tarball as-is? 18:39
jnthn moritz: None her, provided it builds/passes tests. 18:40
*here
dalek ar: e7a6ae5 | moritz++ | tools/star/release-guide.pod:
note 2013.01 release in release-build.pod

also close a quote
18:44
moritz tag pushed, tarball uploaded 18:45
nwc10 \o/
and, now back to the important job of breaking things? :-0
er, :-)
right - what do I blame for my typing tonight?
moritz nwc10: that's masak's job :-)
jnthn moritz++ 18:46
moritz (breaking things)
dalek p: 8d5e9d4 | jnthn++ | src/ (2 files):
Add a way to introspect if a lexical is native.
p: 5e22142 | jnthn++ | src/QAST/Operations.nqp:
Map objprimspec to repr_get_primitive_type.
moritz rakudo.org/2013/01/30/rakudo-star-2...-released/ 18:53
masak moritz++ 18:57
and contrary to popular belief, I don't break things. :) 18:58
18:58 kmwallio left
masak it's more like I stumble over broken things, waking the neighbors. 18:58
jnthn You could turn the lights on :P 18:59
geekosaur ...if they don't explode when turned on 19:01
skids r: my $res = Failure.new(X::AdHoc.new(:payload<foo>)); $res.defined; $res.defined.say; say $res + 1; 19:03
p6eval rakudo b3fc32: OUTPUT«False␤1␤»
jnthn Question. In the REPL, when we auto-print, shoudl things .Str like now, or .gist?
19:04 lawrmcfa joined
arnsholt jnthn: While refactoring the native access stuff, should I rename get_attribute_ref to get_attribute_native like in JVM? 19:05
We won't actually get a reference anymore, after all
jnthn arnsholt: Yes, if you don't mind
skids struggles to understand the intended behavior of handled Failures.
19:05 erkan left
arnsholt I'm gonna be changing all instances of that anyways, so might as well rename it while I'm at it 19:10
19:11 nnunley left 19:12 nnunley joined
moritz jnthn: .gist, IMHO 19:16
masak jnthn: feels like they should .gist
19:16 hoelzro|away is now known as hoelzro
hoelzro hey #perl6 folk! congratulations on the Rakudo * release! 19:17
moritz hoelzro: thanks
jnthn OK 19:18
I'm also trying to fix native lexical usage in the REPL and make the code more portable.
moritz \o/ 19:19
jnthn I may have fixed the ^D bug THAT WE HAVE IN 2013 also...we'll see :)
hoelzro I'm finally able to remove all of my custom packaging stuff for my Arch Linux package =)
19:20 FROGGS joined
arnsholt Debugging by compiler error \o/ 19:20
Or, refactoring, rather
FROGGS g'evening
nwc10 jnthn: any chance of world peace while you're there? And how is the AbstractPonyFactory? 19:25
masak evenin', FROGGS
jnthn: hey, the ^D bug was something that we regressed on because testing the REPL is teh hard. 19:26
jnthn: at one point, we did it right.
jnthn masak: Yeah, I think I know why now too
masak: Mebbe you can test it for me in a bit 19:27
nwc10: Decided to do a bit of time on Rakudo improvements before looking at the JVM port :)
nwc10: Though in the end I finished up eliminating some code that woulda been a porting pain in the future... :) 19:28
masak jnthn: sure.
jnthn takes a break to eat stuffs 19:29
[Coke] I can write a test for the REPL ^D thing, I think.
Should go into rakudo's own tests, though, aye? 19:30
FROGGS (rakudo improvement)++ 19:31
arnsholt: I commented
masak [Coke]: sounds reasonable.
[Coke]: unless it's easy enough to make the test implementation-agnostic.
moritz is the REPL specced? 19:34
[Coke] that's a different project (though I think it's reasonable that we should decide what we're going to call various versions of perl6 on the same machine.)
moritz if it's not specced, it doesn't go into roast 19:35
[Coke] e.g. shoudl we have a perl6-rakudo, perl6-niecza (which in turn is a shell script or a .bat file that DTRT with the .exe?)
arnsholt FROGGS: Cheers! 19:36
arnsholt goes looking
masak moritz: that sounds reasonable.
moritz: though I bet we have lots of things in roast that are not spec'd.
moritz probably. But very few of them intentional 19:37
and nothing as major as a whole subsystem, afaict
19:42 fgomez left
arnsholt FROGGS: And replied to your comment 19:42
moritz what's the gist URL again? 19:43
arnsholt gist.github.com/4673294 19:44
FROGGS :o) 19:45
I'm happy with it
arnsholt I think it's a better approach than what we have, but it's always good to get feedback on this kind of stuff 19:49
moritz will I be able to query whether an object is "owned" by the p6 code or the C code? 19:51
FROGGS moritz: yes, it's just a matter who is responsible to free its mem 19:52
and who is not allowed to
arnsholt moritz: Wouldn't be very hard to implement at least 19:53
19:55 zby_home_ joined 19:58 fgomez joined
jnthn oh, turns out the REPL already does .gist when doing auto-print. 20:00
masak oh, good. 20:01
it sounded weird that it not doing so would've gone unnoticed up 'til now :)
jnthn It's exceptions that are printed unhelpfully
As in, compilation errors not showing where the error is.
Lemme see if I can fix that bit 20:02
20:02 hoelzro is now known as hoelzro|away 20:10 benabik left
dalek p: 16d7232 | jnthn++ | src/stage0/ (9 files):
Update bootstrap.
20:12
p: 8266805 | jnthn++ | src/HLL/Actions.pm:
Fix outer context setup for native lexicals.
p: 63d9ae4 | jnthn++ | src/HLL/Compiler.pm:
Tweak REPL handling.

Get rid of the magical accumulating context. While it did have some good points, getting it to support native lexicals was going to be a nightmare, let alone trying to port it. Also provide some better hook mechanisms for HLLs (so they don't have to duplicate the autoprint tell logic and can control exception printing).
jnthn r: my int $x = 69; eval('say $x') 20:13
p6eval rakudo b3fc32: OUTPUT«===SORRY!===␤Lexical '$x' is of wrong register type in lexical lookup␤»
jnthn Thought so. That now works locally also.
masak \o/
20:15 bruges left
skids r: my $a := Proxy.new(FETCH => { Failure.new(X::AdHoc.new(:payload<foo>)) }, STORE => { 0 }) 20:15
p6eval rakudo b3fc32: OUTPUT«foo␤current instr.: 'throw' pc 332939 (src/gen/CORE.setting.pir:149243) (src/gen/CORE.setting:9291)␤called from Sub 'sink' pc 364971 (src/gen/CORE.setting.pir:161952) (src/gen/CORE.setting:10513)␤called from Sub 'MAIN' pc 444 (src/gen/perl6.pir:165) (src/main.nqp s…
20:17 bruges joined 20:20 spider-mario joined
dalek kudo/nom: 9dfa827 | jnthn++ | tools/build/NQP_REVISION:
Bump NQP_REVISION for REPL improvements.
20:21
kudo/nom: 0fd4ee8 | jnthn++ | src/pmc/perl6lexpad.pmc:
Support lexical type introspection.
kudo/nom: 9ec0a59 | jnthn++ | src/Perl6/Compiler.nqp:
Better REPL exception reporting; updates.
jnthn masak: Feel free to check the ^D bug. 20:23
masak will do. 20:25
"$obj.Some::Role::meth() now passes the correct $obj" -- from the Star release announcement. hm, what bug was that? sounds like fun.
masak tries to find out
jnthn One of the ones doy found. 20:26
Fairly recent in RT 20:27
Dunno if it was given a test and closed yet
masak ah, found the commit :)
(atomic commits)++
jnthn masak: I don't see the ticket about the REPL and native types; if you can find that (I'm sure it exists) feel free to process it also :) 20:29
masak ah, here: rt.perl.org/rt3/Ticket/Display.html?id=116226
(the methods on roles ticket)
jnthn: ok, will find it.
jnthn: here: rt.perl.org/rt3/Ticket/Display.html?id=102254 20:30
(*this* is what I mean when I say "I can find things quickly with RT")
(so think twice before migrating to another system, because RT isn't all that bad) 20:31
jnthn It does some darn stupid things but at least it means I can delegate ticket munging to somebody who likes it :P
masak more "knows how to do it" than "likes it", but sure ;) 20:32
the warm fuzzies come from being a functional cog in the community machinery.
Perl 6 is my RPG ;) 20:33
20:40 benabik joined 20:41 c1sung joined 20:47 zby_home_ left 20:50 kaare_ left 20:53 fgomez left
tadzik hey hey! 20:56
masak tadzik! \o/
tadzik did I miss All The Things? 20:57
jnthn o/ tadzik
masak tadzik: yes!
tadzik oh my!
I have to update All The Repos
masak they all happened, and Time didn't prevent them from happening all at once this time.
tadzik and figure out ACT meanwhile
nwc10 you haven't missed Christmas yet. Sorry.
tadzik dang
usually most things happen when I'm not looking, so I sometimes try not looking for some time to see if the work will actually progress faster 20:58
20:58 mr- left
skids r: my $a = Failure.new(X::AdHoc.new(:payload<foo>)); $a; 1; 21:06
p6eval rakudo b3fc32: ( no output )
skids r: sub a { return(Failure.new(X::AdHoc.new(:payload<foo>))); 1; }; a(); 1; 21:07
p6eval rakudo b3fc32: OUTPUT«foo␤ in method sink at src/gen/CORE.setting:10513␤ in block at /tmp/QQrxQ0H2gM:1␤␤»
21:07 cog joined
skids That seems discordant. 21:07
masak in what way?
skids Whether it explodes or not shouldn't depend on whether the value is a variable or a function result. 21:08
And for that matter isn't the value in sink context even when followed by 1; ? 21:09
masak oh, I see what you mean now. 21:10
I don't know.
skids Anyway I'm going to have to search long and hard to fix Sum because I was dumbly relying on the pre-sink-refactor behavior. Now I need a value that only blows up when used, not in sink context, like an undefined, but handled Failures do not seem to do that (and I'm reading the spec and seeing maybe that I was wrong to think they would.) 21:12
diakopter ugh, I'm typing := in C 21:13
21:17 hash_table left
skids masak: did you solve the checker stacking problem? :-) 21:20
21:20 sqirrel left
masak skids: didn't try yet. it's still open in a browser tab here :) 21:20
pmichaud \o/ Rakudo Star 2013.01 release
masak pmichaud! \o/
skids: I think about it now and then.
skids: it's nicely non-trivial. 21:21
pmichaud (rakudo team)++
skids It drove me crazy to the point of insomnia, but I'm sure you will fare much better.
pmichaud also masak++ for giving a presentation at FOSDEM++
masak skids: we'll see. 21:22
oh, I should blog about the FOSDEM talk.
will try and do that tomorrow.
jnthn o/ pmichaud :) 21:23
pmichaud I should be able to generate the .msi tomorrow
o/ jnthn 21:24
jnthn yay, .msi :)
pmichaud: nqp-jvm-cc currently passes 33 test files from t/nqp :) 21:25
pmichaud whoa, awesome! blog post? ;-)
jnthn Working on one
21:30 arlinius joined
arnsholt jnthn: I think I've got some kind of handle on the _native refactor. Will continue hacking in the morrow 21:31
arnsholt &
jnthn
.oO( better than in the marrow... )
arnsholt++
21:40 mtk left 21:41 benabik left 21:44 spider-mario left
[Coke] thinks masak has an unfair advantage finding tickets because he's written 99% of them. 21:44
pmichaud: Hio. 21:45
masak [Coke]: granted. 21:49
[Coke]: in order to find a ticket, you have to *think* like a ticket. 21:50
:P
21:50 Kharec joined
Kharec hi guys 21:50
masak yo, Kharec
Kharec I'm trying to compile perl6, rakudo star 2013.01 and I get a segfault, I would like to report it: pastebin.com/1euJyxfB 21:51
On a 32 bit Linux platform.
masak "Erreur de segmentation" :/
during nqp compilation, it seems. 21:52
Kharec I can paste all the log if you want :)
jnthn Oh non c'est tres tres un-bon!
masak moritz, jnthn: should I create a rakudobug for this, or does it go directly to Parrot-land?
jnthn masak: It's in NQP compile 21:53
21:53 benabik joined
jnthn masak: So could be an NQP extension. 21:53
masak what's an NQP extension?
jnthn The most helpful thing would be a gdb backtrace
masak: Like, any of our dynops, or somewhere in 6model :)
masak oh aha.
Kharec I investigate more. 21:54
masak jnthn: I leave it to you to negociate a gdb backtrace with monsieur Kharec. :)
jnthn masak: mercy boo coup
Kharec I'm going to leave but I'll try to make one!
thanks guy!
jnthn Kharec: Thanks for reporting 21:55
Kharec thanks to you :)
good night!
21:55 Kharec left
jnthn o/ 21:55
21:55 SmokeMachine left, SmokeMachine joined
FROGGS .oO( conectión reset by pierre ) 21:59
22:02 skids left 22:03 arlinius left 22:10 fgomez joined
dalek p-jvm-prep: 0159a38 | jnthn++ | src/org/perl6/nqp/sixmodel/reprs/P6Opaque (2 files):
Partial P6opaque deserialization.

Only handles reference attributes so far, not flattened in ones.
22:13
p-jvm-prep: 4597ec9 | jnthn++ | src/org/perl6/nqp/runtime/Ops.java:
Make smart_numify handle array/hash REPR.

Feels just a bit dirty but at least "smart" is sufficient warning of magic.
p-jvm-prep: f13c6af | jnthn++ | t/nqp/ (4 files):
Four more passing test files.
jnthn Darn, this headache isn't going away at all :/ 22:22
Guess I'll go rest
&
diakopter o/
FROGGS ó.ò gnight jnthn
tadzik good knight 22:23
22:23 MayDaniel_ left
[Coke] the nqp-jvm-prep makefile could use some love (LHF); things getting recompiled unnecessarily. 22:26
(e.g. 'make nqptest; make nqptest;')
22:27 cog left
masak 'night, #perl6 22:27
diakopter 'nite 22:28
[Coke] finds some passing nqp tests that aren't included yet!
tadzik \o/
FROGGS [Coke]: add 'em, before regression gets 'em 22:31
[Coke] will do so after $dayjob. 22:32
22:35 cog joined 22:36 PacoAir left 22:47 cog left 22:48 Tene left 22:49 GlitchMr joined, xalbo left, djanatyn left 22:53 cog joined 22:57 cog left 22:58 djanatyn joined, cog joined 23:01 Tene joined, Tene left, Tene joined, xalbo joined 23:17 bluescreen10 left 23:18 stopbit left 23:19 palakas left 23:20 benabik left 23:30 balders_dod joined 23:31 skids joined
lue phenny: tell masak his blog's RSS feed is failing to load 23:31
phenny lue: I'll pass that on when masak is around.
23:35 hash_table joined 23:37 cog left 23:38 cog joined 23:39 nnunley left 23:40 hash_table left 23:44 SmokeMachine left, SmokeMachine joined 23:49 SmokeMachine left 23:53 nnunley joined 23:54 SmokeMachine joined