Camelia, the Perl 6 bug

IRC log for #perl6, 2011-10-07

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:07 replore joined #perl6
00:40 carlin joined #perl6
00:42 sivoais joined #perl6
00:49 BLZbubba joined #perl6
00:53 [Coke] joined #perl6
01:06 drbean joined #perl6
01:20 wolfman2000 joined #perl6
01:38 diakopter oh noes, Out of memory   trying to build std on cygwin. :/
01:41 Sarten-X joined #perl6
02:06 envi joined #perl6
02:12 replore_ joined #perl6
02:58 soh_cah_toa perl6: class Foo { has $.attr; method foo() { $.attr = 42; say 'ATTR IS $.attr' } }; my $foo = Foo.new; $foo.attr = 123; say $foo.attr
02:58 p6eval pugs, niecza v10-39-g64c5778: OUTPUT«123␤»
02:58 p6eval ..rakudo 1c2c2d: OUTPUT«Cannot assign to a readonly variable or a value␤  in block <anon> at /tmp/HKbwjiqAd6:1␤  in <anon> at /tmp/HKbwjiqAd6:1␤»
02:59 soh_cah_toa isn't the . twigil supposed to create a public accessor method?
03:01 cognominal_ joined #perl6
03:02 soh_cah_toa perl6: class Foo { has $.attr }; my $foo = Foo.new; $foo.attr = 123; say $foo.attr
03:02 p6eval pugs, niecza v10-39-g64c5778: OUTPUT«123␤»
03:02 p6eval ..rakudo 1c2c2d: OUTPUT«Cannot assign to a readonly variable or a value␤  in block <anon> at /tmp/YWP5HYnfBw:1␤  in <anon> at /tmp/YWP5HYnfBw:1␤»
03:02 colomon soh_cah_toa: I believe it's read only by default
03:02 soh_cah_toa oh yeah, i think i remember that know
03:02 soh_cah_toa *now
03:11 drbean joined #perl6
03:17 odoacre joined #perl6
03:28 ponbiki joined #perl6
03:35 sorear good * #perl6
03:35 soh_cah_toa sorear: howdy
03:38 sorear hello diakopter, soh_cah_toa, jnthn
03:39 sorear I wish I knew what's up with my internet connection now
03:39 sorear host02 is infuriatingly laggy and even ping google.com is coming up 300+
03:39 sorear used to be <20
03:39 soh_cah_toa ouch
03:51 sorear been like this for about 3 days
03:52 sorear jnthn: soh_cah_toa: FWIW I'm looking into niecza changes that will allow our Str $x
03:53 soh_cah_toa sorear: does the spec allow that though?
03:53 soh_cah_toa now i understand why it doesn't
03:54 soh_cah_toa s/it/rakudo/
03:54 sorear soh_cah_toa: the spec is silent on the issue
03:54 soh_cah_toa interesting
03:55 sorear the synopses leave many things implied
03:56 soh_cah_toa that seems like something that should. it could cause a lot of potential confusion and destroy cross compatibility of certain modules
03:56 satyavvd joined #perl6
03:56 sorear I remain convinced that once we finish airtightening the specs they'll be longer than C++1x
03:56 soh_cah_toa oh i'm sure it will :)
04:06 daniel-s joined #perl6
04:15 soh_cah_toa does p6 have a 'use lib'-like pragma or do i have to actually modify @*INC?
04:18 sorear please don't modify @*INC.
04:18 sorear use lib! use lib!
04:18 soh_cah_toa i know, i don't want to
04:19 soh_cah_toa i don't think 'use lib' works though :\
04:19 * soh_cah_toa double checks
04:20 soh_cah_toa yeah, it doesn't work. unless i'm doing something wrong...
04:23 molaf joined #perl6
04:40 jaldhar_ joined #perl6
04:47 jaldhar_ joined #perl6
04:54 envi joined #perl6
05:00 cognominal joined #perl6
05:03 SHODAN joined #perl6
05:04 kaleem joined #perl6
05:13 sorear masak: ping
05:15 gbacon joined #perl6
05:16 alvis joined #perl6
05:19 sorear phenny: tell masak After a careful rereading of http://192.220.96.201/dylan/​linearization-oopsla96.html , I beleive niecza is doing it right and Rakudo is only C2.  I would like to discuss how you think Niecza is getting it wrong, and add tests.
05:19 phenny sorear: I'll pass that on when masak is around.
05:20 tadzik jnthn: no particular reason :)
05:26 dalek ecosystem: ff8b757 | tadzik++ | META.list:
05:26 dalek ecosystem: Add Pod::To::HTML
05:26 dalek ecosystem: review: https://github.com/perl6/e​cosystem/commit/ff8b757cf5
06:03 kaleem joined #perl6
06:04 Trashlord joined #perl6
06:08 DarthGandalf joined #perl6
06:11 kaleem joined #perl6
06:27 koban joined #perl6
06:27 mattp_ joined #perl6
06:37 baest joined #perl6
06:40 _sri joined #perl6
06:55 GlitchMr joined #perl6
06:58 Trashlord joined #perl6
06:59 moritz good morning
07:02 m6locks gm
07:55 baest joined #perl6
08:00 dju joined #perl6
08:04 meraxes joined #perl6
08:05 ab5tract joined #perl6
08:08 sftp joined #perl6
08:29 sayu joined #perl6
08:33 daniel-s joined #perl6
08:35 cognominal_ joined #perl6
08:41 SHODAN joined #perl6
09:04 mj41 joined #perl6
09:21 drbean joined #perl6
09:25 flussence alester++ # good blog post
09:25 daniel-s joined #perl6
09:25 baest joined #perl6
09:27 tadzik where is it?
09:28 orafu joined #perl6
09:39 wtw joined #perl6
09:47 drbean joined #perl6
09:57 koban joined #perl6
09:59 mberends http://petdance.com/2011/10/theres-only-o​ne-useful-way-to-handle-your-detractors/
10:04 ggoebel joined #perl6
10:08 tadzik makes sense
10:54 mls_ morning perl6!
10:54 phenny mls_: 01 Oct 16:12Z <jnthn> tell mls_ the use of the "inline" keyword in src/runcore/subprof.c (I think this is your thingy, sorry if not) makes me compiler cry very loudly and refuse to build Parrot. Just removing it fixed things, but probably there's a better way.
10:55 tadzik oh, hey mls_
10:56 mls_ finally a day in this week where I have time for some perl6 hacking
10:58 moritz \o/
10:59 gfldex joined #perl6
10:59 moritz you might be able to PARROT_INLINE instead of 'inline', I think it is automatically replaced by 'inline' or the empty string, depending on what Configure.pl detected
10:59 mls_ That's exactly what I'm changing right now ;)
11:01 mls_ plan for today: merge my pct changes to parrot, submit exception/leave handler changes
11:01 mls_ to be reviewed by jnthn++ (and maybe pmichaud++)
11:01 moritz mls_: does your exception changes fix the return value of try { } blocks when an exception was thrown?
11:02 mls_ yes (except that I don't know what the return value should be)
11:02 moritz either the exception (so same as $! on the outside), or a Failure that wraps the exception
11:02 mls_ I think it currently "returns" the exception
11:03 moritz wunderbar
11:03 mls_ we can easily adapt that to anything TimToady++ comes up with
11:04 mls_ PARROT_INLINE change pushed
11:05 replore_ joined #perl6
11:06 moritz pushed to where?
11:08 mls_ parrot master
11:08 donri joined #perl6
11:10 mls_ lunch...
11:18 wamba joined #perl6
11:26 drbean joined #perl6
11:36 Psyche^ joined #perl6
11:40 revdiablo joined #perl6
11:40 revdiablo joined #perl6
11:48 GlitchMr niecza: ('aa' ~~ /a++a/).perl
11:48 p6eval niecza v10-39-g64c5778:  ( no output )
11:48 GlitchMr niecza: (/a++a/).perl
11:48 p6eval niecza v10-39-g64c5778:  ( no output )
11:48 GlitchMr rakudo (/a++a/).perl
11:49 GlitchMr rakudo: (/a++a/).perl
11:49 p6eval rakudo 1c2c2d: OUTPUT«===SORRY!===␤Quantifier quantifies nothing at line 1, near "a/).perl"␤»
12:02 envi joined #perl6
12:02 kfo_ joined #perl6
12:03 donri joined #perl6
12:07 moritz std: /a++/
12:07 p6eval std 20ae3bd: OUTPUT«ok 00:01 120m␤»
12:09 kst joined #perl6
12:12 gbacon joined #perl6
12:16 LuRy joined #perl6
12:24 bluescreen10 joined #perl6
12:31 jlaire joined #perl6
12:34 kst joined #perl6
12:55 moritz_ joined #perl6
12:55 amkrankruleuen joined #perl6
12:57 moritz_ /o\ bad net weather
12:59 flussence just wrote this... https://github.com/flussence/Text-​Tabs-Wrap/blob/1d8d6d838b7a0e562df​b82f78dcd9515ecc59133/doc/wrap.mkd
13:00 moritz__ joined #perl6
13:00 flussence I can almost understand how hard it is for the WHATWG people now :)
13:01 Sarten-X joined #perl6
13:04 Holy_Cow joined #perl6
13:05 GlitchMr joined #perl6
13:05 Holy_Cow left #perl6
13:10 GlitchMr How can I spell /[A-Za-z0-9_-]+/, except in Perl 6?
13:12 moritz__ GlitchMr: read S05
13:17 PerlJam GlitchMr: replace the - than are meant to be ranges with .. and replace [ with <[ and ] with ]> and you're there :)
13:17 PerlJam GlitchMr: add some whitespace for readability too
13:21 moritz__ PerlJam: you can have him read the docs too, that way he might pick up a bit more Perl 6 :-)
13:23 PerlJam Sure, but I'm not going to fall into the #perl trap of "RTFM" at every turn (even when it's the right technical thing) because that's a part of the #perl-culture that isn't very friendly.
13:24 PerlJam I'm perfectly happy giving out intellectual fish while encouraging someone to learn how to catch fish for themselves.  (which you've already done, so I didn't need to fill that niche :)
13:24 im2ee joined #perl6
13:25 [Coke] moritz++
13:25 GlitchMr Sorry, I was away...
13:25 GlitchMr <[A..Za..z0..9_-]>... ok?
13:25 im2ee Hello! :)
13:26 PerlJam im2ee: greetings
13:26 GlitchMr :)
13:26 flussence std: /<[A..Za..z0..9_-]>... ok?/
13:26 p6eval std 20ae3bd: OUTPUT«ok 00:01 121m␤»
13:26 [Coke] that looks suspiciously like a builtin rule, also.
13:26 GlitchMr Thanks for help... I cannot understand those Perl 6 rules...
13:26 GlitchMr But it makes sense...
13:27 PerlJam GlitchMr: what do you have trouble understanding?
13:27 moritz__ well, \w matches all those alphanumeric things, but also non-ASCII alphanumerics
13:27 GlitchMr Well, it's just long article...
13:27 moritz__ so it wouldbe [\w|'-']
13:27 moritz__ so you need a bit more time
13:28 GlitchMr Well, I haven't really programmed in Perl 5...
13:28 PerlJam GlitchMr: oh, so you lack a regex background in general?
13:28 GlitchMr Well, I used somewhat preg_replace() in PHP... but I guess it's different that this
13:28 PerlJam GlitchMr: i.e., all regex would be unfamiliar to you and difficult to understand at this point?
13:29 GlitchMr Well, not exactly
13:29 GlitchMr I can understand that [] is like (?:)...
13:30 GlitchMr http://en.wikipedia.org/wiki/Perl_6_rules
13:30 GlitchMr It just wasn't on Wikipedia...
13:30 GlitchMr <[]>...
13:30 GlitchMr whatever...
13:30 PerlJam GlitchMr: ah, that's why you should read the synopsis as moritz__ suggested.
13:30 GlitchMr And doing [a|b|c|d|e|f|...] would be really weird
13:31 PerlJam GlitchMr: it's the definitive source for the Perl6 regex syntax
13:31 GlitchMr I was trying [[a-z]]... nope
13:32 * moritz back
13:33 dalek roast: 2278414 | Coke++ | S (2 files):
13:33 dalek roast: niecza (auto)unfudge
13:33 dalek roast: review: https://github.com/perl6/roast/commit/2278414108
13:33 moritz [Coke]: does that mean you have solved your autounfudge troubles?
13:49 localhost joined #perl6
13:58 aqz joined #perl6
13:58 [Coke] moritz: lost in the backscroll, but the /first/ file had the wrong exit code. each subsequent file seemed fine.
13:58 * [Coke] will figure out that one file's issues later.
14:01 drbean joined #perl6
14:18 [Coke] moritz: autounfudge could be moved to roast without any modifications, I think. (except perhaps removing a default value for implementation and making it a required argument)
14:19 [Coke] (might also want perl6-limited, at that point, and then implementaitons can just make sure there have something called ./perl6 that works)
14:22 moritz [Coke]: or just base the invocation form on the implname
14:23 moritz my %invocation = (rakudo => [$^X, "tools/perl6-limited.pl"], niecza = [qw/mono run/Niecza.exe/]);
14:24 [Coke] moritz: mono may not be the right way to run Niecza.
14:24 [Coke] so I'd make that a command line arg, then.
14:24 moritz [Coke]: is there a better, more generic invocation?
14:26 flussence the only more generic way I can think of would be to use binfmt_misc in the kernel and invoke the .exe directly...
14:27 moritz flussence: well, the first part kinda contradicts "generic" :-)
14:28 flussence generic on the fudge script's side, at least. I''m not sure how other *nix OSes would work then though.
14:50 drbean joined #perl6
15:02 koban left #perl6
15:04 kst joined #perl6
15:11 kaleem joined #perl6
15:13 GlitchMr joined #perl6
15:15 TimToady masak: regarding "allowed to panic, once", it's something I said verbally several times over the years, mostly in unrecorded Q&A sessions.  Eventually I decided it needed to be written down, and S01 seemed like the right place to do it.
15:16 TimToady but we were dealing with panic from the beginning: A01 has "Nobody should panic when we..."
15:17 TimToady and somewhere near the beginning I had the thought that it's fine if we all panic, as long as we don't all do it at the same time.
15:17 TimToady dunno if that got written down anywhere
15:24 LuRy joined #perl6
15:28 MayDaniel joined #perl6
15:34 * TimToady is starting to think that making ».foo recurse by analogy to dwimmy «+» is probably a mistake, having wanted ».[0] to work more often than wanting a tree walk
15:35 TimToady perhaps it should be limited to one level of *shaped* array
15:35 TimToady or maybe it should stay at one dimension even there
15:36 TimToady and something slightly less huffmanly short be used for deeper mappings
15:36 TimToady there's a missing .treemap method currently too
15:37 TimToady so we'd have » means .map, and »» or some such means .treemap
15:37 TimToady and abandon the "foolish consistency" with infix dwimmery
15:39 TimToady this is a direct result of actually trying to translate a program that runs under b to running under niecza and nom :)
15:40 moritz I for one won't miss the tree semantics of ». very much
15:40 alester joined #perl6
15:40 TimToady I know you were one of the people I argued with :)
15:41 moritz (that wasn't intended to be a "told you so" or anything)
15:41 TimToady but I'm thinking about humbly invoking Rule 2.  :)
15:41 TimToady dimensional slicing seems a more appropriate use of "vectorizing" than treewalking does
15:44 drbean joined #perl6
15:45 TimToady and the unary tree walking is not at all the same dwimmery that is used in infix hypers, where it means replicate to match teh other side
15:45 TimToady so it was a false consistency from the start
15:45 [Coke] moritz: (generic niecza invocation) nope. that's the best one. but I wouldn't hard code it because it won't work on windows, e.g.
15:46 [Coke] (... not that that matters right now.)
15:49 TimToady another thing I'm wondering; if we get constant folding right, then there's little harm in saying that "foo" xx $count is really a thunky operator that evaluates its left side every time (it *is* doubled, after all)
15:49 TimToady so xx would become more like && and friends
15:50 TimToady but the thunk is on the left
15:50 TimToady so rand xx 20 would produce 20 different random numbers as people always seem to expect
15:51 TimToady otoh, (rand for ^20) is not so far off from that, huffmanly speaking
15:52 TimToady but my argument is more about what people expect xx to do
15:54 TimToady and that xx already looks a bit thunky
15:55 TimToady and that a good optimizer will notice it doesn't have to re-evaluate things that won't change
16:01 sorear good * #perl6
16:01 tadzik hello sorear
16:02 * TimToady would like sorear++'s opinion on the two proposed mid-course corrections above
16:02 TimToady and jnthn++'s too
16:03 sorear TimToady: actually, I meant to propose that xx change to you.
16:03 dalek nqp: 52e30a5 | mls++ | tools/build/PARROT_REVISION:
16:03 dalek nqp: bump PARROT_REVISON
16:03 dalek nqp: review: https://github.com/perl6/nqp/commit/52e30a5cc0
16:03 sorear mberends++ was complaining about how [ 0 xx matrixColumns ] xx matrixRows didn't DWIM the other day
16:03 TimToady the tradeoff with that one is that we force someone to use a temporary to suppress it
16:04 TimToady but yes, [] xx * is one of the use cases for chaning it
16:04 TimToady *ng
16:05 sorear as for », I can't say I have much of an opinion, I don't use hyperops much
16:14 baest joined #perl6
16:25 PerlJam TimToady: what was the use case for » being treemap in the first place?
16:33 sorear PerlJam: I thought it was @array3d»++
16:35 kaleem joined #perl6
16:37 moritz TimToady: is Parcel.tree supposed modify in-place?
16:38 PerlJam sorear: that's fine for unary ops I guess, but for N-ary ops it seems you need structural correspondence.  Seems like there are some thorns upon which to prick yourself.  (I guess I'm just completely uncomfortable with treemap)
16:38 PerlJam TimToady: you didn't ask my opinion, but +1 to both.  :)
16:40 moritz *supposed to
16:42 Chillance joined #perl6
16:43 dalek specs: fe06ca8 | larry++ | S0 (2 files):
16:43 dalek specs: more priming cleanup, spec .assuming * or Nil
16:43 dalek specs: review: https://github.com/perl6/specs/commit/fe06ca8fe8
16:54 [Coke] phenny: ask sorear to please provide a failing program for RT #73944, pir or otherwise.
16:54 phenny [Coke]: I'll pass that on when sorear is around.
16:57 dalek specs: 95d8b72 | larry++ | S03-operators.pod:
16:57 dalek specs: make xx thunky like a real loop
16:57 dalek specs: review: https://github.com/perl6/specs/commit/95d8b726d8
16:57 moritz can we plz have a general thingy for marking operands as thunky? kthxbye
16:58 moritz proto infix:<xx>(& is thunky, $) { * }
16:59 TimToady I believe it's called a macro :)
17:00 moritz I believe something easier to used and better fleshed out than macros could be very useful here
17:00 TimToady s/useful/abuseful/
17:00 moritz and macros don't fall into the "abuseful" category? :-)
17:01 TimToady "hard things should be possible"
17:01 * moritz thought more of the "simple things should be easy" part
17:02 TimToady mebbe, mebbe not
17:02 TimToady just write a macro macro that rewrites macro signatures :P
17:03 aindilis joined #perl6
17:03 TimToady but it's possible that it would be good documentation to mark the parameter
17:03 TimToady and we do, after all, use 'is' to mark other forms of parameter passing
17:04 * moritz collects macro use cases for masak++
17:04 TimToady so maybe that's the right way to go; me is just being a knee-jerk conservative, after thinking two impossible things before breakfast already
17:05 PerlJam TimToady: if *I* were the language designer, that's what I'd do .... but usually that means it shouldn't be generally done  :)
17:06 TimToady so maybe we shouldn't have a 'macro' declarator, but have an 'is ast' trait
17:08 TimToady though note that macros *must* be predeclared, so maybe it's good to force recognition of 'is ast' and 'is thunk' by requiring 'macro' up front
17:08 moritz sounds sane
17:09 [Coke] phenny: ask pmichaud if we can close 96424 now that nom is "master".
17:09 phenny [Coke]: I'll pass that on when pmichaud is around.
17:09 moritz nom: say rand xx 5
17:09 p6eval nom 1c2c2d: OUTPUT«0.91615747039123 0.91615747039123 0.91615747039123 0.91615747039123 0.91615747039123␤»
17:11 moritz [Coke]: yes, can be closed (with tests)
17:12 [Coke] phenny: tell pmichaud never mind
17:12 phenny [Coke]: I'll pass that on when pmichaud is around.
17:13 [Coke] moritz: updated.
17:15 [Coke] who had the macro grant?
17:15 moritz [Coke]: masak
17:15 moritz (but not approved yet)
17:15 PerlJam [Coke]: did it get accepted?
17:16 PerlJam [Coke]: if not, do you know when TPF will make a decision?
17:18 [Coke] rakudo: sub foo { my $y; our sub bar { say $y } }; bar
17:18 p6eval rakudo 1c2c2d: OUTPUT«Could not find sub &bar␤  in block <anon> at /tmp/SRJiCVZA9p:1␤  in <anon> at /tmp/SRJiCVZA9p:1␤»
17:18 dalek roast: b47bf2d | moritz++ | S05-capture/subrule.t:
17:18 dalek roast: RT #96424, capture from unsuccessful match
17:18 dalek roast: review: https://github.com/perl6/roast/commit/b47bf2d857
17:18 [Coke] PerlJam: it's not a normal grant, so grant committee members such as my self have zero insight into the process.
17:19 PerlJam [Coke]: bummer.
17:19 moritz who decides on Hague grants?
17:19 [Coke] that our sub line there : is that correct? (since bar is inside the scope of foo?)
17:19 [Coke] moritz: karen, maybe?
17:20 moritz std: sub foo { my $y; our sub bar { say $y } }; bar
17:20 p6eval std 20ae3bd: OUTPUT«ok 00:01 121m␤»
17:20 moritz [Coke]: std says bar() is not an error
17:20 moritz so rakudo is likely wrong here
17:20 [Coke] Do you trust std? ;)
17:21 moritz a bit :-)
17:21 diakopter what does niecza do
17:21 moritz niecza: sub foo { my $y; our sub bar { say $y } }; bar
17:21 p6eval niecza v10-39-g64c5778: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤â�¤Undeclared routine:â�¤     'bar' used at line 1â�¤â�¤Potential difficulties:â�¤  &foo is declared but not used at /tmp/YqfkFTQNHl line 1:â�¤------> [32msub foo [33mâ��[31m{ my $y; our sub bar { say $y } }; bar[0mâ�¤â�¤â�¤Unhandled Exception: …
17:22 [Coke] I see nothing in the space that deals with the visibility of "our sub" canonically.
17:22 mj41 joined #perl6
17:22 [Coke] s/space/spec/
17:23 [Coke] and "our" is somewhat harder to search for.
17:24 moritz std: { our sub a() { } }; a
17:24 p6eval std 20ae3bd: OUTPUT«ok 00:01 121m␤»
17:24 moritz std: { my sub a() { } }; a
17:24 p6eval std 20ae3bd: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤Undeclared routine:â�¤ 'a' used at line 1â�¤Potential difficulties:â�¤  &a is declared but not used at /tmp/_68WqjWwb_ line 1:â�¤------> [32m{ my sub a[33mâ��[31m() { } }; a[0mâ�¤Check failedâ�¤FAILED 00:01 121mâ�¤Â»
17:24 moritz std: { state sub a() { } }; a
17:24 p6eval std 20ae3bd: OUTPUT«[31m===[0mSORRY![31m===[0m�Undeclared routine:� 'a' used at line 1�Check failed�FAILED 00:01 121m�»
17:28 drbean joined #perl6
17:31 jnthn std: sub foo { my $y; our sub bar { say $y } }; bar
17:31 p6eval std 20ae3bd: OUTPUT«ok 00:01 121m␤»
17:31 jnthn nom: sub foo { my $y; our sub bar { say $y } }; bar
17:31 p6eval nom 1c2c2d: OUTPUT«Could not find sub &bar␤  in block <anon> at /tmp/1U9ajfWIWV:1␤  in <anon> at /tmp/1U9ajfWIWV:1␤»
17:31 jnthn I think nom is correct here.
17:31 jnthn We only search lexically for routines.
17:32 jnthn Otherwise we couldn't really do undeclared routine detection at CHECK time.
17:32 jnthn nom: sub foo { my $y; our sub bar { say $y } }; our &bar; bar
17:32 p6eval nom 1c2c2d: OUTPUT«Any()␤»
17:32 jnthn You need to do that to get a lexical alias to bar in scope that can be called.
17:33 mls_ Hi jnthn!
17:33 jnthn o/ mls_
17:33 TimToady or declare a CANDO in the lexical scope that allows fallback to a package
17:34 jnthn Yeah, but I didn't implement that in nom yet, so it's no CANDO :P
17:34 PacoLinux_ joined #perl6
17:34 * jnthn needs to re-read the CANDO spec at some point.
17:34 mls_ jnthn: I'm putting my exception/enter/leave work into https://github.com/mlschroe/rakudo so you can review the individual commits
17:35 [Coke] jnthn: does the optimization branch help: https://rt.perl.org/rt3/Ti​cket/Display.html?id=76416\
17:35 TimToady the main thing is that leave should happen at unwinding time, not at throw time
17:35 mls_ yes.
17:36 TimToady sorry if I'm being redundant on that subject
17:36 [Coke] nom: say 1000/170000 # megs per iteration
17:36 p6eval nom 1c2c2d: OUTPUT«0.00588235294117647␤»
17:36 TimToady but it's something worth saying too many times rather than too few :)
17:36 [Coke] nom: say 1000/170000*1024*1024 # bytes (or so) per iteration
17:36 p6eval nom 1c2c2d: OUTPUT«6168.09411764706␤»
17:36 jnthn [Coke]: Not likely, that looks like a memory leak somewhere
17:36 mls_ No prob. I hope the implementation matchers the spec.
17:37 jnthn mls_: OK, great, thanks. I'll try and look at it soon, but I'm snowed under with $dayjob.
17:37 jnthn So it may take me a little bit to get to giving it a proper review.
17:38 mls_ jnthn: Don't worry. I also ran out of time today, so I'll commit the leave implementation on monday
17:38 TimToady jnthn: did you see my proposed » and xx revisions above?  (already respecced the xx)
17:38 jnthn TimToady: No, not yet.
17:39 TimToady thinking of reverting » back to flat rather than tree-ish, since it seems more useful in practice
17:39 jnthn Ah, OK
17:39 TimToady and the dwim analogy with infix was flawed anyway
17:39 * jnthn has too much of a headache to really think about anything much properly right now :/
17:39 diakopter :(
17:39 TimToady well, it's basically back to b semantics, though we might have a »» variant that preserves the deep version
17:40 jnthn TimToady: Both do seem to have use cases.
17:40 GlitchMr joined #perl6
17:40 TimToady I just found myself wanting to write ».[0] over and over
17:40 jnthn TimToady: Are we just talking about the ». case here?
17:40 TimToady or ».<foo>
17:40 TimToady both unary cases
17:40 TimToady not infix
17:40 jnthn OK, but that's really the same case after desugaring.
17:41 TimToady yes
17:41 jnthn >>+<< would still recurse?
17:41 jnthn as in, go deep...
17:41 TimToady so » would turn into ordinary map, while »» (or whatever) would be .leafmap or some such
17:41 TimToady yes, infixes would remain unchanged
17:41 jnthn It's totally possible I'm missing something, but that inconsistency seems...oddish.
17:42 moritz jnthn: thing is that you usually want to apply infix operators to scalars, but method calls not so often
17:43 TimToady and we've got Z+ for the flat semantics as well
17:43 jnthn ah, true
17:44 jnthn It just feels like it may be one of those inconsistencies that ends up nagging at us with time, until eventually having to be fixed.
17:44 jnthn I can see the argument that they want different defaults though.
17:44 jnthn Well, to the blury extent I can see anything right now. :)
17:45 jnthn Having a .leafmap that it can desugar to also makes some sense.
17:45 TimToady we could possible force »+« flat, and require «+» for any non-flat but symmetrical depth
17:45 jnthn Not sure the name is spot on
17:45 TimToady we probably need to think about tree visitation patterns a bit more
17:45 jnthn Hm, but that feels like overloading a simple distinction with multiple meanings.
17:45 [Coke] nom: $a='aaa'; $a ~~ s/a$/b/; say $a;
17:45 p6eval nom 1c2c2d: OUTPUT«===SORRY!===␤Symbol '$a' not predeclared in <anonymous> (/tmp/pg6wp7_ZKC:1)␤»
17:45 [Coke] nom: my $a='aaa'; $a ~~ s/a$/b/; say $a;
17:45 p6eval nom 1c2c2d: OUTPUT«aab␤»
17:46 [Coke] where is s// defined?
17:46 jnthn TimToady: (tree visitation) yeah, but we have multi dispatch for really fancy trees, so we probably don't need to go to town too much on it.
17:46 TimToady doubtless there some adt-ness that needs to be considered from the FP realm too, but I don't want to make your headache worse
17:46 jnthn Thanks. :)
17:46 moritz [Coke]: S05
17:47 TimToady errands &
17:49 [Coke] moritz: ... where is the /code/
17:49 moritz [Coke]: sorry... quote:sym<s> in src/Perl6/Actions.pm
17:50 [Coke] sym! that's why I couldn't ack it. thank you.
17:51 Holy_Cow joined #perl6
17:58 kst joined #perl6
18:02 moritz nom: !!!(21)
18:02 p6eval nom 1c2c2d: OUTPUT«Stub code executed␤  in block <anon> at /tmp/bIbQ6gda7W:1␤  in <anon> at /tmp/bIbQ6gda7W:1␤»
18:04 mls_ afk -> weekend
18:07 cosimo joined #perl6
18:16 sorear TimToady: I think macro means something more like "is returns-ast"
18:16 phenny sorear: 16:54Z <[Coke]> ask sorear to please provide a failing program for RT #73944, pir or otherwise.
18:16 sorear nqp: pir::load_bytecode("perl6.pbc")
18:16 p6eval nqp: OUTPUT«"load_bytecode" couldn't find file 'perl6.pbc'␤current instr.: '_block1000' pc 24 ((file unknown):34) (/tmp/9cIl5dGI3Y:1)␤»
18:17 sorear [Coke]: STD looks in the current package for subs which is... generally considered wrong at this point.
18:18 sorear nqp: pir::load_bytecode("perl6")
18:18 p6eval nqp: OUTPUT«"load_bytecode" couldn't find file 'perl6'␤current instr.: '_block1000' pc 24 ((file unknown):34) (/tmp/99bBcvzXXX:1)␤»
18:21 drbean joined #perl6
18:21 [Coke] nqp: pir::load_language("perl6")
18:21 p6eval nqp: OUTPUT«"load_language" couldn't find a compiler module for the language 'perl6'␤current instr.: '_block1000' pc 24 ((file unknown):34) (/tmp/RvDiQr12Ha:1)␤»
18:21 [Coke] nqp: pir::load_language("rakudo")
18:21 p6eval nqp: OUTPUT«"load_language" couldn't find a compiler module for the language 'rakudo'␤current instr.: '_block1000' pc 24 ((file unknown):34) (/tmp/JX_RdUmDhx:1)␤»
18:21 [Coke] oh. nqp isn't going to find perl6.
18:22 [Coke] nqp: pir::load_language("nqp")
18:22 p6eval nqp: OUTPUT«"load_language" couldn't find a compiler module for the language 'nqp'␤current instr.: '_block1000' pc 24 ((file unknown):34) (/tmp/hXcjMjOtuj:1)␤»
18:23 sorear [Coke]: I don't have a current Parrot/Rakudo install, and I won't until jnthn++ gets the memory requirement back under half a gig or so
18:24 [Coke] hokay.
18:24 sorear it used to fail very easily
18:24 kst joined #perl6
18:25 [Coke] I just don't know what code you were trying to run.
18:26 moritz [Coke]: just reject the ticket, and have sorear++ file a new one, including code, when the issue arises again
18:26 [Coke] no worries, plenty of other tickets fo rnow.
18:26 [Coke] moritz: I've stalled it, which is close enough. when we get to the point where we are looking at stalled tickets, we can reject it then.
18:28 [Coke] rakudo: subset Person of Hash where { .keys.sort ~~ <firstname lastname> }; my Person $p = { :firstname<Kyle>, :lastname<Ha> }
18:29 p6eval rakudo 1c2c2d:  ( no output )
18:29 [Coke] rakudo: subset Person of Hash where { .keys.sort ~~ <firstname lastname> }; my Person $p = { :firstname<Kyle>, :lastname<Ha> }; say $p.perl
18:29 p6eval rakudo 1c2c2d: OUTPUT«{"firstname" => "Kyle", "lastname" => "Ha"}␤»
18:29 envi joined #perl6
18:29 [Coke] > <masak> rakudo: subset Austria of Array; my Austria $p = []
18:29 [Coke] rakudo: subset Austria of Array; my Austria $p = []
18:29 p6eval rakudo 1c2c2d:  ( no output )
18:32 [Coke] rakudo: say "foo".substr(4).WHAT
18:32 p6eval rakudo 1c2c2d: OUTPUT«Failure()␤»
18:35 [Coke] rakudo: my $a = [ "this", "is", "so", "gross" ]; my $b = [ "that", "is", "so", "funny" ]; my $c = $b[2..3]; $a[3] = $c ; say $a[3].WHAT
18:35 p6eval rakudo 1c2c2d: OUTPUT«Parcel()␤»
18:51 kst joined #perl6
18:54 donri joined #perl6
18:59 [Coke] rakudo: 0 but last
18:59 p6eval rakudo 1c2c2d: OUTPUT«Warning␤No applicable candidates found to dispatch to for 'infix:<but>'. Available candidates are:␤:(Mu $obj, Positional @roles)␤:(Mu $obj, Mu $role)␤␤  in sub infix:<but> at src/gen/CORE.setting:7369␤  in block <anon> at /tmp/6ZlkkOzdRB:1␤  in <anon> at /tmp/6Zlkk…
19:00 [Coke] rakudo: last
19:00 p6eval rakudo 1c2c2d: OUTPUT«Warning␤»
19:01 [Coke] rakudo: $_ .= ()
19:01 p6eval rakudo 1c2c2d: OUTPUT«Method '' not found for invocant of class 'Any'␤  in method dispatch:<.=> at src/gen/CORE.setting:714␤  in block <anon> at /tmp/2A2dETX4uf:1␤  in <anon> at /tmp/2A2dETX4uf:1␤»
19:01 [Coke] rakudo: my $a; $a .= ()
19:01 p6eval rakudo 1c2c2d: OUTPUT«Method '' not found for invocant of class 'Any'␤  in method dispatch:<.=> at src/gen/CORE.setting:714␤  in block <anon> at /tmp/tKfQigPDKj:1␤  in <anon> at /tmp/tKfQigPDKj:1␤»
19:01 [Coke] rakudo: Any .= ()
19:01 p6eval rakudo 1c2c2d: OUTPUT«Method '' not found for invocant of class 'Any'␤  in method dispatch:<.=> at src/gen/CORE.setting:714␤  in block <anon> at /tmp/YVP9C3AczC:1␤  in <anon> at /tmp/YVP9C3AczC:1␤»
19:06 moritz rakudo: Any .= []
19:06 p6eval rakudo 1c2c2d: OUTPUT«Cannot assign to a non-container␤  in method dispatch:<.=> at src/gen/CORE.setting:714␤  in block <anon> at /tmp/1Cnc51jbSH:1␤  in <anon> at /tmp/1Cnc51jbSH:1␤»
19:21 wamba joined #perl6
19:27 benabik joined #perl6
19:28 colomon joined #perl6
20:17 alvis joined #perl6
20:22 kst joined #perl6
20:31 dorlamm joined #perl6
20:33 huf joined #perl6
20:46 Trashlord joined #perl6
20:56 abercrombie joined #perl6
21:27 drbean joined #perl6
21:49 kst joined #perl6
21:53 im2ee So... Good night #perl6 ! o/
21:53 im2ee :)
21:54 pyrimidine left #perl6
22:32 S11001001 joined #perl6
22:56 packetknife joined #perl6

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

Perl 6 | Reference Documentation | Rakudo | Niecza | Specs