Camelia, the Perl 6 bug

IRC log for #perl6, 2009-01-29

Perl 6 | Reference Documentation | Rakudo | Niecza | Specs

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

All times shown according to UTC.

Time Nick Message
00:00 Tene hi
00:08 shinobi-cl rakudo is a cool name for perl6, even better than perl6 i think...
00:08 shinobi-cl sounds like some kind of martial art
00:23 ayrnieu joined #perl6
00:37 rabbits77 joined #perl6
00:39 legis joined #perl6
00:42 andrew_ joined #perl6
00:45 rabbits77 left #perl6
00:49 silug joined #perl6
00:53 s1n joined #perl6
00:53 shinobi-cl i've read somwhere (cant remember where) about a perl6 feature called "shape"
00:54 shinobi-cl what happened to that? and, what was the idea?
01:04 TimToady see S09:288
01:05 shinobi-cl thanks!
01:06 SamB joined #perl6
01:07 shinobi-cl thats would be great for voxel models
01:08 TimToady nobody actually implements it yet, of course...
01:08 TimToady but jnthn++ sez that rakudo is getting close
01:09 shinobi-cl the ";" is still the dimension separator?
01:10 TimToady yes
01:10 shinobi-cl ouch
01:10 TimToady allows slices in each dimension
01:10 TimToady slices are important :)
01:12 TimToady you can always use the [][][] notation too, but that's even uglier
01:13 TimToady and doesn't parallelize as easily
01:14 shinobi-cl oh cool :) thats good to know. i agree that [][] is uglier, but i always relate ; with end of sentence.... is just one of those things that are hard to forget.
01:14 TimToady the lists in [list;list;list] are independently lazy
01:15 TimToady well, the lists in [list][list][list] are also indendently lazy, but it's harder to see
01:16 shinobi-cl perl6 will be the best toy ever :) i had sooo much fun with "roles" today. Is so great that is hard to think "how do i live all those years without them"....
01:16 TimToady allowing statements in there also gets us list comprehensions for free
01:16 shinobi-cl shapes seems to be fun also, cant wait to start playing with that
01:19 TimToady my @foo = @bar[$_ if * % 2 for 1..*] # all the odd elements
01:20 shinobi-cl noted
01:20 TimToady though @foo = @bar[1,3,5...*] might be easier to grok
01:23 shinobi-cl left #perl6
01:29 TimToady hmm, @foo = @bar[1,3,5..*] would be an epic fail  :/
01:30 diakopter (1..*).odds
01:30 frew why would it be an epic fail?
01:30 TimToady to get 1,3,5,6,7,8,9 when you wanted 1,3,5,7,9...
01:30 TimToady just because you left out one .
01:31 frew ah
01:31 frew I couldn't see it
01:31 TimToady indeed
01:31 frew is that part of perl6?
01:31 TimToady yes
01:31 frew that style syntax?
01:31 frew haha, that's cool
01:31 frew although I can't see myself using it ever
01:32 frew it would be nice, but how often do I just use odd numbers?
01:32 TimToady a specialization of 1,1 ... { $^a + $^b }  # fibonacci
01:32 frew maybe for like, server side zebra striping
01:32 frew wow
01:32 frew does that work?
01:32 TimToady it's specced
01:33 frew ah, ok
01:33 frew so not yet
01:33 diakopter std: 1,1 ... { $^a + $^b }
01:33 p6eval std 25101: OUTPUT«00:04 72m␤»
01:34 frew so if I wanted factorials I could do 1,2 ... { $^a * $^b } ?
01:34 frew anyone else here agree with masak's journal about wishing we had irb in perl6?
01:37 TimToady well, you could, but [\*] 1..* is shorter
01:37 TimToady perl6: say [\*] 1..10
01:37 p6eval rakudo 36127: OUTPUT«Statement not terminated properly at line 1, near "1..10"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
01:37 p6eval ..pugs: OUTPUT«126241207205040403203628803628800␤»
01:37 p6eval ..elf 25101: OUTPUT«/home/evalenv/pugs/m​isc/STD_red/match.rb:117:in `block in to_dump0': undefined method `to_dump0' for nil:NilClass (NoMethodError)␤     from /home/evalenv/pugs/misc/STD_red/match.rb:117:in `map'␤       from /home/evalenv/pugs/misc/STD_red/match.rb:117:in `to_dump0'␤  from
01:37 p6eval ../home/evalenv/pugs/...
01:37 frew that's kinda a bizarre syntax
01:38 frew why the \?
01:38 TimToady it's a triangle
01:38 frew ???
01:38 frew pugs: say [+] 1..5; say [*] 1..5
01:38 p6eval pugs: OUTPUT«15␤120␤»
01:38 frew Why not just do that?
01:38 TimToady each result tends to get longer, and if you print one on each line...
01:39 TimToady you were defining a list of all the factorials, not just one
01:39 frew oooh
01:39 TimToady pugs: say join ' ', [\*] 1..10
01:39 p6eval pugs: OUTPUT« ␤»
01:39 frew so if I want a sum I should do [\+] 1..5
01:40 TimToady pugs: say join(' ', [\*] 1..10)
01:40 p6eval pugs: OUTPUT« ␤»
01:40 TimToady pugs: my @x = [\*] 1..10; say ~@x
01:40 p6eval pugs: OUTPUT«1 2 6 24 120 720 5040 40320 362880 3628800␤»
01:40 frew rakudo: say join(' ', [\*] 1..5)
01:40 TimToady there you go
01:40 p6eval rakudo 36127: OUTPUT«Statement not terminated properly at line 1, near "(' ', [\\*]"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
01:41 frew ok
01:41 frew so [\opp] means gimme a bunch of lists
01:41 frew and [opp] is vanilla reduce
01:41 TimToady yes, \ gives all the partial results
01:41 frew ok
01:41 frew I can see wanting that
01:41 TimToady and since almost no infix operators start with \...
01:42 frew right
01:42 TimToady it's hard to get the triangle effect in irc though
01:43 frew should I type it in vim or something
01:43 TimToady 1
01:43 TimToady 2
01:43 TimToady 6
01:43 TimToady 24
01:43 TimToady 120
01:43 frew oooooh
01:43 TimToady 720
01:43 frew gotcha
01:43 TimToady 5040
01:43 TimToady 40320
01:43 TimToady 362880
01:43 TimToady 3628800
01:44 TimToady that's the triangle
01:44 diakopter TimToady: how about octal..
01:44 TimToady everyone 8's octal
01:44 diakopter )
01:45 TimToady 8)
01:45 TimToady ^ kermit
01:47 TimToady std: :(  8)  it's not easy being green
01:47 p6eval std 25101: OUTPUT«############# PARSE FAILED #############␤Syntax error (two terms in a row?) at /tmp/mVRfF480kk line 1:␤------> [32m:(  8)  [31mit's not easy being green[0m␤    expecting any of:␤        infix or meta-infix␤      infix stopper␤    standard stopper␤ statement modifier loop␤
01:47 p6eval ..terminator␤00:04 63m␤»
01:51 TimToady 8>  # gonzo
01:51 hercynium joined #perl6
01:54 pugs_svn r25102 | lwall++ | [S02] reserve PERL and FILE lexical scope names
01:54 eternaleye joined #perl6
01:55 jhuni joined #perl6
01:55 pugs_svn r25103 | lwall++ | [delete.t] there is no delete function
01:57 pugs_svn r25104 | lwall++ | [STD,t] next,last,redo,break,goto can now be parsed as ordinary functions/listops
01:59 pugs_svn r25105 | lwall++ | missing comma
02:01 frew I am in ord_and_chr.t and I am skipping a for loop
02:02 frew and the skip thinks I am skipping 2
02:02 frew but I am skipping something like 200
02:02 frew how can I tell it that?
02:03 lambdabot joined #perl6
02:04 TimToady put the skip inside the loop?
02:04 frew ah, clever.
02:04 TimToady or there's always emit
02:05 s1n frew: could always just say exactly how many you're skipping after the skip
02:05 s1n grep for skip, you'll find it eventually
02:05 frew eh, this works
02:06 frew I like to think that these skip things are temporary so trying for elegance in them is a waste of my time
02:06 s1n #?rakudo 200 skip 'bleh'
02:06 TimToady that's skip the next 200 linear tests
02:07 TimToady won't work on a loop
02:07 frew well, it's a dynamic number
02:07 frew ah
02:07 frew ok
02:07 frew so still, in the loop works best apparently
02:07 s1n could also put the test in a block and skip the block
02:07 frew but then my plan is wrong.
02:07 frew because it only sees 2 tests
02:07 frew but there are 200
02:07 frew because it's a loop
02:07 Tene so fix your plan.
02:08 TimToady the plan's not wrong :)
02:08 s1n are plans dynamic?
02:08 aindilis` joined #perl6
02:08 frew this one is
02:08 frew plan 36*@maps*2;
02:08 frew er 36+@maps*2l
02:08 frew gracious
02:08 s1n oh, yeah that's fine
02:09 s1n i was asking about changing the plan after-the-fact
02:09 frew 36+@maps*2;
02:09 frew anyone know if you can do vertical splits in screen?
02:10 Tene frew: with the latest version you can
02:10 Tene ^A |
02:10 frew hoho
02:10 frew that's great
02:10 frew thanks
02:11 s1n TimToady: are you familiar with rakudo's version of STD.pm? (languages/perl6/src/parser/grammar.pg)
02:11 frew vimsplits and screen splits make using a single 15 inch monitor totally bearable :-)
02:12 s1n TimToady: or any of the other parser/* files for tha tmatter
02:12 TimToady s1n: no, I try to stay away from everyone else's implementations for their own good.  :)
02:13 s1n heh okay, thanks
02:13 s1n anyone else in here familiar with rakudo's parser? i'm trying to find something
02:13 alester_ joined #perl6
02:14 pugs_svn r25106 | frew++ | [t] Added named arg tests for ord and chr
02:15 TimToady decommuting &
02:16 s1n jnthn: i see you name on the commit of grammar-oper.pg, can you help me find something?
02:22 frew how is this syntax supposed to work: %h<b>:delete
02:22 aindilis` joined #perl6
02:22 frew I realize that it's deleting b from %h
02:22 frew but I just don't see how the syntax makes
02:23 frew sense, vs %h.delete <b>
02:27 frew Ok, it looks like :delete isn't a method but something else entirely
02:27 frew Someone let me know at some point if I'm right
02:31 s1n i believe :delete would be the adverbial form, which triggers the delete
02:33 frew k, I don't think that needs named arg testing
02:35 pmichaud joined #perl6
02:38 s1n pmichaud: ping
02:38 pmichaud pong
02:39 s1n i'm playing with Ranges, and I want to modify the parser, i was wondering if you could point me in the right direction
02:40 s1n where are the infix/prefix methods defined?
02:40 s1n i found them in the src/parser/grammar-oper.pg, but i don't see where the protos turn into anything else
02:43 pmichaud grammar-oper defines the tokens
02:43 pmichaud the actual functions are probably in src/classes/Range.pir
02:43 pmichaud how are you wanting to modify the parser?
02:45 s1n i'm learning PIR, rakudo internals and all, so i figured i'd add :by to Range
02:45 pmichaud the adverbs are actually part of the other parts of the parser, not part of the token
02:45 pmichaud as far as the functions are concerned, it'll just be a named parameter.
02:46 s1n right, i have it added to Range.pir as a named parameter, but i need to add the adverb to the parser
02:46 pmichaud that would involve adding adverbs to the entire parser, not just for ranges.
02:46 aindilis joined #perl6
02:46 s1n is that not supported yet? anywhere?
02:46 pmichaud not in rakudo
02:46 pmichaud we'd need to look at how it's handled in STD.pm
02:46 s1n heh okay
02:47 s1n well i definitely bit off more than i could chew
02:47 frew can someone tell me if this method sig foo "(%bar ; $baz)" is a typo?
02:47 pmichaud looks like adverb handling in STD.pm is handled by expression parser
02:47 pmichaud loop {     # while we see adverbs
02:48 s1n pmichaud: hmm, that sounds like more than i understand right now
02:49 pmichaud it's a bit out there for me as well.
02:49 s1n well, crud
02:49 pmichaud although I'm glad I didn't try to tackle adverbs before now, since it's changed quite a bit since last time I looked at it ;-)
02:49 s1n not wasting time/effort is always good
02:49 s1n well, i'm getting more familiar with PIR
02:50 s1n still getting a grasp on the lay-of-the-land though
02:50 s1n i'd like something i could start working on
02:51 s1n i'm just unsure what needs huge amounts of work and what is possible now
02:59 s1n the calm is eerie
02:59 frew s1n: agreed
03:00 s1n frew: i was wondering if i was in irc purgatory
03:00 frew well, if you are I am too?
03:00 aindilis joined #perl6
03:01 s1n hmm dunno
03:02 s1n i was mid-conversation with pmichaud and either he went afk suddenly, or i'm out in the void now
03:02 frew maybe he had to get dinner
03:02 frew or she, I dunno
03:02 s1n he, heh
03:03 s1n ahh, the dalek bot in #parrot leads me to think he just went afk
03:03 frew well, I read somewhere on use.perl.org someone said something about audrey tang and they said that "you are a free spirited guy" or something like that
03:04 frew and she was like, "Yeah, I am a free spirited girl"
03:04 frew it was funny
03:05 s1n dude named audrey? man, that child would be tomented to no end
03:07 literal what does http://sial.org/pbot/perl6 use for highlighting?
03:07 literal it doesn't work very well...
03:07 frew literal: no clue, but I found another weird issue with vim with perl6.vim
03:08 literal what issue?
03:08 frew check S29-list/end.t
03:08 frew it's weird because it's really short
03:08 literal what's weird about it? looks fine here
03:08 frew but if you load the file (with the filetype set) at the end everything looks fine, but after scrolling up just a few lines it gets all comenty
03:08 frew mm
03:09 frew maybe I should add those commits you did today
03:09 literal yeah, when you open the file anywhere else but at the top, that can happen
03:09 literal don't know why
03:09 frew well, it's kindav expected
03:09 s1n frew: i've seen vim get confused with the filetype before, i.e. scrolling quickly over PIR
03:09 frew what would be best would be if vim could get the AST from perl6 or something
03:10 literal frew: vim doesn't allow that
03:10 frew s1n: yeah, it happens to me at work with js all the time
03:10 literal but other editors do, like Padre
03:10 frew literal: yeah, I know
03:10 frew well, Padre is written in perl right?
03:10 literal yeah
03:10 frew so it doesn't count :-)
03:10 literal you could probably do it with emacs, I hear it's more programmable than vim
03:11 frew steve yegge wrote an entire javascript engine in emacs
03:11 frew but he said it was a pretty terrible experience
03:12 s1n he write it in lisp/scheme?
03:12 s1n that would be a terrible experience
03:12 frew yeah
03:12 frew emacs lisp
03:12 frew which I read is not as nice as other lisps?
03:12 pugs_svn r25107 | frew++ | [t] added named arg test to end
03:12 s1n isn't that just scheme?
03:13 frew http://steve-yegge.blogspot.com/2008/11/ej​acs-javascript-interpreter-for-emacs.html
03:13 frew no clue
03:13 frew I've not delved into lisp or scheme more than a little
03:25 pugs_svn r25108 | frew++ | [t] added named arg test for first
03:28 pugs_svn r25109 | frew++ | [t] added named arg test for grep
03:30 aindilis` joined #perl6
03:36 aindilis` emacs lisp is somewhat archaic
03:53 simcop2387 joined #perl6
03:54 simcop2387-vnc joined #perl6
04:11 meppl joined #perl6
04:38 shinobi-cl joined #perl6
04:44 shinobi-cl left #perl6
04:46 ChrisDavaz joined #perl6
04:46 shinobi-cl joined #perl6
05:38 kisu joined #perl6
05:42 shinobi-cl left #perl6
05:43 mtnviewmark joined #perl6
05:45 mberends joined #perl6
06:10 aindilis joined #perl6
06:18 shinobi-cl joined #perl6
06:28 frew joined #perl6
06:44 ashizawa joined #perl6
06:51 aindilis` joined #perl6
07:01 meppl joined #perl6
07:03 araujo joined #perl6
07:05 aindilis` joined #perl6
07:43 masak joined #perl6
07:46 iblechbot joined #perl6
07:54 kisu joined #perl6
08:00 ejs joined #perl6
08:04 masak if I want to build a .new constructor with mandatory named arguments, how do I write?
08:04 masak method new( :mandatory! ) { ... } # something like this? what's the '...' supposed to be?
08:10 ejs left #perl6
08:10 DemoFreak joined #perl6
08:12 moritz_ call bless, if I got that right
08:13 moritz_ (and maybe CREATE)
08:13 moritz_ http://perlcabal.org/syn/S12.html​#Construction_and_Initialization
08:16 masak danke.
08:25 zamolxes joined #perl6
08:26 pbuetow joined #perl6
08:27 DemoFreak joined #perl6
08:39 hanekomu joined #perl6
08:45 |jedai| joined #perl6
08:52 DemoFreak joined #perl6
08:53 masak if anyone would like to try and follow the new installation instructions at http://github.com/masak/druid/ I'd much appreciate it.
09:18 ejs joined #perl6
09:31 masak is putting a concrete default implementation into a role advisable?
09:31 moritz_ yes
09:31 masak what about if it requires an attribue?
09:31 moritz_ roles are for code reuse
09:31 moritz_ then you add an attribute to that role
09:31 masak \o/   # just as I hoped!
09:31 moritz_ classes are for interfaces
09:32 masak moritz_: I'm doing the Observer pattern for Druid. which one would you prefer, Druid::BoardObserver or Druid::Board::Observer?
09:35 moritz_ the latter
09:36 Matt-W definitely the latter
09:36 masak I'm glad I asked, then. :)
09:37 Matt-W Does anybody test Parrot/Rakudo on OpenSolaris?
09:38 moritz_ Matt-W: not according to http://smolder.plusthree.com/app​/public_projects/smoke_reports/8
09:38 Matt-W that could be interesting then
09:38 Matt-W my new home server will be running opensolaris
09:40 moritz_ nice
09:41 Matt-W wouldn't be hard to run up parrot on it from time to time
09:41 * moritz_ heard a talk about Nexenta (Debian+Opensolaris) at debconf
09:44 pugs_svn r25110 | moritz++ | [irclog] no monkey-patching, rg++
09:44 Matt-W yeah I looked at nexenta
09:44 Matt-W as I'm really after the kernel's ZFS support
09:44 Matt-W but it doesn't really seem mature enough
09:45 Matt-W opensolaris itself is only just there
09:46 moritz_ aye, don't think nexenta is really usable
09:54 masak rakudo: role A {}; class B is A {}
09:54 p6eval rakudo 36139: OUTPUT«Null PMC access in get_string()␤current instr.: '!meta_trait' pc 18676 (src/builtins/guts.pir:551)␤»
09:54 * masak submits rakudobug
09:55 masak don't we have tests for these things? :/
09:56 moritz_ masak: yesterday I tried to write tests for similar things, and they all suffered from assertion failures that eval() didn't catch
09:56 masak moritz_: good to know that someone at least had the idea to test it.
09:57 * masak ponders writing a random Perl 6 code generator that creates syntactically correct garbage, and just running it constantly against Rakudo
10:00 masak std: role A {}; class B is A {}
10:00 p6eval std 25110: OUTPUT«can't create lex/STD/termish.store: Permission denied at Cursor.pm line 534␤00:05 79m␤»
10:01 masak something's slightly wrong with the STD eval today.
10:04 moritz_ ORLY? :-)
10:04 moritz_ std: role A {}; class B is A {}
10:05 p6eval std 25110: OUTPUT«00:04 58m␤»
10:05 masak moritz_++
10:07 ejs1 joined #perl6
10:10 moritz_ first the svn bot gives me karma for writing crappy code, and then you give me karma for repeatedly cleaning up the mess I made before ;-)
10:11 masak moritz_: you've just described most of the development I do. :)
10:13 masak so protoobjects are defined?
10:13 masak rakudo: class A {}; my A $a; say $a.defined
10:13 p6eval rakudo 36139: OUTPUT«1␤»
10:14 * masak didn't know that
10:14 masak how do I distinguish a protoobject from a .new-ed one?
10:14 moritz_ well, that's wrong
10:14 * masak submits rakudobug
10:14 moritz_ my $a; say $a.defined
10:15 moritz_ perl6: my $a; say $a.defined
10:15 p6eval rakudo 36139: OUTPUT«0␤»
10:15 p6eval ..elf 25110, pugs: OUTPUT«␤»
10:15 moritz_ perl6: class A { };  my A $a; say $a.defined
10:15 p6eval rakudo 36139: OUTPUT«1␤»
10:15 p6eval ..elf 25110, pugs: OUTPUT«␤»
10:15 moritz_ stringifying False to '' seem so perl 5ish
10:16 masak hah, two against one :)
10:18 moritz_ perl6: class A { };  my A $a .= new(); say $a.defined
10:18 moritz_ perl6: class A { method b ($x, :$y) { say "$x, $y" }}; A.new.b(2, :y<3>, :z<4>);
10:18 p6eval pugs, rakudo 36139: OUTPUT«1␤»
10:18 p6eval ..elf 25110: OUTPUT«␤»
10:18 p6eval elf 25110: OUTPUT«$x, $y␤»
10:18 p6eval ..pugs: OUTPUT«2, 3␤»
10:18 p6eval ..rakudo 36139: OUTPUT«too many named arguments - 'z' not expected␤current instr.: 'parrot;A;b' pc 167 (EVAL_19:70)␤»
10:18 riffraff joined #perl6
10:19 moritz_ masak: care to submit a rakudobug?
10:19 jnthn morning all
10:19 moritz_ hi jnthn
10:19 moritz_ http://irclog.perlgeek.de/​perl6/2009-01-28#i_870566
10:19 moritz_ "methods ignore unrecognized nameds, but subs don't"
10:19 moritz_ jnthn: want to add that to your dispatcher?
10:19 masak moritz_: there already is one for that.
10:19 moritz_ ah, ok
10:20 jnthn moritz_: We don't want it in the dispatcher, but rather just want to generate an implicit *%_ parameter, I think.
10:20 jnthn For methods.
10:21 jnthn That shouldn't be too hard.
10:21 masak jnthn: ahoj.
10:21 jnthn masak: Ahoj! Vienna.pm are giving me more Rakudo days! The fight back against your ticket filing insanity begins shortly. ;-)
10:21 moritz_ jnthn: ah, maybe that's better
10:21 moritz_ woah
10:21 masak jnthn: good luck.
10:21 moritz_ Vienna.pm++
10:21 moritz_ Vienna.pm++
10:21 moritz_ Vienna.pm++
10:22 jnthn Indeed. :-)
10:22 moritz_ can't say it often enough ;-)
10:22 jnthn masak: Yeah, I'm sure you'll be filing plenty more to keep me busy if I ever look like I'm making a dent in it. ;-)
10:22 masak jnthn: you bet.
10:22 masak but I don't mind a bit of resistance.
10:24 masak ah, here: http://rt.perl.org/rt3/Tic​ket/Display.html?id=61480
10:25 masak rakudo: class A {}; my $a; say $a === A
10:25 p6eval rakudo 36139: OUTPUT«0␤»
10:25 masak ah, no such luck :/
10:25 jnthn masak: Why would that work?
10:25 |jedai| joined #perl6
10:25 jnthn Erm, why woudlnt' it give that result, that is?
10:25 masak no, I can't think of a way to distinguish protoobjects from initialized ones.
10:26 jnthn rakudo: class A {}; my A $a; say $a === A
10:26 p6eval rakudo 36139: OUTPUT«1␤»
10:26 masak jnthn: oh!
10:26 masak thanks. :)
10:26 jnthn ;-)
10:26 masak almost missed a perfectly good workaround.
10:26 jnthn I totally don't understand what problme you're trying to solve, but I'm happy to provide a solution anyway. ;-)
10:26 masak rakudo: class A {}; my A $a .= new; say $a === A
10:26 p6eval rakudo 36139: OUTPUT«0␤»
10:26 Caelum joined #perl6
10:27 jnthn masak: Right, because then it's not the proto-object in $a, but rather an instance.
10:27 masak jnthn: I'm working around #62894
10:27 jnthn oh, hmm
10:29 * jnthn will be mostly disappearing for a few days again
10:29 jnthn It's for a Perl workshop this time, though. ;-)
10:29 masak that's almost excusable. :)
10:30 masak lunch &
10:45 bacek joined #perl6
11:00 ChrisDavaz joined #perl6
11:19 jhuni joined #perl6
11:27 ejs1 joined #perl6
11:41 riffraff joined #perl6
11:47 [particle] joined #perl6
12:05 shinobi-cl joined #perl6
12:22 hanekomu joined #perl6
12:29 gazz_ joined #perl6
12:30 pugs_svn r25111 | moritz++ | [t/spec] test that methods allow addtional named arguments
12:34 broquaint joined #perl6
12:42 masak I've found another blocker: #62898.
12:42 * masak tries to summon pmichaud
12:43 moritz_ congratulations :(
12:43 masak this means I'm blocked in two places in Druid.
12:43 masak but oh well.
12:44 moritz_ in the old days you'd just worked around it
12:44 masak moritz_: I'd complain less it that were possible.
12:44 masak I always try to work around things.
12:44 moritz_ masak: sure it is. name your class A_ iinstead of A
12:44 masak moritz_: oh! of course! thanks. :)
12:45 moritz_ http://digitizer.sourceforge.net/ that's some cool software
12:46 iblechbot joined #perl6
12:48 masak rakudo: role A::B {}; say 42 ~~ A
12:48 p6eval rakudo 36143: OUTPUT«invoke() not implemented in class 'NameSpace'␤current instr.: '_block14' pc 65 (EVAL_19:40)␤»
12:48 * masak submits rakudobug
12:49 masak note how I managed to avoid the rethorical question about test converage this time. :)
12:49 masak s/conv/cov/
12:49 masak rakudo: role A::B {}; A
12:49 p6eval rakudo 36143: OUTPUT«invoke() not implemented in class 'NameSpace'␤current instr.: '_block14' pc 59 (EVAL_19:38)␤»
12:52 broquaint joined #perl6
12:54 xinming joined #perl6
12:57 masak rakudo: class A::B {}; my A $a
12:57 p6eval rakudo 36143: OUTPUT«Scope not found for PAST::Var '$a' in ␤current instr.: 'parrot;PCT;HLLCompiler;panic' pc 146 (src/PCT/HLLCompiler.pir:102)␤»
13:06 masak rakudo: class A::B {}; role C { has A::B $!ab }; class D does C { method foo { say $!ab === A::B } }; D.new.foo
13:06 p6eval rakudo 36143: OUTPUT«0␤»
13:06 * masak submits rakudobug
13:08 Matt-W masak: that should have said true?
13:08 masak IMO, aye.
13:08 masak rakudo: class A {}; role C { has A $!a }; class D does C { method foo { say $!a === A } }; D.new.foo
13:08 p6eval rakudo 36143: OUTPUT«0␤»
13:08 masak oh, that case is simpler
13:09 masak rakudo: class A {}; my A $a; say $a === A
13:09 p6eval rakudo 36143: OUTPUT«1␤»
13:09 Matt-W attributes aren't initialising to the correct protoobjects then
13:09 moritz_ masak's last example is correct
13:09 masak Matt-W: they seem to be.
13:10 moritz_ undefined objects with type annotations should be initialized with the protoobject
13:10 masak moritz_: they seem to be.
13:10 masak they're just not ===-equal to each other
13:12 masak oh, even simpler:
13:12 masak rakudo: class A {}; class D { has A $!a; method foo { say $!a === A } }; D.new.foo
13:12 p6eval rakudo 36143: OUTPUT«0␤»
13:12 masak I should go back to minimizing first and spam the channel later.
13:13 masak moritz_: how do I work around this one? :)
13:14 moritz_ masak: with an init method that assigns the prototype to $!a
13:14 masak (the funny thing is that the place where I'm doing that already contains two workarounds)
13:15 masak moritz_: ah ha ha!
13:15 * masak tries
13:17 masak moritz_: no, that doesn't quite cut it. the check is part of a few lines of code that calls an init method (because I don't want to do it manually from the calling code). as far as I can see it's a Moment 22.
13:18 masak um, Catch 22.
13:19 masak guess I'll just have to call the init method manually, then.
13:23 |jedai| joined #perl6
13:41 jnthn masak: Type annotations on attributes stopped functioning during rvar merge IIRC...we were going to fix them up shortly after the merge, but it didn't happen yet. :-|
13:41 jnthn ETOOFEWHANDS
13:43 Matt-W TOOFEWJNTHNS
13:43 Matt-W hmm where did the E go
13:44 masak jnthn: ok, good to know the cause isn't thoughtlessness.
13:45 masak I'm using object/role hierarchies for the first time, so I'm bound to run into these things.
13:47 shinobi-cl joined #perl6
13:48 shinobi-cl left #perl6
13:50 shinobi-cl joined #perl6
13:50 shinobi-cl left #perl6
13:54 jnthn masak: Oh, for sure. There are quite a few roles tests by now, but of course there will be edge cases, and how it handles (or doesn't handle) things that are incorrect.
13:54 jnthn rakudo: class A is B { }
13:54 p6eval rakudo 36143: OUTPUT«The type B does not exist. at line 1, near "{ }"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
13:54 jnthn Whee. :-)
13:55 pmichaud good morning
13:55 jnthn I thought there was a ticket for that giving a bad error before, but I didn't find it...
13:55 jnthn pmichaud: Morning
13:55 jnthn How's things?
13:55 masak morning!
13:55 pmichaud pretty good.
13:55 moritz_ jnthn: there was, and it mostly happens in evals
13:56 jnthn moritz_: Ah, I closed an eval ticket.
13:56 pmichaud so far (still reviewing one or two emails) it looks like we'll move Rakudo to git.
13:56 jnthn moritz_: As in, testing that in evals.
13:56 Matt-W afternoon!
13:56 pmichaud so that's my task for the morning.
13:56 jnthn pmichaud: OK. :-)
13:56 pmichaud actually, my task for the day, since we'll also have to update all of the instructions.
13:56 jnthn pmichaud: I'm flying to Bulgaria tomorrow, and then giving a talk on Rakudo on Saturday.
13:56 moritz_ jnthn: unfudge the tests in t/spec/S02-literals/types.t, and try to run it - you'll see waht I mean
13:56 jnthn So updated instructions for then is good!
13:56 Matt-W pmichaud: it's going to need some careful checking isn't it
13:57 pmichaud oh, I don't know about careful checking.  We'll get bug reports quickly, I suspect.
13:57 pmichaud release early + often
13:58 Matt-W lol
13:58 pmichaud we may need to come up with daily tarballs somewhere, though.
13:58 Matt-W Between the occupants of #perl6 we'll probably figure out the problems pretty fast I'd guess
13:58 Matt-W where's it going to be hosted?
13:58 pmichaud if moving to git, I expect to host the repo on github for now.
13:59 pmichaud but we'll have a DNS entry that moves around so that people don't have to know where that is.
13:59 moritz_ I will, but likely only on Sunday and later
13:59 jnthn (DNS entry)++
13:59 moritz_ (testing, that is)
13:59 Matt-W makes sense
13:59 Matt-W and github should provide sufficient capabilities for now
13:59 pmichaud if it doesn't, I'm told that it's very easy to move git repos to other locations.
13:59 moritz_ it is indeed.
14:00 pmichaud of course, I'm also told that git also cures cancer and makes you look younger, so we'll see.  :-)
14:00 Matt-W disturbingly easy
14:01 masak git cures a lot of things.
14:01 Matt-W a few of us at work are trying to get the idea that git is better for our working model than subversion to propogate into the solid concrete which makes the decisions about software systems
14:03 pmichaud in other cool news, my new laptop arrived.  It's 33% faster than my desktop at building Parrot.  :-)
14:03 Matt-W when they start talking about every team having a branch, and a global trunk that we merge into and from regularly, and feature development branches from the team branches, you start to think DVCS...
14:03 pmichaud ...which makes me wonder about my desktop.
14:03 Matt-W heh
14:03 Matt-W don't get stuck in the upgrade loop
14:04 Matt-W it's not good for the bank balance
14:04 pmichaud well, since my previous laptop was over five years old, it was time for a new one.
14:04 Matt-W quite probably
14:04 Matt-W what did you get?
14:04 pmichaud HP EliteBook 2530p
14:04 masak pmichaud: does that mean that you'll be 33% more productive from now on? :P
14:05 pmichaud masak: it might mean that I'll be using my desktop as a terminal into the laptop instead of vice-versa :-P
14:05 jnthn pmichaud: I have the Slovak class now...back later on today
14:05 pmichaud jnthn: okay -- I'll probably be in progress on the migration by then
14:05 shinobi-cl joined #perl6
14:06 pmichaud (although I have an $otherjob meeting in 1:55)
14:07 Matt-W pmichaud: wow, that looks like a nice machine
14:25 pmichaud (nice machine) -- yes, so far I like it very very much.
14:26 pmichaud my only complaint at the moment is the placement of the PgDn and PgUp keys, which I tend to use very frequently.
14:27 pmichaud but I'll see if I can get used to using the scroll zone on the touchpad instead.
14:29 PerlJam good morning.
14:29 pmichaud good morning, pj
14:29 PerlJam pm: did you jsa's email?
14:29 PerlJam er, did you get it
14:30 pmichaud pj:  yes.  I'm booked for the early part of the day, will write up my (long delayed) report late tonight or early tomorrow.
14:30 PerlJam no worries.  I just noticed that he sent it to pmichaud@sci.tamucc.edu and wondered if that still worked.
14:30 PerlJam pm: so ... git or svn?  :-)
14:31 pmichaud PerlJam: looks like git, unless I run into major problems this morning.
14:31 PerlJam coolness
14:31 pmichaud the only thing that svn seems to have going for it is that we've used it for a long time.
14:32 PerlJam well, you can also do partial checkouts in svn and you can't do that at all in git.
14:32 PerlJam (yet)
14:32 pmichaud I don't know that we'll need partial checkouts for rakudo.
14:32 pmichaud I can see that it would be useful for Parrot, but not-so-much for Rakudo.
14:33 PerlJam Is rakudo going to bundle parrot or use an installed parrot or what?
14:33 pmichaud yes.  :-)
14:33 PerlJam heh
14:34 ejs2 joined #perl6
14:34 pmichaud we'll probably make Configure.pl smart enough to (1) see if rakudo is inside of languages/rakudo of a Parrot tree, (2) use an installed Parrot if detected, (3) obtain a known correct copy of Parrot from somewhere and build/use that.
14:34 pmichaud (4) let the builder decide.
14:34 kanru joined #perl6
14:38 Matt-W pmichaud: that'll be nice
14:38 Matt-W this is what you can do when your configure script is written in a proper language :)
14:40 PerlJam wait ... who said the configure script was going to be written in perl 6  ?   ;-)
14:40 Matt-W perl 5 counts as a proper language when it comes to configure scripts :)
14:43 pmichaud I was thinking of using Tcl.  :-P
14:44 Exodist joined #perl6
14:45 iblechbot joined #perl6
14:52 km2 joined #perl6
14:54 PerlJam Well, using tcl would certainly help out Coke.
14:54 PerlJam and it could start a resurgence of interest in tcl such that it becomes more mainstream again
14:55 PerlJam (It's good IRC is a a bandwidth limited medium; it was hard typing the above with a straight face :)
14:57 Matt-W I was just thinking, why would you want tcl to become more mainstream again?
14:57 Matt-W I have a certain nostalgic place in my heart for it... it was the first language I ever wrote a GUI programme on Linux in
15:01 rodi joined #perl6
15:01 ruoso joined #perl6
15:02 ruoso HelolO!
15:03 masak ruoso: TSa, is that you? :)
15:03 * ruoso still think he is himself, but one can never be sure
15:05 Matt-W hi ruoso
15:06 ruoso what's up around here...
15:06 ruoso I've been in some weird weeks
15:06 ruoso and I'm not being able to backlog
15:07 Matt-W pmichaud++ is helping rakudo leave the nest
15:07 Matt-W masak filed a pile of new bugs
15:08 Matt-W and I've been fighting with microsoft's c++ compiler
15:11 ruoso cool
15:13 [particle] matt-w: what's to fight?
15:16 abra joined #perl6
15:18 Matt-W [particle]: the stuff it can't do, mostly
15:18 Matt-W and its sometimes-bizarre error messages
15:18 Matt-W admittedly a lot of this mess is caused by existing code that's not microsoft's fault
15:21 stephenlb joined #perl6
15:24 PerlJam vienna.pm++
15:26 Matt-W hmm, FOSDEM...
15:32 mtnviewmark joined #perl6
15:35 pugs_svn r25112 | lwall++ | [end.t] remove extra paren
15:37 * jnthn is back
15:39 Matt-W jnthn is back!!!
15:39 Matt-W oh wow
15:39 Matt-W I just crashed visual c++
15:40 jnthn Matt-W: Calm down, I was only gone for an hour and a half. :-P
15:40 Matt-W jnthn: yeah but I'm at work...
15:41 masak jnthn: http://rt.perl.org/rt3/Tic​ket/Display.html?id=62908
15:42 jnthn masak: Do you have _any_ precompilation going on here?
15:43 jnthn masak: Also, note that the checks are done at compilation time.
15:43 jnthn So if you do:
15:43 jnthn 1) Compile module X
15:43 jnthn 2) Compile module Y against module X
15:43 jnthn 3) Modify module X
15:43 jnthn (such that module Y would not compile)
15:44 jnthn 4) Compile module Z against compiled module Y, which thinks that module X is fine
15:44 masak jnthn: I see. no I'm pretty sure I didn't modify anything.
15:44 jnthn Then I can imagine you'd not see a failure until runtime.
15:44 jnthn OK
15:44 jnthn I'll try and re-produce from what you filed, thanks.
15:44 masak but the worst thing isn't the failure, it's the faulty success.
15:44 masak that's easy to reproduce.
15:45 masak no precompilation required.
15:45 finanalyst joined #perl6
15:45 jnthn masak: OK, thanks, will look into it.
15:45 jnthn masak: Maybe I'm just being dumb, but why should this fail?
15:46 masak jnthn: maybe it shouldn't...
15:46 jnthn It looks correct to me - module A uses B, which in turn uses C. Thus we have the role C from using that module.
15:47 masak jnthn: hm...
15:47 jnthn And then class A does C - but there is a C (since we did use B, which in turn did use C).
15:47 masak aye.
15:47 masak that _is_ correct.
15:47 masak and those three modules precompile correctly, as well.
15:48 kanru joined #perl6
15:48 jnthn masak: OK. So that ticket is bogus?
15:49 masak jnthn: the main point of it is.
15:49 masak I could perhaps save it by tracking down that precompilation thing.
15:49 jnthn :-P
15:55 diakopter ruoso: hi
15:59 diakopter ruoso: did you look up that exported function in your smop lib?
16:06 vixey joined #Perl6
16:10 alester ping pmichaud
16:10 justatheory joined #perl6
16:14 pmichaud alester: pong
16:14 alester rakudo.org ain't gonna be ready by FP
16:14 alester No way no how.
16:14 pmichaud alester: okay.
16:14 alester Got too much book to do.
16:14 alester It'll be tops on my list when I get back, though.
16:14 alester Well, after the 9th.
16:14 alester Which is my drop dead on my book.
16:15 pmichaud I may take diakopter up on his offer for using perlsix.* then, at least temporarily.
16:15 alester I'll work on it immediately AFTER FP2009
16:15 * mtnviewmark wonders what FP is...
16:15 PerlJam What's needed to make rakudo.org ready?
16:15 alester and what I was going to ask is what we can ask people to help with at FP
16:15 PerlJam mtnviewmark: Frozen Perl
16:15 pmichaud FP == "Frozen Perl"
16:15 alester PJ: Getting Drupal on it
16:16 TimToady Frozen as in Oslo, I presume
16:16 alester As in Minneapolis
16:16 pmichaud Frozen as in Minneapolis
16:16 TimToady ah
16:16 PerlJam I was going to volunteer to help, but drupal is on my ick list along with cobol.
16:16 mtnviewmark hmmmm... is that some date by which we think perl6 will be nailed down?  or is it a Perl conference in Antiarctica?
16:16 alester PJ: Tragic.
16:17 pmichaud Feb 7-8
16:17 jnthn TimToady: Oslo likely won't be *that* cold. :-)
16:17 mtnviewmark So thanks to global warming, it should now be called: Chilly Perl?
16:17 pmichaud Minneapolis might be that cold, though :-)
16:17 TimToady Perl 6 will be nailed down by Christmas :)
16:17 alester PerlJam: I'm please to see that your priorities are in order.
16:17 alester s/please/$&d/
16:18 alester Frozen Perl is http://www.frozen-perl.org/mpw2009/
16:18 mtnviewmark I'll be sure to save a spot under my tree!
16:18 TimToady I'm thinking about simplifying the X...X metaoperator down to X...
16:18 TimToady and chaning the new - to R
16:19 TimToady *changing
16:19 pmichaud R +1
16:19 pmichaud the '-' doesn't "read" properly imo
16:19 mtnviewmark actually, I like the postfix tick idea:   <=>'
16:19 TimToady to hard to seee
16:19 pmichaud I liked the gel and >=<  idea :-P
16:19 PerlJam alester: Well, I could help, but I don't know how helpful I'd be given that I've avoided drupal for many months now.
16:19 pmichaud but insufficiently meta.
16:19 mtnviewmark I like circumfix X --- it seems very mnemonic of what it does
16:19 TimToady I actually though of gel some days ago and decided not to mention it  :)
16:19 alester http://flickr.com/photos/petdance/2392949742/ is me driving back from last year's FP
16:20 alester PerlJam: I wouldn't want you to have to work with software that you've avoided for many months now.
16:20 mtnviewmark see, that's what you get by inviting the likes of me in!  ;-P
16:20 jnthn TimToady: What's the usecase for R meta-op?
16:20 TimToady reverses the two arguments
16:21 mtnviewmark $a R<=> $b
16:21 TimToady generalizes the - metaop I added a day or two ago
16:21 jnthn TimToady: That's what it _does_.
16:21 jnthn I wanted more to know the design rationale.
16:21 pmichaud alester's picture looks like a slightly heavier version of what we were seeing here this morning :-)
16:21 mtnviewmark I think the problem is that typographically, the capital R doesn't combine well with graphic characters
16:21 TimToady you can talk about it without generating a new closure
16:22 TimToady mtnviewmark: eh? R isn't usually known to have kerning issues...
16:22 TimToady T or Y maybe
16:22 mtnviewmark it wasn't a kerning issue, just looks ugly to my eye -- the R doesn't combine well
16:22 PerlJam Isn't there some appropriate unicode charcter?  :)
16:22 mtnviewmark where as $a X+X does
16:22 TimToady symmetry is overrated
16:23 TimToady and the problem with two X's is that it implies things cross over twice, when they only cross once :)
16:23 alester pmichaud: so what I'm thinkin' is that we make some kind of list of areas we can use the help
16:23 alester and actually, that would be first thing we'd put up on rakudo.org
16:23 alester and heck, we could have physical sign-up sheets at FP
16:23 mtnviewmark The issue is that people scan letters and adjacent graphic chars as distinct units --- how many languages ... not to mention <.ws> handle things this way
16:23 pmichaud (phone)
16:23 mtnviewmark so the surrounded Xs tie the element into a single form
16:24 alester big easel pads and markers.  Low-tech, but get people to want to sign up
16:24 pmichaud alester: sounds good
16:24 masak rakudo: ([1,2,3] ~~ (("foo" / (42 ~~ [1,2,3])) ~ /foo/))
16:24 TimToady anybody writing real code will use X* with whitespace around it
16:24 p6eval rakudo 36145: OUTPUT«Non-dwimmy hyperoperator cannot be used on arrays of different sizes or dimensions.␤current instr.: 'die' pc 16844 (src/builtins/control.pir:204)␤»
16:24 [particle] will R desugar to .reverse ?
16:24 [particle] <=>.reverse
16:24 mtnviewmark The surrounded Xs also parallels the surrounded angle quotes of hyper
16:25 TimToady you can't call a method on an operator :P
16:25 [particle] surely operators are objects, too
16:25 alester TimToady: Can you confirm for me that Perl 6's does not / will not include any of the toolchain?
16:25 alester Perl 6's spec
16:25 masak TimToady: can you call methods on infix:<< <=> >> ?
16:25 mtnviewmark infix:< <=> >.reverse ?
16:25 TimToady that's still wrong
16:25 masak ok.
16:25 jnthn infix:<=>.signature I expect may work
16:26 TimToady &infix:...
16:26 jnthn Ah, yes.
16:26 jnthn Of course.
16:26 Tene_ joined #perl6
16:27 TimToady alester: we reserve the right to spec anything that needs speccing across implementations, but otherwise, no
16:27 mtnviewmark well - at the least, postfix meta R... maybe even (gasp) r?
16:27 mtnviewmark $a <=>r $b  or $a <=>R $b
16:27 alester TimToady: One of the things I'm going to be talking about at P6 is that we're in a state of great possibilities.
16:27 TimToady lowercase is out
16:27 mtnviewmark (see I have to look at it to even feel it!)
16:27 TimToady too much chance for ambiguity with alphabetic operators
16:27 alester and that includes possibly rethinking toolchain, CPAN, everythgin.
16:28 PerlJam TimToady: perhaps there's some opportunity for generalization here we're missing: Xop, Rop,  <wordchar>op  ?
16:28 [particle] please rethink everythgin!
16:28 TimToady there are a lot of people who have thought a lot of things about CPAN
16:28 mtnviewmark wait wait wait.... how can it be R?    why would  $a legR $b  be parsed as a meta construction and not a single word 'legR'?
16:28 gbacon joined #perl6
16:29 alester [particle]: Not sure if that's serious or faceitious.
16:29 TimToady I think a cultural pattern of <upper>op keeps metaops psychologically separate and extensible wrt ordinary ops
16:29 TimToady could have a Z* for instance
16:29 [particle] alester: it's both. the misspelling should be rethunked, and it is time to rethink everything, indeed
16:30 mtnviewmark ya know, you're going end up making the case for the old, pre-ansi C style of assignment op:
16:30 [particle] ...and it's easier to reserve uppercase letters for prefix metaoperators
16:30 mtnviewmark $a =* $b
16:30 mtnviewmark :-)
16:31 TimToady undoubtedly :)
16:31 mtnviewmark !op =op Xop
16:31 masak ook!
16:32 mtnviewmark the thing is [op], >>op, op<<, >>op<< and friends break that pattern
16:32 mtnviewmark or and Rop above
16:32 PerlJam mtnviewmark: but those are the good side of things as I see it :)
16:32 mtnviewmark the hyper ones are nice as they are very easy to remember, understand and reconstruct
16:32 mtnviewmark the meta location indicates the type of operator and form of the expression
16:32 mtnviewmark the others, not so much
16:33 TimToady I think it's okay if different common metaops look different from each other
16:33 alester [particle]: I think that people are expecting that on "Day One" of Perl 6 (like there will be a magic release day) that CPAN will Just Work.
16:33 [particle] yes, like it did the day perl 1 was released.
16:33 TimToady visual distinction is more important than consistency
16:33 [particle] erm.
16:33 mtnviewmark sure, op= and !op have much cultural baggage -- the later predating even CompSci
16:34 eternaleye joined #perl6
16:34 PerlJam TimToady: $a <=> $b :reverse    # see? visually distinct!  :)
16:34 mtnviewmark no, you need the reverse when you want to pass a function w/o the arguments
16:34 [particle] wait! will pod formatting codes get in the way?
16:34 [particle] $a R<=> $b
16:35 TimToady sort &infix:<Rleg>, @stuff
16:35 mtnviewmark is still gunning for $a <=>' $b   and sort &infix:<leg'>
16:36 sri_kraih joined #perl6
16:36 PerlJam mtnviewmark: FWIW, I like the tick suffix too.
16:36 TimToady tick will not be acceptible to me
16:36 mtnviewmark thinks of:    /foo/ R^fff^ /bar/
16:36 TimToady or even acceptable
16:36 mtnviewmark or /dog/ Rfff /bark/
16:36 mtnviewmark :-)
16:37 |jedai| joined #perl6
16:37 xinming_ joined #perl6
16:37 ruoso diakopter, in libsmop.so I have only the names with no "_" prefix...
16:37 mtnviewmark off to work..... laters
16:37 TimToady ciao
16:38 TimToady $teen Req $car
16:38 PerlJam $a <>= $b  # looks like a swap
16:38 PerlJam $a <>eq $b
16:39 [particle] $a O_o $b
16:39 * ruoso have some trouble understanding why people just can't write the variables in a different order?
16:39 * masak doesn't like the R
16:39 TimToady sort &infix:<Rleg>, @stuff
16:40 TimToady good, if you don't like the R, you'll notice it
16:40 TimToady the whole point is to notice it
16:40 [particle] it's middle name is dangeR
16:40 TimToady that's why tick will be unacceptable
16:40 PerlJam TimToady: How would I apply the R to my custom comparator?
16:40 PerlJam (in the sort example)
16:41 TimToady &infix:<Rcust>
16:41 PerlJam so, sort &cust, @stuff  and sort &infix:<Rcust>, @stuff?
16:42 PerlJam that seems ... strange.
16:42 ruoso or maybe Rsort
16:43 TimToady one is tempted to define a sigil for operators
16:43 [particle] how about ' ;)
16:43 PerlJam heh
16:44 PerlJam TimToady: how about R'op (and Z'op and X'op and ... )  ?
16:44 TimToady Looks like Klingon
16:44 masak ...and vim will go wild...
16:44 PerlJam TimToady: I keep wanting some other thing in there but I don't know what.  A separator or some form of punctuation.
16:44 TimToady I think case difference can be sufficient
16:44 PerlJam and you can't tell me that isn't visually distinctive
16:45 TimToady no, it's just unnecessary
16:45 PerlJam masak: so what, everyone will be using padre anyway  :)
16:45 masak PerlJam: didn't think of that. :)
16:46 PerlJam TimToady: so it'll just have to be an acquired taste I guess.
16:46 TimToady most of the compositions will be with non-alpha operators in any case
16:46 TimToady @a X* @b
16:46 lambdabot Maybe you meant: activity activity-full admin all-dicts arr ask . ? @ v
16:47 TimToady maybe someone should shoot lambdabot
16:47 PerlJam indeed
16:47 jnthn He's not as bad as purl ;-)
16:47 TimToady Hello jnthn, you fantastic person you!
16:48 PerlJam TimToady: Do you mean that composition with alpha ops will rarely make sense, or that because there are fewer alpha ops, there will be fewer compositions with them?
16:48 PerlJam I would guess the latter
16:48 TimToady the latter
16:49 PerlJam but perl 6 has more alpha ops than perl 5 and I expect they'll be more commonly used.
16:49 TimToady in which case Rleg will just have to do :)
16:49 TimToady and the Lleg people will just have to lump it
16:50 PerlJam at least we don't still have EQ, LT, GT, etc.  :)
16:50 PerlJam or the fortran versions.
16:51 TimToady maybe an operator twigil
16:52 PerlJam how can they have twigils if they don't have sigils?
16:52 TimToady all operators have a & sigil form
16:52 PerlJam oh, right.
16:52 ruoso TimToady, can we have the Rop thing depedent on a pragma?
16:53 ruoso and make it more syntatical
16:53 TimToady could steal &<Rop> from matches
16:53 TimToady doesn't work so good for &<R<=>> though
16:54 ruoso I mean... do we really need to have all the crazy ideas into the STD language?
16:54 schmalbe joined #perl6
16:54 PerlJam ruoso: you think this is just gilding the lily?
16:54 TimToady reversing the args of an infix is not a particularly crazy idea
16:55 TimToady and is particularly useful for sorting
16:55 ruoso pardon for my ignorance, but how is that different from "reverse sort"
16:55 TimToady and if I don't add it as R, someone else will add it as tick, and then where will we be?  :)
16:56 TimToady it lets you reverse subsort criteria
16:56 PerlJam TimToady: we'd be in "all's fair if you predeclare" land I  think.
16:59 [particle] TimToady: could &R(<=>) work?
16:59 ruoso TimToady, you mean sort by this, then this, then this?
16:59 ruoso where the last is reversed?
16:59 [particle] i'm not sure it's best as a twigil, perhaps &(R<=>)
17:00 TimToady &[R<=>] maybe
17:00 TimToady since we're getting used to seeing infix ops in [...] for reduce
17:00 TimToady though it's not a reduce
17:01 * ruoso .oO( ok, reverse assignment *is* a crazy idea )
17:01 TimToady and there aren't many operators that use []
17:01 TimToady but not so far off from what ==> is specced to do
17:01 [particle] $a &[R=] $b
17:01 TimToady no, just $a R= $b
17:01 TimToady &[] is how you talk about it
17:01 PerlJam that's interesting because reductions are what makes me not like the R  [op] looks good and feels right,  Rop doesn't look right at all.
17:02 TimToady as a noun
17:02 TimToady not how you use it
17:02 [particle] ah, right-o
17:02 [particle] i'm distracted, on the phone
17:02 ruoso so, the idea is
17:02 ruoso map { ...}, grep {...}, sort {...}, @1,2,3 R= $b
17:02 TimToady reductions will be more common than reversed ops
17:02 [particle] does reduction then get a character?
17:03 [particle] er, prefix character
17:03 [particle] i hope not.
17:03 TimToady no
17:03 ruoso er..
17:03 PerlJam I'd take that the other way ... why are reversals huffmanized more than reductions?
17:03 ruoso map { ...}, grep {...}, sort {...}, 1,2,3 R= $b
17:03 TimToady see my remark above: I have no desire to make all metaops look consistent with each other
17:03 ruoso (I don't know where that @ came from)
17:04 TimToady esp the common ones
17:04 TimToady ruoso: R= cannot parse in reverse
17:04 ruoso I'm trying to find a use case for it
17:04 PerlJam heh,  $a R~~ $b
17:05 TimToady and in particular R would not change the precedence of any operator, I think
17:05 TimToady and we might just outlaw R= to be ornery :)
17:06 PerlJam beware the hobgoblin of foolish consistency  (though you apparently don't need to worry about that :)
17:07 TimToady yes, R~~ is particularly interesting when you want $a R~~ $b == $c
17:07 ruoso I'm not able to tell what that means
17:07 [particle] R|| is ornery
17:07 TimToady it's a chained operator
17:08 PerlJam [particle]: which way do you expect the short circuiting to work?
17:08 PerlJam actually, R|| seems like it would be a useful thing.
17:09 TimToady usually that's spelled "unless"
17:09 [particle] $a && $b R|| $c
17:09 [particle] maybe unless should now be Rif
17:09 TimToady seems a bit less than spectularly readable
17:09 TimToady *spectacularly
17:09 [particle] :)
17:10 ruoso I just hope we have a paper huge enough to print a precedence cheat sheet
17:10 TimToady R doesn't change precedence
17:10 mtnviewmark joined #perl6
17:10 TimToady just as ! doesn't
17:11 [particle] the op cheat sheet will be on hyperpaper
17:11 ruoso TimToady, but meta-ops make the ops more likely to be used in places where more code would be written
17:11 TimToady huh?
17:11 ruoso It's an incredibly power tool
17:11 * mtnviewmark returns... from work
17:12 ruoso which is kinda cool
17:12 mtnviewmark Indeed, but I'm having a hard time finding a reliable supplier of hyperpaper
17:12 ruoso but sacrifices the readability to a point I'm not sure it's worth
17:13 mtnviewmark I think all the meta operators to date, with the possible exception of [op] are pretty easy on the readability
17:13 ruoso I mean, we'll have the coolest obfuscations ever
17:13 TimToady some things can be enforced by cultural pressure, but we can refrain from generating reversed operators for troublesome/duplicate ideas
17:13 TimToady I think R|| would be disallowed along with any other "thunky" operators
17:14 ruoso I'd argue that some meta-ops could require a "use"
17:14 ruoso like R
17:14 mtnviewmark but even [op] is not too hard to mesh into one's head (perhaps I've been staring atll 150+ of them for too long...)
17:14 schmalbe joined #perl6
17:14 TimToady people find the [op] pill to be quite readable, I think
17:15 ruoso [op] is readable because it is usually in the beggining of the sentence
17:15 TimToady and it needs the pill because it's where a term is expected
17:15 ruoso s/usually/always/
17:15 TimToady so it needs the extra pillness to force "I am an operator" in your head
17:15 [particle] i like [op]
17:16 PerlJam I think everybody likes [op]
17:16 mtnviewmark I like it too, actually -- but then again, I like XopX -- so perhaps I'm just easily conditioned!
17:16 TimToady interestingly, if we grab &[op] syntax for infixes, then [op] 1,2,3 becomes reduce &[op], 1,2,3
17:16 ruoso one could argue that XopX could also require a pragma
17:16 TimToady ruoso: no, this isn't in the same category of dangerous as monkey typing
17:17 ruoso so it can have a shorter-name pragma
17:17 ruoso ;)
17:17 TimToady I propose the null name pragma, in which case you can omit the "use" as well.
17:17 PerlJam heh
17:18 TimToady actually, I think the appropriate pragma is "use v6;"  :P
17:19 ruoso "use meta <X R>;"
17:19 ruoso ;)
17:20 jnthn Why would we want to make you write a pragma for them?
17:21 ruoso to give a notice to the code reader about something that is unusual
17:21 PerlJam ruoso: are you going to include Z too?
17:22 mtnviewmark what would Zop do?  is that map op to each sequential pair from two lists?
17:22 mtnviewmark isn't there already a short way to do that?
17:23 PerlJam twiddle the dial on conceptual chunking a little bit and you get something bad.  I think TimToady has it right with the null pragma.
17:23 aindilis joined #perl6
17:23 jnthn ruoso: I don't consdier meta-ops unusual.
17:23 mtnviewmark remembers when Z was spelled ¥ ... and liked it
17:23 * mtnviewmark wonders what the convention of using Unicode on this IRC channel is...
17:24 TimToady it's expected
17:26 TimToady cool, &[op] is currently illegal syntax
17:26 [particle] #perl6 assumes unicode semantics, whatever that means
17:26 TimToady mostly, assumes utf-8 is okay
17:26 mtnviewmark (well, to be pedantic, it would have to assume UTF-8)
17:26 mtnviewmark heh - what *he* daid
17:26 |jedai| joined #perl6
17:26 [particle] yes, i was riffing on a line from a synopsis about perl 6
17:26 mtnviewmark s/d/s/
17:27 TimToady hmm, reversing iff with Riff is a no-op
17:27 ruoso jnthn, I mean for code maintainance... taking a code from someone else... X, R and Z are things you're not going to see in other languages (is there one that does it?)
17:28 jnthn You're probably not going to see chained comparrisons, junctions, blah in other languages either, but that doesn't mean we should make *those* pragmas too.
17:28 TimToady and as soon as you mouseover the operator, it tells you what it is
17:35 mtnviewmark python has chained comparisons
17:35 TimToady yes, well, so does math :)
17:35 ruoso I just hope people take the reducing in characters provided by meta-ops and write comments with them
17:36 TimToady people should use them where they increase clarity, and avoid them the rest of the time. :)
17:36 PerlJam # Wow, these new meta ops are great!
17:37 PerlJam ruoso: I don't think we should "dumb-down" perl 6 any because the conceptual and syntactical overlap with other languages may have shrunk.
17:37 ruoso TimToady, people will use it where it reduces the number of characters ;)
17:38 TimToady well, that's one thing you can optimizer for, and our culture already simultaneously encourages and discourages it.  :)
17:38 TimToady *optimize
17:38 ruoso PerlJam, my point is that Perl 6 brings a lot of unexpected features (from the POV of someone taking care of someone else's code)...
17:40 PerlJam ruoso: sure ... isn't that the point of perl 6?  I mean, if it didn't have anything unexpected, it would be dull and boring like at least one other p language  :)
17:40 ruoso agreed, but it would be interesting if we provided a hint saying "something unexpected is going to appear in this code"
17:41 ruoso and not that all code was unexpected
17:41 TimToady I think we'll have a general rule that any infix can be enclosed in [] if it needs to be disambiguated.  @a X[+=] @b
17:41 hanekomu joined #perl6
17:42 PerlJam TimToady++ that sits well on my brain  :)
17:42 TimToady vs @a [X+]= @b
17:42 [particle] hrmm
17:42 TimToady problem?
17:43 TimToady fits with &[X*] and such too
17:43 [particle] can't find any, no.
17:43 TimToady then reduce is just one of those used as a listop
17:43 [particle] yep
17:43 TimToady of course, one cannot say @a[X*]@b
17:44 [particle] any infix may be enclosed in whitespace when it needs to be disambiguated
17:44 TimToady but this means we can pass a sort criterion as &[Rcmp]
17:44 [particle] s/when/if/ :)
17:45 PerlJam [particle]: that doesn't work too well with  $a R <=>  $b
17:45 PerlJam :-)
17:45 TimToady can't have ws in a metaop
17:45 [particle] so it works just fine :)
17:45 PerlJam right
17:45 TimToady R<=> and R[<=>] would both be acceptable
17:46 TimToady but I need to think about what this means in terms of LTM
17:46 [particle] the other implementors will thank you if you do
17:46 TimToady it might actually solve the problem, if we require [] on any compound metaops
17:47 TimToady and say that [] is parsed as LTM inside, but not outside
17:47 TimToady but needs more thinking
17:47 * ruoso wonders if it would be too bad if the meta-ops always had the enclosing []
17:48 TimToady doesn't mix visually very well with subscripts
17:48 TimToady much like we avoid putting sigils on the fronts of infix
17:48 Matt-W $a[0] R[<=>] $b[1]
17:48 Matt-W very []-heavy
17:49 TimToady $a[0] R<=> $b[1] is much better
17:49 PerlJam but not too bad
17:49 Matt-W TimToady: it'd be nice if the [] could be non-compulsory
17:49 TimToady I'm not much into compulsion...well, not that kind, anyway
17:50 [particle] [R-] @a
17:50 TimToady indeed
17:50 TimToady may well solve the foldr/foldl problem too
17:50 [particle] heh, [R,] @a === @a.reverse
17:51 TimToady APL, here we come...
17:51 ruoso I still have some trouble to understand what's wrong with [-] reverse @a
17:52 [particle] there's nothing wrong with it, there's more than one way to do it
17:52 TimToady that works too
17:52 [particle] perl6 !=== python3000
17:53 ruoso it's just that it took me some time to figure out what [R-] @a would mean
17:53 |jedai| joined #perl6
17:53 TimToady and now you know, so everything's fine :)
17:53 rhr so is [+]<< a hyper reduce or +<< with [] ?
17:54 hercynium joined #perl6
17:54 TimToady depends on whether a term or infix is expected
17:54 rhr ok, right
17:54 TimToady and if infix, it's illegal anyway
17:54 TimToady since infix requires hyper on both sides
17:55 rhr but +<< is legal as a prefix
17:55 TimToady certainly, and can mean only one thing
17:56 rhr I don't understand
17:56 ruoso anyway... at least playing golf in Perl 6 will be much funnier than in Perl 5 ;0
17:56 TimToady the [] rule only applies to infix operators, and that + is a prefix
17:56 ruoso ;)
17:56 rhr oh, ok
17:56 ejs joined #perl6
17:56 TimToady esp if people define an ope operator, and start writing Rope, Zope, ...
17:58 Matt-W custom operators are always good for golfing
17:58 Matt-W ever seen Haskell code that uses applicative functors?
17:58 TimToady and XX would do a spectacular amount of work
18:00 ruoso sub infix:<X>; XXX
18:00 TimToady as in @AoA XX @AoA would match every sub element with every other subelement
18:01 TimToady we already have infix:<X>
18:01 ruoso so, XXX is already valid Perl 6?
18:02 ruoso std: $a XXX $b
18:02 p6eval std 25112: OUTPUT«00:04 62m␤»
18:02 TimToady :)
18:02 TimToady I think that's a good argument for just one X as the metaop
18:02 diakopter std: $a NC-17 $b
18:03 p6eval std 25112: OUTPUT«############# PARSE FAILED #############␤Syntax error (two terms in a row?) at /tmp/JZm83xnGOs line 1:␤------> [32m$a [31mNC-17 $b[0m␤    expecting any of:␤      infix or meta-infix␤      infix stopper␤    standard stopper␤ statement modifier loop␤  terminator␤00:04 62m␤»
18:05 ruoso in "$a += $b" who is the meta-op, + or =
18:06 ruoso ?
18:06 TimToady the =
18:06 ruoso so maybe all meta-ops could be postfixed
18:06 TimToady A FOOLISH CONSISTENCY
18:06 TimToady ahem
18:07 * ruoso hides
18:07 ruoso but...
18:07 TimToady Umberto Eco whacks you upside the head using a copy of The Search for the Perfect Language  --more--
18:08 ruoso "$a eqR $b" looks better than  "$a Req $b"
18:08 * TimToady boggle
18:08 TimToady s
18:09 TimToady prefix metas are actually much easier to parse than postfix, and doubtless that will be true psychologically as well
18:11 TimToady let me put it this way, I can probably make STD run much faster with prefix than postfix, if I can cut down the LTM search space
18:11 TimToady and you would like this
18:13 * ruoso stops complaining...
18:14 TimToady I don't mind people pointing out all the options, as long as people don't mind me shooting down N-1 of them  :)
18:14 mberends joined #perl6
18:16 TimToady but basically, the upshot is that I'm going to stop trying to parse composed metaops as single tokens, and I think this will help in several ways
18:17 |jedai| joined #perl6
18:17 TimToady instead, metaops will be composed by the parser, but with the same contraint that there can be no intervening whitespace
18:18 TimToady and LTM still distinguishes X* from X**
18:18 TimToady but when matching the *, not when matching the X
18:19 TimToady shower & # thinking
18:21 mtnviewmark Isn't the psychological parse order argument dependent on if you are a native speaker of English vs. French (say)?
18:21 mtnviewmark is in "green hat" vs. "chapaux vert"
18:22 mtnviewmark simiilarly eqR vs Req
18:22 mtnviewmark (er, reverse those two!)
18:22 [particle] [R,] <eqR Req>
18:23 mtnviewmark (wonders why not have a VERY generic compare, spelled  vs  ....)
18:27 ottott joined #perl6
18:31 ottott joined #perl6
18:34 Psyche^ joined #perl6
18:35 ejs joined #perl6
18:43 pbuetow joined #perl6
18:45 smtms joined #perl6
18:53 |jedai| joined #perl6
19:26 finanalyst joined #perl6
19:31 |jedai| joined #perl6
19:39 DemoFreak joined #perl6
19:40 hanekomu_ joined #perl6
19:42 Infinoid joined #perl6
20:01 ejs joined #perl6
20:12 _jedai_ joined #perl6
20:18 mberends joined #perl6
20:32 pugs_svn r25113 | lwall++ | [STD, S03] slaughter of the LTM metatokens
20:32 pugs_svn r25113 | lwall++ | STD now runs considerably faster
20:32 pugs_svn r25113 | lwall++ | Freed from LTM, metaoperators may now be nested arbitrarily deep
20:32 pugs_svn r25113 | lwall++ | new &[op] notation for infix functions
20:33 PerlJam TimToady++
20:45 meppl joined #perl6
20:50 |jedai| joined #perl6
21:15 |jedai| joined #perl6
21:20 |jedai| joined #perl6
21:42 gfldex joined #perl6
21:44 meppl good night
21:48 eric256 joined #perl6
21:57 |jedai| joined #perl6
22:08 mtnviewmark woot: Long live >>[X<<R<=>>>X]<<
22:09 mtnviewmark how quickly, from the time there is a checkin, does the std 'bot here start using it?
22:09 Whiteknight joined #perl6
22:10 [particle] std: 1 >>[X<<R<=>>>X]<< 2
22:10 p6eval std 25113: OUTPUT«Not a HASH reference at STD.pm line 12326.␤00:02 33m␤»
22:11 [particle] std: 1 >>[X<<R<=>>>]<< 2
22:11 p6eval std 25113: OUTPUT«Not a HASH reference at STD.pm line 12326.␤00:02 33m␤»
22:11 mtnviewmark so, the answer is -- immediately, and the last checkin broke it?
22:11 mtnviewmark std: $a + $b
22:11 p6eval std 25113: OUTPUT«00:02 33m␤»
22:11 [particle] it's not immediate, but it's within an hour
22:11 mtnviewmark std $a «[+]» $b
22:12 [particle] i wonder if the lexers are automatically regenerated for std...
22:12 * [particle] hands mtnviewmark a colon
22:13 [particle] std: $a «[+]» $b
22:13 p6eval std 25113: OUTPUT«00:02 33m␤»
22:13 mtnviewmark hey - see, once again, Larry got the colon
22:13 mtnviewmark std: $a X«[+]»X $b
22:14 p6eval std 25113: OUTPUT«Not a HASH reference at STD.pm line 12326.␤00:02 33m␤»
22:14 mtnviewmark std: $a X«[+]» $b
22:14 p6eval std 25113: OUTPUT«Not a HASH reference at STD.pm line 12326.␤00:02 33m␤»
22:14 mtnviewmark std: $a X+ $b
22:14 p6eval std 25113: OUTPUT«Not a HASH reference at STD.pm line 12326.␤00:02 33m␤»
22:14 mtnviewmark std: $a X+X $b
22:14 p6eval std 25113: OUTPUT«Not a HASH reference at STD.pm line 12326.␤00:02 33m␤»
22:14 mtnviewmark okay, so X metaop is bork'd
22:18 [particle] std: [R,] 1,2
22:18 p6eval std 25113: OUTPUT«can't create lex/STD/prefix_circumfix_meta_o​perator__S_081reduce_03.store: Permission denied at Cursor.pm line 534␤00:02 33m␤»
22:20 mtnviewmark So, looking at the commit -- it's now Xop and Rop, but still [op] except where that is used to disambiguate like X[+=]
22:21 mtnviewmark vs. [X+]=
22:21 eric256 left #perl6
22:24 [particle] yes
22:26 mtnviewmark wonders what to do if what I want is the assignment form of the reduce form of, say R-....
22:26 mtnviewmark is that   [R-]= or is it [[R-]]=
22:27 [particle] [R[-]]= ?
22:27 rhr reduce isn't infix, so you can't make an assign op from it
22:28 mtnviewmark well - there ya go....
22:28 * mtnviewmark wonders if all the cases of possible ambiguity involve infix operators
22:29 * mtnviewmark wonders if there needs to be meta-associativiy and meta-precedence....
22:29 [particle] std: ![R===] 1,2
22:29 p6eval std 25113: OUTPUT«############# PARSE FAILED #############␤Unable to parse array composer; couldn't find final ']' at /tmp/ipw7faRZbq line 1:␤------> [32m![R===[31m] 1,2[0m␤    expecting any of:␤ prefix or noun␤   whitespace␤00:02 34m␤»
22:29 [particle] or is that...
22:29 [particle] std: [R!===] 1,2
22:29 p6eval std 25113: OUTPUT«############# PARSE FAILED #############␤Only comparison infix operators may be negated at /tmp/90ML7LqLmW line 1:␤------> [32m[R!===[31m] 1,2[0m␤00:02 33m␤»
22:30 [particle] i've got to re-read, maybe while at the destist &
22:30 [particle] *dentist &
22:31 |jedai| joined #perl6
22:38 dalek joined #perl6
23:22 aindilis` joined #perl6
23:31 |jedai| joined #perl6
23:33 Limbic_Region joined #perl6
23:45 dalek joined #perl6
23:46 kid51 joined #perl6
23:50 FurnaceBoy joined #perl6
23:56 pugs_svn r25114 | lwall++ | [STD] fix [R!===] 1,2

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

Perl 6 | Reference Documentation | Rakudo | Niecza | Specs