Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2011-09-21

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:00 Woodi everything can happen :)
00:00 TimToady just as some folks stuck with Perl 4...
00:00 Woodi do not met personally...
00:01 TimToady anyway, private methods are really just sugar for subroutine calls, so you can always just write them that way
00:01 TimToady presuming you actually declare them as subs
00:01 mattp_ joined #perl6
00:01 Woodi but there is many experiments in perl6 with operators but what with threads/concurency ?
00:02 TimToady there have been some experiments, but mostly we're just trying to design it cleanly enough that there will be few unexpected interactions
00:03 Woodi but develpment is up the way and changing something can be hard...
00:03 TimToady nearly everything is now lexically scope, so it's obvious whether it belongs inside or outside a thread, for instance
00:03 Woodi k
00:03 TimToady and we de-emphtasized local semantics, which force shared state to be too global
00:03 TimToady in favor of dynamic vars, which work more like Unix env vars
00:04 TimToady since they're declared lexically, it's obvious again whether a given dynvar belongs to the thread or is shared
00:04 TimToady local is a huge problem for threading in p5
00:04 Woodi but i read STM probably will be used ?
00:05 Woodi threads will be nice too
00:05 TimToady pugs played with it, and it seems to work as far as we took it
00:05 TimToady but a lot of people think STM is still in the toy stage
00:05 TimToady it requires some VM support to do efficiently
00:06 TimToady and it really needs to tie into some larger transaction model beyond memory access
00:06 TimToady we're also trying to make it possible to write in an Erlangish message passing style, which is a different approach to concurrency
00:06 Woodi thread alone will be fine for few years :)
00:07 TimToady niecza: async { say "hi" }; async { say "lo" }
00:07 p6eval niecza v9-32-g380d891: OUTPUT«[31m===[0mSORRY![31m===[0m��Action method statement_prefix:async not yet implemented at /tmp/0PJPidDCEp line 1:�------> [32masync { say "hi" }[33m�[31m; async { say "lo" }[0m��Action method statement_prefix:async not yet implemented at /tmp/0PJPidDC…
00:07 Woodi it is Actor model ?
00:07 TimToady hmm, I thought niecza had async
00:08 Woodi actor model is more theoretical then STM...
00:08 Woodi but nice to read on Wiki :)
00:10 Woodi k, late for me. gn TimToady++
00:10 diakopter o/
00:12 TimToady night
00:13 benabik Actor model, a la Erlang isn't very theoretical.
00:15 Woodi just was my impression - i think more STM implementations
00:15 replore_ joined #perl6
00:16 TimToady btw, the answer is more or less "yes"; my "one owner" and "capabilities" discussions are essentially an Actor model
00:16 TimToady but I'm trying to reinvent it all myself without reference to prior art :)
00:20 Woodi and what if perl6 will have some feature for distributed computing built in ? :) to be first choice when someone want to choose ? :)
00:20 Woodi cannot find some article about something...
00:21 tty234 joined #perl6
00:28 TimToady hypers and feeds are existing parallel constructs in p6
00:28 TimToady plus gather/take is essentially co-routines, if not threads
00:29 TimToady multi-sig matching will be useful for receiving events and dispatching them
00:33 pmichaud joined #perl6
00:33 hugme joined #perl6
00:33 jrockway_ joined #perl6
00:35 eternaleye joined #perl6
00:37 Woodi found... Commitment ordering (CO) (patented) ? but i mean something distributed and little futuristic in CORE :)
00:39 Woodi Perl6 is... like google-translated technical manual for greys (aliens) :) compared to C :)
00:40 Woodi that <()> ** ^ must be about maintaing ufo :)
00:41 PZt joined #perl6
00:41 Woodi late, gn &
01:11 woosley joined #perl6
01:20 woosley good morning perl6
01:20 packetknife joined #perl6
01:26 Gruber_ joined #perl6
01:26 george_z0rwell joined #perl6
01:26 mattp_ joined #perl6
01:26 sftp joined #perl6
02:00 tokuhiro_ joined #perl6
02:06 wolfman2000 joined #perl6
02:14 dalek roast: 91a5e7a | Coke++ | S32-list/ (2 files):
02:14 dalek roast: rakudo nom fudging.
02:14 dalek roast: review: https://github.com/perl6/roast/commit/91a5e7aa93
02:15 dalek rakudo/nom: f1c805a | Coke++ | t/spectest.data:
02:15 dalek rakudo/nom: run fudged tests.
02:15 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f1c805aa50
02:17 colomon joined #perl6
02:21 envi_laptop joined #perl6
02:34 uasi_ joined #perl6
02:48 tokuhir__ joined #perl6
02:53 tokuhiro_ joined #perl6
03:07 envi_laptop joined #perl6
03:17 [Coke] so, why did you change the style from Release to release?
03:18 [Coke] ww
03:19 japhb Anyone happen to know what the modern (nom) version of the old alpha-era 'use Foo::Bar:from<parrot>;' is?
03:20 benabik japhb: Horribly broken, I think...
03:21 japhb D'oh!
03:21 benabik Non 6model objects don't play well in nom-land, I think...
03:21 japhb And here I was hoping for a two-fer and getting the Perl 6 OpenGL examples working as well as the PIR ones.
03:21 benabik Probably can write a wrapper...
03:34 japhb benabik, where would I look to see how to do that?
03:34 benabik japhb: I dunno.
03:34 japhb hmmm, maybe jnthn will know
03:35 japhb phenny, ask jnthn Is there a replacement in nom for the old alpha-era 'use Foo::Bar:from<parrot>;' syntax?  If not, where should I start looking to figure out how to bring that functionality back?
03:35 phenny japhb: I'll pass that on when jnthn is around.
03:41 japhb An idea for the compiler features table: a section for 'Interoperability', with (at least) entries for system-level native libraries, VM-level foreign libraries, other languages on same VM, and Perl 5.
03:45 jdv79_ left #perl6
03:47 japhb How difficult would it be to change nom's +- rating for Misc:MAIN (because there is 'no help yet', which I assume means no usage info generated) to a full '+'.  Is that a LHF task for an outsider or something that requires a core developer?
05:03 _ilbot joined #perl6
05:03 Topic for #perl6 is now »ö« Welcome to Perl 6! | http://perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: http://irc.perl6.org/ | UTF-8 is our friend!
05:21 woosley joined #perl6
05:26 woosley perl6: say 1,3,5 ... 8
05:26 benabik Are we still netsplit?
05:27 p6eval rakudo f1c805, niecza v9-32-g380d891: OUTPUT«(timeout)»
05:27 p6eval ..pugs: OUTPUT«*** ␤    Unexpected "8"␤    expecting operator, ":" or ","␤    at /tmp/Qy_CdOcKCm line 1, column 15␤»
05:27 benabik Ah, there it is.
05:28 woosley perl6: say 1,3,5 ... 17
05:28 p6eval rakudo f1c805, niecza v9-32-g380d891: OUTPUT«1 3 5 7 9 11 13 15 17␤»
05:28 p6eval ..pugs: OUTPUT«*** ␤    Unexpected "17"␤    expecting operator, ":" or ","␤    at /tmp/K_46Z9YLIw line 1, column 15␤»
05:29 woosley looks like  ' ... ' is not smart enough. On my computer, say  1,3,5 ... 8 will hang
05:33 ZapZ joined #perl6
05:38 benabik Does … require an exact match to stop?
05:39 benabik Yes, S03 says the sequence is smart matched against the limit.
05:40 benabik perl6: say 1,3,5 … { * >= 8 }
05:40 p6eval rakudo f1c805: OUTPUT«===SORRY!===␤Confused at line 1, near "say 1,3,5 "␤»
05:40 p6eval ..niecza v9-32-g380d891: OUTPUT«[31m===[0mSORRY![31m===[0m��Confused at /tmp/KwXXHrndff line 1:�------> [32msay 1,3,5 [33m�[31m… { * >= 8 }[0m��Parse failed��»
05:40 p6eval ..pugs: OUTPUT«decodeUTF8': bad data: '\8230'␤*** ␤    Unexpected "\8230"␤    expecting operator, ":" or ","␤    at /tmp/t3OxEkWtuj line 1, column 11␤»
05:40 benabik Bah.
05:40 benabik perl6: say 1,3,5 … { * >= 8 }
05:40 p6eval niecza v9-32-g380d891: OUTPUT«[31m===[0mSORRY![31m===[0m��Confused at /tmp/NoRipXB_Qx line 1:�------> [32msay 1,3,5 [33m�[31m… { * >= 8 }[0m��Parse failed��»
05:40 p6eval ..rakudo f1c805: OUTPUT«===SORRY!===␤Confused at line 1, near "say 1,3,5 "␤»
05:40 p6eval ..pugs: OUTPUT«decodeUTF8': bad data: '\8230'␤*** ␤    Unexpected "\8230"␤    expecting operator, ":" or ","␤    at /tmp/e9WmJLJLha line 1, column 11␤»
05:40 benabik Bah!  Stupid autocorrect.
05:41 benabik perl6: say 1,3,5 ... { * >= 8 }
05:41 p6eval pugs: OUTPUT«*** ␤    Unexpected "{"␤    expecting operator, ":" or ","␤    at /tmp/T5lY3XIH4n line 1, column 15␤»
05:41 p6eval ..rakudo f1c805, niecza v9-32-g380d891: OUTPUT«1␤»
05:42 benabik perl6: say 1,3,5 ...^ { $_ >= 8 }
05:43 p6eval rakudo f1c805, niecza v9-32-g380d891: OUTPUT«1 3 5 7␤»
05:43 p6eval ..pugs: OUTPUT«(timeout)13one(VList [VInt 5,VInt 6,VInt 7,VInt 8,VInt 9,VInt 10,VInt 11,VInt 12,VInt 13,VInt 14,VInt 15,VInt 16,VInt 17,VInt 18,VInt 19,VInt 20,VInt 21,VInt 22,VInt 23,VInt 24,VInt 25,VInt 26,VInt 27,VInt 28,VInt 29,VInt 30,VInt 31,VInt 32,VInt 33,VInt 34,VInt 35,VInt 36,V…
05:44 woosley brillant !
05:44 benabik woosley: http://perlcabal.org/syn/S03.html#line_1943
05:46 woosley perl6: my @odd = 1,3,5 ... 8; say @odd[^4]
05:47 p6eval rakudo f1c805, niecza v9-32-g380d891: OUTPUT«(timeout)»
05:47 p6eval ..pugs: OUTPUT«*** ␤    Unexpected "8"␤    expecting operator or ","␤    at /tmp/TUO8j__u5k line 1, column 21␤»
05:47 benabik ^4?
05:47 woosley perl6: my @odd = 1,3,5 ... 15; say @odd[^4]
05:47 p6eval rakudo f1c805, niecza v9-32-g380d891: OUTPUT«1 3 5 7␤»
05:47 p6eval ..pugs: OUTPUT«*** ␤    Unexpected "15"␤    expecting operator or ","␤    at /tmp/5D4DO9LL3c line 1, column 21␤»
05:48 woosley ^4  = 0 .. 3
05:48 benabik (1,3,5 ... *)[^4] might actually work some day, if sufficient laziness is added.
05:49 benabik I would think sequences would be lazy...
05:49 woosley I think laziness is implemented now?
05:49 benabik rakudo: say (1,3,5…*)[^4]
05:49 p6eval rakudo f1c805: OUTPUT«===SORRY!===␤Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 1␤»
05:49 benabik rakudo: say (1,3,5...*)[^4]
05:49 p6eval rakudo f1c805: OUTPUT«1 3 5 7␤»
05:50 benabik Ah.  The assignment is eating the sequence.
05:50 woosley rakudo: my @a = 1,3,5 ... *; say @a[^4]
05:50 benabik rakudo: my @odd := 1,3,5...* ; say @odd[^4]
05:50 p6eval rakudo f1c805: OUTPUT«1 3 5 7␤»
05:50 p6eval rakudo f1c805: OUTPUT«1 3 5 7␤»
05:50 woosley hmmm~~~
05:50 woosley it's not
05:51 benabik rakudo: my @odd := 1,3,5...8 ; say @odd[^4]
05:51 p6eval rakudo f1c805: OUTPUT«1 3 5 7␤»
05:51 benabik rakudo: my @odd = 1,3,5...8 ; say @odd[^4]
05:51 p6eval rakudo f1c805: OUTPUT«(timeout)»
05:51 benabik I bet infix:<…> has a multi with Whatever on the right.
05:51 woosley := ?
05:52 benabik binding
05:52 benabik @odd is the sequence, not store the sequence in @odd
05:52 * benabik wants … to act as ...
05:52 woosley but my @a = 1,3,5 ... * works
05:53 benabik Probably because it's a slightly different object somewhere…  Possibly a bug.
05:54 benabik (Bug that it acts different.)
05:54 benabik nom: say (1,3,5...*).WHAT ; say (1,3,5...8).WHAT
05:54 p6eval nom f1c805: OUTPUT«List()␤List()␤»
05:54 benabik Bah.
05:55 benabik nom: say (1,3...*).WHAT ; say (1,3...8).WHAT
05:55 p6eval nom f1c805: OUTPUT«List()␤List()␤»
05:55 benabik Bah I say.
06:02 kaleem joined #perl6
06:09 woosley rakudo: say ^4.WHAT
06:09 p6eval rakudo f1c805: OUTPUT«Use of uninitialized value in numeric context␤0..^0␤»
06:09 woosley rakudo say (^4).WHAT
06:10 masak joined #perl6
06:10 woosley rakudo: say (^4).WHAT
06:10 p6eval rakudo f1c805: OUTPUT«Range()␤»
06:10 masak morning, p6.
06:10 woosley morning, masak
06:11 woosley rakudo: say (^4).perl
06:11 p6eval rakudo f1c805: OUTPUT«0..^4␤»
06:27 f00li5h joined #perl6
06:27 jnthn morning, #perl6
06:31 masak jnthn: morning!
06:32 masak you're up early :)
06:32 jnthn masak: I know :(
06:32 jnthn sucks.
06:32 jnthn .oO( I do optimism well on a morning... )
06:33 masak :P
06:36 masak hm... there doesn't seem to be a way to set the attributes of a DateTime in Rakudo...
06:38 jnthn Wasn't DateTime immutable, and you just constructed the right thing?
06:38 masak not when I made the spec :)
06:39 * masak goes back to his commit to see what happened to that idea
06:39 jnthn moritz++ and tadzik++ were working on that stuff in nom of late, so may have some ideas too :)
06:41 masak I always understood it as DateTime being mutable, but Date being immutable.
06:42 masak though I remember having to do some compromise or other in Rakudo, because real setters a la '$obj.attr = $value' couldn't be combined with validation, at least not a year ago.
06:43 masak huh! seems *I* made DateTime immutable :P
06:43 masak https://github.com/perl6/specs/commit/3d7d1321169b068bb0a3b3a05cfd7d3c12fb7622
06:43 masak fair enough. who am I then to argue against that decision? :P
06:45 masak it does make a lot of sense. one problem with setting a DateTime through accessors would've been that of triggering out-of-range exceptions even though the initial and final states were OK.
06:45 jnthn Yeah, I don't argue with myself.
06:45 jnthn Wait, yes I do!
06:46 masak autopun :P
06:46 masak *and* a direct self-reference.
06:48 masak oh, it was Kodi who proposed and carried through the immutabilization of DateTime. that's why I can't remember having done it myself. ;)
06:48 masak Kodi++
06:49 jnthn commute &
06:50 cotto What characteristics are desirable in a language subset like nqp used for building a full compiler of that language?
06:50 cotto I know that the subset should compile to something static and should be more expressive than a low-level language.  Is there anything else?
06:58 japhb joined #perl6
06:59 masak well, it's nontrivial for me as a bystander to tell what's primary reasons and what's consequences. maybe pmichaud will have better answers.
06:59 masak but it seems to me one of the points is to streamline things a bit; to remove conveniences in the full language that aren't strictly needed.
07:00 japhb (original msg via phenny lost, and phenny doesn't appear back yet, so hoping jnthn backlogs ...)  jnthn, Could you take a look at the remaining '?' items for nom in the compiler features table?  There are only three left, and to an outsider they *appear* to be the kind of things that would have a definitive answer ...
07:00 cotto Yeah.
07:00 masak cotto: for example, it's terribly convenient to be able to do 'say 42', but it doesn't really offer any new semantics on top of 'say(42)'
07:00 cotto I'll be trying to catch pmichaud at some point.
07:00 masak cotto: ditto explicit/implicit type casts.
07:01 masak so nqp seems to me to be a kind of "minimal subset" of Perl 6 -- where "minimal" is a moving target as we scale up the stack in complexity -- without much of the DWIM that we like in Perl 6 but don't need for a bootstrapping step.
07:02 masak to me as a Perl 6 dev, nqp often looks like Perl 6's spartan, strict cousin.
07:02 masak a bit like someone took a look at Perl 6 and went "well, I *like* it, but lets get rid of all this implicit, dwimmy crap".
07:02 cotto masak, that's helpful.  Thanks.
07:43 masak rakudo: say now
07:43 p6eval rakudo f1c805: OUTPUT«Instant:1316591040.30722␤»
07:43 masak rakudo: say DateTime.now
07:43 p6eval rakudo f1c805: OUTPUT«DateTime.new(year => 2011, month => 9, day => 21, hour => 7, minute => 43, second => 34, timezone => $*TZ)␤»
07:43 masak huh. that last value isn't too informative.
07:44 masak rakudo: say DateTime.now.Date
07:44 p6eval rakudo f1c805: OUTPUT«Date.new(2011, 9, 21)␤»
07:44 jnthn cotto: NQP is allowed to make a lot more assumptions too
07:44 masak rakudo: say Date.now
07:44 p6eval rakudo f1c805: OUTPUT«Method 'now' not found for invocant of class 'Date'␤  in <anon> at /tmp/A5UzmmzLJG:1␤  in <anon> at /tmp/A5UzmmzLJG:1␤␤»
07:44 masak rakudo: say Date.today
07:44 p6eval rakudo f1c805: OUTPUT«Date.new(2011, 9, 21)␤»
07:44 masak rakudo: say DateTime.today
07:44 p6eval rakudo f1c805: OUTPUT«Method 'today' not found for invocant of class 'DateTime'␤  in <anon> at /tmp/q2S44LHkiu:1␤  in <anon> at /tmp/q2S44LHkiu:1␤␤»
07:44 jnthn cotto: Which makes it a bunch easier to analyze, and thus optimize.
07:45 jnthn cotto: The NQP optimizer, when it lands, will be able to be quite aggressive in various ways that a full-blown Perl 6 would could not be without a bunch more analysis.
07:45 masak it would be inneresting to list those assumptions, and try to figure out how to apply them to Perl 6 in "some cases".
07:46 jnthn For example, NQP has no eval that can see lexicals.
07:46 jnthn So we can just demote lexicals that we know aren't captured in closures down to registers/locals.
07:47 jnthn In Perl 6, we have to hope we can inline stuff in hot paths, at which point there's no function or method calls left, at which point we know we're not calling eval, at which point we can demote lexicals to registers.
07:47 jnthn That said, lexicals should really be cheaper than they are today...
07:48 * masak .oO( 4 lexicals for the price of 3 )
07:48 jnthn :P
07:49 BinGOs joined #perl6
07:49 plobsing joined #perl6
07:49 uasi_ joined #perl6
07:49 mattp_ joined #perl6
07:49 pernatiy joined #perl6
07:49 phenny joined #perl6
07:49 daemon joined #perl6
07:49 araujo joined #perl6
07:49 skangas joined #perl6
07:49 BooK joined #perl6
07:49 Trashlord joined #perl6
07:49 Exodist joined #perl6
07:49 jferrero joined #perl6
07:49 bloonix joined #perl6
07:49 jevin joined #perl6
07:49 felipe joined #perl6
07:49 broquaint joined #perl6
07:49 zostay joined #perl6
07:49 ruoso joined #perl6
07:49 revdiablo joined #perl6
07:49 mdxi_ joined #perl6
07:49 stepnem joined #perl6
07:49 Bucciarati joined #perl6
07:49 gfldex joined #perl6
07:49 yahooooo joined #perl6
07:49 tomaw joined #perl6
07:49 literal joined #perl6
07:49 jnthn japhb: using then is "phenny: tell jnthn beer is awesome"
07:50 jnthn japhb: I'll try and look this evening, after $dayjob
07:50 phenny jnthn: 03:35Z <japhb> ask jnthn Is there a replacement in nom for the old alpha-era 'use Foo::Bar:from<parrot>;' syntax?  If not, where should I start looking to figure out how to bring that functionality back?
07:50 jnthn oh, japhb++ did use phenny right for that one...
07:51 bakedb joined #perl6
07:51 92AAAHDUP joined #perl6
07:51 mberends joined #perl6
07:51 donri joined #perl6
07:51 daniel-s joined #perl6
07:51 molaf_ joined #perl6
07:51 bbkr joined #perl6
07:51 ruz joined #perl6
07:51 TimToady joined #perl6
07:51 szabgab_ joined #perl6
07:51 JodaZ_ joined #perl6
07:51 dalek joined #perl6
07:51 Sarten-X joined #perl6
07:51 bbkr1 joined #perl6
07:51 jaldhar joined #perl6
07:51 mtk joined #perl6
07:51 sbp joined #perl6
07:51 nsh joined #perl6
07:51 _sri joined #perl6
07:51 arnsholt joined #perl6
07:51 [particle]1 joined #perl6
07:51 miso2217 joined #perl6
07:51 sjn joined #perl6
07:51 ranguard joined #perl6
07:51 betterworld joined #perl6
07:51 fhelmberger joined #perl6
07:51 snarkyboojum joined #perl6
07:51 jdhore joined #perl6
07:51 yves_ joined #perl6
07:51 colomon joined #perl6
07:51 Grrrr joined #perl6
07:51 PZt joined #perl6
07:51 yath joined #perl6
07:51 apejens joined #perl6
07:51 Maddingue joined #perl6
07:51 [Coke] joined #perl6
07:51 odoacre joined #perl6
07:51 worr joined #perl6
07:51 Patterner joined #perl6
07:51 breinbaas joined #perl6
07:51 arthur-_ joined #perl6
07:51 drbean joined #perl6
07:51 sorear joined #perl6
07:51 lue joined #perl6
07:51 renormalist joined #perl6
07:51 senobmeht joined #perl6
07:51 Util joined #perl6
07:51 ingy joined #perl6
07:51 diakopter joined #perl6
07:51 moritz joined #perl6
07:51 itz_ joined #perl6
07:51 Yappoko___ joined #perl6
07:51 hillu joined #perl6
07:51 jfried joined #perl6
07:51 imarcusthis joined #perl6
07:51 DarthGandalf joined #perl6
07:51 jlaire joined #perl6
07:51 Grimnir_ joined #perl6
07:52 nebuchadnezzar joined #perl6
07:52 mj41 joined #perl6
07:52 replore joined #perl6
07:52 dukeleto joined #perl6
07:52 y3llow joined #perl6
07:52 cosimo joined #perl6
07:52 kshannon joined #perl6
07:52 PacoLinux joined #perl6
07:52 Woodi joined #perl6
07:52 Vlavv joined #perl6
07:52 takesako joined #perl6
07:52 cxreg joined #perl6
07:52 flussence joined #perl6
07:52 Lorn joined #perl6
07:52 Helios joined #perl6
07:52 pmichaud joined #perl6
07:52 hugme joined #perl6
07:52 jrockway_ joined #perl6
07:52 donri joined #perl6
07:52 orafu joined #perl6
07:52 tty234 joined #perl6
07:52 Gothmog_ joined #perl6
07:52 buubot_backup joined #perl6
07:52 slavik1 joined #perl6
07:52 LoRe_ joined #perl6
07:52 eiro joined #perl6
07:52 ashleydev joined #perl6
07:52 nsh- joined #perl6
07:52 risou_awy joined #perl6
07:52 mls_ joined #perl6
07:52 mux joined #perl6
07:54 tty234_ joined #perl6
07:57 wooden joined #perl6
08:00 KindOne joined #perl6
08:02 replor___ joined #perl6
08:04 kiffin joined #perl6
08:08 kiffin left #perl6
08:12 KindOne joined #perl6
08:22 JimmyZ joined #perl6
08:25 satyavvd joined #perl6
08:26 satyavvd joined #perl6
08:29 donri joined #perl6
08:29 donri joined #perl6
08:34 KindOne left #perl6
08:41 dakkar joined #perl6
08:43 daniel-s joined #perl6
08:51 locsmif joined #perl6
08:56 yass5 joined #perl6
09:16 renormalist asdasda
09:16 renormalist wrong channel, kids typing, sorry
09:17 locsmif :)
09:20 masak was there a right channel that the kids should've been typing that in? :P
09:20 phenny masak: 20 Sep 23:43Z <TimToady> tell masak the negative quantification has been there a long time; it just got relocated to stay near the ** text
09:20 masak oh!
09:21 masak well, that doesn't change my gut feeling about it being not very useful and too complex.
09:22 masak we already have <!after>
09:28 envi_laptop joined #perl6
09:35 masak ooh, ?? !! ended up as an *infix* operator in Perl 6, not as a special-case trinary thing.
09:41 tadzik good morning
09:42 jnthn o/ tadzik
09:45 REPLeffect joined #perl6
09:51 Woodi hallo
09:53 Woodi jnthn: just architecture queston: is it possible/appropriate to have "filters" in perl6, eg for filtering IO for pluggable encryption on language level ?
09:54 Woodi or for implementing permissions checks on resources acces, IO
09:59 Woodi eg. put explicit barrier betwin code with resource acces and code doing www/network stuff ?
10:01 Woodi everything can be writed outside language core but i ask about possible internal feature
10:02 daxim joined #perl6
10:04 Woodi maybe permission for "operations" not only resources too
10:06 daniel-s joined #perl6
10:29 mishin_ joined #perl6
10:32 cognominal [08:45]  <jnthn> Yeah, I don't argue with myself.
10:32 cognominal you are not TimToady who usually can ague everything both ways :)
10:38 kfo_ joined #perl6
10:38 grondilu joined #perl6
10:41 grondilu perl6: perl6: say 3.14159_26535_89793; #just want to see if there is arbitrary precision here
10:41 p6eval niecza v9-32-g380d891: OUTPUT«3141592653589793/1000000000000000␤»
10:41 p6eval ..pugs: OUTPUT«3.141592653589793␤»
10:41 p6eval ..rakudo f1c805: OUTPUT«===SORRY!===␤Confused at line 1, near "perl6: say"␤»
10:48 rhr joined #perl6
10:53 espadrine joined #perl6
10:56 daniel-s joined #perl6
11:04 grondilu left #perl6
11:04 tadzik rakudo: say 3.14159_26535_89793;
11:04 p6eval rakudo f1c805: OUTPUT«3.14159265358979␤»
11:07 flussence rakudo: printf('%.25f', 3.14159_26535_89793);
11:08 p6eval rakudo f1c805: OUTPUT«3.1415926535897931159979635»
11:08 flussence erk.
11:08 JimmyZ rakudo: say 3.14159_26535_897932.perl
11:08 p6eval rakudo f1c805: OUTPUT«7853981633974483/2500000000000000␤»
11:41 Psyche^ joined #perl6
11:41 uasi joined #perl6
11:45 pmurias joined #perl6
11:45 pmurias erlang style message passing will be supplied in a module or builtin?
11:45 phenny pmurias: 20 Sep 11:03Z <ingy> tell pmurias alias TOP to a rule called something else and start on that rule? Realize that I am writing language grammars where I almost always want to parse an entire text. requiring ^$ is not only annoying, it is going to cause problems when people forget it.
11:47 masak pmurias: I don't think anyone can answer that until the whole concurrency/parallelism/events thing has been mapped out in a consistent and solid manner.
11:47 uasi_ joined #perl6
11:47 moritz "yes" would probably a good guess :-)
11:49 masak it's the term "builtin" that makes me unsure.
11:49 masak maybe there'll be a more fundamental builtin that'll support it?
11:50 pmurias masak: builtin meaning in CORE
11:50 masak right.
11:54 pmurias masak: what i would like to avoid is having a copy of the erlang mechanism in CORE
11:55 uasi joined #perl6
11:55 JimmyZ parrot wants a actor model in core
11:57 uasi_ joined #perl6
11:58 jimmy1980 joined #perl6
12:08 snarkyboojum join #aws
12:08 snarkyboojum eek
12:09 aindilis joined #perl6
12:14 bakedb joined #perl6
12:17 masak std: my $op; my $ck; $op = $op.$ck
12:17 p6eval std c22b2ee: OUTPUT«ok 00:01 121m␤»
12:18 masak nice. I thought one needed quotes around $ck. apparently not.
12:21 mls_ hi perl6!
12:22 tadzik hi mls_!
12:22 mls_ S04 contains: class Naughty is Exception {}; die Naughty("error");
12:22 mls_ What contstructor type is that?
12:23 mls_ I thought one had to write Naughty.new("error") or something like that
12:23 mls_ Wait, I don't mean S04, but t/spec/S04-exception-handlers/catch.t
12:24 bluescreen10 joined #perl6
12:31 masak hi mls_
12:31 mls_ hello masak!
12:31 masak mls_: I discuseed this with moritz the other day.
12:32 masak I maintained that there's a difference between the above syntax, a cast, and the syntax for a constructor.
12:32 masak moritz seemed to opine they're equivalent.
12:33 mls_ How does Naughty("error") work?
12:34 mls_ I can't find anything in the spec (but the spec is quite big...)
12:38 masak syntactically, it's a conversion. like Int("42").
12:38 masak std: Int("42")
12:38 p6eval std c22b2ee: OUTPUT«ok 00:01 119m␤»
12:38 im2ee joined #perl6
12:38 uasi joined #perl6
12:38 mls_ NYI in rakudo
12:39 mls_ where is that in the spec?
12:39 masak ISTR it used to be spelled that way in Rakudo, but was deprecated. that seems odd, though.
12:39 masak nowadays, I tend to do "42".Int
12:40 mls_ yes, that's what I also use
12:41 masak I'm not sure the spec has a section on type casting.
12:42 mls_ niecza: Int("42")
12:42 p6eval niecza v9-32-g380d891: OUTPUT«Unhandled exception: Unable to resolve method postcircumfix:<( )> in class Int␤  at /tmp/Rn_vf2oREP line 1 (MAIN mainline @ 1) ␤  at /home/p6eval/niecza/lib/CORE.setting line 2060 (CORE C968_ANON @ 2) ␤  at /home/p6eval/niecza/lib/CORE.setting line 2061 (CO…
12:43 masak my guess is that the NewType($value) syntax is dead, and that the thing you found in the spec is a fossil.
12:43 masak or maybe s/guess/hope/ ;)
12:44 mls_ yeah, probably. I'll ask TimToady++
12:44 mls_ I probably could define postcircumfix:<( )> in Exception, though ;)
12:46 woosley joined #perl6
12:48 bakedb joined #perl6
12:51 sayu joined #perl6
12:54 masak yes. but I think it's a better idea to use .new
12:54 tadzik +1
12:58 cognominal what is the way to get the parse tree of a perl6 program?
12:59 wamba joined #perl6
12:59 cognominal ...so as to be able to do syntax highlighting
13:01 pernatiy joined #perl6
13:02 flussence hm, Date.t hangs on 32bit for me. That's a new one...
13:02 cognominal I was hoping that ack-ing the source with "Perl6::Grammar" would give me a clue
13:02 masak cognominal: run STD's viv on it?
13:02 masak cognominal: or maybe co-opt Niecza to emit a parse tree?
13:03 cognominal I would be more confortable doing that with rakudo
13:03 cognominal I already have some of the code to process the parse tree written in rakudo.
13:04 pmurias cognominal: what do you intent to do with the parse tree?
13:05 cognominal https://github.com/cognominal/code-viewer  # stuff like that
13:05 cognominal but I do it with grammars different than Perl 6 grammar.
13:06 cognominal pmurais, Well that's old stuff I am rewriting from scratch, but that to give you an idea
13:12 masak I'd also like to be able to get parse trees of programs easily.
13:13 mykhal joined #perl6
13:13 flussence something like $=POD, but for code?
13:14 cognominal that's $/   :)
13:14 masak flussence: no, just Perl6::Grammar.parse($code).
13:14 cognominal when parsing using Perl::Grammar
13:15 masak (with the appropriate handwaving for how to handle the World that parsing Perl 6 code generates)
13:15 cognominal but last time, I tried, one cannot do what masak said because the parsing is dependant on a lot of setup.
13:16 masak yeah.
13:16 masak well, STD can.
13:17 cognominal I would like to avoid using too many tools (I already use rakudo, coffeescript, jquery…).
13:18 moritz nom: say nqp::box_i(pir::can(Any, 'Bool'))
13:18 p6eval nom f1c805: OUTPUT«===SORRY!===␤Unrecognized nqp:: opcode 'nqp::box_i' at line 1, near ""␤»
13:18 moritz nom: say nqp::p6box_i(pir::can(Any, 'Bool'))
13:18 p6eval nom f1c805: OUTPUT«1␤»
13:18 moritz nom: say nqp::p6box_i(pir::can(Any, 'Fool'))
13:18 p6eval nom f1c805: OUTPUT«0␤»
13:18 cognominal I am doing a presentation friday and I would like to demonstrate my tool with the parse of Perl 6 code instead of pseudo javascript. code.
13:18 Holy_Cow joined #perl6
13:18 Holy_Cow left #perl6
13:19 bluescreen10 joined #perl6
13:24 masak good luck!
13:27 maguro joined #perl6
13:32 jnthn The coercions are maybe defined as multi postcircumfix that wants a :U
13:32 jnthn Or syntactic.
13:32 Base__ joined #perl6
13:33 wtw joined #perl6
13:33 * jnthn is only vaguely keeping up...actually having quite a busy day at $dayjob today :P
13:34 im2ee hi! :)
13:35 masak im2ee: hej!
13:38 tadzik hej im2ee
13:38 flussence I'm writing a thing that doesn't currently work properly, but here it is anyway: https://github.com/flussence/Pod-Tree-Walker
13:38 flussence (and if anyone can explain why I get an ambiguous-multi error there, it'd be much appreciated...)
13:38 tadzik looks fun
13:39 dalek nqp: 3faca64 | moritz++ | tools/build/PARROT_REVISION:
13:39 dalek nqp: bump PARROT_REVISION to 3.8 release
13:39 dalek nqp: review: https://github.com/perl6/nqp/commit/3faca64beb
13:40 flussence (hm, maybe I want to use something other than ".?")
13:43 dalek rakudo/nom: e7ed52f | moritz++ | t/02-embed/01-load.pir:
13:43 dalek rakudo/nom: TODO 02-embed test
13:43 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e7ed52fafd
13:43 dalek rakudo/nom: 0cbc528 | moritz++ | src/Perl6/Compiler.nqp:
13:43 dalek rakudo/nom: use .gist instead of prefix:<~> to stringify REPL autoprint output
13:43 dalek rakudo/nom:
13:43 dalek rakudo/nom: Now when the return value of an expression is a type object, you get Int()
13:43 dalek rakudo/nom: or so, and no warning
13:43 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/0cbc528cd1
13:43 dalek rakudo/nom: 28f0696 | moritz++ | tools/build/NQP_REVISION:
13:43 dalek rakudo/nom: bump NQP revision to get some testing on released parrot
13:43 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/28f0696523
13:45 mishin_ joined #perl6
13:54 moritz is there anybody for whom t/spec/S19-command-line/dash-e.rakudo has NOT two passing TODO tests?
13:54 moritz (might need ICU)
13:54 * flussence checks...
13:55 flussence looks ok today, though I have had that one fail in the past...
13:56 jnthn moritz: Fails for me
13:56 jnthn moritz: Also args.t
13:56 jnthn moritz: I was thinking they were win32 specific and wanted to check that first before I yelped...but didn't get to it.
14:00 moritz jnthn: do you have ICU available?
14:00 moritz jnthn: and can you use non-ASCII chars on the command line with -e?
14:02 jnthn no, and guess not
14:02 bluescreen10 joined #perl6
14:02 jnthn moritz: That may be my crappy console's fault though ;)
14:06 jnthn ooh, YAPC::EU talk feedback arrives :)
14:06 tadzik huh?
14:06 tadzik oh
14:07 jnthn apparently my talks were fine :)
14:07 tadzik wow, somebody actually liked my lightning talk :)
14:08 bakedb_ joined #perl6
14:09 pmurias cognominal: what is that usefull for?
14:10 masak tadzik: I liked your lightning talk.
14:10 masak but I was too lazy to fill in evaluations this year :/
14:11 tadzik masak: I had a feeling it went terrible, mostly due to speedspeaking and lack of rehearsals, but I'm still the only one who thought it was terrible, so maybe it was pretty good after all ;)
14:12 tadzik flussence: em, don't you want your DOC INIT to be INIT in s26.t? DOC INIT won't run when you run your tests with prove
14:12 tadzik or maybe no phasers at all
14:14 flussence AIUI I've got to run it as -e 'perl6 --doc' either way to get the $=POD variable...
14:14 tadzik flussence: and the dispatch bug seems to have roots in Rakudo rather than your code, methinks
14:14 tadzik flussence: nah, $=POD is always there
14:14 tadzik and I think that's what the spec wants
14:15 jnthn Dispatch bug?
14:15 woosley left #perl6
14:15 tadzik S26 doesn't say anything about $=POD being not always there
14:15 tadzik jnthn: in Pod::Tree::Walker
14:15 flussence jnthn: my code was complaining about two identical multis, even though there's definitely only one with the signature there
14:17 cognominal pmurias, my tool ties the parse code to the reduced rules. From a rule, it could eventually open the documention a the right page. If we link each rule to the spec it implements.
14:17 flussence rakudo: class A { method foo { self.?bar } }; class B is A { method bar { say 'baa' } }; B.new.foo
14:17 p6eval rakudo 28f069: OUTPUT«baa␤»
14:18 jnthn flussence: Odd. Would be very interested to see a golfed example.
14:18 cognominal litterate programming would be quite illiterate compared to such a tool  :)
14:18 flussence rakudo: my $abc = [1, 2, 3]; class A { method foo { self.?bar($abc) } }; class B is A { method bar($) { say 'blah' }; method bar(@) { say 'baa' } }; B.new.foo
14:18 p6eval rakudo 28f069: OUTPUT«===SORRY!===␤Package 'B' already has a method 'bar'; did you mean to declare a multi-method?␤»
14:18 flussence whoops
14:18 flussence rakudo: my $abc = [1, 2, 3]; class A { method foo { self.?bar($abc) } }; class B is A { multi method bar($) { say 'blah' }; multi method bar(@) { say 'baa' } }; B.new.foo
14:18 p6eval rakudo 28f069: OUTPUT«baa␤»
14:19 cognominal well, to be honest litterate programming document the purpose of the code. My tool would explains the code itself.
14:19 flussence hm, it seems a bit more involved than this...
14:21 cognominal I firmly believe that we need to invent a nurturing environment around Perl 6.
14:24 cognominal Apparently there is a hook to write once parse tree dumper. But --target=parse is still broken
14:24 cognominal perl6 --target=parse --dumper=toto t.pm
14:24 cognominal ===SORRY!===
14:24 cognominal Could not locate compile-time value for symbol StaticLexPad
14:24 cognominal …in nom.
14:25 jnthn makes sense
14:25 jnthn I suspect getting --target=parse to work reliably is going to need some effort.
14:26 jnthn Though it probably fails for everything at the moment.
14:27 pmurias cognominal: moritz was planning on creating a code explainer
14:28 kaare_ joined #perl6
14:29 jnthn Working over the AST may well make more sense than the parse tree, fwiw
14:29 moritz ... and I still think it's a good idea, but I have way too many good ideas and way too little time
14:30 jnthn Maybe I should blog about how people can write tools that get an AST and then do stuff with it. :)
14:30 pmurias jnthn: why would the ast be better?
14:30 jnthn pmurias: Because it encodes semantics, has symbol tables from which you can go and introspect the symbols, and so forth.
14:30 cognominal currently my tool shows the reductions from TOP to the  code token your mouse hovers.
14:31 jnthn ah, if you want that then maybe parse tree is useful...
14:31 pmurias jnthn: does it expose the full syntax info?
14:31 cognominal My tool  could be a complement to jnthn grammar debugger.
14:32 cognominal jnthn's grammar debugger shows the process in real time, mine show the result.
14:32 pmurias jnthn: what i would be most usefull to be would be a tool which for a given bit of code will show me where the construct is specced, the test for it etc.
14:33 cognominal I agree with jnthn, that if someday we want to do incremental recompiling of editing code like v8 does, ones needs access to some serialization of the AST.
14:33 cognominal but my goal is more modest
14:34 cognominal Anyway, I already succeeded in being somewhatt proficient in coffeescript and jquery. :)
14:34 pmurias v8 does incremental recompiling of code?
14:36 cognominal pmurias: it spent a lot of time doing that. :)
14:36 cognominal it recompiles polymorphic code to generate native code according to the argument types.
14:37 pmurias i thought you meant it did incremental reparsing
14:37 flussence jnthn: https://gist.github.com/1232212
14:37 flussence this breaks if you uncomment that line
14:37 jnthn pmurias: You should be able to get to the match object, I think.
14:38 jnthn pmurias: Or at least some information about location.
14:38 jnthn Otherwise we can't give good errors for problems the optimizer finds.
14:38 cognominal pmurias: Apparently, it is faster for rhem to reparse the source code for the polymorphic function that is to be executed.
14:39 benabik joined #perl6
14:39 jnthn flussence: whoa, ouch
14:39 jnthn flussence: Thanks.
14:39 jnthn Will look this evening.
14:39 * jnthn is kinda confused
14:39 cognominal There is very little litterature about v8 but it is a knock-off of the Self compiler. some of the programmars are the same.
14:40 BinGOs joined #perl6
14:40 cognominal the relevant papers are here :  http://labs.oracle.com/self/papers/papers.html
14:41 cognominal especially this one :  http://labs.oracle.com/self/papers/pics.html
14:42 cognominal And someone is some interesting blogging about v8 :  http://wingolog.org/tags/v8
14:43 cognominal s/is/is doing/
14:45 * moritz only knows the v8 javascript engine that is used in chrome
14:46 cognominal moritz: that's this one, it is used by node.js too.
14:46 JimmyZ and MongoDB ?
14:47 dalek rakudo/nom: c2194d6 | moritz++ | docs/ChangeLog:
14:47 dalek rakudo/nom: copy ChangeLog from 2011.07
14:47 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/c2194d6022
14:48 cognominal JymmyZ: Apparently it uses the same technology to compile into native code. But unlike, v8, I have not looked into it.
14:49 cognominal http://nosql.mypopescu.com/post/409039261/using-googles-v8-javascript-engine-with-mongodb  …or spider monkey according to this post.
14:50 cognominal http://www.howsthe.com/blog/2010/feb/22/mongodb-and-v8/ … or both.
14:51 masak perl6: grammar G { regex TOP { 'foo' { say ~$/ } } }; G.parse("foo")
14:51 p6eval niecza v9-32-g380d891: OUTPUT«G()<instance>␤»
14:51 p6eval ..rakudo 28f069: OUTPUT«foo␤»
14:51 p6eval ..pugs: OUTPUT«*** No such method in class G: "&parse"␤    at /tmp/Q31nig35XR line 1, column 48 - line 2, column 1␤»
14:52 jnthn rakudo++
14:52 masak sorear: I think Rakudo's output is correct here.
14:52 jnthn ...G()<instance>?!
14:52 benabik moritz++ # REPL gisting
14:52 jnthn I'd at least expect $/ to have a Match object in...
14:52 masak sorear: want me to file a nieczabug?
14:53 moritz niecza: grammar G { }; say G ~~ Match
14:53 p6eval niecza v9-32-g380d891: OUTPUT«Bool::False␤»
14:54 jnthn The cursor should be of type G, but the thing in $/ should be a match object.
14:54 moritz right
14:54 cognominal jnthn: would it possible to get at the parse tree using code accessing  $COMPILING::/  at the end of the code to be parsed ?
14:54 jnthn niecza: grammar G { regex TOP { 'foo' { say $/.WHAT } } }; G.parse("foo")
14:54 p6eval niecza v9-32-g380d891: OUTPUT«G()␤»
14:55 jnthn rakudo: grammar G { regex TOP { 'foo' { say $/.WHAT } } }; G.parse("foo")
14:55 p6eval rakudo 28f069: OUTPUT«Match()␤»
14:55 jnthn cognominal: I don't think COMPILING does that... :)
14:55 cognominal I was hanwaving...
14:55 cognominal *handwaving.
14:56 cognominal rakudo: grammar G { regex TOP { 'foo' { say $/ } } }; G.parse("foo")
14:56 p6eval rakudo 28f069: OUTPUT«foo␤»
14:57 cognominal so I would need to get the $/ at the right callframe :)
14:58 moritz .parse returns $/
14:59 cognominal moritz: I know, but the  Perl6 .parse is very deep in the compiler code.
14:59 jnthn decommute &
14:59 cognominal and as I said, I can't just call Perl6::Grammar.parse()
15:00 moritz cognominal: method .parse in HLL::Compiler... you might want to override that in Perl6::Compiler
15:01 moritz or inject a stage after 'parse'
15:02 cognominal indeed. I am not too comfortable with PIR but I will give it a try.
15:02 moritz PIR? it's written in NQP these days
15:03 cognominal cool, that would be more tractable.
15:03 moritz it does :-)
15:04 thou joined #perl6
15:06 dalek rakudo/nom: 313b687 | moritz++ | docs/ChangeLog:
15:06 dalek rakudo/nom: add some few ChangeLog entries
15:06 dalek rakudo/nom:
15:06 dalek rakudo/nom: This just scratches the surface of all the nom changes; feel free to
15:06 dalek rakudo/nom: add many more
15:06 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/313b687d98
15:07 cognominal btw, I wrote a toy oneliner stackframe dumping :  https://gist.github.com/1226296
15:08 tadzik someone may want to answer that: http://stackoverflow.com/questions/7501581/how-does-one-use-sqlite-in-perl-6
15:08 tadzik it may be possible with niecza and CLR interop
15:08 * moritz is already typing an answer
15:11 moritz jnthn: while writing the ChangeLog entry I noticed that I had no idea how much of the parametric role stuff is new in comparison to 2011.07
15:11 moritz jnthn: maybe add a few lines for new features to changelog
15:11 sorear good * #perl6
15:12 masak hi, sorear
15:14 sorear masak: I am not convinced that $/ should be a Match.  What is your use case?
15:14 moritz same as ordinary regex matches
15:16 ingy tadzik: cdent has vala now
15:16 ingy we never actually wrote the code
15:16 wamba joined #perl6
15:17 ingy cdent/emitter/vala.py
15:19 masak sorear: my use case is "inspect what's been matched so far in the rule".
15:19 itz_ joined #perl6
15:19 masak sorear: but maybe I wasn't clear enough. I think Rakudo is to spec here, and Niecza isn't.
15:20 moritz (and if it's not clearly spec yet, we should make it spec)
15:20 sorear masak: if the spec says $/ should be a Match, then I am dubious of the spec unless I see a proper use case
15:21 PerlJam sorear: what do you think $/ should be?
15:21 sorear I agree that Niecza's handling of .gist on Cursor objects is LTA at the moment
15:21 sorear masak: STD makes extensive use of the ability to get at the current Cursor object and call methods on it
15:22 masak well, sure.
15:22 masak but what does that have to do with $/ being a partially constructed Match, or something similar enough?
15:22 masak feels like we're talking past each other somewhat.
15:23 sorear Cursor *is* a partially constructed Match
15:23 lichtkind joined #perl6
15:23 lichtkind cheers good people of perl 6
15:23 moritz are we talking about the return value from G.parse, or about $/ inside a closure inside a regex?
15:23 masak sorear: then what's the problem?
15:23 cognominal coffeekup++
15:23 masak lichtkind: greetings.
15:23 espadrine joined #perl6
15:24 masak moritz: the latter.
15:24 lichtkind jnthn: my talk sucked and let me know :)
15:24 masak moritz: well, regex or rule-in-grammar.
15:25 moritz then it's pretty clear that $¢ is the cursor and $/ the Match
15:25 PerlJam S05:916  fwiw
15:26 masak moritz: but what about $0? we even use that inside procedural parts of a rule...
15:26 masak and it means $/[0]
15:26 * masak always disliked the variable $¢
15:27 moritz masak: it doesn't have to mean $/[0] inside the regex
15:27 mberends joined #perl6
15:27 moritz masak: it's OK if it just means 'text of the first () capture'
15:28 cognominal I have yet to understand the difference between $¢ and $/ within a rule.
15:28 moritz cognominal: basically $¢ is more in flux, and $/ is a snapshot
15:29 moritz in an ordianry regex or grammar, there's not much reason to access $¢ at all
15:30 PerlJam $¢ will tell you where you're at in the middle of a parse.
15:30 PerlJam ($/ can only tell you where you ended up as I understand it)
15:30 cognominal and what $/ tells you in the middle of a parse?
15:31 cognominal the part of the parse, the parser is committed to?
15:31 cognominal meaning it wil not backtrace over.
15:31 cognominal *will
15:32 * moritz thinks it might even backtrack over it
15:33 moritz rakudo: say 'aaaab' ~~ /^(a+) { say $0 } aab /
15:33 p6eval rakudo c2194d: OUTPUT«Nil␤␤»
15:33 moritz b: say 'aaaab' ~~ /^(a+) { say $0 } aab /
15:33 p6eval b 1b7dd1: OUTPUT«aaaa␤aaa␤aa␤aaaab␤»
15:34 moritz there it backtracked over a closure, so $/ had a new value in the subsequent executions
15:34 sorear S05:921 says that $¢ and $/ start out the same in closures
15:34 moritz a difference is that the cursor needs to keep track of where to retry in case of a failure
15:35 moritz sorear: I don't understand "the same" as meaning "the same object", but rather "with the same information"
15:36 masak moritz: my point is that if $0 has a modified meaning inside of a regex closure, then $/ should have a similar modified meaning, by symmetry.
15:37 bakedb_ joined #perl6
15:38 moritz masak: I was talking about $0 as in (\d+)$0 or so when I talked about modified meaning
15:38 moritz not about regex closures
15:38 moritz hzhnh    z7
15:39 masak why would there be a difference? in both case I want to talk about the match-created-so-far.
15:39 PerlJam S05:4504 has some interesting information
15:40 PerlJam particularly that last paragraph
15:40 cognominal S05 is not that long :)
15:40 PerlJam But I still don't quite grok $¢
15:41 PerlJam cognominal: my copy is.  It has 4528 lines
15:41 masak I grok Cursors by now. I don't get why it needs to have such an ugly variable name. :/
15:42 PerlJam masak: because ¢ looks like a C and that's to remind you it's a Cursor
15:42 cognominal it is an ackward smiley. Quite appropriate given our perplexity :)
15:43 cognominal $/  smiley with frowned eyebrows
15:44 PerlJam masak: the only reason the match object isn't called $₥ or something is because / is so tightly bound to regex matches in historic perl
15:44 PerlJam :-)
15:46 masak PerlJam: everything -- *everything* -- else in Perl 6 that has characters in Latin 1 but outside of ASCII, has ASCII fallbacks. except for $¢.
15:47 masak not that I'm sure that it'd improve the ugliness of $¢ if it did have a fallback.
15:48 PerlJam does it make a difference that it's so ugly?  You almost never need to use it.
15:48 tadzik ingy: heh
15:49 masak PerlJam: it's only because it's so rare that I complain about it so rarely :P
15:49 masak PerlJam: I'd much prefer to have it be called $*CURSOR or something.
15:50 masak $¢ reminds me of the worst parts of Perl 5 variable naming.
15:50 cognominal ¢
15:50 * pmurias thinks $¢ looks cute
15:50 tadzik ingy: so how did it pass the tests?
15:54 sorear masak: I don't understand your problem.  Cursors *are* partially built Matches.
15:55 mberends joined #perl6
15:57 masak sorear: my problem, concretely, is that Niecza's output doesn't match Rakudo's for the p6eval code I entered.
15:57 * masak decommutes
15:59 * cognominal blames emacs for not automtically updateding the S05 buffer
16:02 bakedb__ joined #perl6
16:06 im2ee How to get length of a string? :)
16:07 mls_ perl6: my $ex = Exception.new(); say $ex
16:07 pmurias perl6: say "123".chars
16:07 p6eval niecza v9-32-g380d891: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤â�¤Undeclared name:â�¤ 'Exception' used at line 1â�¤â�¤Unhandled exception: Check failedâ�¤â�¤  at /home/p6eval/niecza/boot/lib/CORE.setting line 685 (CORE die @ 2) â�¤  at /home/p6eval/niecza/src/STD.pm6 line 1136 (STD P6.comp_unit @ 36) â�¤â€¦
16:07 p6eval ..rakudo 313b68: OUTPUT«get_pmc_keyed_str() not implemented in class 'Mu'␤  in method Str at src/gen/CORE.setting:5710␤  in method perl at src/gen/CORE.setting:616␤  in method gist at src/gen/CORE.setting:613␤  in sub say at src/gen/CORE.setting:4729␤  in <anon> at /tmp/cj1NTKUUjV:1␤  in …
16:07 p6eval ..pugs: OUTPUT«*** No such subroutine: "&Exception"␤    at /tmp/fO6bUuwq4R line 1, column 5-25␤»
16:07 p6eval pugs, rakudo 313b68, niecza v9-32-g380d891: OUTPUT«3␤»
16:08 PerlJam im2ee:  in bytes?  code points? characters?  what?  ;)
16:08 im2ee PerlJam, characters :)
16:08 pmurias im2ee: .chars for characters
16:08 im2ee pmurias++, thanks
16:08 im2ee :)
16:09 tadzik nom: say "ziąb".bytes
16:09 p6eval nom 313b68: OUTPUT«5␤»
16:10 * jnthn home
16:11 jnthn moritz: OK, will look over changelog
16:12 MayDaniel joined #perl6
16:13 sorear perl6: say "ziąb".bytes
16:13 p6eval niecza v9-32-g380d891: OUTPUT«8␤»
16:13 p6eval ..pugs: OUTPUT«decodeUTF8': bad data: '\261'␤5␤»
16:13 p6eval ..rakudo 313b68: OUTPUT«5␤»
16:19 bbkr niecza response is interesting...
16:20 tadzik niecza: say "ąśćźż".bytes
16:20 p6eval niecza v9-32-g380d891: OUTPUT«10␤»
16:20 tadzik niecza: say "ąśćźz".bytes
16:20 p6eval niecza v9-32-g380d891: OUTPUT«10␤»
16:20 tadzik as if it was in utf-16
16:21 bbkr indeed. whch is IMO not a bug, spec does not force internal string representation, or does it?
16:24 cognominal I see a file named SAFE.setting, I expected that would define the default in the command line and S19 seems to say so. So how to enable that safe mode
16:24 Kivutarrr joined #perl6
16:28 JimmyZ --setting=SAFE ?
16:28 mberends joined #perl6
16:28 im2ee b: say "abc".split(//);
16:28 p6eval b 1b7dd1: OUTPUT«===SORRY!===␤Null regex not allowed at line 22, near ");"␤»
16:28 im2ee So, how can i do this? :)
16:29 JimmyZ rakudo: say "abc".split(/''/);
16:29 p6eval rakudo 313b68: OUTPUT« a b c ␤»
16:29 im2ee Ehh.. Right, thanks. :)
16:29 im2ee JimmyZ++
16:29 JimmyZ rakudo: say "abc".split('');
16:29 p6eval rakudo 313b68: OUTPUT«a b c␤»
16:31 jnthn rakudo: say "abc".comb
16:31 p6eval rakudo 313b68: OUTPUT«a b c␤»
16:31 jnthn cognominal: --setting=SAFE, as JimmyZ++ mentioned
16:31 [Coke] +1 on renaming $c^H/ to something more verbosely ascii.
16:31 jnthn [Coke]: $/.CURSOR :)
16:31 * jnthn always types that rather than figuring out how to type...the other thing :)
16:32 [Coke] "why do we even HAVE that variable?"
16:32 [Coke] </emperor's new groove>
16:32 mls_ jnthn: is there a pirop to test if a PMC is a sixmodelobject?
16:33 JimmyZ there are two, but I forgot which is better
16:35 cognominal JimmyZ++, jnthn++
16:35 jnthn mls_: No, though pir::isa($obj, 'SixModelObject') will work. Where do you need to do taht though?
16:36 jnthn mls_: I've been trying quite hard to not ever do that so far.
16:36 mls_ I want to test if $!ex has been set in an exception.
16:36 mls_ There's probably a better way to do it
16:36 mls_ it get's initialized with Mu and later overwritten with the parrot exception
16:36 jnthn mls_: Does if $!ex { ... } not do it?
16:37 [Coke] I could use some manual uploads of rakudo smoke test files. (http://feather.perl6.nl:2653/rakudo)
16:37 jnthn nom: if pir::new('Exception') { say "yes" }
16:37 p6eval nom 313b68: OUTPUT«yes␤»
16:37 mls_ That didn't work for some reason
16:37 jnthn nom: if Mu { say "yes" }
16:37 p6eval nom 313b68:  ( no output )
16:37 jnthn mls_: Hm...it'd be good to know what the reason is ;)
16:37 mls_ Hmm. I'll investigate
16:37 jnthn mls_: It kinda should.
16:37 sorear tadzik: exactly, niecza uses utf-16 (doesn't handle supplemenaries very well at all yet, though)
16:37 jnthn Unless Exception PMC's get_bool is very interesting.
16:37 sorear #phasers in 53?
16:38 [Coke] (the rakudo_test_run.tar.gz file generated by "spectest_smolder")
16:39 alester joined #perl6
16:41 packetknife joined #perl6
16:41 [Coke] sorear: that sounds familiar. (report)
16:42 [Coke] sorear++
16:42 jnthn "Making Niecza work more like Rakudo" :P
16:42 * jnthn is happy to see some convergence there.
16:43 sorear "Hey, I can't be doing it better ALL the time" :P
16:43 sorear but yes, convergence++
16:44 jnthn :)
16:51 flussence (I hope uploading 50 of these tar.gz files doesn't break that server...)
16:53 [Coke] flussence: heh. it might.
16:53 mls_ jnthn: arhg, the code tricked me. $!ex works like it should
16:53 [Coke] please let me know if anything goes wonky. Obviously the GUI is just a shell at this point.
16:53 [Coke] I hate my $!ex
16:54 [Coke] flussence++
16:54 flussence it's giving me a server error now and again, most are going through though
16:54 [Coke] whoa, holy crap. thanks. ;)
16:54 [Coke] hopefully I can make some pretty pictures now ;)
16:56 flussence there you go, a bunch of files for commit IDs ~~ /^f/
16:58 mykhal joined #perl6
17:00 [Coke] ^f ?>
17:00 flussence I couldn't be bothered coming up with a clever way to upload only a few of them, and the files are all named $commit_id.tar.gz :)
17:11 mls_ jnthn: do you know of any problems with classes and eval?
17:12 jnthn mls_: Not off hand.
17:12 jnthn mls_: I fixed all the ones I did know about already. :)
17:13 mls_ In t/spec/S04-exception-handlers/catch.t line 106... there's an "eval '..."
17:13 mls_ I need to add a declaration of "class Naughty" into it so that the test works
17:14 mls_ Otherwise I get a "Missing block at line ..." error
17:14 jnthn mls_: That does sound a little adrift.
17:15 MayDaniel joined #perl6
17:17 TimToady phenny: tell masak you can't simultaneously argue that it's too complex and that it's easy to do with <?after>  :)
17:17 phenny TimToady: I'll pass that on when masak is around.
17:17 jnthn nom: class Foo { }; eval 'say Foo'
17:17 p6eval nom 313b68: OUTPUT«Foo()␤»
17:17 jnthn nom: { class Foo { } }; eval 'say Foo'
17:18 p6eval nom 313b68:  ( no output )
17:18 jnthn aha
17:19 diakopter lol "you are not TimToady who usually can ague everything both ways :)"
17:19 REPLeffect joined #perl6
17:19 TimToady I can argue things both ways, but masak++ can't. :)
17:20 jnthn mls_: I fear eval is making itself a fresh view of GLOBAL.
17:20 jnthn Hm, wonder what we're meant to do there.
17:20 jnthn :)
17:20 diakopter I'll ague you
17:20 mls_ yes, seems so.
17:20 mls_ ;)
17:21 jnthn Guess eval should just grab the GLOBAL already in effect.
17:21 TimToady eval can probably just use the existing GLOBAL; it doesn't have to make a GLOBALish to be linked later, like separately compiled units need
17:21 buubot_backup TimToady: ERROR: "use" not allowed in expression at (eval 20) line 1, at end of line syntax error at (eval 20) line 1, near "just use the "
17:22 jnthn TimToady: wfm
17:22 TimToady eval die
17:22 buubot_backup TimToady: ERROR: Died at (eval 20) line 1.
17:22 jnthn eval unlink $0 # :P
17:22 buubot_backup jnthn: 0
17:23 diakopter eval "alive"
17:23 buubot_backup diakopter: alive
17:24 diakopter eval: use v6;
17:24 buubot_backup diakopter: ERROR: Perl v6.0.0 required--this is only v5.14.1, stopped at (eval 20) line 1. BEGIN failed--compilation aborted at (eval 20) line 1.
17:25 Chillance joined #perl6
17:28 mls_ ok, current state of exception patch: https://gist.github.com/1232725
17:28 mls_ I've resurrected my old rethrow_skipnextctx patch (the one pm didn't like)
17:29 mls_ seems to work well, it doesn't catch it's own exceptions and CATCH works like iy should
17:29 mls_ (i.e. when {} and the automatic rethrow works)
17:30 mls_ I'm currently playing with die() and exception payloads.
17:30 mls_ TimToady: did you backlog the discussion about exception object creation
17:31 mls_ S04-exception-handlers/catch.t contains 'die Naughty("error")'. Is that some old relict or supposed to work?
17:31 sorear jnthn: er.  { class Foo { } }; eval 'say Foo' # SHOULD fail, imo
17:32 mberends joined #perl6
17:32 sorear jnthn: within the eval, GLOBAL::Foo would be valid, but Foo is a lexical alias and only valid within the braces
17:33 dalek rakudo/nom: a979ded | jnthn++ | docs/ChangeLog:
17:33 dalek rakudo/nom: Add some ChangeLog entries.
17:33 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/a979ded1e6
17:33 jnthn sorear: I think for packages we're allowed to go looking in GLOBAL too
17:33 jnthn sorear: Sub dispatch is lexical only
17:33 jnthn sorear: But the packages can be resolved by looking in GLOBAL at compile time.
17:33 mls_ perl6: { class Foo { } } ; class Foo {}
17:33 p6eval niecza v9-32-g380d891: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤â�¤Two definitions found for symbol ::GLOBAL::Fooâ�¤â�¤  first at /tmp/Vbk7JocepZ line 1â�¤  second at /tmp/Vbk7JocepZ line 1 at /tmp/Vbk7JocepZ line 1:â�¤------> [32m{ class Foo { } } ; class Foo [33mâ��[31m{}[0mâ�¤â�¤Nominal type check …
17:33 p6eval ..pugs:  ( no output )
17:33 p6eval ..rakudo 313b68: OUTPUT«===SORRY!===␤Illegal redeclaration of class 'Foo' at line 1, near "{}"␤»
17:34 jnthn sorear: TimToady may feel differently of course. :)
17:34 jnthn std: { class Foo { } }; Foo.new
17:34 p6eval std c22b2ee: OUTPUT«ok 00:01 118m␤»
17:34 jnthn That comes back as OK in STD though.
17:34 sorear jnthn: I like to think of dispatch and name resolution as orthogonal things
17:34 jnthn Which is what I was going on there.
17:34 sorear Sub dispatch starts with a Sub or MultiSub object, not a Str
17:35 jnthn sorear: That's an excessively restricted view.
17:35 sorear wha?
17:35 jnthn Method dispatch certainly starts (v-table optimizations aside) with a string method name.
17:35 sorear yes but that's method dispatch
17:36 masak joined #perl6
17:36 masak #phasers in 128?
17:36 phenny masak: 17:17Z <TimToady> tell masak you can't simultaneously argue that it's too complex and that it's easy to do with <?after>  :)
17:36 jnthn masak: #phasers NOW!
17:36 sorear masak: -6, iirc
17:36 masak o.O
17:36 * masak is so totally unprepared!
17:36 jnthn Or so I was told ;)
17:36 jnthn masak: Just make stuff up :P
17:37 mls_ afk -> home... (enjoy phasers!)
17:37 masak what kind of starting time is that? UTC 17:46?
17:37 sorear 1730
17:37 masak ah.
17:37 jnthn mls_: Thanks...will look over the patch :)
17:37 mls_ work in progress, mind you
17:38 mls_ thanks
17:39 sorear jnthn: it seems to me that foo(1,2,3) should always mean the same as my $v = &foo; $v.(1,2,3)
17:39 jnthn sorear: I don't disagree :)
17:39 sorear I don't like the idea that dispatch influences name resolution
17:40 jnthn I'm really not sure what you're getting at :/
17:40 masak TimToady: "too complex" as in "too complex a feature to provide in the grammar engine". the fact that it's easy to do with <?after> just makes the complex feature less necessary.
17:40 sorear 10:34 < sorear> Sub dispatch starts with a Sub or MultiSub object, not a Str
17:40 sorear 10:35 < jnthn> sorear: That's an excessively restricted view.
17:40 sorear I'm trying to figure out what your view is
17:41 jfried joined #perl6
17:41 jnthn sorear: I think it's fair to include looking up &foo as part of the process called "dispatch". But I'm not sure it's an important distinction really.
17:47 masak TimToady: but yeah, I see what you mean. maybe it's trivial to map from ** -$N to <?after>. in which case I simply won't care about the feature :P
17:51 mj41 joined #perl6
17:55 moritz nqp: say 'foo'.encoding
17:55 p6eval nqp: OUTPUT«Confused at line 1, near "say 'foo'."␤current instr.: 'nqp;HLL;Grammar;panic' pc 23698 (src/stage2/gen/NQPHLL.pir:6361) (src/stage2/gen/NQPHLL.pm:329)␤»
17:55 moritz nqp: say('foo'.encoding)
17:55 p6eval nqp: OUTPUT«Method 'encoding' not found for invocant of class 'String'␤current instr.: '_block1000' pc 36 ((file unknown):36) (/tmp/Y8x1oHyWHs:1)␤»
17:56 Kivutarrr left #perl6
18:01 frhodes_ joined #perl6
18:06 mkramer joined #perl6
18:10 moritz nqp: set__vPII(1, 1, 1, 1)
18:10 p6eval nqp: OUTPUT«Could not find sub set__vPII␤current instr.: '_block1000' pc 33 ((file unknown):34) (/tmp/mnpyek54YG:1)␤»
18:11 moritz nqp: pir::set__vPII(1, 1, 1, 1)
18:11 p6eval nqp: OUTPUT«error:imcc:The opcode 'set_p_i_i_i' (set<4>) was not found. Check the type and number of the arguments␤     in file '(file unknown)' line 45␤»
18:11 moritz nqp: pir::set__vPII(1, 1, 1)
18:11 p6eval nqp: OUTPUT«error:imcc:The opcode 'set_p_i_i' (set<3>) was not found. Check the type and number of the arguments␤       in file '(file unknown)' line 40479050␤»
18:12 [Coke] flussence: did you write a script to do the upload?
18:12 [Coke] (back from meetings)
18:13 im2ee Ehh, i forger - what i should use instead of # in perl5 ( to know last index of array)? :)
18:13 jnthn .end
18:13 im2ee jnthn++, thanks. :)
18:14 flussence [Coke]: just a curl one-liner
18:14 packetknife joined #perl6
18:14 [Coke] sweet
18:16 Trashlord joined #perl6
18:16 colomon doh, missed #phasers
18:17 moritz colomon: not yet
18:19 colomon is it in 11 min?
18:19 tadzik I thought I'm late
18:19 sorear colomon: it started 49 minutes ago but it's not quite over
18:20 PerlJam #phasers starts at 1730 UTC, it's currently 1820
18:21 * colomon now has to track EDT, Newfoundland time, and UTC on Wednesdays.  :)
18:21 sorear Newfoundland time, why?
18:21 sorear and is tracking UTC on Wednesdays that much harder than tracking it on Tuesdays?
18:23 colomon sorear: music lesson with a Newfoundlander via Skype.
18:27 am0c joined #perl6
18:28 [Coke] does rakudo transcode a lot?
18:28 [Coke] #parrot is asking.
18:28 [Coke] .. music lessons over skype? huh.
18:30 colomon [Coke]: works quick nicely
18:30 tadzik interesting
18:30 colomon *quite
18:34 kaleem joined #perl6
18:36 * [Coke] wonders if calling his 14 year old nemo is going to stick. (broke his collarbone this week, so he has a gimpy arm.)
18:36 TimToady masak: re http://irclog.perlgeek.de/perl6/2011-09-21#i_4458695, $op.$ck is hard ref only, while $op."$ck" is soft ref only
18:37 am0c joined #perl6
18:37 TimToady s/soft/sym/
18:39 masak ok. makes sense.
18:44 birdwindupbird joined #perl6
18:45 ingy tadzik: it didn't!
18:45 tadzik eek
18:45 donri joined #perl6
18:46 ingy moritz: I had a great idea. Pegex::Compiler::Emitter::P6Rules
18:46 ingy should be trivial to write
18:48 wamba joined #perl6
18:48 pmichaud sorry I've missed #phasers -- I was unexpectedly commandeered for the afternoon :-|
18:55 [Coke] pmichaud: o/ . o O (Hope everything's OK!)
18:55 pmichaud things are overall fine; just very hectic around the house at the moment
19:10 moritz rakudo: say (102, 111, 111).chrs
19:10 p6eval rakudo a979de: OUTPUT«Method 'chrs' not found for invocant of class 'Parcel'␤  in <anon> at /tmp/xX_DUeeBSW:1␤  in <anon> at /tmp/xX_DUeeBSW:1␤␤»
19:10 moritz rakudo: say (102, 111, 111).list.chrs
19:10 p6eval rakudo a979de: OUTPUT«foo␤»
19:11 moritz nqp: say(pir::find_encoding__is('UTF-8'))
19:11 p6eval nqp: OUTPUT«encoding 'UTF-8' not found␤current instr.: '_block1000' pc 24 ((file unknown):34) (/tmp/EB3mumY1_0:1)␤»
19:11 moritz nqp: say(pir::find_encoding__is('utf-8'))
19:11 p6eval nqp: OUTPUT«encoding 'utf-8' not found␤current instr.: '_block1000' pc 24 ((file unknown):34) (/tmp/5FscBLnqSf:1)␤»
19:11 moritz nqp: say(pir::find_encoding__is('utf8'))
19:11 p6eval nqp: OUTPUT«3␤»
19:27 pernatiy joined #perl6
19:28 masak rakudo: my @dict = <a b c>; say (@dict X @dict X @dict)».join
19:28 p6eval rakudo a979de: OUTPUT«a a a a a b a a c a b a a b b a b c a c a a c b a c c b a a b a b b a c b b a b b b b b c b c a b c b b c c c a a c a b c a c c b a c b b c b c c c a c c b c c c␤»
19:28 masak hm.
19:28 masak rakudo: my @dict = <a b c>; say .join for @dict X @dict X @dict
19:28 p6eval rakudo a979de: OUTPUT«a␤a␤a␤a␤a␤b␤a␤a␤c␤a␤b␤a␤a␤b␤b␤a␤b␤c␤a␤c␤a␤a␤c␤b␤a␤c␤c␤b␤a␤a␤b␤a␤b␤b␤a␤c␤b␤b␤a␤b␤b␤b␤b␤b␤c␤b␤c␤a␤b␤c␤b␤b␤c␤c␤c␤a␤a␤c␤a␤b␤c␤a␤c␤c␤b␤a␤c␤b␤b␤c␤b␤c␤c␤c␤a␤c␤c␤b␤c␤c␤c␤»…
19:28 masak ah.
19:29 TimToady you're looking for lol maybe?
19:29 masak seems like.
19:29 TimToady by the evidence, lol seems to be HHF
19:30 masak :/
19:31 TimToady if someone would just implement .tree, it'd be LHF :)
19:31 moritz .tree?
19:32 TimToady S02:4553
19:33 TimToady might be misnamed
19:33 masak rakudo: multi combs(@, 0) { "" }; multi comb { combs(@^dict, $^n - 1) X~ @dict }; .say for combs(<a b c>, 4)
19:33 p6eval rakudo a979de: OUTPUT«No applicable candidates found to dispatch to for 'combs'. Available candidates are:␤:(Positional, Int)␤␤  in sub combs at /tmp/fqPfCLCp36:1␤  in <anon> at /tmp/fqPfCLCp36:1␤  in <anon> at /tmp/fqPfCLCp36:1␤␤»
19:33 masak rakudo: multi combs(@, 0) { "" }; multi combs { combs(@^dict, $^n - 1) X~ @dict }; .say for combs(<a b c>, 4)
19:33 p6eval rakudo a979de: OUTPUT«aaaa␤aaab␤aaac␤aaba␤aabb␤aabc␤aaca␤aacb␤aacc␤abaa␤abab␤abac␤abba␤abbb␤abbc␤abca␤abcb␤abcc␤acaa␤acab␤acac␤acba␤acbb␤acbc␤acca␤accb␤accc␤baaa␤baab␤baac␤baba␤babb␤babc␤baca␤bacb␤bacc␤bbaa␤bbab␤bbac␤bbba␤bbbb␤bbbc␤bbca␤bbcb␤bbcc␤bcaa␤bcab␤bcac␤bcba␤bcbb␤bcbc␤bcca␤bccb␤…
19:34 masak \o/
19:34 im2ee \o/
19:34 masak im2ee: want me to walk you through it?
19:34 TimToady rakudo: my $x = "aaaa"; .say for $x++
19:34 p6eval rakudo a979de: OUTPUT«aaaa␤»
19:34 im2ee masak, wait, i'm reading :)
19:34 masak ok :)
19:34 TimToady rakudo: my $x = "aaaa"; .say for $x ... *
19:35 p6eval rakudo a979de: OUTPUT«aaaa␤Decrement out of range␤  in method pred at src/gen/CORE.setting:2706␤  in sub coro at src/gen/CORE.setting:3821␤  in method reify at src/gen/CORE.setting:3790␤  in method reify at src/gen/CORE.setting:3594␤  in method reify at src/gen/CORE.setting:3594␤  in me…
19:35 TimToady heh
19:35 TimToady rakudo: my $x = "aaaa"; .say for $x ... 'zzzz'
19:35 im2ee masak, yes.. Could You?
19:35 p6eval rakudo a979de: OUTPUT«(timeout)»
19:35 masak im2ee: gladly :)
19:35 TimToady something looks unlazy
19:35 masak im2ee: so, 'multi' means that I can have several subs with the same name, but different signatures.
19:36 masak im2ee: here, I have two of them. the first takes an array and the Int 0.
19:36 TimToady rakudo: $_ = "aaaa"; .++.say while 1
19:36 p6eval rakudo a979de: OUTPUT«===SORRY!===␤Method 'unshift' not found for invocant of class 'Undef'␤»
19:36 masak im2ee: the second has an implicit signature. that's what the '^' characters are doing.
19:36 TimToady o_O
19:37 masak im2ee: now, this is a simple recursion. the first multi represents the base case: all combinations of length 0 of some alphabet is the empty string.
19:37 TimToady b: $_ = "aaaa"; .++.say while 1
19:37 p6eval b 1b7dd1: OUTPUT«===SORRY!===␤Method 'unshift' not found for invocant of class 'Undef'␤»
19:37 TimToady niecza: $_ = "aaaa"; .++.say while 1
19:37 p6eval niecza v9-32-g380d891: OUTPUT«(timeout)aaaa␤aaab␤aaac␤aaad␤aaae␤aaaf␤aaag␤aaah␤aaai␤aaaj␤aaak␤aaal␤aaam␤aaan␤aaao␤aaap␤aaaq␤aaar␤aaas␤aaat␤aaau␤aaav␤aaaw␤aaax␤aaay␤aaaz␤aaba␤aabb␤aabc␤aabd␤aabe␤aabf␤aabg␤aabh␤aabi␤aabj␤aabk␤aabl␤aabm␤aabn␤aabo␤aabp␤aabq␤aabr␤aabs␤aabt␤aabu␤aabv␤aabw␤aab…
19:38 moritz https://gist.github.com/1233070 # fake Buf class for nom, for your consideration.
19:38 TimToady pugs: $_ = "aaaa"; .++.say while 1
19:38 masak im2ee: to get all combinations of strings of length $n, just generate all combinations of length one character shorter, and then append all possible characters from the dictionary to all possible such strings.
19:38 p6eval pugs: OUTPUT«(timeout)aaaa␤aaab␤aaac␤aaad␤aaae␤aaaf␤aaag␤aaah␤aaai␤aaaj␤aaak␤aaal␤aaam␤aaan␤aaao␤aaap␤aaaq␤aaar␤aaas␤aaat␤aaau␤aaav␤aaaw␤aaax␤aaay␤aaaz␤aaba␤aabb␤aabc␤aabd␤aabe␤aabf␤aabg␤aabh␤aabi␤aabj␤aabk␤aabl␤aabm␤aabn␤aabo␤aabp␤aabq␤aabr␤aabs␤aabt␤aabu␤aabv␤aabw␤aabx␤aaby␤aabz␤aaca␤…
19:38 TimToady looks like rakudo has a long-standing bug here...
19:38 masak im2ee: the 'X~' operator means "concatenate all against all".
19:39 masak im2ee: is this making any sense?
19:39 zby_home joined #perl6
19:40 TimToady rakudo: $_ = "aaaa"; $_++.say while 1
19:40 moritz I'm sure tehre's a advent claendar post that explains meta ops in more details
19:40 p6eval rakudo a979de: OUTPUT«(timeout)aaaa␤aaab␤aaac␤aaad␤aaae␤aaaf␤aaag␤aaah␤aaai␤aaaj␤aaak␤aaal␤aaam␤aaan␤aaao␤aaap␤aaaq␤aaar␤aaas␤aaat␤aaau␤aaav␤aaaw␤aaax␤aaay␤aaaz␤aaba␤aabb␤aabc␤aabd␤aabe␤aabf␤aabg␤aabh␤aabi␤aabj␤aabk␤aabl␤aabm␤aabn␤aabo␤aabp␤aabq␤aabr␤aabs␤aabt␤aabu␤aabv␤aabw␤aabx␤aaby␤a…
19:40 im2ee masak, it is awesome! It's clear now. but i have some questions. :)
19:40 masak moritz: at least one.
19:40 im2ee Can I? :)
19:40 Woodi do sub with optional params is slower then with declared ?
19:40 TimToady I guess rakudo doesn't like .++
19:40 masak im2ee: yes, go ahead :)
19:41 masak rakudo: $_ = 4; .++; .say
19:41 p6eval rakudo a979de: OUTPUT«===SORRY!===␤Method 'unshift' not found for invocant of class 'Undef'␤»
19:41 * masak submits rakudobug
19:42 tadzik Woodi: what do you mean by "declared"?
19:42 im2ee So. my program goes from a up to ccc :)
19:42 am0c joined #perl6
19:42 masak oh!
19:42 im2ee a, b, c, aa, ab, ac, ba,bb,bc and so on
19:42 masak I see.
19:42 Woodi known: sub a( $p1, $p2 )
19:42 tadzik and, I don't think it's what you should think about, even given the current performance on most of the implementations
19:42 im2ee So it's something else, but it's awesome! :)
19:42 im2ee b: say "aaaa".."aaad";
19:42 perlygatekeeper joined #perl6
19:42 p6eval b 1b7dd1: OUTPUT«aaaaaaabaaacaaad␤»
19:43 im2ee b: say "aaaa".."aabb";
19:43 p6eval b 1b7dd1: OUTPUT«aaaaaaabaaacaaadaaaeaaafaaagaaahaaaiaaajaaakaaalaaamaaanaaaoaaapaaaqaaaraaasaaataaauaaavaaawaaaxaaayaaazaabaaabb␤»
19:43 tadzik seems that there's pretty many of us, Poles on this channel these days
19:43 masak rakudo: multi combs(@, 0) { "" }; multi combs { combs(@^dict, $^n - 1) X~ @dict }; (.say for combs(<a b c>, $_)) for 1..4
19:43 p6eval rakudo a979de: OUTPUT«a␤b␤c␤aa␤ab␤ac␤ba␤bb␤bc␤ca␤cb␤cc␤aaa␤aab␤aac␤aba␤abb␤abc␤aca␤acb␤acc␤baa␤bab␤bac␤bba␤bbb␤bbc␤bca␤bcb␤bcc␤caa␤cab␤cac␤cba␤cbb␤cbc␤cca␤ccb␤ccc␤aaaa␤aaab␤aaac␤aaba␤aabb␤aabc␤aaca␤aacb␤aacc␤abaa␤abab␤abac␤abba␤abbb␤abbc␤abca␤abcb␤abcc␤acaa␤acab␤acac␤acba␤acbb␤acbc␤acca…
19:43 masak im2ee: there :P
19:43 Woodi :) but my Righe Alt not working as expected here :)
19:43 masak fixed it.
19:44 im2ee masak, so.. My question is. Could You show me some examples of how works ^?
19:44 masak im2ee: sure!
19:44 im2ee masak, fantastic. :)
19:44 masak rakudo: .say for <a b c> X~ <d e f>
19:44 p6eval rakudo a979de: OUTPUT«ad␤ae␤af␤bd␤be␤bf␤cd␤ce␤cf␤»
19:44 tadzik im2ee: I see you capitalizing You, as you'd do with Cię :)
19:44 masak im2ee: look at that output.
19:44 masak im2ee: do you see how it works?
19:44 im2ee tadzik, right :)
19:45 tadzik im2ee: been there, done that too :P
19:45 masak rakudo: .say for "OH", "AH" X~ " " X~ "HAI", "NOES"
19:45 p6eval rakudo a979de: OUTPUT«OH HAI␤OH NOES␤AH HAI␤AH NOES␤»
19:45 im2ee masak, i see, but why .say instead of say? :)
19:45 masak im2ee: $_.say
19:45 im2ee Oh! right!
19:45 masak im2ee: in Perl 5, you just go "say".
19:45 masak in Perl 6, you have to be more exact :)
19:45 masak we don't like to do implicit $_
19:46 im2ee tadzik, is it wrong here? :)
19:46 masak well, except in the sense of .say :P
19:46 tadzik im2ee: seems so, English people don't capitilize Ci or Cię
19:46 tadzik seemed weird to me too ;)
19:46 tadzik I think one of my blogs posts is still full of those
19:46 masak im2ee: it's technically correct to say "You", but it's neither common nor necessary.
19:47 masak the familiarity it projects isn't called for, more or less.
19:47 masak er, s/familiarity/formality/
19:47 im2ee masak, so, i understand .say. Whats next? :)
19:47 wallberg joined #perl6
19:47 tadzik http://ttjjss.wordpress.com/2010/08/09/so-you-want-to-write-a-perl-6-module/ this one :P
19:47 masak im2ee: placeholder variables, probably.
19:47 im2ee I know how works X and Z operators.
19:48 masak rakudo: sub foo($a, $b) { say "$a is $b!" }; foo "cake", "tasty"
19:48 p6eval rakudo a979de: OUTPUT«cake is tasty!␤»
19:48 masak rakudo: sub foo { say "$^a is $^b!" }; foo "cake", "tasty"
19:48 p6eval rakudo a979de: OUTPUT«cake is tasty!␤»
19:48 masak im2ee: so you see, I can put the parameters to &foo "inside".
19:49 masak they're picked up and populated alphabetically.
19:49 im2ee rakudo: sub foo { say "$^a is $^b and $^c" }; foo "cake", "tasty", "so on";
19:49 p6eval rakudo a979de: OUTPUT«cake is tasty and so on␤»
19:49 masak :)
19:49 masak rakudo: sub foo { say "$^c is $^a and $^b" }; foo "cake", "tasty", "so on";
19:49 p6eval rakudo a979de: OUTPUT«tasty is cake and so on␤»
19:49 masak o.O
19:49 Woodi tadzik: and where to put stuf like scripts for performance testing (but not to install like in bin) ?
19:49 * masak submits rakudobug
19:50 TimToady rakudo: sub foo { say "$^first is $^second and $^third" }; foo "cake", "tasty", "so on";
19:50 p6eval rakudo a979de: OUTPUT«cake is tasty and so on␤»
19:50 tadzik Woodi: wherever you want them. Unknown directories, like 'donkey' will simply be ignored
19:50 Woodi k, just will be skipped
19:51 tadzik also, the article is a bit outdated, you use META.info these days
19:51 im2ee masak, you used $^dictonary and $^n in You one liner :)
19:51 im2ee So i can use any name for them?
19:51 jnthn rakudo: ({ say "$^b $^a" })(1, 2);
19:51 p6eval rakudo a979de: OUTPUT«2 1␤»
19:51 TimToady rakudo: sub foo { say "$^first is $^second and $^third" }; foo "cake", "tasty", "so on";
19:51 p6eval rakudo a979de: OUTPUT«cake is tasty and so on␤»
19:51 masak im2ee: yes, as long as the order is right.
19:52 jnthn rakudo: ({ say "$^c $^b $^a" })(1, 2, 3);
19:52 p6eval rakudo a979de: OUTPUT«3 2 1␤»
19:52 jnthn rakudo: ({ say "$^b $^a $^c" })(1, 2, 3);
19:52 p6eval rakudo a979de: OUTPUT«2 1 3␤»
19:52 im2ee masak, alphabetic order, right?
19:52 jnthn Yup
19:52 TimToady unicodabetical, but yeah
19:52 im2ee Ok, so it's clear i think.
19:53 jnthn rakudo: ({ say "$^c $^a $^b" })(1, 2, 3);
19:53 p6eval rakudo a979de: OUTPUT«2 1 3␤»
19:53 im2ee rakudo: say <a b c> Z <d e f>;
19:53 p6eval rakudo a979de: OUTPUT«a d b e c f␤»
19:53 im2ee rakudo: say <a b c> X <d e f>;
19:53 p6eval rakudo a979de: OUTPUT«a d a e a f b d b e b f c d c e c f␤»
19:53 jnthn er...huh.
19:54 TimToady * vs **
19:54 masak jnthn: yeah. submitting that one now.
19:54 TimToady is .++ in there yet?
19:55 masak aye.
19:55 masak want the URL?
19:55 TimToady nope :)
19:55 masak :)
19:55 TimToady I just like bugging you
19:55 jnthn .++ ?
19:55 masak oh, come on!
19:55 masak :P
19:55 TimToady rakudo: $_ = "aaaa"; .++.say while 1
19:56 p6eval rakudo a979de: OUTPUT«===SORRY!===␤Method 'unshift' not found for invocant of class 'Undef'␤»
19:56 jnthn rakudo: $_ = "aaaa"; $_.++.say while 1
19:56 p6eval rakudo a979de: OUTPUT«Could not find sub &postfix:<.>␤  in <anon> at /tmp/572iM_2DAt:1␤  in <anon> at /tmp/572iM_2DAt:1␤␤»
19:56 jnthn hm
19:56 jnthn b: $_ = "aaaa"; $_.++.say while 1
19:56 p6eval b 1b7dd1: OUTPUT«Could not find sub &postfix:<.>␤  in main program body at line 22:/tmp/w_RVbwa2Qw␤»
19:56 jnthn ah, not a regression.
19:57 TimToady a transgression :P
19:57 im2ee Hmm, what does .++? ;>
19:57 TimToady pugs: $_ = "aaaa"; .++.say while 1
19:57 p6eval pugs: OUTPUT«(timeout)aaaa␤aaab␤aaac␤aaad␤aaae␤aaaf␤aaag␤aaah␤aaai␤aaaj␤aaak␤aaal␤aaam␤aaan␤aaao␤aaap␤aaaq␤aaar␤aaas␤aaat␤aaau␤aaav␤aaaw␤aaax␤aaay␤aaaz␤aaba␤aabb␤aabc␤aabd␤aabe␤aabf␤aabg␤aabh␤aabi␤aabj␤aabk␤aabl␤aabm␤aabn␤aabo␤aabp␤aabq␤aabr␤aabs␤aabt␤aabu␤aabv␤aabw␤aabx␤aaby␤aabz␤aaca␤…
19:58 benabik .++ looks odd to me.  It seems to mean that ++ is a method.
19:58 benabik Which I can dig, I've used Scala.
19:58 TimToady any postfix may be written with a dot
19:58 masak im2ee: $_++
19:58 TimToady (except alphabetic ones)
19:59 masak TimToady: instead of 'while 1', there should be a statement-modifying 'loop' :P
19:59 TimToady no
19:59 masak prolly not.
19:59 jnthn Just call it "forever"
19:59 masak ooh
19:59 jnthn $_++ forever;
20:00 masak there will be modules!
20:00 TimToady someone needs to write macros
20:00 jnthn beer() forever;
20:00 PerlJam heh
20:00 masak -Ofun forever;
20:00 benabik Ah.  methods have to start with <alpha>, so .++ can never be a method.  (Yes?)
20:01 mkramer left #perl6
20:01 TimToady correct, and .i is a method, not the i postfix
20:02 TimToady perl6: my $real = 42; say $real\i
20:02 p6eval niecza v9-32-g380d891: OUTPUT«0+42i␤»
20:02 p6eval ..rakudo a979de: OUTPUT«0 + 42i␤»
20:02 p6eval ..pugs: OUTPUT«*** ␤    Unexpected "i"␤    expecting "(" or "."␤    at /tmp/7vZDu5oWr8 line 1, column 26␤»
20:02 TimToady that works though
20:02 benabik I've been doing too much set theory…  I read that as "set difference of real and i"
20:04 TimToady .oO(the set of all subsets of set theory that are too much...)
20:04 tadzik what is that backslash doing in there?
20:04 masak rakudo: multi fac(0) { 1 }; multi fac(Int $n) { $n * fac $n - 1 }; say fac 5
20:04 p6eval rakudo a979de: OUTPUT«120␤»
20:04 TimToady it's very short unspace
20:04 tadzik I see
20:04 jnthn literally un-
20:04 benabik nom: my $real = 42; say $real i # does this parse?
20:04 tadzik un''
20:04 p6eval nom a979de: OUTPUT«===SORRY!===␤Confused at line 1, near "say $real "␤»
20:05 TimToady perl6: my $real = 42; say $real\       i
20:05 benabik Didn't think so.
20:05 p6eval niecza v9-32-g380d891: OUTPUT«0+42i␤»
20:05 p6eval ..rakudo a979de: OUTPUT«0 + 42i␤»
20:05 p6eval ..pugs: OUTPUT«*** ␤    Unexpected "i"␤    expecting "."␤    at /tmp/vT6E4da7kU line 1, column 33␤»
20:05 benabik Poor pugs.  I'm seeing more and more errors from it these days.
20:05 TimToady spec rot :)
20:06 masak yeah. it's a red queen situation.
20:09 TimToady nap &
20:10 masak rakudo: say (<a b c> X <d e f>).perl
20:10 p6eval rakudo a979de: OUTPUT«(("a", "d"), ("a", "e"), ("a", "f"), ("b", "d"), ("b", "e"), ("b", "f"), ("c", "d"), ("c", "e"), ("c", "f")).list␤»
20:10 masak rakudo: say (<a b c> X~ <d e f>).perl
20:10 p6eval rakudo a979de: OUTPUT«("ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf").list␤»
20:14 benabik masak: red queen?
20:15 masak benabik: http://en.wikipedia.org/wiki/Red_Queen%27s_Hypothesis
20:16 benabik Ooh, wikipedia.  I don't need to get work done this afternoon…  Wait, I do.  Drat.
20:16 masak :P
20:16 benabik masak++: Hadn't heard that one.  Very interesting.
20:16 masak benabik: basically, if you stand still, you lose the race.
20:16 masak because everything else is moving forwards.
20:17 masak oh dang, that was a really bad explanation :P
20:17 benabik masak: I did skim it.  That's just my first response to WP links.  I get lost in encyclopedias.
20:17 masak you have to *run* just to keep your place. that's better.
20:18 masak this is why trees are tall, for example. because all the other trees are.
20:18 jnthn oh meh
20:18 * colomon shakes his head at these kids today who don't know their Lewis Carroll.  ;)
20:18 tadzik well
20:18 benabik Red Queen's Hypothesis does lead to Philosophy.
20:18 tadzik if you're eating all the time, you get fat
20:18 masak colomon: I could've found the quote, true.
20:18 benabik colomon: I've read it, it just doesn't pop to mind when I'm doing networking homework.
20:18 jnthn Turns out iterating an RPA and changing it at the same time causes issues.
20:22 jnthn Like...being given back an undef instead of the expected value... :/
20:22 jnthn It then auto-vivs, gets an empty variable name, and thus the placeholder insert gets screwed up.
20:23 * jnthn just changes it to use splice
20:23 benabik modifying collections you're iterating on is generally hazardous.
20:23 jnthn yeah
20:23 jnthn It's more efficient the splice way.
20:23 masak rakudo: my &c = { return "" if !$^a; @^d X~ c $a - 1, @d }; (.say for .&c <a b c>) for ^5
20:23 p6eval rakudo a979de: OUTPUT«===SORRY!===␤Confused at line 1, near "(.say for "␤»
20:24 masak rakudo: my &c = { return "" if !$^a; @^d X~ c $a - 1, @d }; (.say for .&c: <a b c>) for ^5
20:24 p6eval rakudo a979de: OUTPUT«Too many positional parameters passed; got 4 but expected 2␤  in block <anon> at /tmp/bmCTWPHqtY:1␤  in method dispatch:<var> at src/gen/CORE.setting:670␤  in block <anon> at /tmp/bmCTWPHqtY:1␤  in method reify at src/gen/CORE.setting:3690␤  in method reify at src/…
20:24 masak rakudo: my &c = { return "" if !$^a; @^d X~ c $a - 1, @d }; (.say for .&c(<a b c>)) for ^5
20:24 p6eval rakudo a979de: OUTPUT«Too many positional parameters passed; got 4 but expected 2␤  in block <anon> at /tmp/WqAqG1KJ9F:1␤  in method dispatch:<var> at src/gen/CORE.setting:670␤  in block <anon> at /tmp/WqAqG1KJ9F:1␤  in method reify at src/gen/CORE.setting:3690␤  in method reify at src/…
20:24 masak rakudo: my &c = { return "" if !$^a; @^d X~ c $a - 1, @d }; (.say for .&c([<a b c>])) for ^5
20:24 p6eval rakudo a979de: OUTPUT«␤␤␤␤␤»
20:24 masak hm.
20:24 jnthn o.O
20:24 * benabik wonders if he can update Colloquy's style CSS to make p6eval's text smaller for less scrolling.
20:25 tadzik oh, nqp doesn't build
20:26 jnthn Just built for me.
20:26 tadzik on the fresh parrot?
20:26 jnthn yeah
20:26 tadzik get_pointer() not implemented in class 'GLOBALish'
20:26 benabik parrot merged a branch that breaks NQP.  the kill-useless-defaults branch in nqp.git fixes it.
20:26 tadzik odd
20:26 jnthn tadzik: Oh, by fresh you mean, bleeding edge?
20:26 tadzik oh, thanks
20:26 jnthn Not release one?
20:26 tadzik jnthn: yep
20:26 jnthn Right, but we don't apply that pull request just yet.
20:27 benabik Release is fine.  There was a small batch of "we can break things now!" post-release.  :-D
20:27 jnthn As we probably want the compiler release against the Parrot one.
20:27 tadzik troo
20:30 dalek rakudo/nom: 3b1fe55 | jnthn++ | src/Perl6/Actions.pm:
20:30 dalek rakudo/nom: Fix placeholder parameter sorting bug.
20:30 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/3b1fe5500d
20:30 jnthn masak: ^
20:30 jnthn If somebody could do a test and close the ticket... :)
20:31 masak jnthn++
20:32 masak jnthn: so the bug was iterating (with while) and modifying at the same time?
20:32 masak because otherwise the code looks identical!
20:33 mykhal joined #perl6
20:34 jnthn masak: Doing shit in a for loop
20:34 jnthn ...
20:34 jnthn doing SHIFT in a for loop
20:35 tadzik jnthn: you think you'll be able to convince anybody that you didn't write that intentionally :P
20:35 jnthn tadzik: Probably freudian :P
20:36 tadzik :P
20:36 * jnthn typo'd freudian at the first attempt :S
20:36 benabik froodian slip = falling down, but looking cool while you doo.
20:36 benabik do.  Bah.
20:36 jnthn :)
20:37 masak jnthn: New explanation for structural programming: "Doing shit in a for loop" :P
20:37 masak benabik: A Freudian slip is saying one thing but meaning your mother.
20:38 tadzik doo
20:38 jnthn .oO( If I'd typo'd *any other word* in that sentence... )
20:38 jnthn oh
20:38 jnthn Rakudo day tomorrow
20:38 jnthn Anybody got anything they especially want me to look at?
20:38 tadzik jnthn: we will sit silent because there'd be no topic for a conversation? :)
20:38 tadzik jnthn: Buf
20:38 tadzik ?
20:39 jnthn Ah
20:39 jnthn tadzik: pmichaud++ has a plan for Buf. I'm happy to task steal it. But I want to find out what he had in mind first. I may be able to do that tomorrow though.
20:39 tadzik okay
20:40 pmichaud joined #perl6
20:40 hugme joined #perl6
20:40 jrockway_ joined #perl6
20:40 tadzik I don't have anything blocking on this, I'm just pointing things out :)
20:40 tadzik jnthn: how about blizkost/zavolaj?
20:40 jnthn tadzik: Yeah, I should really look at zavolaj soon.
20:41 jnthn Actually that'd be quite a decent thing to look at tomorrow.
20:41 tadzik as for blizkost, I maybe mean more like :from<parrot> than anything else
20:41 tadzik so basically, auto-sixmodelizing stuff I suppose
20:42 jnthn hm
20:42 jnthn Yeah
20:42 jnthn There's some tricky design stuff to do there, I suspect.
20:42 tadzik I was thinking about that some time ago
20:42 tadzik I believe turning every single thing passing in into a full-blown Perl 6 object could be quite slowish
20:43 jnthn Probably, and maybe not feasible in general.
20:43 tadzik a weird idea of a lazy SixModelObject came to my mind, something that will know of its repr, but will fill out the other bits when asked for them
20:44 benabik Maybe it would be possible to have a kind of "default HOW" that translates lookups into the appropriate PMC operations and modifications into errors.
20:44 jnthn Well, any solution is probably going to want to be based on delegation.
20:45 tadzik yep
20:45 tadzik or maybe some sort of a generic ParrotHOW
20:45 tadzik Parrot being ParrotObject
20:45 jnthn yeah
20:45 benabik I guess the important thing there is the "Default" part…  Something returned for anything that doesn't have an explicit HOW (which should just be Parrot PMCs.)
20:47 tadzik hence ParrotObjHOW
20:47 tadzik make: *** [blib/Perl6/Pod.pbc] Segmentation fault
20:47 tadzik fun
20:48 jnthn brb
20:53 benabik tadzik: fsvo fun
20:54 tadzik and now it's make: *** [blib/Perl6/SymbolTable.pbc] Segmentation fault
20:54 tadzik so it's not about Pod, yay :)
20:55 im2ee if $line ~~ any( %!funcs.keys ) # is it correct?
20:56 im2ee or == instead of ~~? :)
20:56 tadzik ~~ should work fine
20:56 tadzik == is numeric comparison
20:56 im2ee Ok, so it's correct. thanks tadzik :)
20:56 tadzik and if those are strings, and I suppose they are, ~~ will be just eq
20:59 im2ee Parcel() is array, right?
21:04 tadzik not really
21:04 tadzik Parcel is just a comma-separated thing, whatever it is
21:04 tadzik it more syntactical than semantical
21:05 im2ee rakudo: my @tab = 1, 2, <a b c>, 3; say @tab.WHAT;
21:06 p6eval rakudo 3b1fe5: OUTPUT«Array()␤»
21:06 im2ee rakudo: say <a b c>.WHAT;
21:06 p6eval rakudo 3b1fe5: OUTPUT«Parcel()␤»
21:06 im2ee Hmm, right.
21:07 soh_cah_toa joined #perl6
21:08 im2ee So.. It's time for me.
21:08 im2ee Good night everyone! :)
21:09 tadzik 'night!
21:09 masak 'n
21:09 masak dobranoc
21:09 im2ee :)
21:09 tadzik so, me being in the same timezone, should be probably going to sleep as well
21:09 masak :)
21:12 cotto_work Am I correct in understanding that nqp's kill-useless-defaults branch will be merged after the Rakudo release on Friday?
21:17 tadzik I think so
21:18 [Coke] I would love to see a reply to Andy D.'s message re: get_pointer.
21:22 masak 'night, #perl6
21:22 jnthn 'night o/
21:23 cotto_work 'night
21:24 araujo joined #perl6
21:24 cotto_work [Coke]: there you go
21:24 cotto_work two for the price of one
21:25 cotto_work or the price of four
21:25 perlygatekeeper joined #perl6
21:36 pmichaud joined #perl6
21:36 hugme joined #perl6
21:36 jrockway_ joined #perl6
22:01 gfldex joined #perl6
22:08 athomason joined #perl6
22:11 bakedb__ joined #perl6
22:21 dalek rakudo/nom: a26660d | jnthn++ | src/Perl6/Metamodel/ (2 files):
22:21 dalek rakudo/nom: Fix diamond role composition.
22:21 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/a26660d7bc
22:21 dalek rakudo/nom: b0b9b78 | jnthn++ | src/Perl6/Actions.pm:
22:21 dalek rakudo/nom: Ensure that we compose a ParametricRoleHOW before adding it to the group, so the group gets the fully composed view of it.
22:21 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b0b9b78a5a
22:40 dalek roast: cdb3f48 | jnthn++ | S14-roles/composition.t:
22:40 dalek roast: Improve test for role composition conflict error; don't require it uses the word collides, but do require it mentions the names of the roles.
22:40 dalek roast: review: https://github.com/perl6/roast/commit/cdb3f48bd0
22:40 dalek roast: ebdee8d | jnthn++ | S14-traits/attributes.t:
22:40 dalek roast: Start to de-bitrot traits tests.
22:40 dalek roast: review: https://github.com/perl6/roast/commit/ebdee8d6b8
22:45 dalek rakudo/nom: 1dd4914 | jnthn++ | src/Perl6/Metamodel/BOOTSTRAP.pm:
22:45 dalek rakudo/nom: Oops, a26660d made us accidentally miss some real conflicts. Fix that.
22:45 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/1dd491459c
22:45 dalek rakudo/nom: b72d678 | jnthn++ | src/Perl6/Metamodel/ (4 files):
22:45 dalek rakudo/nom: Roles pass any classes they're made to inherit along.
22:45 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b72d678a50
22:45 dalek rakudo/nom: df4db06 | jnthn++ | t/spectest.data:
22:45 dalek rakudo/nom: We now pass S14-roles/composition.t.
22:45 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/df4db06261
22:54 Woodi jnthn++ nightly work :)
22:56 tadzik make spectest seemed so fast that I stopped it and started timing it
22:57 jnthn heh :)
22:57 tadzik well, it'll take longer for we now pass more tests
22:57 jnthn Yeah
22:57 tadzik cheating
22:57 jnthn It's crept back up to the 3 minute mark here now.
22:59 whiteknight joined #perl6
23:03 dalek rakudo/nom: e606bec | jnthn++ | src/binder/bind.c:
23:03 dalek rakudo/nom: Toss dead code.
23:03 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e606bece68
23:03 dalek rakudo/nom: 5440fde | jnthn++ | src/pmc/perl6lexpad.pmc:
23:03 dalek rakudo/nom: Add a write barrier.
23:03 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/5440fdefe3
23:04 jnthn Almost up to running 15000 tests, it seems.
23:06 jnthn mmm. This beer is really nice.
23:06 japhb_ joined #perl6
23:09 molaf__ joined #perl6
23:09 japhb_ jnthn, did you have a chance to think about my two questions? (1. What' the correct status of the 3 remaining '?' items for nom in the features chart?  2a. How much work would it be to finish the MAIN feature for nom, presumably by autogenerating usage info?  2b. Could that task be done by a non-core developer?)
23:11 dalek features: 6a65d1d | jnthn++ | features.json:
23:11 dalek features: Update features to fill out blank spots for Rakudo. Also add 'Overriding dispatch' feature.
23:11 dalek features: review: https://github.com/perl6/features/commit/6a65d1d1c0
23:11 jnthn japhb_: I just did 1 ;)
23:11 jnthn Thanks for prodding me...was a bit preoccupied with $dayjob last time.
23:11 japhb_ jnthn++  # Action first
23:12 japhb_ jnthn, np, thanks for doing it!
23:12 jnthn tadzik: I think you worked on MAIN last (or recently)...is there more to USAGE than Just Doing It?
23:13 jnthn japhb_: In theory, it's writable in Perl 6, just by using signature introspection.
23:13 tadzik jnthn: I don't think USAGE is Even Doing It
23:13 tadzik and I believe it's moritz++ who worked on it recently
23:13 jnthn tadzik: Oh, I thought you did some bits. Sorry :)
23:13 japhb_ I also posted an idea to the channel at large for a new Interoperability section for the features table (minor extra details at http://irclog.perlgeek.de/perl6/2011-09-21#i_4456725 )
23:13 tadzik I did some bits yes :)
23:13 japhb_ comments welcome
23:14 tadzik but moritz worked around of the lack of signature comparison, or what was that
23:14 tadzik the-thing-that-made-you-unable-to-find-the-best-matching-MAIN
23:14 jnthn tadzik: Well, I think we made the spec more sane in the process of that :)
23:15 envi_laptop joined #perl6
23:15 japhb_ So in theory spec, implementation, and reality are convergent?  :-)
23:15 jnthn In theory ;)
23:16 jnthn japhb_: src/core/Main.pm is where to look fwiw
23:16 tadzik jnthn: in process of what?
23:16 japhb_ jnthn, in both nom and beijing?
23:16 tadzik yes
23:16 jnthn In nom:
23:16 jnthn # TODO: check if a dispatch is possible, and if not,
23:16 jnthn # do some USAGE magic.
23:16 jnthn return $m(|@($p), |%($n));
23:16 japhb_ heh
23:16 jnthn Hmm. It looks like it kinda blocks on knowing whether that disatch is going to work out or not.
23:17 japhb_ jnthn, Is that still a difficult question?
23:18 jnthn moment, checkin'
23:18 japhb_ nom: .say for Signature.^methods
23:18 p6eval nom df4db0: OUTPUT«Unmarshallable foreign language value passed for parameter '$_'␤  in block <anon> at /tmp/HDYX441Vmc:1␤  in method reify at src/gen/CORE.setting:3690␤  in method reify at src/gen/CORE.setting:3595␤  in method reify at src/gen/CORE.setting:3595␤  in method gimme at src…
23:18 japhb_ wheee
23:18 jnthn ugh.
23:18 tadzik heh
23:18 jnthn Bootstrapping for the fail...
23:19 tadzik jnthn! jnthn!
23:19 tadzik Method 'foo' must be resolved by class DD because it exists in multiple roles (DC, DB)
23:19 tadzik in t/spec/S14-roles/composition.t
23:19 jnthn tadzik: huh, that's what I just fixed...
23:19 jnthn tadzik: Did you pull?
23:20 tadzik when?
23:20 tadzik I just pulled the last 2
23:20 jnthn Hm.
23:20 jnthn That's...really weird.
23:20 tadzik binder, and perl6lexpad
23:20 jnthn yeah, I meant the earlier patches. :S
23:20 jnthn tadzik: Wait, which Parrot are you running?
23:21 jnthn tadzik: The NQP_REVISION/PARROT_REVISION one?
23:21 tadzik jnthn: blead
23:21 jnthn Or latest + the patch?
23:21 jnthn oh, you applied the NQP patch locally?
23:21 tadzik I'm on the branch
23:21 tadzik i nnqp
23:21 jnthn aha
23:21 jnthn OK, then I'm not surprised.
23:21 jnthn I can't really do much about that until we merge the branch.
23:22 jnthn But we can't do that before the release...
23:22 jnthn japhb_: I'm guessing there should be a way to take a multi and ask it for all matching candidates.
23:22 jnthn japhb_: I've got all the primitives in place to do that...
23:23 jnthn japhb_: Checking the spec to see if there's a defined way.
23:30 vlixes joined #perl6
23:33 japhb_ jnthn, thank you.
23:33 vlixes
23:33 vlixes /bye
23:35 maguro joined #perl6
23:43 jnthn japhb_: Don't see anything off hand, so adding one...should unblock doing stuff.
23:45 japhb_ jnthn, OK.  Am I correct in reading your previous comments that this will be relatively easy for you to add?
23:47 jnthn japhb_: Yeah, we already have the primitives there to support deferral.
23:47 jnthn Got a patch, testing it.
23:47 mkramer1 joined #perl6
23:47 uasi joined #perl6
23:49 ZapZ_ joined #perl6
23:50 frhodes joined #perl6
23:56 uasi_ joined #perl6

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

Perl 6 | Reference Documentation | Rakudo