Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2012-07-21

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:59 fgomez joined #perl6
00:59 fgomez joined #perl6
01:11 quietfanatic joined #perl6
01:15 jaldhar joined #perl6
01:30 jaldhar joined #perl6
01:33 prettyrobots joined #perl6
01:37 _jaldhar joined #perl6
01:43 fgomez joined #perl6
01:46 fgomez joined #perl6
01:46 fgomez joined #perl6
01:47 fgomez joined #perl6
01:48 fgomez joined #perl6
02:16 orafu joined #perl6
02:36 Psyche^ joined #perl6
02:58 fgomez joined #perl6
03:15 fgomez joined #perl6
03:36 prettyrobots joined #perl6
03:37 mikec_ joined #perl6
04:00 tokuhiro_ joined #perl6
04:36 kaare_ joined #perl6
04:58 crab2313 joined #perl6
05:18 Ex joined #perl6
05:43 prettyrobots joined #perl6
05:54 robinsmidsrod joined #perl6
05:54 lue joined #perl6
05:57 mucker joined #perl6
06:05 GlitchMr joined #perl6
06:28 phenny joined #perl6
06:28 [Coke] joined #perl6
07:03 diakopter o/
07:09 SamuraiJack joined #perl6
07:10 sorear o/
07:12 sjohnson o/
07:12 * diakopter has been working with UnicodeData.txt the past few hours
07:13 diakopter well, things relating to it.
07:27 xinming joined #perl6
07:27 crab2313_ joined #perl6
07:31 crab2313 joined #perl6
08:02 mucker joined #perl6
08:05 kaare_ joined #perl6
08:10 kaare_ joined #perl6
08:22 lue joined #perl6
08:23 pupoque joined #perl6
08:23 masak antenoon, #perl6
08:28 diakopter o/
08:46 lue joined #perl6
08:49 hoelzro hey Perl6 folk
08:49 hoelzro I just built Parrot 4.6.0, latest NQP from Git, and latest Rakudo from Git, but I'm still encountering the crash bug I've been seeing
08:50 fridim_ joined #perl6
08:50 hoelzro this tarball contains the files needed to duplicate the crash: http://hoelz.ro/files/perl6-crash.tar.bz2
08:51 hoelzro if someone more experienced with any of those projects could take a look, I'd really appreciate it!
08:51 hoelzro (by the way, I'm on 64-bit Arch Linux)
08:56 masak hey, so am I ;)
08:57 * masak makes a look
08:57 hoelzro thank you sir =)
09:00 masak ===SORRY!===
09:00 masak Could not find NativeCall in any of: /home/masak/.perl6/lib, /home/masak/ours/nom-rakudo/install/lib/parrot/4.5.0-devel/languages/perl6/lib
09:00 masak so it seems I should install zavolaj, yes?
09:00 lue joined #perl6
09:00 hoelzro yes
09:01 * masak does so
09:03 masak here, it runs up to 999000 and then goes 'after loop'.
09:03 hoelzro dammit
09:03 masak I am unable to reproduce your crash, sir.
09:03 hoelzro it crashes at around 17000 for me
09:03 hoelzro =/
09:03 hoelzro could my version of Perl 5 impact anything?
09:04 masak sounds GC-related to me.
09:04 hoelzro yeah, it segfaults in my standalone example
09:04 hoelzro but in my program, an assertion in the GC fails
09:09 sergot joined #perl6
09:09 hoelzro masak: where would be a good place to report this?
09:11 sergot hi o/
09:11 masak hoelzro: rakudobug@perl.org
09:11 masak sergocie! \o/
09:12 sergot masaku \o/
09:13 hoelzro masak: thanks!
09:24 tokuhiro_ joined #perl6
09:45 MayDaniel joined #perl6
09:55 birdwindupbird joined #perl6
09:56 masak I've decided to implement lambda calculus in Perl 6, and to blog about it.
09:56 masak though it falls below a bunch of other things on the TODO list.
10:00 diakopter ..
10:05 birdwind1pbird joined #perl6
10:11 lue joined #perl6
10:11 masak oh, right. lue's pull request. :)
10:11 * masak looks
10:12 masak uh, I won't pull merges. sorry.
10:13 masak so I'll reject this one.
10:13 masak but I can still review it on its actual code and give feedback on that, I guess :)
10:14 masak lue: I prefer to leave things out entirely rather than comment them out when they're NYI.
10:15 masak lue: my %hash = { ... }; # the braces there are bad style IMO
10:16 masak also, please put key/value pairs in such a hash on separate lines, indented one step, semicolon on its own line at the end, unindented.
10:18 masak rather than an expand_cmd, I'd like to see short when { ...; proceed } simplifications like at https://github.com/masak/crypt/blob/c2cab1dd53bf066bb713b9ef3aa7dd9340b48231/bin/crypt#L1082
10:19 masak I think I'd prefer "verbs" and "directions" to be handled separately.
10:21 masak lue: the `gather for` is too big a weapon to attack the problem you're solving.
10:21 masak https://github.com/lue/crypt/commit/b765a74c7a1bbea7c54e7e32a09a3fa313bd4450#L0R994 can be written simply `@expandedcmd = %synonyms{$_} // $_ for $syncmd.words`.
10:22 masak also, I think it's a bit too overeager to be doing synonym replacement on *all* words in the command.
10:23 masak I could just imagine an object called "x" which just became unreferrable in the game. :)
10:24 masak also, I'm not a fan of declaring variables at the top of a sub. prefer declaring them ALAP.
10:24 erkan joined #perl6
10:24 masak lue: I should've said at the start that I'm thankful for the pull request. thank you. it adds functionality that would improve the game.
10:24 masak modulo the above comments.
10:32 lue joined #perl6
10:35 fridim_ joined #perl6
10:39 masak lue: ping
10:50 woosley joined #perl6
10:55 pmurias joined #perl6
10:57 xinming joined #perl6
11:10 whiteknight joined #perl6
11:22 GlitchMr joined #perl6
11:26 xinming joined #perl6
11:31 jnthn Good afternoon, #perl6
11:44 masak jnthn! \o/
11:45 jnthn mmm....toqastuits
11:46 colomon \o/
12:07 JimmyZ joined #perl6
12:09 crab2313 joined #perl6
12:10 Coleoid Good morning, #perl6 folks.
12:10 Coleoid I have some questions on comment forms.
12:10 Coleoid The #< ... > form is no longer valid, superseded by #`< ... >, right?
12:11 Coleoid And that form is allowed to begin a line?
12:12 Coleoid R
12:12 Coleoid Related question,
12:13 Coleoid rn: say #`{ Nested embedded comments with different brackets chosen #`[ S02/Embedded Comments is silent on this point ] } 'Should this be specced?  It works...'
12:13 p6eval rakudo 81328c, niecza v19-13-g442e075: OUTPUT«Should this be specced?  It works...␤»
12:14 Coleoid rn: say #`{ Nested embedded comments with same brackets chosen #`{ S02/Embedded Comments is silent on this point } } 'Should this work?'
12:14 p6eval niecza v19-13-g442e075: OUTPUT«Should this work?␤»
12:14 p6eval ..rakudo 81328c: OUTPUT«===SORRY!===␤Confused␤at /tmp/hRjeMWngnZ:1␤»
12:14 Coleoid std: say #`{ Nested embedded comments with same brackets chosen #`{ S02/Embedded Comments is silent on this point } } 'Should this work?'
12:14 p6eval std 3b49ac8: OUTPUT«ok 00:00 41m␤»
12:14 jnthn Rakudo doesn't count nested brackets in quoting constructs just yet, so yes, that should work also.
12:15 Coleoid Thanks!
12:15 * masak submits rakudobug
12:15 jnthn masak: I suspect we already have that covered. :)
12:15 jnthn masak: I mean, maybe not in the comment case, but other related cases.
12:16 Coleoid Yep, I found it doing S02*\*.t cleanup.
12:16 Coleoid So I doubt anything I ask about for a while will really be new.
12:18 masak jnthn: so, no use submitting?
12:20 jnthn masak: Well, I suspect the thing it's a manifestation of must already have been submitted, that's all
12:20 jnthn masak: Also the features page covers Rakudo's lacking in this area :)
12:21 masak I'll take that as a "yes, no use submitting".
12:26 Coleoid masak:  Can you give me a link to the process of submitting (rakudo|neicza)bugs?  I'm underwater in p6 pages right now.
12:27 masak Coleoid: rakudobug: step 1: send an email to rakudobug@perl.org. step 2: done.
12:27 Coleoid :D
12:27 masak Coleoid: nieczabug: http://github.com/sorear/niecza/issues
12:28 Coleoid . o (No wonder I don't recall seeing a tutorial on it...)
12:29 colomon Don't forget to include the version of rakudo/niecza which demonstrates the bug.
12:30 colomon Demonstrating the bug in p6eval and then copy-n-pasting the IRC log is a popular approach.  :)
12:30 masak heh.
12:30 Coleoid For which the ...  That was my next question.  :D
12:32 dalek nqp/toqast: 6ad982a | jnthn++ | src/QAST/Operations.nqp:
12:32 dalek nqp/toqast: Get while/until loops able to handle next/last/redo control exceptions again. Also a fix to support the 3-operand version that loop wants.
12:32 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/6ad982aeb1
12:32 dalek rakudo/toqast: cddd89c | jnthn++ | src/QPerl6/Actions.pm:
12:32 dalek rakudo/toqast: Fix loop.
12:32 dalek rakudo/toqast: review: https://github.com/rakudo/rakudo/commit/cddd89c373
12:34 drbean joined #perl6
12:42 Chillance joined #perl6
12:50 drbean joined #perl6
12:53 whiteknight joined #perl6
13:05 drbean joined #perl6
13:11 prettyrobots joined #perl6
13:13 masak r: say "Pretty robots!".comb(/<[\w]>/).lc
13:13 p6eval rakudo 81328c: OUTPUT«p r e t t y r o b o t s␤»
13:13 masak r: say "Pretty robots!".comb(/<[\w]>/).join.lc
13:13 p6eval rakudo 81328c: OUTPUT«prettyrobots␤»
13:13 masak \o/
13:18 fgomez joined #perl6
13:19 PacoAir joined #perl6
13:21 fgomez joined #perl6
13:22 fgomez joined #perl6
13:26 Timbus what the.. you guys forked my awful bot on github??
13:27 Timbus i was going to give up and move to event based instead of slot-based stuff but jnthn's fix seems preeetty good
13:27 masak Timbus: not just that -- we demoed it in a talk in Bristol :)
13:28 Timbus ohmigosh
13:28 masak :D
13:29 crab2313 joined #perl6
13:30 masak Timbus: http://masak.org/carl/bristol-mm-2012-flyingcar/talk.pdf
13:30 Timbus im a lot better at event based programming these days after having to make a data logger + json rpc server at work using anyevent+coro (and gtk+anyevent for the client stuff). maybe I should update it to work with muevent
13:34 drbean joined #perl6
13:35 grondilu joined #perl6
13:37 grondilu left #perl6
13:41 cognominal joined #perl6
13:47 prettyrobots joined #perl6
13:54 cognominal joined #perl6
13:56 leprevost joined #perl6
13:58 cognominal_ joined #perl6
13:59 Timbus masak, would you happen to know why the unsmith module doesn't work
14:00 Timbus Nominal type check failed for parameter ''; expected Net::IRC::Modules::ACME::Unsmith but got Cursor instead <- what even
14:00 masak Timbus: I think I hit upon that. no idea. :/
14:01 Timbus the 8ball regex works
14:01 raiph joined #perl6
14:02 Timbus and <.ws> in the regex works.
14:09 raiph couple comments about jnthn+masak++'s "dude, where's my flying car?"
14:10 masak listening.
14:10 raiph the releases graphic has a smilie per month
14:11 lue joined #perl6
14:11 raiph but there isn't one star per star release. in particular, only 2 stars in 2011
14:12 raiph you did jan, apr (2 actually), and july
14:13 raiph and i think in 2012 u did jan, feb, mar, apr (x2), jun,
14:14 masak oh!
14:15 masak I could change that, I think.
14:16 raiph in the adoption curve u point toward the end of the early adopter phase. i'd put at or near the start
14:17 prettyrobots left #perl6
14:18 raiph a few small lang examples. the examples are a weird choice -- until one sees why (card example).
14:20 raiph perhaps u say so as u do the presentation, but as a pdf, until i figured that out, it made the examples feel anticimactic
14:20 raiph *anticlimatic
14:21 Timbus i remember when net::irc used 150mb of ram and i was like woah thats alot
14:21 Timbus now it uses 350mb
14:21 raiph re: what's we're working on
14:21 raiph s/what's/what/
14:22 raiph (as in slide title had that error)
14:22 tesss joined #perl6
14:22 tesss Testing.....
14:23 raiph title sorta implies that you're working on is what's left
14:23 raiph (title is actually "what's we're still working on")
14:23 tesss Works!
14:23 Timbus you ran 1 test(s), all returned ok
14:24 masak no, we're at the end of the early adopter phase. I insist.
14:24 Timbus another satisfied #perl6 visitor
14:24 raiph s/implies that you're/implies that what you're/
14:24 masak I've made that adoption curve earlier, in other talks. I put the arrow earlier then :)
14:25 raiph masak: in terms of adoption i'd say we're very much still in the early part of the early adopter phase
14:25 takadonet joined #perl6
14:26 masak ok. prediction things is difficult, especially prediction the future.
14:26 masak predicting*, both time
14:26 masak s*
14:27 masak in what way were the examples a weird choice and anticlimatic? they feel like fairly normal examples to me.
14:29 raiph until i realized u picked those examples to set up the card example, i was assuming the examples would be chosen to showcase p6 at its best
14:29 takadonet joined #perl6
14:30 masak I'm not aware that we *did* pick those examples particularly to set up the card example...
14:30 masak we're showing loops, subroutines, classes...
14:30 raiph they are cool; even v cool; but they didn't blow me away.
14:30 takadonet Hey masak
14:30 masak hey takadonet
14:30 takadonet Been a while
14:30 masak indeed.
14:30 masak welcome back! \o/
14:31 takadonet Never left.  Been reading the logs mostly daily
14:31 raiph masak: was the target audience perl 5 users?
14:31 masak raiph: no, programmers in general.
14:32 masak takadonet: oh, ok. anyway, nice to talk to you again :)
14:32 raiph then showing me loops, subs, and classes is very underwhelming
14:32 takadonet You too
14:33 masak raiph: tell me what that section should have been. I'm still missing your point, I think.
14:34 masak I didn't get the feeling that the audience was underwhelmed during that part.
14:35 * moritz back
14:35 raiph grammars, and a p6 grammar you can easily bend? ("wow!"),
14:35 raiph i realize it's small examples, and you define the ! op, but still
14:36 lue joined #perl6
14:36 masak true. we could've shown grammars there.
14:36 masak fwiw, we did in the two-hour walkthrough on the same conf.
14:37 raiph laziness. nice! (and not in other langs)
14:37 jnthn The talk was rather time constrained, though. Also it was very much aimed at attracting people to a longer 2-hour Perl 6 tutorial that came later in the day. Given the room for that one was totally full, I'd say this walk worked pretty fine. :)
14:37 jnthn And yes, the later session did include grammars. :)
14:37 raiph i should say it's a great, fun, quick intro. i guess what i'm saying was nits.
14:38 jnthn Sure, there's always things to tweak. Showing grammars woulda been cool too; they are a "killer feature".
14:38 masak next time we will :)
14:39 raiph i guess that was my problem. the slides say there's two presentations. i retract my concerns about the examples.
14:39 raiph nice job! ;)
14:40 jnthn masak: Yes, but as I always tell people at $dayjob when they tell me, "why don't you inlcude X in the class": what do you want to replace with it to make time? :)
14:41 moritz .oO( because I don't want the class to be X-rated )
14:42 jnthn :P
14:42 raiph jnthn, masak: maybe "a few small language examples" --> "couple examples of p6's take on common constructs"
14:43 jnthn raiph: That's quite a nice phrasing.
14:44 raiph jnthn, masak: my point was more about my expectation that what i was seeing was a quick intro to p6, but it was more a taster to set things up for the second presentation
14:46 raiph anyway, to wrap, i thought it was great w/ the exception of being anticlimactic because i didn't anticipate another one
14:47 jnthn raiph: Yes, I can see if you don't have the context of "come see more later", it doesn't feel quite complete.
14:47 masak :)
14:47 * masak .oO( "Perl 6 is less of a language and more of a full multisensory experience" )
14:48 raiph jnthn: right. that's all. and when i viewed it i didn't have that context. and the only clue was "this presentation and the next" the significance of which i didn't really take on
14:50 raiph so, let me try again:
14:50 raiph jnthn++ masak++ : great slideshow! just about perfect! :)
14:52 masak ;)
14:52 lue joined #perl6
14:52 * masak .oO( suck-up ) :P
14:57 jnthn Ugh. Compiling CORE.setting with qperl6 gets up to Int (so, thousands of lines in), then hangs...
15:00 masak it probably tries to enumerate all the Ints or something... :)
15:06 jnthn My first guess was that it failed somewhere in composition, but no, that seems to work out OK...
15:18 lue joined #perl6
15:41 lue joined #perl6
15:52 dalek roast: e7b4100 | moritz++ | S03-operators/precedence.t:
15:52 dalek roast: remove outdated tests for prefix abs
15:52 dalek roast: review: https://github.com/perl6/roast/commit/e7b410011a
15:53 dalek rakudo/nom: 5b56cfc | moritz++ | src/ (6 files):
15:53 dalek rakudo/nom: remove abs as a prefix op, make it a normal sub instead
15:53 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/5b56cfcf92
15:53 moritz r: enum A (b => 1 + 1);
15:53 p6eval rakudo 81328c:  ( no output )
15:54 moritz r: enum A (b => 1 + 1); say A::b
15:54 p6eval rakudo 81328c: OUTPUT«b␤»
15:54 moritz r: enum A (b => 1 + 1); say A::b + 1
15:54 p6eval rakudo 81328c: OUTPUT«3␤»
15:54 moritz \o/
15:59 masak moritz! \o/
16:00 dalek nqp/toqast: 0cf1ec5 | jnthn++ | src/QAST/Operations.nqp:
16:00 dalek nqp/toqast: Handling for 2 and 3 arg version of substr.
16:00 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/0cf1ec5e5d
16:00 dalek nqp/toqast: 839ab97 | jnthn++ | src/QAST/Operations.nqp:
16:00 dalek nqp/toqast: Re-instate nqp::die.
16:00 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/839ab97cb4
16:00 dalek nqp/toqast: a3fbc99 | jnthn++ | src/QAST/Operations.nqp:
16:00 dalek nqp/toqast: Add nqp::findmethod.
16:00 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/a3fbc99ffc
16:00 dalek nqp/toqast: 1668e70 | jnthn++ | src/QAST/Compiler.nqp:
16:00 dalek nqp/toqast: Make use of QAST::Want v when processing statement lists.
16:00 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/1668e70283
16:00 dalek nqp/toqast: 74c1e10 | jnthn++ | src/QAST/ (2 files):
16:00 dalek nqp/toqast: Contextual QAST::Want nodes when compiling ops.
16:00 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/74c1e10a63
16:02 lue joined #perl6
16:06 dalek rakudo/toqast: 7253071 | jnthn++ | src/QPerl6/Actions.pm:
16:06 dalek rakudo/toqast: Toss a needless check, which could cause problems.
16:06 dalek rakudo/toqast: review: https://github.com/rakudo/rakudo/commit/72530716f1
16:06 dalek rakudo/toqast: edf1a73 | jnthn++ | src/core/ (2 files):
16:06 dalek rakudo/toqast: Pair/Whatever/WhateverCode need to be stubbed really early now.
16:06 dalek rakudo/toqast: review: https://github.com/rakudo/rakudo/commit/edf1a73cbe
16:06 dalek rakudo/toqast: 35d8ceb | jnthn++ | src/QPerl6/Actions.pm:
16:06 dalek rakudo/toqast: Couple of some AST building tweaks to enable better code-gen.
16:06 dalek rakudo/toqast: review: https://github.com/rakudo/rakudo/commit/35d8ceb6a2
16:06 dalek rakudo/toqast: aff12ef | jnthn++ | src/QPerl6/ (2 files):
16:06 dalek rakudo/toqast: Fix up constant folder, thus fixing compilation of Order enum.
16:06 dalek rakudo/toqast: review: https://github.com/rakudo/rakudo/commit/aff12ef765
16:20 SamuraiJack joined #perl6
16:21 masak http://strangelyconsistent.org/blog/announcing-the-winner-of-the-perl-6-coding-contest-2011
16:24 seldon joined #perl6
16:25 diakopter masak: is AZ a he?
16:28 masak diakopter: point taken. I actually thought about it when I wrote that.
16:28 masak A Z has chosen not to reveal full name or gender. I wrote "he" because Spivak pronounce are not standard English, and the assumption of "he" here is fairly safe.
16:28 masak that said, if I was wrong, I'll happily (1) change it to "she" and (2) apologise.
16:29 diakopter what is Spivak pronounce
16:29 masak er, pronouns.
16:29 masak https://en.wikipedia.org/wiki/Spivak_pronoun
16:29 diakopter meh
16:30 masak ;)
16:31 masak if you ask me for a preference, I think the Elverson variant is the sanest. but the fact remains; using them creates more confusion than clarity.
16:35 diakopter masak: you wrote "The flexibility of Perl 6 makes it easy to add container types with intuitive interfaces."  example plz
16:36 diakopter I'm not challenging; I'm merely inquisitive
16:38 masak is that one of the reviews?
16:38 masak url?
16:38 diakopter http://strangelyconsistent.org/p6cc2011/t2/az5112/
16:40 masak example: say you wanted a "sorted hash" type. you could give it both a .{} method for keyed lookup and a .[] method for indexed lookup.
16:40 masak it's intuitive because from the outside it works just like you're used to with hashes and arrays, even though it's a user type.
16:44 diakopter I'm slow; how do you add .{} or .[] methods
16:45 masak r: class A { method postcircumfix:<[ ]>($n) { $n } }; my $a = A.new; say $a[42]
16:45 p6eval rakudo 5b56cf: OUTPUT«42␤»
16:45 lue joined #perl6
16:54 UncleFester6 joined #perl6
16:55 UncleFester6 flussence: ping
16:58 seldon Can operators be overloaded that way outside classes?
16:58 seldon I'm thinking of ops +, - and similar.
16:58 flussence hi
16:59 UncleFester6 flussence: it looks like I can put -G in just one step and get around the build problem.  Have you done something similar?
16:59 flussence I needed to put -G in stage 1/2 NQPCORE.setting build commands
17:00 jnthn seldon: Yes
17:01 seldon \o/
17:01 UncleFester6 it looks like most people fail in the same place ... Can I ask you to just put -G in the step that does "--output=$(STAGE1)/$(CORE_SETTING_PIR)" and see if runs?  I am thinking that might be a patch.
17:01 flussence that's exactly what I did
17:02 flussence (plus the stage2 one, since it failed too)
17:04 birdwindupbird joined #perl6
17:05 UncleFester6 My stage 2 didn't fail.  I guess they objected to leaving -G in for those steps as a patch so I will document the workaround in the ticket.  Thx.
17:06 flussence I wonder if low memory makes it more likely, how much RAM/swap is on your machine? Mine's 1GB/768MB.
17:08 UncleFester6 according to "top" I have 1GB RAM/3GB SWAP
17:09 flussence 4GB should be more than enough. doesn't seem like that's the cause either... very confusing.
17:11 dalek nqp/toqast: 212b72c | jnthn++ | src/QAST/Operations.nqp:
17:11 dalek nqp/toqast: Add a couple of missing ops.
17:11 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/212b72c873
17:11 dalek nqp/toqast: 876c9d5 | jnthn++ | src/QAST/Operations.nqp:
17:11 dalek nqp/toqast: Fix some op signatures.
17:11 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/876c9d53e4
17:11 dalek nqp/toqast: 818b756 | jnthn++ | src/QAST/Compiler.nqp:
17:11 dalek nqp/toqast: Add to QAST::VM so we can handle pir::const::foo.
17:11 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/818b756de5
17:11 dalek rakudo/toqast: e6609f3 | jnthn++ | src/Perl6/Metamodel/BOOTSTRAP.pm:
17:11 dalek rakudo/toqast: Add a missing bit of circularity sawing for Str. This may well have been at the heart of many of the not-fun-to-track-down infinite recursions related to stringification when compiling CORE.setting.
17:11 dalek rakudo/toqast: review: https://github.com/rakudo/rakudo/commit/e6609f3ff6
17:11 dalek rakudo/toqast: 6f79391 | jnthn++ | src/core/control.pm:
17:11 dalek rakudo/toqast: Fix a bunch of incorrect pirop signatures that the slightly stricter processing in QAST catches.
17:11 dalek rakudo/toqast: review: https://github.com/rakudo/rakudo/commit/6f79391463
17:11 dalek rakudo/toqast: b2aa14b | jnthn++ | src/QPerl6/Actions.pm:
17:11 dalek rakudo/toqast: Update pir::const compilation.
17:11 dalek rakudo/toqast: review: https://github.com/rakudo/rakudo/commit/b2aa14bdea
17:26 GlitchMr joined #perl6
17:36 sorear good * #perl6
17:49 raiph joined #perl6
17:51 raiph "Type objects (other than Mu) can be compared for equality with the === identity operator: "
17:51 raiph (from http://doc.perl6.org/language/objects)
17:52 raiph is followed by use of "==" not ===
17:52 gfldex moritz: ^^^
17:54 raiph aiui both the sentence and the code are correct but it reads strangely
17:55 raiph actually, scrap my last comment except the bit about it reading strangely.
17:56 gfldex the code is not correct
18:08 masak sorear! \o/
18:08 UncleFester6 left #perl6
18:15 birdwindupbird joined #perl6
18:35 skids joined #perl6
18:43 SamuraiJack joined #perl6
18:48 cognominal joined #perl6
18:54 masak r: my &x; say defined &x
18:54 p6eval rakudo 5b56cf: OUTPUT«False␤»
18:54 masak r: class A { has &!x; submethod BUILD() { say defined &!x } }; A.new; class B { has &!x; submethon BUILD(:&!x) { say defined &!x } }; B.new
18:54 p6eval rakudo 5b56cf: OUTPUT«===SORRY!===␤Variable &!x used where no 'self' is available␤at /tmp/_2UCRLzEfX:1␤»
18:55 masak r: class A { has &!x; submethod BUILD() { say defined &!x } }; A.new; class B { has &!x; submethod BUILD(:&!x) { say defined &!x } }; B.new
18:55 p6eval rakudo 5b56cf: OUTPUT«False␤False␤»
18:57 masak r: class B { has &!x; submethod BUILD (:&!x) { &!x //= { 'ook!' } }; method f { say "&!x = ", &!x; &!x() } }; say B.new.f
18:57 p6eval rakudo 5b56cf: OUTPUT«&!x = Callable()␤invoke() not implemented in class 'Callable'␤  in method f at /tmp/k7SKaa2kSO:1␤  in block <anon> at /tmp/k7SKaa2kSO:1␤␤»
18:57 SamuraiJack joined #perl6
18:58 masak WHAT DO YOU THINK CALLABLE MEANS THEN
18:58 * masak hyperventilates
18:58 masak I feel better now.
18:59 masak r: class C { has &!x; method setup (:&!x) { &!x //= { 'ook!' } }; method f { say "&!x = ", &!x; &!x() } }; given C.new { .setup; say .f }
18:59 p6eval rakudo 5b56cf: OUTPUT«&!x = Callable()␤invoke() not implemented in class 'Callable'␤  in method f at /tmp/13ET4g8qAn:1␤  in block <anon> at /tmp/13ET4g8qAn:1␤␤»
18:59 masak r: class C { has &!x; method setup (:&!x) { &!x = { 'ook!' } }; method f { say "&!x = ", &!x; &!x() } }; given C.new { .setup; say .f }
18:59 p6eval rakudo 5b56cf: OUTPUT«&!x = Block.new()␤ook!␤»
19:00 snearch joined #perl6
19:00 masak so it's something to do with //= and callables.
19:00 jnthn r: my &x; &x //= { 42 }; x(42)
19:00 p6eval rakudo 5b56cf:  ( no output )
19:00 jnthn r: my &x; &x //= { 42 }; say x(42)
19:00 p6eval rakudo 5b56cf: OUTPUT«42␤»
19:00 masak r: class C { has &!x; method setup (:&!x) { say defined &!x; &!x //= { 'ook!' } }; method f { say "&!x = ", &!x; &!x() } }; given C.new { .setup; say .f }
19:00 p6eval rakudo 5b56cf: OUTPUT«False␤&!x = Callable()␤invoke() not implemented in class 'Callable'␤  in method f at /tmp/v_9AsxihP2:1␤  in block <anon> at /tmp/v_9AsxihP2:1␤␤»
19:00 masak and private attributes.
19:00 masak r: class C { has &!x; method setup (:&!x) { say defined &!x; &!x //= { 'ook!' } }; method f { say defined &!x; &!x() } }; given C.new { .setup; say .f }
19:00 p6eval rakudo 5b56cf: OUTPUT«False␤False␤invoke() not implemented in class 'Callable'␤  in method f at /tmp/HMftU6NHmB:1␤  in block <anon> at /tmp/HMftU6NHmB:1␤␤»
19:01 masak oh, still undefined!
19:01 * masak submits rakudobug
19:01 masak oh, but hm.
19:02 masak r: class C { has &!x; method setup () { say defined &!x; &!x //= { 'ook!' } }; method f { say defined &!x; &!x() } }; given C.new { .setup; say .f }
19:02 p6eval rakudo 5b56cf: OUTPUT«False␤True␤Null PMC access in get_pmc_keyed_str()␤  in block <anon> at /tmp/MjjEyWmq2h:1␤  in method f at /tmp/MjjEyWmq2h:1␤  in block <anon> at /tmp/MjjEyWmq2h:1␤␤»
19:02 masak ah. :)
19:02 * masak sniggers for slightly too long
19:04 * jnthn isn't at all sure what's going on.
19:04 masak r: class C { has &!x; method f { say defined &!x; &!x //= { 'ook!' }; say defined &!x; &!x() } }; C.new.f
19:04 p6eval rakudo 5b56cf: OUTPUT«False␤True␤Null PMC access in get_pmc_keyed_str()␤  in method f at /tmp/yMRhSSoY2h:1␤  in block <anon> at /tmp/yMRhSSoY2h:1␤␤»
19:04 masak r: class C { has &!x; method f { say defined &!x; &!x //= { 'ook!' }; say defined &!x; say &!x.arity } }; C.new.f
19:04 p6eval rakudo 5b56cf: OUTPUT«False␤True␤0␤»
19:04 dalek doc: 75dc961 | moritz++ | lib/objects.pod:
19:04 dalek doc: fix thinko, raiph++
19:04 dalek doc: review: https://github.com/perl6/doc/commit/75dc961e95
19:04 masak r: class C { has &!x; method f { say defined &!x; &!x //= { 'ook!' }; say defined &!x; say &!x.count } }; C.new.f
19:04 p6eval rakudo 5b56cf: OUTPUT«False␤True␤1␤»
19:05 masak r: class C { has &!x; method f { say defined &!x; &!x //= { 'ook!' }; say defined &!x; say &!x.^name } }; C.new.f
19:05 p6eval rakudo 5b56cf: OUTPUT«False␤True␤Block␤»
19:06 jnthn r: class C { has &!x; method f { say &!x.WHAT } }
19:06 p6eval rakudo 5b56cf:  ( no output )
19:06 jnthn r: class C { has &!x; method f { say &!x.WHAT } }; C.new.f
19:06 p6eval rakudo 5b56cf: OUTPUT«Any()␤»
19:06 jnthn r: my &x; say &x.WHAT
19:06 p6eval rakudo 5b56cf: OUTPUT«Any()␤»
19:07 jnthn r: sub foo(&x?) { say &x.WHAT }; foo
19:07 p6eval rakudo 5b56cf: OUTPUT«Callable()␤»
19:07 masak r: sub foo(&x?) { &x //= { say "OH HAI" }; &x() }; foo
19:08 p6eval rakudo 5b56cf: OUTPUT«invoke() not implemented in class 'Callable'␤  in sub foo at /tmp/Ub_jkP6YNc:1␤  in block <anon> at /tmp/Ub_jkP6YNc:1␤␤»
19:08 jnthn ah, no private attr needed.
19:08 masak yeah, but only the private attr gives a Null PMC access so far.
19:08 jnthn r: sub foo(&x?) { &x() }; foo
19:08 p6eval rakudo 5b56cf: OUTPUT«invoke() not implemented in class 'Callable'␤  in sub foo at /tmp/iu6dt8RMri:1␤  in block <anon> at /tmp/iu6dt8RMri:1␤␤»
19:08 jnthn r: sub foo(&x?) { say defined &x; say nqp::defined(&x) }; foo
19:08 p6eval rakudo 5b56cf: OUTPUT«False␤No such method 'gist' for invocant of type 'Integer'␤  in sub say at src/gen/CORE.setting:6984␤  in sub foo at /tmp/QOQ8BDPLzr:1␤  in block <anon> at /tmp/QOQ8BDPLzr:1␤␤»
19:09 jnthn r: sub foo(&x?) { say defined &x; say nqp::p6box_i(nqp::defined(&x)) }; foo
19:09 p6eval rakudo 5b56cf: OUTPUT«False␤1␤»
19:09 jnthn Well. That goes some way to explaining things.
19:09 masak ah. yes.
19:10 brrt joined #perl6
19:10 zby_home_ joined #perl6
19:10 masak r: class C { has &!x; method f { &!x() } }; C.new.f
19:10 p6eval rakudo 5b56cf: OUTPUT«No such method 'Any' for invocant of type 'Parcel'␤  in <anon> at src/gen/BOOTSTRAP.pm:804␤  in <anon> at src/gen/BOOTSTRAP.pm:801␤  in any <anon> at src/gen/BOOTSTRAP.pm:796␤  in method f at /tmp/pwhr4djeCI:1␤  in block <anon> at /tmp/pwhr4djeCI:1␤␤»
19:10 jnthn Ohhhh...
19:10 masak wut
19:10 jnthn It sees an invocation of a type object and thinks "oh, it's a coercin"
19:11 jnthn Since Any(...) is how you coerce.
19:11 masak that... isn't a syntactical thing?
19:11 jnthn No
19:11 masak huh.
19:11 jnthn Otherwise, how could you override coercion using postcircumfix:<( )>?
19:11 jnthn (Which the spec says you can.)
19:11 * jnthn thought it was syntactic once too
19:12 SamuraiJack_ joined #perl6
19:12 masak ok.
19:12 masak anyway, I win a Null PMC access today. :)
19:12 masak Wayne++
19:12 masak r: class C { has &!x; method f { say defined &!x; &!x = { 'ook!' } unless defined &!x; say defined &!x; &!x() } }; C.new.f
19:12 p6eval rakudo 5b56cf: OUTPUT«False␤True␤»
19:13 masak workaround.
19:13 dalek star: 0fe428e | moritz++ | skel/docs/announce/2012.07:
19:13 dalek star: add some deprecation notices to the release announcement
19:13 dalek star:
19:13 dalek star: maybe we need to find a better place for them as they grow larger
19:13 dalek star: review: https://github.com/rakudo/star/commit/0fe428ed12
19:14 * moritz facepalms at https://github.com/rakudo/rakudo/commit/e6609f3ff6
19:15 moritz I mean, at the fact that we didn't have that before
19:17 jnthn moritz: Yes, it was only today, staring at those stack traces for the nth time, that I realized what was going on.
19:18 benabik Stash.HOW.publish_yadda(Str)?  Shouldn't it be Str.HOW.yadda?
19:19 jnthn hm, yes.
19:21 moritz jnthn: what puzzles me is, how did vtably conversion from Str to parrot String ever work?
19:21 moritz jnthn: through the Mu one?
19:21 jnthn moritz: Yes.
19:22 moritz that... explains a lot
19:22 jnthn moritz: So in the places we rely on the vtable conversion (hopefully few) it should be a little faster.
19:24 moritz jnthn: I once grepped src/gen/CORE.setting.pir for vtable usages, and found only a few, and removed most of them
19:24 moritz but that's a while ago
19:25 uvtc joined #perl6
19:26 brrt hey everybody, quick question, does NQP participate in compreg?
19:26 uvtc Hi #perl6. What are the remaining pieces of Rakudo that need to be re-written in order for Rakudo to more easily run on other VMs? Is QAST the last piece, or are there others?
19:27 jnthn uvtc: QAST is the last large piece. However, NQP also needs to be moved over to use QAST yet.
19:27 uvtc jnthn: Ah. I'm just looking at your most recent blog post, actuall.
19:27 uvtc actually.
19:28 moritz r: say pir::compreg__Ps('nqp')
19:28 p6eval rakudo 5b56cf: OUTPUT«Null PMC access in find_method('gist')␤  in sub say at src/gen/CORE.setting:6984␤  in block <anon> at /tmp/gdVJfKFrzk:1␤␤»
19:28 uvtc Any guesses as to the timetable for getting NQP moved over to use QAST?
19:28 moritz r: pir::say(pir::isnull(pir::compreg__Ps('nqp')))
19:28 p6eval rakudo 5b56cf: OUTPUT«1␤»
19:29 brrt yeah, thats what i'm all about
19:29 brrt evidence of it is lacking
19:29 masak rn: say Bool.roll
19:29 p6eval rakudo 5b56cf, niecza v19-13-g442e075: OUTPUT«True␤»
19:29 masak \o/
19:29 uvtc jnthn: In your blog post, it says that you hope the August release will be QAST-based. Does that include moving NQP over to QAST?
19:30 jnthn uvtc: Moving NQP over isn't a pre-req for the August release of Rakudo being based on QAST.
19:30 jnthn uvtc: It *may* also happen in time for the August release.
19:30 jnthn uvtc: If not, I'd be surprised if it wasn't done by the September one.
19:31 uvtc jnthn: Ah. That's what I was wondering about. Thanks for the info/prognostication. :)
19:31 brrt (sidenote: does QAST even run on 'other vms'?)
19:31 jnthn np :)
19:32 moritz brrt: do you happen to know what a compiler has to do to be found by compreg?
19:32 brrt yes, there is another version of compreg
19:32 brrt wait i find it
19:33 jnthn nqp: say(nqp::isnull(pir::compreg__Ps('nqp')))
19:33 p6eval nqp: OUTPUT«0␤»
19:34 moritz so nqp can find itself :-)
19:34 jnthn r: say(pir::compreg__Ps('nqp'))
19:34 p6eval rakudo 5b56cf: OUTPUT«Null PMC access in find_method('gist')␤  in sub say at src/gen/CORE.setting:6984␤  in block <anon> at /tmp/5hozMhytFO:1␤␤»
19:34 jnthn nqp: say(pir::compreg__Ps('nqp'))
19:34 p6eval nqp: OUTPUT«multi_dispatch_over_lexical_candidates was unable to find a candidate list␤current instr.: 'Str' pc 5630 (src/stage2/gen/NQPCORE.setting.pir:2566) (src/stage2/NQPCORE.setting:138)␤»
19:34 jnthn Hm
19:34 jnthn :)
19:34 jnthn Anyway, it means NQP is registering itself.
19:34 jnthn It's just that Rakudo doesn't load NQP.
19:34 jnthn We don't need to have the NQP compiler in memory.
19:34 brrt ... load_language doesn't load nqp, iether
19:35 * jnthn doesn't know exactly what load_language does.
19:35 mtk joined #perl6
19:35 brrt compreg(in STR, invar PMC) registers a compiler
19:36 brrt r: pir::load_language_s("nqp")
19:36 p6eval rakudo 5b56cf: OUTPUT«(signal SEGV)»
19:37 uvtc left #perl6
19:37 benabik awesome
19:38 masak hey people, do you remember http://gist.github.com/1154298 ?
19:38 brrt it is isn't it
19:38 masak well, I just un-bitrotted farm.pl, so now there's nothing standing in your way for writing your own AI for the Little Animal Farm.
19:39 jnthn Getting the sig of the op correct may or may not help...
19:39 masak there's a kind of contest going on. lasts until YAPC::EU.
19:39 jnthn r: pir::load_language_vs("nqp")
19:39 p6eval rakudo 5b56cf: OUTPUT«use of uninitialized value of type Mu in string context  in any <anon> at src/gen/BOOTSTRAP.pm:104␤␤use of uninitialized value of type Mu in string context  in any <anon> at src/gen/BOOTSTRAP.pm:104␤␤===SORRY!===␤error:imcc:syntax error, unexpected PREG, expecting …
19:39 jnthn r: pir::load_language_vs("nqp"); 1
19:39 p6eval rakudo 5b56cf: OUTPUT«use of uninitialized value of type Mu in string context  in any <anon> at src/gen/BOOTSTRAP.pm:104␤␤use of uninitialized value of type Mu in string context  in any <anon> at src/gen/BOOTSTRAP.pm:104␤␤===SORRY!===␤error:imcc:syntax error, unexpected PREG, expecting …
19:39 jnthn r: pir::load_language__vs("nqp"); 1
19:39 p6eval rakudo 5b56cf: OUTPUT«"load_language" couldn't find a compiler module for the language 'nqp'␤  in block <anon> at /tmp/IPoqxv0z1n:1␤␤»
19:39 brrt wait wait wait!
19:39 brrt r: pir::load_language__vs("NQP")
19:39 p6eval rakudo 5b56cf: OUTPUT«"load_language" couldn't find a compiler module for the language 'NQP'␤  in block <anon> at /tmp/E91fM7uuE5:1␤␤»
19:40 brrt grr
19:40 jnthn r: pir::load_bytecode__vs("nqp"); 1
19:40 p6eval rakudo 5b56cf: OUTPUT«"load_bytecode" couldn't find file 'nqp'␤  in block <anon> at /tmp/DgXeMx2Cqr:1␤␤»
19:40 jnthn r: pir::load_bytecode__vs("nqp.pbc"); 1
19:40 p6eval rakudo 5b56cf: OUTPUT«"load_bytecode" couldn't find file 'nqp.pbc'␤  in block <anon> at /tmp/Y73DoG2mH4:1␤␤»
19:40 jnthn hmm
19:40 jnthn I wonder where it looks.
19:45 moritz an strace can tell
19:45 moritz everywhere
19:46 moritz ./nqp.{pbc,pir,pasm,pbc} # yes, it looks for nqp.pbc twice
19:46 moritz $installdir/./nqp.{pbc,pir,pasm,pbc}
19:46 moritz $installdir/lib/parrot/4.5.0-devel/library/nqp.blah
19:47 moritz nqp.blah
19:47 moritz I don't know what the difference between ./nqp.blah and nqp.blah is supposed to be
19:47 dalek nqp/toqast: e688001 | jnthn++ | src/QAST/Operations.nqp:
19:47 dalek nqp/toqast: A few more missing nqp:: ops.
19:47 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/e688001516
19:48 dalek rakudo/toqast: f9b1ed7 | jnthn++ | src/core/ (4 files):
19:48 dalek rakudo/toqast: We need to provide explicit signatures for pir::ops now; this was mostly happening, and this tweaks the rest, hopefully.
19:48 dalek rakudo/toqast: review: https://github.com/rakudo/rakudo/commit/f9b1ed7291
19:48 dalek rakudo/toqast: 8fb3afe | jnthn++ | src/Perl6/Metamodel/BOOTSTRAP.pm:
19:48 dalek rakudo/toqast: Fix copy-pasto; benabik++.
19:48 dalek rakudo/toqast: review: https://github.com/rakudo/rakudo/commit/8fb3afe057
19:48 dalek rakudo/toqast: ed9292f | jnthn++ | src/QPerl6/World.pm:
19:48 dalek rakudo/toqast: Fix a leftover PAST::Op usage.
19:48 dalek rakudo/toqast: review: https://github.com/rakudo/rakudo/commit/ed9292f8f7
19:48 moritz where nqp is installed in $install/lib/parrot/4.5.0-devel/languages/nqp/lib/nqp.pbc
19:49 moritz but it searches in $installdir/lib/parrot/4.5.0-devel/library/nqp.pbc
19:49 moritz so, mismatch
19:50 moritz and rakudo is installed in $install/lib/parrot/4.4.0-devel/languages/perl6/perl6.pbc
19:50 moritz so, all three (nqp, rakudo and what parrot searches for) are inconsistent
20:13 * masak .oO( at least all three are inconsistent, so none of the other two feels left out... )
20:14 brrt joined #perl6
20:28 masak r: class Outer { has $.a is rw; class Inner { has Outer $.o; method foo { $.o.a = 42 } }; method inner { Inner.new } }; given Outer.new { .inner.foo; say .a }
20:28 p6eval rakudo 5b56cf: OUTPUT«Cannot look up attributes in a type object␤  in method a at src/gen/CORE.setting:1522␤  in method foo at /tmp/Uy3FFOEioE:1␤  in block <anon> at /tmp/Uy3FFOEioE:1␤␤»
20:28 masak oh, right.
20:28 masak r: class Outer { has $.a is rw; class Inner { has Outer $.o; method foo { $.o.a = 42 } }; method inner { Inner.new(:o(self)) } }; given Outer.new { .inner.foo; say .a }
20:28 p6eval rakudo 5b56cf: OUTPUT«42␤»
20:29 masak is this the appropriate way for an inner class to refer to its outer class? or is there a better way I don't see?
20:29 masak i.e. does the connection have to be explicit through an attribute in the inner class?
20:32 jnthn Think so.
20:32 jnthn The nesting just gets you the inner being installed as Outer::Inner.
20:32 jnthn And lexical scope visibility.
20:32 jnthn It doesn't imply anything at the object level.
20:33 masak right.
20:33 masak in Java, you can do the equivalent of Outer::self.
20:33 masak maybe we... shouldn't do that, though. :)
20:34 jnthn I could never remember the rules for doing that stuff.
20:35 jnthn I'm not sure that it encourages the right decisions either.
20:35 * masak .oO( language design according to what stuff jnthn could never remember the rules of )
20:36 masak jnthn: right. it feels like the compiler/runtime take on an extra burden. implicitly, every time.
20:36 pupoque joined #perl6
20:36 masak pupoque: hi.
20:37 jnthn masak: I more meant from the perspective of the programmer doing it.
20:37 masak yes, that's how I read you.
20:38 masak well, in Java, that's how inner classes are used, most of the time.
20:38 pupoque masak: hi :)
20:38 masak they mediate decisions with the outer class.
20:38 masak like, a HashMap will have a HashMapIterator inside of it, that does things for the HashMap.
20:38 jnthn Oh...is this partly desired because of that inline interface implementation trick too?
20:38 masak sometimes.
20:38 masak but it's not directly related, as far as I can see.
20:39 masak but yes, that's one of the places where I've been using Outer::self in Java.
20:39 masak (which is spelled Outer.this, of course)
20:44 cognominal joined #perl6
20:47 cognominal joined #perl6
21:08 masak r: say 23.base(15)
21:08 p6eval rakudo 5b56cf: OUTPUT«18␤»
21:09 masak r: for 2..22 -> $b { say "23 and 32 are palindromic in base $b" if 23.base($b) eq 32.base($b).flip }
21:09 p6eval rakudo 5b56cf: OUTPUT«23 and 32 are palindromic in base 10␤»
21:09 masak :)
21:16 masak r: sub operate_under_transform(&op, &transform, &inverse = &transform) { -> $a, $b { &inverse(&op(&transform($a), &transform($b))) } }; say operate_under_transform(&[~], &flip)("foo", "bar")
21:16 p6eval rakudo 5b56cf: OUTPUT«barfoo␤»
21:16 masak \o/
21:17 masak r: sub operate_under_transform(&op, &transform, &inverse = &transform) { -> $a, $b { &inverse(&op(&transform($a), &transform($b))) } }; say operate_under_transform(&[*], &prefix:<->)(6, 7)
21:17 p6eval rakudo 5b56cf: OUTPUT«-42␤»
21:18 masak r: sub operate_under_transform(&op, &transform, &inverse = &transform) { -> $x { &inverse(&op(&transform($x))) } }; say operate_under_transform(&say, { say "Opening file" }, { say "Closing file" })("OH HAI")
21:18 p6eval rakudo 5b56cf: OUTPUT«Opening file␤True␤Closing file␤True␤»
21:19 masak hm :)
21:21 lue joined #perl6
21:21 lue hello world o/
21:21 jnthn hellue o/
21:21 masak lue! \o/
21:21 masak lue: thanks for your pull request!
21:22 masak lue: it's a step in the right direction. but I had to reject it for various reasons. see backlog.
21:22 lue masak: I just thought that's how you were supposed to initalize hashes (either that or a list (my %h = key, value, key, value))
21:22 masak lue: right.
21:22 masak lue: I always do it the list way.
21:23 lue (and looking at %opposites I see what you meant about how you like to format hashes)
21:23 masak aye.
21:23 masak it favors line reordering, basically.
21:23 lue I didn't know you could do %h = key => value, key => value though. Good to know.
21:23 masak lue: thanks for putting up with my formatting rules :)
21:25 lue that's alright.
21:26 lue .oO(in a move that surprises no-one, cperl-mode isn't playing nice with masak's hash formatting rules)
21:26 masak :)
21:27 masak turn it off temporarily.
21:28 lue That actually would be better. Although I lose color, I gain just about everything else (including speed at which emacs prints to screen what I type o.o)
21:31 lue Oh, and about commenting stuff out: in case you couldn't tell, I tend to be more verbose in my comments (especially the more important the project). :)
21:32 lue So I tend to keep code that doesn't work commented out, just in case I need it for reference or something (or in this case, for when it would work)
21:36 masak right.
21:36 masak I sometimes put in XXX comments for things I want to add later.
21:36 masak but mostly I try to steer things so that I stub my toe on stuff that should be added.
21:37 masak one of my favorite kinds of development is when I have a large existing corpus of inputs that a program needs to be able to recognize and handle somehow. and then I just have it die on the first unrecognized thing.
21:38 masak often it makes sense to sort things on length, too, so I get to handle the easy cases first :)
21:38 masak lol, I blogged! \o/ http://strangelyconsistent.org/blog/july-21-2012-its-too-dark-in-here
21:40 lue oh, what does when {... proceed; } do?
21:44 masak it's the opposite of 'break;' in C :)
21:44 * geekosaur *eyeroll*
21:44 masak (that is, it nullifies the usual tendency of a when {} block to exit its surrounding topicalizer block)
21:45 masak r: given 42 { when 42 {}; say "is this run? no." }
21:45 p6eval rakudo 5b56cf:  ( no output )
21:45 masak r: given 42 { when 42 { proceed }; say "is this run? yes!" }
21:45 p6eval rakudo 5b56cf: OUTPUT«is this run? yes!␤»
21:45 lue oh, duh.
21:45 lue :)
21:45 geekosaur ah
21:46 * geekosaur was parsing that as a bit more meta than intended
21:46 masak see? opposite of 'break' :)
21:46 lue masak++ on the blog post
21:47 masak flashlights are tricky.
21:47 lue but, it's Adventure::Engine, not Game::Engine
21:47 masak oh!
21:47 masak fixing.
21:47 masak lue++
21:48 lue although it is faster to type. Maybe IFGame::Engine , to be a bit more descriptive (and still shorter)? :)
21:49 masak it's only more descriptive IF you know what IF stands for ;)
21:54 lue Hm. I wonder if access to the AST of Perl 6 code would help in translating a P6 adventure game to Zcode (and if so, if macros help in dealing with said AST)
21:55 masak I think it's safe to say that Perl 6 is wider than Zcode.
21:55 masak so in translating, there will always be the problem of what to do with lossy translation.
21:57 lue Of course. It depends greatly on how you create the game in P6 (how the tool you use to make the game has you make the game)
21:59 masak lue: I think when I extract Adventure::Engine from bin/crypt, you will be one of the first to write a small game in it :)
21:59 masak (yes, I will put it on modules.perl6.org)
22:00 lue Probably. Even though I like Inform 6 (the last version to not use natural language by the way), I like *Perl* 6 more :)
22:01 masak :)
22:01 masak yeah.
22:01 masak let's make Adventure::Engine great.
22:02 masak I had this idea to also provide lots of standard objects, materials, effects, etc. that one could use to populate an adventure game.
22:03 lue Sure. (Inform *7* comes with a whole bunch of nifty toys, IIRC)
22:04 lue Here's a feature: allow an object to be a container *and* a supporter!
22:05 masak oh, that should already work.
22:05 masak the fire in the cave will be like that.
22:06 masak "put water in fire", "put water on fire".
22:06 tokuhiro_ joined #perl6
22:09 lue oh! what would happen if someone tried to jump over the fire?
22:12 masak it wouldn't work because there is no "jump" verb implemented.
22:15 lue someone might try though. "As you prepare to leap, the fire grows in height, as if it knows what you're trying to do. It calms down as you abandon the idea."
22:18 masak :)
22:23 lue You forget to mention the leaves in the "Hill" room (either that or I somehow missed it)
22:27 dalek nqp/toqast: 653152e | jnthn++ | src/QAST/Operations.nqp:
22:27 dalek nqp/toqast: Fix a couple of signatures; v is bad.
22:27 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/653152ec98
22:27 dalek nqp/toqast: aa9f9e7 | jnthn++ | src/QAST/Compiler.nqp:
22:27 dalek nqp/toqast: Add some missing coercion cases.
22:27 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/aa9f9e7f50
22:27 dalek nqp/toqast: 366f84f | jnthn++ | src/QAST/Operations.nqp:
22:27 dalek nqp/toqast: A bunch of op additions and signature fixes.
22:27 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/366f84f350
22:27 dalek nqp/toqast: 939c9ff | jnthn++ | src/QAST/Operations.nqp:
22:27 dalek nqp/toqast: index and ord also work with varying numbers of arguments.
22:27 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/939c9ffa03
22:27 dalek nqp/toqast: 60afa48 | jnthn++ | src/QAST/ (2 files):
22:27 dalek nqp/toqast: Fix yet more incorrect op signatures.
22:27 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/60afa48c7f
22:27 dalek nqp/toqast: e179076 | jnthn++ | src/QAST/Operations.nqp:
22:27 dalek nqp/toqast: Add can and rindex.
22:27 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/e17907694c
22:27 dalek rakudo/toqast: 605574c | jnthn++ | src/QPerl6/Actions.pm:
22:27 dalek rakudo/toqast: Detect and complain about missing pir::op signature.
22:27 dalek rakudo/toqast: review: https://github.com/rakudo/rakudo/commit/605574cde5
22:27 dalek rakudo/toqast: e3f8021 | jnthn++ | src/core/terms.pm:
22:27 dalek rakudo/toqast: Fix a missing pirop sig.
22:27 dalek rakudo/toqast: review: https://github.com/rakudo/rakudo/commit/e3f80211f6
22:27 dalek rakudo/toqast: c02c86d | jnthn++ | src/QPerl6/Ops.pm:
22:27 dalek rakudo/toqast: Toss an op that's now in the default set.
22:27 dalek rakudo/toqast: review: https://github.com/rakudo/rakudo/commit/c02c86daad
22:27 dalek rakudo/toqast: c0ca5a3 | jnthn++ | src/core/Str.pm:
22:27 dalek rakudo/toqast: Eliminate a double boxing spotted while bug hunting.
22:27 dalek rakudo/toqast: review: https://github.com/rakudo/rakudo/commit/c0ca5a3c0a
22:29 masak lue: no, they're implicit, so they don't show up in "look" commands.
22:29 masak that's by design.
22:29 masak the grass and the bushes also don't show up.
22:30 lue Not even the description mentions it, though
22:33 masak no, but if you do 'examine trees', they're mentioned there.
22:33 masak subtle, I know.
22:33 masak maybe a bit too subtle.
22:34 masak jnthn++ # commits
22:34 lue There is no tree. Maybe that's why I had to guess where the leaves were.
22:34 masak jnthn++ # short first lines in commit messages
22:35 masak lue:
22:35 masak > examine trees
22:35 masak Autumn trees are just so lovely. They look like they're just about to drop
22:35 masak all their leaves -- red, yellow, brown ones -- to the ground.
22:36 masak but if you're saying 'tree' should be a synonym with 'trees', you might just have a point.
22:36 lue > examine tree
22:36 lue You see no tree here. # this is why I thought there was no tree
22:36 masak right.
22:36 masak so that seems to be what you're saying.
22:37 masak feel free to submit an issue about it at https://github.com/masak/crypt/issues
22:38 lue Well, I wouldn't worry too much about playability until you have a complete adventure game and engine, though :) (that would seem to be mroe important).
22:38 lue I will submit an issue in a minute, though.
22:42 masak \o/
22:42 masak well, there's 8 days left. then the game is supposed to be completely rebuilt again.
22:43 dalek nqp/toqast: b6049ef | jnthn++ | src/QAST/Compiler.nqp:
22:43 dalek nqp/toqast: Better diagnostics.
22:43 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/b6049ef54f
22:43 dalek nqp/toqast: de65b03 | jnthn++ | src/QAST/Operations.nqp:
22:43 dalek nqp/toqast: CAPITALS FOR RESULT TYPES. *sigh*
22:43 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/de65b03b14
22:45 masak jnthn: prepared to be sued for IP voilation...
22:46 jnthn They can shove their patents up their ass...ociate attorney
22:47 lue why would he get sued?
22:48 jnthn lue: See the commit
22:53 * masak .oO( making people review commits by punning on their contents )
22:56 masak 'night, #perl6
23:00 dalek rakudo/toqast: bb7a618 | jnthn++ | src/ (2 files):
23:00 dalek rakudo/toqast: Fix some pir::op sigs.
23:00 dalek rakudo/toqast: review: https://github.com/rakudo/rakudo/commit/bb7a618e15
23:04 crab2313 joined #perl6
23:04 dalek nqp/toqast: 6c19396 | jnthn++ | src/QAST/Operations.nqp:
23:04 dalek nqp/toqast: Add qlist, findnotcclass.
23:04 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/6c19396802
23:12 seldon_ joined #perl6
23:17 raiph joined #perl6
23:17 raiph "An instance of a class is also called an object in some other programming languages. It has a storage for attributes, and is often the return value of a class to a method called new, or a literal."
23:17 dalek rakudo/toqast: 34ad03b | jnthn++ | src/core/ (2 files):
23:17 dalek rakudo/toqast: Last couple of tweaks needed to get CORE.setting compilation to PIR to complete. The generated PIR doesn't quite work yet.
23:17 dalek rakudo/toqast: review: https://github.com/rakudo/rakudo/commit/34ad03b3e1
23:17 raiph (from http://doc.perl6.org/language/glossary)
23:18 raiph s:2nd/class/call/ ?
23:18 jnthn raiph: I'd guess so.
23:19 raiph or even s/a class to a method called new/a .new method call/
23:21 cognominal joined #perl6
23:21 jnthn 'night, #perl6
23:21 raiph night jnthn
23:26 raiph moritz: see above and below. then i'll try to set things up so i can offer patches or pulls or whatever i can figure out using jolios
23:26 raiph "my Str $str = "hello";  ## this is with native types. Str "
23:28 raiph i don't understand the comment. (first, i thought native type names were all lowercase, but even then)
23:31 raiph in fact i don't see how the code helps explain "instance". seems to focus on types/defined
23:34 lue there's no native str in the first place, so that's really interesting
23:34 kurahaupo joined #perl6
23:34 Janemba joined #perl6
23:35 colomon joined #perl6
23:35 lue oh! maybe native means "a core Perl6 datatype"
23:35 colomon no, it means "a low level type"
23:36 lue in the example in the p6doc glossary, I mean (see raiph above)
23:36 colomon like a C int (instead of like a Perl 6 Int)
23:36 raiph "3                        # literal s "
23:36 raiph s/literal s/literals/
23:37 lue raiph: would you like me to fix the stuff you've found so far?
23:38 cotto joined #perl6
23:39 raiph lue: yes. also, could you help me provide proper patches or whatever?
23:43 lue there's a way to make patches in git, I'm trying to find a suitable tutorial so I can remember and explain it :)
23:43 gfldex raiph: you may want to get yourself setup with github and provide pull requests
23:45 raiph i've got a github account. difference is i'm on an odd OS, jolios, so i think i need to do it all via web
23:47 raiph gone to the p6doc rep. selected objects.pod. clicked edit.
23:47 gfldex raiph: https://help.github.com/articles/using-pull-requests
23:48 raiph oops. glossary.pod
23:50 dalek doc: 5867c7b | lue++ | lib/glossary.pod:
23:50 dalek doc: [glossary.pod] Fixed a couple of errors spotted by raiph++
23:50 dalek doc:
23:50 dalek doc: Fixed two typos and s/native/builtin/ in an example, because there are
23:50 dalek doc: no native 'str's.
23:50 dalek doc: review: https://github.com/perl6/doc/commit/5867c7b1e3
23:53 japhb What's the state of the Rakudo IO refactor?  Mostly settled down right now?
23:55 raiph lue, gfldex: just tried to send patch (pull request). if that worked, well, it's totally trivial to do via web

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

Perl 6 | Reference Documentation | Rakudo