Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2010-03-06

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:06 mjk joined #perl6
00:14 snarkyboojum joined #perl6
00:18 lichtkind thanks
00:38 payload joined #perl6
00:39 cj can someone recommend a book or document on compiler engineering?
00:42 m-locks A. Aho, R. Sethi, J. Ullman: Compilers: Principles, Techniques, and Tools. Addison-Wesley, 1986.
00:42 cj thanks, m-locks
00:42 m-locks np
00:44 diakopter cj: PLP3 (Programming Language Pragmatics 3rd edition)
00:44 cj m-locks: you prefer the first edition?
00:44 diakopter five stars
00:44 cj thanks, diakopter :)
00:46 m-locks they seem to have lotsa additional materials, PLP CD and stuff
00:56 colomon joined #perl6
01:11 colomon rakudo: my Int $x = Mu;
01:11 p6eval rakudo b348b3: OUTPUT«Type check failed for assignment␤current instr.: '&die' pc 16803 (src/builtins/Junction.pir:347)␤»
01:19 pugssvn r29950 | colomon++ | [t/spec] Fudge S14-roles/basic.t (some very disturbing errors here).
01:19 jaldhar joined #perl6
01:22 wknight8111 joined #perl6
01:42 pugssvn r29951 | lwall++ | [S32/IO.pod] put back :s, remove :z, :T, :B, :M, :A, :C
01:42 pugssvn r29951 | note that these all end up calling methods on IO, not strings
01:48 k23z__ can I get a rakudo commit bit ?
01:48 k23z__ I'm wsdookadr on github
01:49 dalek rakudo: 974d9a8 | (Solomon Foster)++ | t/spectest.data:
01:49 dalek rakudo: Turn on S14-roles/basic.t.
01:49 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/9​74d9a82a2652165d6819028df1a96e0e4138836
01:50 diakopter k23z__: I think they want an individual to build up a history of submitting good patches before one gets one of those
01:50 k23z__ ah ok sorry
01:50 k23z__ can I write some tests for Perl6 ?
01:50 quietfanatic joined #perl6
01:50 diakopter yes :)
01:51 diakopter you can have a commitbit to pugscode
01:51 k23z__ what tests could I write and what would I need ? (I have a compiled rakudo right here)
01:51 diakopter if you don't have one already
01:51 diakopter the tests are stored in pugscode svn
01:52 diakopter re "what tests could I write", that's a difficult question
01:53 diakopter it requires a certain familiarity with the language, or a precise reading of the Synopses (the language specification)
01:53 diakopter really, both
01:53 colomon Though you don't need to read the full spec, by any means -- just find a nice corner of it.
01:54 diakopter and a knowledge of how the test suite is organized, so you can determine that the feature for which you're considering writing tests hasn't already been thoroughly covered.
01:59 k23z__ do you have guides for new devs ?
02:00 k23z__ so the road is    read the synopsis, the perl6 book on github -> write tests ?
02:00 diakopter depends from where you're coming, and where you think you're going. :D  (what languages you've used previously; what kinds of software you expect to write)
02:02 diakopter Perl 5 experience might help; it might not.  The changes/additions (from 5->6) are numerous and varied in size (small,large) enough that existing Perl knowledge might hinder, since it might be more difficult to keep the languages distinct in your mind.
02:04 diakopter that's the case for me, anyway.  It seems that those who have a thorough mastery of Perl 5 have a much easier time keeping them straight than someone like me, who isn't a Perl 5 expert.
02:05 TimToady we all already know where Perl 5 ought to be different :)
02:07 TimToady course, there are still parts of Perl 6 that ought to be different (I'm looking at you IO.pod)
02:08 diakopter k23z__: msg TimToady with your desired username & email address for pugscode svn (if you don't already have an account and you want to commit to the spec/testsuite)
02:09 diakopter I seem to have forgotten my commitbit password, otherwise I would add it
02:11 TimToady do you still have a mail account at veradox?
02:14 _jaldhar joined #perl6
02:14 diakopter ohhh that's the username
02:26 * diakopter considers how to design an API for codegen routines that generate codegen routines
02:31 lue joined #perl6
02:32 lue oi!
02:43 lue ...chirp
02:43 colomon hey all.
02:44 PerlJam greetings colomon
02:44 lue hello o/
02:44 colomon submethods.t defines two classes in a... closure?  in braces.
02:44 colomon lives_ok {
02:44 colomon class Foo        { has $.foo_build; submethod BUILD() { $!foo_build++ } }
02:44 colomon class Bar is Foo { has $.bar_build; submethod BUILD() { $!bar_build++ } }
02:44 colomon }, "class definitions were parsed/run/compiled";
02:45 colomon when the tests try to use those classes, they're not there.
02:45 colomon any clue if they should be?  Or are they local to those brackets?
02:45 lue maybe because it's contained in the braces. That's my first guess :)
02:45 colomon (If I take the braces away, the next twenty tests run fine...)
02:45 PerlJam classes used to be package-scoped and I think they're lexical by default now.
02:46 PerlJam (check the spec obviously :)
02:48 PerlJam oh no, they're still package scoped (or should be)
02:48 PerlJam S12:109
02:50 diakopter std: package bar { class baz { class foo { }; say foo; }; say foo; }
02:50 chenfengyuan joined #perl6
02:50 p6eval std 29951: OUTPUT«Undeclared routine:␤   'foo' used at line 1␤ok 00:01 105m␤»
02:50 chenfengyuan left #perl6
02:50 diakopter chenfengy didn't like what p6eval had to say
02:50 lue how would you tell if a number is odd or even?
02:50 szabgabx joined #perl6
02:51 m-locks even: number % 2 == 0
02:51 TimToady % or !%
02:51 colomon PerlJam: adding our doesn't even help.
02:51 diakopter TimToady: see p6eval above
02:52 diakopter (I don't know whether that's correct)
02:52 lue rakudo: say 15 % 2 == 0
02:52 p6eval rakudo 974d9a: OUTPUT«0␤»
02:52 colomon rakudo: { class Foo { method bar() { say "bar"; }; }; }; my $a = Foo.new; $a.bar
02:52 PerlJam lue: you monkey patch .odd and .even methods  :)
02:52 p6eval rakudo 974d9a: OUTPUT«Could not find non-existent sub &Foo␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
02:52 TimToady rakudo: say 15 !% 2
02:52 p6eval rakudo 974d9a: OUTPUT«Confused at line 11, near "say 15 !% "␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
02:52 lue those are supposed to exist!?
02:53 TimToady alpha: say 15 !% 2
02:53 p6eval alpha 30e0ed: OUTPUT«0␤»
02:54 diakopter alpha: say 15 % 2 ?? "odd" !! "even"
02:54 TimToady class foo is visible only inside baz
02:54 p6eval alpha 30e0ed: OUTPUT«odd␤»
02:54 diakopter oh
02:54 PerlJam Hmm.   .odd is actually mentioned in S04:332
02:54 lue alpha: say 15.odd
02:54 TimToady std: package bar { class baz { class foo { }; say foo; }; say baz::foo; }
02:54 p6eval alpha 30e0ed: OUTPUT«Method 'odd' not found for invocant of class 'Int'␤in Main (file src/gen_setting.pm, line 324)␤»
02:54 p6eval std 29951: OUTPUT«ok 00:01 105m␤»
02:54 PerlJam I guess I'm not the only one who channels his inner ruby programmer occasionally.
02:54 TimToady std: package bar { class baz { class foo { }; say foo; }; say bar::baz::foo; }
02:55 diakopter std: package bar { { class foo { }; say foo; }; say foo; }
02:55 p6eval std 29951: OUTPUT«ok 00:01 105m␤»
02:55 p6eval std 29951: OUTPUT«ok 00:02 105m␤»
03:03 new_perl6_hacker joined #perl6
03:04 TimToady it's quite ironic that when an Olympic skier falls on the course, it's called DNF
03:04 m-locks haha
03:05 new_perl6_hacker How does rakudo diffrentiate between a $string = "some string" and $code = "Code inside a string"
03:05 m-locks well gotta sleep, gn y'all
03:06 colomon o/
03:06 new_perl6_hacker @m-locks its morning here
03:06 k23z__ !tell garu test
03:06 m-locks it's 5am, about my bedtime ;P
03:06 new_perl6_hacker Good night
03:06 TimToady I have to get up at 5am to see if I'm in a panel discussion...
03:07 Tene new_perl6_hacker: rakudo does not differentiate at all.  Strings are strings, and there's no type for "a string that happens to incidentally look like Perl 6 code".
03:07 m-locks yoink ->
03:07 colomon new_perl6_hacker: but if you have { } inside a double-quote string, it is executed and the result inserted into the string.
03:07 PerlJam new_perl6_hacker: what makes you think rakudo does differentiate those things?
03:08 PerlJam colomon++ ah, good point
03:08 lue I was going to program a little something featured in today's XKCD comic (http://xkcd.com/710/), but I think programming .odd and .even first'd be more fun
03:08 lue (and in P6 this time)
03:08 new_perl6_hacker @PerlJam how will then find what methods I can invoke on strings and what methods I can invoke code objects
03:09 Tene lue: make sure you generate graphviz output so you can graph your results. :)
03:09 Tene new_perl6_hacker: the same way you discover what methods you can invoke on any type.
03:09 PerlJam rakudo: "string".^methods.sy
03:09 PerlJam er ...
03:09 PerlJam rakudo: "string".^methods.say
03:10 p6eval rakudo 974d9a:  ( no output )
03:10 p6eval rakudo 974d9a: OUTPUT«maximum recursion depth exceeded␤current instr.: 'perl6;Seq;!fill' pc 13790 (src/builtins/Multi.pir:22)␤»
03:10 Tene rakudo: {say "hi"}.^methods.perl.say
03:10 p6eval rakudo 974d9a: OUTPUT«maximum recursion depth exceeded␤current instr.: 'perl6;Seq;!fill' pc 13790 (src/builtins/Multi.pir:22)␤»
03:10 Tene ah, looks like that's broken ATM
03:10 Tene alpha: {say "hi"}.^methods.perl.say
03:10 p6eval alpha 30e0ed: OUTPUT«[{ ... }, { ... }]␤»
03:10 PerlJam heh
03:10 Tene anyway, it's in the class.
03:10 lue graphviz...?
03:10 PerlJam alpha: "String".^methods.say
03:10 p6eval alpha 30e0ed:
03:10 p6eval ..OUTPUT«sprintfScalarComplexStrpredsuccencodeper​lACCEPTSWHICHatanminacosmaxbytesevalchopsinrindex​tanhIntvaluesasinhacosechabsendceilingp5chompkeys​kvfloorasechordcapitalizepickroundevalfileintspli​tmatchacoshwordsp5choplcjoinsinhcotanacotanatan2r​educesrandtrimasecreversecotanhisapolar:d:eucf…
03:11 PerlJam alpha: "String".^methods.join(" ").say
03:11 p6eval alpha 30e0ed: OUTPUT«encode succ WHICH ACCEPTS perl sprintf Scalar Complex Str pred map :d cis :e :f log sech log10 min rand max :l truncate bytes sort sin sqrt asin Int cosh :s grep asinh acosech abs end uc ceiling p5chomp samecase floor substr asech ord round flip does int split match acosh
03:11 p6eval ..acosec wo…
03:11 Tene lue: http://graphviz.org/
03:11 Tene lue: a simple text format for describing and rendering graphs.
03:12 new_perl6_hacker And I will be able to execute that as &"string" or $string = "some code" ; &$string
03:13 TimToady not like that
03:13 Tene lue: http://upload.wikimedia.org/wikipedia/co​mmons/a/ad/Collatz-graph-all-30-no27.svg looks like it was generated with graphviz.
03:13 Tene new_perl6_hacker: if you have code in a string that you want to execute, you'll need to use the 'eval' function, which invokes the compiler on the text.
03:13 TimToady you have to work harder to do symbolic lookups in Perl 6
03:14 TimToady but then there's no strict refs anymore
03:15 new_perl6_hacker Then all strings must ideally have 'eval' invokable on them
03:15 TimToady eval is never ideal :)
03:15 lue Tene: aah. I thought you were talking about P6 testing results :)
03:16 Tene new_perl6_hacker: That's completely true, in exactly the same way as "all files can have the perl6 compiler run on them"
03:17 new_perl6_hacker @tene , @TimToady thanks, got it now
03:17 * lue .oO(bah. I wish I could upload whatever to wordpress.com . That'd make my life easier...)
03:18 Tene new_perl6_hacker: No problem.  Was there a specific task you were trying to perform or problem you were trying to solve, or just general curiosity?
03:18 new_perl6_hacker I was looking at metaprogramming aspects
03:19 new_perl6_hacker reflection basically
03:19 PerlJam alpha: my @a = "a".."z"; @a."join"(" ")."say"  # :)
03:19 p6eval alpha 30e0ed: OUTPUT«a b c d e f g h i j k l m n o p q r s t u v w x y z␤»
03:20 new_perl6_hacker But the example quoted by PerlJam earlier didn't show a 'eval' method, is that in the base class of string
03:21 Tene You keep talking about classes.  It's a function, not a method.
03:21 PerlJam new_perl6_hacker: What other languages are you familiar with?
03:21 new_perl6_hacker Ruby and Python
03:22 colomon Tene: I think we added an eval method a while back, too.
03:22 PerlJam I was getting a strong ruby vibe from you :)
03:22 mj41_ joined #perl6
03:22 PerlJam (either that or smalltalk or something, but those are rared)
03:22 PerlJam er, rarer
03:23 new_perl6_hacker I think I'm getting confused, because I'm thinking everything from OOperspective .
03:23 colomon rakudo: "say 'hello'".eval
03:23 p6eval rakudo 974d9a: OUTPUT«hello␤»
03:24 PerlJam alpha: "blah".^methods.map(*.name).sort.join(" ").say
03:24 p6eval alpha 30e0ed: OUTPUT«  :d :e :f :l :s ACCEPTS Array BUILD BUILDALL CREATE Capture Complex Hash Int Iterator PARROT REJECTS Scalar Scalar Str Str WALK WHENCE WHERE WHICH WHICH abs acos acosec acosech acosh acotan acotanh asec asech asin asinh atan atan2 atanh bless bytes can capitalize ceiling chars
03:24 p6eval ..cho…
03:24 PerlJam alpha: "blah".^methods.map(*.name).grep({ $_ ~~ /^e/ }).join(" ").say
03:24 p6eval alpha 30e0ed: OUTPUT«encode eval elems evalfile exp end eigenstates␤»
03:25 PerlJam there you go
03:26 Tene alpha: say "foo".^can('eval')
03:26 p6eval alpha 30e0ed: OUTPUT«eval␤»
03:26 Tene alpha: say "foo".^can('eval').WHAT
03:26 p6eval alpha 30e0ed: OUTPUT«␤»
03:28 PerlJam hmm
03:28 PerlJam why did WHICH appear in the list twice?
03:28 PerlJam and Scalar and Str
03:30 lue there's a WHENCE option? (001 !
03:30 lue rakudo: say 4.WHENCE
03:30 p6eval rakudo 974d9a: OUTPUT«␤»
03:31 PerlJam lue: WHENCE autovivifies an object
03:31 PerlJam it's a closure from whence the object cometh
03:34 lue 'tis a closure whencefrom thy object cometh. (Old English translation free of charge :D )
03:36 new_perl6_hacker :) just got a feeling that all programs(The mail program) go into a eval function inside the compiler.
03:37 new_perl6_hacker *The main program*
03:37 Tene That's right.
03:37 Tene The compiler reads the program text into a string, invokes the compiler on it to get back a Code object, and then invokes that Code object.
03:38 new_perl6_hacker This is great, so we basically have a compiler which we can use any where inside our program. This is a killer feature :)
03:40 lue Our main goal is having the P6 interpreter run itself (be written in P6 code).
03:40 lue The key, IMO, is recursive definition :)
03:40 TimToady well, it was a killer feature in Perl 3 or so
03:41 colomon and in Lisp, Ruby, etc.
03:41 colomon still, it's an awesome feature.
03:41 TimToady but usually it's an escape valve indicating a missing feature elsewhere
03:43 TimToady we treat BEGIN the same say
03:43 Sarten-X joined #perl6
03:44 PerlJam Why do we think all languages must be self-describable?
03:44 TimToady and eval, in general, opens you up to all sorts of security problems, just like SQL injection
03:46 TimToady http://xkcd.com/327/
03:48 lue TimToady: love that one :)
03:49 TimToady PerlJam: we don't, just the good ones.
03:49 TimToady I blame Gödel...
03:49 PerlJam and Escher and Bach  ;)
03:50 lue Don't forget Thought. That guy takes forever to figure things out. :)
03:52 lue .xkcd(fun with chess: http://xkcd.com/249/)
03:54 lue rakudo: say chr(0xFDD0)
03:54 p6eval rakudo 974d9a: OUTPUT«﷐␤»
03:54 lue .u �
03:54 phenny U+FFFD REPLACEMENT CHARACTER (�)
03:54 PerlJam you could do a good meta comic on photoshopping the chess board in that one
03:55 TimToady don't photoshop the chess board, just photoshop me into xkcd :)
03:57 lue WIN! (quick, somebody get Larry's head off of Yahoo Images!!!)
03:58 colomon Woah, I knew the Gathering was in process, but I didn't know someone had already taken Larry's head!
03:58 lue http://xkcd.com/365/ yet another conference the poor guy can't go to :)
04:01 lue I think XKCD ought to do a comic about Perl for once (with guest appearance by TimToady of course :) )
04:01 colomon what do you mean "for once"?  There are at least two classic comics about Perl.
04:02 colomon I have the t-shirt for one...
04:02 PerlJam colomon: yeah, but one of them is called "lisp"
04:02 lue I honestly cannot remember if there werl Perl comics on XKCD :)
04:02 lue s/werl/were/
04:03 colomon http://xkcd.com/224/
04:03 colomon http://xkcd.com/208/
04:04 new_perl6_hacker If an exception happen inside an eval, should the main program see it?
04:04 TimToady no, it's trapped in $!
04:06 lue according to number 224, Larry has tight (if possibly indirect) connections with God (all hail!)
04:07 lue .xkcd(http://xkcd.com/18/ we need more of these jokes)
04:09 * lue will paste a bunch of xkcd comic links to pastebin instead of flooding the channel
04:21 lisppaste3 lue pasted "XKCD comic links" at http://paste.lisp.org/display/95996
04:23 mj41_ joined #perl6
04:42 lue heelooo-oooh
04:44 rv2733 joined #perl6
04:45 abra joined #perl6
04:56 lue saluton? Hello? Bonjour? anyone?
04:59 * TimToady is hiding behind a cricket
05:01 lue ah, that's where you are.
05:11 quietfanatic_ joined #perl6
05:12 new_perl6_hacker What is the maximum value of anything Inf can hold?
05:12 diakopter -Inf
05:13 TimToady how much memory do you have?
05:13 new_perl6_hacker :)
05:13 lue rakudo: say 0..3; say [0,3]; say [0,4)
05:13 * diakopter sprixels along
05:13 p6eval rakudo 974d9a: OUTPUT«Confused at line 11, near "say [0,4)"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
05:14 lue .oO(interval notation would be interesting for the "official P6 module" (as well as set-builder, possibly))
05:14 TimToady no need
05:14 TimToady 0..^4 is already there
05:15 TimToady and doesn't use up two (count 'em *two*) brackets
05:15 lue ah well, that's why I didn't say "...interesting project for implementation in Rakudo" :)
05:16 TimToady mathematicians do many unforgiveable things as far as computers are concerned, and that's one of 'em
05:16 lue rakudo: say 0..Inf
05:16 p6eval rakudo 974d9a:  ( no output )
05:16 lue rakudo: say 0..^Inf
05:17 p6eval rakudo 974d9a:  ( no output )
05:17 TimToady rakudo: say (0..Inf).batch(10)
05:17 p6eval rakudo 974d9a: OUTPUT«Method 'batch' not found for invocant of class 'Range'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
05:17 TimToady rakudo: say (0..Inf).iterator.batch(10)
05:17 p6eval rakudo 974d9a: OUTPUT«0123456789␤»
05:17 TimToady oughta do that automatically, methinks
05:18 TimToady rakudo: say (0...*).batch(10)
05:18 p6eval rakudo 974d9a: OUTPUT«0123456789␤»
05:19 TimToady that one works
05:19 lue I can't help but think about the possibility of built-in SDL/OpenGL support (thru Parrot). The upside is that it'd be a MAJOR perk over other languages.
05:19 lue The downside is probable bloatedness
05:20 new_perl6_hacker diakopter why does http://perlcabal.org/~fglock/perlito.html give an error message to say 'hello,word!';
05:21 japhb lue: OpenGL support is just waiting on Tene to reenable the 'use OpenGL:from<parrot>;' notation (lost during the branch switch).  kthakore++ is working on SDL
05:22 lue \o/ Get ready for the flood of awesome (no doubt to be recorded by XKCD ;) )
05:22 Tene japhb: I've currently got nothing scheduled tomorrow.  I'll try to fit it in then.
05:22 Tene japhb: although I should probably also look at the pcc refactor branch.
05:22 japhb Tene, \o/
05:23 japhb aww.  I hate tuit conflicts.  :-/
05:24 lue I got a Norweigan Blue Parrot for the occasion (of OpenGL/SDL implementation) :)
05:24 japhb :-)
05:24 Tene japhb: with any luck, I'll feel conflicted and not work on either of them. :)
05:24 japhb :-P
05:25 lue Beautiful plumage, the Norweigan Blue.
05:25 japhb Just to make you feel guilty, I'm writing WebGL code in JavaScript, because I can't have my OpenGL in Perl 6.
05:25 japhb That reminds me, I need to throw some tuits at plumage
05:26 lue Tene: if you don't work on anything parrot-related (due to conflict), then you're the pet shop owner :)
05:38 gfx joined #perl6
05:44 new_perl6_hacker Is http://perlcabal.org/~fglock/perlito.html the sprixel project?
05:46 TimToady no
05:49 lue goodbye, see you during the hackathon tomorrow
06:08 athenot joined #perl6
06:12 perlster joined #perl6
06:33 quietfanatic joined #perl6
07:53 uniejo joined #perl6
07:54 uniejo All Perl6 speaks today are moved into room 4A16
07:55 aesop joined #perl6
08:10 jonasbn joined #perl6
08:16 new_perl6_hacker joined #perl6
08:41 meppl joined #perl6
08:43 iblechbot joined #perl6
09:06 Su-Shee joined #perl6
09:20 uniejo joined #perl6
09:32 k23z__ err ..
09:32 k23z__ room 4A16 ?
09:33 kfo joined #perl6
09:35 arlinius joined #perl6
09:35 arnsholt k23z__: That's where we are, yes
09:36 arnsholt The Copenhagen hackathon =)
09:37 Su-Shee good morning
09:37 arnsholt 'morning Su-Shee
09:38 k23z__ hmm
09:51 mberends joined #perl6
09:52 jonasbn k23z__: where are you at?
09:53 jonasbn k23z__: did you make it here or do you require guidance?
09:53 mberends heehee, the Copenhagen Perl 6 Hackathon has a good turnout, about 25 people :-)
09:56 mberends jnthnandmasakbot++ is giving what would have been moritz_++'s grammar and regex talk
09:57 Su-Shee 25 people? nice. you can do a lot with 25 people in 48 hours.
09:57 mberends Yet Another Example of JIT talk preparation
09:58 baest :)
09:58 jonasbn Su-Shee: we are not contribution right now, we are in the brainwash phase
09:58 jonasbn contributing even
10:00 cotto joined #perl6
10:00 xabbu42 joined #perl6
10:04 payload joined #perl6
10:08 Su-Shee well I hope you've got fun and it's a great weekend. :)
10:09 mberends :)
10:18 k23z__ jonasbn: sorry for confusing you, I am not there , I am maybe 2000km away
10:21 rv2733 joined #perl6
10:26 orafu joined #perl6
10:42 eternaleye joined #perl6
10:47 fridim joined #perl6
10:48 xinming_ joined #perl6
10:51 krr joined #perl6
10:57 jonasbn ah
10:57 jonasbn hehehe
10:57 lisppaste3 baest pasted "Patch which ensures === returns bool not int" at http://paste.lisp.org/display/96001
10:58 baest based on http://github.com/rakudo/rakudo/commit/d​4be43d97daabbeebed3f261b5ca4855845517e5 and http://github.com/rakudo/rakudo/commit/f​d288ffe2c2b2bb6437b726efe612a7e10487525
10:59 fod joined #perl6
10:59 fod left #perl6
11:02 mberends nom &
11:12 z3ndrag0n joined #perl6
11:30 kidd joined #perl6
11:43 uniejo joined #perl6
11:43 snarkyboojum joined #perl6
11:49 Su-Shee joined #perl6
11:51 clintongormley joined #perl6
11:56 snarkyboojum_ joined #perl6
12:03 masak joined #perl6
12:03 masak oh hai from Copenhagen, #perl6!
12:03 arnsholt Oh hai from the next row, masak!
12:04 quester joined #perl6
12:04 mberends joined #perl6
12:05 masak mberends: lol I can see you both on- and offline! :D
12:05 masak jnthn++ is on now, by the way.
12:05 masak giving his famous "solved in Perl 6" talk.
12:06 mberends masak: stop chattering and pay attention to the talk!
12:07 * masak obliges :)
12:07 cognominal joined #perl6
12:07 payload joined #perl6
12:09 Su-Shee oO(live from the benches in copenhagen.. ;)
12:09 payload joined #perl6
12:09 arnsholt Su-Shee: Peanut gallery, more like ;)
12:10 pugssvn r29952 | mberends++ | [docs/talks/p6.imp.2010.03.odp] slides of "Perl 6 Implementations in March 2010" from the Dutch Perl Workshop and the Copenhagen Perl 6 Hackathon 5th and 6th March 2010 (OpenOffice Presentation format)
12:13 ned so jealous.
12:23 colomon o/
12:30 wknight8111 joined #perl6
12:33 quester rakudo: augment class Int { method even { ? ( self % 2 ) } }; 42.even.say;
12:33 p6eval rakudo 974d9a: OUTPUT«Method 'even' not found for invocant of class 'Integer'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
12:33 quester rakudo: augment class Integer { method even { ? ( self % 2 ) } }; 42.even.say;
12:33 p6eval rakudo 974d9a: OUTPUT«Can't augment something that doesn't exist␤current instr.: 'perl6;Perl6;Grammar;add_name' pc 34122 (src/gen/perl6-grammar.pir:242)␤»
12:34 * quester wonders what class 42 really is...
12:35 masak my talk is online now. it's linked at the bottom of http://feather.perl6.nl/~masak/
12:36 masak thanks to all the people on the channel who helped yesterday with the slides :)
12:36 mberends rakudo: say 42.WHAT     # for quester
12:36 p6eval rakudo 974d9a: OUTPUT«Int()␤»
12:37 colomon rakudo: say PARROT(42)
12:37 p6eval rakudo 974d9a: OUTPUT«Integer␤»
12:37 colomon rakudo: say PARROT(1+41)
12:37 p6eval rakudo 974d9a: OUTPUT«Integer␤»
12:37 arnsholt Ah, there are some issues with augmenting classes that come from Parrot, no?
12:39 colomon Might be more accurate to simple say there are issues with classes that come from Parrot.
12:39 colomon I don't know if the augmenting is bad too or just a window into the problems.
12:40 masak the latter, methinks.
12:41 quester mberends, colomon, masak:  I think I've seen augments in some of the Rakudo internals.  Hmm... can anyone suggest a good way of converting Integer to Int offhand?
12:42 masak quester: what you're seeing is some kind of Parrot/Rakudo discrepancy that shouldn't really be visible.
12:42 colomon rakudo: say pir::box__PI(42)
12:42 p6eval rakudo 974d9a: OUTPUT«42␤»
12:43 colomon rakudo: say PARROT( pir::box__PI(42))
12:43 p6eval rakudo 974d9a: OUTPUT«Integer␤»
12:43 colomon blast, that doesn't help.
12:43 quester rakudo: pir::box__PI(42).perl.even.say;
12:43 p6eval rakudo 974d9a: OUTPUT«Method 'even' not found for invocant of class 'String'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
12:44 * quester ...String...?
12:44 colomon .perl returns Str
12:44 colomon well, String maybe.
12:44 colomon you're finding all the cracks this morning.
12:44 quester colomon:  Thank you.  Brain fail.
12:44 colomon and my fuddled brain isn't remembering how to work around them.
12:45 masak quester: 'String' is also a Parrot type.
12:46 quester rakudo: "42".even.say;
12:46 p6eval rakudo 974d9a: OUTPUT«Method 'even' not found for invocant of class 'Perl6Str'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
12:46 iblechbot joined #perl6
12:47 quester masak:  Isnt Perl6Str supposed to be, um... hiddien away inside of Rakudo, too?
12:47 uniejo rakudo: say (+pir::box__PI(42)).WHAT
12:47 quester s/hiddien/hidden/
12:47 p6eval rakudo 974d9a: OUTPUT«Num()␤»
12:47 masak quester: yes, I think so.
12:47 masak quester: sometimes error messages leak through.
12:48 colomon rakudo: say PARROT(42.Num.Int)
12:48 p6eval rakudo 974d9a: OUTPUT«Int␤»
12:48 colomon aha!
12:48 colomon rakudo: augment class Int { method even { ? ( self % 2 ) } }; 42.Num.Int.even.say 41.Num.Int.even.saty
12:49 p6eval rakudo 974d9a: OUTPUT«Confused at line 11, near "42.Num.Int"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
12:49 masak copypaste fail.
12:49 colomon rakudo: augment class Int { method even { ? ( self % 2 ) } }; 42.Num.Int.even.say; 41.Num.Int.even.say;
12:49 p6eval rakudo 974d9a: OUTPUT«0␤1␤»
12:49 TimToady good morning
12:49 colomon So augment works, but .even is backwards.
12:49 colomon TimToady: o/
12:49 TimToady who's winning?
12:50 pmichaud hello, #perl6
12:50 colomon \o
12:50 masak pmichaud! \o/
12:50 TimToady hah, I beat pmichaud
12:50 quester colomon:  Thank you.  Err... yes, that would be another brain failure on my part, sorry...
12:50 masak pmichaud, TimToady: all the peeps here say OH HAI
12:50 masak you'll soon be on-screen, I expect.
12:50 pmichaud OH HAI PEEPS!
12:50 TimToady OH HAI PEEPS!!!
12:50 pmichaud (hah, I beat TimToady)
12:51 TimToady hah, beat pmichaud++ again on !!!
12:51 masak :)
12:51 jnthn oh hai
12:51 masak not on-screen yet. :)
12:51 TimToady aww
12:51 masak now!
12:51 colomon oh, no, am I going to have to behave this morning?
12:51 pmichaud OH HAI PEEPS!!!
12:51 masak *lol*
12:51 colomon o/
12:51 jnthn :-)
12:52 masak so in a sense, we're a lot more than three people who are able to answer panel questions...
12:52 TimToady but correctly, that's another matter...
12:55 masak *lol* http://twitter.com/Jippi/status/10071258756
12:55 jonasbn joined #perl6
12:55 jonasbn http://twitter.com/Jippi/status/10071258756
12:56 jonasbn argh masak beat me to it
12:56 TimToady Perl 6 is trying to beat everyone to everything, more or less...
12:57 jonasbn so actually the only scary thing is the high chance of success
12:58 pmichaud I _wish_ that were the only scary thing :)
12:58 TimToady jnthn++ is always scary
12:59 jnthn ..compliment? :-)
12:59 jnthn .oO( well, at least I got karma... )
12:59 masak jnthn++ # scary!
13:00 mberends jnthn ~~ scary # True
13:01 TimToady rakudo: say "scary" but True
13:01 p6eval rakudo 974d9a: OUTPUT«No applicable candidates found to dispatch to for 'infix:<does>'␤current instr.: 'infix:<but>' pc 226837 (src/gen/core.pir:2921)␤»
13:01 TimToady alpha: say "scary" but True
13:01 p6eval alpha 30e0ed: OUTPUT«The but operator can only be used with a role or enum value on the right hand side␤in Main (file <unknown>, line <unknown>)␤»
13:01 TimToady well, at least it's a different error now...
13:02 TimToady or, maybe, it was a different error then...
13:06 colomon Ah, Bool's not an Enum yet because Enums don't actually work yet, right?
13:06 masak when I write 'our sub foo', the scope of the parameters in the signature of foo is a global scope rather than a lexical scope, yes?
13:06 TimToady uh, no
13:06 TimToady only 'foo' is aliased
13:07 masak so, how about this?
13:07 masak rakudo: my $a = 1; sub foo() { my $a = 2; our sub bar($x where $a) { say $x } }; bar(1); bar(2)
13:07 p6eval rakudo 974d9a: OUTPUT«1␤Constraint type check failed for parameter '$x'␤current instr.: 'bar' pc 255 (EVAL_1:102)␤»
13:09 TimToady looks like it's getting the wrong $a to me
13:09 * masak submits rakudobug
13:09 TimToady ($a isn't a parameter though)
13:10 pmichaud sub foo() { my $a = 2; our sub bar($x where $a) { say $x } }; bar(2);
13:10 pmichaud rakudo: sub foo() { my $a = 2; our sub bar($x where $a) { say $x } }; bar(2);
13:10 p6eval rakudo 974d9a: OUTPUT«Symbol '$a' not predeclared in bar␤current instr.: 'perl6;PCT;HLLCompiler;panic' pc 137 (compilers/pct/src/PCT/HLLCompiler.pir:101)␤»
13:10 pmichaud looks like the where clause is attached to the wrong outer scope
13:10 TimToady it does at that
13:11 Zn4rK joined #perl6
13:12 TimToady std: sub foo() { my $a = 2; our sub bar($x where $a) { say $x } }; bar(2);
13:12 p6eval std 29952: OUTPUT«ok 00:01 109m␤»
13:13 TimToady STD might actually be looking up $a starting inside the inner sub's scope
13:13 TimToady in fact, it has to, in case it's an earlier parameter
13:13 masak nod.
13:13 TimToady std: sub foo() { my $a = 2; our sub bar($x where $x) { say $a } }; bar(2);
13:14 pmichaud I think that rakudo somewhat gets that right already
13:14 p6eval std 29952: OUTPUT«ok 00:01 107m␤»
13:14 masak a parameter list actually introduces a lot of small nested scopes, doesn't it?
13:14 pmichaud rakudo:  sub foo($a, $x where $a) { say $x; };  foo(2,2);
13:14 p6eval rakudo 974d9a: OUTPUT«2␤»
13:14 pmichaud rakudo:  sub foo($a, $x where $a) { say $x; };  foo(2,3);
13:14 p6eval rakudo 974d9a: OUTPUT«Constraint type check failed for parameter '$x'␤current instr.: 'foo' pc 181 (EVAL_1:77)␤»
13:15 TimToady so it sounds like it's splitting a hair that doesn't need splitting
13:15 pmichaud it's just that the scope of the parameter block ends up with the wrong outer, I think
13:15 TimToady I don't have a parameter block, I just use the one that will end up inside {}
13:15 Zn4rK hej niklas
13:16 TimToady scared me, thought it was christmas already
13:16 frettled Now that's worrysome.
13:17 masak jnthn++ mberends++ # you are so awesome
13:17 * pmichaud agrees with masak++
13:19 TimToady *++
13:19 masak std: *++
13:19 p6eval std 29952: OUTPUT«ok 00:01 104m␤»
13:19 TimToady rakudo: say grep *++, 1,2,3
13:19 p6eval rakudo 974d9a: OUTPUT«Cannot assign to readonly value␤current instr.: '&die' pc 16803 (src/builtins/Junction.pir:347)␤»
13:20 masak that's correct, no?
13:20 TimToady rakudo: my @foo = 1,2,3; say grep *++, @foo
13:20 p6eval rakudo 974d9a: OUTPUT«Cannot assign to readonly value␤current instr.: '&die' pc 16803 (src/builtins/Junction.pir:347)␤»
13:20 colomon wait, did that whatever just form a closure in Rakudo?
13:20 TimToady maybe not
13:20 pmichaud no, it's attempting to increment the Whatever constant :-)
13:20 TimToady rakudo: say (*++).WHAT
13:20 p6eval rakudo 974d9a: OUTPUT«Cannot assign to readonly value␤current instr.: '&die' pc 16803 (src/builtins/Junction.pir:347)␤»
13:20 pmichaud rakudo:  say (*).WHAT;
13:20 TimToady I think the answer is no
13:20 p6eval rakudo 974d9a: OUTPUT«Whatever()␤»
13:21 pmichaud rakudo: say (*).succ
13:21 p6eval rakudo 974d9a: OUTPUT«!whatever_dispatch_helper␤»
13:21 colomon rakudo: say (*+1).WHAT
13:21 p6eval rakudo 974d9a: OUTPUT«Method 'Num' not found for invocant of class 'Block'␤current instr.: 'perl6;Mu;' pc -1 ((unknown file):-1)␤»
13:21 pmichaud (no, we aren't doing whatever closures just yet)
13:21 TimToady alpha: say (*++).WHAT
13:21 p6eval alpha 30e0ed: OUTPUT«Block()␤»
13:21 TimToady alpha: my @foo = 1,2,3; say grep *++, @foo
13:21 p6eval alpha 30e0ed: OUTPUT«123␤»
13:22 TimToady alpha: my @foo = 1,2,3; say grep ++*, @foo
13:22 p6eval alpha 30e0ed: OUTPUT«123␤»
13:22 TimToady alpha: my @foo = 1,2,3; say map ++*, @foo
13:22 p6eval alpha 30e0ed: OUTPUT«111␤»
13:22 TimToady er...
13:22 masak it's not forming a closure.
13:22 masak that's the whole explanation.
13:22 TimToady alpha: my @foo = 1,2,3; say map +*, @foo
13:22 p6eval alpha 30e0ed: OUTPUT«123␤»
13:24 TimToady well, gee, the spec generalized it to all unaries and binaries, what, a whole week ago.  why isn't it done yet?  esp in alpha, that had a month head start...
13:24 masak :)
13:24 masak std: * ?? * !! *
13:24 p6eval std 29952: OUTPUT«ok 00:01 105m␤»
13:24 TimToady but not to ternery  :)
13:24 colomon TimToady: should that be all binaries excepting the Range constructors?
13:25 TimToady all ops except those that declare they will do it themselves
13:25 TimToady which Range will
13:25 colomon How do you declare that?
13:26 TimToady proto infix:<..> ($min, $max) is like(Whatever-and-stuff) {...}
13:26 TimToady where "stuff" is WhateverCode
13:27 TimToady :)
13:27 Zn4rK niklas jag tror i m�ste g�
13:27 masak Zn4rK: fel kanal?
13:27 TimToady S02:936
13:29 * TimToady wonders if 'fel' is related to olde english 'fell', as in 'a fell beast'
13:29 * masak checks
13:30 masak 'fell' comes from Goth 'falljan', 'to cause to fall'.
13:30 masak oh wait.
13:30 masak that's the verb.
13:31 TimToady to cause jan to fall :)
13:31 masak the adjective comes from Old French, nominative of 'felon', wicked.
13:31 frettled masak: so that fell was a FAIL :)
13:31 pmichaud 'felon' vs. 'fallen', I wonder?
13:31 TimToady which might still be related to "fallen" if you go back
13:31 TimToady where's my AmHer...
13:32 masak Swedish 'fel' ultimately comes from French 'faute', so seemingly not related.
13:32 arnsholt Yeah, Norwegian "feil" is ultimately connected with Latin fallere
13:33 masak we also have a verb, 'att fela', meaning 'to err'.
13:33 colomon TimToady++
13:33 masak so it seems to have more to do with failure than falling.
13:33 arnsholt I think the f in falljan would have a different reflex in its Latin cognate
13:33 frettled Rewind: maybe I should've said «that was a fell fel fail»
13:33 masak frettled: :)
13:34 masak so, actually, Lolnglish is sort of reviving the Swedish 'fel' through its 'FAIL'. they even have the same etymological roots.
13:34 TimToady felon was "yellow" or "bile" in I-E
13:35 masak that's wicked, for sure.
13:35 jnthn Grr. :-/ So Rakudo won't build on Win 7. :-(
13:35 jnthn (segfault when loadlib-ing dynops from a PBC...)
13:36 colomon TimToady: back to the whatever closures... if I say something like $a = *+3; $b = $a+2 is that expected to leave $b with { $_ +  5 } effectively?
13:37 TimToady good question
13:37 quester Well, if you're done with the fell fel fail, I'm going to eat. I'm longing for some imitation Vietnamese noodle soup, off fo' faux pho &.
13:38 TimToady I dunno
13:38 masak quester: :)
13:38 * colomon has been dreaming about math on closures for about ten months now.... ;)
13:39 TimToady 'course, 'round here people pronounce it Vietnamese, which doesn't rhyme
13:41 quester left #perl6
13:43 TimToady if we did, we'd probably have to make Whatever a kind of junctional, outside-of-any type
13:44 pmichaud well, that was the reason Rakudo originally came up with WhateverCode -- so that (*+3)+2  would still produce a code object of some sort.
13:44 TimToady but instead of autothreading, autocurry
13:44 TimToady yes, but without writing out the actual subs
13:45 * TimToady tries to grok * + (1|2)
13:46 masak o.O
13:47 pmichaud alpha:  my $a = * + (1|2);  say $a(3);
13:47 p6eval alpha 30e0ed: OUTPUT«any(4)␤»
13:47 masak hm.
13:47 pmichaud hm.
13:47 TimToady hm!
13:47 TimToady hm?
13:47 colomon huh?
13:47 pmichaud alpha:  my $a = 3 + (1|2);  say $a;
13:47 p6eval alpha 30e0ed: OUTPUT«any(4, 5)␤»
13:48 pmichaud well, alpha sees   * + (1|2)   as a junctional dispatch
13:48 pmichaud so I'm not sure what ends up in $a
13:48 pmichaud alpha:  my $a = * + (1|2);  say $a.WHAT;
13:48 p6eval alpha 30e0ed: OUTPUT«Junction()␤»
13:49 pmichaud so, $a ends up as a junction of WhateverCode, I guess.
13:49 TimToady .(3) oughta autothread over that, ya'd think
13:49 jnthn Aye, it'd auto-thread.
13:50 kfo joined #perl6
13:52 * TimToady wonders whether Whatever and WhateverCode are really strange parametric junctions...
13:53 TimToady what's my brane doing all over the room in bits?
13:54 masak we're simultaneously praising and hating {*} and #= right now in Copenhagen...
13:54 TimToady #= is already dead, as far as I'm concerned
13:55 masak it's still in S05.
13:55 pmichaud yes, it doesn't get used much anymore
13:55 jonasbn that would be undead then
13:55 TimToady hmm
13:55 pmichaud we could likely de-huffmanize #=  now that it's less common
13:55 masak yes, please.
13:55 pmichaud i.e., put any parameters as part of the {*} token.
13:56 pmichaud s/parameters/arguments/
13:56 pugssvn r29953 | lwall++ | [S05] kill {*} and #=
13:56 masak \o/
13:56 pmichaud oh, is {*} gone?
13:57 pmichaud that may end up being... unfortunate.
13:57 pmichaud although I guess one can always do a direct closure instead.
13:57 jnthn ...grr, that's a pain.
13:57 TimToady the presence of {*} almost always indicates the need to refactor
13:57 jnthn You get away with it in STD because you only care about parsing, not actually Doing Stuff. :-)
13:57 TimToady STD hasn't used {*} for months
13:58 masak TimToady: I like it when you use that kind of phrase ('$X indicates the need to refactor'). there's really no good response to it :)
13:58 jnthn We may be able to find another way...
13:58 pmichaud jnthn: we already have another way
13:58 TimToady well, we can still have an action call, but {*} #= won't be it, I suspect
13:58 jnthn pmichaud: well, yes, but I'm lazy :-)
13:58 TimToady see <O()>
13:59 TimToady oh, I had a problem with <O()> last night, thinking about default parse rules
13:59 TimToady suppose we make the body of a proto be the default
13:59 TimToady we get
13:59 TimToady proto token infix is binary is defequiv(%additive) { <sym> <O(|%additive)> }
14:00 masak 'defequiv'?
14:00 TimToady but then the O is wrong if they 'is equiv' it
14:00 TimToady that's redundant, if we put the <O>
14:00 TimToady proto token infix is binary { <sym> <O(|%additive)> }
14:00 TimToady or
14:00 TimToady proto token infix is binary is defequiv(%additive) { <sym> <O(*)> }
14:00 colomon jnthn: any luck with Hash attributes?
14:01 jnthn colomon: I need to fix Rakudo building here before I can do much :-(
14:01 TimToady but still not sure that the body of the proto is the right place for a default "is parsed"
14:01 TimToady it's a *handy* place tho
14:01 jnthn (Get a segfault)
14:01 colomon jnthn: oh noes!
14:02 masak std: ?( $*RIGHT === $*HANDY )
14:02 new_perl6_hacker joined #perl6
14:02 p6eval std 29952: OUTPUT«ok 00:01 108m␤»
14:02 masak new_perl6_hacker: welcome back!
14:02 martinro joined #perl6
14:02 masak martinro: hey :)
14:02 TimToady s/new/newish/
14:02 new_perl6_hacker thanks, I was there this morning ...
14:02 colomon jnthn: I've been messing around a bit with the class and role tests a bit, and there are all sorts of weird little bugs...
14:03 jnthn colomon: Yes.
14:04 jnthn There's a reason a bunch of S12-foo are still commented out. :-)
14:04 colomon jnthn: but I won't bug you with them until you've got a Rakudo build again.  :)
14:04 jnthn Yeah...the issue is...nasty.
14:05 jnthn OH!!
14:06 colomon The problem is you're using Windows?  :)
14:06 masak colomon: how intolerant! :)
14:06 jnthn IIUC, the problem is that a realloc call is made...and the return value is ignored.
14:06 jnthn *sigh*
14:07 masak jnthn: so freed memory space is subsequently overwritten?
14:07 colomon that seems like a bad thing on any platform?
14:07 jnthn well, the point ain't updated to the new location
14:07 jnthn colomon: Yes, it is.
14:07 jnthn C writing fail.
14:08 jnthn re-compiled Parrot now...maybe it's fixed it.
14:08 * jnthn crosses fingers
14:08 masak he actually crossed them, too.
14:08 colomon masak: For the record, Windows machines were my primary computers from 1995-2008.  But I hated Vista so much I decided to get my first Mac...
14:09 jnthn omg, I think it helped...
14:09 jnthn colomon: I just stuck with XP. :-)
14:09 jnthn (Until Win7 arrived)
14:09 masak colomon: Software sucks.
14:10 arnsholt jnthn: I knocked on wood earlier today. It triggered my segfault again =)
14:10 TimToady my problem on the proto body is that we also currently write the <infix> dispatch using the same name, so we'd essentially be ignoring the given body and substituting the dispatcher, and only using the proto body for the generic 'is parsed'
14:11 jnthn OK, I have a patch that fixes my build. I can haz a productive again.
14:11 colomon \o/
14:11 TimToady jnthn++ has a fail fail
14:12 Psyche^ joined #perl6
14:12 masak no, a fail fail isn't the same thing as fixing something.
14:12 TimToady does that make it a fail fail fail?
14:12 masak the fail had a fail, possibly.
14:12 jnthn Well, it does now fail to fail.
14:13 masak How much fail would a fail fail fail, if a fail fail could fail fail?
14:13 TimToady cheezburgerz
14:14 TimToady speaking of which, the sky is starting to get light here
14:14 m-locks we needs a LOL version of perl, like that lolpython
14:14 masak didn't quietfanatic do an NCI in Perl 6 at one point?
14:15 masak TimToady: not much of a panel going on here, I'm afraid.
14:15 TimToady yeah, I saw they took the slot for something else
14:15 masak mostly a kind of newbie tutorial.
14:15 pmichaud (newbie tutorial) +1
14:15 TimToady ISFINE
14:15 pmichaud that was what I had been planning for my slot anyway
14:16 masak right now jnthn++ and mberends++ are doing the best to scare the newbies away by explaining their scary/awesome NCI code. :)
14:16 m-locks heh
14:16 TimToady was planning to spend the weekend several TZ to the east of here anyway, so as not to miss all the hackathon
14:16 pmichaud same here
14:16 pmichaud (still planning to do that)
14:17 TimToady luv 2 scare dey little newbies way
14:17 m-locks i've been translating those tutorials moritz__ and lichtkind have written, at least i  can read them quite easily
14:17 colomon I ended up with a very busy day scheduled for tomorrow, alas -- playing music for two church services in the morning, GMing in the afternoon.
14:18 TimToady yes, well, I can read Russian till the time comes to understand it
14:18 jnthn It wasn't scary, it was just beautifully terrifying.
14:18 arnsholt That NCI stuff was very, very cool
14:19 new_perl6_hacker joined #perl6
14:19 TimToady I'm only playing for one, but I play twice as loud, since I'm the drummer.
14:19 pmichaud Much of Perl 6 is beautifully terrifying.  See also "Camelia".
14:19 arnsholt Hehe
14:19 new_perl6_hacker http://perlcabal.org/syn/S17.html will there be support for event like activities on files and sockets etc
14:19 TimToady I'd be terrified if I met a butterfly with a 3 meter wingspan...
14:20 TimToady or was it 5?
14:20 pmichaud 3, last I heard.
14:20 masak TimToady: 5 feet, perhaps?
14:20 TimToady mebbe she grew
14:20 TimToady she's young, after all
14:20 colomon TimToady: I was asked to play a drum (bodhran) for this as well, and had to point out that I don't own one and don't know how to play it, either.  :)
14:21 jnthn Parrot r44705 fixes a nasty Rakudo-build segfault.
14:21 jnthn But doesn't seem to hit many people.
14:21 jnthn (You usually luck out.)
14:21 TimToady colomon: just play it like a conga
14:21 colomon jnthn: should we bump parrot in rakudo, then?
14:22 jnthn colomon: Can do, or can wait for the next reason to bump.
14:22 jnthn Doesn't see to hit anyone else.
14:22 colomon TimToady: I can't really properly play conga, either.  Though I did pretend to play quad toms in high school.
14:22 jnthn Also I didn't check that no other Parrot changes cause breakage.
14:22 masak jnthn: s/Thought/Thou/. otherwise, nice message :)
14:22 masak hm. s/Though/Thou/, I mean.
14:22 jnthn oh crap
14:22 jnthn I'm tired! :-)
14:22 colomon I can try bumping parrot here, mostly just watching the boy on a Saturday morning.
14:23 new_perl6_hacker http://perlcabal.org/syn/S17.html will there be support for event like activities on files and sockets etc????
14:23 TimToady my boy don't take much watchin' anymore
14:23 TimToady he'll proably sleep the night through, and then some...
14:23 TimToady b
14:24 baest rakudo: use Test; my @a = 2,3; is(@a, (3, 2))
14:24 p6eval rakudo 974d9a: OUTPUT«not ok 1 - ␤#      got: [2, 3]␤# expected: (3, 2)␤»
14:24 baest rakudo: use Test; my @a = 2,3; is(@a, (2, 3))
14:24 p6eval rakudo 974d9a: OUTPUT«not ok 1 - ␤#      got: [2, 3]␤# expected: (2, 3)␤»
14:24 colomon uh, that's weird
14:24 colomon Parrot revision r44705 required (currently r44371)
14:24 borup joined #perl6
14:24 colomon To automatically checkout (svn) and build a copy of parrot r44705,
14:24 colomon try re-running Configure.pl with the '--gen-parrot' option.
14:24 colomon Or, use the '--parrot-config' option to explicitly specify
14:24 colomon the location of parrot_config to be used to build Rakudo Perl.
14:24 baest yeah, I thought so :)
14:25 TimToady rakudo: use Test; my @a = 2,3; is(@a, [2,3])
14:25 p6eval rakudo 974d9a: OUTPUT«ok 1 - ␤»
14:25 jferrero joined #perl6
14:25 colomon that's what I get when I run perl Configure.pl --gen-parrot
14:26 masak baest: it's the difference between a Seq and an Array, I think.
14:26 baest TimToady: yes, I guessed that, but I've seen several test in spectest which does the is(@a, (2,3) style
14:26 TimToady probably from back when lists promoted to arrays
14:27 baest ok, so that should be change in the tests, right?
14:27 TimToady yeah, unless we change our minds again :)
14:27 masak lists don't promote to arrays?
14:28 pmichaud all of the list/array/iterator/seq stuff is "up in the air" at the moment, I think.
14:28 pmichaud well, not *all*, but a lot.
14:28 masak happy juggling.
14:28 pmichaud at the moment, parcels promote to Seq
14:28 pmichaud (in item conetxt)
14:28 jnthn colomon: Got example to hand of the has %.foo issue?
14:28 TimToady S03:3105
14:28 TimToady grr
14:28 pmichaud my $a = (1,2,3);  say $a.WHAT;
14:28 TimToady S02:3105
14:28 pmichaud rakudo: my $a = (1,2,3);  say $a.WHAT;
14:28 TimToady sb Seq
14:28 p6eval rakudo 974d9a: OUTPUT«Seq()␤»
14:29 colomon rakudo: class A { has %.foo; }; my $a = A.new;
14:29 p6eval rakudo 974d9a:  ( no output )
14:29 pmichaud rakudo: my $a = (1,2..5,3);  say $a.WHAT;
14:29 p6eval rakudo 974d9a: OUTPUT«Seq()␤»
14:29 colomon rakudo: class A { has %.foo; }; my $a = A.new; say $a.foo.WHAT
14:29 p6eval rakudo 974d9a: OUTPUT«Method 'WHAT' not found for invocant of class 'Hash'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
14:29 colomon jnthn: there you go
14:29 pmichaud I think likely a BUILD issue
14:29 TimToady WHAT!
14:29 jnthn > class A { has %.foo; }; my $a = A.new; say $a.foo.WHAT
14:30 jnthn Hash()
14:30 jnthn Fixed...spectesting.
14:30 masak jnthn++
14:30 masak jnthn is back in the saddle!
14:30 TimToady no, that one is ++jnthn
14:30 masak :)
14:30 colomon ye-haw!
14:30 * masak hasn't gotten into the habit of giving prefix karma yet
14:30 TimToady now fix the rest of 'em before we ask :P
14:31 masak when's --ircnick applicable?
14:31 jnthn When I made the silly bug in the first place. :-)
14:31 masak jnthn: no, it must be before something.
14:32 TimToady I think it has to be a spec error
14:32 masak making a silly bug in the first place merits a jnthn--
14:32 jnthn :-P
14:32 jnthn I'll try and be more perfect.
14:32 jnthn I blame my lapse on insufficient pivo.
14:33 masak there is no 'try'... and no 'more perfect' either :P
14:33 TimToady --gen-parrot
14:33 masak :)
14:33 jnthn rakudo: try { more perfect }; say "see?"
14:33 p6eval rakudo 974d9a: OUTPUT«see?␤»
14:33 masak ++jnth :)
14:33 masak *jnthn
14:33 TimToady um
14:34 TimToady std: try { more perfect }; say "see?"
14:34 p6eval std 29953: OUTPUT«Undeclared routines:␤  'more' used at line 1␤    'perfect' used at line 1␤ok 00:01 107m␤»
14:34 jnthn Yeah, we don't warn yet on undefined routines.
14:34 masak I won't report that.
14:34 jnthn ...becuase you already did last week? :-)
14:35 masak quite possibly.
14:35 jnthn :-P
14:35 masak I don't know anymore! the RT is too big!
14:35 TimToady well, now, whose fault is that?
14:35 masak when I said I'd deluge you with tickets, I expected you all to frigth back!
14:35 pmichaud 14:31 <jnthn> When I made the silly bug in the first place. :-)
14:36 pmichaud masak: I did close a few tickets last week :)
14:36 masak ++pmichaud
14:36 * TimToady is trying to figure out how to frigth
14:36 masak hm, I guess that's for future ticket closing.
14:36 masak TimToady: it's related to how babby is formed.
14:36 TimToady oh, okay
14:36 pmichaud anyway, I'm hoping we can close some tickets over the next couple of hackathon days :)
14:37 jnthn I'm truly sorry for your lots
14:37 masak jnthn: 'truely' :)
14:37 TimToady chroolie
14:37 jnthn ...ok, now I don't know which is the lol spelling and which is the English.
14:37 masak who does? :)
14:37 jnthn Ceiling cat.
14:37 baest rakudo: my @a; say @a.list
14:37 p6eval rakudo 974d9a: OUTPUT«Null PMC access in elements()␤current instr.: 'perl6;SeqIter;get' pc 13979 (src/builtins/Routine.pir:113)␤»
14:38 * masak submits rakudobug
14:38 jnthn oh no, not that bug.
14:38 * TimToady gives jnthn++ another no so he can have noes
14:38 masak *lolland*
14:39 jnthn colomon: yay, patch works
14:39 jnthn I gotta go finish moving house now...will push, maybe you can enable some spectests.
14:39 masak rakudo: my @a = 1, 2, 3; say @a.list
14:39 p6eval rakudo 974d9a: OUTPUT«123␤»
14:39 colomon I'm spectesting the new parrot now... but I had to blow away my parrot directory to get --gen-parrot to work with it!
14:39 masak rakudo: my @a = 1; shift @a; say @a.list
14:40 p6eval rakudo 974d9a: OUTPUT«␤»
14:40 colomon jnthn++
14:40 mberends travel Copenhagen -> Lund -> Copenhagen  &
14:40 pmichaud .list is still suspect-ish
14:40 colomon Does it work?  Should it exist?  What should it do?  ;)
14:40 pmichaud exist, yes.
14:41 pmichaud it basically returns the "list" form of the invocant
14:41 pmichaud its exact specification and implementation need some rethinking
14:41 pmichaud I'm likely to work on that today.
14:41 colomon pmichaud++
14:41 pmichaud (unless other events here overtake me again, as they did yesterday)
14:41 jnthn pushed
14:41 jnthn gone
14:41 jnthn o/
14:42 masak o/
14:42 colomon \o
14:42 TimToady o\
14:43 dalek rakudo: 8505d39 | Worthington@.(none)++ | src/builtins/Mu.pir:
14:43 dalek rakudo: Fix has %.noms.
14:43 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/8​505d39fc6aa7fe963b519a1ca9a2b4134823ffb
14:44 robertml joined #perl6
14:46 colomon Nice author name there...
14:47 pugssvn r29954 | baest++ | Put list inside [] to do array comparison
14:49 pugssvn r29955 | baest++ | Put list inside [] to do array comparison, fix error in test which was chop readonly string and fudge an empty array test
14:55 baest colomon: do you remember yesterday, your change regarding returning Bool in ===, I've noticed that you didn't update Num. Also there was a minor thing with the syntax, so here's a patch if you want it: http://paste.lisp.org/display/96001
14:57 colomon baest: fixing it for the other types as well?
14:57 baest colomon: yes, I only found it for str, int and num
14:57 colomon rakudo
14:58 colomon rakudo: say 4 === 5
14:58 p6eval rakudo 974d9a: OUTPUT«0␤»
14:58 colomon rakudo: say (4 === 5).WHAT
14:58 p6eval rakudo 974d9a: OUTPUT«Bool()␤»
14:58 IllvilJa joined #perl6
14:59 baest rakudo: say (4.0 === 5.0).WHAT
14:59 p6eval rakudo 974d9a: OUTPUT«Bool()␤»
14:59 baest weird
14:59 colomon give me a minute here, and I'll see what I can do.
14:59 PacoLinux joined #perl6
15:00 dalek rakudo: 43f5a52 | (Solomon Foster)++ | build/PARROT_REVISION:
15:00 dalek rakudo: Bump parrot.
15:00 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/4​3f5a52c83ba384d690f14e6b579295329edefd3
15:00 baest colomon: of course, the other part is '&prefix:?' instead of 'prefix:?' which I could see in Str that was the preferred version
15:01 colomon I don't know the status of the leading &, but it definitely needs to be prefix:<?> now, I think...
15:02 pmichaud any instances of 'prefix:?' are wrong and should be removed asap.
15:02 baest colomon: I'm not sure, but I just figured the other way around because of: http://github.com/rakudo/rakudo/commit/f​d288ffe2c2b2bb6437b726efe612a7e10487525
15:02 colomon Indeed.
15:03 colomon hmmmm....
15:03 pmichaud if you want to call the prefix:<?> function from PIR, it's   "&prefix:<?>"
15:03 pmichaud anything else is likely bogus.
15:03 pmichaud (same for other operators -- ampersands and angles are required)
15:05 * colomon is trying to get the === test file up and running again...
15:06 colomon rakudo: say 1 !=== 4
15:06 p6eval rakudo 974d9a: OUTPUT«Confused at line 11, near "say 1 !==="␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
15:06 baest general question. If i have a minor patch should a post to a pastebot, push it to a clone on github or some other way
15:06 colomon pmichaud: any reason !=== can't just be not === ?
15:06 pmichaud that works for now;   normally  !op is meta
15:06 TimToady that's what the metaop is supposed to do
15:07 colomon !!!!
15:07 colomon I didn't realize ! was a meta op
15:07 pmichaud it is.
15:07 pmichaud we haven't implemented that in rakudo yet
15:07 pmichaud so in the meantime we've just created them explicitly as we need them
15:08 colomon permission to do that in this case?
15:08 pmichaud sure, that's fine.
15:08 TimToady S03:3927
15:08 * colomon thinks ! sounds like meta op LHF....
15:09 pmichaud it shouldn't be too bad; we already have the op= metaops.
15:09 martinro joined #perl6
15:11 TimToady rakudo: say 1,2 X 3,4
15:11 p6eval rakudo 974d9a: OUTPUT«Confused at line 11, near "say 1,2 X "␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
15:12 TimToady rakudo: say 1,2 Z 3,4
15:12 p6eval rakudo 974d9a: OUTPUT«1324␤»
15:12 TimToady odd that X isn't there but Z is
15:13 TimToady rakudo: say 1,2 X+ 3,4
15:13 p6eval rakudo 974d9a: OUTPUT«Confused at line 11, near "say 1,2 X+"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
15:13 colomon TimToady: my fault, I guess.
15:13 colomon I wanted Z, so I made it happen.
15:13 TimToady what, for implementing Z
15:13 TimToady :
15:13 TimToady :)
15:13 colomon :)
15:13 krr joined #perl6
15:15 colomon okay, I've got !=== working here, which makes S03-operators/value_equivalence.t run, but it still has a 3 fails.
15:16 colomon === doesn't work on array references right now.  (err, test says array, actually is probably a Parcel?
15:16 colomon )
15:16 colomon my @a = (1,2,3);
15:16 colomon no, I guess that's an Array.
15:17 arnsholt What's the procedure for bringing back test files?
15:17 arnsholt I've found a file that can be brought back, as long as a couple of tests are marked TODO
15:17 colomon mark 'em todo and bring 'em back!
15:17 pmichaud ...array reference?
15:18 arnsholt colomon: Righties
15:18 colomon my @a = (1,2,3);
15:18 colomon my @b = (1,2,3);
15:18 colomon ok  (\@a === \@a), "=== on array references (1)";
15:18 colomon ok  (\@b === \@b), "=== on array references (2)";
15:18 colomon both those fail
15:18 pmichaud the correct term is now "capture"
15:18 pmichaud (I think)
15:19 colomon arnsholt: todo tests which are running are much more valuable than tests that aren't running.
15:19 m--locks joined #perl6
15:20 arnsholt Indeed. The correct procedure is putting "#?rakudo todo" above the ok/is call, no?
15:20 colomon with a reason, if possible
15:20 colomon #?rakudo todo 'scalar reference equivalence'
15:20 arnsholt Yeah, pondering that now
15:20 colomon for instance.
15:21 pugssvn r29956 | colomon++ | [t/spec] Fudge value_equivalence.t.
15:22 baest colomon: ok, and after a patch is created what is the best way to post it? I have 2 files ready for bringing back along with a minor change
15:22 arnsholt Do I have to call make spectests to do the fuding of the spectests?
15:22 colomon patch to the tests or patch to rakudo itself?
15:23 baest colomon: rakudo, I committed the test before
15:23 baest tests
15:23 colomon pmichaud: what is the preferred way of receiving Rakudo patches?
15:23 pmichaud rt
15:23 colomon you can send them to rakudobugs....
15:23 colomon that is, rt.
15:23 baest pmichaud, colomon: thanks
15:24 baest :)
15:24 baest will do
15:24 pmichaud afaik, http://wiki.github.com/rakudo/​rakudo/steps-to-create-a-patch is still valid.
15:24 pmichaud (if not, it needs to be updated)
15:25 pmichaud steps 4-6, anyway.
15:25 pmichaud steps 1-3 aren't required
15:25 pmichaud actually, just 4 and 6
15:26 baest pmichaud: sorry, I forgot about that page
15:26 pmichaud the main item is that we'd like commits to be squashed (easier to review), and that it go to RT so it can be tracked.
15:30 avar Why are you recommending that commits be squashed instead of people working on topic branches? Then you can just review the branch as is without destroying commit information
15:31 avar People can also just send in "please review x..y"
15:31 pmichaud reviewing a branch is hard
15:31 avar why?  you just diff / log from where the branch diverged to where its head is at now
15:31 pmichaud I have to pull the branch
15:32 pmichaud then do the diff
15:32 pmichaud also, I'm not sure that the individual commits are that important
15:32 pmichaud at any rate, this is the process we're using for now and I'm not in a rush to try to learn a new one until after April
15:34 pmichaud also, with "please review x..y", there's no record of the patch should it be not applied (and the github account and/or branch disappears)
15:34 dalek rakudo: ab3f44b | (Solomon Foster)++ | src/ (2 files):
15:34 dalek rakudo: Quick implementation of !===.  (Should be a meta op, but this will work for now.)
15:34 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/a​b3f44bb1435b28fb08ef3ab03433d8500718bb6
15:34 dalek rakudo: 7882db4 | (Solomon Foster)++ | t/spectest.data:
15:34 dalek rakudo: Turn on S03-operators/value_equivalence.t.
15:34 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/7​882db4f0b6eda5174f615569253cae690d44b74
15:35 pugssvn r29957 | colomon++ | [t/spec] Defudge passing tests.
15:35 Psyche^ joined #perl6
15:37 martinro joined #perl6
15:39 baest hmm git format-patch doesn't do anything....
15:39 colomon should have made a file
15:39 colomon you might need to tell it what commits go into the patch, though.
15:39 arnsholt Hmm. Does Test.pm in the new master have todo?
15:40 pmichaud I'm pretty sure it does/must.
15:40 arnsholt Then I'm doing something wrong
15:41 baest colomon: yes, git format-patch -M 054b1b6d602c823b318f81e473f6fde5f12becf6 does nothing even though I can see the commit with git log
15:41 arnsholt nm. Think I found it
15:41 colomon baest: last time I did it, I used git format-patch -1
15:42 baest colomon: wheee, success, thanks!
15:42 pmichaud afk for a bit
15:43 m6locks joined #perl6
15:44 arnsholt I had no reason in the todo fudge, which resulted ins a no-arg call to todo
15:44 arnsholt Which isn't allowed, apparently
15:46 payload left #perl6
15:46 pugssvn r29958 | arnsholt++ | [t/spec] Fudged two tests in S06-traits/is-rw.t
15:47 arnsholt There. Now someone with the privs can bring S06-traits/is-rw.t back in spectest.data
15:47 colomon arnsholt: give me a min...
15:49 pugssvn r29959 | colomon++ | [t/spec] Add a bunch of tests to make sure === and !=== return Bool.
15:52 dalek rakudo: 28f5203 | (Solomon Foster)++ | t/spectest.data:
15:52 dalek rakudo: Turn on S06-traits/is-rw.t.  arnsholt++.
15:52 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/2​8f5203fdabe1ce247be0b1cc4964e3ba1c54d90
15:57 cognominal Performing 'gmake realclean' ...
15:57 cognominal Makefile:3660: compilers/imcc/Rules.mak: No such file or directory
15:57 cognominal gmake: *** No rule to make target `compilers/imcc/Rules.mak'.  Stop.
15:57 cognominal ...on Snow Leopard
15:57 cognominal when running  perl Configure.pl --gen-parrot on a fresh rakduo
15:58 jferrero joined #perl6
15:58 pugssvn r29960 | colomon++ | [t/spec] === tests on Rat and Num.
15:58 colomon cognominal: is that latest?
15:59 colomon and fresh fresh?  I got that something like that when I tried updating, but when I blew away the parrot directory --gen-parrot worked fine for me.
15:59 cognominal ok, will do a rm --rf rakudo/parrot
16:01 arnsholt Is there any particular reason why there are two files named pi.t?
16:02 arnsholt They do almost the same thing, too
16:02 colomon arnsholt: no idea.
16:05 * colomon is startled to see that there already was a !=== implementation, which couldn't possibly have been running thanks to the lack of !=== in the grammar....
16:12 cognominal thx colomon
16:12 cognominal it works
16:13 colomon \o/
16:14 payload joined #perl6
16:17 payload1 joined #perl6
16:24 snarkyboojum_ joined #perl6
16:25 pugssvn r29961 | colomon++ | [t/spec] Unfudge test that now works.
16:26 dalek rakudo: ba6cd4e | (Solomon Foster)++ | src/builtins/ (2 files):
16:26 dalek rakudo: Change === on Num to return Bool, and clean up === on Int.  baest++
16:26 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/b​a6cd4e9ea7cc14dafc2759e34808f48b2f2a929
16:26 simcop2387 joined #perl6
16:29 jmarti joined #perl6
16:41 m6locks oh, i didn't know linus torvalds created git
16:41 m6locks nice
16:42 TimToady we all have our faults
16:45 m6locks ...but it's not compiling on that shell box :(
16:47 abra joined #perl6
16:48 simcop2387 joined #perl6
16:50 justatheory joined #perl6
16:54 arnsholt S02-literals/quoting-unicode.t can be brought back without changes
16:54 quietfanatic phenny: tell masak It wasn't so much of an NCI as a wrapper around Parrot's NCI, combined with a C parser that figured out the hard stuff for you.
16:54 phenny quietfanatic: I'll pass that on when masak is around.
16:56 Trashlord joined #perl6
16:56 quietfanatic phenny: tell masak Except that the parser wasn't very good and there weren't any better ones I could use.
16:56 phenny quietfanatic: I'll pass that on when masak is around.
16:57 arnsholt rakudo: my $a = 3; say "$a".WHAT;
16:57 p6eval rakudo ba6cd4: OUTPUT«Int()␤»
16:57 arnsholt Known issue or new?
17:04 lue oh hello there
17:05 Trashlord hi
17:05 quietfanatic alpha: Q:PIR{$P0 = loadlib '/usr/lib/libcrypt.so'␤$P1 = dlfunc $P0, 'crypt', 'ttt'␤set_hll_global ['Link';'C';'NCI'], '$crypt', $P1}; &C::crypt = sub ($p1, $p2) {$Link::C::NCI::crypt($p1, $p2)}; say C::crypt('Password', '$1$Salt');
17:05 p6eval alpha 30e0ed: OUTPUT«$1$Salt$3By6sIxwjQONPKbAQWYfQ1␤»
17:06 lue .hack(And our total this hour is.... $3000000 worth of bug fixes!)
17:09 pugssvn r29962 | arnsholt++ | [t/spec] Fudged a test in S02-literals/string-interpolation.t
17:10 arnsholt S02-literals/string-interpolation can be brought back as well now
17:10 colomon arnsholt++
17:11 arnsholt I'm digging to see if I can find out why the failing test fails, but it'll probably take a while to figure out
17:11 TimToady rakudo: my $a = 3; say (~$a).WHAT
17:11 p6eval rakudo ba6cd4: OUTPUT«Str()␤»
17:12 arnsholt Funky
17:12 TimToady interestingly, had the same bug in Perl 5 once upon a time
17:12 TimToady you implement interpolation with infix:<~>, but forget the degenerate case
17:12 colomon arnsholt: running spectest with those files turned on, will push as soon as it passes.  :)
17:12 arnsholt Spiffy
17:13 TimToady er, not Perl 5, Perl 1 or so... :)
17:13 lue I am going to be in a whirlwind of coding, I can tell.
17:13 simcop2387 joined #perl6
17:13 lue And I'm ready, with multiple-tabbed Konsole, Kate, Konversation... and Firefox.
17:14 TimToady um, are any of those coding tools?
17:14 lue not specifically designed for it, but it's all I need for the hackathon :)
17:15 lue I have The Guide in one tab of Firefox, and I know where my towel is. I'm ready!
17:15 TimToady depending on your location, the main thing you need for this hackathon might be an alarm clock :)
17:17 uniejo Just make it a location aware alarm clock.    F.ex. phone with gps.
17:18 lue I don't need an alarm clock (and a location aware one'd be useless). I'm currently in the publishing corporations of Ursa Minor Beta :)
17:21 lue (ANFSCD) I'm assuming .even and .odd are actual methods for numbers (it makes an appearance in the spec after all)
17:22 baest rakudo: [4, 3, 1].grep(* > 2);
17:22 p6eval rakudo ba6cd4: OUTPUT«Method 'Num' not found for invocant of class 'Block'␤current instr.: 'perl6;Mu;' pc -1 ((unknown file):-1)␤»
17:22 baest is that the correct syntax for it, though?
17:23 colomon baest: I think yes, but * > 2 is NYI.
17:23 dalek rakudo: c054780 | (Solomon Foster)++ | t/spectest.data:
17:23 dalek rakudo: Turn on S02-literals/string-interpolation.t and S02-literals/quoting-unicode.t.  arnsholt++
17:23 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/c​0547805d440bdd4ec32e33e5c19297eea404c66
17:23 baest colomon: ok, so no rakudobug for this?
17:24 colomon baest: it's a well-known issue.
17:24 TimToady lue: there are no .even/.odd methods
17:24 colomon rakudo: [4, 3, 1].grep({ $_ > 2 }).perl.say
17:24 p6eval rakudo ba6cd4: OUTPUT«GatherIterator.new()␤»
17:24 colomon rakudo: [4, 3, 1].grep({ $_ > 2 }).batch(10).perl.say
17:24 p6eval rakudo ba6cd4: OUTPUT«(4, 3)␤»
17:24 TimToady there are already lots of ways to spell even and odd in Perl
17:24 lue aw. I was hoping almost (then why is it in a code example in the spec?)
17:25 TimToady $x % 2, $x +& 1
17:25 TimToady rakudo: say 3 % 2, 3 +& 1
17:25 p6eval rakudo ba6cd4: OUTPUT«11␤»
17:26 TimToady there's two different odd functions
17:26 colomon wasn't there also ?% or something?
17:26 TimToady !% 2 is even
17:26 TimToady rakudo: 3 !% 2
17:26 p6eval rakudo ba6cd4: OUTPUT«Confused at line 11, near "3 !% 2"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
17:27 TimToady but nyri
17:27 TimToady alpha 3 !% 2
17:27 TimToady alpha: 3 !% 2
17:27 p6eval alpha 30e0ed:  ( no output )
17:27 TimToady alpha: say 3 !% 2
17:27 p6eval alpha 30e0ed: OUTPUT«0␤»
17:28 lue alpha: say 4 !% 2
17:28 p6eval alpha 30e0ed: OUTPUT«1␤»
17:29 jagd joined #perl6
17:29 lue ah, so 1 if even, 0 if odd?
17:29 TimToady !% means "is not indivisibly by"
17:29 TimToady s/y/e/
17:29 lue alpha: say 5 !% 3; say 6 !% 3;
17:29 TimToady or "does not have a remainder"
17:29 p6eval alpha 30e0ed: OUTPUT«0␤1␤»
17:30 dual joined #perl6
17:30 betterworld I'd say !% means "*is* divisible by" ;)
17:30 TimToady it means "is divisible by!"
17:31 lue that seems easy to program in (away!)
17:31 betterworld oh, I did not see the "in" ;)
17:33 colomon lue: the tricky bit is that all the !op operators are supposed to be generated automatically.
17:33 TimToady not exactly
17:33 TimToady it's a higher-order function
17:33 colomon "generated automatically when needed" ?  ;)
17:33 TimToady so they don't need to be generated, just composed with 'not'
17:34 TimToady likewise (we hope) for all the other metaops
17:34 TimToady we can't generate XRS[!%]= in advance
17:34 TimToady (and we might add a Z for zipwith)
17:36 colomon TimToady: don't show XRS[!%]= to the doubting Thomases, or we will be universally reviled...
17:36 TimToady so anyway, the code emitter just has to turn the base op into &infix:<op> or whatever, and then pass it to the right higher-order function (reduce, zip, not, whatever)
17:36 colomon TimToady: though if it were that easy, I'd already have done it for a bunch of those....  :)
17:38 * lue wants to work on something :/
17:38 TimToady put STD's metaop parsing into rakudo
17:38 TimToady (just kidding...kinda)
17:39 lue metaops do not exist at all then :)
17:40 TimToady alpha: say 3 R/ 30
17:40 p6eval alpha 30e0ed: OUTPUT«10␤»
17:40 TimToady R/ is pronounced "goes into"  :)
17:41 lue any value to metaops, and do they exist in other languages? I have never had to use them, obviously :)
17:41 colomon pmichaud implied I ought to be about to handle !op...
17:43 colomon lue: metaops are a huge slice of awesome.
17:43 lue I have never heard of them in any other language, which is why I don't know. :)
17:43 colomon Well, the most widely spread one we have is op=
17:44 nihiliad joined #perl6
17:44 colomon That's in most C-family languages.
17:44 lue what's the most `omniscient' kind of operator?
17:46 colomon I'll leave that to the theologians.
17:47 lue .hack(how many people at Copenhagen now?)
17:48 colomon TimToady: any hints on how to find the op= rule in STD.pm?
17:48 colomon TimToady: never mind!
17:48 colomon errr... maybe?
17:49 TimToady it's handled specially in STD, actually, at the end of infixish
17:49 TimToady line 3172 or so
17:49 colomon danke!
17:50 TimToady but it's the only one that is handled after the fact
17:50 colomon do you call it infix_postfix_meta_operator like Rakudo does?  (sorry, refreshing pugs directory tree takes a long time...)
17:50 TimToady for the others, see things like     token infix_prefix_meta_operator:sym<!> {
17:51 lue .oO(o hell, firefox froze on perlcabal again :( )
17:51 colomon lue: use chrome for perlcabal.  seriously
17:51 TimToady i've never had trouble with ff on perlcabal, fyi...
17:51 TimToady memory issue?
17:52 uniejo joined #perl6
17:52 lue colomon:Well, I want to use chrome, but unsure of it being available in the Fedora/PPC repos
17:52 colomon TimToady: I don't know, but I was seeing it as well when I used Firefox for getting the synopses.  Loading pages could take half a minute, and freeze all of Firefox in the process.  uuuuugly.
17:52 lue TimToady: PPC G3 Pismo (less that 1GHz if I remember), 384 MiB RAM (twice that swap space)
17:53 lue I know it must be an issue with all the iframes and my memory though :)
17:53 * TimToady reminds himself that the Cray-1 ran at only .1 GHz
17:54 masakmoritzmbere joined #perl6
17:54 lue point one Giga-Hertz! wow.
17:54 masakmoritzmbere this is the masak-moritz-mberends mechbot, stopping by.
17:54 TimToady hibot!
17:55 lue masakmoritzmberends --masak="awaken"
17:55 masakmoritzmbere lue: I am awake, all three of us.
17:55 arnsholt masakmoritzmbere: Oh hai
17:55 arnsholt Were you guys heading out for dinner at some point?
17:55 masakmoritzmbere arnsholt: mberendsbot and masakbot just found moritz, and we immediately joined together into a grander structural unit.
17:56 masakmoritzmbere arnsholt: yes. spicy food.
17:56 moritz__ re
17:56 TimToady couldn't you just be m*bot or some such
17:56 moritz__ shouldn't it be m.*bot? :-)
17:56 masakmberends oh, moritz__ fell off.
17:56 colomon (spicy food)++
17:57 masakmberends arnsholt: anyway, you're welcome to be assimilated, and we'll create a spicyfood-eating mechbot of five.
17:58 lue colomon: unless you can point me to Chrome for Linux/PPC that I don't have to compile, I'm staying with firefox :)
17:58 arnsholt masakmberends: Spicy food sounds excellent. When and where?
17:58 masakmberends arnsholt: dunno yet.
17:58 masakmberends somewhere spicy. possibly Indian.
17:58 pugssvn r29963 | moritz++ | [t/spec] unfudges for rakudo
17:58 pugssvn r29964 | moritz++ | [t/spec] re-fudge quoting.t for rakudo
17:58 pugssvn r29965 | moritz++ | [t/deprecated-syntax.pod] undef is gone
17:58 masakmberends would be a definite plus if it's within the Copenhagen area.
17:59 pugssvn r29966 | moritz++ | [t/spec] enhance precedence.t, and fudge for rakudo
17:59 TimToady oh, I was going to suggest one here
17:59 colomon moritz++  # yow!
17:59 moritz__ colomon: 10 hours worth of train travel :-)
17:59 colomon and git svn, eh?
18:00 borup masakmberends: there arent that many indian places in copehagen
18:00 * uniejo commits to food ;-)
18:00 lue colomon: don't recommend what I'll never be able to use :D
18:00 masakmberends borup: any suggestions for other spicy/good food?
18:00 wolf2k_ubuntu joined #perl6
18:00 borup masakmberends: would japanese work
18:01 dalek book: 41c5229 | moritz++ | src/regexes.pod:
18:01 dalek book: [regex] minor grammar fix
18:01 dalek book: review: http://github.com/perl6/book/commit/41​c5229c55bcc8d4ebde0c918ffe62e5810179ef
18:01 dalek book: bd06566 | moritz++ | src/operators.pod:
18:01 dalek book: New chapter on operators (work in progress)
18:01 dalek book: review: http://github.com/perl6/book/commit/bd​06566ec6eb0f307331d0512538507b3be5061b
18:01 dalek book: bf30c2b | moritz++ | docs/announce/2010-03:
18:01 dalek book: [docs] stub announce for 2010-03 release
18:01 dalek book: review: http://github.com/perl6/book/commit/bf​30c2b81145ffc195e0037100cdd987be187c4a
18:01 dalek book: 3e7d952 | moritz++ | src/regexes.pod:
18:01 dalek book: [regex] impmrove description of rindex(); also comment on the editorial note by chromatic++
18:01 dalek book: review: http://github.com/perl6/book/commit/3e​7d95283eb7f7043228669c3515fee47d73fd79
18:01 colomon Clearly moritz__ needs to take more 10 hour train trips...
18:01 masakmberends borup: for the masak part of the mechbot, it would, yes.
18:01 lue o noes the flood again!!
18:02 Grimnir_ joined #perl6
18:02 Grimnir_ OH HAI
18:02 TimToady OH HAI OH
18:02 lue OHIO
18:02 masakmberends E I E I O
18:02 borup masakmberends: uniejo suggests wagamama
18:02 TimToady OH HAI OH GOES EYE MOOSE
18:02 borup masakmberends: very close to the main station
18:02 masakmberends borup: the whole bot agrees: Japanese is a fine choice.
18:03 masakmberends borup: excellent.
18:03 wknight8111 joined #perl6
18:03 lue nihongo? excellent choice
18:03 lue (to lazy to fiddle with char map/input method)
18:03 uniejo http://www.wagamama.dk/locations/map
18:03 dalek rakudo: 14a83eb | moritz++ | t/spectest.data:
18:03 dalek rakudo: more passing test files
18:03 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/1​4a83ebc61a29f2397794325e4786e7d8035b5ea
18:03 TimToady cut and paste this: 日本語
18:04 Grimnir_ you gotta love utf8-able terminals
18:04 TimToady well, really, にほんの食べ物
18:04 lue (must message Fedora to support UTF8 in their tty's... note to self)
18:04 jnthn masakmberends: oh hai...where is located the  bot? :-)
18:04 * jnthn did find his room :-)
18:04 lue jnthn! o/
18:04 Grimnir_ I was at a few perl 6 speaks today. it looks like a very interesting language
18:04 masakmberends jnthn: room 420.
18:05 jnthn aww...Japanese, not Indian? :-/
18:05 jnthn OK, coming :-)
18:05 Grimnir_ what are the possibilites for parallel computing and the like? what can perl6 do?
18:05 k23z__ wow, do you guys all day go to workshops and stuff like that ?
18:05 k23z__ I'm at home, I even took a nap
18:05 lue And flood the IRC with short messages
18:05 k23z__ lue: me ?
18:05 lue and masak is back in full glory!
18:05 masak \o/
18:05 phenny masak: 16:54Z <quietfanatic> tell masak It wasn't so much of an NCI as a wrapper around Parrot's NCI, combined with a C parser that figured out the hard stuff for you.
18:05 phenny masak: 16:56Z <quietfanatic> tell masak Except that the parser wasn't very good and there weren't any better ones I could use.
18:05 TimToady Grimnir_: mostly just made sure that it's easy to express various sorts of parallelism naturally, and then let the computer figure it out
18:06 masak jnthn: oh, so your room existed in the territory but not on the map?
18:06 moritz_ Grimnir_: I think not much is implemented, but there are lots of possibilities; threads, events, object pipes, hyper operators and so on
18:06 TimToady various constructs make various promises about not-caring about interactions
18:06 Grimnir_ TimToady: what does that mean? the code has to let the computer figure out
18:06 lue k23z: _we_ flood the irc with messages (I'm not there physically, but in spirit)
18:06 moritz_ k23z__: I spent 10.5hrs on the train today to get to the workshop
18:06 TimToady hyperops are basically vector ops
18:06 TimToady feed operators are pipes
18:06 Grimnir_ I would suggest to do a CSP-implementation or very similar in perl6. that would be awesome
18:06 TimToady junctional logic can be evaluated in any order
18:06 masak joined #perl6
18:07 lue .hack(And the total this hour is.... £3 worth in bug fixes ($32839423492 worth in the US))
18:07 masak you guys should see me and moritz_ right now. :) 15 minutes after we meet, we're sitting side by side, IRC-ing. :P
18:07 lue :)
18:07 Grimnir_ it would be cool if it would support it with a pretty nice syntax
18:07 akl joined #perl6
18:07 lue (I got japanese input working once, what happened to it...)
18:08 TimToady rakudo: say (1,2,3) »+« (4,5,6)
18:08 p6eval rakudo c05478: OUTPUT«Confused at line 11, near "say (1,2,3"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
18:08 TimToady alpha: say (1,2,3) »+« (4,5,6)
18:08 p6eval alpha 30e0ed: OUTPUT«579␤»
18:08 arnsholt masak: Has the collective reached a decision re: fud?
18:08 masak do I have everyone's permission to stir up a potential hornet's nest?
18:08 masak (don't ask to ask...)
18:09 masak arnsholt: are you coming by?
18:09 lue hornet nest taken. masak cries. hornet nest given back. all is well. (that's a YES :) )
18:09 arnsholt masak: I wouldn't mind coming by
18:10 arnsholt There are signals that usually mean I should eat soon =)
18:10 Grimnir_ perl6: say ("hello world")
18:10 p6eval elf 29966, pugs, rakudo c05478: OUTPUT«hello world␤»
18:10 arnsholt And I thought hornets' nests were your job? ;)
18:10 colomon rakudo: say "hello world"
18:10 p6eval rakudo c05478: OUTPUT«hello world␤»
18:10 masak alpha: class A { has @.b; }; say A.new(b => [1,2,3]).b.perl
18:10 p6eval alpha 30e0ed: OUTPUT«[[1, 2, 3]]␤»
18:11 TimToady Grimnir_: your parens were not function call parens, unlike in perl 5
18:11 masak ok, so the hornet's nest is that I really don't like the double [] here. :(
18:11 masak I've been talking to jnthn about it most of the afternoon.
18:11 masak he's quite good at explaining that I'm wrong.
18:11 masak I'm mostly being stubborn.
18:11 lue neither TimToady. I remember him confusing them with the purpose of the «» brackets
18:11 lue (the outer [] anyway)
18:12 masak arnsholt: come over, then!
18:12 moritz_ arnsholt: so, was that a "yes" to coming?
18:12 Grimnir_ at the perl6 speak today I didn't see any "\n", does that mean "say" automatically writes a newline?
18:12 TimToady yes
18:12 TimToady it's strange, but it's one of the most used functions in p6
18:12 arnsholt masak/moritz_: On my way then. Be there soonish
18:12 masak Grimnir_: as does Perl 5.10, incidentally.
18:12 masak ++arnsholt
18:12 arnsholt I'll SMS masak when I'm in the neighbourhood
18:12 masak oki
18:13 Grimnir_ is there a normal print function in perl6 too?
18:13 TimToady yes
18:13 TimToady rakudo: print "foo"
18:13 p6eval rakudo c05478: OUTPUT«foo»
18:13 Grimnir_ ok, that's why
18:13 uniejo rakudo: class Food {sub eat {}}; Food.new().WHERE.say
18:13 p6eval rakudo c05478: OUTPUT«47750022470056␤»
18:13 Grimnir_ I haven't used any of the special perl 5.10 features, it seems
18:13 TimToady rakudo: say "foo"
18:13 p6eval rakudo c05478: OUTPUT«foo␤»
18:13 TimToady note the ␤ character there
18:14 TimToady should be a little NL or some such
18:14 martinro joined #perl6
18:14 TimToady if your terminal does utf-8 right
18:14 lue say creates a \n automagically, and print doesn't. That's it.
18:14 TimToady that's what?
18:14 colomon TimToady: any notion what the O() should be for infix_prefix_meta_operator?
18:14 Grimnir_ perl6: @test@.say
18:15 masak TimToady: am I unreasonable in thinking that .new(:b[1,2,3]) should initialize to just one layer of array?
18:15 Grimnir_ ach
18:15 p6eval rakudo c05478: OUTPUT«Confused at line 11, near "@test@.say"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
18:15 p6eval ..elf 29966: OUTPUT«Parse error in: /tmp/fAERKl76hs␤panic at line 1 column 0 (pos 0): Can't understand next input--giving up␤WHERE: @test@.say␤WHERE:/\<-- HERE␤  STD_red/prelude.rb:99:in `panic'␤  STD_red/std.rb:76:in `scan_unitstopper'␤  STD_red/std.rb:224:in `comp_unit'␤  STD_red/std.rb:210:in
18:15 p6eval ..`_UNI…
18:15 p6eval ..pugs: OUTPUT«*** ␤    Unexpected "@."␤    expecting "::"␤    Variable "@test" requires predeclaration or explicit package name␤    at /tmp/NHJqMu8t1L line 1, column 6␤»
18:15 Grimnir_ perl6: "test".say
18:15 p6eval elf 29966, pugs, rakudo c05478: OUTPUT«test␤»
18:15 Grimnir_ nice
18:15 lue sorry TimToady. that's $_  [ :) ]
18:15 TimToady lol
18:15 TimToady masak: it seems to me that it's a binding, not an assignment
18:16 masak TimToady: yes.
18:16 TimToady so no, it's not unreasonable :)
18:16 masak TimToady: but jnthn++ says that binding isn't the right thing for obj init, in general.
18:16 TimToady otoh, jnthn may be right about the OO semantics :)
18:16 masak because it creates a rift in timespace, basically.
18:17 k23z__ moritz_: wooo..
18:17 k23z__ moritz_: that's commitment man
18:17 TimToady otgh, maybe it copies in values but [...] is an object, so gets the same one
18:17 masak YES!
18:18 masak whatever that means, I'm for it!
18:18 k23z___ joined #perl6
18:18 Grimnir_ I loved the quicksort example in Perl6. is perl6 in general that cool?
18:18 TimToady no, usually it's cooler :P
18:18 masak Grimnir_: much cooler.
18:18 Grimnir_ cooler? that's very cool
18:18 TimToady picnic cooler, even
18:19 colomon which quicksort?  was it jnthn's new version?
18:19 Grimnir_ it was the one, jnthn showed at open source days today, yes
18:19 colomon ah, that's indeed a very sweet little piece of code.
18:19 Grimnir_ even though the pivot should be taken at random :)
18:20 Grimnir_ you could do it with one parameter
18:20 TimToady without looking, I assume it's taking hte first elem as the pivot
18:20 moritz_ rakudo: say (1, 2, 3).max
18:20 colomon Grimnir_: please don't encourage TimToady to figure out how to make that a part of the language....
18:20 p6eval rakudo c05478: OUTPUT«3␤»
18:20 Grimnir_ colomon: it's so simple it's not important :)
18:20 Grimnir_ rakudo: say (1,2,3).pick
18:20 TimToady we could .pick a random pivot though, which would work better for a presorted list on average
18:20 p6eval rakudo c05478: OUTPUT«2␤»
18:21 Grimnir_ rakudo: say (1,2,3).pick
18:21 p6eval rakudo c05478: OUTPUT«2␤»
18:21 TimToady or .pick(3).mid
18:21 Grimnir_ rakudo: say (1,2,3).pick
18:21 p6eval rakudo c05478: OUTPUT«1␤»
18:21 Grimnir_ rakudo: say (1,2,3).pick.mid
18:21 p6eval rakudo c05478: OUTPUT«Method 'mid' not found for invocant of class 'Integer'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
18:21 moritz_ rakudo: say max(1..5)
18:22 p6eval rakudo c05478: OUTPUT«-Inf␤»
18:22 Grimnir_ rakudo: say (1,2,3).mid
18:22 p6eval rakudo c05478: OUTPUT«Method 'mid' not found for invocant of class 'Parcel'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
18:22 colomon I was just going to say, what's .mid?  (I mean, I think I understand the meaning, but....
18:22 TimToady rakudo: say [max](1..5)
18:22 p6eval rakudo c05478: OUTPUT«Not enough positional parameters passed; got 0 but expected at least 1␤current instr.: 'max' pc 239375 (src/gen/core.pir:6883)␤»
18:22 colomon rakudo: say max(1..5)
18:22 p6eval rakudo c05478: OUTPUT«-Inf␤»
18:22 TimToady wants a closure first
18:22 Grimnir_ alpha: say (1,2,3).mid
18:22 colomon WTF?
18:22 p6eval alpha 30e0ed: OUTPUT«Method 'mid' not found for invocant of class 'List'␤in Main (file src/gen_setting.pm, line 324)␤»
18:22 * masak submits rakudobug for max(1..5)
18:22 TimToady there is no mid
18:22 moritz_ mid soooo reminds me of QBasic
18:22 iblechbot joined #perl6
18:22 TimToady but if there were, it would be between min and max :)
18:22 moritz_ (where it took the function of substr())
18:22 colomon rakudo: (1..5).max.say
18:23 p6eval rakudo c05478: OUTPUT«5␤»
18:23 TimToady rakudo: (1..5).minmax
18:23 p6eval rakudo c05478:  ( no output )
18:23 TimToady rakudo: (1..5).minmax.say
18:23 p6eval rakudo c05478: OUTPUT«15␤»
18:23 TimToady rakudo: (1..5).minmax.average  :)
18:24 p6eval rakudo c05478: OUTPUT«Confused at line 11, near "(1..5).min"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
18:24 TimToady rakudo: (1..5).minmax.sum.say
18:24 p6eval rakudo c05478: OUTPUT«Method 'sum' not found for invocant of class 'Parcel'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
18:24 lue TimToady: you put a smiley in the code with average :)
18:24 masak alpha: (1..5).minmax.sum.say
18:24 p6eval alpha 30e0ed: OUTPUT«Method 'sum' not found for invocant of class 'List'␤in Main (file src/gen_setting.pm, line 324)␤»
18:25 masak TimToady: should there be a .sum method?
18:25 colomon no.
18:25 moritz_ please not
18:25 moritz_ just like .max is superfluous
18:25 masak is not! :)
18:25 * moritz_ hits masak
18:25 lue rakudo: say (1..5).minmax.average
18:25 p6eval rakudo c05478: OUTPUT«Method 'average' not found for invocant of class 'Parcel'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
18:25 * masak slaps moritz_ with a seasoned trout
18:26 * moritz_ ducks deep, so that masak hits mberends
18:26 masak mberends: sorry! :/
18:26 lue masak: use this herring! (I need it back afterwards to cut down a tree)
18:26 masak lue: this herring is damaged.
18:26 masak I can't use it.
18:27 TimToady if it's bleeding, it might be a red herring
18:27 * masak .oO( use Herring; )
18:27 colomon my wife dreams of making an album of all herring songs...
18:27 Grimnir_ lol
18:28 masak colomon: but would that really be worth herring?
18:28 lue This halibut is good enough for Jehovah! Take it masak!
18:28 athenot joined #perl6
18:28 moritz_ http://stackoverflow.com/questions/237425​1/trouble-using-grammar-with-rakudo-perl6
18:28 TimToady the scales would be in tuna, I suppose
18:29 * colomon is experiencing pun-lock
18:29 colomon masak: it would be if I were playing bass
18:29 masak :)
18:30 TimToady they make me sing bass, but I'm really a barracuda
18:30 simcop2387 joined #perl6
18:30 lue colomon: if your album is good enough, you might become a starfish!
18:30 lue .oO(fish puns are about as fun as cheese puns)
18:30 TimToady er
18:32 colomon hey, my crazy hacked rakudo compiled!
18:33 TimToady put it on ice, and ship it
18:33 colomon > say 1 !&& 3
18:33 colomon Could not find non-existent sub &infix:<>
18:34 TimToady well of course you couldn't find it--it's non-existent, duh!
18:34 TimToady you should look for an existent sub
18:34 colomon but also note how it is &infix:<> -- the nothing operator!
18:35 TimToady std: 1 !&& 3
18:35 p6eval std 29966: OUTPUT«ok 00:01 107m␤»
18:35 TimToady hmm, thought that one was too fiddly
18:35 lue alpha: multi sub infix:<>{say "oh hello";}; say 54 #this is 5 <nothing> 4
18:35 p6eval alpha 30e0ed: OUTPUT«54␤»
18:35 lue alpha: multi sub infix:< >{say "oh hello";}; say 5 4 #this is 5 <nothing> 4
18:35 TimToady or not iffy enough
18:35 p6eval alpha 30e0ed: OUTPUT«Confused at line 10, near "4 #this is"␤in Main (file <unknown>, line <unknown>)␤»
18:36 lue alpha: multi sub infix:< >($a,$b){say "oh hello $a and $b";}; say 5 4
18:36 p6eval alpha 30e0ed: OUTPUT«Confused at line 10, near "4"␤in Main (file <unknown>, line <unknown>)␤»
18:36 lue alpha: multi sub infix:< >($a,$b){say "oh hello $a and $b";}; say 5 4;
18:36 p6eval alpha 30e0ed: OUTPUT«Confused at line 10, near "4;"␤in Main (file <unknown>, line <unknown>)␤»
18:36 masak lue: two terms in a row. 5 4.
18:36 TimToady std: multi sub infix:< >($a,$b){say "oh hello $a and $b";}; say 5 4;
18:36 p6eval std 29966: OUTPUT«[31m===[0mSORRY![31m===[0m␤Two terms in a row at /tmp/n8HbYo9IDp line 1:␤------> [32ma,$b){say "oh hello $a and $b";}; say 5 [33m⏏[31m4;[0m␤    expecting any of:␤     bracketed infix␤  infix or meta-infix␤      statement modifier loop␤FAILED 00:01 109m␤»
18:37 masak even STD.pm agrees with me.
18:37 lue what the heck does two terms in a row mean?
18:37 TimToady it means there's no such thing as a null infix operator in Perl 6
18:38 lue That's why I tried a space :)
18:38 TimToady it won't let you
18:38 diakopter std: multi sub infix:<\ >($a,$b){say "oh hello $a and $b";}; say 5 \ 4;
18:38 p6eval std 29966: OUTPUT«Bareword found where operator expected at (eval 246) line 24, near "q<\>,␤        }, 'RE_method'),␤    }, 'RE_ast'),␤};␤␤our $CATEGORY = 'infix';␤␤sub infix__S_500__PEEK { $_[0]->_AUTOLEXpeek"␤  (Might be a runaway multi-line <> string starting on line 17)␤Can't create infix:sym<\
18:38 p6eval ..…
18:38 masak lue: space is usually not significant.
18:38 TimToady it if it could, I wouldn't tell you how
18:38 diakopter wheh
18:39 lue alpha: multi sub circumfix:<jnthn jnthn>($a){say "do something with $a";}; jnthn 42 jnthn
18:39 p6eval alpha 30e0ed: OUTPUT«do something with 42␤»
18:39 lue (still thinking of the omnisub :D )
18:39 TimToady because it's very, very, very, very important to Perl 6 to know whether it's expecting a term or an infix
18:39 diakopter TimToady: Bareword found where operator expected
18:39 TimToady so it can catch most errors
18:40 colomon > say 3 !&& 3
18:40 colomon Could not find non-existent sub &infix:<&&>
18:40 colomon that's a bit better....
18:40 TimToady except for the double negative :)
18:41 TimToady maybe we could add in a "noway, nohow"
18:41 colomon TimToady: I think we can take for granted that my work on Rakudo's grammar will not fix Parrot's weird error messages.  :)
18:41 diakopter std: multi sub infix:<\ >(){}
18:41 p6eval std 29966: OUTPUT«Bareword found where operator expected at (eval 246) line 24, near "q<\>,␤        }, 'RE_method'),␤    }, 'RE_ast'),␤};␤␤our $CATEGORY = 'infix';␤␤sub infix__S_500__PEEK { $_[0]->_AUTOLEXpeek"␤  (Might be a runaway multi-line <> string starting on line 17)␤Can't create infix:sym<\
18:41 p6eval ..…
18:41 TimToady I'm just gonna keep carping till someone does...
18:41 * colomon doesn't think he has a commit-bit for Parrot...
18:42 masak TimToady: I'm with you.
18:42 * masak never says no to a good carp
18:42 moritz_ colomon: you can still submit patches :-)
18:44 TimToady diakopter: I'm ignoring you.  :)
18:44 szabgabx joined #perl6
18:44 k23z__ <kbsmasher> I have tried: __asm { nop } but it didn't do anything.
18:45 lue I'm going to log out for a moment, to enable japanese input.
18:45 TimToady japanese input, yum
18:45 TimToady quick, talk about lue
18:45 diakopter bleh
18:46 TimToady or make a cheese pun
18:46 masak TimToady: even if you /ignore diakopter, you will see the STD.pm output he produces. :)
18:46 colomon > say 4 !&& 4
18:46 colomon Could not find non-existent sub &infix:<sol&&>
18:46 colomon Aha!
18:46 TimToady yes, well, add_macro is all chewing gum and bailing wire, and I don't feel obligated to make it a real thing just yet
18:47 masak why would anyone be chewing bailing wire?
18:48 TimToady and I'm not /ignoring him, just ignoring him.  :)
18:48 * diakopter thought it was baling wire
18:48 masak /oh
18:48 masak it's whaling wire, actually.
18:48 TimToady okay, it's kleenex and scotch tape then.
18:49 Grimnir_ what's scotch tape?
18:49 diakopter a trademarked brand of 3M
18:49 jnthn The stuff that doesn't hold the universe together.
18:49 masak Grimnir_: http://en.wikipedia.org/wiki/Scotch_Tape
18:49 colomon Grimnir_: sellotape
18:50 lue joined #perl6
18:50 simcop2387 joined #perl6
18:50 Grimnir_ oh, that's just called tape in danish
18:51 masak wagamama, here we come!
18:51 colomon > say 4 !&& 5
18:51 colomon Could not find non-existent sub &infix:<sol!&&>
18:51 colomon yay!
18:51 lue 風の楽土 (I hope I wrote winds of rakudo correctly!)
18:51 lue colomon: the sun is nonexistant? Noes!
18:52 TimToady that's more like rakudo of wind
18:52 TimToady wind's rakudo
18:52 lue bah, I'm not a student of japanese
18:52 colomon lue: don't panic! just use your sub-etha to thumb a ride someplace else.
18:53 TimToady is an etha like a metha or a propa?
18:53 lue I did pick up a few phrases thru translating things in (and obsessing over) The Legend of Zelda games :)
18:53 lue colomon: I would, but my pandimensional wireless card is broken :/
18:54 lue (stupid Verizon... :D )
18:54 quietfanatic ゼルダの伝説
18:54 colomon lue: oh.  sucks to be you.
18:55 colomon oh wise ones
18:55 colomon I seem to have hacked !op into the grammar.
18:55 lue 時のオカリナ
18:56 colomon any hints on how to generate the metaop on demand, then?
18:56 colomon there's addmethod (is that the right name), is there also an addsub?
18:58 lue oi! I have a security update to sudo (I'm scared of why they needed to fix it)
18:58 TimToady maybe it prevents insecure people from using it
19:00 quietfanatic I'd be more worried if I didn't occasionally see a security update for sudo.
19:01 TimToady lessee, if I'm really about 3 or 4 TZ east of here, I should take a geezer nap now.
19:01 TimToady zzz &
19:02 lue o no! the copenhagen air has slept TimToady
19:04 colomon pmichaud, jnthn: why is $opname stored as a .lex in gen_assign_metaop, rather than just passed as a parameter?
19:05 k23z__ anyone in here down for some hardcore assembly hacking let me know
19:05 k23z__ should I add hardcore oldschool assembly hacking
19:06 jagd joined #perl6
19:07 jagd joined #perl6
19:08 k23z__ hey related to assembly I saw some code used back in the day by reverse engineers written in Perl
19:08 k23z__ even a basic disassembler :)
19:09 k23z__ will Perl6 be compiled to bytecode and if so , will it be hard to write a disassembler for it ?
19:09 k23z__ or for Parrot binary code in general
19:09 k23z__ because I remember there was something (also back in the day ...2002 maybe) that decompiled Java like crazy
19:09 k23z__ it received no resistance whatsoever ...
19:10 avar where here are the spectests rakudo uses: http://svn.openfoundry.org/pugs/t/ ?
19:11 colomon http://svn.pugscode.org/pugs/t/spec
19:11 colomon not that I quite understood the question, but that's where the Perl 6 spectests live.
19:11 avar ah, the pugs svn moved
19:12 avar isn't this pretty much the only thing the pugs svn is used for now?
19:12 * lue &
19:13 colomon avar: not at all, there are a zillion projects in pugs svn.
19:13 colomon The official perl 6 specs live there, as does Larry's STD.pm official grammar.
19:13 colomon and a bunch of other projects as well.
19:14 colomon I did a svn up there earlier today, looked like over 200 files have been changed in the last month or two.
19:14 colomon > say 4 !&& 5
19:14 colomon Null PMC access in invoke()
19:15 martinro joined #perl6
19:15 jagd joined #perl6
19:16 colomon and wow, I don't have any idea how to debug that.  :(
19:19 lisppaste3 colomon pasted "Slightly broken implementation of !op -- help?" at http://paste.lisp.org/display/96015
19:20 explorer__ joined #perl6
19:25 colomon oh, wait, should be prefix:<!>... stupid spectest, finish already so I can try that!
19:25 jagd joined #perl6
19:26 lichtkind joined #perl6
19:26 avar joined #perl6
19:29 quietfanatic colomon: So you're actually generating an &infix:<!op> at compile time, as opposed to putting &infix_prefix_meta_operator:<!>(&infix:<op>, $a, $b) in the code?
19:30 colomon yes.
19:30 colomon I don't know which approach is better, I'm just imitating the way op= is currently handled.
19:30 quietfanatic Ah.  Just seems more complicated that way.
19:31 colomon though I'm suddenly suspicious your way is better....
19:31 quietfanatic Mine is just the naive way to do it (I think)...
19:32 colomon I dunno, your way sounds elegant to me.
19:32 quietfanatic Because I'm not familiar with grammars and compilers and all that.
19:32 lisppaste3 colomon annotated #96015 "slightly improved but still Null PMC access version" at http://paste.lisp.org/display/96015#1
19:32 quietfanatic My way might be a little slower at runtime.
19:33 colomon your way might work.  seems like it's worth a try, anyway.
19:36 * colomon is going mad with the power of git!
19:36 lichtkind colomon: please dont do so :)
19:37 lichtkind with 30 entries now: http://www.perlfoundation.o​rg/perl6/index.cgi?timeline
19:49 colomon quietfanatic: the only problem being, I'm not quite sure how to implement your suggestion...
19:49 quietfanatic hmm...
19:49 colomon > say 4 !&& 5
19:49 colomon Could not find non-existent sub &infix_prefix_meta_operator:<!>
19:49 colomon == progress
19:50 quietfanatic Yeah, well then you need to write &infix_prefix_meta_operator:<!> :)
19:50 colomon sure, it's how you call it and how you implement it that's the issue here.  :)
19:50 quietfanatic Ah.
19:50 ShaneC joined #perl6
19:51 quietfanatic Well, it needs to have as parameters infix:<&&>, 4, and 5, right?
19:51 colomon right
19:51 quietfanatic s/infix/&infix/
19:51 quietfanatic in some order or other
19:52 quietfanatic what should the parameters be when a user writes a new meta op?
19:52 colomon hmmm?
19:52 colomon btw, I'm compiling an attempt to guess how to do it as I type.
19:52 quietfanatic I mean...hold on, consulting the spec
19:54 quietfanatic The spec doesn't seem to have an example for overloading metaops, just infixes and such.
19:55 colomon holy smokes, that almost sort of worked.
19:55 colomon multi sub infix_prefix_meta_operator:<!>($a, $b, $c) {
19:55 colomon say $a.WHAT;
19:55 colomon say $b.WHAT;
19:55 colomon say $c.WHAT;
19:55 colomon }
19:55 colomon > say 4 !&& 6
19:55 colomon Str()
19:55 colomon Int()
19:55 colomon Int()
19:55 quietfanatic Great!  Except why is $a Str()?
19:56 colomon probably that's how I'm passing it.
19:56 colomon but... hmm...
19:56 colomon rakudo: "say"(34);
19:56 p6eval rakudo 14a83e: OUTPUT«invoke() not implemented in class 'Perl6Str'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
19:56 quietfanatic rakudo: &::<say>(34)
19:56 p6eval rakudo 14a83e: OUTPUT«Confused at line 11, near "&::<say>(3"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
19:57 quietfanatic alpha: &::<say>(34)
19:57 p6eval alpha 30e0ed: OUTPUT«Syntax error at line 10, near "&::<say>(3"␤in Main (file <unknown>, line <unknown>)␤»
19:57 quietfanatic ah, it seems symbolic lookup is not yet implemented.
19:57 colomon you can call a method specified by a string, surely there's a way to do that with a sub?
19:58 quietfanatic Well, it's the syntax that's NYI, not the implementation (if I know what I'm talking about)
19:58 quietfanatic alpha: (Q:PIR{%r = get_hll_global [], '&say'}).(34)
19:58 p6eval alpha 30e0ed: OUTPUT«error:imcc:syntax error, unexpected ']' (']')␤      in file 'EVAL_22' line 71␤Null PMC access in invoke()␤in Main (file <unknown>, line <unknown>)␤»
19:58 quietfanatic alpha: (Q:PIR{%r = get_hll_global '&say'}).(34)
19:58 p6eval alpha 30e0ed: OUTPUT«Null PMC access in invoke()␤in Main (file <unknown>, line <unknown>)␤»
19:59 diakopter alpha: (Q:PIR{%r = get_hll_global 'say'})(34)
19:59 p6eval alpha 30e0ed: OUTPUT«34␤»
20:00 lisppaste3 colomon annotated #96015 "very different attempt which also slightly fails" at http://paste.lisp.org/display/96015#2
20:01 colomon oh hai, I think if you guys can figure out how to do that with an infix op we're good to go here.
20:01 colomon but I've got to run shower now...
20:02 quietfanatic How do you pass it the op itself, instead of the name of the op?
20:07 payload joined #perl6
20:07 athenot joined #perl6
20:13 athenot_ joined #perl6
20:14 athenot_ joined #perl6
20:14 quietfanatic colomon: Just a guess; should that line 'my $opsub := "&infix:<$sym>";' be 'my $opsub = $<infix>.ast;' or something like that?
20:15 quietfanatic maybe not.
20:17 quietfanatic s/=/:=/
20:28 jagd left #perl6
20:35 synth joined #perl6
20:48 martinro joined #perl6
20:50 mikehh looks like I got a seg fault after t/spec/S14-roles/basic.rakudo - Non-zero wait status: 11 in spectest_smolder #32531 - Ubuntu 9.10 amd64 (gcc with --optimize) - parrot r44708
20:50 mikehh id does not report it in the smolder report
20:50 justatheory joined #perl6
20:51 mikehh s/id/it/
20:53 baest is qw// dead and replaced by <>?
20:53 quietfanatic baest: yes
20:54 baest quietfanatic: thanks
20:59 prism joined #perl6
20:59 baest I'm looking at split.t. split returns a GatherIterator, but that doesn't respons well to being compared to Parcels with is_deeply. Any ideas?
21:02 colomon baest: I think that's all supposed to change in pmichaud's next round of fixes.
21:03 colomon So I'd not worry about it at the moment.
21:03 baest colomon: oh ok
21:05 * diakopter answers my question from yesterday (how to design an api for codegen-generators): macros. duh.
21:05 pugssvn r29967 | baest++ | Use <> instead of qw// and skip places with rx:Perl5 which isn't implemented
21:09 rv2733 joined #perl6
21:13 krr joined #perl6
21:20 k23z__ joined #perl6
21:20 k23z__ joined #perl6
21:32 TimToady baest: actually, qw// should also still work; <> is just the shortcut, like '' and q// still both work
21:33 TimToady rakudo: say qw/foo bar/
21:33 p6eval rakudo 14a83e: OUTPUT«Confused at line 11, near "say qw/foo"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
21:33 TimToady std: say qw/foo bar/
21:33 p6eval std 29967: OUTPUT«ok 00:01 107m␤»
21:33 diakopter pugs: say qw/foo bar/
21:33 p6eval pugs: OUTPUT«foobar␤»
21:34 newbie joined #perl6
21:37 jferrero joined #perl6
21:45 baest TimToady: oh, ok. Hmm, I just a test, but if it's the same it shouldn't matter and now at least, it is parseable by rakudo
21:45 baest +changed
22:03 uniejo joined #perl6
22:06 wolf2k_ubuntu joined #perl6
22:07 mberends joined #perl6
22:08 am0c joined #perl6
22:10 k23z__ hey what if perl6 offered permutations as a core language feature ?
22:10 k23z__ is it unreasonable ?
22:11 mberends k23z__: that feels like something that belongs a level above the core language, probably in a module
22:11 masak joined #perl6
22:12 k23z__ can Perl6 modules be written in Parrot code ?
22:12 k23z__ what is the equivalent of XS in Perl6 ?
22:12 mberends yes, in PIR
22:12 masak the equivalent of XS is Parrot NCI.
22:12 k23z__ will it be blazing fast if written in PIR ?
22:12 TimToady define blazing
22:13 mberends XS is another matter, we're currently working on NCI
22:13 lichtkind mberends: hej
22:13 mberends hi lichtkind
22:13 masak k23z__: it might possibly be a bit faster than compiled Perl 6 in some cases. no order-of-magnitude wins, though.
22:13 k23z__ TimToady: well I'm writing assembly code for generating permutations that'll be called from XS which will be called from Perl5 , will I be able to do this with Perl6 ?  http://github.com/wsdookadr/Rub​ik-Perl/blob/master/SJT/SJT.asm
22:14 lichtkind and masaks now there too :)
22:14 lichtkind mberends: seen http://www.perlfoundation.o​rg/perl6/index.cgi?timeline ?
22:15 mberends lichtkind: I'm now looking at the current one, had seen it a few days ago
22:15 lichtkind mberends: thats not the same :)
22:15 TimToady with a decent jit it might go fast, but parrot's jit has suffered repeated bitrot
22:15 masak jitrot.
22:15 jnthn Parrot's jit got ripped out, iirc.
22:15 k23z__ TimToady: assembly code is my definition of blazing fast
22:15 masak jitrip.
22:15 mberends lichtkind: oh yes, exact dates!
22:16 TimToady yes, well, you're talking NCI there, not parrot, currently
22:16 masak rakudo: class A { has $.b = my $foo = 42; say $foo }
22:16 p6eval rakudo 14a83e: OUTPUT«42␤»
22:16 k23z__ is NCI at an equivalent speed with assembly code ?
22:16 masak alpha: class A { has $.b = my $foo = 42; say $foo }
22:16 quietfanatic Parrot's NCI is, I think, easier to use than Perl5's XS.
22:16 p6eval alpha 30e0ed: OUTPUT«Lexical '$foo' not found␤in Main (file src/gen_setting.pm, line 324)␤»
22:16 k23z__ quietfanatic: maybes some docs please ? with lots of examples ?
22:16 TimToady NCI is an API, not an engine
22:17 masak rakudo: class A { has $.b = my $foo = 42; method x { say $foo } }; A.new.x
22:17 p6eval rakudo 14a83e: OUTPUT«Null PMC access in getprop()␤current instr.: '&infix:<=>' pc 16638 (src/builtins/Junction.pir:228)␤»
22:17 * masak submits rakudobug
22:17 diakopter masak: :)
22:17 TimToady it's like asking what's faster, an elevator, or an elevator door?
22:17 mberends lichtkind: the whole timeline looks so very good :)
22:17 quietfanatic k23z__: It's somewhere in Parrot's documentation.
22:17 lichtkind mberends: thanks
22:18 k23z__ TimToady: to me it's all the same
22:18 diakopter my elevator is a door
22:18 lichtkind mberends: so we finally get to the translation of the tut :)
22:18 masak my door is an elevator.
22:18 k23z__ TimToady: I don't understand your comparison because I don't know as much about p6 as you do
22:18 diakopter ... no one does...
22:18 masak rakudo: class A { my $foo = 42; method x { say $foo } }; A.new.x
22:18 TimToady has nothing to do with p6
22:18 p6eval rakudo 14a83e: OUTPUT«42␤»
22:18 lichtkind masak: lives on mars und uses the super secret jumprooms :)
22:18 TimToady it's a category error
22:18 * k23z__ is not much of a category theorist :D
22:19 quietfanatic k23z__: He means NCI isn't code that runs, it's a connection from one kind of code to another.
22:19 masak What's faster, an elevator, or a category error?
22:19 k23z__ masak: :)
22:19 masak I mean, it's like comparing apples and category errors.
22:20 TimToady APIs and oranges
22:20 diakopter my door is an orange
22:20 k23z__ can you guys make it so that I'll be able to write assembly inline in Perl6 pretty please with sugar on top ?
22:20 masak TimToady: :)
22:20 k23z__ like   __asm { ... }
22:20 masak diakopter: :)
22:20 quietfanatic inline?  Well, I don't think we have that yet.
22:21 TimToady in any case, that's a severe architecture dependency
22:21 quietfanatic The best you could do would be to compile your assembly to a library, and then link to that library from Parrot
22:21 diakopter k23z__: just write some tests...
22:21 quietfanatic ...which is what NCI does.
22:22 nihiliad joined #perl6
22:23 TimToady APIs and O()-ranges
22:24 pugssvn r29968 | moritz++ | [t/spec] test that lexicals escape thunks
22:24 jnthn .oO( what the thunk? )
22:25 diakopter rakudo: say 1..my$a # times out I think
22:25 moritz_ speakiing of O() - STD.pm uses both <EXPR(item %item_assignment)> and <O(|%term)> - what's the difference?
22:25 p6eval rakudo 14a83e:  ( no output )
22:25 TimToady <O> sets the actual precedence on the token we're returning
22:26 TimToady the arg to EXPR is a cap on how tight we require the precedence to be
22:26 TimToady in this subexpressoin
22:26 arnsholt One of the Parrot devs (I think) commented about Rakudo copying a lot in a comment on my segfault bug: http://trac.parrot.org/par​rot/ticket/1499#comment:8
22:26 TimToady ion
22:26 arnsholt (In case that's interesting to someone)
22:26 TimToady that's how we stop on the comma when you say my $a = 1, 2
22:27 Tene k23z__: That's certainly possible to do (__asm {}), but it's going to be a decent while before that's a priority for any current Perl 6 devs that I know about.
22:27 lue hello!
22:27 masak arnsholt: why would Rakudo copy a lot in a comment on your segfault bug? :P
22:27 masak that sounds like a metabug to me.
22:27 arnsholt masak: A bit of a tangent, from him digging around in the Rakudo code, I imagine
22:28 Tene k23z__: for performance, working on Parrot's GC and then getting a good JIT for Parrot are much higher on the priority list for most people who might work on that, afaik.
22:28 TimToady k23z__: but feel free to work on it yourself :D
22:29 masak snarkyboojum: ping
22:29 Tene k23z__: Rakudo has the ability right now to use inline PIR, which is Parrot's bytecode.
22:29 Tene rakudo: Q:PIR { print "lolol" }
22:29 TimToady for permuting integers, that'll likely be faster than anything you could write in p6
22:29 p6eval rakudo 14a83e: OUTPUT«lolol»
22:30 lue I want to do something worthwhile during the hackathon. :/ Lurking is fun, but helping is as well :)
22:30 TimToady at least, until rakudo gets native ints
22:30 lue (If I can't work, I'll just learn Japanese >:) )
22:31 k23z__ is Perl6 going to be like Java ?
22:31 k23z__ if it has a vm ..
22:31 k23z__ and stuff like that
22:31 masak k23z__: yes.
22:32 k23z__ I wonder how fast is it , if it was registered in the Language shootout then I could compare it with other stuff
22:32 k23z__ but maybe speed is not the most important concern at this stage of development ?
22:32 moritz_ slow. At the moment at least
22:32 Tene k23z__: A module that would support inline ASM would take the text provided, compile it into executable code, use something like dlsym to get a handle to the code and then execute it.  There's going to be a big calling conventions mismatch between Perl 6 calling conventions and ASM, and I'm sure several other issues.
22:32 diakopter about 5000-10000 slower
22:32 moritz_ k23z__: that's correct
22:32 diakopter 5000-10000x slower, I mean
22:33 k23z__ Tene: calling conventions in terms of ? order of params on stack ?
22:33 k23z__ Tene: what else ?
22:33 Tene k23z__: Perl 6 isn't stack-based.  Parrot isn't stack-based.  You'll need to write code to marshall the args into something reasonably accessible from ASM.
22:33 IllvilJa joined #perl6
22:34 k23z__ I don't know any other model than stack-based
22:34 k23z__ how does Parrot work when calling some fucntion ?
22:34 moritz_ it's continuation passing style
22:34 diakopter Perl 6 isn't stack-based?
22:34 moritz_ http://en.wikipedia.org/wiki​/Continuation-passing_style
22:34 moritz_ (at least parrot)
22:34 Tene Rakudo doesn't have any native data types right now, as well.  You'd need to take Perl 6 Integer objects and put them into registers, etc.  I'm not all that familiar with ASM, so I don't really know what it would look like.
22:35 Tene diakopter: a Perl 6 sub isn't required to set up a C-like stack frame for every invocation.
22:35 k23z__ why is the Perl6 using a vm ?
22:35 k23z__ are there some particular advantages that you are fond of ?
22:35 moritz_ k23z__: yes; it's needed
22:35 arnsholt k23z__: Using a VM you get a lot more platform independence
22:35 diakopter Tene: nor is any language whose subroutines can be inlined when deemed safe....?
22:36 arnsholt There's also GC, and so on
22:36 Tene diakopter: which means that you need to care about that when talking about inline ASM
22:36 moritz_ k23z__: in C you don't even have objects, so you need some kind of runtime system
22:37 Tene k23z__: Perl 6 is an extremely dynamic language.  It's likely that any implementation is going to implement something like a VM, at least internally, so we're formally doing that as a separate project, for a variety of reasons.
22:37 Tene Parrot's goal is to be a VM good for any dynamic language.
22:37 k23z__ hm ok I get the idea
22:37 Tene k23z__: There are a few other alternative implementations in progress, and any implementation that can pass the spec test suite "Is Perl 6"
22:38 lue Rakudo is only the most likely candidate. A few years ago it was Pugs.
22:38 lue most likely candidate _to be the first_
22:39 k23z__ I am also interested in speed, XS was very good for Perl5 because you get to mess with the internals, with the core, you can make it do whatever you want
22:40 k23z__ I hope a similar mechanism be devised for p6
22:40 TimToady I hope p6's mechanism is far, far better than XSW
22:40 TimToady XS
22:40 Tene k23z__: right now, it looks like any API like that is going to be implementation-dependant.  It's possible to access C code from Rakudo right now, but it's not very well-documented.
22:41 k23z__ Tene: ah , neat :)
22:41 masak k23z__: the hope for Perl 6 is that the internals will be something that you won't often feel the need to mess with, and that messing with the operators, the metamodel, the slangs and macros will be enough.
22:41 moritz_ rakudo: my %p; %p<a> = [%p<a>, 4]; say %p.perl
22:41 p6eval rakudo 14a83e: OUTPUT«{"a" => [Proxy.new(), 4]}␤»
22:41 lue Speaking of which, is SDL/OpenGL useable yet? :)
22:41 mberends lue: almost :)
22:41 moritz_ masak: that's RT #64080
22:42 moritz_ and "fixed" now :-)
22:42 diakopter k23z__: Perl 6 specifies native types, which (assuming a good optimizer) should provide quite efficient data structures/algorithms.
22:42 Tene k23z__: the process is: write a C library, load that .so or .dll with the loadlib op, and then fetch symbols in it with the dlfunc op.
22:42 TimToady and it should be possible to specify APIs from the Perl side, so you don't have to write grotty glue code
22:42 TimToady (see XS)
22:43 k23z__ Tene: yes that seems to be very much like Perl5 does it..
22:43 TimToady the hard work is getting the arguments in and out
22:43 Tene k23z__: here is a wrapper library in PIR for a GUI library I was playing with a while back: http://github.com/tene/parrot-elem​entary/blob/master/Elementary.pir
22:44 Tene k23z__: you notice that you need to explicitly specify the signature
22:44 Tene k23z__: there have been a few projects to parse C header files and generate library wrappers like this automatically.
22:44 Tene None are currently good enough to rely on, that I've heard about.
22:45 arnsholt Are there no plans for a general Perl 6 C API?
22:45 masak moritz_: I won't hit you, I'm out of fish.
22:46 Tene arnsholt: I have never heard of one.  Every time that question has been asked that I've seen, the consensus has been that any such functionality is likely to be implementation-dependant.
22:46 TimToady for any two well-defined languages, we should be able to come up with a well-defined implementation-independent interface
22:47 diakopter hmm.  where're we gonna find a well-defined language?
22:47 TimToady and the fact is, when I hooked Perl 5 up to Java, I found Java supplied sufficient type info to do that, even though Perl didn't.
22:47 mberends arnsholt: it's not a high priority to make own-foot-shooting-guns, but eventually it will come ;;)
22:47 TimToady and that's one of the reasons Perl now has better type info
22:47 k23z__ Tene: implementation-dependant doesn't matter very much since there is only one implementation(Rakudo)
22:48 diakopter k23z__: that is extremely incorrect.
22:48 TimToady perl6: say "hi, k23z__!"
22:48 moritz_ k23z__: http://perl6.org/compilers/
22:48 p6eval elf 29968, pugs, rakudo 14a83e: OUTPUT«hi, k23z__!␤»
22:48 TimToady there's at last three
22:49 kfo joined #perl6
22:49 Tene k23z__: That's not quite the question he asked.
22:49 masak k23z__: I'm not sure how you can have reached this point in #perl6-hood thinking there is only one Perl 6 implementation.
22:49 Tene k23z__: the fact is, though, even if there were only one implementation right now, Perl 6 has a *very* strong community focus on establishing a spec separate from any implementation.
22:49 diakopter loose reading of   lue> Rakudo is only the most likely candidate.
22:50 snarkyboojum joined #perl6
22:50 masak snarkyboojum: \o
22:50 Tene k23z__: We very much don't want to repeat the mistakes of Perl 5, where the only spec is the one existing implementation.
22:50 k23z__ masak: I thought pugs development has stopped ?
22:50 masak k23z__: your point being?
22:50 TimToady but not mildew or sprixel
22:50 moritz_ it still exists
22:50 Tene k23z__: That's right, pugs is not under current active development.  That doesn't mean it doesn't exist, though.
22:51 TimToady doesn't mean someone won't pick it up again and run with it either
22:51 moritz_ rakudo: &foo # what should that do?
22:51 p6eval rakudo 14a83e: OUTPUT«Could not find non-existent sub &foo␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
22:51 moritz_ std: &foo
22:51 p6eval std 29967: OUTPUT«ok 00:01 108m␤»
22:51 masak moritz_: that's a question pmichaud asked as well.
22:51 * arnsholt has considered looking at Pugs
22:51 snarkyboojum masak: g'day :)
22:51 masak moritz_: I'm of the opinion that it should not warn.
22:51 arnsholt It's ludicrously hubristic, but might be fun
22:51 k23z__ masak: 2-1 = 1
22:51 masak snarkyboojum: I'm hacking on Tardis.
22:51 moritz_ masak: I know; he gave me RT #73074
22:52 moritz_ and I have no idea what to do with it
22:52 masak k23z__: I'm not sure you've convinced me you're not a troll.
22:52 snarkyboojum masak: nice! how'd the talk go?
22:52 masak k23z__: forgive me if I don't put much energy into replying to you from now on.
22:52 k23z__ ???
22:52 masak snarkyboojum: it felt nice to give it. it's the first talk that I wouldn't mind giving again sometime.
22:53 snarkyboojum masak: excellent :) slides up anywhere?
22:53 masak snarkyboojum: I just pushed what I've committed so far to Tardis.
22:53 k23z__ ok I am not going to be using this channel any more , bye #perl6
22:53 snarkyboojum masak: sweet - will take a look
22:53 masak snarkyboojum: bottom of http://feather.perl6.nl/~masak/
22:53 k23z__ left #perl6
22:53 diakopter masak: I think k23z__ was not being a troll.
22:53 TimToady now he'll probably brag he got kicked out of #perl6 :)
22:54 TimToady I think k23z__ isn't sure himself
22:54 diakopter masak: he was here yesterday too
22:54 masak diakopter: I didn't say he was. I said he hadn't managed to convince me he wasn't.
22:55 masak diakopter: there's a subtle difference.
22:55 diakopter I didn't say you said/thought he was.
22:55 masak :)
22:55 TimToady masak didn't say he thought you said that.  :P
22:55 masak I'm not saying I think he isn't, by the way.
22:56 TimToady ain't communication wunnerful
22:56 * Khisanth bows to masak's skills
22:56 diakopter I was saying (in different words) that he *had* managed to convince me he wasn't being a troll.
22:56 TimToady now you tell us
22:56 masak diakopter: is the proof contained in P? :)
22:57 diakopter but that's what I said
22:57 masak that's what she said!
22:57 diakopter _I think_ that _he wasn't being a troll_
22:57 * masak is not convinced masak is not a troll
22:57 TimToady no, you just said you thought he wasn't, you didn't say he'd convinced you of it :)
22:57 k23z__ joined #perl6
22:58 masak TimToady: that's what diakopter said, but maybe not what he thought he said :)
22:59 diakopter what else could have convinced me of that?
22:59 pugssvn r29969 | moritz++ | [t/spec] test that operators can be accessed by their infix:<foo> and &infix:<foo> names
22:59 TimToady hi, k23z__
22:59 k23z__ masak: I actually rejoined because I think you have mistaken me for a "troll"
22:59 masak k23z__: yes. I might very well have been mistaken.
22:59 moritz_ now we're at leat one step meta. Congratulations everyone.
22:59 masak k23z__: I just wish I could rule it out more readily.
23:00 k23z__ if you label me a troll again I will never enter this channel
23:00 k23z__ that's all I had to say
23:00 * k23z__ goes back to code
23:00 masak k23z__: you're welcome to help. should we resume our fruitful discussion about implementations, and Rakudo not being the only one, in which mostly everyone on the channel disagreed with you?
23:00 diakopter k23z__: I'm glad you have questions about Perl 6
23:00 TimToady nuclear blackmail? then stay away, by all means
23:01 masak k23z__: I label you a troll.
23:01 TimToady take your marbles and run while you can
23:01 dalek rakudo: 9a94503 | moritz++ | t/spectest.data:
23:01 dalek rakudo: turn on new test in S03-operators/names.t
23:01 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/9​a945039e6b6619e4e621d5ae48a2a1997b67654
23:01 lue 日本語 ゼルダの伝説 風の卓と (felt this conversation needed a sharp turn to SCD)
23:01 masak lue: you finally got your kana. :)
23:01 TimToady actually, I think moritz++ has the right idea
23:01 quietfanatic lue: err, I think that's the wrong spelling of タクト
23:02 diakopter I do not believe it was a threat of nuclear blackmail
23:02 diakopter I believe it was someone merely pointing out that they felt offended by being labeled something they weren't intending to be.
23:02 diakopter and that he wouldn't return to possible face such accusations again, given the past miscommunications
23:03 lue it was not meant to be accurate. Just meant to stop the conversation.
23:03 TimToady people who paint a target on their backs usually turn out to be poisonous
23:03 quietfanatic ...I wouldn't be that offended.
23:03 masak diakopter: what TimToady said. besides, I didn't call him a troll.
23:03 masak not the first time, at least.
23:03 lue Objection! [15:01] <masak> k23z__: I label you a troll.
23:03 moritz_ rakudo: class A { submethod BUILD { eval 'method foo { say "OH HAI" }' } };
23:03 diakopter not technically, but you implied you suspected it
23:03 p6eval rakudo 14a83e:  ( no output )
23:04 masak diakopter: that's because I suspected it.
23:04 moritz_ rakudo: class A { submethod BUILD { eval 'method foo { say "OH HAI" }' } }; class B is A {}; B.new.foo; say "alive"
23:04 p6eval rakudo 14a83e: OUTPUT«Method 'foo' not found for invocant of class 'B'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
23:04 masak diakopter: it was not an accusation.
23:04 quietfanatic We have a high incidence of tautologies in this sector.
23:05 diakopter but perception is what matters here. you perceived possible trollishness, but you weren't sure, and the accused felt hurt that he was even possibly [mis]interpreted as acting trollish.
23:05 TimToady or acted hurt
23:06 masak diakopter: I could worry myself blue about people being or acting hurt. the next thing I knew this k23z__ came back and was openly threatening.
23:06 diakopter [tried to express hurt]
23:06 TimToady yes, but you have puppy eyes, so it's easy
23:06 masak diakopter: I'll try not to mention the word 'troll' next time I talk to a suspected troll.
23:06 masak they seem to go critical from that.
23:07 moritz_ masak: call them 'llort'.flip :-)
23:07 k23z__ I will only talk about code from now on and not express any personal oppinions about anything
23:07 k23z__ I don't like at all being labelled a troll, in fact I hate it a lot.
23:07 diakopter it seems to me k23z__'s message to masak was very unclear/ambiguous/dangerous
23:08 diakopter < k23z__> masak: 2-1 = 1
23:08 kfo joined #perl6
23:08 masak diakopter: I read that as 'Now that Pugs is gone, there's only Rakudo left.'
23:08 moritz_ std: max(3, 4)
23:08 k23z__ 2 implementations (Rakudo+Pugs) - 1 implementation(Pugs stopped development) = 1 implementation (Rakudo in active development)
23:08 p6eval std 29968: OUTPUT«ok 00:01 107m␤»
23:08 k23z__ that was what I meant
23:08 k23z__ I may be wrong
23:08 masak diakopter: and that was after numerous people had mentioned other implementations to him.
23:08 k23z__ if I am, sorry.
23:09 masak k23z__: you're wrong.
23:09 quietfanatic Why are we still talking about this?
23:09 moritz_ k23z__: I did give you a link to a list of compilers
23:09 * lue is unsure of how to respond.
23:09 * k23z__ looks on backscroll
23:09 masak quietfanatic: I'm still talking about it because community mechanisms fascinate me.
23:09 masak quietfanatic: there's a clear risk of the Perl 6 community forming a clique or elite or whatever, despite very clear intentions not to.
23:10 masak quietfanatic: basically because that's what communities do.
23:10 quietfanatic masak: Fair enough.  I guess I say that because community mechanisms horrify me :)
23:10 k23z__ moritz_: I didn't see your links sorry, I am looking at it now
23:10 lue I wish to still work on 楽土。What is there to do?
23:10 masak quietfanatic: it was not my intention to push k23z__ away, but I seemingly catalyzed a quite interesting chain reaction of discussion by confronting him.
23:11 diakopter so then, it was _yet another_ instance of someone not reading messages quite as quickly as others, and therefore missing things others assume he read
23:11 diakopter quickly/thoroughly
23:11 masak lue: lots. choose a favourite spectest file, and make the tests pass. especially tests which passed in alpha.
23:11 TimToady diakopter: it's a possibility
23:12 masak diakopter: not only that. there's also the detail of missing the fact that Rakudo is not the only implementation up until this point.
23:12 TimToady but I was serious in suggesting that some people have aspects of both t*-ness and non-t*ness simultaneously
23:12 diakopter which is why the _devastating repetitive redundancy_ approach to correcting someone's misbelief/misunderstanding is unhelpful
23:12 TimToady and may not have it all sorted out
23:12 lue and we all understand each other, and all is well, and we stop talking down this dark avenue (please! Camelia needs you to stop!)
23:12 lue »ö«
23:12 moritz_ rakudo: say <foo bar>.max
23:12 p6eval rakudo 14a83e: OUTPUT«foo␤»
23:12 moritz_ lue++
23:12 masak moritz_: that's correct, no?
23:13 TimToady every community has to include helpful people, and exclude destructive people, and the really, really hard part of that is a given person can be both
23:13 masak k23z__: what TimToady just said.
23:13 masak k23z__: to the extent that you're helpful, I do wish to help include you.
23:14 TimToady lue: Camelia tells us we have to know how to be nice to all kinds of people.  She very carefully doesn't say we always have to be.  :)
23:14 k23z__ masak: ok, thanks.
23:14 Tene I wouldn't be surprised if half of my contributions to this channel were borderline trolling. :)
23:14 lue masak: do I have to switch to the alpha branch to see the difference between passing tests? Or is there a handy printout.
23:14 diakopter masak: I think you mean non-hurtful... since the mere presence of non-contributors should also be encouraged.
23:14 * masak hugs k23z__
23:14 TimToady where's hugme when you need it
23:14 Tene lue: I'm not aware of any lists currently.  Making one would certainly be useful, as well as determining the difference between alpha and master.
23:15 hugme joined #perl6
23:15 moritz_ TimToady: hugme seems to have problems with net splits :/
23:15 lue P»ö«6 # I think this is a much more obvious representation of Camelia
23:16 TimToady sometimes Camelia is subtle :)
23:16 masak diakopter: well, 'helpful' is a wide term.
23:16 diakopter after k23z__ was here yesterday, I happened to look up his googlecode and github repos, and the content of those also helped in my assessment.  I neglected to mention/remember that.
23:17 masak diakopter: that's the kind of proof that would be contained in P. :)
23:17 k23z__ masak: ah ... http://perl6.org/compilers/ , I was clearly wrong
23:18 Tene k23z__: We've had a fair number of trolls in here, on and off, so some of us (especially those that have worked on other implementations) can be a bit sensitive.
23:18 masak k23z__: also, I'm a bit surprised that it took you so long to realize that Rakudo isn't the only (active) implementation.
23:18 masak k23z__: there's quite a bit of talk about them all here most of the time.
23:18 k23z__ masak: I haven't been looking at any other, I am reading blogs and everybody is talking about rakudo, the others don't get so much attention because they're not in blogs
23:19 k23z__ masak: I read ironman for example
23:19 masak k23z__: true.
23:19 lue How doth I switch branches?
23:19 masak lue: git checkout -b branchname
23:19 masak lue: or, if for the first time, git checkout -b branchname origin/branchname
23:21 lue bah. I messed up. How to switch back to master, it won't let me.
23:22 Tene git checkout master
23:22 moritz_ git reset --hard HEAD; git checkout master # throws away all changes
23:23 mberends joined #perl6
23:24 lue I think I got it. Will it act like alpha now?
23:24 * diakopter notes that vill should be added to perl6.org/compilers
23:24 Tene lue: Yes.  Check 'git log' if you want to be sure, to see what line of development you're on.
23:25 lue Thanks. I'll play with that later.
23:25 * lue &
23:26 jnthn diakopter: It sure it vill be added soon.
23:26 diakopter :)
23:26 jnthn </bad german accent>
23:34 justatheory joined #perl6
23:34 masak jnthn++
23:35 Grimnir_ jnthn: hey, is it possible to get your slides from today's talk on perl6? In particular I'd like the slides from "Solved in Perl6"
23:35 masak rakudo: sub foo($a;; $b, $c) {}
23:35 p6eval rakudo 14a83e:  ( no output )
23:35 kfo joined #perl6
23:36 jnthn Grimnir_: The almost same ones are on http://jnthn.net/articles.html
23:36 jnthn But will upload the latest ones too soon. :-)
23:36 Grimnir_ nice, thanks :)
23:36 snarkyboojum http://jnthn.net/articles.shtml
23:37 jnthn oops, yes, it is.
23:37 jnthn snarkyboojum++
23:37 snarkyboojum :)
23:37 Grimnir_ yeah, it was the wrong link, but I found it :)
23:38 snarkyboojum beautiful photo on the first slide!
23:38 Grimnir_ I often hear people talking about python or see people talking about it on the net and that it's better than perl, etc. What is your opinion about python and perl6?
23:40 masak Grimnir_: both are Turing-complete programming languages.
23:41 masak Grimnir_: personally, I prefer Perl 6.
23:41 Grimnir_ heh
23:42 Grimnir_ (I'm not trying to troll here ;)
23:42 masak Grimnir_: :)
23:42 diakopter but are you trying (hard enough) *not* to troll? :P
23:42 masak Grimnir_: it's a legitimate question, but that doesn't mean it has a meaningful or informative answer.
23:42 Grimnir_ raduko: my @nums = 2, 1, 9, 4; say [+] @nums
23:43 masak Grimnir_: if you like Python enough, who am I to force you not to use it?
23:43 Grimnir_ masak: I know. I just hoped someone could answer :)
23:43 diakopter rakduo, raduko, I've mistyped them all ;)
23:43 masak rakudo: my @nums = 2, 1, 9, 4; say [+] @nums
23:43 p6eval rakudo 14a83e: OUTPUT«Confused at line 11, near "say [+] @n"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
23:43 masak Grimnir_: no hyperops in master yet.
23:43 Grimnir_ well... I haven't been using python that much. I've always really liked perl, and perl6 seems to do the stuff I missed in perl5
23:43 Grimnir_ and more
23:43 masak Grimnir_: I've seen good answers, mind you. let me get you a link.
23:44 Grimnir_ alpha: my @nums = 2, 1, 9, 4; say [+] @nums
23:44 p6eval alpha 30e0ed: OUTPUT«16␤»
23:44 masak Grimnir_: http://use.perl.org/~masak/journal/39025
23:44 masak Grimnir_: the section 'Do we like Perl or Python?' about halfway down.
23:45 Grimnir_ thanks
23:46 masak time to sleep, methunks.
23:46 jnthn aye
23:46 masak o/
23:46 jnthn o/
23:47 Grimnir_ just for the record, I'm not trying to find "the best" language. I've learned pretty much, that different languages can be great in different situations. and it doesn't really matter if you like one language better than the other, if you have to modify code in a particular language
23:54 k23z__ Grimnir_: if you want to know about Python go to #python
23:54 k23z__ Grimnir_: if you want to know about Perl5 ask here
23:54 kfo joined #perl6
23:54 k23z__ Perl6
23:55 k23z__ Grimnir_: if you ask questions about Perl6 in #python you'll be offtopic
23:55 k23z__ Grimnir_: the same with asking here questions about Python
23:58 Grimnir_ they said it was a nice channel

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

Perl 6 | Reference Documentation | Rakudo