Camelia, the Perl 6 bug

IRC log for #perl6, 2010-03-26

Perl 6 | Reference Documentation | Rakudo | Niecza | Specs

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

All times shown according to UTC.

Time Nick Message
00:00 cognominal ulimit
00:00 sorear ulimit -v
00:00 sorear ulimit -m limits PHYSICAL memory use, and thus causes swapping to start sooner
00:00 cognominal documented in the bash man page
00:00 sorear do not mix up these two options
00:01 sorear $ help ulimit
00:03 cognominal apparently I need to do ulimit -S
00:05 rv2733 joined #perl6
00:08 sundar The Rakudo 'repl' doesn't print the values of evaluated expressions automatically.. is this to be changed, or is this the intention?
00:08 masak sundar: this is to be changed.
00:08 jnthn 'tis even on the ROADMAP. :-)
00:09 jnthn sundar: It's one of a couple of REPL improvements that we really need.
00:11 masak Moose 1.0! \o/ http://stevan-little.blogspot.com/​2010/03/moose-100-is-released.html
00:11 sundar ah ok.. I didn't really understand it since it's in the present tense: "REPL actually prints". :)
00:12 jnthn sundar: It's things we want to be able to say are true some day. ;-)
00:12 rv2733 left #perl6
00:13 sundar yeah, it sure will look good when it goes to the completed items list.. ;)
00:15 sorear Moose 100
00:18 cognominal masak++  # now I compile under 10 minutes while doing other things
00:18 masak moritz_++ # for the original tip :)
00:20 * jnthn compiles his attempted fixes for the instance.t issues
00:25 jnthn http://incise.org/hash-table-benchmarks.html # may be interesting for those hacking Perl 6 compilers.
00:25 * colomon is building unobe's latest, while he prepares to escort the Chinese princess back to China.
00:27 cognominal masak, is you perl 6 web application still maintained?
00:27 masak cognominal: which one?
00:27 cognominal Lightweight Perl 6 framework for web applications. Work-name is Web.pm.
00:27 cognominal I meant web server
00:28 masak we were just discussing that over email.
00:28 masak we've done 19 grant weeks out of 20.
00:28 masak it would be nice to wrap up the grant.
00:28 masak but I feel we've lost touch with our grant manager and the TPF.
00:29 masak (mostly because of long stretches of inactivity)
00:29 jnthn masak: fwiw, on my own grants I've talked with TPF at the start and at the end. ;-)
00:29 cognominal masak: I got   perl6 Configure
00:29 cognominal Null PMC access in find_method('get_parrotclass')
00:29 cognominal current instr.: 'perl6;ClassHOW;onload' pc -1 ((unknown file):-1)
00:29 cognominal Segmentation fault
00:29 masak jnthn: that's a partial relief :)
00:29 cognominal when trying to configure it.
00:29 jnthn cognominal: make install not run?
00:29 masak cognominal: I don't think anyone's tried to build Web.pm on the new master.
00:29 masak yet.
00:29 jnthn And trying to use Perl 6 outside of build directory?
00:30 jnthn If so, run make install. :-)
00:33 cognominal thx, jnthn
00:34 cognominal now I probably need to tell it where to find modules...
00:34 cognominal perl6 Configure
00:34 cognominal Unable to find module 'Configure'.
00:34 jnthn perl6 -e 'say @*INC.perl' will tell you that.
00:35 masak export PERL6LIB=`pwd`/lib
00:36 cognominal now, I guess I hit a real problem
00:36 cognominal perl6 Configure
00:36 cognominal You can not add a regex to a module; use a class, role or grammar
00:36 masak right.
00:36 masak that's just wrong.
00:36 masak and known.
00:36 jnthn Did we get a spec resolution on that?
00:36 cognominal I suppose the recent work on module has invalidated some stuff
00:37 masak well, TimToady said that we're definitely allowing regexes outside of grammars.
00:37 masak that's good enough for me.
00:37 jnthn masak: It was also stated that you'd have to write my regex or our regex.
00:37 jnthn iirc.
00:37 masak hm; possibly.
00:37 jnthn The question is, do we warn and throw away all method declarations on a module that are has-scoped?
00:37 masak it's getting to be high time to try to get the app cheese to build on the new Rakudo master.
00:38 colomon app cheese?!
00:38 jnthn Sounds crackers.
00:38 cognominal the proof of takudo is in eating the apps :)
00:39 cognominal *rakudo
00:39 masak colomon: 'cheese' is just a term meaning 'totality' here :)
00:40 colomon ah.  strange usage, good idea.  :)
00:40 masak colomon: http://use.perl.org/~masak/journal/39583
00:41 masak hm, that URL doesn't actually *explain* the usage... :P
00:41 masak it started when I accidentally a cheese slide on the last NPW...
00:41 hercynium joined #perl6
00:42 jnthn It wasn't the whole cheese, though.
00:43 masak colomon: a couple dozen slides into this presentation, there's a cheese: http://masak.org/carl/npw2009-november/talk.pdf
00:43 yinyin joined #perl6
00:44 cognominal masak, is Web inspired from Sinatra like Perl 5 Dancer?
00:44 cognominal I see a method Astaire so I wonder
00:44 masak cognominal: the part of it called Astaire is.
00:45 cognominal ok
00:45 masak cognominal: the core of Web.pm is inspired by Ruby's Rack.
00:45 jnthn instance.t annoyance fixed.
00:45 masak s/inspired by/a faithful clone of/
00:46 dalek rakudo: e8b8da3 | jonathan++ | src/Perl6/ (3 files):
00:46 dalek rakudo: Correct handling of attributes during the compile so we don't lose ordering, thus dealing with the intermittent instance.t fejls.
00:46 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/e​8b8da3d934ac92b34414af8ddd8c7db9cf6e195
00:46 fda314925 joined #perl6
00:46 cognominal There is so much Web framework around that I have trouble to remember the specificities.
00:47 masak tell me about it. :)
00:48 cognominal I think there is a wikipedia page but not really up to date
00:48 cognominal http://en.wikipedia.org/wiki/Compar​ison_of_web_application_frameworks
00:49 cognominal I remember having added to it weblift  (a scala framework) a few months ago
00:49 drakej joined #perl6
00:49 holli_ rakudo: grammar G { method TOP { die "!" } }; my $p; try { $p = G.parse("x"); }; say $p
00:50 p6eval rakudo db0f85: OUTPUT«Any()␤»
00:50 holli_ rakudo: grammar G { method TOP { { die "!" } } }; my $p; try { $p = G.parse("x"); }; say $p
00:50 p6eval rakudo db0f85: OUTPUT«Any()␤»
00:50 holli_ rakudo: grammar G { method TOP { { x } } }; my $p; try { $p = G.parse("x"); }; say $p
00:50 p6eval rakudo db0f85: OUTPUT«Any()␤»
00:50 masak cognominal: I keep wanting to check out weblift.
00:51 colomon masak: running all the projects' tests!  woo-hoo!  go cheese!
00:51 snarkyboojum I wrote some simple stuff in Lift - loved it's templating framework
00:51 masak colomon: yeah. we're getting there. :)
00:52 colomon \o/
00:59 snarkyboojum found debugging Lift issues problematic at the time (this was about 2 years ago tho :))
00:59 * snarkyboojum stops talking off topic ;)
01:00 masak snarkyboojum: hi!
01:04 snarkyboojum masak: hello!
01:05 snarkyboojum I'm about to run off, so will bug you later on about Tardis :)
01:05 masak :)
01:05 frzntoz joined #perl6
01:05 masak I'm not sure how long I'll be staying. it's way past my bedtime.
01:06 snarkyboojum in that case, an early goodnight from me :)
01:06 snarkyboojum afk &
01:06 masak :)
01:07 * jnthn should sleep soonish too
01:10 nihiliad joined #perl6
01:20 wolf2k_ubuntu joined #perl6
01:20 jnthn Sleep time, night all o/
01:20 masak 'night, jnthn!
01:24 wolf2k_ubuntu joined #perl6
01:26 dalek rakudo: 26ba8bf | (Solomon Foster)++ |  (3 files):
01:26 dalek rakudo: Merge branch 'master' of git://github.com/unobe/rakudo
01:26 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/2​6ba8bf81279ec9c558dbb230d2607dd3e30c2b0
01:26 dalek rakudo: 208fcab | (Solomon Foster)++ | src/Perl6/ (3 files):
01:26 dalek rakudo: Merge branch 'master' of git@github.com:rakudo/rakudo
01:26 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/2​08fcab42bcdb0e4ab8d3d987625bd267b80e5d3
01:29 Psyche^ joined #perl6
01:33 cognominal squerl
01:44 ash_ joined #perl6
01:46 frzntoz left #perl6
01:47 justatheory joined #perl6
01:55 wolf2k_ubuntu joined #perl6
02:18 xinming joined #perl6
02:18 am0c joined #perl6
02:28 * am0c hugs p6eval
02:30 colomon rakudo: my @a = 1..10; my @b = 'a'..'f'; zip(@a, @b)
02:30 p6eval rakudo db0f85: OUTPUT«Could not find non-existent sub &zip␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
02:32 colomon rakudo: multi zip(**@list) { @list[0] Z @list[1] }; my @a = 1..10; my @b = 'a'..'f'; say zip(@a;@b)
02:32 p6eval rakudo db0f85: OUTPUT«Malformed parameter at line 11, near "**@list) {"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
02:33 colomon drat
02:43 Alias joined #perl6
02:50 pugssvn r30203 | colomon++ | [t/spec] Fudge for Rakudo.
02:56 simonm joined #perl6
03:08 dalek joined #perl6
03:27 dalek rakudo: f7d3461 | (Solomon Foster)++ | src/core/Any-list.pm:
03:27 dalek rakudo: Quick implementation of Any.pairs.
03:27 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/f​7d3461c23f165eb1816f45f31947571da118df1
03:27 dalek rakudo: 1882918 | (Solomon Foster)++ | t/spectest.data:
03:27 dalek rakudo: Turn on S32-array/pairs.t.
03:27 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/1​8829184bf0a7c40671822841f25296c83af7e03
03:35 colomon rakudo: say split("", "forty-two")
03:35 p6eval rakudo db0f85: OUTPUT«forty-two␤»
03:38 colomon rakudo: say "forty-two".split("");
03:38 p6eval rakudo db0f85: OUTPUT«forty-two␤»
03:38 colomon rakudo: say split("", "forty-two").perl
03:38 p6eval rakudo db0f85: OUTPUT«GatherIterator.new()␤»
03:38 colomon rakudo: say split("", "forty-two").eager.perl
03:38 p6eval rakudo db0f85: OUTPUT«("f", "o", "r", "t", "y", "-", "t", "w", "o")␤»
03:49 am0c say "forty-two".split('').perl.say
03:49 am0c rakudo: "forty-two".split('').perl.say
03:49 p6eval rakudo db0f85: OUTPUT«GatherIterator.new()␤»
03:49 am0c ah?
03:50 am0c rakudo: "forty-two".split('').eager.perl.say
03:50 p6eval rakudo db0f85: OUTPUT«("f", "o", "r", "t", "y", "-", "t", "w", "o")␤»
03:50 am0c oic..
03:50 snarkyboojum rakudo: my @a = "forty-two".split(''); @a.perl.say
03:51 p6eval rakudo db0f85: OUTPUT«["f", "o", "r", "t", "y", "-", "t", "w", "o"]␤»
03:51 sorear @ isn't lazy... yet
03:53 _jaldhar joined #perl6
03:55 am0c sorear: just an @ after assignment is lazy later at default?
03:55 am0c s/@/simple @/; # i mean
03:56 colomon rakudo: say "".split('').eager.perl
03:56 p6eval rakudo db0f85: OUTPUT«("", )␤»
03:56 snarkyboojum alpha: my @a = 1..Inf;
03:56 snarkyboojum heh
03:56 p6eval alpha 30e0ed:  ( no output )
03:57 am0c alpha?
03:57 am0c p6eval: help
03:57 p6eval am0c: Usage: <(mildew-js|pugs|nqp|mildew|std|rakudo​|perlito|alpha|sprixel|elf|highlight): $perl6_program>
03:57 am0c p6eval: help alpha
03:57 p6eval am0c: Usage: <(mildew-js|pugs|nqp|mildew|std|rakudo​|perlito|alpha|sprixel|elf|highlight): $perl6_program>
03:57 snarkyboojum am0c: alpha branch of rakudo pre ng
03:58 snarkyboojum alpha: "forty-two".split('').batch(*).say
03:58 p6eval alpha 30e0ed: OUTPUT«Method 'batch' not found for invocant of class 'List'␤in Main (file src/gen_setting.pm, line 324)␤»
03:59 snarkyboojum rakudo: "forty-two".split('').batch(*).say
03:59 p6eval rakudo db0f85: OUTPUT«Method 'Int' not found for invocant of class 'Block'␤current instr.: 'perl6;Mu;' pc -1 ((unknown file):-1)␤»
03:59 snarkyboojum does Whatever work there? :)
03:59 snarkyboojum rakudo: "forty-two".split('').batch(9).say
03:59 p6eval rakudo db0f85: OUTPUT«forty-two␤»
04:00 snarkyboojum am0c: http://github.com/rakudo/rakudo/tree/alpha
04:01 am0c I see!
04:01 snarkyboojum pre nq.. lol. I meant pre nqp-rx
04:03 snarkyboojum mildew-js: say "hi"
04:03 p6eval mildew-js: OUTPUT«Can't open perl script "mildew": No such file or directory␤»
04:04 snarkyboojum mildew: say "hi"
04:04 p6eval mildew: OUTPUT«Can't open perl script "mildew": No such file or directory␤»
04:04 snarkyboojum elf: say "well hello"
04:04 p6eval elf 30203: OUTPUT«well hello␤»
04:06 snarkyboojum rakudo: my $x = * * 2; say <1 2 3>.map: $x
04:06 p6eval rakudo db0f85: OUTPUT«Method 'Num' not found for invocant of class 'Block'␤current instr.: 'perl6;Mu;' pc -1 ((unknown file):-1)␤»
04:06 snarkyboojum alpha: my $x = * * 2; say <1 2 3>.map: $x
04:06 p6eval alpha 30e0ed: OUTPUT«246␤»
04:08 snarkyboojum rakudo: my $x = * * 2; say $x(5)
04:08 p6eval rakudo db0f85: OUTPUT«Method 'Num' not found for invocant of class 'Block'␤current instr.: 'perl6;Mu;' pc -1 ((unknown file):-1)␤»
04:09 snarkyboojum rakudo: say <1 2 3>.map: -> $x { $x.succ }
04:09 p6eval rakudo db0f85: OUTPUT«234␤»
04:09 snarkyboojum rakudo: say <1 2 3>.map: *.succ
04:09 p6eval rakudo db0f85: OUTPUT«invoke() not implemented in class 'String'␤current instr.: 'perl6;Code;signature' pc 13156 (src/builtins/Str.pir:115)␤»
04:09 snarkyboojum alpha: say <1 2 3>.map: *.succ
04:09 p6eval alpha 30e0ed: OUTPUT«234␤»
04:10 pugssvn r30204 | colomon++ | [t/spec] Redo split.t to use .join(',') for testing rather than is_deeply, as the latter does not really work with iterators.
04:10 ash_ rakudo: map { say $_ * 2 }, <1 2 3> # rakudo is a bit to lazy sometimes
04:10 p6eval rakudo db0f85:  ( no output )
04:11 colomon BTW, if someone is looking for something to do, I think split.t could easily use twice as many tests as it has now...
04:13 ash_ i can try to take a look at it later
04:13 dalek rakudo: b2f995a | (Solomon Foster)++ | t/spectest.data:
04:13 dalek rakudo: Turn on split.t.
04:13 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/b​2f995aaaadc4c04774d49eaeee5ca1ec1919a9d
04:15 holli joined #perl6
04:17 meppel joined #perl6
04:21 snarkyboojum buubot: karma colomon
04:21 buubot snarkyboojum: colomon has karma of 378
04:21 snarkyboojum buubot: karma audreyt
04:21 buubot snarkyboojum: audreyt has karma of 8
04:22 snarkyboojum interesting :)
04:22 sorear buubot is a new player
04:22 buubot sorear: Couldn't match input.
04:22 colomon audreyt does't really do much around here anymore.  but certainly deserves higher karma tan me....
04:22 colomon *than
04:23 sorear back in the heydey of #perl6 karma was managed by lambdabot
04:23 sorear or the heydey of pugs, anyway
04:23 snarkyboojum aye
04:23 colomon I thought the karma has been reset several times just in the last year....
04:23 sorear also I've got ~500 lambdabot karma from my time in #haskell that didn't carry over :(
04:29 molaf joined #perl6
04:31 snarkyboojum joined #perl6
04:40 Trashlord joined #perl6
04:51 holli joined #perl6
06:20 xinming joined #perl6
06:26 Sarten-X joined #perl6
06:38 * holli is pondering about new operators: <?p6?> and <? code ?>
06:39 holli like ib php. it would turn perl6 instantly into the worlds most powerful templating language.
06:39 holli s/in/php/
06:39 holli bah, s/ib/in/
06:47 chromatic joined #perl6
07:04 rekhajos joined #perl6
07:25 holli rakudo: sub MAIN { say "M" }
07:25 p6eval rakudo db0f85:  ( no output )
07:30 yahooooo joined #perl6
07:35 payload joined #perl6
07:38 pugssvn r30205 | lwall++ | [specs] Make it clear that pairs are *not* related to subscripts, but the
07:38 pugssvn r30205 | corresponding fatarrow semantics in particular, name extenders are just
07:38 pugssvn r30205 | strings or list of strings, properly indicated by :<> or :() in most cases
07:38 pugssvn r30205 | (this includes all operator names).  Forbid name extension using :{}, and
07:38 pugssvn r30205 | since names may no longer be extended with :{}, we can free up that notation
07:38 pugssvn r30205 | for supplying a closure as a first argument to a method without an intervening
07:38 pugssvn r30205 | space.  (We can't also get rid of the colon, or it's a hash subscript.)
07:41 pugssvn r30206 | lwall++ | [STD] Properly object to unrecognized internal regex modifiers such as :has.
07:41 pugssvn r30206 | Parse to the new specs regarding name extensions, and allow colon method arguments
07:41 pugssvn r30206 | to omit the space if the next char is a left curly, which is what people seem to
07:41 pugssvn r30206 | expect anyway.
07:45 mberends joined #perl6
07:51 pugssvn r30207 | lwall++ | [t/spec] patch up occurrences of infix:{...} etc. to align with current spec
07:52 sjohnson @karma
07:52 mberends holli: for templating you've also already got $s = "text { code } text";
07:53 TimToady Perl 6 is already the world's most powerful templating language. :)
07:54 mberends :)
07:54 TimToady and where it isn't, it will be trivial to tweak it till it is.
07:55 TimToady well, trivial for the user, anyway...the implementation of all that is not so trivial, from STD's perspective...
08:02 hanekomu_ joined #perl6
08:03 riffraff joined #perl6
08:12 Su-Shee joined #perl6
08:16 iblechbot joined #perl6
08:30 pugssvn r30208 | lwall++ | [STD] more deletion of no-longer-needed xacts
08:39 dalek joined #perl6
09:08 dakkar joined #perl6
09:16 jnthn morning
09:18 sorear hello
09:18 sorear blizkost is fighting me
09:20 jnthn Fight back! Fight back!
09:20 jnthn Yes, I fighted me too. :-)
09:21 sorear today's insanity is the macro war between perl.h and parrot.h
09:22 sorear also, I'd like to give thanks to whoever put rm *.c *.h in the clean rule for build/src/pmc/Makefile.in
09:29 jnthn sorear: Just a standard thing.
09:29 jnthn (from the language template)
09:29 jnthn I don't find it particularly surprising.
09:30 jnthn I'm guessing you put .c and .h files in there that weren't the PMC's ones though. :-/
09:30 sorear yep!
09:30 jnthn :-)
09:30 sorear luckily I'm in the habit of commiting *before* testing
09:30 jnthn Phew.
09:31 jnthn Perhaps it's nice to pop them in some other folder. Less risk, and after all, they aren't pmcs, they're other stuff. :-)
09:34 clintongormley joined #perl6
09:38 cotto joined #perl6
09:53 moritz_ rakudo: say [1,2,3,4]
09:53 p6eval rakudo db0f85: OUTPUT«1 2 3 4␤»
09:53 moritz_ rakudo: say [[1,2],[3,4]]
09:53 p6eval rakudo db0f85: OUTPUT«1 2 3 4␤»
09:55 moritz_ rakudo: use Test; is_deeply [1,2,3,4], [[1,2],[3,4]]
09:55 p6eval rakudo db0f85: OUTPUT«not ok 1 - ␤#      got: [1, 2, 3, 4]␤# expected: [[1, 2], [3, 4]]␤»
09:57 moritz_ rakudo++
09:59 payload joined #perl6
10:08 gfx joined #perl6
10:17 ktne joined #perl6
10:19 eternaleye joined #perl6
10:48 xinming_ joined #perl6
10:58 pmurias joined #perl6
11:08 raygis joined #perl6
11:17 fda314925 joined #perl6
11:24 sundar joined #perl6
11:29 colomon joined #perl6
11:41 meppl joined #perl6
11:42 synth joined #perl6
11:48 envi^home joined #perl6
12:10 sundar joined #perl6
12:22 masak joined #perl6
12:22 masak oh hai, #perl6
12:22 mj41 joined #perl6
12:23 mberends oh hai masak
12:23 * masak picked the wrong hours to sleep tonight
12:27 sundar joined #perl6
12:28 [synth] joined #perl6
12:30 envi^home joined #perl6
12:30 jnthn masak: Just awake? :-)
12:31 masak jnthn: been up a few hours. :)
12:31 masak but still. kinda late.
12:34 mberends jnthn: for separate compilation of core/*.pm, is it good or bad to consider inserting the generated traits.pir into the front of every other modules that mentions traits?
12:35 jnthn masak: Ah. Spent my morning on visa crap. But aside from giving some stuff to a courier who'll show up later, I think I'm done now.
12:35 jnthn masak: The visa form has got...a lot worse...since last time I did it. :-/
12:35 jnthn mberends: Yes that would be very bad.
12:35 masak jnthn: ok. I'd better start digging in that matter, then.
12:35 jnthn masak: Well.
12:36 jnthn masak: But you're not British, so your form is probably simpler.
12:36 masak :)
12:36 jnthn I'm not joking. The form I filled out is the special one for the UK, the US and Georgia.
12:38 cognominal I am afraid that  with our president that France will become an aligned country and pick that sort of sillinyess
12:39 ignacio_ joined #perl6
12:40 * moritz_ hopes that France does not leave the Schengen treaty
12:41 jnthn That would suck.
12:42 justatheory joined #perl6
12:42 masak A hole the size of France in the middle of the Schengen zone? no kidding!
12:44 takadonet morning all
12:45 ruoso joined #perl6
12:48 jnthn masak: Well, slightly to the left of... ;-)
12:49 ignacio__ joined #perl6
12:53 snarkyboojum joined #perl6
12:53 sundar Hi... I installed libreadline6-dev, did a "perl Configure.pl", "make clean && make && sudo make install" in the parrot directory. Still, running "perl6" does not give me readline support.. What am I missing?
12:54 riffraff joined #perl6
12:55 sundar I have parrot checked out as ~/svn_parrot/, and rakudo in ~/svn_parrot/runtime/parrot/languages/rakudo/. I ran the above commands from ~/svn_parrot/.
12:55 masak sundar: need to rebuild Parrot after installing readline.
12:55 moritz_ sundar: I have libreadline5-dev (5.2-3.1), works here
12:55 masak sundar: specifically, make sure the Parrot configure phase finds it.
12:56 sundar yes, it said "auto::readline -      Does your platform support readline.................yes."
12:56 moritz_ sundar: and di you reconfigure rakudo after you re-installed parrot?
12:58 takadonet joined #perl6
12:58 sundar ouch.. I rebuilt Parrot, but did not rebuild rakudo itself.. :) I somehow assumed make-ing parrot will do it for me.. I'm rebuilding rakudo now.
12:58 moritz_ sundar: and it did, 2 years ago
12:58 moritz_ but since then rakudo and parrot have come considerably detangled
13:00 sundar yeah, I understand, it's better to not have unnecessary couplings. Though, is it possible to add an option to parrot's Configure.pl to rebuild all the languages under languages/ directory too?
13:02 sundar we should have a consistent build mechanism for the languages though, for that to work.. and for specifying options to individual language configurations, we could have a CONFIGURE_OPTIONS file under the language directory..
13:03 masak sundar: ooh, you keep Rakudo under languages/ ?
13:03 masak sundar: I'm one of the few who still do :)
13:03 masak (not that it matters much. I build Parrot and Rakudo separately)
13:04 sundar :) yes.. it somehow feels cleaner to me.
13:05 sundar masak: from what I just understood, we _have_ to build them separately now, isn't it?
13:05 masak sundar: well, there's the option of letting Rakudo pull in Parrot.
13:06 masak most people seem to take that route nowadays.
13:06 masak I don't because I want to have the latest Parrot.
13:06 masak not the one Rakudo is set to pull in.
13:09 sundar ah ok.. I too don't, though mostly due to philosophical reasons (refer 'cleaner' above :) ).. But this does have the risk that Rakudo might some days not build against the latest parrot, isn't it?
13:10 moritz_ masak: I keep parrot under rakudo, and still use the latest one
13:10 masak oh, ok.
13:10 moritz_ but I agree, it doesn't feel so good, because if you have 20 languages, you don't want a parrot tree for each of them
13:11 sundar moritz_: oh, I thought even in that setup you could have additional languages under a languages/ directory.. Isn't that possible?
13:11 moritz_ sundar: it would, yes
13:11 moritz_ sundar: but then I have rakudo/parrot/languages/cardinal
13:12 moritz_ but why should cardinal be in a rakudo sub directory?
13:12 moritz_ then I'd actually prefer symlinks
13:12 payload joined #perl6
13:12 moritz_ let each language has its parrot/ dir, which is actually a link to one single parrot tree
13:14 sundar moritz_: hmmm yeah, that's better. though, we'd have problems when rakudo and some other language want different versions of Parrot..
13:16 masak if map and grep use gather internally, will it be impossible to have a 'take' behave correctly inside the block of a map or a grep?
13:18 moritz_ masak: yes
13:19 moritz_ rakudo: say <a b c>.map({take 2; $_ }).eager
13:19 p6eval rakudo db0f85: OUTPUT«take without gather␤take without gather␤take without gather␤abc␤»
13:19 moritz_ rakudo: say <a b c>.grep({take 2; $_ }).eager
13:19 p6eval rakudo db0f85: OUTPUT«2a2b2c␤»
13:21 jnthn Note that map doesn't use gather/take.
13:21 moritz_ yes, just noticed
13:21 moritz_ but it's still lazy?
13:21 jnthn Yes
13:21 jnthn But has its own kind of iterator (MapIterator)
13:21 jnthn You could do it in terms of gather/take too.
13:22 masak that's just the thing.
13:22 masak the Spec doesn't spec how to implement map and grep.
13:22 jnthn Good.
13:22 jnthn It shouldn't.
13:22 masak which means, by extension, that it shouldn't interfere with an outer gather.
13:22 jnthn is gather/take lexotic?
13:22 masak so I'd consider the current behaviour of grep a bug.
13:22 masak it's dynamic, I think.
13:22 moritz_ jnthn: I think it's purely dynamic
13:23 masak I don't fully grok lexotic yet. I think 'return' is lexotic.
13:23 moritz_ return = dynamic, but the end points are still tied to a lexical scope
13:24 jnthn lexotic iirc is like, look lexically first
13:24 jnthn then dynamically if nothing found
13:25 masak huh.
13:28 am0c joined #perl6
13:32 envi^home joined #perl6
13:42 ash_ joined #perl6
13:43 sundar a basic question.. I tried a small change to src/core/operators.pm, did "make && sudo make install" in the rakudo directory, but could not see its effect when I run perl6. what am I doing wrong?
13:44 moritz_ sundar: what did you change?
13:44 moritz_ usually you should see the changes
13:45 moritz_ except when it's in a multi candidate you don't call
13:46 sundar ah it _is_ a multi sub, but I don't see any other candidates in this file. the change was in infix:<Z>
13:49 moritz_ rakudo: say 2 Z 3
13:49 p6eval rakudo db0f85: OUTPUT«No applicable candidates found to dispatch to for 'infix:<Z>'. Available candidates are:␤:(Iterable $a-iterable, Iterable $b-iterable)␤␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
13:49 moritz_ there seems to be only one candidate, yes
13:49 moritz_ masak: have you seen this? :-)
13:49 sundar the diff is at http://codepad.org/wpyDibhD (I couldn't get paste.lisp to work).. basically I changed "take $a; take $b;" to "take [$a, $b, "OH HAI"];" :)
13:49 jnthn Probably needs one more candidate.
13:50 jnthn multi infix:<Z>($a, $b) { &infix:<Z>($a.list, $b.list) }
13:50 moritz_ sundar: that should make a difference... don't know why it doesn't
13:50 jnthn That's what we've done for hypers etc.
13:50 moritz_ sundar: just a wild guess.. do you have multiple perl6 binaries installed, and calling the wrong one?
13:51 moritz_ sundar: try ./perl6 -e 'say 1, 2 Z 3, 4'
13:51 masak moritz_: nope, hadn't seen that one.
13:52 * masak submits rakudobug
13:53 sundar moritz_: that gives 1324 only.
13:55 jnthn rakudo: say 1, 2 Z 3, 4
13:55 p6eval rakudo db0f85: OUTPUT«1324␤»
13:55 jnthn That's correct.
13:55 sundar moritz_: ah I don't have multiple perl6 binaries, but there is something fishy.. the modification timestamp of my perl6 binary is old..
13:55 jnthn oh, wait, you'd added something...sorry
13:55 * jnthn only half watching.
13:55 sundar should I for some reason reconfigure before doing make and make install?
13:56 moritz_ nope
13:56 moritz_ but you should be aware where rakudo installs its perl6 binary
13:56 moritz_ and that is just where the parrot binary is with which rakudo  was configured
13:57 Trashlord joined #perl6
13:57 sundar which perl6 says /usr/local/bin/perl6, and my most recent make install has a "/usr/bin/perl -MExtUtils::Command -e cp     perl6        /usr/local/bin" line..
13:59 sundar but from a stat on the file it appears only the status was changed in this run.. the modification time is from an old run (probably one run after a git pull)..
14:08 pugssvn joined #perl6
14:09 sundar I tried a make clean && make && make install too, which didn't help either.. any clues?
14:20 pugssvn joined #perl6
14:27 mathw sundar: have you tried make realclean, then reconfigure and make from scratch?
14:28 sundar mathw: hmmm I tried reconfigure and make, now running "make realclean && perl Configure.pl && make && make install".. that is what you're suggesting, correct?
14:29 ash_ hmmm, yesterday someone said it took them like 2 hours to make rakudo on their mac, i just did a "time make" on mine, real8m58.554s
14:29 ash_ user5m7.448s
14:29 ash_ sys2m20.594s, i am wondering if there was another issue... maybe?
14:30 mathw ash_: there may have been
14:30 mathw sundar: make realclean cleans more things, so it might help.
14:31 jnthn Those build times are on the high side. :-/
14:32 jnthn ash_: Was it for Parrot too, or jsut Rakudo?
14:32 ash_ just rakudo
14:32 nihiliad joined #perl6
14:32 jnthn Ugh.
14:33 ash_ i didn't time the whole thing, just make on rakudo, i guess i could time build for parrot too
14:36 sundar ugh.. even realclean didn't help it.. it gives the same old output and even the perl6 binary hasn't been changed..
14:38 ash_ jnthn: build of parrot: real4m15.767s
14:44 masak rakudo: Misspelled::Typename
14:44 p6eval rakudo db0f85: OUTPUT«Null PMC access in invoke()␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
14:44 masak :(
14:47 dalek joined #perl6
14:52 sundar does anyone have any idea why make install is not modifying my 'perl6' file? or how can I track down what the issue is? have any of you faced such issues?
14:53 masak sundar: is it failing to copy the file? maybe it doesn't have the privileges?
14:54 sundar I ran it with sudo, and it didn't complain of any failure either..
14:54 sundar but the timestamp is an old one, doesn't change after I change something and do a make install.
14:54 synth joined #perl6
14:54 [synth] joined #perl6
14:54 ash_ joined #perl6
14:55 sundar to be clear, the _modify_ timestamp is an old one.. the _change_ timestamp gets changed every time I run make install..
14:55 masak I've never heard of anyone with this problem before.
14:57 ash_ i did a make realclean and re-ran make, it timed as: real 10m30.311s
14:58 dalek joined #perl6
14:59 sundar could some kind soul here try the changes I did and see if make install changes the perl6 binary for them? I changed "take $a; take $b;" to "take [$a, $b, "OH HAI"]" in infix:<Z> in operators.pm (diff: http://codepad.org/wpyDibhD)
15:00 * masak tries
15:14 sundar FTR, I now tried changing the definitions of say() in IO.pm to print "OH HAI" as well, but make install didn't care about this either...
15:15 jnthn sundar: Maybe try locating and removing all perl6 executables, or rename them, or something. Then do make install and you'll get a feel for where it's actually installing things to.
15:17 sundar jnthn: ah, that somehow did the trick - I renamed /usr/local/bin/perl6, ran make install, and voila, the perl6 now has the modifications I did! thanks..
15:18 sundar but previously too, it was using this location only - every time I ran make install, the _Change_ timestamp of the file would change. Why make install didn't change the actual content too is puzzling to me..
15:23 nihiliad joined #perl6
15:25 pugssvn r30209 | lwall++ | [times.t] fix parsefail I installed last night
15:30 TimToady std: /:x(6) \d/  # currently disallowed, tempted to keep it that way
15:30 p6eval std 30208: OUTPUT«[31m===[0mSORRY![31m===[0m␤Unrecognized regex modifier :x at /tmp/r01WLKdXQR line 1:␤------> [32m/:x[33m⏏[31m(6) \d/  # currently disallowed, tempted[0m␤FAILED 00:01 107m␤»
15:31 masak as long as it's clear which adverbs can be used both outside and inside a regex, and which ones can only be used outside.
15:32 masak > say 1,2,3 Z 4,5,6
15:32 masak 1 4 OH HAI2 5 OH HAI3 6 OH HAI
15:32 masak
15:32 masak sundar: worksforme.
15:32 TimToady what's clear is that :x(6) will not be clear on the inside
15:32 masak I agree, I think.
15:32 sundar masak: hmmm.. it worked for me too after I renamed the preexisting perl6 binary.. did you have a perl6 binary at the place previously?
15:33 masak TimToady: it feels more like talking *about* the regex, as opposed to, say, :i
15:33 masak sundar: yes.
15:33 TimToady :i is not redundant on the inside
15:33 masak TimToady: I did not imply it was :)
15:33 SmokeMachine joined #perl6
15:33 TimToady whereas :x duplicates ** with unclear semantics
15:34 masak nod.
15:34 TimToady the :x outside implies a .*?
15:34 TimToady does it do the same inside?
15:35 masak maybe the litmus test is whether the adverb makes sense inside a smaller scope of the regex. :i does.
15:35 masak :x doesn't much.
15:35 * hugme hugs masak, good vi(m) user!
15:35 masak hugme: false positive :P
15:36 TimToady one can argue that :x(6) means [.*? ...] ** 6 or some such
15:36 alester joined #perl6
15:37 masak / foo [ :x(3) bar ] baz /
15:37 jnthn Mmm...a line of bars.
15:37 masak I think the .*? is very non-Least-Surprise
15:37 TimToady but that's what :x does on the outside!!
15:38 TimToady s:x(3)/foo/bar/ should change the first three foos it finds
15:38 masak yeah.
15:38 TimToady if you meant the other you'd say s/'foo' ** 3/bar/
15:38 masak just registering my instinctive dislike of using it on the inside :)
15:38 TimToady or some such
15:39 TimToady yes, well, it's currently in t/spec :(
15:39 masak :(
15:39 TimToady and maybe even implemented
15:39 masak not in PGE, at least.
15:40 jnthn rakudo: /:x(3) a/
15:40 p6eval rakudo db0f85: OUTPUT«Confused at line 11, near "/:x(3) a/"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
15:40 TimToady maybe it's fudged for rakudo
15:41 TimToady yeah, NYI
15:43 masak in my humble view, it should be forbidden inside regexes, on the grounds that it produces no new semantics, and is quite confusing when used in deeper scopes.
15:44 pugssvn r30210 | lwall++ | [rx.t] remove internal :x and :nth as confusing and redundant
15:45 masak \o/
15:45 jnthn oh yay, now that test will take a little less time to compile. ;-)
15:45 molaf joined #perl6
15:45 TimToady yeah, that's one of the longer ones...
15:45 jnthn (Agree with the decision too.)
15:47 the_llama joined #perl6
15:47 * masak is reminded of http://rt.perl.org/rt3/Tic​ket/Display.html?id=61130 and how personal expectations can clash with more basic semantics
15:49 the_llama left #perl6
15:58 synth joined #perl6
15:58 TimToady hmm, I don't read :nth(1,2,3,4,5) :x(3) the same way pm does
15:59 TiMBuS joined #perl6
15:59 TimToady to me, :nth defines one iteration of :x
16:00 TimToady though I can see it the other way too
16:01 TimToady and I can even see an argument for doing it either way depending on order of :x and :nth
16:01 TimToady this will take more thought
16:01 masak :)
16:02 TimToady it's like whether you count the elements before or after the grep...
16:02 TimToady and whether you count parcels as 1 or many
16:03 ash_ TimToady: do you still think roles with method ^foo { } like methods should be included when you do a does on an object?
16:03 masak in subst, when the adverbs are provided as named args, they don't have an inherent order...
16:04 sundar left #perl6
16:05 TimToady ash_: what is the problem with it?  at worst it seems like it requires a unique metaobject for the class, but surely a metaclass can instantiate new metaobjects when it needs to
16:06 TimToady masak: nod
16:07 ash_ well, what happens if you say do role Foo { method ^compose { ... } }; does that use the Foo specific compose when its mixed in or does it add it to the class? or should that be disallowed?
16:08 TimToady if we have to, we can even derive a new metaclass with the new method mixed in, I suppose
16:08 TimToady or we can conservatively disallow it for 6.0.0
16:09 TimToady esp if we don't really understand its semantics yet
16:09 TimToady I'm fine with either way
16:10 TimToady of course, if an implementation makes assumptions that it will never be possible, it might have another think coming down the road. :)
16:11 TimToady but it seems a bit strange to assume mixin semantics in your classes without mixin semantics in your metaclasses
16:11 TimToady maybe there are optimization issues though
16:12 TimToady or MONKEY_PATCHING issues, though a personal metaclass mixin seems like it's pretty non-actiony-at-a-distance
16:12 TimToady and maybe metaroles are actually important down the line
16:13 TimToady kinda like a role can specify an "is" for the class
16:14 TimToady this is more like a .HOW mixin
16:14 TimToady (or composition)
16:15 ash_ i was trying to, in alpha a while back, see if i could make a role based persistence mechanism, so you can just apply it to objects, or classes, or properties and save them, i ended up overloading does's multi dispatch for does had my role as a parameter to keep track of the types that were being persisted, which seemed odd to me, since i kinda feel like thats something the role should be responsible for
16:15 ash_ s/for/for when/
16:17 TimToady yeah, that seems like a workaround; open to suggestions
16:17 TimToady other than turning Perl 6 into Haskell.  :)
16:18 TimToady would executable hooks in the role be appropriate when composition/mixin side effects are needful?
16:18 ash_ ruby solves the problem kinda by having 2 ways of mixing into a class, one into the instance and one into the meta class, so then if you had any ^methods you could assume they belong to the role and would not be added
16:19 ash_ exectuable hooks would be helpful too
16:19 ash_ thats really all i wanted
16:19 TimToady well, p6 tends to assume that anything ambiguous in a role is to be considered generic, and done within the class
16:20 ash_ executable hooks would of solved my problem, i just think it might be interesting (maybe in a bad way though) if people could override compose for instance
16:20 TimToady making and exception for ^methods seems odd that way
16:20 TimToady *an
16:21 ash_ but that might not be something to encourage, since overriding compose could have consequences someone might not understand
16:21 TimToady well, I'm all in favor of rope, as long as it's hidden from normal view, and comes with a warning label when it's too easy to abuse
16:21 ash_ (like me, for instance)
16:22 TimToady well, the MONKEY_PATCHING approach is extensible, it's just a lexically scope compiler variable, really
16:22 TimToady well, lexical to the program, dynamic to the parser...
16:22 ash_ i also ended up doing: multi sub trait_mod:<does>(AttributeDeclarand $a, Endure::Property, $type) is export at one point
16:23 ash_ so you could say: class Foo { has Str $name does Endure::Property; } and it would know that $name is a string that can be saved if you call .save on the Foo object
16:23 TimToady well, overriding ops on different types if Officially Fine, but of course can be easily abused to fix it in the wrong place.
16:24 TimToady s/if/is/
16:24 ash_ yeah, that felt like i as doing something wrong, since i had to do some funny stuff with AttributeDeclarand to get the type, like: $a.container.VAR does Endure::property;
16:25 Psyche^ joined #perl6
16:25 TimToady well, I don't have time to review the whole thing right now, but it sounds like you have your head screwed on straight :)
16:25 TimToady (got a $job meeting today)
16:25 ash_ i kinda stopped working on that till rakudo got a bit further, maybe by rakudo* i can finish it :P
16:25 ash_ no worries
16:25 TimToady thanks for thinking about these things
16:26 TimToady every now and then I wish I were omniscient, but then I'd be responsible :)
16:27 ash_ i think my thing was i felt like i was jumping through hoops to accomplish something, and thats when I started to wonder if i was "Doing it wrong" or if maybe i was the only one trying to do what i was doing
16:32 Su-Shee how do I say in english "simple, tidy, neat, tiny" (code) if I mean it in an elegant, zen-like way and not in the "simpleton, stupid, redneck" way? is there a nice adjective?
16:32 araujo ash_, hacking rakudo?
16:33 ash_ TimToady: ultimately, the end user of my library could do things like: http://gist.github.com/345078
16:33 ash_ i was thinking the has_many and belongs_to would need to be macro's or something, but thats my initial thoughts
16:33 masak ash_: for what it's worth, all Perl 6 programming is "jumping through hoops" at this point, if you ask me.
16:34 ash_ araujo: not specifically on rakudo, more just thinking about perl6 in general
16:34 masak ash_: put differently, if you're not willing to put temporary workarounds in your code, you're not likely to get very far.
16:34 araujo ash_, I see
16:35 rgrau_ joined #perl6
16:36 ash_ masak: i think my biggest issue was i was worried i was doing it wrong
16:36 ash_ just because i can do silly pointer arithmetic in C doesn't mean i should if i don't need to
16:36 masak ah. I see.
16:37 masak well, a mixture of experimenting and reading other people's code oughta help against the fear for doing things wrong.
16:37 masak it's never possible to prove that one is doing things right :P
16:38 jnthn ash_: The issue is partly timing too.
16:38 jnthn (On ^foo things from roles)
16:39 pyrimidine joined #perl6
16:39 ash_ when i was overriding how does applies to AttributeDeclarand and my role I made i kinda was like "i hope i am not breaking the class by doing this..."
16:39 TimToady Su-Shee: concise or succinct maybe
16:40 jnthn ash_: In general, I think overriding declarative parts of the meta-model on a per-class basis (or with the details coming from a role) is shakey ground.
16:41 Su-Shee TimToady: thank you.
16:41 ash_ Su-Shee: being from texax and living in alabama, i must say putting us rednecks in with simpletons and stupid folk is hurtful, you forgot narrow minded and "slow"
16:41 TimToady well, better to override .HOW *before* the object is created rather than after :)
16:41 jnthn TimToady: Well, yes. :-)
16:41 TimToady so maybe it's allowed in composition and not in mixin?  I dunno...
16:41 ash_ s/texax/texas/
16:42 jnthn TimToady: For those things, just declaring a custom metaclass up front is probably better.
16:42 jnthn TimToady: Well, composition is still weird.
16:42 Su-Shee ash_: well I didn't know how to describe it properly :)
16:42 jnthn TimToady: If you compose, say, ^add_method from a role
16:42 jnthn It's too late in a sense. Most of the methods already got added.
16:42 ash_ Su-Shee: you gotta speak slowly and loudly, it makes foreigners understand you better, proven fact
16:42 jnthn Since the role composer needs to know what's already to ahdn in the class.
16:43 TimToady well, if we disallow weird, we probably disallow cool as well...
16:43 cosimo joined #perl6
16:43 TimToady but certainly there are places we can put a few "Here Be Dragons" signs
16:43 ash_ jnthn: so your saying i need to make a custom RoleHOW for my role then?
16:44 jnthn TimToady: I'm not saying disallow it. I'm just saying people will get bitten by the semantics. OTOH, if you're fiddling with adjusting the metaobject while it's being used to define a class, you probably deserve the bites. :-)
16:44 jnthn ash_: IIUC, what you're after is more to know "this role just got composed into this class".
16:45 TimToady we could take the approach of lacing the cigarettes with strychnine, of course... :)
16:45 jnthn ash_: I suspect for that we do want to define a more callback-ish mechanism / hook of some kind / phaser or something.
16:46 TimToady role hooks are probably useful for registration purposes
16:46 jnthn TimToady: Yeah, I'm very open to having some functionality along those lines.
16:46 jnthn It's come up before too.
16:46 TimToady you two feel free to propose something there
16:46 ash_ TimToady, jnthn yeah that would be enough to know what I need to know
16:47 ash_ knowing when does was called, and knowing when an object was inherited i think cover most of the cases i can think of
16:47 cdarroch joined #perl6
16:47 cdarroch joined #perl6
16:47 TimToady seems to me that most of the action at a distance can be caught by the fact that metaclasses are also theoretically encapuslated and private
16:47 TimToady *su
16:48 jnthn ash_: Maybe a starting point could be to try and come up with some patch for metamodel.pod to specify how it could look.
16:49 jnthn ash_: I'm not quite sure how it should look right now, tbh, but my brain is a tad mushy today.
16:50 TimToady shower &
16:51 ash_ jnthn: do you know where the AUTO stuff is? in the spec or tests?
16:52 masak S10, S13...
16:55 ash_ i am just thinking about something that is method like but not a method, the AUTO* methods (AUTOSCALARDEF for instance) that way there is a clear distinction between the callback and the normal methods
17:02 masak I feel insufficiently versed in that part of Perl 5 to be able to give an informed anwer.
17:03 gabiruh joined #perl6
17:03 ash_ std: class Foo { AUTOSCALARDEF { 1 + 2 } };
17:03 p6eval std 30210: OUTPUT«Undeclared name:␤      'AUTOSCALARDEF' used at line 1␤ok 00:01 106m␤»
17:04 ash_ thats odd
17:04 ash_ it says 'ok' but apparently generated a warning?
17:04 jnthn Warnings are not unok.
17:04 jnthn :-)
17:05 the joined #perl6
17:06 masak ash_: it treats 'AUTOSCALARDEF' as a bareword function call, and allows for the fact that it's missing its definition somehow.
17:06 masak std: eval 'sub foo() {}'; foo
17:06 ash_ just thinking along those lines, you could do: role Foo { COMPOSED($obj) { say "Foo got composed into $obj" } }
17:06 p6eval std 30210: OUTPUT«Undeclared routine:␤   'foo' used at line 1␤ok 00:01 105m␤»
17:06 the_llama joined #perl6
17:07 the_llama k
17:08 ash_ you could probably use that with a class too, IMO, for when they are inherited
17:10 jnthn I think we shoudl distinguish them.
17:10 jnthn Since you can pun a role into a class
17:12 ash_ okay, thats fine, one other question, if you call self from within the COMPOSED what should it refer to?
17:12 jnthn Well, hmm
17:13 jnthn Good question.
17:13 ash_ or does it have a self?
17:13 jnthn I think it's more phaser-ish than method-ish.
17:14 ash_ also, if you chain them, say class A { INHERITED($subclass) {  } }; class B is A; class C is B;   did that get called on C is B?
17:15 ash_ chain isn't the right word, but i think you see what i mean
17:15 dalek rakudo: 4a5a252 | moritz++ | src/core/operators.pm:
17:15 dalek rakudo: fix infix:<Z> to work with non-lists, as suggested by jnthn++. Fixes RT #73836
17:15 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/4​a5a252df1d31c372424b175b92c31fe1f84a3ae
17:15 jnthn Yeah...is it transitive or not.
17:15 jnthn Hmm.
17:15 jnthn Neither answer is obvious to me right off on that one.
17:16 jnthn Would have to ponder it some more.
17:16 ash_ class A { INHERITED($subclass) {  } }; class B is A { INHERITED($subclass) { nextsame; } }; class C is B; ?
17:16 jnthn If it's not methodish, I'm not sure if nextsame makes sense.
17:16 ash_ ya
17:17 ash_ you could approach it kinda like how BUILD works i suppose
17:18 jnthn Hmm, possible.
17:18 jnthn *possibly.
17:18 jnthn More sub-ish.
17:18 jnthn Could work.
17:19 ash_ would be kinda nice if there was 1 overarching mechanism that COMPOSED and INHERITED worked from
17:20 jnthn There's some other complicating factors with COMPOSED too.
17:20 jnthn e.g. do we only care about it when we actually get down into a class
17:20 jnthn or when composed into other roles too
17:22 abra joined #perl6
17:23 jnthn (I'd argue for the class approach...other one is too confusing, particularly as we produce throw-away roles during the composition process)
17:28 sundar joined #perl6
17:29 ash_ is that the case of role A {}; role B does A {}
17:29 dual joined #perl6
17:29 jnthn No throw-away there
17:30 masak nom &
17:30 jnthn given roles R1 and R2, class Foo does R1 does R2 { } creates one temporary role that does R1 and R2, and then mixes that into the classes.
17:30 jnthn That is, the flattening semantics are handled amongst roles.
17:31 ash_ ah, got ya
17:31 jnthn See various things in src/metamodel/ - these bits are largely written in NQP. :-)
17:32 Chillance joined #perl6
17:35 ash_ well, following the pattern of least surprise, i'd expect class A does R1 does R2 { } to call back R1's composed one time, and R2's composed one time
17:36 jnthn ash_: Right.
17:36 ash_ in both cases i'd expect the $obj being composed against to be class A
17:36 jnthn And you'd probably expect to be provided with A.
17:36 jnthn Seems we have similar expectations. :-)
17:38 TimToady why have an argument to those two hooks?  why not just bind the object temporarily to self or $_?
17:38 TimToady I tend to prefer my hooks with bare names...
17:38 jnthn That would also work.
17:38 jnthn And makes them hookier I guess.
17:38 jnthn In a consistency sense.
17:38 TimToady like the current exception comes into CATCH, for instance
17:39 jnthn aye, there's precedent
17:39 jnthn Good call.
17:39 TimToady but in this case, if there's only one obvious object in question, could easily be 'self'
17:39 TimToady depending on whether it's better for it to be an object or a topic
17:39 ash_ yeah, makes sense, i had them separate for explicit access to each side of the does though
17:40 TimToady and if there are two objects involved, one can be self and the other topic
17:40 jnthn Yeah, but since it's in the thing that wants to be notified, it knows what it is.
17:40 TimToady waht I thought
17:40 TimToady and there's always OUTER::
17:40 jnthn Well, $?CLASS and $?ROLE too.
17:40 ash_ role Foo { COMPOSED($obj) { } }; class A does Foo { }, i thought self in COMPOSEd would be Foo and object would be A
17:40 TimToady yeah
17:40 ash_ that was my logic when i wrote that anyway
17:40 TimToady so it's really just a choice between self or $_
17:41 payload joined #perl6
17:41 jnthn role Foo { COMPOSED { .say } }; class A does Foo { }; # says A
17:41 jnthn well, A()
17:41 jnthn Guess you get the proto-object.
17:41 niros joined #perl6
17:41 TimToady or $.say, if we went the self route
17:41 jnthn Yeah
17:41 jnthn I'm more inclined to go the $_ route for consistency with CATCH
17:41 TimToady since effectively it's running in the context of the new object
17:42 jnthn Then you can when on it.
17:42 TimToady troo
17:42 TimToady not earthshaking either way, but I'd be happy with $_
17:42 TimToady esp since it doesn't *look* like a method
17:42 pmichaud good afternoon, #perl6
17:43 TimToady o/!
17:43 ash_ makes sense
17:43 jnthn \o/ is's pmichaud!
17:43 ash_ greetings
17:43 TimToady I have to go to $job in about 5
17:43 takadonet $job=undef
17:44 takadonet You don't have to go anymore :)
17:44 jnthn undef is not a Perl 6 concept. :-)
17:44 ash_ sub undef { Mu }
17:44 jnthn lol
17:44 takadonet $job=Mu ?
17:44 jnthn Somebody *will* write a module that does that...
17:44 ash_ lol, it wouldn't suprise me
17:45 TimToady hmm, COMPOSED { .defined } tells you are doing an object mixin, I think
17:45 jnthn ...ooh.
17:45 jnthn It probably does, yeah.
17:45 jnthn Or could be made to.
17:46 TimToady COMPOSED:U and COMPOSED:D  :)
17:47 TimToady pmichaud: notice recent spec change, :foo<a b> now officially means foo => ('a','b'), not {} or []
17:48 pmichaud TimToady: noted, thanks.
17:48 pmichaud makes sense from a language perspective
17:48 TimToady so we can now again do the sort:{} trick
17:48 TimToady because name extensions don't take :{ anymore
17:48 TimToady since everyone keeps writing those anyway...
17:48 pmichaud works for me, since  <a b>  is ('a', 'b')  anyway
17:49 TimToady only surprise is that :{} starts the argument list, so a following , continues it
17:49 TimToady some tests assumed it would terminate as an adverb inside 'is'
17:49 pmichaud and keeps the meme that :foo<<<something>>>  acts more like a circumfix than a postcircumfix
17:50 TimToady yes
17:50 TimToady seems more regular, except for the new sort:{ exception that doesn't require space before {
17:50 TimToady tried to work it as an adverb, but then postfixes are too late
17:51 pmichaud yes.
17:51 TimToady so .sort:{}.grep would not work
17:51 pmichaud I'm so out-of-sync with recent changes, I fear I might never catch up.  :-/
17:51 TimToady (or other way around, probably)
17:51 TimToady we'll write a book for you :)
17:52 ash_ std: sort:{ $^a > $^b }, <4 3 2>
17:52 p6eval std 30210: OUTPUT«ok 00:01 108m␤»
17:52 ash_ so like that?
17:52 TimToady no
17:52 TimToady not on functions
17:52 TimToady in fact, I'm not entirely sure how that parsed...
17:53 ash_ lol, oops, i think i am misunderstanding the change your referring to
17:53 TimToady only .sort, not sort
17:54 ash_ std: <4 3 2>.sort:{ $^a > $^b } # that then?
17:54 p6eval std 30210: OUTPUT«ok 00:01 107m␤»
17:54 TimToady in fact, I think it parsed it as (sort :{}), 4,3,2
17:55 TimToady yes, that
17:55 TimToady gotta commute &
17:55 jnthn o/
17:56 ash_ lunch &
18:01 sekon joined #perl6
18:02 sekon hello
18:05 sekon is there a list of "low hanging fruit" as such
18:06 jnthn sekon: hi! :-)
18:06 sekon so that an inexperienced programmer can be of some use
18:06 jnthn sekon: Depends what you want to work on. :-)
18:06 jnthn sekon: But yes, there are ways to track down such things.
18:08 sekon jnthn: Hi thanks for the response .. is there a current list of bugs that need to be taken care of I am an inexperienced developer looking to make a meaningful contribution to open source code
18:09 sekon jnthn: I have no priorities as such and just want to help
18:09 jnthn sekon: Well, there's more than one pile of source code to hack on. :-) If it's Rakudo you want to work with, check out the RT queue. http://rt.perl.org/ There's a search interface and we do tag some things as LHF.
18:09 sekon jnthn: thanks and have a great day
18:11 jnthn sekon: Thanks, you too. And do drop by here plenty too. There's lots happening, it's not always this quiet. :-)
18:11 jnthn sekon: There's also plenty of opportunities for working on modules and contributing to the test suite, both of which are also extremely valuable.
18:17 revdiablo joined #perl6
18:19 lichtkind joined #perl6
18:19 * jnthn -> shops, bbiab
18:25 PacoLinux joined #perl6
18:28 chromatic joined #perl6
18:28 pmurias joined #perl6
18:28 hanekomu_ joined #perl6
18:49 ash_ joined #perl6
19:08 cj joined #perl6
19:08 cj woot.  I got the DLR into ubuntu.  now all we need to do is build a perl6 interpreter on top of it ;)
19:09 sekon cj: Soorry DLR??
19:09 TimToady the CLR, only D
19:10 jnthn :-)
19:10 jnthn Dynamic Langauges Runtime
19:10 jnthn cj: Cool. :-)
19:12 pmurias cj: shouldn't we build a perl6 compiler targeting it instead of an interpreter on top of it?
19:14 ShaneC joined #perl6
19:17 ash_ is there another perl 6 project targeting the DLR?
19:19 pmichaud I think we plan to target DLR with Rakudo and NQP at some point
19:23 jnthn After Rakudo *. :-)
19:26 pyrimidine joined #perl6
19:28 TimToady ash_: yes, sprixel
19:28 hanekomu_ joined #perl6
19:29 ash_ is the DLR cross platform?
19:29 Coke joined #perl6
19:30 Coke hio. which syn for "how to break out of a while loop" ?
19:30 ash_ or does it run on like mono?
19:30 pmichaud Coke: 'last'
19:30 Coke I'm looking at http://perlcabal.org/syn/S04.html, but while doesn't say, and neither does Control Exception.
19:30 pmichaud while $cond { last if $other_cond; }
19:30 sekon left #perl6
19:31 Coke pmichaud: yes, but where is it documented. This isn't the first time I've had to come to #perl6 to find out and I wish to avoid bothering you nice people. =-)
19:31 pmichaud Coke: I suspect it falls into the "same as Perl 5" category.
19:31 Coke pmichaud: that would explain it. danke.
19:32 TimToady Coke: S04:334
19:33 TimToady grep is your friend
19:34 ash_ grep is nice, but i like ack, plus its written in perl
19:34 Coke TimToady: that's what I get for reading the nicely formatted one at http://perlcabal.org/syn/S04.html =-)
19:34 Coke TimToady++
19:34 chromatic Speaking of pmichaud, what's necessary to get the status graphs updated again?  Is that something anyone could do?
19:34 Coke pmichaud++
19:34 TimToady most browsers can search too :)
19:34 pmichaud I need to write up the steps and publish the script.
19:34 pmichaud (for the status graphs)
19:35 Coke TimToady: <grumble>
19:36 Coke hurm. this doesn't seem to ever break out, in NQP:
19:36 Coke while pir::length__is($string) {
19:36 Coke last
19:36 Coke }
19:37 Coke (nqp-rx, I mean)
19:39 Coke even while 1 { last } doesn't break out.
19:40 ash_ hmmm, nqp-rx doesn't define a 'last' op i don't think
19:41 Coke I would expect an error instead of a silent ignore, then. odd.
19:42 ash_ i don't see last in the nqp grammar anyway...
19:45 Coke danke, ash_
19:47 ash_ Coke: my $a := pir::length__is($string);
19:47 ash_ while $a {
19:47 ash_ say($a);
19:47 ash_ $a--;
19:47 ash_ }   might do what you want
19:48 pmichaud I think NQP doesn't implement 'last' yet, although it certainly can do so.
19:49 ash_ pmichaud: looks like someone added a few things to nqp for a project, http://www.gitorious.com/kakapo/kakap​o/blobs/master/src/Syntax.nqp#line19 has an addition for some of that
19:49 pmichaud ash_: yes, that's Austin Hasting's work
19:50 pmichaud (probably with others as well)
19:50 Tene I might be able to get to that tonight.
19:50 pmichaud he's implemented next() as a function; I've been thinking it might be worthwhile to have it act like a keyword, similar to how 'return' and 'make' are currently handled in NQP
19:50 Tene yes
19:50 Tene exactly
19:51 pmichaud although I wasn't going to implement any ability to pass an argument to next/last/redo in nqp, at least not yet.
19:52 Tene the argument would be the block that you're targeting, yes?  I certainly wouldn't expect that in NQP.
19:52 pmichaud I think the argument can also be the value to be used for the current iteration of the loop
19:52 pmichaud i.e.,
19:52 Tene ... ouch
19:53 pmichaud my @a = (for 1..5 { next $_ * 2; } );   # @a becomes 2, 4, 6, 8, 10
19:53 pmichaud but I'm not entirely certain of that.
19:53 pmichaud my memory of the spec is a bit hazy these days
19:55 ash_ pmichaud: can ranges take a variable on either side in nqp? like 1..$a ?
19:57 * jnthn didn't know NQP did ranges...
19:57 Coke pmichaud: thought you'd appreciate this: time to run t/cmd_llength.t in partcl: 1.4s; in partcl-nqp: 0.87s
19:57 Coke (of course, partcl-nqp isn't able to do as much yet, but that seems encouraging)
20:02 SEcki joined #perl6
20:04 pmichaud NQP doesn't do ranges, no.
20:04 pmichaud I was more pointing out what Perl 6's "next" function could do, that NQP's likely will not.
20:05 pmichaud NQP can't do ranges because Parrot doesn't supply a Range type :-)
20:05 ash_ ah, that would make sense
20:05 pmichaud (well, it *could* go ahead and treat 1..5 as meaning (1,2,3,4,5) but that seems like it'd be asking for trouble in other areas)
20:06 pmichaud anyway, I suspect ranges are one of the areas where NQP tends to emphasize the NQ :-)
20:06 ash_ yeah, make sense
20:07 ash_ in my nq-nqp i am thinking of adding a delete $a; since i don't have GC
20:09 payload joined #perl6
20:09 molaf joined #perl6
20:12 dalek joined #perl6
20:13 Guest85367 joined #perl6
20:23 M_o_C joined #perl6
20:41 mathw Evening
20:41 jnthn mathw: o/
20:42 mathw o/ jnthn
20:42 mathw how're things
20:42 jnthn Not so bad
20:42 jnthn Spent too much of this week dealing with visa stuff. But it's done now...hopefully. :-)
20:42 mathw yay
20:42 jnthn And you? Cold shaken off?
20:42 mathw well I've got myself to a point where I consider myself well
20:42 mathw and have been to aikido today
20:43 mathw ...twice
20:43 jnthn Yes, I saw the photo. :-)
20:43 mathw so happy me
20:43 jnthn \o/
20:43 mathw thus you know that I got my 6th kyu :D
20:43 colomon \o/
20:43 jnthn Yes. Congrats! :-)
20:43 * mathw would dance, but is too exhausted
20:43 mathw two classes in a day is hard
20:43 mathw I have no idea how I'm going to survive summer school
20:43 mathw that's about eight hours a day for four days
20:43 jnthn Whoa!
20:43 mathw FOUR DAYS!
20:44 mathw but there will be three 7th dans teaching
20:44 mathw so it's really quite unmissable
20:44 mathw especially since it happens in Nottingham
20:44 mathw (because we're the head dojo. hah!)
20:45 jnthn :-)
20:45 Helios joined #perl6
20:45 mathw it'll be quite the experience
20:45 mathw if only for the chance to see sensei phil do his 4th dan test
21:10 mathw ow
21:11 pyrimidine left #perl6
21:11 jnthn mathw: Was that at aikido pains, cat induced, or Rakudo build memory consumption? :-)
21:11 mathw aikido pains
21:11 mathw my forearms are not happy
21:12 mathw the cat seems to be scared of me tonight, which is a bit odd
21:12 mathw he's usually all over me
21:12 ignacio_ joined #perl6
21:13 mathw particularly after I've been out
21:13 mathw ah, here he comes
21:26 colomon moritz_: Is there a reason you didn't use the same patch for infix:<X> as you did for infix:<Z>?
21:27 moritz_ colomon: none than human imperfection
21:27 colomon :)
21:31 moritz_ s/than/but/
21:32 * moritz_ -> bed
21:32 colomon night!
21:32 jnthn sleep well o/
21:32 ignacio_ joined #perl6
21:44 mberends joined #perl6
22:15 sundar left #perl6
22:21 sorear joined #perl6
22:26 riffraff joined #perl6
22:30 ignacio_ joined #perl6
22:41 pmurias mathw: how does a dan test look like?
22:48 sorear jnthn: My problem right now is - how to expose references to Parrot?
22:49 sorear jnthn: best idea at present is - at return, reference chains are unwound, and a P5{not scalar} is returned; non-scalars are reffed on passing
22:51 pmurias sorear: what does reference chain unwounding mean?
22:51 pmurias \\\1 is turned into 1?
22:51 sorear jnthn: this seems to have the highest Just Work factor, but it prevents some interesting things
22:51 sorear pmurias: yes
22:51 pmurias why do you want to do that?
22:52 sorear jnthn: another idea is to just handle refs as scalars, and axe P5Sub et al.  Big disadvantage: since a scalar doesn't implement Callable &c, you can't treat random P5 returns as P6 sigil variables
22:53 sorear pmurias: because there is no Parrot API for handling references, nor any P6 syntax, so it's not possible to simply expose them as a data type
22:53 sorear unless we just expose them as objects, which would be insane
22:53 jnthn sorear: Hmm. In the Perl 6 sense, I guess things generally behave like references.
22:53 pmurias aren't captures the reference replacement
22:53 pmurias ?
22:53 sorear CGI.new.DEREFERENCE.header
22:54 jnthn That is, $x = @foo; $x[1] # just works
22:54 sorear jnthn: this is sort-of where I'm going with #1 - no explicit refs on the P6 side
22:55 jnthn I agree they shouldn't be explicit, I think. At lesat not at the first level
22:56 pmurias jnthn: it's equivalent to $x = \@foo; $x->[1] in perl5
22:56 jnthn Deeper than that though...don't know that it makes sense to totally unwind them.
22:56 jnthn pmurias: Right. In Perl 6 the dereference is kinda "implicit" though.
22:57 pmurias jnthn: the referencing is
22:57 Alias_ joined #perl6
22:57 pmurias jnthn: the deferencing syntax is just shorter
22:57 pmurias because of sigil invariance
22:58 pmurias sorear: i think you shouldn't convert data types
22:58 jnthn Well, true, in a sense.
22:58 jnthn pmurias: Not sure what you mean by "convert data types"...
22:59 betterworld joined #perl6
22:59 jnthn sorear: I don't think you can unpack the whole chain - if anything it makes the round-tripping not really work out.
22:59 sorear the problem with first level is that it breaks round-tripping for scalar refs
22:59 supernovus joined #perl6
23:00 pmurias if you unpack refs how are we supposed to write that into them?
23:00 sorear pmurias: Data type conversion is a necessary evil.  80% of the hard technical decisions in Blizkost have involved drawing and re-drawing the line between "necessary" and "evil"
23:01 pmurias why is it necessary?
23:01 pmurias parrot limitations?
23:01 jnthn sorear: I'd imagine more that there'd just be a wrapper PMC around the SV and when you tried to do some kind of indexed access.
23:01 sorear perl5 limitations
23:01 sorear jnthn: that was my Second Idea
23:01 sorear the problem with /that/ is that SVs are mutable
23:01 jnthn erm, and it de-referenced when you tried to...
23:02 jnthn How does that bite us?
23:02 sorear my @foo = thing_from_perl5;  #( Perl5 does something in some other code which causes the SV to no longer be a ref)
23:02 sorear now @foo points to a scalar, not a Positional
23:02 sorear oops boom
23:02 pmurias sorear: what perl5 limitations?
23:03 sorear pmurias: it's not written on top of parrot
23:03 jnthn So long as it's oops boom in the "throws an Exception" sense rather than the "omg segfault" sense...
23:03 sorear so I can't just pass PMCs to it
23:03 jnthn ...I think that's probably OK.
23:03 sorear I have to munge them into SVs, which are similar but not quie the same
23:03 sorear and do reverse munging later
23:03 pmurias sorear: i didn't encounter anything substantial when working on smop/p5 interop
23:04 pmurias sorear: why can't you wrap SV* into a SV PMC
23:04 jnthn I think that's more likely to work out right than taking out all the chains.
23:04 sorear pmurias: because a SV PMC would have a variable list of roles
23:05 jnthn sorear: That's fine.
23:05 jnthn sorear: Override does vtable. :-)
23:05 jnthn sorear: It can say it does whichever roles it likes. :-)
23:06 sorear oooh
23:06 supernovus I wish I knew C (and wasn't afraid of perl5 guts)...
23:07 sorear smop lives?
23:08 pmurias i sometimes hack on mildew (which targets smop and js)
23:09 pmurias sorear: it's not very active, but it's not yet dead
23:13 supernovus I'm afraid my work on Temporal.pm has been rather sparce lately, don't know if it'll be ready for Rakudo * (I still wonder if it shouldn't be an external lib anyway...)
23:15 sorear What does it do?
23:16 supernovus sorear: was that at me or pmurias?
23:16 sorear You
23:18 supernovus Temporal is provides functionality similar to the DateTime and TimeDate distos for perl5. Basically, simple date and time operations.
23:20 supernovus it is currently listed as a part of the perl 6 setting/core. I think it may be a bit much for a "core" library.
23:23 ruoso joined #perl6
23:24 pmurias ruoso: hi
23:24 supernovus my work is based on the provisional Temporal.pm from the alpha branch as well as masak's Temporal Flux project.
23:25 masak joined #perl6
23:25 masak ahoy, #perl6!
23:25 supernovus speaking of masak! hi!
23:26 masak the insomnia trend continues!
23:26 mberends it must be catching!
23:26 masak :)
23:26 masak I'm only staying for a short Temporal period, though.
23:27 masak I need to apply some corrective temporal twists to my sleep habits.
23:27 jnthn lolitsmasak!
23:27 supernovus gah, more Temporal references!
23:28 supernovus typing on the pre keyboard is "fun" when on irc...
23:29 sjohnson yo masak
23:29 sjohnson hey jnthn
23:29 masak sjohnson: \o
23:29 sjohnson question for you (i may have already asked this, forgive me)
23:29 masak yayitsjnthn!
23:29 sjohnson jnthn: i was reading your page a while ago and wanted to let you know about http://sourceforge.net/projects/unxutils/ if you didn't know about it already
23:29 sjohnson makes win32 life a lot more pleasant
23:30 masak speaking of the young-girl demographic (or children in general): there's a 3D storytelling programming language called Alice. http://www.alice.org/index.php?p​age=what_is_alice/what_is_alice
23:32 masak jnthn: in PIR, when a sub's declared to be a :method, can it still be called with any old invocant?
23:32 supernovus masak: looks neat, may have to play with Alice later.
23:32 jnthn masak: yes
23:32 masak jnthn: yuck! :)
23:32 jnthn masak: Why?
23:32 jnthn :-)
23:32 masak jnthn: I don't know. instinctive reaction.
23:33 masak it's like it's a method of *all* classes at the same time.
23:33 masak (it also explains a couple of RT tickets I've submitted)
23:33 jnthn masak: :method is just an instruction to install it in the methods table and to handle the self register
23:33 masak nodnod
23:33 masak it's slowly sinking in.
23:33 jnthn masak: Parrot doesn't handle type checking and stuff. We build that ourselves. :-)
23:34 masak alpha: regex foo { x a* y }; say foo 'xaaaay'; say foo 'hsfl'
23:34 jnthn (Or fail to at the moment, I guess...)
23:34 p6eval alpha 30e0ed: OUTPUT«xaaaay␤␤»
23:34 masak jnthn: the sub 'foo' that's installed there is a method.
23:34 masak jnthn: it gets called with self being the string passed in.
23:34 jnthn Yeah
23:34 masak jnthn: I need to... do something like that in GGE.
23:35 jnthn In master things get even more fun in that sense in that Perl 6 methods don't actually compile down to a :method in Parrot.
23:35 masak I'm still thinking of what that something is. :)
23:35 masak jnthn: so Rakudo master reinvents methods on the Perl 6 layer?
23:35 jnthn sjohnson: Yes, I know about that one.
23:36 jnthn masak: It was actually easier that way.
23:41 supernovus well, phone is dying, time to say farewell.
23:41 jnthn o/
23:42 supernovus ttyl!
23:42 supernovus left #perl6
23:43 Tene Yet another place where I worry about language interop.
23:43 masak yayitstene!
23:44 Tene yayitsme!
23:44 Tene where?!?!
23:44 masak :)
23:45 Tene Yeah, rakudo worries me about failur eof language interop in several ways.  I haven't been available enough to actually do anything about it to be able to complain, though.
23:45 masak please complain in more detail.
23:49 Tene "I've seen a few things that make me vaguely uneasy about possible language interop concerns, if nobody else fixes them."
23:49 * Tene waves his hands around aimlessly.
23:50 sorear Tene: Interop problems in rakudo?
23:52 masak Tene: I don't have language interop concerns, because I don't do language interop. instead, I reinvent the wheel in Perl 6, and then drive around with teeth clattering. :P
23:52 Tene sorear: rakudo methods aren't actual parrot :methods, jnthn says.  What are the implications of that on trying to call methods on rakudo objects from other parrot languages, or calling methods on other-language objects from rakudo?  When I define postcircumfix:<[ ]> method on a class, how is that related to the *_pmc_keyed_int vtables? etc.
23:52 jnthn Tene: The methods one isn't a problem.
23:53 hercynium joined #perl6
23:53 jnthn Tene: All dispatch - from Rakudo or to Rakudo things - goes through find_method and invoke.
23:53 jnthn Tene: The postcircumfix:<[ ]> one is more of an issue though.
23:54 Tene also postcircumfix:<{ }>
23:55 jnthn Yup.
23:55 Tene there are also issues with .Bool and :get_bool, .Str and :get_str, etc.
23:55 Tene several others.
23:55 jnthn Yes.
23:55 Tene there are issues with inheriting vtables overrides, though, so that's awkward to fix.
23:55 Tene I think.
23:56 jnthn Yeah. :-/
23:56 Tene Anyway, these aren't inherently unfixable, just need attention eventually.
23:58 * Tene afk driving home
23:58 sorear jnthn: does this mean that blizkost values won't be usable as hashes &c?
23:59 Tene sorear: Yes, I expect it does.
23:59 jnthn sorear: We already have something in place that falls back to get_pmc_keyed vtables.
23:59 jnthn In the case that the thingy lacks a postcircumfix:<{ }> method.
23:59 jnthn Whether it works well or not, otoh...
23:59 jnthn But fixable if not.

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

Perl 6 | Reference Documentation | Rakudo | Niecza | Specs