Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2009-07-24

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:05 jrtayloriv joined #perl6
00:05 kane___ joined #perl6
00:05 jrtayloriv left #perl6
00:08 wayland76 Does anyone know the git incantation to show what revision I'm on?
00:08 hoelzro joined #perl6
00:09 toyam joined #perl6
00:11 Tene wayland76: what are you looking for specifically?
00:11 Tene you can get that a few ways.
00:11 Tene 'git rev-parse HEAD' will spit out just the revision ID
00:12 Tene I usually do 'git show'
00:22 wayland76 Tene: thanks.  I just wanted to tell people what revision ID my patch works against
00:25 hoelzro joined #perl6
00:27 frew_ joined #perl6
00:30 toyam_ joined #perl6
00:33 hoelzro joined #perl6
00:42 jrtayloriv joined #perl6
00:44 jrtayloriv left #perl6
00:58 japhb joined #perl6
01:07 seano joined #perl6
01:11 orafu joined #perl6
01:16 toyam joined #perl6
01:18 molaf_xx joined #perl6
01:28 xinming joined #perl6
01:31 wayland76 pmichaud_: Have I asked whether you've had a chance to look at http://rt.perl.org/rt3/Tic​ket/Display.html?id=63360 again now that I've attached another patch?
01:33 alester joined #perl6
01:34 pmichaud_ I don't know if you've asked, but I know I haven't had a chance :-)
01:48 hoelzro joined #perl6
01:54 wayland76 pmichaud_: Yeah, I can see you've been busy with other things.  Anyway, as long as it's registered in your mind that there's another patch there for you to look at, I'm happy :)
01:55 wayland76 My code: my $grammar = XKB::Grammar.new();
01:55 wayland76 My error: too few arguments passed (1) - 3 params expected
01:55 wayland76 Does anyone know why I'
01:55 wayland76 d get that error?
01:56 xinming joined #perl6
02:07 pmichaud_ ...you're trying to create an instance of a grammar?
02:07 pmichaud_ (I know why you're getting the error.  I'd rather not explain it :-)
02:08 wayland76 Ah, do I just use the grammar, and not create an instance?
02:09 pmichaud_ normally it's   XKB::Grammar.parse('...')
02:09 wayland76 Great :)
02:09 pmichaud_ or  .parsefile(...)
02:10 wayland76 Even better :)
02:15 pugs_svn r27692 | wayland++ | [S32/Abstraction]: Documented .parse and .parsefile methods on Grammar.
02:15 pugs_svn r27692 | wayland++ | Note that the method signatures may be wrong.  pmichaud++ for pointing
02:15 pugs_svn r27692 | wayland++ | these functions out.
02:15 wayland76 There we go :)
02:16 wayland76 Hmm.  Looks like my karma died.  I used to be #11 on the list
02:16 wayland76 (I had 80-something)
02:17 pmichaud_ they're mentioned in S05, I think
02:17 diakopter wayland++ wayland++ wayland++ wayland++ wayland++ wayland++ wayland++ wayland++ wayland++ wayland++ wayland++ wayland++ wayland++ wayland++
02:18 pmichaud_ rakudo:  ('wayland++' xx 10).say
02:18 p6eval rakudo 241545: OUTPUT«wayland++wayland++wayland++wayland++wayland​++wayland++wayland++wayland++wayland++wayland++␤»
02:18 pmichaud_ hmmm.
02:20 wayland76 @karma
02:20 lambdabot You have a karma of 11
02:20 wayland76 Doesn't seem to have helped.  Probably because I'm wayland76 instead
02:20 wayland76 @karma wayland
02:20 lambdabot wayland has a karma of 83
02:20 wayland76 Ah, my mistake :)
02:20 pmichaud_ just add 'em all up.
02:20 wayland76 I'm happy now
02:21 wayland76 rakudo: ('c/c--' xx 10).say
02:21 p6eval rakudo 241545: OUTPUT«c/c--c/c--c/c--c/c--c/c​--c/c--c/c--c/c--c/c--c/c--␤»
02:21 wayland76 @karma c/c
02:21 lambdabot c/c has a karma of 136
02:21 wayland76 Anyway, I'm happy now
02:21 wayland76 I just did @karma before, and it said 11
02:24 wayland76 Is there a way to specify what rule I want to invoke?
02:26 wayland76 Or do I have to use TOP?
02:37 wayland76 my $M := XKB::Grammar::XKB ~~ slurp("/usr/share/X11/xkb/symbols/us");
02:40 wayland76 Hmm.  My grammar took a minute and 44 seconds to run :)
02:49 pugs_svn r27693 | kyle++ | [t/spec] Test for RT #63642
02:49 pugs_svn r27694 | kyle++ | [t/spec] Test for RT #63644
03:10 bpetering joined #perl6
03:12 TimToady joined #perl6
03:12 NewOrder joined #perl6
03:12 shachaf joined #perl6
03:12 araujo joined #perl6
03:12 xomas_ joined #perl6
03:12 diakopter joined #perl6
03:12 rjh joined #perl6
03:12 c1sung joined #perl6
03:12 arejay joined #perl6
03:12 antiphase joined #perl6
03:12 awwaiid joined #perl6
03:22 diakopter joined #perl6
03:22 awwaiid joined #perl6
03:22 antiphase joined #perl6
03:22 arejay joined #perl6
03:22 c1sung joined #perl6
03:22 rjh joined #perl6
03:22 xomas_ joined #perl6
03:22 araujo joined #perl6
03:22 shachaf joined #perl6
03:22 NewOrder joined #perl6
03:22 TimToady joined #perl6
03:22 cls_bsd joined #perl6
03:22 rhr joined #perl6
03:22 Aisling joined #perl6
04:09 cognominal joined #perl6
04:23 tann joined #perl6
04:24 tann rakudo: die;
04:24 p6eval rakudo 241545: OUTPUT«No applicable methods.␤in Main (/tmp/1ouJGd6CUk:2)␤»
04:35 edpratomo joined #perl6
04:35 agentzh joined #perl6
04:36 beggars joined #perl6
04:49 wayland76 How do I introspect a Match object?
04:50 wayland76 Calling .keys() on it gives me this: Method 'keys' not found for invocant of class 'PGE;Match'
05:00 pugs_svn r27695 | wayland++ | [S32/Abstraction] Added "action" optional parameter to parse and parsefile.
05:01 wayland76 Different question: does Rakudo support grammar action objects yet?
05:02 synthEEEE joined #perl6
05:13 szabgab I need a little help with git,   how can I switch to the released version of Rakudo ?   would that be    git checkout Chicago ?
05:13 szabgab it tells me Note: moving to "Chicago" which isn't a local branch
05:13 frew_ joined #perl6
05:15 synth joined #perl6
05:18 wayland76 I don't know.  Have you done git branch -a ?
05:19 szabgab so far I just used to  git pull  and build the latest
05:19 wayland76 No, that doesn't help
05:19 wayland76 Do you live in Chicago?  If not, it won't be a local branch.
05:20 wayland76 Sorry :)
05:20 szabgab HEAD is now at 9b37b81... Update announcement with spectest results
05:20 masak joined #perl6
05:20 szabgab :-)
05:20 wayland76 Oh, wait, I've had an idea...
05:20 masak ahoj, early birds!
05:20 szabgab so it seem it is checked out to Chicago now
05:20 szabgab joho masak
05:21 wayland76 No, my idea doesn't work
05:22 wayland76 Does Rakudo support grammar action objects yet?
05:22 Tene action objects?
05:22 wayland76 masak: 3:23 pm here
05:22 wayland76 Tene: MyGrammar.parse($str, :action($action-object))
05:23 masak wayland76: you can do that in Rakudo, yes.
05:23 Tene Yes.
05:23 wayland76 Ok, thanks
05:24 masak actually, the feature has been there 'all the time', as I understand it. I asked about it once long ago, and pmichaud_++ said 'what? like this?' and it turns out it just fell out of how PGE already does it.
05:25 finanalyst joined #perl6
05:25 wayland76 Cool :)
05:25 finanalyst good morning
05:27 finanalyst how can i discover what traits a variable has?
05:27 wayland76 So my real question should be "Why doesn't mine work :)
05:27 finanalyst rakudo is failing saying it cant assign to a read-only variable
05:28 finanalyst but it doesnt say which variable and i cant see why any of the variables should be read only
05:28 finanalyst but to narrow down the problem, i need to see the traits
05:29 masak wayland76: I don't know. all of mine work.
05:29 lisppaste3 wayland76 pasted "My Grammar action class not working" at http://paste.lisp.org/display/84113
05:30 masak finanalyst: not sure I've seen an answer to that question in the spec.
05:31 finanalyst the problem is puzzling because it occurs in the second iteration of a loop, but not in the first
05:31 wayland76 If we need a special boolean operator for traits, can we call it traitor? :)
05:31 finanalyst :)
05:31 wayland76 finanalyst: nopaste?
05:32 Tene masak: looks like wayland76 you didn't paste the output of that script.
05:32 Tene erm... typing fail.
05:32 Tene wayland76: you didn't paste the output of that script.
05:32 masak wayland76: hm, I can't see an obvious error.
05:32 masak Tene: the output is nothing.
05:33 Tene masak: looks like I'm finally starting work on my roguelike.  It was you that was interested in that, right?
05:33 masak aye.
05:33 finanalyst wayland76: i want to narrow down the problem as it uses a lot of data first
05:33 wayland76 roguelike = text adventure game?
05:33 Tene I'll let you know once I have something to look like.
05:33 masak Tene: cool!
05:38 masak wayland76: ok, I found it.
05:38 masak wayland76: you're missing {*} thingies where you want to call your action methods.
05:38 masak after adding those, it works.
05:39 masak wayland76: may I also point you towards krunen's XML module, containing an already quite complete XML grammar? http://github.com/krunen/xml/
05:39 wayland76 Yay! :)
05:39 wayland76 Ok, thanks :)
05:39 wayland76 I'm more interested in the actions than the grammar :)
05:40 wayland76 Now I'm glad I made that mistake -- I got a free XML grammar :)
05:43 masak :)
05:44 wayland76 Although the tests say that it fails :)
05:45 wayland76 It gets this error: perl6regex parse error: Quantifier follows nothing in regex at offset 869, found ':'
05:45 wayland76 I shall investigate :)
05:47 masak wayland76: you do know that you have to quote all non-alphanumerics, right?
05:47 wayland76 Does anyone know whether "offset 869" is a character or a line?
05:47 wayland76 masak: That was just trying to run the test suite
05:47 wayland76 I didn't do anything to it yet :)
05:47 masak wayland76: which test suite?
05:47 wayland76 The one that comes with the XML grammar
05:48 wayland76 Although maybe "suite" isn't the right word :)
05:48 masak ok, let me try the same thing...
05:48 wayland76 I used this: PERL6LIB=lib perl6 t.p6 t.xml
05:48 wayland76 because his command in the README wasn't quuite right
05:50 masak seems like the error is on line 54 in Document.pm
05:50 wayland76 must be a character offset; none of the files are long enough otherwise
05:50 masak [:<.ident>+]?
05:50 masak ...and that's one of the latest changes, 2009-06-30
05:51 masak the latest, in fact.
05:51 masak wayland76: care to submit a bug report to krunen? :)
05:51 wayland76 Well, it seems to work without it :)
05:51 wayland76 How do I do that?
05:51 masak via github or email, I guess.
05:51 masak might be worth mentioning the README thing, too.
05:52 wayland76 phenny: msg krunen We found a "bug" in XML::Grammar::Document -- there's an extra ':' at character 869 (on the last line).  Your test suite shows it up
05:53 wayland76 @tell krunen We found a "bug" in XML::Grammar::Document -- there's an extra ':' at character 869 (on the last line).  Your test suite shows it up
05:53 lambdabot Consider it noted.
05:53 wayland76 @tell krunen Also, the README isn't quite right (needs .p6 instead of .pl)
05:53 lambdabot Consider it noted.
05:54 masak phenny: tell krunen We found a "bug" in XML::Grammar::Document -- there's an extra ':' at character 869 (on the last line).  Your test suite turns it up
05:54 phenny masak: I'll pass that on when krunen is around.
05:55 masak though I haven't heard krunen speak on this channel in a long time.
05:58 wayland76 Ok, I e-mailed as well
05:59 masak wayland76++
06:13 wayland76 rakudo: (join ' ', 'c/c--' x 10).say
06:13 p6eval rakudo 241545: OUTPUT«c/c--c/c--c/c--c/c--c/c​--c/c--c/c--c/c--c/c--c/c--␤»
06:13 wayland76 @karma c/c
06:13 lambdabot c/c has a karma of 136
06:14 wayland76 rakudo: (join ' ', ('c/c--' x 10)).say
06:14 p6eval rakudo 241545: OUTPUT«c/c--c/c--c/c--c/c--c/c​--c/c--c/c--c/c--c/c--c/c--␤»
06:14 wayland76 rakudo: (join ' ', ('c/c--' xx 10)).say
06:14 p6eval rakudo 241545: OUTPUT«c/c-- c/c-- c/c-- c/c-- c/c-- c/c-- c/c-- c/c-- c/c-- c/c--␤»
06:14 wayland76 @karma c/c
06:14 lambdabot c/c has a karma of 128
06:14 wayland76 That's better :)
06:29 pugs_svn r27696 | moritz++ | [t/spec] be more explicit about hash comparison, and avoid collision on same key
06:35 alester joined #perl6
06:35 Su-Shee joined #perl6
06:35 Su-Shee good morning future. :)
06:36 moritz_ good morning futurebutterflies ;-)
06:37 cbk good morning to you. good night for me :)
06:37 Su-Shee well, we better brace ourselved for the php 6/perl 6 puns to come.. ;)
06:38 masak I didn't realize there was a danger of such puns.
06:38 Su-Shee masak: php 6 is coming up.
06:39 cbk Perl 6 will drink php's milkshake!!!
06:39 moritz_ with \ as namespace separator?
06:39 Su-Shee *hihi* no idea. :)
06:39 masak yeah, that'll work.
06:40 Su-Shee but if I were a PHP fan and (still) blogging, I would beat the "version 6 coming up" pun to death. ;)
06:47 wayland76 I hear that Duke Nukem Forever is coming out
06:47 wayland76 And Enlightement DR17 :)
06:48 Su-Shee *hehe* :)
06:49 wayland76 Imagine a beowulf cluster of Perl6s
06:49 tann joined #perl6
06:49 wayland76 All your version 6 are belong to us :)
06:52 tann hi fellas, just went thru s11 but couldn't figure out the equivalent of good ol' EXPORT_OK
06:52 Su-Shee wayland76: my personal imagination is along the lines of perl 6 having _the_ single most coolest and most extensive GUI/Graphic's bindings to "hey, let's prototype a new window manager this weekend.." ;)
06:53 Tene wayland76: I've got E17 gui apps running on in Perl 6.
06:53 wayland76 Tene: I was going to try something like that at one point.
06:54 wayland76 But decided that GTK3+Perl6 would suit me better :)
06:54 Tene wayland76: http://github.com/tene/parrot-elementary
06:54 wayland76 (well, suit my project better)
06:54 Tene You mean, not combine obscure + obscure?
06:54 Tene ;)
06:54 cbk GTK and perl 6 would be cool!
06:54 Su-Shee wayland76: gtk 3 isn't really up for another year, I'd say..
06:55 wayland76 No, it's just that I want to write something for editing interlinear documents
06:55 Tene interlinear?
06:55 wayland76 Su-Shee: Well, sounds like it'll be ready at the same time as Perl 6 :)
06:55 Tene AFK GOODNIGHT PERL SIX GUYZ
06:56 Su-Shee wayland76: that wasn't meant as a discouragement - there's plenty of underlying libs to wrap.. pango, cairo...
06:56 wayland76 Interlinear: http://www.scripture4all.org/On​lineInterlinear/NTpdf/mat1.pdf
06:56 cbk wayland76, no.... we just got till Christmas
06:56 cbk :)
06:56 Su-Shee wayland76: entire x11.. ;)
06:56 wayland76 Su-Shee: Well, I'd settle for GTK2 to start with, and transition later :)
06:57 Tene wayland76: I don't quite understand what that PDF is.  Why would that format be better served by GTK3?
06:57 * Tene curious about toolkits, hasn't looked at GTK3 at all.
06:57 wayland76 Tene: It wouldn't.  But GTK3 is supposed to make it easier to go between screen and printing
06:57 Su-Shee Tene: there is nothing to look at right now but some blog/mailing list postings what gtk3 should be.
06:58 wayland76 So if we wanted to actually *print* interlinear stuff, that could be useful :)
06:59 * Su-Shee dreams of my version of "Sugar" in Perl 6.
06:59 wayland76 Besides, my theory is that we should write an entire office suite in parrot-based languages
06:59 wayland76 Then we could rescript things in any language we wanted :)
06:59 wayland76 Sugar = CRM?
06:59 Su-Shee wayland76: because of the bright future of office suites which are going to be web-based anyway?
06:59 Su-Shee wayland76: no, the OLPC-desktop written in python
07:00 wayland76 Su-Shee: Well, some people seem to think so :).  But people have been saying those sorts of things for years.
07:00 Su-Shee wayland76: which is the single most cool example of "noone needs to code C and Xlib for a cool desktop"
07:00 wayland76 Well, if we get Python-on-Parrot, you could code Sugar extension in P6 :)
07:01 Su-Shee wayland76: I abandoned "office suites" directly after my thesis (last time I used something office-like and this was wordperfect under linux ;)
07:01 Su-Shee wayland76: I want a really nice, fancy, well-done, native parrot-perl6-thing. :)
07:02 wayland76 Su-Shee: Did I say I want my office suite to edit sheet music too? :)
07:02 Su-Shee If I understand all the parrot-vm-wrapping stuff correctly anway, it would mean to write a gtk-parrot first and then make the perl6 bindings..
07:02 Su-Shee wayland76: ah. :)
07:03 Su-Shee wayland76: well in _that_ definition I "somehow" also have "suites" - gimp and inkscape.
07:03 Su-Shee though there are some shiny flash (!) apps out there, competing with gimp...
07:04 wayland76 re: gtk-parrot/perl6 bindings, that's my impression too, although I'm under the impression that they want to make things easy :)
07:05 moritz_ http://federkiel.wordpress.com/20​08/03/12/gtk-30-getting-serious/ some of those sound quite familiar to what Perl 6 developers think (or thought back then in 2000)
07:05 wayland76 I'm thinking more of a combo of rosegarden, lilypond, and a word processor :)
07:06 Su-Shee wayland76: the parrot-bindings I looked at look rather understandable - especially due to the fact that I've never really seen something assembler-ish or really stack-like. (besides a postscript's div dup scale line..)
07:07 wayland76 Cool.  I spoke to the gtk-perl IRC channel about 6 months ago, and they're keen to do gtk-parrot when the docs are there and the process is easy :)
07:07 wayland76 (that's for GTK2 of course :) )
07:07 Su-Shee wayland76: the parrot docs _are_ there.
07:08 Su-Shee wayland76: parrot already comes with a more or less complete handbook.
07:08 Su-Shee wayland76: I think it's more about understanding the concept.. but gee.. they managed XS it can only be easier.
07:09 wayland76 Which doc do they read?
07:09 Su-Shee no idea, i was referring to your "when the docs are there"
07:11 wayland76 docs/pdds/draft/pdd16_native_call.pod
07:11 wayland76 In case anyone wonders
07:12 wayland76 I guess I was thinking of the problem that ncigen.pl didn't work last time I tried it
07:12 wayland76 But maybe that's been fixed too :)
07:12 alester joined #perl6
07:12 Su-Shee moritz_: the blog posting is about what I know about gtk3 plans.
07:13 Su-Shee wayland76: http://docs.parrot.org/parrot/latest/html/
07:16 rfordinal joined #perl6
07:18 Su-Shee ah yes. I like licenses and copyright. the "jodel" line probably everybody knows was ruled copyright protected by a german court.
07:36 alester joined #perl6
07:41 missingthepoint joined #perl6
07:53 alester joined #perl6
08:04 M_o_C joined #perl6
08:19 cls_bsd joined #perl6
08:20 moritz_ jnthn: I pushed the build-parrot-head branch to github which makes the ops build on parrot HEAD (patch by cotto++), but dies a bit later on
08:25 masak moritz_++
08:25 moritz_ ah, the last fix seems easy too
08:25 masak hoping to be able to run off Parrot head again soon. :)
08:25 moritz_ 5 minutes.
08:26 masak \o/
08:30 moritz_ bah
08:30 moritz_ I borked it
08:30 moritz_ by rebasing too much ;-)
08:31 lisppaste3 cbk pasted "untitled" at http://paste.lisp.org/display/84125
08:31 cbk this should work right....?
08:32 cbk would $line be just the first word that is read?
08:32 cbk up to \n
08:32 moritz_ the first line.
08:33 moritz_ of course you have to declare @teamObj and class Team somewhere
08:33 moritz_ but in principle, yes
08:33 cbk yes i did that
08:34 cbk I get Use of uninitialized value when i do say @teamObj[0].name;
08:34 moritz_ it's a bit hard to debug for you without seeing the whole code and your input data
08:36 moritz_ masak: changes pushed; OK, it was 10 minutes, not 5... ;-)
08:36 masak moritz_: gracias. trying build.
08:37 cbk my input is just a text file with NFL football team names. I was trying to put the names in a file so I would not have to do something like this @teamNames = <...........>;
08:37 cbk where ..... is all 32 team names
08:37 dalek rakudo: fc60e1d | (Matthew Walton)++ | Test.pm:
08:37 dalek rakudo: Updated Test.pm planless testing support.
08:37 dalek rakudo: Omit your call to plan, and call done_testing when all tests have run.
08:37 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/f​c60e1d0ffdeaadc190bba420d0ac81d09819c06
08:37 dalek rakudo: b198624 | moritz++ |  (3 files):
08:37 dalek rakudo: re-enable building against parrot HEAD
08:37 dalek rakudo: Patch courtesy (mostly) by cotto++
08:37 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/b​198624acd6cf85cf4b38a81b79cd682b00e3cea
08:40 moritz_ cbk: ah, I see your problem
08:40 fridim_ joined #perl6
08:40 moritz_ cbk: you read the line into $line, but set the name to $_
08:40 cbk how does .lines read the lines in the file
08:40 cbk oh
08:41 cbk so just change $_ to $line then
08:41 moritz_ yes
08:41 cbk that worked!
08:41 wollmers joined #perl6
08:42 payload joined #perl6
08:42 wollmers rakudo: say ord( :string("a") )
08:42 p6eval rakudo 241545: OUTPUT«No applicable candidates found to dispatch to for 'ord'␤in Main (/tmp/gVvZIYss2M:2)␤»
08:42 moritz_ rakudo doesn't do the "call positional params by name" thing yet
08:43 cbk moritz_, thanks, i was using the $_ in another sub and just copied it.
08:43 moritz_ that shows again that copy&paste in one of the programmer's worst enemies
08:44 cbk moritz_, might be time for me to go to sleep :)
08:44 masak rakudo: sub foo() {}; foo("bar" => "baz", "OH NOES"); say "alive"
08:44 p6eval rakudo 241545: OUTPUT«alive␤»
08:45 masak guess this one is known. :/
08:45 sjohnson masak: :)
08:45 masak that's why we still call 'em "developer releases"
08:45 sjohnson alright, maybe i should play with rakudo a bit
08:46 masak sjohnson: of course you should! :)
08:46 sjohnson here goes
08:46 moritz_ masak: how did the build go?
08:46 masak moritz_: oh, successfully, thank you.
08:46 masak hanging around on #perl6 without playing with rakudo is like talking about food all day without eating.
08:46 moritz_ cool
08:47 wollmers Just searching and grepping how to set or access different 'unicode abstraction levels' (grapheme, codepoints, bytes)
08:47 masak "my Parrot is bleeding again!" doesn't sound all too positive, does it? :P
08:47 moritz_ wollmers: that's also NYI in Rakudo
08:48 sjohnson rakudo:  my $str = "happy10";  given ($str) { when (m/\w+(\d)+) { print $1; } }
08:48 p6eval rakudo 241545: OUTPUT«./perl6: error while loading shared libraries: libparrot.so.1.4.0: cannot open shared object file: No such file or directory␤»
08:48 sjohnson i broketed it
08:48 Juerd_ What does NYI mean?
08:49 moritz_ masak: there are some psychological dysfunctions that make you talk very mouch about food, but rarely consume any
08:49 wollmers I remember some piece of code like '$string.as_codepoints' or so ...
08:49 moritz_ Juerd_: Not Yet Implemented
08:49 sjohnson rakudo:  my $str = "happy10";  given ($str) { when (m/\w+(\d)+/) { print $1; } }
08:49 p6eval rakudo 241545: OUTPUT«./perl6: error while loading shared libraries: libparrot.so.1.4.0: cannot open shared object file: No such file or directory␤»
08:49 moritz_ sjohnson: no, it's just the hourly rebuild
08:49 masak moritz_: what, me in particular, or people in general? :)
08:49 moritz_ sjohnson: and since it requires a new parrot version this time, it takes longer
08:49 sjohnson rakudo:  my $str = "happy10";  given ($str) { when (m/\w+(\d+)/) { print $1; } }
08:49 Juerd_ I'm going to dist-upgrade feather now
08:49 p6eval rakudo 241545: OUTPUT«Null PMC access in get_string()␤current instr.: 'parrot;P6metaclass;register' pc 651 (runtime/parrot/library/P6object.pir:438)␤»
08:49 sjohnson i just had to at least correct my syntax
08:49 moritz_ masak: people in general; you don't seem to talk too much about food ;-)
08:49 * sjohnson has had a few too many beers
08:50 masak moritz_: and I do think I eat enough. :)
08:50 * sjohnson is getting hungry
08:50 masak sjohnson: $0.
08:50 sjohnson $0 for rea?
08:50 sjohnson real*
08:50 masak sjohnson: and ditch the parens after the 'when'.
08:50 moritz_ the first (...) group is in $0
08:50 masak and after the 'given'.
08:50 sjohnson there's a lot about perl 6 i dont know
08:51 sjohnson but am eager to learn
08:51 masak sjohnson: free your mind. drop your Perl 5 habits!
08:51 moritz_ ;-)
08:51 sjohnson can i has a syntax?
08:51 masak it's "I can haz", but yes.
08:51 masak you can.
08:51 moritz_ rakudo: say 1
08:51 p6eval rakudo 241545: OUTPUT«sh: ./perl6: No such file or directory␤»
08:51 sjohnson moritz_: tough break
08:51 sjohnson ( `ー´)
08:52 moritz_ it's at the src/gen_setting.pir step
08:52 moritz_ sorry for the inconvenience.
08:53 sjohnson i understand
08:53 justatheory joined #perl6
08:54 sjohnson rakudo: say 'compiled?'
08:55 p6eval rakudo b19862: OUTPUT«compiled?␤»
08:55 M_o_C Two questions: a) Can unnecessary code be described as "overhead"? b) Why exactly do many language creators create a bootstraped version with which they compile their compiler written in their created languag? The only reason I can think of so far is, that they like their new language better (they wouldn't have to create it if the language in which the compiler was written already offered this)
08:55 moritz_ M_o_C: a) yes
08:56 moritz_ M_o_C: b) several reasons... (more)
08:56 moritz_ 1) it's a good test, and it forces you keep your compiler actually working
08:57 moritz_ 2) often the structure of language supports building a compiler in it
08:57 moritz_ for example, for a Perl 6 compiler you need to thave the grammar in Perl 6, otherwise you can't get macros working correctly
08:57 explorer joined #perl6
08:58 moritz_ 3) if you develop a low-level language (like C or fortran), nobody takes you serious if you write the compiler in a different language
08:58 moritz_ "look, he wrote a C compiler in Lisp - he can't really like C - I wonder how good the compiler is he didn't like it"
09:01 M_o_C Thanks so far. However I have a question regarding point 2: Regarding the example you provided shouldn't it actually be "encourages" instead of "supports". (Though I also understand the "supports" part, because the grammar engine makes creating a compiler/interpreter very easy, which I really like about perl 6)
09:02 moritz_ in the case of Perl 6 it's both
09:03 moritz_ but in general... probably "encourages", yes
09:03 M_o_C Ok
09:04 pmurias joined #perl6
09:07 moritz_ http://www.perlmonks.org/?node_id=782882 maybe that's something we also want for Perl 6 regexes?
09:09 masak moritz_: what is? negative lookahead? inverted character classes? we have both already.
09:10 moritz_ it's "any string that does not contain $regex"
09:10 moritz_ s/contain/match/
09:10 masak if $string !~~ /.../ { ... }
09:11 moritz_ you can't use that in a regex easily
09:11 masak yes, there's ~~ and !~~ in regexes, too.
09:11 moritz_ right
09:11 moritz_ I forgot about those
09:11 moritz_ the original question was how to match <foo>...</foo> where ... was not allowed to match $rx
09:12 moritz_ so that would be '<foo>' (.*?) $0 !~~ $rx '</foo>' in Perl 6?
09:13 moritz_ I guess the difference is that $0 !~~ $rx looks prozedural to me, wheres the (?^ $rx) suggestion looks declarative to me
09:13 moritz_ (yes, Perl 5 doesn't distinguish those, but Perl 6 does)
09:13 masak yes, that is an issue.
09:14 masak and I'm not sufficiently read up on S05 right now to know if that works.
09:14 masak it's certainly NYI, even if it would.
09:14 cbk moritz_, masak could you point me in the direction of some good (through) perl 6 regex examples if you know any?
09:14 masak std: my $rx; /'<foo>' (.*?) $0 !~~ $rx '</foo>'/
09:14 p6eval std 27696: OUTPUT«ok 00:03 37m␤»
09:15 masak cbk: I'd recommend the MediaWiki parser in November.
09:15 masak cbk: hold on, I'll throw you a link.
09:15 moritz_ cbk: I wrote http://perlgeek.de/blog-en/perl-​5-to-6/20-a-grammar-for-xml.html some time ago
09:17 masak actually, this is probably a more illustrative example then the MediaWiki parser: http://github.com/masak/web/blob/1bcedbaab4e94c8a​c83264950e2fc8c1fe8c9220/lib/Hitomi/XMLParser.pm
09:18 masak doesn't use actions, though.
09:18 moritz_ aye, those were NYI at the time of writing
09:18 Su-Shee I need a perl 6 book soon.
09:18 cbk masak, Thanks
09:18 cbk what does NYI mean?
09:18 masak cbk: feel free to ask, too.
09:19 moritz_ Su-Shee: it's been said that TheDamian works on one, or will be soon
09:19 masak cbk: Not Yet Implemented.
09:19 cbk oh
09:19 Su-Shee moritz_: I already put aside 200 euros just for perl 6 books. ;)
09:19 masak also sometimes NIY. same thing.
09:19 masak Perl 6 books tend to bit-rot quickly...
09:19 Matt-W Good morning
09:20 masak Matt-W: morning, sir.
09:20 moritz_ let's hope that the Euro doesn't rot as quickly ;-)
09:20 Matt-W I wouldn't bank on having any accurate Perl 6 books for a while
09:20 wayland76 masak posted this link for me (XML Grammar): http://github.com/krunen/xml/tree/master
09:20 cbk masak, how can i match some text that are going to be used as vars that are separated by a space if perl6 ignores white space?
09:20 masak heck, we don't even have accurate tutorials! :)
09:20 wayland76 It has an extra colon in XML::Grammar::Document, on the last line, but once you get rid of that, it's fine
09:21 moritz_ cbk: either with the :s modifier, or by using \s, or ' ', or ...
09:21 Su-Shee cbk: you use \s for example.
09:21 masak cbk: or using 'rule' instead of 'regex' or 'token'.
09:21 moritz_ or \c[SPACE]
09:21 Matt-W cbk: you just have to explicitly say where you want to match whitespace
09:21 masak cbk: have you read S05. might be good starting there.
09:22 cbk well like this: VAR1 THISisVAR2 VAR3hereCOULDbTHISBIG
09:23 cbk masak, I have been looking in s05 all night
09:23 masak cbk: ok :)
09:23 cbk not really too helpfull if your just learning
09:23 moritz_ it's helpful when you read it the third time or so ;-)
09:23 masak cbk: I agree. you'd want to mix reading it and trying things out.
09:23 moritz_ cbk: I really recommend http://feather.perl6.nl/~duff​/articles/perl6/p6-regex.pod
09:24 moritz_ PerlJam++ wrote this, and so far I haven't found a single mistake or outdatedness in it
09:24 wayland76 cbk: search in S05 for "sigspace"
09:24 cbk moritz_, Yes something like that!!!
09:24 wayland76 Or search for this: The new ":s" (":sigspace") modifier causes whitespace
09:24 cbk wayland76, ok
09:27 cbk thanks guys the p6-regex.pod looks like a good read for me.... Printing it out now to add to MY perl6 book :)
09:27 cbk night all... Thanks again
09:28 * masak is porting Python code to Perl 6
09:31 masak rakudo: sub foo(:$bar) { say $bar }; class A { has $.bar; method baz() { foo(:$.bar) } }; A.new(:bar<OH HAI>).baz
09:31 p6eval rakudo b19862: OUTPUT«Symbol '$1bar' not predeclared in baz␤in Main (src/gen_setting.pm:3343)␤»
09:31 masak :)
09:31 * masak submits rakudobug
09:31 Matt-W masak: what Python code?
09:32 masak now, are my expectations right in this case? could the above code print "OH HAI"?
09:32 masak Matt-W: a templater called Genshi.
09:32 masak it's for the Web.pm project.
09:32 Matt-W masak: I don't know if your expectations are correct
09:32 Matt-W Is :$.bar supposed to be like :bar($.bar)
09:32 masak aye.
09:33 masak that was my expectation.
09:33 moritz_ I don't think so
09:33 Matt-W Because I wouldn't expect so without reading it somewhere
09:33 moritz_ because $.bar is not parsed as a variable, but as a method call
09:33 masak moritz_: does that matter?
09:33 masak and what about :$!bar, then?
09:34 Matt-W I would expect the same behaviour as $.bar
09:34 masak rakudo: sub foo(:$bar) { say $bar }; class A { has $!bar; method baz() { foo(:$!bar) } }; A.new(:bar<OH HAI>).baz
09:34 Matt-W whatever that happens to be...
09:34 moritz_ it does matter, Perl 6 is all about syntax
09:34 p6eval rakudo b19862: OUTPUT«Symbol '$1bar' not predeclared in baz␤in Main (src/gen_setting.pm:3343)␤»
09:34 masak I still think Rakudo does the Wrong thing here.
09:34 moritz_ $1bar?
09:34 masak there's no $1bar variable.
09:34 masak right.
09:34 moritz_ that's a less-than-awesome error message
09:34 Matt-W At the very least
09:34 moritz_ (hint, hint)
09:34 masak yes, it alone merits a bug report.
09:34 Matt-W It's either a Missing Feature or a less-than-awesome error message
09:34 Matt-W the question is which
09:34 masak moritz_: I'm writing it now. you're in it! :)
09:35 masak Matt-W: exactly.
09:35 moritz_ well, the table in S06 for named arguments doesn't list it, I think
09:35 masak I see no reason why it shouldn't work.
09:36 masak same with $^placeholder variables, I'd say.
09:36 Matt-W I see no reason why it should
09:36 moritz_ convenience would a good reason, no?
09:36 Matt-W Mmm
09:36 masak I think so.
09:36 Matt-W I can seen an argument for it
09:36 masak consistency, too.
09:37 moritz_ Perl 6 is all about convenience; otherwise we'd still be writing assembler code ;-)
09:37 masak it's not like the syntax is being used for something else.
09:37 szabgab rakudo: for (1, 2, 3, 4, 5) -> $x, $y? {say "$x $y";}
09:38 p6eval rakudo b19862: OUTPUT«1 2␤3 4␤StopIteration␤in Main (/tmp/qnyyJmWgOn:2)␤»
09:38 szabgab so $y? is accepted already but it is still not optional, right ?
09:39 moritz_ rakudo: (1..5).map: -> $x, $y? { say "$x $y" }
09:39 p6eval rakudo b19862: OUTPUT«Use of uninitialized value␤1 ␤Use of uninitialized value␤2 ␤Use of uninitialized value␤3 ␤Use of uninitialized value␤4 ␤Use of uninitialized value␤5 ␤»
09:40 moritz_ szabgab: right. You could call that a bug :/
09:40 masak szabgab: I hate the StopIteration error message.
09:40 szabgab if I call it a bug, will it behave better ? ;)
09:41 masak possibly, in the long run.
09:41 moritz_ I doubt that.
09:42 ihrd hi there
09:42 masak privet, ihrd.
09:42 ihrd I missed something or Rakudo just can`t 'augment class Foo {}' yet?
09:42 masak ihrd: it can't yet.
09:42 masak seems the transition is non-trivial.
09:43 ihrd masak: privet and thank you
09:43 masak ihrd: the semantics is there, though, in the old form of 'class Austria is also { ... }'
09:45 masak here's why we want to support :$!bar -- one day in the future, some slightly crazy Perl 6 developer will need it and try it out, just to see if it works. when it does, she will be overjoyed.
09:46 ihrd masak: I see, thank you again, my example works now
09:47 masak as it is now, I have to write :bar($!bar), and that's just unnecessary.
09:48 Matt-W nag TimToady to put it in the spec?
09:48 masak I'll certainly mention it when he wakes up.
09:48 moritz_ I can see the point with $!bar, because in that case it's just a twigil
09:48 moritz_ however $.bar is not a variable
09:49 Matt-W a lot of people will think it is though
09:49 masak moritz_: I don't see why it would have to be a variable.
09:49 Jedai joined #perl6
09:49 masak it can still be an lvalue.
09:50 moritz_ masak: it's mostly a matter of consistency. :$variable is shortcut for :variable($variable). Extending it to twigiled variables seems natural. Extending it to method calls doesn't
09:50 jnthn oh hai
09:50 masak jnthn: oh hai!
09:50 Matt-W o/ jnthn
09:50 masak moritz_: but surely '.' is a twigil?
09:51 moritz_ is it?
09:51 moritz_ oh hai jnthn
09:51 masak I've always thought it is.
09:51 jnthn masak: $.foo is the same as $(self.foo)
09:51 jnthn (Outside of a declaration)
09:51 masak I know, I know!
09:52 masak but is it a twigil?
09:52 moritz_ masak: STD.pm doesn't list it as a twigil.
09:52 jnthn Amd I reading correctly that Rakudo now builds against Parrot head?
09:52 masak jnthn: you are.
09:52 masak moritz_++
09:52 moritz_ jnthn: it does. Testing on windows appreciated ;-)
09:52 jnthn moritz_++ # thanks!
09:52 moritz_ cotto++ # patch
09:52 masak moritz_: ok, then it's not a twigil, I guess. more like a method-call shortcut.
09:52 moritz_ and bacek++ # descriptive deprecation notice
09:52 ejs joined #perl6
09:53 moritz_ masak: right; that's what I meant all the time.
09:54 Matt-W The problem is that it looks exactly like a twigil
09:54 moritz_ $.foo($bar) not
09:54 Matt-W Most of the time people won't care about the difference of course
09:54 moritz_ std: class A { $.foo ~~ 'bar' }
09:54 p6eval std 27696: OUTPUT«ok 00:02 37m␤»
09:55 moritz_ std: 1.foo ~~ 'bar'
09:55 p6eval std 27696: OUTPUT«ok 00:02 36m␤»
09:55 moritz_ std: sub a { }; a ~~ 'bar'
09:55 Matt-W So how does 'has' see it?
09:55 p6eval std 27696: OUTPUT«##### PARSE FAILED #####␤Preceding operator expects term, but found infix ~~ instead at /tmp/7zMYO9zkqP line 1:␤------> [32msub a { }; a ~~[31m 'bar'[0m␤FAILED 00:02 36m␤»
09:55 moritz_ Matt-W: specially.
09:56 Matt-W clearly
09:56 Matt-W else you'd just get unable to find method errors
09:56 * Matt-W erases the bit of his brain that thinks 'has' is a bit like 'my'
09:56 moritz_ szabgab: does padre integrate svn or git?
09:57 szabgab moritz_, partially
09:57 szabgab very partially
09:57 szabgab but we have plugins for both of them
09:58 donaldh joined #perl6
09:59 moritz_ szabgab: thanks; I was answering to http://www.perlmonks.org/?node_id=782901 ;-)
09:59 jnthn std: class A { has $.a; method foo { :$.a } }
09:59 p6eval std 27696: OUTPUT«ok 00:02 37m␤»
09:59 jnthn Hmm.
09:59 masak \o/
09:59 masak I have STD.pm on my side... I think.
10:00 szabgab we also would like to have editing via ssh but that's another story
10:00 szabgab for now we are working on the Strawberry Perl 5+6+Padre release
10:01 jnthn masak: std is a syntactic checker, not a semantic one, though. So it's only a half victory. ;-)
10:02 masak but an important one!
10:02 masak this half-victory calls for lunch, I think.
10:02 masak &
10:04 dakkar joined #perl6
10:06 pmichaud good (early) morning, #perl6
10:07 jnthn wow
10:07 * jnthn didn't get up that long ago
10:07 pmichaud it's very early here, yes.
10:07 pmichaud 3:07 am
10:07 jnthn uff
10:07 jnthn Yes early.
10:07 jnthn Can't sleep?
10:08 jnthn Or didn't get around to doing sleep yet?
10:08 pmichaud I left the oscon chairs' party a little early and came back to my hotel and crashed :-)
10:08 pmichaud then woke up a bit ago and didn't feel like going immediately back to sleep
10:09 jnthn Ah. :_)
10:09 jnthn Early hours hacking! ;-)
10:09 pmichaud well, likely going to be "cleaning up from oscon" -- getting my presentations posted, follow-up emails, etc.
10:14 * jnthn lands the big metaclass switchover
10:14 jnthn Hope I got the merge right.
10:17 dalek rakudo: 9c44089 | jnthn++ |  (8 files):
10:17 dalek rakudo: Separate out the Rakudo metaclass (calling it ClassHOW) from the Parrot one, and make sure everything we create uses this metaclass. This means we poke less stuff into p6object's namespace, and paves the way for various other refactors and additions.
10:17 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/9​c4408925727778c32b08f9b75210ee995ac07b3
10:20 Matt-W jnthn++
10:21 Matt-W jnthn: that commit changes PARROT_REVISION from 40249 to 40232...
10:21 jnthn oh
10:21 jnthn fail
10:21 jnthn :-)
10:22 jnthn Will up it again.
10:22 moritz_ Matt-W++ # immmediate review
10:22 Matt-W Not something I usually do, but I'm waiting on work code to compile...
10:23 dalek rakudo: e989e65 | jnthn++ | build/PARROT_REVISION:
10:23 dalek rakudo: Oops, mis-merged PARROT_REVISION (Matt-W++ for noticing).
10:23 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/e​989e65d065d764a8d79ac7f5402532528f118c2
10:23 Matt-W I'm also going to assume that the actual class implementation is already there, seeing how it isn't in this commit.
10:24 jnthn Matt-W: Huh?
10:24 moritz_ src/classes/ClassHOW.pir
10:24 moritz_ I think
10:24 jnthn Yes, that's right.
10:24 pmichaud jnthn: btw, I thought of a huge win that can come from using ObjectRefs for binding...
10:24 Matt-W jnthn: yes, that's what I meant
10:24 jnthn OMG EPIC WIN
10:25 * Matt-W waits on the edge of his seat
10:25 jnthn Matt-W: No, I think it's right - it adds src/classes/ClassHOW.pir and removes src/parrot/ClassHOW.pir
10:25 pmichaud we no longer have to worry about the lexical symbol being rebound to a different PMC.... and thus we don't need redundant "find_lex" operations
10:26 pmichaud once a scope has fetched a particular lexical... it doesn't have to re-fetch it again later
10:26 jnthn Matt-W: If you click the filename in the list at the top, it'll show you the content of the file.
10:26 Matt-W jnthn: oh yes so it does. I just wasn't reading the diff right (github doesn't include added files, it seems)
10:26 jnthn Matt-W: But yes, it doesn't automatically show full added files int he diff.
10:26 Matt-W pmichaud: sounds nice. What's the catch?
10:26 jnthn Thanks for looking anyway - it's hardly like my git skillz are teh awesome.
10:26 pmichaud Matt-W: shouldn't be any catch
10:27 jnthn pmichaud: Hmm. So at what point do we know to create the ObjectRef?
10:27 pmichaud jnthn: that's what makes this even better
10:27 pmichaud infix:<:=>  becomes a normal operator sub
10:27 pmichaud it doesn't need any special handling in the compiler (at least, I don't think it does)
10:27 jnthn OK
10:27 jnthn Hm
10:27 jnthn So let's look at an exmaple.
10:28 jnthn sub foo { my $a = 42; my $b := $a; $a = 100; say $b; }
10:28 jnthn I think we agree that should print 100?
10:28 pmichaud yes
10:28 jnthn OK
10:29 jnthn So what roughly would my $b := $a; compile down to?
10:29 pmichaud ...compile down to?
10:29 pmichaud it would be
10:29 pmichaud $P0 = find_lex '$b'
10:29 pmichaud $P1 = find_lex '$a'
10:29 pmichaud 'infix::='($P0, $P1)
10:30 jnthn OK, good. And what (not line by line PIR, just description is fine) would infix::= do?
10:30 pmichaud 1.  Create a new ObjectRef to the second operand ($a)
10:30 pmichaud 2.  Copy that ObjectRef into the first operand ($b)
10:30 pmichaud 3.  Profit
10:31 jnthn Ah, OK, so we're doing a copy op there.
10:31 jnthn Would
10:31 pmichaud it's basically *exactly* what we do for
10:31 jnthn sub foo { my $a = 42; my $b := $a; my $c := $b; }
10:31 jnthn Here, is $c going to be an objectref -> objectref -> $a?
10:31 pmichaud my $a = 42;  sub foo($b) { $a = 100;  say $b };  foo($a);
10:32 jnthn Yes, it's the same.
10:33 jnthn Which feels somewhat right given it's signature *binding*.
10:33 pmichaud exactly
10:33 pmichaud that's what prompted me to want to go this way (as well as a few other things)
10:33 jnthn OK, I don't spot any immediate holes to shoot in this. :-)
10:33 pmichaud in the $c case, I haven't completely decided (more)
10:34 pmichaud but it'll likely work out to be much the same as when we pass a bound parameter as an argument to a nested function
10:34 pmichaud we *should* be able to do some optimization so that $c ends up being  objectref -> $a
10:35 jnthn I think so, yes.
10:35 pmichaud on the surface it isn't hard -- we just dereference the second operand to "infix::=" prior to building the ObjectRef
10:35 masak so, IIUC infix:<:=> and signature binding will share the same mechanism?
10:35 pmichaud masak: that's what I'd like to see happen at some level, yes.
10:35 jnthn masak: IIUC, yes.
10:35 masak that's funny, I had that thought a few days ago -- whether they did use the same mechanism.
10:36 Matt-W however, if in the $a $b $c example, you then rebound $b, shouldn't $c reflect that?
10:37 Matt-W or are the semantics that you bind through to the final target always
10:37 pmichaud Matt-W: no
10:37 pmichaud right.
10:37 pmichaud if we rebind $b, that shouldn't affect the binding of $c
10:38 Matt-W oh
10:38 Matt-W you don't bind $c to $b, you bind it to what $b is bound to
10:38 Matt-W ?
10:38 pmichaud yes
10:38 pmichaud which is really true even in the   $b := $a   case
10:38 Matt-W and so in the original binding of $b to $a, it binds $b to what $a is bound to, which happens to be this value
10:39 pmichaud we bind $b to whatever $a is bound to.... right
10:39 Matt-W right
10:39 pmichaud "ding"
10:39 Matt-W so yes, you should be able to optimise it down to one objectref
10:39 Matt-W Thanks, I understand that better now
10:40 pmichaud we have a bit of twiddling to do to make sure we preserve readonly-ness and type constraints, but that's not too difficult
10:41 Matt-W Cool
10:41 Matt-W Sounds like a big win all round then
10:41 jnthn Aye, though atm we don't get any of that right with binding anyway.
10:41 Matt-W Not that I know what we currently do, but I'm not sure there's a better way
10:41 Matt-W It sounds like a good solution
10:41 pugs_svn r27697 | wollmers++ | added unicode variables
10:41 pmichaud but a nice "side effect" of this approach is that we get to avoid a large number of "find_lex" instructions in the generated code
10:42 Matt-W jnthn: two birds, one shotgun with two independently-targetted barrels
10:42 pmichaud because Parrot's lexpad symbols remain bound to the same PMC throughout
10:42 Matt-W pmichaud: so that should give a performance win
10:42 pmichaud yes.  I don't know if it'll be a significant win, but it'll certainly  make the code look prettier :-)
10:43 Matt-W :)
10:43 Matt-W well avoiding instructions is usually good
10:43 Matt-W find_lex can't be free
10:43 jnthn It's not free.
10:43 pmichaud it's not free but also not too expensive, I suspect.
10:43 jnthn It throws away a bunch of stuff we know statically too.
10:44 pmichaud still, avoiding it should be a win
10:44 Matt-W It all helps
10:44 Matt-W And it's not a premature optimisation either
10:44 Matt-W Even I can understand what you're planning to do
10:44 Matt-W So that must mean it's nice and simple :)
10:45 avar Probably nobody cares about 1) Updating binaries 2) Updating binaries for windows doubly so
10:45 avar (gah, wrong paste, wrong channel)
10:46 jnthn avar: And there I was, ready to give you a link to the Windows binaries of yesterday's Rakudo release. ;-)
10:47 avar whee:)
10:49 * jnthn tries to resist the temptation to go on a massive metamodel refactoring frenzy.
10:51 Su-Shee well I just threw away an entire database design. ;)
10:52 jnthn Well, it won't be so much throwing away as lots of little bits to slowly beat things into a shape I find pleasing.
10:53 jnthn (While trying to make that shape pleasing to others too.)
10:54 Su-Shee what's holding you back then? ;)
10:55 pugs_svn r27698 | moritz++ | [test-reporter] include diff in mails, [particle]++ for suggesting that
10:55 colomon joined #perl6
10:55 moritz_ phenny, tell KyleHa could please test if r27698 works for you? thanks.
10:55 phenny moritz_: I'll pass that on when KyleHa is around.
10:56 jnthn Su-Shee: A vague attempt to finish my current grant on schedule-ish. ;-)
10:56 jnthn Though really that's a good thing. It keeps me focused.
10:56 moritz_ (hague grants)++
10:58 Su-Shee jnthn: ah, ok, that's a good reason.
10:59 * jnthn goes to scribble on paper for a while to try and work out what he really wants/needs
11:00 ihrd rakudo: my $code = {"Foo"}; my %h = :bar; $code(| %h);
11:00 p6eval rakudo e989e6: OUTPUT«FixedIntegerArray: index out of bounds!␤in Main (/tmp/FgJAABITVb:1)␤»
11:00 jnthn ooh
11:00 jnthn good find
11:00 jnthn rakudo: my $code = {"Foo"}; my %h = :bar;
11:00 p6eval rakudo e989e6:  ( no output )
11:00 ihrd and another one
11:01 pmichaud rakudo:  say (:bar).perl
11:01 p6eval rakudo e989e6: OUTPUT«"bar" => 1␤»
11:01 ihrd rakudo: my $code = {"Foo"}; $code(| {:foo});
11:01 p6eval rakudo e989e6: OUTPUT«argument doesn't array␤in Main (/tmp/vGFnIAQOzW:1)␤»
11:01 frettled doesn't array?
11:01 ihrd lat just about wrong | relization
11:01 jnthn rakudo: my $code = {"Foo"; $:bar}; my %h = :bar; $code(| %h);
11:02 p6eval rakudo e989e6:  ( no output )
11:02 pmichaud ah.  currently the prefix-| only can work on array and hash variables
11:02 jnthn Somehow, the parameter passing gets very upset if you pass a flattening hash and have nowhere to stick the named params.
11:02 masak std: "$.method"
11:02 p6eval std 27697:  ( no output )
11:02 jnthn rakudo: sub foo() { }; foo(:bar)
11:02 masak std: "$!attr"
11:03 p6eval rakudo e989e6:  ( no output )
11:03 p6eval std 27697:  ( no output )
11:03 jnthn rakudo: sub foo() { }; my %h = :bar; foo(|%h)
11:03 ihrd pimchaud: mb better error message here, something like "NIY"
11:03 p6eval rakudo e989e6:  ( no output )
11:03 jnthn oh huh
11:03 moritz_ rakudo: say 1
11:03 p6eval rakudo e989e6: OUTPUT«1␤»
11:04 jnthn rakudo: sub foo() { }; my %h = :bar; foo(|%h)
11:04 moritz_ sometimes I question p6eval's sanity to keep my own. Doesn't always work
11:04 p6eval rakudo e989e6:  ( no output )
11:04 pmichaud jnthn:  you need a param to foo
11:04 moritz_ rakudo: multi sub foo() { }; my %h = :bar; foo(|%h)
11:04 jnthn rakudo: sub foo($fake) { }; my %h = :bar; foo(|%h)
11:04 pmichaud rakudo:  sub foo($a) { };  my %h = :bar;  foo(1, |%h);
11:04 p6eval rakudo e989e6:  ( no output )
11:04 p6eval rakudo e989e6: OUTPUT«too many named arguments - 'bar' not expected␤in sub foo (/tmp/KIqrbdUo5O:1)␤called from Main (/tmp/KIqrbdUo5O:2)␤»
11:04 p6eval rakudo e989e6:  ( no output )
11:04 frettled moritz_: as if we'd notice.  I mean, everybody's crazy.
11:04 jnthn Nope, that didn't quite get it either.
11:04 * jnthn is confused
11:05 pmichaud rakudo:  my $code = -> $a { "Foo" };  my %h = :bar;  $code(|%h);
11:05 * masak is frustrated
11:05 p6eval rakudo e989e6: OUTPUT«too many named arguments - 'bar' not expected␤in Main (/tmp/o8iT7ZaBUS:1)␤»
11:06 pmichaud oh!
11:06 pmichaud oh!
11:06 pmichaud no.
11:06 jnthn well that was anti-climactic.
11:06 pmichaud rakudo:  my $code = { "Foo" };  $code();
11:06 p6eval rakudo e989e6:  ( no output )
11:06 pmichaud rakudo:  my $code = { "Foo" };  $code(1);
11:06 p6eval rakudo e989e6:  ( no output )
11:06 jnthn rakudo:  my $code = { "Foo" };  $code(:bar);
11:07 pmichaud rakudo:  my $code = -> $a? { "Foo" };  my %h = :bar;  $code(|%h);
11:07 p6eval rakudo e989e6: OUTPUT«FixedIntegerArray: index out of bounds!␤in Main (/tmp/sID400zNEl:1)␤»
11:07 p6eval rakudo e989e6: OUTPUT«FixedIntegerArray: index out of bounds!␤in Main (/tmp/bMiMwxo4TG:1)␤»
11:07 pmichaud *there*
11:07 pmichaud it's when there's an optional param
11:07 jnthn optional param + named flat with nothing to receive it.
11:07 * masak submits that as a rakudobug
11:07 jnthn Guess that's another PCC bug.
11:07 ihrd left #perl6
11:07 pmichaud yes.
11:08 moritz_ and another less-than-awesome error message :/
11:08 pmichaud I suspect that combination isn't handled in the pcc code
11:08 frettled Perl 6 - new and interesting ways to screw with your minds.  I lost my way.
11:08 jnthn *another* :'(
11:08 moritz_ can we coin LTA as abbreviation of 'Less Than Awesome'?
11:08 moritz_ (maybe lower-cased)
11:08 pmichaud jnthn/masak:  btw, "awesome" seems to be the word-du-jour around here at OSCON :-)
11:08 masak of course. :)
11:09 frettled moritz_: that could work, since the TLA also stands for Lighter Than Air.
11:09 frettled pmichaud: isn't it awesome?
11:09 Su-Shee pmichaud: hopefully all about perl 6 being awsome. :)
11:09 wayland76 awe-all, for when awe-some just isn't enough :)
11:09 pmichaud Su-Shee: precisely, but it seems to be unconsciously spilling over into non-perl6 discussions :)
11:10 pmichaud anyway, TimToady++'s state of the onion highlighted the discussion between jnthn++ and masak++ that led to us deciding that Perl 6 must be "not less than awesome"
11:10 masak :D
11:11 pmichaud (a wholly positive development, imo)
11:11 pmichaud my lightning talk today covered  hyperoperators, reduction operators, cross operators, and the zip operator, and gave an example using all of them
11:11 jnthn "and they work!"
11:12 frettled \o/ or /o\ ?
11:12 masak that's no less than awesome.
11:12 masak frettled: is the second one someone covering his head against rotten tomatoes?
11:12 frettled masak: for instance, or just holding his head in his hands (�oh no!�)
11:12 pmichaud http://gist.github.com/153993
11:13 masak pmichaud: that's so cool.
11:14 frettled neat!
11:14 zamolxes joined #perl6
11:14 pmichaud what's totally cool is that in almost every case, the code is shorter than the comments :-)
11:14 jnthn pmichaud: my @hand = @deck.splice(0, 5);
11:14 jnthn Why not
11:14 jnthn my @hand = @deck[^5];
11:14 frettled X~ is something I've been in need of several times.
11:14 jnthn Or you wanted to remove them from the deck?
11:14 pmichaud jnthn: because when we deal a hand.... exactly
11:15 jnthn Right, gotcha.
11:15 jnthn Awesome. :-)
11:15 pmichaud earlier examples that I had would use   @deck.pick(5)
11:15 moritz_ and when I ran it, it said 42. Wow!
11:15 pmichaud which is great, but if you do:
11:15 pmichaud my @hand1 = @deck.pick(5);   my @hand2 = @deck.pick(5);
11:15 pmichaud then we get duplicates :-)
11:15 jnthn aye
11:15 jnthn not good
11:15 frettled pmichaud: looks like you might be a bridge player
11:16 pmichaud frettled: I did play bridge at one time, yes.  Haven't played in years, though.
11:16 moritz_ the >>xx>> 4 looks pretty evil to me ;-)
11:16 pmichaud heh
11:16 pmichaud there's a story behind that one
11:16 pmichaud originally I had
11:16 meppl joined #perl6
11:16 pmichaud (2..10, 10, 10, 10, 11) X+ (0,0,0,0)
11:16 pmichaud which also produces (2,2,2,2,3,3,3,3,4,4,4,4, ...)
11:17 moritz_ oooh, that's evil too ;-)
11:17 pmichaud but I always thought that was a bit hacky
11:17 pmichaud I really wanted to say "give me four copies of each element"
11:17 pmichaud and when I was preparing my slides, I was bummed because I didn't have any hypers in the original code
11:17 moritz_ I ususally use map for such things
11:18 pmichaud (and it's easiest to describe the other reduction ops after starting with a description of hypers)
11:18 moritz_ but of course >> is nicer in a meta-op lightning talk ;-)
11:18 * jnthn finds reduction a good one to start with
11:18 pmichaud so while I was trying to figure out what to do, I stumbled upon >>xx>>
11:18 jnthn Since it only involves one input (an array)
11:18 jnthn (or list)
11:18 moritz_ jnthn: same here
11:18 pmichaud I like hypers because it's easy to show a perl5-ish equivalent
11:19 jnthn And you can mostly explain it as "think of it textually sticking the operator between each thingy in the array".
11:19 pmichaud it also keeps the notion of "working on lists"
11:19 synth joined #perl6
11:19 jnthn As a first approximation.
11:19 moritz_ btw why is the @(...) needed around the »xx» thing?
11:19 jnthn e.g. [+] 1..4 is a bit like 1 + 2 + 3 + 4.
11:19 mkfort joined #perl6
11:19 pmichaud because it really comes out to be   [(2,2,2,2), (3,3,3,3), (4,4,4,4), ... ]
11:20 moritz_ should it?
11:20 pmichaud so we want to flatten it before we send it to Z
11:20 pmichaud and yes,  (1,2,3) xx 4  should result in  ((1,2,3), (1,2,3), (1,2,3), (1,2,3))
11:21 jnthn Gah, we really should wrap Parrot Role PMCs up into a RoleHOW.
11:21 pmichaud normally it flattens if used in a flattening list context... but the arguments to infix:<Z> aren't flattening list
11:21 pmichaud (they're slice context)
11:21 jnthn Perhaps anyway...
11:21 * jnthn ponders
11:22 donaldh joined #perl6
11:22 frettled pmichaud: hmm, that there is nice tutorial material.
11:22 masak rakudo: sub foo { $bar }
11:22 pmichaud jnthn: I wonder if our P6metaclass objects need to be attachable to Role PMCs as well as Class PMCs
11:22 p6eval rakudo e989e6: OUTPUT«Symbol '$bar' not predeclared in foo (/tmp/3a1c8BHDKS:2)␤in Main (src/gen_setting.pm:3343)␤»
11:22 jnthn pmichaud: I was pondering subclassing ClassHOW to get us a RoleHOW.
11:22 pmichaud frettled: I thinking that I want to convert my lightning talk into a blog post (that explains it like I did in the talk)
11:22 jnthn pmichaud: And essentially doing that.
11:22 frettled masak: my oh my :)
11:22 * masak submits rakudobug about missing line number
11:23 frettled pmichaud: feel free to bounce it off a real n00b, AKA me.
11:23 pmichaud masak:  ... missing line number?
11:23 jnthn Probably in an backtrace.
11:23 pmichaud ":2" looks like a line number to me.
11:23 pmichaud (a wrong one, but not missing)
11:24 masak oh.
11:24 * masak stands down
11:24 masak don't know what I was thinking, really.
11:24 masak ah!
11:24 pmichaud and it might not even be wrong, given that p6eval sticks some code at the beginning
11:24 masak because in the error _I_ got, I didn't get a decent line number!
11:25 masak let's see if I can recreate that situation.
11:25 pmichaud frettled: I will be sure to bounce it off of you
11:25 frettled great!
11:25 pmichaud (although I may just go "straight to post")
11:25 masak rakudo: class A { method new { $bar } }
11:25 p6eval rakudo e989e6: OUTPUT«Symbol '$bar' not predeclared in new (/tmp/X0ogJTteJj:2)␤in Main (src/gen_setting.pm:3343)␤»
11:25 masak there you go.
11:25 jnthn std: multi trait_mod:<is>(Class $x, Class $y) { }
11:25 * masak submits rakudobug
11:25 p6eval std 27698: OUTPUT«ok 00:03 39m␤»
11:25 jnthn Good.
11:26 jnthn pmichaud: Basically, my plan is:
11:26 jnthn (more) ;-)
11:26 masak :)
11:26 jnthn 1) Create a RoleHOW
11:26 pmichaud jnthn: I'm thinking that we shouldn't have a separate RoleHOW, though
11:26 jnthn 2) Get roles using it
11:26 pmichaud it doesn't feel Perl6-ish
11:26 jnthn 3) RoleHOW and ClassHOW both do some role Class.
11:27 jnthn 4) traits.pm then has saner signatures, and we win all around
11:27 masak dang, that one has a line number too! o_O
11:27 jnthn Plus we move more code into the metaclass that is all over traits.pm and guts.pir right now.
11:27 pmichaud at least, I haven't seen anything in the spec that implies that the metaclass objects we'd get back from roles would be of a different sort than the ones we get from classes
11:27 jnthn pmichaud: Interesting point.
11:28 pmichaud I'm not saying we can't do it that way... I just hadn't seen anything to indicate that this was part of the thinking behind them
11:28 jnthn pmichaud: The smop folks are doing it because they need .^dispatch to work differently in each of them (in one it's supposed to pun).
11:28 pmichaud ah.  If smop is using this approach I have less concern
11:28 jnthn I'm trying to think if we have any code paths that'd get us into a need to separate them.
11:28 pmichaud but I think it'd definitely be worth asking TimToady++ if that matches his conception of things
11:29 moritz_ I think the spec POV is that each keyword (class, role, grammar) can have its own meta class, that also introduces things like 'has', 'method' and so on
11:29 jnthn But basically I think a package declarator maps to a HOW is roughly along the right lines.
11:29 pmichaud many times I find that a simple question of "...is this kinda how you thought it would work" brings forth very useful answers.
11:29 jnthn I seem to remember a discussion with TimToady along the lines that if you wanted a custom metaclass you'd also want to introduce a custom package declarator.
11:30 pmichaud jnthn: sure, but that's going the other way
11:30 pmichaud that doesn't mean that every package declarator should result in its own metaclass
11:30 jnthn pmichaud: Yes, indeed.
11:30 jnthn pmichaud: As I mentioned though, I did plan RoleHOW at first to inherit from ClassHOW.
11:30 jnthn So we'd share most of the implementation.
11:30 pmichaud and, interestingly, in Rakudo and PGE  "grammar" is exactly the same type of class as "class"
11:31 jnthn Yeah, true, actually I'd expect those to have a common metaclass.
11:31 pmichaud anyway, I think it's worth asking the question (of ourselves) as to whether they're really different
11:32 jnthn Though I guess the only thing you might do differently in a GrammarHOW is that's where you could probably most neatly declare what is the default parent class.
11:32 frettled and if they're different, are they just subclasses of the same?  :D
11:32 jnthn Grammar vs Any.
11:32 pmichaud it's the same sort of discussion about what distinguished type objects from instance objects
11:32 jnthn frettled: Oh, even between ClassHOW and RoleHOW if we have them separated out, I think much will be the same. I'd expect not to duplicate implementation there.
11:33 jnthn pmichaud: I don't see that analogy, that feels like an orthogonal issue to me.
11:33 pmichaud I'm not saying it's a related issue, I'm saying it's a similar sort of discussion
11:33 pmichaud (maybe I went too meta)
11:33 jnthn Ah, OK.
11:33 jnthn ;-)
11:33 pmichaud i.e., Rakudo treated protoobjects as being a specialized type, smop used a flag
11:33 pmichaud TimToady took a third approach altogether :-)
11:34 pmichaud so by analogy
11:34 frettled jnthn: I'd love to say "aha" and be honest about it :)
11:34 pmichaud if we think of RoleHOW and ClassHOW as being separate, we might find that's really not the underlying case
11:35 pmichaud (again, only because I really hadn't seen anything to imply that $role.HOW would be different in nature from $class.HOW
11:35 jnthn They'd both be metaclasses that implemented the same interface.
11:35 pmichaud sure, I can see that.
11:35 jnthn I'm just not sure they'd have to be the same type of metaclass.
11:35 lumi_ joined #perl6
11:36 pmichaud I'm not sure they'd ahve to be the same either, but I'm not sure they'd have to be different.
11:36 pmichaud to me it's one of those "deep choices" that seems like it might have far-reaching effects later on.
11:36 frettled . o O ( aliased metaclasses? )
11:37 pmichaud so I'm not trying to say which option is correct, I'm just saying "Oh.  I had been thinking of it this other way..." and asking if the difference is significant
11:37 frettled (Whenever I think of things like that, I'm afraid that I might find that someone has already _implemented_ the concept.)
11:38 jnthn pmichaud: To be honest, I don't actually think it's that huge a difference.
11:38 pmichaud okay.
11:38 jnthn At the end of the day, it boils down to use using a subclass in place of it's parent.
11:38 jnthn And if we find the subclass is extraneous, we can just remove it and have everything use ClassHOW.
11:39 pmichaud again, while I know that Perl 6 explicitly supports multiple metaclass instances, it hadn't occurred to me that Perl 6 itself would be *using* multiple metaclass instances
11:39 frettled pmichaud: but it makes a perverse sort of sense.
11:39 pmichaud yes, I'm coming around to that view.
11:39 jnthn It hadn't really occured to me until smop went that way, and I've been pondering it since.
11:40 pmichaud anyway, I've noted my concern, but I don't a strong "OMG this is very likely wrong" feeling about RoleHOW
11:40 pmichaud *don't have
11:40 pmichaud so I don't object to going down that path :-)
11:40 pmichaud I just wanted to ask about the other one.
11:40 frettled I googled RoleHOW and ClassHOW after you mentioned it and glanced through some SMOP documents with arguments pro&con.  It seems like it's at least been considered.
11:40 jnthn If we feel it's wrong later, we can back out of it. I'll do my best to not paint us into a corner.
11:40 pmichaud wfm
11:41 jnthn But I'd really like to try and get things straightened out a bit.
11:41 frettled one of the relevant hits, I suppose: http://www.perlfoundation.org/​perl6/index.cgi?smop_gsoc_2009
11:41 pmichaud of course, if it works out well then I'll likely be adopting something similar in P6object :-)
11:41 jnthn I just feel we've got a lot of bits of things that belong in a metaclass scattered all over the place.
11:41 jnthn And now Rakudo has it's own ClassHOW, we can put them there.
11:41 pmichaud I had some good conversation with Tim Bunce tonight about role support in Parrot
11:42 pmichaud (mostly along the lines of "is it there?" and "can we design interfaces assuming it's present?"
11:42 jnthn Yes it's there, yes we can.
11:42 jnthn I guess. :-)
11:42 moritz_ is he trying to port DBI to Perl 6?
11:42 pmichaud moritz_: to *Parrot*
11:43 moritz_ well.
11:43 frettled whoa.
11:43 moritz_ I guess when it works in parrot, it'll be not too hard to set up a Perl 6 interface on top of it
11:43 pmichaud and, because I said I'd try to promote clarity -- it's actually DBDI that he's looking at
11:43 * jnthn would so love database access from Rakudo.
11:43 * Juerd_ hopes the interface for DBI *users* will be nicer than in Perl 5's DBI
11:44 Juerd_ (Of course, I would like it to be like DBIx::Simple ;))
11:44 pmichaud His lightning talk today was about how he had done a DB(D)I lightning talk 2 years ago about building something on Parrot, but then promptly did nothing
11:44 jnthn Well, NYTProf wasn't exactly nothing, but... ;-)
11:44 pmichaud so he then used his lightning talk as a "call for volunteers" to help, as he doesn't want/plan to do all of the work himself :-)
11:45 pmichaud and jnthn -- I told Tim to corner you about some of this stuff at Italian Perl Workshop  :-)
11:45 jnthn Oh, he'll be at IPW, but not YAPC::EU? OK.
11:45 pmichaud yes
11:45 jnthn OK, will try and catch up with him there. :-)
11:46 moritz_ when you see him again, you can tell him that I'll volunteer for a Perl 6 frontend
11:46 pmichaud moritz_: I will do that
11:46 pmichaud When he called for volunteers I raised my hand, and later told him I was volunteering to (1) provide any Rakudo/NQP support the effort needed, and (2) to help him find volunteers :)
11:47 moritz_ recursion: see recursion
11:47 moritz_ http://www.google.com/search?hl=en&amp;q=recursion
11:47 pmichaud delegation:  see [1]
11:48 pmichaud anyway, I think five hands went up as volunteers here, so we should be able to get some people behind it
11:49 frettled :)
11:49 pmichaud (and yes, database access from Rakudo is one of those "we're a real implementation" sorts of things)
11:49 moritz_ did he mention any collaboration URL? or contact address?
11:49 wayland76 Here's the design doc: http://www.mail-archive.com/db​di-dev@perl.org/msg00002.html
11:49 wayland76 2004 anyone? :)
11:49 pmichaud moritz_: not yet, but I'll ask him about one tomorrow
11:49 moritz_ anyway, I really admire both of his major Perl modules, DBI and Devel::NYTProf
11:50 frettled wayland76: you found that one too, eh.  :9
11:50 moritz_ some months ago I read a DBI tutorial on perl.com or so
11:50 moritz_ from 1999, iirc
11:50 pmichaud anyway, our discussion was about the availability of roles in _parrot_, because we'd really like this to be available for multiple Parrot languages and not just Rakudo
11:50 moritz_ and the code still worked, and didn't feely and clumsy
11:51 moritz_ I just hope that the Perl 6 frontend will be usable from other Perl 6 implementations too
11:51 pmichaud with the design of DBI/DBDI, I think that's entirely possible.
11:51 pmichaud likely, even.
11:51 moritz_ I'd expect nothing less of Tim ;-)
11:52 masak moritz_: Rakudo is still not announced on http://use.perl.org/
11:52 frettled I know a little bit about databases and programming, so I could probably try to give some feedback on the design, but perhaps that's already covered by other clever people.
11:52 pmichaud (going back to an earlier topic)   http://pmichaud.com/2008/pres/oscon-perl6op   # my lightning talk slides
11:52 pmichaud oops
11:52 frettled 404 compliant, yes.
11:52 pmichaud 2009
11:52 pmichaud http://pmichaud.com/2009/pres/oscon-perl6op
11:53 moritz_ masak: not my fault, I hope. I submitted the story, it's still marked as "pending"
11:53 pmichaud (use 'N' and 'P' to navigate slides if you can't see the bottom bar)
11:53 masak moritz_: no, I don't think it's your fault.
11:54 masak moritz_: but it's another small nail in the coffin for use.perl.org
11:54 dalek grok: 28dd10d | (Hinrik Örn Sigurðsson)++ |  (3 files):
11:54 dalek grok: Remove use of Module::Install::AuthorRequires
11:54 dalek grok: review: http://github.com/hinrik/grok/commit/28​dd10dfc75afcabd3a4e66238367290ffa42eb2
11:54 dalek grok: 783b3f0 | (Hinrik Örn Sigurðsson)++ |  (3 files):
11:54 dalek grok: Make Win32::Console::ANSI optional
11:54 dalek grok: review: http://github.com/hinrik/grok/commit/78​3b3f0fd1ffe2755f0dced12c848062828b511c
11:54 dalek grok: dbcc997 | (Hinrik Örn Sigurðsson)++ |  (4 files):
11:54 dalek grok: Bump version to 0.14
11:54 dalek grok: review: http://github.com/hinrik/grok/commit/db​cc997a5231d6f5163304f8beafeb4b8347a705
11:54 dalek grok: 068ce3f | (Hinrik Örn Sigurðsson)++ |  (2 files):
11:54 dalek grok: Fix logic error
11:54 dalek grok: review: http://github.com/hinrik/grok/commit/06​8ce3fbadfa20fca2400ae49d7794b7d63648b2
11:54 dalek grok: 591c435 | (Hinrik Örn Sigurðsson)++ |  (4 files):
11:54 dalek grok: Bump version to 0.15
11:54 dalek grok: review: http://github.com/hinrik/grok/commit/59​1c4356d71a2e759527ee62c192002e714be1c6
11:54 frettled yipe
11:54 masak whoa.
11:54 literal dalek: you're verbose
11:54 moritz_ masak: speaking of which, I wanted to set up shared blogging on perlblog.org
11:54 szabgab joined #perl6
11:54 BinGOs Atomic commititis
11:55 masak the 'review' line is totally needless.
11:55 wayland76 Nearly as long as autarch's commit message for Temporal :)
11:55 moritz_ but ENOTUITS so far
11:55 pmichaud moritz_: I've had trouble with the "Publicize" option in use.perl before
11:55 masak and the ($n files) could be removed and the first and second lines merged.
11:55 masak voila! half as much output!
11:55 pmichaud I'd select it, but then it doesn't "stick"
11:55 masak moritz_: when you do, I'll probably join.
11:56 pmichaud masak: I often find the review line very helpful
11:56 BinGOs Could use shortened links as well.
11:56 masak pmichaud: the line that says 'review' (not the URL)?
11:56 unitxt joined #perl6
11:56 frettled moritz_: I'll tell you if I find any.
11:56 pmichaud masak: on my client, 'review' and the url are on the same line
11:57 masak oh. right.
11:57 masak they are.
11:57 pmichaud oh, I get it -- word wrapping is causing them appear on separate lines in your client
11:57 pmurias joined #perl6
11:57 pmichaud shorter urls would definitely help
11:58 frettled moritz_: you probably want to upgrade MT to the most recent version.
11:58 pmichaud I suspect that the sha1's could be truncated to 6 characters or so
11:58 * pmichaud tests
11:58 pmichaud alas, no.
11:59 pmichaud maybe I should locate the github guys and see if they could allow truncated sha1's in the url :-)
11:59 BinGOs That's using the JSON service thingy
11:59 BinGOs ?
12:00 moritz_ frettled: do you think mt is a good choice for that anyway?
12:00 moritz_ (the current installation is more of a placeholder thing for me)
12:01 frettled moritz_: I'm not quite sure.  I'm allergic to blog software, content management systems, bulletin boards, etc.  (I work with a hosting provider and I see way too many security issues.)
12:01 moritz_ frettled: usually I'm too, but ... well... for whatever reasons I volunteered :(
12:02 frettled moritz_: *pat pat* there, there.
12:02 pmurias jnthn: how would using the same metaclass for roles and classes work?
12:03 jnthn pmurias: Well, the more interesting question is "how wouldn't it work"?
12:03 frettled moritz_: the way I see it: don't use any of these systems in a shared webhosting environment where they need to run with the same privileges as the web server process.  That excludes mod_perl, mod_php etc., unfortunately, unless Apache runs separate instances per user (ha, bloody ha).  suexec is our friend (just barely).  :)
12:03 jnthn I guess for smop, "we do something different in .^dispatch"?
12:03 jnthn But what else?
12:04 jnthn (my leaning is that they need to be separate, I'm just curious what other differences you ahve also run into)
12:04 frettled moritz_: and when that's in working order, I think it would be better politically (which is rather important) for Perl that a Perl blog site is hosted on Perl software.
12:05 frettled moritz_: but I can't recall whether there's relevant multi-user alternatives to MT :(
12:05 pmichaud ...sometimes I think we take "eat your own dog food" a little too far
12:05 moritz_ frettled: slashcode might be
12:05 frettled pmichaud: yes, sometimes
12:05 frettled moritz_: hmm, that's an option, sure.
12:05 frettled I keep forgetting _that_ mess. :)
12:05 moritz_ :)
12:05 pmichaud TMTOWTDI should include the possibility of other languages :-)
12:05 moritz_ a good reason for me to use a perl based solution is that I want to be able to hack it
12:06 moritz_ and perl is language I know best, by far.
12:06 frettled pmichaud: of course, but I'm thinking that publicity-wise, it looks good to use something made in the programming language you're promoting
12:06 pmichaud frettled: I don't disagree (more)
12:06 pmichaud but I do disagree it it means we end up with use.perl
12:06 frettled pmichaud: agreed
12:06 pmichaud *if it
12:07 pmurias jnthn: you need to do something different when composing in a role
12:07 frettled think of the blessed irony of phpBB moving from phplist to mailman for _announcements_.  (their own software, phpBB, supports notifications via e-mail, why didn't they use that?  too crappy?  woops.)
12:07 frettled moritz_: that's probably one of the best points
12:07 * moritz_ installs slash locally
12:08 frettled moritz_: maintainability is high on the wishlist, and sometimes, the upstream provider isn't quick enough at addressing security or stability issues :(
12:08 pmurias jnthn: smop doesn't have a ClassHOW yet
12:08 Matt-W frettled: well my experience of phpBB hasn't been good anyway
12:08 wayland76 I'm personally happy to say don't worry about eating our own dog food until Web.pm is 1.0
12:08 jnthn pmurias: I was looking at http://svn.pugscode.org/pugs​/v6/smop/src-s1p/ClassHOW.pm
12:08 frettled Matt-W: I'll refrain from ranting about the actual software here, I think I'm off-topic enough as is :)
12:08 jnthn pmurias: It's compose_role is wrong however.
12:08 Matt-W frettled: probably wise
12:09 jnthn pmurias: Since we really compose all roles together in some flattening operation when we compose the class as a whole.
12:09 frettled Matt-W: yup :D
12:09 jnthn So really compose_role just probably wants to add to a "todo list".
12:09 jnthn At least, that's how it is in Rakudo.
12:09 jnthn But that also makes me suspect the HOW API needs a "compose" method or something that we call at the end of the class definition.
12:09 moritz_ rakudo: role R { }; class A does R does R { }; say "alive"
12:09 p6eval rakudo e989e6: OUTPUT«alive␤»
12:09 jnthn That will do that overall composition.
12:09 moritz_ mildew: role R { }; class A does R does R { }; say "alive"
12:10 p6eval mildew: OUTPUT«Could not find variable ClassHOW in the lexical scope.␤»
12:11 pmurias jnthn: there are a few things wrong with that compose_role
12:11 jnthn But yes, I suspect there are enough differences that we need to separate them out, and what composition means is probably one of them.
12:11 jnthn Yes, there are. :-)
12:11 pmichaud moritz_: (use.perl story)  -- I'll see if I can ping brian about it tomorrow
12:11 pmurias but i don't think you need a compose methods
12:12 pmichaud (where "tomorrow" is actually "today" or "a few hours from now")
12:12 jnthn How do you plan to handle the overall composition of the class at the end of its declaration?
12:12 jnthn Surely that's something the metaclass should do?
12:12 pmurias what should the overall composition do?
12:12 jnthn Actually do the job of composing the roles.
12:13 pmurias we can handle role conflicts as they occur (without a final composition step)
12:13 jnthn The roles need to be considered as a whole.
12:13 jnthn I don't think you can.
12:13 pmurias example?
12:13 jnthn A role should never conflict with itself no matter how it's introduced for example.
12:14 jnthn I forget how it looked specifically, but I know we had bugs in Rakudo because of the step-by-step composition.
12:14 moritz_ diamond inheritance + roles was a problem, I think
12:14 moritz_ something that masak++ reported ;-)
12:15 jnthn Oh, yes, that was it.
12:15 jnthn But the key passage in S14 is this one:
12:15 jnthn A role may not inherit from a class, but may be composed of other
12:15 jnthn roles.  However, this "crony" composition is not evaluated until
12:15 jnthn class composition time.  This means that if two roles bring in the
12:15 jnthn same crony, there's no conflict--it's just as if the class pulled in
12:15 jnthn the crony role itself and the respective roles didn't.  A role may
12:15 jnthn So here it talks about class composition time.
12:19 pmurias .^compose_role might also be called at runtime/somewhat later during compilation
12:20 pmurias a .^compose_role could recompose everything
12:21 jnthn That feels like a lot of repeated effort. :-S
12:21 jnthn Plus if the spec talks about an overall class composition time, it feels to me like we'd want to have something that gets called at that time.
12:21 pmichaud time for me to grab a bit more sleep -- back in a few hours
12:22 jnthn OK!
12:22 Front_slash joined #perl6
12:23 pmurias jnthn: anyway you only need to do the composition once the class is used the first time
12:25 jnthn Nope
12:25 jnthn Because you're meant to be able to detect composition conflicts at compile time.
12:25 jnthn Roles may be composed into a class at compile time, in which case
12:25 jnthn you get automatic detection of conflicting methods.
12:25 jnthn (that from S14)
12:27 pmurias we could do the compositions at the end of compile time
12:27 moritz_ that's too late
12:27 moritz_ the class might get used later at compile time
12:27 jnthn Aye
12:28 jnthn Anyway, I think I'm going to give Rakudo's ClassHOW a .^compose where we can put this stuff. And we'll see how it goes, and where smop ends up, and work out something that suits both.
12:28 pmurias moritz_: you mean earlier?
12:29 moritz_ pmurias: later at compile time, but before end of compile time
12:29 pmurias moritz_: so the composition would be done earlier in that particular case
12:30 pmurias but recomposition after each .^compose_role seems the most sensible option to me
12:30 jnthn Our ideas of sensible seem to be non-overlapping. :-)
12:32 masak rakudo: say *.perl
12:32 p6eval rakudo e989e6: OUTPUT«!whatever_dispatch_helper␤»
12:32 jnthn eek.
12:32 masak !oh_noes
12:32 jnthn oh, I know why
12:32 masak yes, me too.
12:32 jnthn Oh, hmm, that's a rather interesting one.
12:32 masak and I think I reported it long ago.
12:32 masak but it still turns up now and then.
12:33 masak in my .perl calls.
12:33 frettled for fun and profit
12:33 jnthn I'm really not sure (a) whether it's a bug and (b) if it is, how to fix it.
12:33 masak sure it's a bug!
12:33 jnthn Oh, actually, I guess I know how to "fix" it. :-/
12:33 SmokeMachine joined #perl6
12:33 jnthn masak: Oh rly?
12:33 moritz_ masak: I'm not so sure
12:33 masak .perl should generate Perl code, no?
12:33 jnthn You'd never want to say
12:33 jnthn @things.map: *.perl;
12:33 lambdabot Unknown command, try @list
12:33 jnthn ?
12:33 pmurias_ joined #perl6
12:33 masak jnthn: fair enough.
12:33 jnthn my @serialized = @things.map: *.perl; # better example
12:34 moritz_ jnthn: I wanted to show the exact same code ;-)
12:34 masak rakudo: say [*,*].perl
12:34 p6eval rakudo e989e6: OUTPUT«[!whatever_dispatch_helper, !whatever_dispatch_helper]␤»
12:34 jnthn masak: I see your point, you just can't have your cake *and* eat it. ;-)
12:34 masak there you go, then.
12:34 masak bug.
12:34 moritz_ what's more buggy about this one?
12:34 masak it doesn't roundtrip.
12:34 pmurias_ jnthn: i haven't given that issue much thought (ruoso wrote ClassHOW) and i don't think much about things i'm not implementing yet
12:34 jnthn You can ever have "my @serialized = @things.map: *.perl;" work, or you can have *.perl eq '*'
12:34 moritz_ jnthn: maybe we can make *.something return a WhateverCode object that stringifies to *?
12:34 masak when possible, an eval should generate the same thing.
12:35 jnthn pmurias: Sure, no worries.
12:35 masak moritz_: yes, that's what I mean.
12:35 jnthn pmurias: I see the HOW API as a kind of discussion topic and something that various implementations will be able to come to agreement on over time.
12:36 jnthn pmurias: We're not *all* that far off, and in fact Rakudo is converging on it generally.
12:36 jnthn So I'll go ahead with how I think it should be, but once smop hits implementing role composition we can re-visit it if the way Rakudo has gone really doesn't work for you.
12:37 jnthn moritz_: Ooh, that's an interesting idea.
12:38 jnthn rakudo: class WhateverCode is also { method Str { '*' } }; say *.perl
12:38 p6eval rakudo e989e6: OUTPUT«!whatever_dispatch_helper␤»
12:38 jnthn aww
12:38 moritz_ rakudo: say (*.perl).WHAT
12:38 p6eval rakudo e989e6: OUTPUT«Block()␤»
12:38 jnthn Oh.
12:38 moritz_ jnthn: that's the problem.
12:39 jnthn moritz_: Aye, seems like it.
12:39 moritz_ rakudo: class NonExisting is also { }
12:39 p6eval rakudo e989e6: OUTPUT«Cannot use 'is also' on non-existent class NonExisting at line 2, near ""␤in Main (src/gen_setting.pm:1594)␤»
12:40 moritz_ so WhateverCode exists in Rakudo, but is not used in that case?
12:40 moritz_ rakudo: say (1+*).WHAT
12:40 jnthn Yeah, I know it exists 'cus I saw it earlier today in passing. :-/
12:40 p6eval rakudo e989e6: OUTPUT«WhateverCode()␤»
12:40 jnthn Oh
12:40 moritz_ ah, it's activated in that case.
12:40 jnthn Yeah, must be a missing re-bless.
12:40 payload joined #perl6
12:45 masak re-bless? is that what it sounds like?
12:45 masak rakudo: class A {}; class B {}; say A.bless(B.CREATE) ~~ A
12:45 p6eval rakudo e989e6: OUTPUT«0␤»
12:45 masak doesn't work.
12:45 moritz_ masak: it works on the parrot level
12:45 masak I see.
12:54 araujo joined #perl6
12:56 araujo morning
12:58 masak morning, araujo.
12:58 araujo hi masak
12:58 araujo :)
12:59 Matt-W masak: jnthn's metaclass thing of earlier makes use of reblessing. I found it rather scary to see the metaclass inheriting from Object, and then Object's metaclass being reblessed to be the metaclass which inherits from Object... HEAD ASPLODE. I think reblessing is something to be done sparingly.
13:00 masak Matt-W: still... I want to try it! :)
13:01 Matt-W masak: you would.
13:01 moritz_ welcome to the world of hald-circular meta object protocols ;-)
13:01 moritz_ s/hald/half/
13:01 * masak is fond of things that refer to themselves in various ways
13:02 perlygatekeeper joined #perl6
13:02 perlygatekeeper so where are we at?
13:02 moritz_ to quote chromatic - "I never metamodel not obsessed with reflection"
13:02 perlygatekeeper PerlJam!
13:02 jnthn Matt-W: Yeah, unfortunately what wsa in there wasn't quite right too. :-/
13:03 PerlJam perlygatekeeper
13:03 PerlJam welcome
13:03 jnthn Matt-W: Still trying to unpick it all.
13:03 masak perlygatekeeper: I'd say people are distributed over various places.
13:03 perlygatekeeper with perl6
13:03 masak perlygatekeeper: oh.
13:03 perlygatekeeper I want to start a perl7 movement
13:03 masak perlygatekeeper: we don't really know our position...
13:03 pugs_svn r27699 | pmurias++ | [re-smop] implement a hackish eval
13:03 moritz_ "somewhere in the middle"
13:03 masak perlygatekeeper: ...but we have quite a good grip on our momentum!
13:03 Matt-W jnthn: it is scary.
13:03 moritz_ perlygatekeeper: have fun :-)
13:04 perlygatekeeper don't change anything, just call it perl7.2.8
13:04 Matt-W masak: nice one
13:04 masak Matt-W: really old, though.
13:04 pmurias mildew: eval('say "hi"')
13:04 p6eval mildew: OUTPUT«Could not find variable &eval in the lexical scope.␤»
13:04 perlygatekeeper make it seems like it's all debujgged for year
13:04 perlygatekeeper s
13:04 Matt-W masak: yes but sometimes they're worth bringing out again
13:04 masak Matt-W: people rolled their eyes when Heisenberg tried it.
13:04 masak that's how old it is.
13:05 perlygatekeeper I'm tired of people saying that perl is OLD
13:05 masak oh, not Perl. the joke.
13:05 masak if qualifies as one.
13:05 jnthn lunch!
13:05 perlygatekeeper lunch?
13:05 perlygatekeeper where the heck are you?
13:05 * PerlJam listens to Tim O'Reilly at OSCON
13:05 moritz_ there's nothing about about old things
13:05 Matt-W mmm lunch
13:05 Matt-W bit late aren't you jnthn?
13:05 Matt-W See his dedication to Rakudo
13:06 PerlJam perlygatekeeper: he's way over to the right.
13:06 perlygatekeeper ya think
13:06 perlygatekeeper right over the pond, no?
13:06 Matt-W perlygatekeeper: one thing you get used to in here, we're from all over the world.
13:06 perlygatekeeper really?
13:06 Matt-W yes
13:06 perlygatekeeper you're not all from Ohio and New York
13:06 perlygatekeeper damn
13:06 PerlJam perlygatekeeper: some of us are from all over Texas  ;)
13:06 perlygatekeeper oooo
13:07 masak perlygatekeeper: hello from Uppsala, Sweden.
13:07 Matt-W That has to be one of the best placenames ever
13:07 perlygatekeeper Sanata's "into the Night" is on my iPhone
13:07 perlygatekeeper I LOVE this song
13:07 perlygatekeeper hey masak
13:07 perlygatekeeper hello from columbus oh, usa
13:07 perlygatekeeper we are not all evil
13:08 masak perlygatekeeper: glad to hear it.
13:08 perlygatekeeper we had a 8-year failure of democracy
13:08 masak that explains a lot.
13:09 masak perlygatekeeper: so, have you tried Rakudo yet?
13:10 jnthn Matt-W: heh, well, I didn't get up from around 11:15 today
13:10 masak perlygatekeeper: it's just waiting for you to pick it up, so it can inundate you with awesome!
13:10 frettled perlygatekeeper: and hello from Oslo, Norway.
13:10 Matt-W jnthn: oh so not too bad then
13:10 frettled It's heating up again, I think, the polar bears are migrating north.
13:10 Matt-W just unusual to see you having lunch after me :)
13:11 Matt-W perlygatekeeper: and hello from Nottingham, United Kingdom, where they've turned the market square into a 'beach' and we're suffering from a spate of short, sharp and relatively unpredictable heavy rainstorms.
13:11 frettled Matt-W: the usual weather, then ;)
13:12 Matt-W frettled: no, we don't usually have these rainstorms for so long
13:12 Matt-W it usually just rains all the time
13:12 wayland76 perlygatekeeper: Hello from Australia :)
13:12 moritz_ and from Germany
13:12 * jnthn waves to perlygatekeeper from Bratislava
13:13 moritz_ we ususally also have Israel and the US available
13:13 wayland76 perlygatekeeper: It's longer than a years
13:13 wayland76 s/a/eight/
13:13 * masak imagines perlygatekeeper putting pins on a world map
13:13 frettled Matt-W: ah, yes, good point there.
13:13 moritz_ that's actually a good idea
13:13 moritz_ anybody wants to make a google maps mashups with Perl 6 developers?
13:13 wayland76 As someone said, "I've discovered a security hole in democracy.  Stupid people!  Large masses of stupid people!" :)
13:14 Matt-W wayland76: That is the flaw nobody's ever been able to overcome
13:14 wayland76 Well, it's pretty much bedtime here.
13:14 wayland76 Matt-W: Yes, but the education system could be so much better :)
13:14 moritz_ it could be overcome by giving intelligent/knowledgabe people more voting power
13:14 wayland76 At least here, anyway
13:15 Matt-W wayland76: here too
13:15 wayland76 moritz_: It sounds good in theory, but I don't trust that idea either :)
13:15 masak me neither.
13:15 moritz_ neither do I
13:15 wayland76 Matt-W: England, right?
13:15 Matt-W how come Sweden can produce someone like masak, who speaks superb English, while the UK can barely produce people who can ask for a beer in another language
13:15 frettled Matt-W: luck.
13:16 Matt-W motivation, probably
13:16 frettled Scandinavians are bred for luck.
13:16 jnthn Matt-W: Probably attitudes.
13:16 Matt-W so much international culture is now in English
13:16 wayland76 Oh good, I'm 1/4 Scandinavian
13:16 moritz_ education, motivation and attitude
13:16 wayland76 And part Irish too :)
13:16 jnthn And education for sure.
13:16 Matt-W so a lot of people don't feel the need to learn anything else
13:16 frettled moritz_: what's the google maps mashup you want to make?
13:16 frettled moritz_: and wouldn't it be interesting to do stuff with OSM?
13:16 frettled and openlayers?
13:16 wayland76 no, probably not attitude as much as culture
13:17 Matt-W and to be honest, if I didn't have any German I wouldn't have any problems in day to day life... except that Wise Guys songs wouldn't be funny
13:17 wayland76 I was brought up without a TV, which probably explains some things :)
13:17 masak Matt-W: as a Swede, I've aspired to learn English for as long as I can remember. people in the UK don't have an obvious non-native international language that they realise at an early age that they have to learn.
13:17 jnthn masak: Ay, true.
13:17 wayland76 I always wanted to learn French
13:17 wayland76 But I lost interest after year 10
13:18 frettled haha
13:18 wayland76 But I still know bits and pieces
13:18 masak learn Esperanto, and feel like a genious for picking up a language so quickly!
13:18 * jnthn loves learning languages, but isn't good at any of them.
13:18 frettled jnthn: �jack of all trades, master of none� syndrome?
13:18 Matt-W masak: this is true, we're told about the number of people who speak Mandarin and Spanish, but there is no reason to speak Mandarin or Spanish for most of us
13:18 masak Matt-W: 对
13:18 jnthn frettled: Very much like that, I guess.
13:18 jnthn I've really love to get fluent in a foreign language.
13:18 Matt-W French is the traditional language to learn
13:19 frettled Matt-W: there might be some motivation to learn pidgin Portuguese before going to YAPC::EU 2009
13:19 frettled jnthn: me, too.
13:19 Matt-W frettled: unfortunately I'm not going to YAPC::EU
13:19 Matt-W but yes, there would be motivation there
13:19 wayland76 I wanted to learn French because it wasn't dead, but was still good for the classics.  2 birds with one stone :)
13:19 Matt-W I did learn a little Swedish when I was there
13:19 Matt-W unfortunately because I was staying with Swedish friends, most of it was rude (and virtually everyone there seems to speak perfect English anyway)
13:19 frettled jnthn: I'm closest with English, but the dialects, branches and cultural references make it rather difficult.  I suspect the latter is the greater barrier for most languages.
13:19 moritz_ going to YAPC::EU would be good motivation for learning pidgin Portuguese ;-)
13:20 jnthn I know some Swedish!
13:20 jnthn "bra slut!"
13:20 masak :)
13:20 moritz_ frettled: and that from a Norwegian? ;-)
13:20 Matt-W moritz_: if you want to pay, I'll come :)
13:20 frettled which doesn't mean �good slut�
13:20 jnthn slut = end
13:20 frettled moritz_: :D
13:20 jnthn So I think together it's like, a good ending or something.
13:20 masak aye.
13:21 moritz_ and pronounced differently from the english "slut"
13:21 wayland76 It reminds me of the Irish town called "Faughan" (sp?)
13:21 Matt-W The only thing I can remember is rude, and I can't spell it
13:21 masak jnthn: here's another one in the same vein: 'fart-kontroll'.
13:21 moritz_ (more like the german ü, I think)
13:21 frettled jnthn: here's another one for you: �rolig� means different things in Norwegian and Swedish; but what?  :D
13:21 wayland76 The "gh" is pronounced as a sort of "h" sound
13:21 masak jnthn: ('fart' is Swedish for 'speed')
13:21 frettled and Norwegian.
13:22 Matt-W wayland76: gaelic spelling is really odd. Weirder than Welsh.
13:22 wayland76 My Dad used to buy things from a German company called "SICK"
13:22 jnthn masak: Ah, OK. I was wondering if it was related to the German fhart.
13:22 Matt-W or maybe that's just because I learned the basic Welsh pronunciation a few years back
13:22 masak jnthn: very likely.
13:22 frettled As our tame rally driver is rumored to have said: �it's not the fart (speed) that kills you, it's the smell (bang)�
13:22 wayland76 "If you want to get better, get SICK" :)
13:23 wayland76 Well, Welsh is easier once you realise that w and y are vowels
13:23 * araujo reminds he was told once that "hola" means something like "a petition to get naked" in Romanian
13:23 wayland76 And I agree about Gaelic.  aoibhell = ee-VELL
13:23 jnthn ...that's some interesting huffmanization if so...
13:24 Matt-W wayland76: yes, and the y's not so bad when you remember it can sometimes be that same vowel in English (assuming you're an English speaker of course)
13:24 Matt-W wayland76: of course then there's the doubled consonants
13:24 frettled ghoti!
13:24 wayland76 I can say Aberystwyth, and Llangloffan (on the second try :) )
13:24 * masak hasn't had ghoti in some time now
13:25 * frettled neither.
13:25 frettled It's been six days, I think.
13:25 wayland76 My main problem with Welsh is that I learned it from a book that teaches a pronunciation that may be from the time of King Arthur :)
13:25 Chillance joined #perl6
13:26 wayland76 Gaelic pronunciation/spelling is nearly as bad as English :)
13:26 frettled but just
13:26 frettled So, is Perl 6 to Perl 5 what Gaelic is to British English?
13:26 frettled ;)
13:27 masak I've gotten used to most of the idiosyncracies of English spelling and pronunciation. in a way, that scares me.
13:27 Matt-W you cannot compare Perl with English
13:27 dalek grok: 4ca3522 | (Hinrik Örn Sigurðsson)++ |  (3 files):
13:27 dalek grok: Rename -l/--only option to -l/--locate
13:27 dalek grok: review: http://github.com/hinrik/grok/commit/4c​a352235e29561ce6449c72fe3e1acc23efb1d3
13:27 dalek grok: 625d117 | (Hinrik Örn Sigurðsson)++ |  (10 files):
13:27 dalek grok: Move parsers to App::Grok::Parser::*
13:27 dalek grok: review: http://github.com/hinrik/grok/commit/62​5d117d216db17cded330ac5bf11dab31ca2c13
13:27 dalek grok: b007a4b | (Hinrik Örn Sigurðsson)++ |  (10 files):
13:27 Matt-W Perl is much better than English
13:27 dalek grok: Move all resource backends to App::Grok::Resource::*
13:27 dalek grok: review: http://github.com/hinrik/grok/commit/b0​07a4b19394b61cf629e72479036c3e548cfa82
13:27 dalek grok: dd7f247 | (Hinrik Örn Sigurðsson)++ | :
13:27 dalek grok: Merge branch 'refactor'
13:27 dalek grok: Conflicts:
13:27 dalek grok: Changes
13:27 dalek grok: review: http://github.com/hinrik/grok/commit/dd​7f247b9876715ca032d08fd7d6ef89af3a6cac
13:27 dalek grok: 0237272 | (Hinrik Örn Sigurðsson)++ |  (9 files):
13:27 dalek grok: Bump version to 0.16_01
13:27 dalek grok: review: http://github.com/hinrik/grok/commit/02​37272c8a8ac53486de137e783537ef8c776e9a
13:27 frettled Hmm.  Is there any particular reason _not_ to /ignore dalek, I wonder.
13:28 masak frettled: rakudo commits.
13:28 skids joined #perl6
13:28 wayland76 I think the perl5/perl6 relationship is more like German/Esperanto (neither of which I speak)
13:29 wayland76 frettled: They might exterminate you :)
13:29 frettled wayland76: if I don't see them, they're not there!  ;)
13:29 frettled masak: aha.  In that case, I think I'll ignore dalek for now, and remove it from the ignore list if I'm suddenly interested in that.  :)
13:30 wayland76 frettled: I think you need to change your nick to "ostrich" to enable that feature :)
13:30 masak frettled: what, you're not interested in rakudo commits?
13:30 wayland76 He's obviously commitment-phobic :)
13:30 frettled masak: not at this point in time.
13:30 masak frettled: that's one of the best features of this channel, besides all the great people!
13:31 wayland76 masak: Not everyone follows rakudo in quite the depth that you do :)
13:31 masak no, of course not.
13:31 wayland76 And I definitely prefer the people :)
13:31 masak but I still thought they had a passing interest...
13:31 Matt-W the people are better, that's for sure
13:31 Exodist joined #perl6
13:31 Matt-W but I like the rakudo commits
13:31 Matt-W they help me learn how rakudo works
13:31 frettled I do, however pay (more) attention to the responses from rakudobot etc.
13:32 Matt-W of course, I could just follow them on github
13:32 frettled Matt-W: just so :)
13:32 wayland76 masak: Well, I don't even understand that last set of commits
13:32 masak wayland76: I see.
13:32 wayland76 the only joy I get from them is reading Hinrik's name -- I don't often get to read non-English letters :)
13:33 jnthn Mmm...that was a good cheese salad.
13:33 wayland76 I understand them in a general sense, ie. "I moved some files around and did a refactor", but that's about my limit :)
13:33 masak wayland76: I, too, think that dalek could be a little more quiet when reporting a lot of commits from the same author. maybe refer to a nopaste with all the info or something.
13:33 * wayland76 googles cheese salad
13:34 wayland76 Well, but the autarch commit on Temporal was good
13:34 wayland76 Although that may not've been dalek
13:34 wayland76 As far as I'm concerned, though, dalek can feel free to keep going; as long as it serves pmichaud and jnthn, I'm happy :)
13:35 wayland76 I was hoping that cheese salad would be an assortment of cheeses, but no, it involves vegetables :)
13:36 masak no, I think dalek should strive to minimize noise.
13:36 jnthn wayland76: It's just salad with cheese. :-)
13:36 masak we should have high standards for our bots, that's important for the atmosphere on the channel.
13:36 jnthn In my case.
13:36 wayland76 masak: I'm fine with improvements, as long as pmichaud and jnthn are happy :)
13:36 masak oh, of course.
13:36 wayland76 jnthn: Yeah, I've had cheese salad before, I just didn't know what it was called
13:37 jnthn masak: Let's invite purl here!!
13:37 jnthn ;-)
13:37 BinGOs spleen scream.
13:37 frettled o_O
13:37 literal 13:36:39 < masak> oh, of course.
13:37 masak jnthn: to make us realise how lucky we were before...?
13:37 literal oops, bad paste
13:37 wayland76 I don't like purl, because "purl: help" doesn't tell you what the commands are :)
13:37 masak purl is all but helpful.
13:38 BinGOs You are supposed to instinctively know the commands.
13:38 jnthn purl also randomly insults people. :-)
13:38 jnthn Yes, I don't miss purl in the slightest on #perl6
13:38 moritz_ and non-people too
13:39 wayland76 Well, maybe.  But I tried "purl: @karma", and it just said "huh?"
13:39 moritz_ and purl usually doesn't care if you address her, or nobody, or somebody else
13:39 wayland76 @much like lambdabot?
13:39 lambdabot Unknown command, try @list
13:40 moritz_ well, at least lambdabot only cares about ^@
13:40 jnthn > too
13:40 lambdabot Not in scope: `too'
13:40 jnthn ! maybe?
13:40 wayland76 @a = (1, 2, 3);
13:40 lambdabot Maybe you meant: activity activity-full admin all-dicts arr ask . ? @ v
13:41 masak @@
13:41 wayland76 I think I've had an idea
13:41 wayland76 lambdabot: @(*&Y^%!^!
13:41 lambdabot Unknown command, try @list
13:41 wayland76 Well, at least it responds appropriately to swearing :)
13:42 wayland76 Anyway, bedtime.  afk &
13:45 jnthn night!
13:45 dalek grok: c5e12a4 | (Hinrik Örn Sigurðsson)++ | README:
13:45 dalek grok: Update the README
13:45 dalek grok: review: http://github.com/hinrik/grok/commit/c5​e12a47cc7f892105abc1895b60530f38eaaecf
13:45 dalek grok: 47a9d9b | (Hinrik Örn Sigurðsson)++ | lib/App/Grok/Resource/Functions.pm:
13:45 dalek grok: Remove leftover debugging statement
13:45 dalek grok: review: http://github.com/hinrik/grok/commit/47​a9d9bbfd608be99995ba3d8282726d426058e3
13:46 jnthn hah, it's getting hot again
13:47 * jnthn had hoped last night's storm that cooled things down would keep things cool
13:47 masak jnthn: you haven't had any rain?
13:47 masak oh, ok.
13:47 jnthn Yeah, a bit last night
13:47 jnthn It was lovely and cool afterwards.
13:47 jnthn Yesterday it hit 35ish here.
13:47 masak aye. bit of the same situation here yesterday. it was stifling until the rain came.
13:47 jnthn Which is a good 15C over the kind of temperature I like.
13:48 Matt-W jnthn: sounds like you like the same kind of temperature I do
13:48 jnthn masak: How hot is Sweden in summer?
13:48 masak jnthn: Sweden is long, north-south.
13:48 Matt-W The bit I went to was really hot
13:48 jnthn masak: The bit that people live in. ;-)
13:48 Matt-W and I went in April
13:48 jnthn Uff.
13:49 jnthn masak: I thought anything about Uppsala didn't count anyway? ;-)
13:49 masak jnthn: this week, the wearher report says between 16 and 24 degrees. that sounds fairly typical.
13:49 jnthn That's quite nice.
13:49 Matt-W that sounds nice
13:49 masak though 16 is definitely because of the rain.
13:49 hoelzro joined #perl6
13:50 masak I guess it can run up to 30 sometimes. seldom over 35, though.
13:51 Matt-W The problem we get in England is that when it gets up to the high 20s it tends to be very humid at the same time
13:51 [particle] hottest place i've been in is 44C
13:51 Matt-W And that's highly unpleasant
13:51 frettled The temperature record for all of Norway is 35.6 �C
13:52 Su-Shee I sum this up as "I want winter." ;)
13:52 Matt-W I like autumn
13:52 [particle] fly south :)
13:52 jnthn Su-Shee: That was actually (though not in English) my Facebook status yesterday. :-)
13:53 frettled Google maps location of Nesbyen in Norway: http://tinyurl.com/Nesbyen
13:53 jnthn Ho hum. Winter isn't so far off. :-)
13:53 Su-Shee jnthn: pretty much _everything_ I do and like isn't compatible with heat. from walking the city to making chocolate truffles.
13:54 masak well, you can _make_ the truffles...
13:54 frettled Su-Shee: and where do you live? :D
13:54 Su-Shee berlin.
13:54 frettled masak: if it's too warm, not really :)
13:54 moritz_ chocolate truff... don't you want to host the next German Perl Workshop?
13:55 frettled moritz_: ...in the autumn, I hear autumn is nice in Berlin (well, it was okay last year)
13:55 Su-Shee moritz_: already done that years ago and even if so: no, it's no fun to make truffles for a hundred people. ;))
13:55 moritz_ Su-Shee: I'm not a hundred people ;-)
13:56 moritz_ Su-Shee: I think the last GPW in Berlin was before I became involved with the Perl community
13:56 jnthn frettled: Heh, I've probably been through Nesbyen.
13:56 Su-Shee autumn is exceptionally nice in berlin. usally from end of august until mid of october - deep blue sky, fresh breeze, golden sun light and NO HEAT ANYMORE
13:56 pmurias frettled: autumn is nice? you mean you like autumnish weather?
13:56 Su-Shee moritz_: I just know it being in there somewhere in this small town..
13:56 frettled jnthn: \o/
13:56 frettled pmurias: it's not bad in Berlin, at least.
13:56 jnthn frettled: Seems the train like Oslo - Bergen goes through there.
13:57 Su-Shee moritz_: but yes, I can feed one person with chocolate truffles. ;)
13:57 jnthn s/like/line/
13:57 frettled jnthn: yep
13:57 moritz_ :)
13:57 Matt-W Berlin's somewhere I should probably visit
13:57 Su-Shee Matt-W: avoid july.
13:58 frettled Hmm.  I've forgotten whether I put up last year's vacation pictures.
13:58 dalek grok: 65c15e2 | (Hinrik Örn Sigurðsson)++ |  (2 files):
13:58 dalek grok: Recommend Win32::Console::ANSI in Makefile.PL
13:58 dalek grok: review: http://github.com/hinrik/grok/commit/65​c15e227a9ccdd9758961ac387b7d4039bbdc1d
13:58 Su-Shee Matt-W: and if you hate "grey", avoid feburary either. ;)
13:59 frettled No, darnit, only from the army museum in Paris.  Grr.
13:59 Matt-W Su-Shee: in July I like to stay at home and pretend it isn't happening
13:59 Su-Shee Matt-W: that's what I'm trying to do these days..
13:59 moritz_ bah, all this summer bashing
13:59 frettled Visit Longyearbyen (Svalbard), summer (as you know it) isn't happening there.
13:59 moritz_ it's not so bad IMHO
13:59 frettled not anytime soon, anyway.
14:00 Matt-W I can cope until the air con at work breaks down
14:00 jnthn Longyearbyen would be an awesome place to visit.
14:00 Matt-W which it's done five times this year so far
14:00 Matt-W the building simply doesn't work without it
14:00 Su-Shee "what air conditioning?" ;)
14:00 Matt-W at least they finally figured out why it breaks
14:00 frettled moritz_: I agree; the lines at Six Flags Magic Mountain (Valencia, CA, USA) are much shorter then.
14:00 Matt-W it's the typical absurd reason - somebody didn't put in a big enough power cable for it
14:01 Matt-W personally I'd prefer a building designed to function without air con, but...
14:01 frettled jnthn: If we find a millionaire sponsor, we could do a YAPC::Svalbard or something.
14:02 Su-Shee Matt-W: old administration buildings are great. thick, massive walls to intimidate every citizen.. ;)
14:04 Matt-W Su-Shee: we don't really have those here
14:05 alanhaggai joined #perl6
14:06 ruoso joined #perl6
14:07 KyleHa joined #perl6
14:07 Su-Shee Matt-W: prussian heritage. ;)
14:08 ruoso Hello!
14:08 * ruoso very absent in the last weeks... $dayjob consuming all the time
14:15 pmurias ruoso: hi!
14:15 szabgab joined #perl6
14:15 ruoso hi pmurias
14:15 pmurias ruoso: checkout out the performance improvements ;)
14:16 ruoso pmurias, svn updat'ing atm
14:17 dalek grok: e0fa86e | (Hinrik Örn Sigurðsson)++ |  (4 files):
14:17 dalek grok: Die if the target is not recognized
14:17 dalek grok: review: http://github.com/hinrik/grok/commit/e0​fa86ebb054afc7943d0610b23acd2ef7cf96e3
14:24 pugs_svn r27700 | hinrik++ | [S32/Containers] Fix =item line for C<comb>
14:24 frettled szabgab: \o/
14:25 ruoso pmurias, sorry for not being able to backlog right now... could you summarize the changes?
14:25 pmurias np. i rewrote the lexical pad
14:25 pmurias and added caching to punning
14:26 FurnaceBoy joined #perl6
14:26 pmurias ruoso: do you think it's fast enough?
14:27 * ruoso still testing
14:28 mj41 joined #perl6
14:29 pugs_svn r27701 | masak++ | [S06] fixed some spelling and consistency stuff
14:30 pmurias mildew: eval('say "hi"')
14:30 p6eval mildew: OUTPUT«Can't locate Coro.pm in @INC (@INC contains: ../re-smop/SMOP/blib/lib/ ../re-smop/SMOP/blib/arch ../re-smop/SMOP/blib/lib/ ../re-smop/SMOP/blib/arch /etc/perl /usr/local/lib/perl/5.10.0 /usr/local/share/perl/5.10.0 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/…
14:30 pmurias :(
14:30 moritz_ any particular version required?
14:31 pmurias don't think so
14:31 pugs_svn r27702 | pmurias++ | [t] add block
14:31 ruoso pmurias, cool it's considerably faster
14:31 pugs_svn r27703 | pmurias++ | [re-smop] add tests for eval
14:31 pugs_svn r27704 | pmurias++ | [re-smop] added while
14:32 pmurias ruoso: do you think it's worth optimising it more or is it better to add more features?
14:32 ruoso pmurias, I think it's fast enough now...
14:33 ruoso pmurias, we can move on implementing featuers
14:33 ruoso and I think we need a better definition on the S11 issue by TimToady now...
14:34 ruoso I'd consider proper module loading to be our next target
14:35 moritz_ mildew: eval('say "hi"')
14:36 p6eval mildew: OUTPUT«say "hi"␤hi␤»
14:36 moritz_ debugging output left in? ;-)
14:36 ruoso looks like so
14:36 pmurias moritz_: fixed in HEAD
14:37 pmurias mildew: my $foo=123;eval('say $foo');
14:37 szabgab joined #perl6
14:37 p6eval mildew: OUTPUT«Potential difficulties:␤  Variable $foo is not predeclared at /tmp/1mOioXyrsW line 1:␤------> [32msay $foo[31m[0m␤say $foo␤123␤»
14:37 pmurias ruoso: eval is really slow as it runs mildew
14:38 ruoso pmurias, that's fine
14:38 moritz_ I hope we don't need string eval all that often ;-)
14:38 masak I still need it for working around regexes, but I guess that's not what you meant.
14:38 ruoso mildew: multi infix:<abc> ($a, $b) { $a ~ ' abc ' ~ $b }; say 1 abc 2;
14:39 p6eval mildew: OUTPUT«1 abc 2␤»
14:39 ruoso :D
14:39 pmurias ruoso: on other important thing is that i started using fudge
14:39 ruoso cool... that's worth a blog post ;)
14:39 moritz_ pmurias: do you also have a list of test files to run?
14:40 nihiliad joined #perl6
14:40 pmurias TESTS in v6/re-mildew
14:41 moritz_ in rakudo there's a rather handy script which runs all of the tests that are not yet in t/spectest.data and gives a nice overview which passes how many tests
14:41 moritz_ tools/update_passing_test_data.pl
14:41 moritz_ it should be pretty easy to adapt to your needs
14:41 pmurias moritz_: how does it deal with stuff which fails to parse?
14:42 moritz_ or we can move it into the t/spec/tools/ or so, and generalize it so that it works for both
14:42 moritz_ pmurias: it reports them as 0 pass
14:42 moritz_ pmurias: if you use STD.pm that rarely happens ;-)
14:42 moritz_ or to be more precise it doesn't report them, currently it only reports those that have at least 1 pass
14:43 pmurias we can parse everything but the compiler doesn't recognise most constructs
14:44 moritz_ the utility of that script will grow when you implement more constructs ;-)
14:50 moritz_ is there a good reason to build Test.pir with parrot perl6.pbc instead of the fakexuctable?
14:51 pmurias ruoso: so how do we procced with module loading?
14:51 jnthn moritz_: Suspect it may just be history.
14:51 ruoso pmurias, we need a proper decision by TimToady
14:52 ruoso pmurias, on how S11 will look like
14:53 masak moritz_: there used to be good reasons, but I think they disappeared (for me) around New Year or so.
14:58 pmurias ruoso: and what should i work on before the decision?
14:59 ruoso pmurias, take a look on what's missing for src-s1p/ClassHOW.pm to work
15:00 pugs_svn r27705 | pmurias++ | [re-smop] add a fuged ../../t/spec/S04-statements/while.t to TESTS
15:00 meteorjay joined #perl6
15:01 pmurias shopping&
15:01 moritz_ YaY, mildew is using the spectests!
15:02 pugs_svn r27706 | moritz++ | [t/spec] test descriptions for die.t, and two vim modelines
15:02 ruoso YaY indeed ;)
15:02 masak so that makes rakudo, pugs, mildew... yes?
15:03 moritz_ not only will that make me feel more important, it'll also help us to keep the test suite implementation agnostic
15:03 moritz_ masak: elf used to use the test suite in some crude way (storing the result and diff'ing the results of different runs)
15:03 explorer joined #perl6
15:04 TimToady well, I think now mildew parses more of the test suite than any other implementation :)
15:04 moritz_ ;-)
15:04 szabgab joined #perl6
15:05 masak mildew++
15:05 zamolxes joined #perl6
15:05 jnthn Next step: s/r/s/ :-)
15:07 masak should be trivial. it's only one letter.
15:08 masak only one bit, actually.
15:08 TimToady commuting & # oscon
15:09 moritz_ rakudo: say ('r' ~& 's').perl
15:09 p6eval rakudo e989e6: OUTPUT«"\x[72]"␤»
15:09 moritz_ rakudo: say ('r' ~& 's')
15:09 p6eval rakudo e989e6: OUTPUT«r␤»
15:09 moritz_ rakudo: say ('r' ~s 's')
15:09 p6eval rakudo e989e6: OUTPUT«s/// not implemented, try .subst as workaround at line 2, near ")"␤in Main (src/gen_setting.pm:3343)␤»
15:09 moritz_ rakudo: say ('r' ~| 's')
15:09 p6eval rakudo e989e6: OUTPUT«s␤»
15:09 moritz_ rakudo: say ('r' ~^ 's').perl
15:09 p6eval rakudo e989e6: OUTPUT«"\x[1]"␤»
15:10 moritz_ rakudo: say s.perl
15:10 p6eval rakudo e989e6: OUTPUT«Could not find non-existent sub s␤»
15:10 moritz_ rakudo: say 's'.perl
15:10 p6eval rakudo e989e6: OUTPUT«"s"␤»
15:10 moritz_ rakudo: say ('r' ~& 's').PARROT
15:10 p6eval rakudo e989e6: OUTPUT«String␤»
15:10 moritz_ rakudo: say 's'.PARROT
15:10 p6eval rakudo e989e6: OUTPUT«Str␤»
15:11 moritz_ I wonder if we can find a bug related to that.
15:11 masak try doing .trans on both.
15:11 moritz_ rakudo: say ('r' ~& 's').subst(/s/, 't')
15:11 p6eval rakudo e989e6: OUTPUT«r␤»
15:11 moritz_ rakudo: say ('r' ~& 's').subst(/r/, 't')
15:11 p6eval rakudo e989e6: OUTPUT«t␤»
15:12 moritz_ rakudo: say ('r' ~& 's').uc.subst(/R/, 't')
15:12 p6eval rakudo e989e6: OUTPUT«Can't upcase binary data␤in method Any::uc (src/gen_setting.pm:579)␤called from Main (/tmp/Wt4LTpvuxN:2)␤»
15:12 masak ooh.
15:12 moritz_ ooh indeed
15:12 moritz_ it means that this much closer to a Buf than to Str
15:12 moritz_ and might be exactly what we want for Buf ;-)
15:12 masak excellent.
15:13 masak anyway,
15:13 masak rakudo: "".trans()
15:13 p6eval rakudo e989e6:  ( no output )
15:13 masak rakudo: ("r" ~& "s").trans()
15:13 p6eval rakudo e989e6: OUTPUT«too few arguments passed (1) - 3 params expected␤in Main (/tmp/E1rA8Ivaaa:2)␤»
15:13 masak I had a feeling that'd blow up. :)
15:13 moritz_ :)
15:14 masak man, I've been doing this a long time. I know all the weak points... :)
15:14 masak anyway, that's a bug.
15:14 * masak submits
15:14 moritz_ right, .trans is aslo defined on parrot strings
15:14 masak but differently.
15:15 moritz_ so it'll pick up the wrong candidate if it's not a Perl 6 Str
15:15 moritz_ right
15:21 donaldh joined #perl6
15:28 masak is there a non-eval way to create a class based on the class name in $var?
15:28 moritz_ NYI presumably
15:28 moritz_ I'm sure the meta class provides a method for that
15:29 masak the meta class of what? Str?
15:29 moritz_ the common meta class of Perl 6 classes
15:29 moritz_ P6meta in Rakudo
15:29 jnthn ClassHOW
15:29 moritz_ or that, yes :)
15:30 masak rakudo: class A {}; my $var = A; my $a = $var.new(); say $a
15:30 p6eval rakudo e989e6: OUTPUT«A()<0xb686dc80>␤»
15:30 masak \o/
15:30 dalek grok: 2f9635a | (Hinrik Örn Sigurðsson)++ |  (2 files):
15:30 dalek grok: Fix S32 parsing bug
15:30 dalek grok: review: http://github.com/hinrik/grok/commit/2f​9635a8669f32aad51da62c08de3058be185080
15:30 dalek grok: 0bc215d | (Hinrik Örn Sigurðsson)++ |  (4 files):
15:30 dalek grok: Fixed problem with -l/--locate, added test for it
15:30 dalek grok: review: http://github.com/hinrik/grok/commit/0b​c215dba1094c7cee13587cf36da565913e91bd
15:30 dalek grok: c06849e | (Hinrik Örn Sigurðsson)++ |  (4 files):
15:30 dalek grok: Look up the man pages. Depend on Perl6::Doc 0.42
15:30 dalek grok: review: http://github.com/hinrik/grok/commit/c0​6849efcf54b3b957c1e0332bcc2b74c25f45e8
15:31 dalek grok: 8cf5c68 | (Hinrik Örn Sigurðsson)++ |  (9 files):
15:31 dalek grok: Bump version to 0.16_02
15:31 dalek grok: review: http://github.com/hinrik/grok/commit/8c​f5c68dd464b51768ae55e55bcf63bd8061a846
15:31 dalek grok: 3454ac2 | (Hinrik Örn Sigurðsson)++ | Changes:
15:31 dalek grok: Make the Changes file historically accurate
15:31 dalek grok: review: http://github.com/hinrik/grok/commit/34​54ac272fcdf32adc0ef6e95e8051a9d4080850
15:31 dakkar masak: that's not "the class name in $var", that's "the class object in $var"
15:31 masak dakkar: indeed.
15:31 masak dakkar: I managed to change the objective, making the problem solvable.
15:31 dakkar and using the class object is much cleaner
15:32 masak yes.
15:32 moritz_ rakudo: class A { }; my $x = A; $x.new.perl()
15:32 p6eval rakudo e989e6:  ( no output )
15:32 masak sometimes one-pass parsing annoys me to no end.
15:32 moritz_ rakudo: class A { }; my $x = A; say $x.new.perl()
15:32 p6eval rakudo e989e6: OUTPUT«A.new()␤»
15:32 moritz_ masak: multi pass parsing is even more annoying in the long run ;-)
15:32 masak I think it's very restrictive that you can't refer to a class name before it's been declared.
15:33 masak it's unlike many other languages I'm familiar with.
15:33 jnthn You can always declare a stub and define it later.
15:33 masak true.
15:34 masak in other circumstances, that's called 'cruft' or 'boilerplate'.
15:34 masak code required to cater to a language's oddities.
15:36 * jnthn has spent all afternoon grappling with something he expected to be simple. :-/
15:37 szabgab joined #perl6
15:45 sparc joined #perl6
15:47 szabgab joined #perl6
15:53 dalek rakudo: ca2e4f1 | moritz++ | t/spectest.data:
15:53 dalek rakudo: [t/spectest.data] 5 more passing test files
15:53 dalek rakudo: How did we miss those? there was no (new) fudging required to make them pass.
15:53 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/c​a2e4f1f66a1f8ee85125fc7062d4940df1ea9f8
15:54 jnthn \o/
15:54 jnthn HOw many new tests is that?
15:54 jnthn I'm sure we've run some of those before now.
15:55 moritz_ in the order of 100 perhaps
15:55 masak oh well. it'll make the next release seem all the more impressive.
15:56 szabgab joined #perl6
15:56 moritz_ I've grepped `git log -p t/spectest.data` for identity.t and found no prior mention
15:57 moritz_ same for null.t (that seems new)
15:57 moritz_ same for die.t (not so new)
15:57 moritz_ same for autoincrement-range
15:58 moritz_ (but that's a new file too, KyleHa++)
16:00 jnthn Heh, wow.
16:02 Jedai joined #perl6
16:03 kane___ joined #perl6
16:06 dalek rakudo: f78cf0b | jnthn++ | src/ (3 files):
16:06 dalek rakudo: This gets us creating the metaclass right at the start of class creation and operating on it. We dispatch traits on it also, which many of the fixes in here are helping towards. We also make mentions of ClassHOW work more properly, by having it registered, so now it's a bit less special. For now, there's more mess, but this is mostly an enabling refactor for more cleanups.
16:06 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/f​78cf0be1d194dd81b72b97fc50c21c824abf385
16:06 dalek rakudo: 546c253 | jnthn++ | :
16:06 dalek rakudo: Merge branch 'master' of git@github.com:rakudo/rakudo
16:06 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/5​46c25380e9c7a3a44265a0f71280527ca1e7b36
16:07 moritz_ when I run 'perl tools/test_summary.pl' I get a usage message from fudge - any idea why?
16:07 moritz_ ah, because I f*cked it up
16:09 dalek grok: 056121c | (Hinrik Örn Sigurðsson)++ |  (4 files):
16:09 dalek grok: Small Pod fixes
16:09 dalek grok: review: http://github.com/hinrik/grok/commit/05​6121ceb9e9ea8c17d32c8202bdd78459c92a13
16:12 dalek rakudo: d4d2319 | moritz++ | t/spectest.data:
16:12 dalek rakudo: [t/spectest.data] fix test name, moritz--
16:12 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/d​4d2319eb75cadb1fadb10a34494351b1035b4ff
16:18 pmichaud good morning (again), #perl6
16:19 pmichaud so, now that I don't have talks or meetings... has anything happened with Rakudo this week?  ;-)
16:19 moritz_ yes, it was released, builds against parrot HEAD, has a refactored meta class...
16:20 jnthn Gained .^roles and .^attributes
16:20 moritz_ I also pushed Matt-W's done_testing patch to Test.pm
16:22 pmichaud outstanding
16:22 masak awesome.
16:22 jdv79 how are traits?
16:22 moritz_ and 5 more passing tests that we missed previously
16:22 moritz_ jdv79: cool ;-)
16:22 masak test files, even.
16:22 moritz_ erm, yes ;-)
16:23 nihiliad joined #perl6
16:23 jnthn jdv79: Traits are coming along. Not perfect yet, but improving steadily.
16:23 jnthn Actually a bunch of what I'm working on today will straighten part of the issues out.
16:24 jnthn These days you can write traits to apply to blocks just fine. Soon you'll be able to write traits to apply to classes and roles also in a sensible way.
16:24 szabgab joined #perl6
16:33 pmichaud joined #perl6
16:34 * pmichaud reads scrollback
16:39 pmichaud wayland76: ping
16:40 masak pmichaud: I think he went to sleep.
16:40 pmichaud okay, thanks
16:41 ctime joined #perl6
16:42 pmichaud in rt #63360, wayland76 creates a patch that contains all of the diffs of the ins2 branch as well as his own changes.  I'd like to see just the changes he made -- what's the git magic to make that happen?
16:42 cdarroch joined #perl6
16:43 masak the ins2 branch is still around?
16:43 pmichaud yes.
16:43 masak pmichaud: create a branch from wayland76's patch and git-diff ins2 against it.
16:43 masak actually, you probably don't even need to create a branch.
16:44 * pmichaud does "man git diff"
16:44 pmichaud er, "man git-diff"
16:44 masak just git-diff ins2..$_ given sha1(wayland76.commit)
16:44 PerlJam If you have a working copy with the patch applied you don't need a diff.
16:44 PerlJam er, branch
16:45 pmichaud PerlJam: I don't understand.
16:45 ctime anyone interested in knife crimes
16:45 masak ctime: I prefer butterflies and camels.
16:45 PerlJam pm: if your working copy (of ins2)  has the patch applied, you just say "git diff ins2"
16:46 masak ah, yes. that's better.
16:46 pmichaud PerlJam: do I need to do anything special to apply the patch to ins2, given that the patch contains the ins2 diffs as well?
16:46 pmichaud or is git's merge so smart that it can figure out which parts of the patch to apply and which to avoid?
16:46 masak pmichaud: apply it to the branch point instead.
16:47 pmichaud so I have to look up the branch point?  or is that easily available also?
16:47 dalek rakudo: 5167835 | pmichaud++ | docs/spectest-progress.csv:
16:47 dalek rakudo: spectest-progress.csv update: 418 files, 11913 passing, 0 failing
16:47 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/5​167835aac57c0c6e20b976998f402bd359d5300
16:47 masak pmichaud: good question. it's the commit before the first commit unique to the branch.
16:47 pmichaud so I have to look in the log for ins2 for that commit
16:48 masak so you can do 'git log master..ins2', take the last on the list, and do <sha1>^ on that.
16:48 PerlJam gitk or git-gui could tell you which commit that is graphically
16:48 PerlJam (I don't know of an easier way)
16:48 pmichaud yeah, this seems a bit cumbersome
16:48 * masak goes to ask on #git
16:48 pmichaud I wish wayland76 had given me just his diffs, rather than my diffs with his folded in
16:49 PerlJam pmichaud: or you could just assume that git is smart enough to not care that the ins2 diffs are included in the patch and see if that works.
16:49 pmichaud I might try that.
16:49 PerlJam git is darn smart about such things in general
16:49 masak I don't think it will.
16:49 masak might work with a merge, but not with a patch.
16:50 pmichaud maybe I'll just back-burner it for a bit while I catch up on other stuff.
16:50 masak #git says 'git merge-base' for finding branch point.
16:50 PerlJam #git++
16:51 masak yes, those guys know their git.
16:51 FurnaceBoy joined #perl6
16:51 jnthn role A { has $.a }; say A.HOW.attributes(A, :local)>>.name
16:52 jnthn rakudo: role A { has $.a }; say A.HOW.attributes(A, :local)>>.name
16:52 p6eval rakudo d4d231: OUTPUT«$!created$!selector$!shortname␤»
16:52 jnthn whoa
16:52 PerlJam (Dirk Hohndel)++
16:52 jnthn Well, I did fix something then. :-)
16:52 jnthn (locally)
16:53 pugs_svn r27707 | kyle++ | [t/spec] Test for RT #63646
16:53 PerlJam jnthn: does :tree work as well?
16:53 jnthn PerlJam: :tree isn't implemetned yet for all of the introspectable bits.
16:54 jnthn I think it works for .^parents
16:54 jnthn Check the tests. ;-)
16:54 Psyche^ joined #perl6
16:54 jnthn Of course, now we need a bunch of tests for role introspection. ;-)
16:56 masak .oO( "who introspects the introspection?" )
16:56 ruoso masak, in theory the HOW is an object like any other
16:56 masak ruoso: in theory?
16:57 ruoso in practice, RoleHOW in mildew doesn't yet implement the REPR API
16:57 masak ok.
16:57 ruoso RoleHOW does
16:57 ruoso it's PrototypeHOW that doesn't
16:57 masak ah.
16:57 jnthn PrototypeHOW?
16:57 ruoso or is it PurePrototypeHOW
16:57 ruoso the thing that governs the knowhows
16:57 jnthn Dunno
16:57 jnthn Oh
16:58 jnthn Suspect that's not something that'll appear in Rakudo then. :-)
16:58 ruoso mildew: role A { }; say A.^!how;
16:58 p6eval mildew: OUTPUT«Could not find method Str.␤»
16:59 ruoso well, RoleHOW is not yet implementing Str by itself
16:59 ruoso mildew: role A { }; say A.^!how.^!how;
16:59 p6eval mildew: OUTPUT«unknown method "Str" at message line 143 file build/s1p-oo/src/prototypehow.c␤»
16:59 ruoso aha!
16:59 ruoso mildew: role A { }; say A.^!how.^!how.^!how;
16:59 p6eval mildew: OUTPUT«unknown method "^!how" at message line 143 file build/s1p-oo/src/prototypehow.c␤»
16:59 SmokeMachine joined #perl6
17:00 ruoso there it is...
17:00 nihiliad joined #perl6
17:05 KyleHa You know what they say.
17:05 phenny KyleHa: 10:55Z <moritz_> tell KyleHa could please test if r27698 works for you? thanks.
17:05 KyleHa They say, "you know what they say."
17:06 KyleHa phenny: tell moritz_ r27698 works great and thanks for writing it.  See RT #63646 for an example.
17:06 phenny KyleHa: I'll pass that on when moritz_ is around.
17:08 masak phenny: tell phenny will you pass this on when phenny is around?
17:08 phenny Hey, I'm not as stupid as Monty you know!
17:08 masak phenny++
17:09 masak phenny: tell masak will you pass this on to me when I'm around, then?
17:09 phenny You can tell yourself that.
17:09 masak :)
17:11 jnthn wow!
17:11 jnthn :-)
17:11 jnthn A bot that isn't braindead.
17:12 pmichaud ...but what if I want phenny to remind me of something?
17:12 masak pmichaud: well, as she succinctly informed me, you can tell youself that. :)
17:12 jnthn_from_the_p phenny: tell jnthn remember this!
17:12 phenny jnthn_from_the_p: I'll pass that on when jnthn is around.
17:12 jnthn ;-)
17:12 phenny jnthn: 17:12Z <jnthn_from_the_p> tell jnthn remember this!
17:12 masak :P
17:13 masak if you need to remind yourself of something 10 seconds from now, you have bigger problems than convincing a bot to hold a message to yourself. :P
17:14 pmichaud masak: I'll try to remember that!
17:14 masak :)
17:16 dalek grok: 9571a50 | (Hinrik Örn Sigurðsson)++ |  (2 files):
17:16 dalek grok: Depend on Perl6::Doc 0.43
17:16 dalek grok: review: http://github.com/hinrik/grok/commit/95​71a50bd54db5d8165c730eebd1662e87fc9bdd
17:19 jnthn rakudo: say Role
17:19 p6eval rakudo d4d231: OUTPUT«Role()␤»
17:21 * masak realizes he can use introspection to find even weirder bugs
17:21 masak rakudo: enum foo <>; say foo[1]
17:21 p6eval rakudo d4d231: OUTPUT«No applicable candidates found to dispatch to for '!create_simple_role_helper'␤in Main (/tmp/3Agx6QBFCz:2)␤»
17:22 * masak submits rakudobug
17:23 jnthn Guess same as
17:23 jnthn rakudo: role Foo { }; Foo[42]
17:23 p6eval rakudo d4d231: OUTPUT«No applicable candidates found to dispatch to for '_block50'␤in Main (/tmp/4NmYLPdN2p:2)␤»
17:23 jnthn Aye
17:23 jnthn Need better error.
17:23 KyleHa Pshaw!
17:23 masak except that enums declare themselves as having a postcircumfix:[ ]
17:23 jnthn Oh?
17:23 KyleHa There's no spec for error messages, so all error messages are equal.
17:24 KyleHa Just 'die "ouch"' and be done!
17:24 masak rakudo: enum foo <>; say foo.^methods>>.name.grep(/post/).perl
17:24 p6eval rakudo d4d231: OUTPUT«["postcircumfix:[ ]"]␤»
17:24 pmurias joined #perl6
17:24 jnthn Exactly.
17:24 jnthn And on a role, that is a selector.
17:24 masak KyleHa: this is exactly why you are not in charge of error messages. :P
17:24 jnthn Think class Foo does Answer[42] { }
17:24 masak oh.
17:24 KyleHa Because all my errors would be sarcastic.  8-)
17:25 pmichaud KyleHa: you're welcome to propose community error messages :-)
17:25 masak KyleHa: 'ouch' is not very sarcastic, is it?
17:25 pmurias ruoso: RoleHOW does the REPR API
17:25 KyleHa "error:  Oh, I know exactly what method you want me to dispatch to."
17:25 ruoso pmurias, yeah... I realized it just after I said it...
17:25 pmurias ruoso: only p6opaque does it and RoleHOW is a instance of p6opaque
17:26 KyleHa masak:  "ouch" is not sarcastic, but the suggestion that all errors be "ouch" is a sarcastic suggestion.
17:26 Tene Maybe we should just have rakudo dynamically fetch appropriate error messages live from a wiki.
17:26 masak KyleHa: I see.
17:26 KyleHa Heh.
17:27 masak Tene: MetaError: 'could not find bloody wiki'
17:27 KyleHa "error: unable to fetch error message"
17:27 Tene Then we can, um, crowdsource... the blogosphere...
17:27 dalek rakudo: dd5767c | (Kyle Hasselbacher)++ | src/ (2 files):
17:27 dalek rakudo: Simple implementation of [//] and [||] operators
17:27 dalek rakudo: (Improvements by Moritz: use slurpy arg, and register ops in grammer-oper.pg)
17:27 dalek rakudo: Signed-Off-By: Moritz Lenz <moritz@faui2k3.org>
17:27 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/d​d5767c0cbfb4f1d70641e8499e21091be03729c
17:28 seve joined #perl6
17:28 seve whats an MPI
17:28 PerlJam message passing interface?
17:29 pmurias ruoso: ClassHOW should a knowhow or a role?
17:29 seve ok so i ddidn't misunderstand it's definition
17:29 seve is it used for clustering?
17:29 ruoso pmurias, it can be a knowhow
17:29 PerlJam seve: can be
17:29 seve ok
17:30 seve where else is it widely used
17:30 seve i was referring the anl.gov website and it mentioned in there
17:30 PerlJam google it
17:30 literal hm http://search.cpan.org/perldoc?Regexp::Grammars
17:31 seve k thanks PerlJam
17:34 pmurias ruoso: ClassHOW uses Pod6?
17:34 pmurias what viewer for Pod6 do we have?
17:35 KyleHa moritz++ # fixing my patches and applying them
17:36 estrabd joined #perl6
17:37 seve im looking for an alogirthm to convert base10 (decimal) to base N any ideas?
17:37 pmurias how do i install perl6.vim?
17:37 ruoso pmurias, yes... and it parses with STD
17:45 literal pmurias: http://github.com/petdance/vim-perl
17:46 literal pmurias: you can do a checkout of that and then "make symlinks"
17:48 KyleHa seve:  http://search.cpan.org/~kwilliams/Mat​h-BaseCalc-1.013/lib/Math/BaseCalc.pm
17:49 seve KyleHa: got it, thx
17:49 masak is it possible to add elements to an enum at runtime?
17:49 finanalyst joined #perl6
17:50 alester joined #perl6
17:51 moritz_ pmurias: clone hinrik/vim-perl from github, and 'make install'
17:51 phenny moritz_: 17:06Z <KyleHa> tell moritz_ r27698 works great and thanks for writing it.  See RT #63646 for an example.
17:51 PerlJam masak: does it make sense to do that?
17:52 literal moritz_: has been merged back into petdance/vim-perl, which should work as well
17:52 pmurias moritz_: i cloned petdance/vim-perl , is it ok
17:52 pmurias ?
17:52 literal pmurias: yeah
17:52 masak PerlJam: I have a case where I think it would.
17:52 literal the petdance one is the "official" one
17:52 alester moritz_: I'm glad someone's using the "make install"
17:52 alester it just seemed to make sense.
17:52 literal it will go into vim at some point
17:52 alester I need to feed files back to bram
17:53 moritz_ alester: actually I think I use 'make symlinks' or so
17:53 PerlJam masak: show me  :)
17:53 masak PerlJam: ok, hold on.
17:53 nbrown joined #perl6
17:54 masak PerlJam: look at this enum: http://github.com/masak/web/blob/6fa8ed10ae657bb9​5ba6580dd3d0f34c9aa312cd/lib/Hitomi/Stream.pm#L4
17:55 PerlJam looking
17:55 masak turns out there's a filter called EmptyTagFilter in the program I'm porting from which introduces a new value 'empty'.
17:55 REPLeffect joined #perl6
17:55 masak now, in the original they don't use enums, they just initialize objects with strings.
17:56 masak I consider that a poor man's enums.
17:56 masak so I can either (1) put the 'empty' element there statically, or (2) introduce it at runtime when needed.
17:56 masak I'm doing (1), but asking about (2). :)
17:58 pmurias ruoso: Object delegates CREATE,BUILDALL,DESTROYALL to the metaclass?
17:58 ruoso pmurias, as I current see it, yes
17:58 ruoso but this might be outdated concerning the fact that Object is now a role
17:59 ruoso or not
17:59 ruoso no... it isn't
17:59 ruoso because CREATE will be invoked in the punned class
17:59 ruoso so it will call the punned class metaclass
18:01 PerlJam masak: it seems to me that the point of an enum is that you know what's in it at compile time (becuase you're enumerated them :)
18:02 PerlJam masak: you could probably alter it at runtime with some eval() trick if you really needed to
18:02 masak PerlJam: 'augment enum' :)
18:03 TimToady std: augment enum Bool <maybe>;
18:03 p6eval std 27707: OUTPUT«ok 00:03 38m␤»
18:03 PerlJam masak: that seems like "I wrote this enum above, but forgot this element"   (i.e., static, compile-time info)
18:06 mepplock joined #perl6
18:07 masak hm, I don't know what would be a good solution here. just fishing for possibilities.
18:09 PerlJam I think you know a good solution  (you already mentioned it :)
18:12 Chillance_ joined #perl6
18:12 masak argh! if I get the error message 'Lexical foo not found', which part of the Rakudo stack have I enraged?
18:12 Chillance__ joined #perl6
18:12 masak there's no line number or file information...
18:13 jnthn No sigil? Hmm.
18:13 jnthn Probably something you declared lexically then that's a sub?
18:13 jnthn :-S
18:13 jnthn But odd.
18:13 PerlJam sounds like a parroty error
18:14 masak it's a constant I declared to be equal to an enum value.
18:15 pmurias ruoso: but BUILD shouldn't be defined in the metaclass should it?
18:15 ruoso pmurias, why not?
18:15 ruoso ah... I see what you mean
18:16 ruoso yeah... it could be called something different
18:16 ruoso but prototypehow doesn't call BUILD
18:16 ruoso so it isn't a problem, I think
18:18 tann joined #perl6
18:19 pmurias why do we delegate DESTORYALL,BUILDALL to the metaclass instead of handling them in Object?
18:20 tann rakudo doesn't seem having support for  use Foo <x y z> yet? a bug or known issue?
18:21 tann std: use Foo <foo @bar>;
18:21 p6eval std 27707: OUTPUT«Potential difficulties:␤  Can't locate module Foo at /tmp/EpkmNhcHs5 line 1:␤------> [32muse Foo <foo @bar>[31m;[0m␤ok 00:02 36m␤»
18:21 tann rakudo: use Foo <foo @bar>;
18:21 moritz_ tann: known NYI
18:21 p6eval rakudo dd5767: OUTPUT«Unknown import list expression in use at line 2, near ";"␤in Main (src/gen_setting.pm:408)␤»
18:22 tann alrighty
18:24 hercynium joined #perl6
18:24 ruoso pmurias, the idea is that replacing the metaclass will allow a more powerfull customization
18:24 moritz_ rakudo: say 1 ~~ Inf^..^Inff
18:24 moritz_ rakudo: say 1 ~~ Inf^..^Inf
18:24 moritz_ rakudo: say 1 ~~ -Inf^..^Inf
18:24 p6eval rakudo dd5767: OUTPUT«Could not find non-existent sub Inff␤»
18:24 p6eval rakudo dd5767: OUTPUT«0␤»
18:24 p6eval rakudo dd5767: OUTPUT«1␤»
18:25 pmurias ruoso: but you could as well mixing a role into the class
18:25 pmurias * mix in
18:25 pmurias * compose a role into the class
18:25 ruoso pmurias, yeah... in fact...
18:25 pmichaud_ jnthn: another thing that wants fixing is that "constant" is now package scoped instead of lexical scoped.
18:26 jnthn That's...not the usual direction things tend to go...
18:27 jnthn Also the inlining analysis gets harder, I think. :-/
18:28 jnthn (don't think we do any yet though)
18:29 * jnthn -> store for stuff to cook...or fast food if I suffer a sudden outburst of laziness on the way.
18:29 TimToady it's possible the constant decalarator should become more like 'sub' or 'multi' in terms of syntactic slot
18:31 TimToady (I said at the time that I wasn't sure our-ifying constant was the right approach...)
18:33 pmurias TimToady: why does CREATE take a string repr parameter, wouldn't passing an object be better?
18:34 pmurias that is $class.CREATE(:repr(P6opaque)) instead of $class.CREATE(:repr<P6opaque>)?
18:34 masak rakudo: class A { has @!a; multi method new(@a) { self.new(:a(@a)) }; multi method new(*%_) { self.bless(self.CREATE(), |%_) }; method foo { say @!a.elems } }; A.new(:a(1,2,3)).foo
18:34 p6eval rakudo dd5767: OUTPUT«1␤»
18:35 masak somewhere I get an extra layer of Array in the above. where?
18:35 masak how do I get foo to print 3?
18:36 justatheory joined #perl6
18:37 pmurias class A { has @!a; multi method new(@a) { self.new(:a(@a)) };method foo { say @!a.perl } };A.new(:a(1,2,3)).foo
18:37 pmurias rakudo: class A { has @!a; multi method new(@a) { self.new(:a(@a)) };method foo { say @!a.perl } };A.new(:a(1,2,3)).foo
18:38 p6eval rakudo dd5767: OUTPUT«No applicable candidates found to dispatch to for 'new'␤in Main (/tmp/oRn3TE0IuQ:2)␤»
18:38 pmurias rakudo: class A { has @!a; multi method  new(*%_) { self.bless(self.CREATE(), |%_) };method foo { say @!a.perl } };A.new(:a(1,2,3)).foo
18:38 p6eval rakudo dd5767: OUTPUT«[1]␤»
18:38 pmurias class A { has @!a; multi method new(@a) { self.new(:a(@a)) };method foo { say @!a.perl } };A.new(:a(7,2,3)).foo
18:39 pmurias rakudo: class A { has @!a; multi method new(@a) { self.new(:a(@a)) }; multi method  new(*%_) { self.bless(self.CREATE(), |%_) }; method foo { say @!a.elems } };  A.new(:a(7,2,3)).foo
18:39 tann pugs: say caller(0).perl
18:39 p6eval rakudo dd5767: OUTPUT«1␤»
18:39 p6eval pugs: OUTPUT«Control::Caller.new((\("file", undef), \("line", undef), \("package", undef), \("sub", undef), \("subname", undef), \("subtype", undef))␤»
18:39 pmurias rakudo: class A { has @!a; multi method new(@a) { self.new(:a(@a)) }; multi method  new(*%_) { self.bless(self.CREATE(), |%_) }; method foo { say @!a.perl } };  A.new(:a(7,2,3)).foo
18:39 p6eval rakudo dd5767: OUTPUT«[7]␤»
18:40 pmurias masak: two of arguments to :a get discarded?
18:40 masak pmurias: seems so.
18:40 masak that can't be right.
18:41 b2gills joined #Perl6
18:43 cbk rakudo: my $textLine = "mrGreen 5 1 23 "; if $textLine ~~ /.\s/ { say $_; } # sould be mrGreen for the 1st match then 5 for the next and so onetc..... right?
18:43 p6eval rakudo dd5767: OUTPUT«Use of uninitialized value␤␤»
18:44 masak rakudo: sub foo(:@a) { say @a.perl }; foo(:a[42,43,44])
18:44 p6eval rakudo dd5767: OUTPUT«[42, 43, 44]␤»
18:44 masak rakudo: sub foo(:@a) { say @a.perl }; foo(:a(42,43,44))
18:44 p6eval rakudo dd5767: OUTPUT«Parameter type check failed; expected Positional, but got Int for @a in call to foo␤in sub foo (/tmp/m0LcAL4iI8:2)␤called from Main (/tmp/m0LcAL4iI8:2)␤»
18:44 masak shouldn't both these work?
18:44 * moritz_ thinks so
18:46 * masak slams another rakudobug
18:46 cbk rakudo: my $textLine = "mrGreen 5 1 23 "; if $textLine ~~ /.\s/ { say <$_>; } # sould be mrGreen for the 1st match then 5 for the next and so onetc..... right?
18:46 p6eval rakudo dd5767: OUTPUT«$_␤»
18:47 moritz_ cbk: no.
18:47 cbk is it just $_
18:47 moritz_ if you do 'say $/', it should be 'n '
18:47 moritz_ the regex match sets $/, not $_
18:48 cbk ok
18:48 pmichaud_ rakudo:  say :a(42,43,44).perl
18:48 p6eval rakudo dd5767: OUTPUT«"a" => 42␤»
18:48 pmichaud_ there ya go.
18:48 cbk and /.\s/ will match any number of chars and the first white space char?
18:49 pmichaud_ we have to refactor colonpairs anyway, they switched from postcircumfix to circumfix parsing
18:49 pmichaud_ file a ticket, assign it to me, I'll fix it later tonight
18:49 pmichaud_ (that's one I'd like to fix relatively quickly)
18:50 cbk and /.\s/ will match any number of chars and the first white space char?
18:50 Tene pmichaud_: ETA for rakudo being able ot build against Parrot trunk again?
18:50 pmichaud_ Tene: it's not doing that now?  I thought that landed
18:50 moritz_ Tene: -6 hours
18:51 cbk whoops sorry for the re post on my last....
18:51 Tene pmichaud_: looks lik emoritz has the answer. :)
18:51 leedo left #Perl6
18:51 pmichaud_ Tene: one of the amazing things I've learned from OSCON is just how irrelevant I am to getting things done with Rakudo.  :-)
18:52 cbk rakudo: my $textLine = "mrGreen 5 1 23 "; if $textLine ~~ /.......\s/ { say </_>; } # sould be mrGreen for the 1st match then 5 for the next and so onetc..... right?
18:52 p6eval rakudo dd5767: OUTPUT«/_␤»
18:52 leedo joined #perl6
18:52 cbk rakudo: my $textLine = "mrGreen 5 1 23 "; if $textLine ~~ /.......\s/ { say /_; } # sould be mrGreen for the 1st match then 5 for the next and so onetc..... right?
18:53 moritz_ cbk: .......\s is always a fixed width match
18:53 p6eval rakudo dd5767: OUTPUT«_block64␤»
18:53 moritz_ rakudo: given 'mrGreen 5 1 23 ' { say "<$/>" if /.\s/ }
18:53 p6eval rakudo dd5767: OUTPUT«Use of uninitialized value␤<>␤»
18:53 cbk moritz_, yah thats not really what I want but I could make it work..... not the best choice
18:54 moritz_ rakudo: given 'mrGreen 5 1 23 ' { if /<[a..zA..Z]>*\d/ { say "<$/>" } }
18:54 p6eval rakudo dd5767: OUTPUT«Use of uninitialized value␤<>␤»
18:54 moritz_ hrmpf.
18:55 pmichaud_ something isn't setting $/ properly?
18:55 moritz_ rakudo:  if 'mrGreen 5 1 23' ~~ /<[a..zA..Z]>*\d/ { say "<$/>" } }
18:55 p6eval rakudo dd5767: OUTPUT«Syntax error at line 2, near "}"␤in Main (src/gen_setting.pm:3343)␤»
18:55 moritz_ pmichaud_: I have no idea what the problem is.
18:55 moritz_ rakudo:  if 'mrGreen 5 1 23' ~~ /<[a..zA..Z]>*\d/ { say "<$/>" }
18:55 fridim_ joined #perl6
18:55 p6eval rakudo dd5767: OUTPUT«<5>␤»
18:55 moritz_ rakudo:  if 'mrGreen5 1 23' ~~ /<[a..zA..Z]>*\d/ { say "<$/>" }
18:55 p6eval rakudo dd5767: OUTPUT«<mrGreen5>␤»
18:56 pmichaud_ I know there are some issues with given { } blocks -- maybe that's the problem.
18:56 moritz_ rakudo: given 'mrGreen 5 1 23 ' { say $_.perl }
18:56 p6eval rakudo dd5767: OUTPUT«"mrGreen 5 1 23 "␤»
18:56 moritz_ rakudo: given 'mrGreen 5 1 23 ' { /<[a..zA..Z]>*\d/ }
18:56 p6eval rakudo dd5767:  ( no output )
18:57 moritz_ rakudo: given 'mrGreen 5 1 23 ' { /<[a..zA..Z]>*\d/ && say $/ }
18:57 p6eval rakudo dd5767: OUTPUT«Use of uninitialized value␤␤»
18:57 moritz_ there you go.
18:57 * moritz_ reports bug
18:57 [particle] that hat makes you look like masak
18:57 * masak doesn't mind
18:58 b2gills rakudo: given 'mrGreen 5 1 23' { when /<[a..zA..Z>*\d/ {say $/ }}
18:58 p6eval rakudo dd5767: OUTPUT«perl6regex parse error: Missing close '>' or ']>' in enumerated character class at offset 67, found ''␤in Main (src/gen_setting.pm:3343)␤»
18:58 cbk moritz_, pmichaud_ thanks but I have to go to work now.  THANKS rakudo.org for #19 went to sleep at 3am last night and woke up at 7am. now I'm going to be a zombie at work :)
19:00 moritz_ <gandalf>I was barely involved</gandalf>
19:01 b2gills rakudo: given 'mrGreen 5 1 23' { when /<[a..zA..Z]>*\d/ {say $/ }}
19:01 p6eval rakudo dd5767: OUTPUT«5␤»
19:02 nihiliad joined #perl6
19:02 PerlJam b2gills: were you expecting something different?
19:02 pmichaud_ moritz++ #  Rakudo 19
19:04 damyan joined #perl6
19:04 moritz_ pmichaud++ # rakudo
19:08 jferrero joined #perl6
19:10 masak rakudo++
19:13 ingy hi masak
19:14 * pmichaud_ wants to add Damian's Parse::Grammar debugger to PGE....
19:14 TimToady me wants to run STD's logger into a debugger
19:16 masak hi ingy
19:16 masak ingy: will you be at YAPC::EU?
19:17 sri_kraih joined #perl6
19:18 ingy masak: non
19:18 ingy masak: you busy right now?
19:18 masak ingy: just about to go home and regenerate.
19:19 masak I mean sleep. sleep.
19:19 ingy got 10 mins for me? :]
19:19 masak yes, I do. :)
19:19 ingy /join #testml
19:21 donaldh joined #perl6
19:24 ilbot2 joined #perl6
19:24 Topic for #perl6is now »ö« | http://perl6-projects.org/ | nopaste: http://paste.lisp.org/new/perl6 | evalbot: perl6: say 3;' | irclog: http://irc.pugscode.org/ | UTF-8 is our friend!
19:27 literal pmichaud_: Parse::Grammar ? you mean Regexp::Grammars?
19:27 masak I've had a very productive afternoon with Hitomi today. I'll be ready to blog tomorrow.
19:27 masak that'll mark the end of my part of the grant, and the beginning of the MVC part that I've taken over from ihrd.
19:28 jnthn Nice work. :-)
19:28 KyleHa rakudo:  my %h = ( a => any(3, 4) ); for %h.kv -> $k, $v { say  "$k: {$v.WHAT}" };
19:28 * jnthn looks forward to masak++'s YAPC::EU talk
19:28 p6eval rakudo dd5767: OUTPUT«a: Junction()␤»
19:28 masak jnthn: thank you. it has been slow, but satisfactory.
19:28 masak jnthn: me too! :)
19:28 arnsholt joined #perl6
19:28 Tene I've got a Perl 6 issue that I'm having trouble working out.
19:28 masak and the presentation software to drive it...
19:28 masak Tene: spill it. :)
19:29 Tene I've got a class, Foo, with an attribute, $.bar.
19:29 masak ah, a public one.
19:29 Tene I want to be able to initialize new Foo isntances with a bar based on several parameters.
19:29 Tene my $x = Foo.new(1,2,3,4);
19:29 masak Tene: so declare your own 'new' method.
19:29 moritz_ then you ned to write a custom constructor
19:30 Tene masak: Right, but how do I make the actual object to return in the 'new' method?
19:30 masak which does self.bless(*, :bar( $formula ))
19:30 Tene Ah, bless.  How did I forget bless?
19:30 masak like that :)
19:30 masak I scratched my head over that a lot too :)
19:30 jnthn aww...bless you.
19:30 PerlJam does Whatever work in that context?
19:30 Tene What's the * there for?
19:31 jnthn Yes
19:31 alanhaggai joined #perl6
19:31 jnthn It means "you decide what representation to use"
19:31 jnthn That is, "call CREATE for me"
19:31 PerlJam Ever since it's been added to the language I find myself surprised at where it shows up for some reason.
19:31 masak in effect, it means self.CREATE()
19:31 masak PerlJam: what, bless?
19:31 PerlJam Whatever
19:31 masak PerlJam: ah.
19:32 masak yes, it's slightly ubiquitous.
19:32 KyleHa rakudo: say any(1,2).WHAT
19:32 p6eval rakudo dd5767: OUTPUT«Null PMC access in get_integer()␤in Main (/tmp/pMcfKfY769:2)␤»
19:33 PerlJam I think "Null PMC access" is more ubiquitous than Whatever  ;(
19:33 justatheory joined #perl6
19:34 pmurias perl6: $Foo::bar = 1;
19:34 p6eval elf 27707, pugs, rakudo dd5767:  ( no output )
19:35 KyleHa rakudo: say any("foo","bar").WHAT
19:35 payload joined #perl6
19:35 p6eval rakudo dd5767: OUTPUT«Null PMC access in get_integer()␤in Main (/tmp/uNC1qkzmla:2)␤»
19:35 KyleHa Where's the integer?
19:35 moritz_ internal somewhere
19:35 pmurias ruoso: so do we need to but D.../B... in the metaclass?
19:36 pmichaud_ rakudo:  say any("foo","bar).PARROT
19:36 PerlJam rakudo: any.WHAT.say
19:36 p6eval rakudo dd5767: OUTPUT«Statement not terminated properly at line 2, near "(\"foo\",\"ba"␤in Main (src/gen_setting.pm:3343)␤»
19:36 p6eval rakudo dd5767: OUTPUT«Null PMC access in get_integer()␤in Main (/tmp/S4yK9KwfFS:2)␤»
19:36 pmichaud_ rakudo:  say any("foo","bar:).PARROT
19:36 ruoso pmurias, I think it's an API choice...
19:36 pmichaud_ rakudo:  say any("foo","bar").PARROT
19:36 p6eval rakudo dd5767: OUTPUT«Statement not terminated properly at line 2, near "(\"foo\",\"ba"␤in Main (src/gen_setting.pm:3343)␤»
19:36 p6eval rakudo dd5767: OUTPUT«Junction␤»
19:36 ruoso I think TimToady help would be very much appreciated here
19:36 pmichaud_ (sorry for typoes)
19:37 pmichaud_ rakudo:  say any("foo","bar").WHAT
19:37 p6eval rakudo dd5767: OUTPUT«Null PMC access in get_integer()␤in Main (/tmp/zy3y7E7waD:2)␤»
19:38 pmichaud_ rakudo:  say any("foo","bar").WHAT.PARROT
19:38 p6eval rakudo dd5767: OUTPUT«␤»
19:38 pmichaud_ oh.  I wonder if it's trying to autothread there or something
19:38 pugs_svn r27708 | kyle++ | [misc] Better test-reporter.pl documentation
19:38 pugs_svn r27709 | kyle++ | [t/spec] (perhaps incomplete) test for RT #63686
19:38 pugs_svn r27710 | moritz++ | [t/spec] test for RT #67864
19:38 pugs_svn r27711 | kyle++ | [t/spec] identifying a junction causes Null PMC
19:39 pmichaud_ anytime .PARROT returns "" it means we're dealing with an anonymous class somehow, though
19:43 payload can't .PARROT return "anonymous class" instead? ^^
19:44 pmichaud_ I'll have to look at that.  Better would be "anonymous subclass of Foo"
19:45 * pmichaud_ files rakudobug
19:45 nbrown joined #perl6
19:47 jevin joined #perl6
19:47 M_o_C joined #perl6
19:49 pugs_svn r27712 | kyle++ | [t/spec] label the tests for RT #67886
19:51 * jnthn back from nom
19:52 tann rakudo: my $x = given 1 { default 1 { say 'yup' } };
19:52 p6eval rakudo dd5767: OUTPUT«Statement not terminated properly at line 2, near "{ default "␤in Main (src/gen_setting.pm:3343)␤»
19:52 jnthn default doesn't want an arg after it
19:52 jnthn std: my $x = given 1 { default 1 { say 'yup' } };
19:52 p6eval std 27707: OUTPUT«##### PARSE FAILED #####␤given() interpreted as function call at line 1 ; please use whitespace instead of parens␤Unexpected block in infix position (two terms in a row) at /tmp/0TJYLV0b09 line 1:␤------> [32mmy $x = given 1 [31m{ default 1 { say 'yup' } };[0m␤    expecting any
19:52 p6eval ..…
19:53 jnthn Oh, curious error.
19:53 tann rakudo: my $x = given 1 { default { 1 } }; say $x;
19:53 p6eval rakudo dd5767: OUTPUT«Statement not terminated properly at line 2, near "{ default "␤in Main (src/gen_setting.pm:3343)␤»
19:53 moritz_ uhm, wtf?
19:53 TimToady std: my $x = do given 1 { default 1 { say 'yup' } };
19:53 moritz_ I don't see why STD.pm should reject that
19:53 p6eval std 27707: OUTPUT«##### PARSE FAILED #####␤Unexpected block in infix position (two terms in a row, or previous statement missing semicolon?) at /tmp/Tk5uFL2WwR line 1:␤------> [32mmy $x = do given 1 { default 1 [31m{ say 'yup' } };[0m␤    expecting any of:␤   infix or meta-infix␤      infix
19:53 p6eval ..stopper␤    sta…
19:54 TimToady std: my $x = do given 1 { default  { say 'yup' } };
19:54 p6eval std 27707: OUTPUT«ok 00:02 37m␤»
19:54 Su-Shee left #perl6
19:57 PerlJam do++
19:57 pugs_svn r27713 | moritz++ | [t/spec] fix several smartlinks
19:57 PerlJam std: my $x = if 1 { 5 } else { 3 }
19:57 p6eval std 27707: OUTPUT«##### PARSE FAILED #####␤if() interpreted as function call at line 1 ; please use whitespace instead of parens␤Unexpected block in infix position (two terms in a row) at /tmp/aXstEMQkge line 1:␤------> [32mmy $x = if 1 [31m{ 5 } else { 3 }[0m␤    expecting any of:␤   infix or
19:57 p6eval ..meta…
19:57 PerlJam std: my $x = do if 1 { 5 } else { 3 }
19:57 p6eval std 27707: OUTPUT«ok 00:02 37m␤»
19:59 PerlJam rakudo: my $x = do if 1 { 5 } else { 3 }; say $x;
19:59 p6eval rakudo dd5767: OUTPUT«5␤»
19:59 PerlJam rakudo++
20:03 jevin joined #perl6
20:07 pugs_svn r27714 | moritz++ | [t/spec] fix all remaining broken smartlinks
20:08 tann rakudo: caller
20:08 p6eval rakudo dd5767: OUTPUT«Could not find non-existent sub caller␤»
20:08 tann ok, still nyi
20:10 mkelly32 joined #perl6
20:12 pmurias ruoso: i would prefer putting that into Object as the metaclass has methods releating to class construction and those methods are related to instance construction
20:13 pmurias ruoso: plus i don't imagine anyone chaning BUILDALL or DESTORYALL so getting rid of complexity is more important the ease of overiding
20:14 moritz_ and they aren't called with ^, so they must go into Object, not the meta class
20:14 pmichaud_ maybe we should create NYI.pm in src/settings/ with stubs for the "not yet implemented" stuff.
20:15 moritz_ that's something I could do
20:15 pmichaud_ let's try it and see how it goes
20:16 ruoso pmurias, that's a sane idea... I don't have any arguments against it...
20:16 pugs_svn r27715 | lwall++ | [STD] complain on missing block for constructs that require block, tann++
20:16 pugs_svn r27715 | lwall++ | [STD] polish to error messages, including yellow marker for colorblind folks++
20:19 leedo are there any videos online of TimToady's p6 error message talk? i missed it at YAPC::NA :(
20:19 fridim_ joined #perl6
20:19 moritz_ how can write a private sub in the setting?
20:20 pugs_svn r27716 | kyle++ | [t/spec] Test for RT #67852
20:21 vts joined #perl6
20:21 payload in grammar.pg at line 52 is      [ $ || <panic: Syntax error> ]
20:21 payload where is   panic   defined?
20:21 jnthn moritz_: Use a lexical sub maybe?
20:21 moritz_ jnthn: just trying...
20:21 jnthn payload: probably it's inherited.
20:22 jnthn From PCT::Grammar perhaps.
20:22 pmichaud_ panic is in PCT::Grammar at the moment
20:23 payload thx
20:24 pugs_svn r27717 | pmurias++ | [re-smop] handle ::CGI::Fast properly
20:24 pugs_svn r27718 | pmurias++ | [re-smop] start making ClassHOW compile
20:24 explorer joined #perl6
20:28 moritz_ jnthn: bah, lexical subs don't work in the setting
20:28 jnthn moritz_: Huh? That's...odd.
20:28 moritz_ they can't be found from within the same file
20:29 moritz_ http://nopaste.snit.ch/17383
20:29 jnthn rakudo: my sub foo() { say 1 }; foo()
20:29 p6eval rakudo dd5767: OUTPUT«1␤»
20:30 jnthn moritz_: And it works outside of the setting?
20:30 moritz_ the fact that it complains about sub nyi() and not about sub caller() means that I didn't forget to add it to the Makefile ;-)
20:30 PerlJam rakudo:  my sub foo() { say "hi" }; multi blah() { foo(); } ;  blah();
20:31 moritz_ hrm
20:31 p6eval rakudo dd5767: OUTPUT«hi␤»
20:31 moritz_ jnthn: yes, works outside the setting
20:33 TimToady std: default 1 {...}
20:33 p6eval std 27716: OUTPUT«##### PARSE FAILED #####␤Unexpected block in infix position (two terms in a row, or previous statement missing semicolon?) at /tmp/fQw5B7ZSFJ line 1:␤------> [32mdefault 1 [31m{...}[0m␤    expecting any of:␤   infix or meta-infix␤      infix stopper␤    standard stopper␤
20:33 p6eval ..terminator␤Undecl…
20:34 TimToady hmm, that's wrong still
20:34 jnthn pmichaud_: hmm...just discovered a...curiosity
20:34 jnthn pmichaud_: In Any.pir we have:
20:35 jnthn .sub 'does' :method .param pmc x $P0 = self.'HOW'() .tailcall $P0.'isa'(self, x)
20:35 jnthn .end
20:35 jnthn Should that not be delegating to .'does'?
20:35 moritz_ would seem more sane
20:35 jnthn Aye
20:36 eternaleye joined #perl6
20:37 jnthn Though that changes breaks...of all things...a couple of enums tests!
20:37 vts left #perl6
20:37 * moritz_ submitted the settings problem to RT
20:37 TimToady std: default 1 {...}
20:37 p6eval std 27716: OUTPUT«##### PARSE FAILED #####␤Unexpected block in infix position (two terms in a row, or previous statement missing semicolon?) at /tmp/c4RCbqkPh9 line 1:␤------> [32mdefault 1 [31m{...}[0m␤    expecting any of:␤   infix or meta-infix␤      infix stopper␤    standard stopper␤
20:37 p6eval ..terminator␤Undecl…
20:37 TimToady maybe I broke the rebuild
20:38 * moritz_ triggers the rebuild
20:38 moritz_ takes some time; slow machine
20:38 TimToady but it's reporting a version greater than my change, without the effect
20:39 moritz_ I have no idea how reliable that version number is.
20:39 TimToady well, I'm likely to lose internet shortly
20:40 jnthn ok $x.does(Day::Mon), 'Can test with .does() for enum value'; # what changing s/isa/does/ there breaks :-S
20:40 TimToady they usually tear down pretty fast as oscon
20:40 jnthn Why on earth it woulda worked with isa though is bewildering.
20:46 TimToady std: default 1 {...}
20:46 p6eval std 27718: OUTPUT«##### PARSE FAILED #####␤Missing block at /tmp/pj4TsMft7j line 1:␤------> [32mdefault [33m⏏[31m1 {...}[0m␤FAILED 00:02 35m␤»
20:46 * jnthn wonders if that test is actually bogus... :-S
20:46 alester joined #perl6
20:46 TimToady that's better :)
20:47 moritz_ what's the yellow character before the 1?
20:47 moritz_ EJECT SYMBOL
20:47 moritz_ hm
20:47 jnthn TimToady: While an enum itself essentially implies a role, I think the same is not true for the values? And thsu while we'd expect $x ~~ Day::Mon to work (if $x is 42 but Day::Mon), .does(Day::Mon) is perhaps a bit more tenuous?
20:47 jnthn *thus
20:48 jnthn (I think it's been working by accident in Rakudo up until now. :-S)
20:48 moritz_ if it's not a role, does '$x but Bool::True' work?
20:48 jnthn but is spec'd as knowing how to generalize an enum element to its role.
20:48 jnthn So yes that works, but $x does Bool::True would not.
20:50 moritz_ somehow Perl 6 is confusing.
20:50 * jnthn ponders what to do.
20:50 jnthn I suspect the tests may be bogus.
20:51 * TimToady will ponder over lunch &
20:51 jnthn TimToady: Thanks.
20:51 unitxt left #perl6
20:52 tann rakudo: my @a; my $a = @a; say @a.WHAT; say $a.WHAT
20:52 tann ^^^ :))
20:52 p6eval rakudo dd5767: OUTPUT«Array()␤Array()␤»
20:52 jnthn :)
20:52 PerlJam jnthn: What would you expect of Int.does(4)  ?
20:52 PerlJam is it symmetric?
20:52 jnthn rakudo: say Int.does(4) # expect false
20:52 p6eval rakudo dd5767: OUTPUT«1␤»
20:53 PerlJam rakudo: 4.does(Int)
20:53 p6eval rakudo dd5767:  ( no output )
20:53 jnthn And with local fixes
20:53 jnthn > say Int.does(4)
20:53 PerlJam rakudo: say 4.does(Int)
20:53 jnthn 0
20:53 p6eval rakudo dd5767: OUTPUT«1␤»
20:53 jnthn See, that way around makes some sense.
20:54 jnthn oh, wait
20:54 jnthn Int in Rakudo is currently a class, not a role.
20:54 jnthn So for now it's 0, but maybe in Perl 6 terms it should be true.
20:54 jnthn s/0/false
20:55 alester joined #perl6
20:56 jnthn Int.does(4) being true is surely bogus though.
20:56 jnthn I know why we were getting it as true before.
20:57 estrabd_ joined #perl6
21:15 eternaleye joined #perl6
21:22 pugs_svn r27719 | kyle++ | [t/spec] Test for RT #63724
21:22 KyleHa Are there any more eyes around who can check look at that one for me?
21:23 KyleHa s/check look/any("check","look")/
21:25 * moritz_ looks, and finds a problem
21:26 KyleHa What do you see?
21:26 moritz_ TimToady++ has revised the the spec of .perl a bit...
21:26 moritz_ basically .perl forces scalar context first
21:26 KyleHa Oh.  Is the RT ticket out of date, then?
21:26 moritz_ so my @reconstituted = eval $dehydrated;
21:26 moritz_ should be
21:27 moritz_ my @reconstituted = @( eval $dehydrated );
21:27 moritz_ second problem: checking for the form ( , ) isn't allowed, strictly speaking
21:27 moritz_ .perl is allowed to emit any working code
21:28 moritz_ so <foo bar baz> would be allowed
21:28 moritz_ or ['foo', 'bar', 'baz'].list
21:28 KyleHa That's kind of what I thought, but the ticket implied a strict requirement of parens.
21:28 KyleHa Glad I was wrong on that one.
21:29 moritz_ I understood that as "that would be more correct than what we have right now"
21:29 KyleHa So List.perl results in [1,2,3], and that's back to being correct?
21:31 pugs_svn r27720 | kyle++ | [t/spec] Fix RT #63724 tests after feedback from moritz++
21:37 justatheory joined #perl6
21:41 Whiteknight joined #perl6
21:42 maja__ joined #perl6
21:46 moritz_ no, my example was [...].list
21:46 moritz_ of which I don't know exactly if it's correct
21:46 moritz_ problem with [...] is that it constructs an Array, not a List
21:46 perlygatekeeper left #perl6
21:46 jnthn Hmmpfh. Something's rotten in the MMD narrowness analysis.
21:46 jnthn That or the topological sorter.
21:47 Limbic_Region joined #perl6
21:48 moritz_ and in the state of denmark.
21:53 KyleHa rakudo: my $a = $b; my $b;
21:53 p6eval rakudo dd5767: OUTPUT«Null PMC access in isa()␤in Main (/tmp/6U4YYz7Ri0:2)␤»
21:53 KyleHa I think that should live, not die.
21:53 KyleHa ...let alone die that way.
21:53 moritz_ it should, because $b is not pre-declared
21:54 moritz_ that's know to happen when the declaration follows on the same line.
21:54 jnthn Should be an error, just not that one.
21:54 moritz_ and there's an auld ticket for that one ;-)
21:54 moritz_ and tests in t/spec/S04-declarations/my.t, or so ;-)
21:55 KyleHa Tests in S04-declarations/my.t imply that before the declaration, the variable exists and is not defined.
21:55 moritz_ ouch.
21:55 lumi__ joined #perl6
21:56 KyleHa eval '$x = "abc"'; my Int $x  -- supposed to be a type error
21:56 moritz_ erm, that's something else
21:56 moritz_ because eval is run after the declaration
21:56 moritz_ and the declaration is tied to the begin of the block
21:57 KyleHa In "my $a = $b; my $b", the assignment happens after the declaration too.
21:57 moritz_ I meant the very first test in that file
21:57 KyleHa Oh, hmmm.
21:57 moritz_ KyleHa: that was badly phrased by me...
21:57 moritz_ KyleHa: in the case with eval, the *parsing* happens after the declaration
21:58 KyleHa Oh yeah.
21:58 KyleHa OK, I'm convinced.
21:58 jnthn rakudo: say Any ~~ Object; say Object ~~ Any;
21:58 moritz_ and the lexical pad that eval sees is always that of a whole block
21:58 p6eval rakudo dd5767: OUTPUT«1␤1␤»
21:58 jnthn shit!
21:58 moritz_ wtf?
21:58 moritz_ and we have no tests for that?
21:58 jnthn *That's* what's broken.
21:58 jnthn OK, there was a bug in the multi dispatch narrowness analysis too.
21:59 jnthn I guess after I found one I suspected there must be a further one though.
21:59 jnthn Whereas actually this one is...well...that. :-|
21:59 b2gills left #Perl6
21:59 * moritz_ has to retreat to bed
22:03 justatheory joined #perl6
22:09 dalek joined #perl6
22:29 jnthn OK, looks like patch to fix up Object ~~ Any being true is going to work out, but showed up 2 tests that seem to point to other problems now that bit is straight.
22:30 jnthn Anyway, sleep now...will get this lot landed tomorrow, I hope.
22:30 jnthn o/
22:30 tann std: my $s = 8; $s .+> 1;
22:30 p6eval std 27720: OUTPUT«##### PARSE FAILED #####␤Syntax error (two terms in a row?) at /tmp/KXC8yTXzUU line 1:␤------> [32mmy $s = 8; $s [33m⏏[31m.+> 1;[0m␤    expecting any of:␤ infix or meta-infix␤      infix stopper␤    standard stopper␤ statement modifier loop␤  terminator␤FAILED 00:02 37m␤»
22:35 donaldh_ joined #perl6
22:40 davef joined #perl6
22:41 unitxt joined #perl6
23:11 frew_ joined #perl6
23:20 donaldh joined #perl6
23:20 redicaps joined #perl6
23:27 tann which syn should i look at for info regarding aliases ie. references? the search on perlcalbal doesn't seem to return anything i'm looking for..thanks
23:30 lumi_ joined #perl6
23:38 hoelzro joined #perl6
23:49 nihiliad joined #perl6
23:53 payload joined #perl6
23:55 kane_ joined #perl6
23:55 fridim_ joined #perl6
23:58 kane___ joined #perl6
23:59 hoelzro joined #perl6

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

Perl 6 | Reference Documentation | Rakudo