Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2011-08-09

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:01 jnthn Enough for tonight...gotta get up for $dayjob in the morning...
00:01 jnthn &
00:05 bluescreen10 joined #perl6
00:06 PacoLinux joined #perl6
00:16 drbean joined #perl6
00:19 sftp joined #perl6
00:35 sftp joined #perl6
00:52 dalek roast: 26046d4 | Coke++ | S03-smartmatch/ (3 files):
00:52 dalek roast: nom fudge
00:52 dalek roast: review: https://github.com/perl6/roast/commit/26046d4949
00:52 fbass joined #perl6
00:52 impiou1 left #perl6
00:56 cogno joined #perl6
00:56 dalek rakudo/nom: 40aa6d5 | Coke++ | t/spectest.data:
00:56 dalek rakudo/nom: run more tests, track failure modes.
00:56 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/40aa6d525e
00:57 fbass joined #perl6
00:57 fbass joined #perl6
01:14 sftp joined #perl6
01:17 fbass joined #perl6
01:22 dalek rakudo/nom: 0b11319 | Coke++ | t/spectest.data:
01:22 dalek rakudo/nom: track failure mode
01:22 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/0b11319464
01:25 cognominal joined #perl6
01:33 woosley joined #perl6
01:45 [Coke] getting a ton of non-zero exit statuses.
01:47 amkrankruleuen joined #perl6
01:49 [Coke] Files=409, Tests=11767
01:52 colomon [Coke]: same her
01:53 colomon *here
01:57 [Coke] colomon! how about getting those trig tests passing in nom? ;)
02:10 [Coke] *tap tap*
02:10 colomon *hollow echo*
02:12 [Coke] curses!
02:17 PacoLinux joined #perl6
02:20 sorear how about getting trig tests in niecza? :p
02:26 stepnem joined #perl6
02:28 jaldhar joined #perl6
02:42 kfo joined #perl6
02:44 rdesfo joined #perl6
02:56 rdesfo left #perl6
02:56 jevin joined #perl6
03:28 Su-Shee joined #perl6
03:32 shinobicl_ joined #perl6
03:43 fbass joined #perl6
03:50 stepnem joined #perl6
04:10 thou joined #perl6
04:11 birdwindupbird joined #perl6
04:13 agentzh joined #perl6
04:16 daniel-s joined #perl6
04:31 satyavvd joined #perl6
04:39 shinobicl_ hi... i know that you can get the combinations of 2 arrays using the X operator... but.. how do i combine 3 arrays?
04:39 moritz with the X operator
04:39 shinobicl_ rakudo: my @arr = <1 2>; my @arr2 =<a b c d>; my @arr3 = < + * - >; say @arr X (@arr2 X @arr3);
04:39 p6eval rakudo 922500: OUTPUT«1a1+1a1*1a1-1b1+1b1*1b1-1c1+​1c1*1c1-1d1+1d1*1d1-2a2+2a2*2a2-2b2​+2b2*2b2-2c2+2c2*2c2-2d2+2d2*2d2-␤»
04:40 shinobicl_ i want that each combination has exactly one element for each of the 3 arrays...
04:40 shinobicl_ the output should start like 1a+1b+1c+..... and so on
04:41 moritz nom: say <1 2> X~ <+ * -> X~ <a b c d> X~
04:41 p6eval nom: OUTPUT«Confused at line 1, near "say <1 2> "␤current instr.: 'nqp;HLL;Grammar;panic' pc 23611 (src/stage2/gen/NQPHLL.pir:6348) (src/stage2/gen/NQPHLL.pm:329)␤»
04:41 moritz nom: say <1 2> X~ <+ * -> X~ <a b c d>
04:41 p6eval nom: OUTPUT«1+a 1+b 1+c 1+d 1*a 1*b 1*c 1*d 1-a 1-b 1-c 1-d 2+a 2+b 2+c 2+d 2*a 2*b 2*c 2*d 2-a 2-b 2-c 2-d␤»
04:41 shinobicl_ rakudo: my @arr = <1 2>; my @arr2 =<a b c d>; my @arr3 = < + * - >; say [X](@arr,@arr2,@arr3);
04:41 p6eval rakudo 922500: OUTPUT«1 - * - + - * - d - * - + - * - c - * - + - * - d - * - + - * - b - * - + - * - d - * - + - * - c - * - + - * - d - * - + - * - a - * - + - * - d - * - + - * - c - * - + - * - d - * - + - * - b - * - + - * - d - * - + - * - c - * - + - * - d - * - + - * - 2 - * - +…
04:41 moritz the 3-array form is not implemented in rakudo master, but works in nom
04:42 shinobicl_ rakudo: my @arr = <1 2>; my @arr2 =<a b c d>; my @arr3 = < + * - >; say [X~](@arr,@arr2,@arr3);
04:42 p6eval rakudo 922500: OUTPUT«12abcd+*-␤»
04:43 shinobicl_ rakudo: my @arr = <1 2>; my @arr2 =<a b c d>; my @arr3 = < + * - >; say [X~](@arr,@arr2,@arr3,);
04:43 p6eval rakudo 922500: OUTPUT«12abcd+*-␤»
04:44 dalek rakudo/nom: 5e2c0fb | moritz++ | src/core/ (4 files):
04:44 dalek rakudo/nom: Merge pull request #35 from kboga/multi-Numeric
04:44 dalek rakudo/nom:
04:44 dalek rakudo/nom: make .Numeric methods multis with defined invocant
04:44 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/5e2c0fb0c7
04:46 odoacre joined #perl6
04:47 shinobicl_ rakudo: my @arr = <1 2>; my @arr2 =<a b c d>; my @arr3 = < + * - >; say (@arr X~@arr2) X~@arr3;
04:47 p6eval rakudo 922500: OUTPUT«1a+1a*1a-1b+1b*1b-1c+1c*1c-1d+1d*1​d-2a+2a*2a-2b+2b*2b-2c+2c*2c-2d+2d*2d-␤»
04:48 shinobicl_ :D
04:49 shinobicl_ rakudo: my @arr = <1 2>; my @arr2 =<a b c d>; my @arr3 = < + * - >; my @arr4 = "Ñ ñ" say ((@arr X~@arr2) X~@arr3) X~ @arr4;
04:49 p6eval rakudo 922500: OUTPUT«===SORRY!===␤Confused at line 22, near "my @arr4 ="␤»
04:49 dalek rakudo/nom: 2bbc998 | moritz++ | src/core/List.pm:
04:49 dalek rakudo/nom: Merge pull request #38 from ruz/nom-list-rotate
04:49 dalek rakudo/nom:
04:49 dalek rakudo/nom: List.rotate
04:49 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/2bbc998368
04:51 shinobicl_ rakudo: my @arr = <1 2>; my @arr2 =<a b c d>; my @arr3 = < + * - >; my @arr4 = <Ñ ñ>; say ((@arr X~@arr2) X~@arr3) X~ @arr4;
04:51 p6eval rakudo 922500: OUTPUT«1a+Ñ1a+ñ1a*Ñ1a*ñ1a-Ñ1a-ñ1b+Ñ1b+ñ1b​*Ñ1b*ñ1b-Ñ1b-ñ1c+Ñ1c+ñ1c*Ñ1c*ñ1c-Ñ1c-ñ1d+​Ñ1d+ñ1d*Ñ1d*ñ1d-Ñ1d-ñ2a+Ñ2a+ñ2a*Ñ2a*ñ2a-Ñ​2a-ñ2b+Ñ2b+ñ2b*Ñ2b*ñ2b-Ñ2b-ñ2c+Ñ2c+ñ2c*Ñ2​c*ñ2c-Ñ2c-ñ2d+Ñ2d+ñ2d*Ñ2d*ñ2d-Ñ2d-ñ␤»
04:56 thou joined #perl6
05:05 SHODAN joined #perl6
05:07 dalek roast: 86b9677 | moritz++ | S10-packages/use-with-class.t:
05:07 dalek roast: fix scoping bug in use-with-class.t, fudge for rakudo
05:07 dalek roast: review: https://github.com/perl6/roast/commit/86b9677b5e
05:10 dalek roast: 6b7d57d | moritz++ | S12-introspection/can.t:
05:10 dalek roast: correct and unfudge can.t
05:10 dalek roast: review: https://github.com/perl6/roast/commit/6b7d57d0ad
05:12 shinobicl_ rakudo: my @arr = <1 4>; my @arr2 =split ' ', @arr.fmt("%02d"); for (@arr2) { say $_ ~ '.' }
05:12 p6eval rakudo 922500: OUTPUT«01.␤04.␤»
05:13 dalek roast: 138a8a5 | moritz++ | S32-array/rotate.t:
05:13 dalek roast: fudge rotate.t for rakudo
05:13 dalek roast: review: https://github.com/perl6/roast/commit/138a8a5a8f
05:14 dalek rakudo/nom: 69b7e56 | moritz++ | t/spectest.data:
05:14 dalek rakudo/nom: three more passing test files
05:14 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/69b7e56137
05:37 envi joined #perl6
05:38 shinobicl_ rakudo: my @weekdays = <;WDAY=> X~ <Mon Fri>; my @months = <;MNTH=> X~ <JAN FEB AUG>; my @time = <;TIME=> X~ <12:30 18:00>; my @weeks = <;WNUM=> X~ <1 3>; my @instants = (((@months X~ @weeks) X~ @weekdays) X~ @time); say @instants.perl
05:38 p6eval rakudo 922500: OUTPUT«[";MNTH=JAN;WNUM=1;WDAY=Mon;TIME=12:30", ";MNTH=JAN;WNUM=1;WDAY=Mon;TIME=18:00", ";MNTH=JAN;WNUM=1;WDAY=Fri;TIME=12:30", ";MNTH=JAN;WNUM=1;WDAY=Fri;TIME=18:00", ";MNTH=JAN;WNUM=3;WDAY=Mon;TIME=12:30", ";MNTH=JAN;WNUM=3;WDAY=Mon;TIME=18:00", ";MNTH=JAN;WNUM=3;WDAY=F…
05:42 shinobicl_ rakudo: my @weekdays = <;WDAY=> X~ <Mon Fri>; my @months = <;MNTH=> X~ <JAN FEB AUG>; my @time = <;TIME=> X~ <12:30 18:00>; my @weeks = <;WNUM=> X~ <1 3>; my @empty = <NONE=> X~ (); my @instants = (((@months X~ @weeks) X~ @weekdays) X~ @time) X~ @empty; say @instants.perl
05:42 p6eval rakudo 922500: OUTPUT«[]␤»
05:42 shinobicl_ :(
05:44 mj41 joined #perl6
05:49 dalek roast: 12a16dc | moritz++ | S06-multi/type-based.t:
05:49 dalek roast: fudge type-based.t for rakudo
05:49 dalek roast: review: https://github.com/perl6/roast/commit/12a16dc72c
05:51 jaldhar joined #perl6
05:51 moritz nom: say 'a b c d'.subst(/\w/, 'x', :x(1))
05:51 p6eval nom: OUTPUT«x b c d␤»
05:52 moritz nom: say 'a b c d'.subst(/\w/, 'x', :x(0..1))
05:52 p6eval nom: OUTPUT«a b c d␤»
05:57 moritz nom: $_ = 'abc'; s/a/b/; .say
05:57 p6eval nom: OUTPUT«Method 'clone' not found for invocant of class 'Sub'␤current instr.: '_block1002' pc 94 ((file unknown):57384547) (/tmp/9OOza5T8Yk:1)␤»
06:02 dalek rakudo/nom: e658f0d | moritz++ | / (2 files):
06:02 dalek rakudo/nom: run type-based.t, fix an unrelated thinko
06:02 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e658f0d407
06:06 Mowah joined #perl6
06:11 dalek roast: c8d241c | moritz++ | S05-substitution/subst.t:
06:11 dalek roast: fudge subst.t for rakudo
06:11 dalek roast: review: https://github.com/perl6/roast/commit/c8d241c1f8
06:15 dalek rakudo/nom: f373c17 | moritz++ | t/spectest.data:
06:15 dalek rakudo/nom: two more test files
06:15 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f373c175df
06:20 koban joined #perl6
06:21 wtw joined #perl6
06:22 im2ee joined #perl6
06:25 jaldhar joined #perl6
06:37 shinobicl_ left #perl6
06:40 moritz rakudo: say ~[\<] 1, 2, 3
06:40 p6eval rakudo 922500: OUTPUT«Bool::True Bool::True Bool::True␤»
06:41 moritz rakudo: say ~[\<] 1, 2, 0, 5, 6, 7
06:41 p6eval rakudo 922500: OUTPUT«Bool::True Bool::True Bool::False Bool::False Bool::False Bool::False␤»
07:06 lue joined #perl6
07:27 PacoLinux joined #perl6
07:32 dalek rakudo/nom: 190f28d | moritz++ | src/core/metaops.pm:
07:32 dalek rakudo/nom: implement chaining reduce metaop
07:32 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/190f28da9c
07:33 fbass joined #perl6
07:35 dalek roast: bb4a8e7 | moritz++ | S05-mass/stdrules.t:
07:35 dalek roast: fudge stdrules.t for rakudo
07:35 dalek roast: review: https://github.com/perl6/roast/commit/bb4a8e7888
07:35 dalek roast: 9c74a37 | moritz++ | S03-metaops/reduce.t:
07:35 dalek roast: fudge reduce.t for rakudo
07:35 dalek roast: review: https://github.com/perl6/roast/commit/9c74a379e9
07:36 fbass joined #perl6
07:37 dalek rakudo/nom: c0ac660 | moritz++ | t/spectest.data:
07:37 dalek rakudo/nom: run reduce.t
07:37 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/c0ac660096
07:40 * mberends read stdrules as strudles, hmm :)
07:47 mj41 joined #perl6
07:52 Trashlord joined #perl6
07:58 jnthn monring, #perl6
08:09 tadzik morning #perl6
08:16 moritz good morning everybody
08:16 moritz yes, strudels are a good idea, in general :-)
08:18 jnthn mmm
08:18 jnthn moritz: did type-based.t need extra fudges?
08:19 moritz jnthn: yes
08:19 jnthn oh, I see the patch
08:19 moritz jnthn: some for narrowness of slurpies, some for constraints
08:21 jnthn ok
08:21 jnthn ugh, slurpy narrowness? Thought I fixed that recently.
08:23 moritz nom: multi f() { 1 }; multi f(*$x, *@a) { 2 }; say f()
08:23 p6eval nom: OUTPUT«1␤»
08:25 moritz nom: proto mmd(*@) {}; multi mmd () { 1 }; multi mmd (*$x, *@xs) { 2 }; say mmd(); say mmd(1, 2, 3); say mmd(1..3)
08:25 p6eval nom: OUTPUT«Nil␤Nil␤Nil␤»
08:25 moritz wtf?
08:25 moritz oh
08:25 moritz nom: proto mmd(*@) {*}; multi mmd () { 1 }; multi mmd (*$x, *@xs) { 2 }; say mmd(); say mmd(1, 2, 3); say mmd(1..3)
08:25 p6eval nom: OUTPUT«1␤2␤2␤»
08:25 moritz it helps to have the proto redispatch :-)
08:27 dalek roast: 91f1c57 | moritz++ | S06-multi/type-based.t:
08:27 dalek roast: it helps to have the proto re-dispatch to its candidates
08:27 dalek roast: review: https://github.com/perl6/roast/commit/91f1c578e2
08:27 moritz jnthn: never mind the slurpy narrowness :-)
08:31 jnthn moritz: yeah
08:31 jnthn S06-multi/proto.t does need nom fixes (plan to do them soon), but it also has similar out-of-dateness.
08:34 jnthn Comment I don't want to see in production code:
08:34 jnthn //ToDo add security
08:34 jnthn o.O
08:34 tadzik erm
08:34 jnthn gonna be a long day at $dayjob :)
08:38 dakkar joined #perl6
08:44 Alias joined #perl6
08:55 wamba joined #perl6
09:07 rgrau joined #perl6
09:09 donri joined #perl6
09:13 fbass joined #perl6
09:18 awoodland joined #perl6
09:21 am0c joined #perl6
09:37 cosimo joined #perl6
09:40 moritz nom: say :2('101')
09:40 p6eval nom: OUTPUT«NYI form of number litereal encountered␤current instr.: 'nqp;Perl6;Actions;rad_number' pc 85504 (src/gen/perl6-actions.pir:30844) (src/Perl6/Actions.pm:2995)␤»
09:41 moritz nom: Perl6::Actions::radcalc(10, '123')
09:41 p6eval nom: OUTPUT«Could not find symbol 'Perl6::Actions::&radcalc'␤current instr.: 'die' pc 700249 (src/gen/CORE.setting.pir:164645) (src/gen/CORE.setting:370)␤»
09:42 moritz nom: use Perl6::Actions; Perl6::Actions::radcalc(10, '123')
09:42 p6eval nom: OUTPUT«Could not find Perl6::Actions in any of: lib, lib, /home/p6eval/.perl6/lib, /home/p6eval/nom/install/lib/parro​t/3.6.0-devel/languages/perl6/lib, .␤current instr.: 'nqp;Perl6;ModuleLoader;load_module' pc 3651 (src/gen/perl6-moduleloader.pir:1416) (src/Perl6/ModuleLoader.pm:91…
09:43 im2ee joined #perl6
09:44 jnthn nom: BEGIN { @*INC.push('blib') }; use Perl6::Actions;
09:44 p6eval nom: OUTPUT«get_attr_str() not implemented in class 'Undef'␤current instr.: 'nqp;Perl6;SymbolTable;load_module' pc 4832 (src/gen/perl6-symboltable.pir:1532) (src/Perl6/SymbolTable.pm:180)␤»
09:44 jnthn ah, yes.
09:44 jnthn Didn't fix the using NQP modules thing up yet.
09:46 Mowah_ joined #perl6
09:56 jnthn Today's discovery: I find graphical merge tools too confusing. :)
10:00 dalek roast: fcecec7 | moritz++ | S02- (2 files):
10:00 dalek roast: rakudo (un)fudges
10:00 dalek roast: review: https://github.com/perl6/roast/commit/fcecec75b6
10:06 timbunce joined #perl6
10:13 moritz nom: say :16<a>
10:13 p6eval nom: OUTPUT«Invalid character 'a' in number literal␤current instr.: 'nqp;Perl6;Actions;_block1888' pc 32972 (src/gen/perl6-actions.pir:11076) (src/Perl6/Actions.pm:3842)␤»
10:13 moritz wtf
10:15 sorear nom: say :16<A>
10:15 p6eval nom: OUTPUT«10␤»
10:15 [particle] joined #perl6
10:15 moritz nqp: say(try { 1 })
10:15 p6eval nqp: OUTPUT«1␤»
10:15 tadzik nom: multi foo($a where { $a > 0 }) { 1 }; foo(5) # nyi?
10:15 p6eval nom: OUTPUT«Nominal type check failed for parameter '$a'; expected Any but got Mu instead␤current instr.: 'infix:<>>' pc 713206 (src/gen/CORE.setting.pir:172036) (src/gen/CORE.setting:1674)␤»
10:16 moritz sorear++
10:26 dalek roast: 7353f94 | moritz++ | S02-literals/radix.t:
10:26 dalek roast: make test plan in radix.t dynamic, since I do not know if fudge miscounted or not
10:26 dalek roast: review: https://github.com/perl6/roast/commit/7353f9462c
10:27 tadzik moritz: any comments on my gsoc checklist?
10:27 moritz tadzik: where can I find it?
10:27 moritz sorry, didn't backlog yet
10:29 tadzik moritz: https://github.com/tadzik/gsocmess/issues
10:29 dalek rakudo/nom: c61a8d5 | moritz++ | / (2 files):
10:29 dalek rakudo/nom: fix radcalc, generate errors with line numbers, run tests
10:29 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/c61a8d53ce
10:33 REPLeffect joined #perl6
10:37 mberends tadzik: in issue #4 in the above checklist, is Polish a verb or a nationality? ;)
10:43 jnthn tadzik: (constraint issue) yeah, that's why they're still on the punch card :)
10:43 jnthn mberends: Well, now we have sockets, we could go off to Google Translate and have it turn the text output into Polish ;)
10:44 colomon joined #perl6
10:45 mberends jnthn, tadzik: Pod::To::Text::Polish.pm ;)
10:46 Chillance joined #perl6
10:46 jnthn Then we have one that calls .flip on the result, Pod::To::Text::ReversePolish :)
10:49 tadzik mberends: it's a verb :)
10:49 mberends jnthn: touché
10:58 jnthn :P
11:17 moritz tadzik: (sorry, was off for lunch) list looks good, I can't attest its completeness though without a thorough cross-check with the proposal
11:17 moritz tadzik: have you tried parsing S26 with rakudo?
11:20 tadzik moritz: no, not yet
11:20 tadzik I'll rather have everything officialy in the proposal ready, then play with the optional things
11:20 tadzik hence the list
11:20 moritz ok
11:20 moritz $ ./perl6 ../specs/S26-documentation.pod
11:20 moritz Error while reading from file: Malformed UTF-8 string
11:20 moritz now that was quick
11:22 tadzik hah
11:23 tadzik oh, it will parsefail in pod too, we don't support config options yet
11:24 tadzik as in =begin code :allow<B>
11:26 Woodi joined #perl6
11:28 moritz oh, S26 is written in latin1
11:28 moritz any objections to converting it to UTF-8?
11:28 tadzik nope
11:29 moritz it parsefails in line 3 already
11:29 moritz =begin without matching =end at line 3, near "=comment\nT"
11:30 tadzik interesting
11:30 dalek specs: fb1ceb2 | moritz++ | S26-documentation.pod:
11:30 dalek specs: convert S26 from Latin-1 to UTF-8
11:30 dalek specs:
11:30 dalek specs: No semantic changes or anything, just a dumb recode
11:30 dalek specs: review: https://github.com/perl6/specs/commit/fb1ceb21cb
11:31 tadzik will investigate in a second
11:33 dalek rakudo/nom: 083287a | tadzik++ | / (2 files):
11:33 dalek rakudo/nom: Small tunes in Pod::To::Text, sanitize newline handling, interpret package declarators correctly
11:33 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/083287a069
11:34 tadzik moritz: I suppose it's because of the fact, that because of the lack of block options <pod_content> fails, and so we get a panic somewhere
11:35 tadzik moritz: what I'm now trying is copying S26 to S26-mini, block after block, and seeing when it'll fail
11:35 tadzik and fixing Pod::To::Text accordingly
11:36 tadzik I miss Str.indent :/
11:37 tadzik no, no easy to bring back
11:37 MayDaniel joined #perl6
11:38 moritz so, recruite a minion to bring it back :-)
11:39 moritz didn't flussence++ write the code originally? (hint, hint :-)
11:39 flussence it's plain perl6, go ahead and copy+pase it to nom if you want :)
11:40 flussence s/se/ste/
11:40 tadzik moritz: it depends on this ($a where {...}) signatures
11:40 tadzik that's why I didn't bring it back today
11:40 flussence oh, right. Forgot I did all that fancy stuff in it :(
11:40 moritz tadzik: ok
11:41 jnthn Note those probably work with placeholders just fine
11:46 pernatiy joined #perl6
11:59 tadzik heh, I can parse 2% of S26 :)
11:59 takadonet morning all
11:59 tadzik copypasting the remaining 98%...
11:59 tadzik takadonet: morning
12:00 tadzik moritz: yes, parsing fails on =begin code :allow<B>
12:00 tadzik is there anything like "anything that constructs a pair" in Grammar?
12:01 moritz look in the vincinity of token colonpair
12:02 woosley left #perl6
12:02 jnthn quotepair is a little more restricted version of that and may be more suitable
12:04 tadzik how about :nested?
12:04 takadonet Can anyone help me figure out why my @!grid attribute cannot be changed?  https://gist.github.com/1133863
12:05 moritz takadonet: which rakudo are you running? master?
12:06 moritz or nom?
12:06 rdesfo joined #perl6
12:06 takadonet NIecza
12:06 moritz oh
12:06 takadonet but having the same issue if using master
12:06 takadonet it does not run under nom yet
12:06 moritz so what's the problem?
12:07 takadonet @!grid attribute does not keep it value after returning from placeNumber method
12:07 ab5tract joined #perl6
12:07 takadonet it return back to the original value set by build method
12:08 takadonet since both master and Niecza give the same issue, I assume its my mistake
12:08 tadzik moritz: https://gist.github.com/1133875 part of S26 without the colopairs
12:09 moritz takadonet: in master I think the type constraint on @!grid will prevent it from working anyway
12:10 moritz takadonet: but more interesting, have you debugged it to the point where you're sure that it ever assigns something to @!grid[$something] ?
12:12 takadonet moritz: I removed the type constraint and still does not work. Yes , since placeNumber is a recursive call  and the final case where $pos ==81 , I print out @!grid and the answesr are there. However, once the call  returns, the values are gone
12:13 properly joined #perl6
12:17 moritz takadonet: problem is line 33
12:18 moritz takadonet: there you undo any modification to @!grid that you've done before
12:18 takadonet ohhh!
12:19 takadonet wow....
12:20 takadonet now I feel like an idiot ...
12:21 moritz takadonet: I hope you know that you can't solve sudokus with that algorithm, generally speaking
12:21 takadonet I see, the original Java code that I copied, had that line but instead of returning thru all the call stack, the final base case just throws an exception
12:21 takadonet moritz:  I know
12:21 takadonet just was copying the rosetta stone Java solution
12:21 moritz ah, so it uses that for backtracking
12:22 takadonet ya
12:22 takadonet so I really do need to throw an exception for this to work
12:23 takadonet this is really a horrible solution
12:23 moritz it is
12:23 woosley joined #perl6
12:23 pmichaud good morning, #perl6
12:23 takadonet was mostly just for practice
12:23 moritz good am, pm
12:23 takadonet pmichaud: morning
12:24 takadonet I might still post the solution on rosetta stone so we have something for now.  Probably make a new solution sometime this week
12:26 moritz takadonet: fwiw when I started my sudoku solve in p6 I loved the way you can compress two nested loops into one
12:26 jnthn monring, pmichaud
12:26 moritz takadonet: https://github.com/moritz/perl6-Su​doku/blob/master/lib/Sudoku.pm#L30
12:28 takadonet moritz:  cool :)
12:28 mberends good morning pmichaud, takadonet
12:29 takadonet mberends: morning
12:29 moritz takadonet: note that my sudoku module has some bugs and limitations I never bothered to debug
12:30 takadonet moritz: I'll be probably borrowing  some of your code.
12:31 moritz takadonet: feel free :-)
12:32 moritz I mean, it has a license, but if that's not permissive enough for RC, I can change that to something more permissive
12:37 tadzik with the commit below, we parse the first 30% of S26 :)
12:37 dalek rakudo/nom: 62bd6a7 | tadzik++ | src/Perl6/Grammar.pm:
12:37 dalek rakudo/nom: Allow colonpairs to appear after Pod block declarations
12:37 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/62bd6a75f5
12:37 dalek rakudo/nom: 77c62ce | tadzik++ | lib/Pod/To/Text.pm:
12:37 dalek rakudo/nom: [Pod::To::Text] Generate proper output for Tables and Comments, fix output for Named blocks
12:37 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/77c62ce554
12:38 moritz \o/
12:38 moritz tadzik: what's missing?
12:38 tadzik moritz: I found a bug
12:38 tadzik moritz: https://gist.github.com/1133928 causes the parsefail
12:38 moritz nom: class Sudoku::Constraint { }; class Sudoku { }
12:38 p6eval nom: OUTPUT«error:imcc:Multiple declarations of lexical 'Sudoku'␤␤      in file '(file unknown)' line 54751767␤»
12:38 tadzik so maybe the code block should have non-greedy match inside, eh?
12:39 tadzik but would that help if we have <.panic> just after the content?
12:39 jnthn moritz: Ran out of awakeness when refactoring symbol table last night... ;-)
12:39 jnthn moritz: I fix the above later. :)
12:39 moritz jnthn: ok
12:39 tadzik yes, it's already non-greedy
12:40 tadzik but I think I know how to fix this
12:40 moritz tadzik: don't you need to check the indention level before you decide if something is a terminator or not?
12:40 tadzik moritz: I probably do, never thought about that before
12:41 tadzik I'll recheck the spec
12:42 tadzik CC
12:42 tadzik oops
12:43 SHODAN joined #perl6
12:44 im2ee left #perl6
12:49 tadzik moritz: yeah, S26 mentions only the content of a block to be "indented as you wish"
12:49 tadzik so the closing delimiter is probably supposed to not be indented
12:49 moritz aye
12:50 moritz oh, today is Tuesday, #phasers day!
12:50 jnthn :)
12:50 jnthn Well remembered!
12:51 moritz that's... not bad for my standards :-)
12:51 tadzik :)
12:54 tadzik is it preferred to pre-report so the actual #phasers time can be dedicated to discussion only?
12:56 jnthn tadzik: Don't feel strongly either way.
12:57 tadzik jnthn: I'm just curious if it's preffered to pre-report even if you'll be on time
12:57 jnthn moritz: BTW, after last night's fixes, X::Foo style decls in the setting should work. See IO::Socket for example
13:00 colomon yow, getting one of the least helpful error messages ever from nom
13:00 moritz nom: say X::Base
13:00 p6eval nom: OUTPUT«Rebuild in progress␤»
13:00 colomon well, messiest, anyway
13:00 moritz that one? :-)
13:01 moritz which reminded me, I wanted to improve the build thingy on p6eval server
13:02 colomon https://gist.github.com/1133976 multiplied by about a thousand.  (takes up more than 50% of the scrollback on my terminal window)
13:02 colomon with a maximum recursion depth exceeded message at the top.
13:02 moritz colomon: are you trying to hack something in the setting?
13:02 colomon trying to add Complex.asin
13:03 moritz we've discussed that yesterday, something very weird is going on there, probably not your fault
13:04 colomon sure, never thought my numeric code could legitimately cause an infinite stream of Stringy calls.  ;)
13:05 jnthn colomon: There's a compile-time stringification bug somewhere.
13:05 jnthn colomon: Hard to track down. :( Spent a couple of hours on it yesterday.
13:05 colomon it just doesn't help figure out what my innocent-looking math code is doing wrong.  :)
13:06 jnthn It's probably not.
13:06 jnthn It's probably something to do with using complex literals in the setting or something.
13:06 moritz right, you can't use 1i or so in the setting
13:06 colomon oh.  yeah, there is a complex literal in there.  hmmm
13:07 moritz needs to be Complex.new(0, 1)
13:07 jnthn Yeah. That any many things are hitting the same issue.
13:07 jnthn It's happening somewhere in the intersection of dynamic compilation, method dispatch and multi dispatcher derevation. Not an easy intersection of things to debug.
13:08 colomon looks like it is indeed the -1i
13:10 jnthn Note that using complex literals inside complex may be a little fun... :)
13:11 jnthn Manageable fun though.
13:11 jnthn But for now use Complex.new
13:11 moritz well, 1i tries to construct the object right away
13:12 jnthn Right
13:12 jnthn But Str is a multi-method and those aren't composed until saga end.
13:13 dalek evalbot: 5bdd571 | moritz++ | build-scripts/ (3 files):
13:13 dalek evalbot: prepare to install nom
13:13 dalek evalbot: review: https://github.com/perl6/evalbot/commit/5bdd5718bb
13:21 jaldhar joined #perl6
13:23 bluescreen10 joined #perl6
13:27 jman_ joined #perl6
13:29 shinobicl joined #perl6
13:35 shinobicl left #perl6
13:39 [Coke] was "litereal" intentionally punny, btw? I find it distracting.
13:39 moritz where?
13:40 [Coke] you just ran a test from spectest.data that used to throw that error.
13:42 PerlJam heh.  "litereal"
13:43 moritz [Coke]: no, just a typo
13:43 [Coke] it is a good typo. ;)
13:44 * [Coke] reruns the test suite to see if moritz++'s litereal update unbreaks any other tests.
13:45 moritz but the error message is bogus anyway
13:45 moritz because it's not a literal
13:46 rdesfo joined #perl6
13:48 dalek rakudo/nom: 67f3c06 | moritz++ | src/Perl6/Actions.pm:
13:48 dalek rakudo/nom: improve a NYI error message
13:48 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/67f3c06a10
13:51 tadzik this makes us parse the first 85% of S26 :)
13:52 [Coke] tadzik++
13:55 dalek rakudo/nom: 769ae7d | tadzik++ | / (2 files):
13:55 dalek rakudo/nom: Disallow closing delimiters indented more than opening delimiters
13:55 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/769ae7d0af
13:57 moritz tadzik: that's good news
13:58 _twitch joined #perl6
14:13 jnthn tadzik: Wow, good going.
14:16 cosimo joined #perl6
14:18 * jnthn beats .Net's reflection stuff into submission to achieve Great Evil.
14:18 jnthn The .Net Type type is an example of how *not* to factor meta-space. :/
14:25 Moukeddar joined #perl6
14:26 Moukeddar hi o/
14:28 tadzik hello Moukeddar
14:29 Moukeddar how are you doing Sir?
14:30 tadzik pretty nice :)
14:31 tadzik how is your Perling?
14:31 sorear good * #perl6
14:31 moritz o/ sorear
14:32 Moukeddar the syntax feels a bit weird
14:32 tadzik any particular syntax?
14:32 tadzik o/ sorear
14:33 hanekomu joined #perl6
14:33 Moukeddar just the whole thing :)
14:33 M_o_C joined #perl6
14:33 Moukeddar coming from C#
14:34 [Coke] moritz++ # reclaimed a few more spectests.
14:35 dalek rakudo/nom: 04a9e65 | Coke++ | t/spectest.data:
14:35 dalek rakudo/nom: run more tests, track failure modes
14:35 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/04a9e654e5
14:37 noganex joined #perl6
14:47 mentesan joined #perl6
14:47 mentesan hi all
14:48 moritz hello
14:50 moritz nom: say <a b c>.Int
14:50 p6eval nom: OUTPUT«Rebuild in progress␤»
14:50 moritz uhm
14:52 dalek evalbot: c842a4a | moritz++ | evalbot.pl:
14:52 dalek evalbot: actually use the installed nom
14:52 dalek evalbot: review: https://github.com/perl6/evalbot/commit/c842a4a8d1
14:53 p6eval joined #perl6
14:53 moritz nom: say <a b c>.Int
14:53 koban left #perl6
14:53 moritz hello?
14:53 p6eval nom: OUTPUT«Rebuild in progress␤»
14:54 moritz perl6: say <a b c>.Int
14:54 p6eval rakudo 922500, niecza v8-45-g366d65b: OUTPUT«3␤»
14:54 p6eval ..pugs: OUTPUT«*** No such method in class Array: "&Int"␤    at /tmp/lPG6nYJggs line 1, column 5 - line 2, column 1␤»
14:55 mentesan left #perl6
14:56 moritz nom: say 1
14:56 p6eval nom: OUTPUT«1␤»
14:59 PacoLinux joined #perl6
15:01 takadonet nom: say 2
15:01 p6eval nom: OUTPUT«2␤»
15:01 TimToady ooh, progress!
15:01 takadonet we're good :)
15:02 kaare_ joined #perl6
15:04 MayDaniel joined #perl6
15:04 moritz nom: say 4
15:04 p6eval nom: OUTPUT«4␤»
15:04 moritz look, it's exponential!
15:07 takadonet !
15:08 jnthn decommute &
15:08 Trashlord joined #perl6
15:09 im2ee joined #perl6
15:18 thou joined #perl6
15:31 dalek rakudo/nom: e8e3340 | tadzik++ | src/Perl6/Grammar.pm:
15:31 dalek rakudo/nom: Fix handling colonpairs in Pod directives. Makes us fully parse S26
15:31 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e8e334066c
15:32 moritz \o/
15:33 takadonet WHAT!
15:33 takadonet tadzik++
15:33 tadzik :)
15:33 tadzik that was easy :)
15:33 mberends Awesome!
15:33 tadzik well, it parser in a sense that it has no parse errors. The resulting output is still far from perfect
15:34 flussence new objective: figure out another way to make S26 break tadzik's code while staying within spec :)
15:35 tadzik hey!
15:35 tadzik :)
15:38 colomon ugh.  getting trig tests to work in nom is non-trivial.  :(
15:41 tadzik phasers in 3:20?
15:42 colomon errr... sounds right?
15:43 tadzik okay
15:44 tadzik I never know with this DST :)
15:46 colomon tadzik: same here, actually, which is why I say "sounds right" instead of yes.  ;)
15:46 tadzik :)
15:48 tadzik nom: say <a b c>[1..*-1]
15:48 p6eval nom: OUTPUT«b c␤»
15:51 shinobicl joined #perl6
15:51 noganex_ joined #perl6
15:55 shinobicl rakudo: my %a_hash; %a_hash{'KEY-A'} = 'A'; %a_hash{'KEY-B'} = 'B'; say defined %a_hash{'KEY-A'} && defined %a_hash{'KEY-C'}; say defined (%a_hash{'KEY-A'} & %a_hash{'KEY-B'});
15:55 p6eval rakudo 922500: OUTPUT«Bool::False␤Bool::True␤»
15:55 shinobicl rakudo: my %a_hash; %a_hash{'KEY-A'} = 'A'; %a_hash{'KEY-B'} = 'B'; say defined %a_hash{'KEY-A'} && defined %a_hash{'KEY-B'}; say defined (%a_hash{'KEY-A'} & %a_hash{'KEY-C'});
15:55 p6eval rakudo 922500: OUTPUT«Bool::True␤Bool::True␤»
15:56 shinobicl nom: my %a_hash; %a_hash{'KEY-A'} = 'A'; %a_hash{'KEY-B'} = 'B'; say defined %a_hash{'KEY-A'} && defined %a_hash{'KEY-B'}; say defined (%a_hash{'KEY-A'} & %a_hash{'KEY-C'});
15:56 p6eval nom: OUTPUT«Rebuild in progress␤»
15:59 * tadzik bbl
16:00 dalek rakudo/nom: 90e9c38 | tadzik++ | lib/Pod/To/Text.pm:
16:00 dalek rakudo/nom: Couple of more fixes to make the output generated from S26 more pleasant to read
16:00 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/90e9c387f9
16:00 pmichaud nom:  say <a b c>[1..*]  # checking
16:00 p6eval nom: OUTPUT«Rebuild in progress␤»
16:03 im2ee joined #perl6
16:06 colomon woah, just had a zillion test fails on nom
16:06 * jnthn home
16:06 colomon ugh, out of date t/spec
16:11 kanishka joined #perl6
16:19 wamba joined #perl6
16:33 moritz nom: say '1'
16:33 p6eval nom: OUTPUT«1␤»
16:37 shinobicl nom: my %a_hash; %a_hash{'KEY-A'} = 'A'; %a_hash{'KEY-B'} = 'B'; say defined %a_hash{'KEY-A'} && defined %a_hash{'KEY-B'}; say defined (%a_hash{'KEY-A'} & %a_hash{'KEY-C'});
16:37 p6eval nom: OUTPUT«Bool::True␤Bool::True␤»
16:38 dalek niecza: 3603f44 | diakopter++ | / (8 files):
16:38 dalek niecza: implement IO r,w,x,o methods
16:38 dalek niecza: add Visual Studio/MonoDevelop solution/project files
16:38 dalek niecza: review: https://github.com/sorear/niecza/commit/3603f44fb9
16:38 isBEKaml joined #perl6
16:38 diakopter phenny: tell sorear I pushed IO.r .w .x .o
16:38 phenny diakopter: I'll pass that on when sorear is around.
16:39 sorear I saw \o/
16:39 phenny sorear: 16:38Z <diakopter> tell sorear I pushed IO.r .w .x .o
16:39 diakopter unfortunately it doesn't appear RWXO are possible
16:39 sorear diakopter: why not?
16:40 diakopter bindings for that syscall don't exist
16:40 diakopter actually O is possible
16:41 sorear diakopter: no bindings for access?
16:41 diakopter not that I can find
16:42 diakopter I suppose access can be reimplmented since theoretically I can query /etc/group
16:42 diakopter and I know the effective user id
16:43 sorear you don't want the effective user id, do you?
16:43 diakopter er yes, sorry, meant real user id
16:43 sorear my copy of Mono.Unix.Native.Syscall has an access() method
16:44 moritz evalbot rebuild nom
16:44 p6eval OK (started asynchronously)
16:44 moritz evalbot rebuild nom
16:44 p6eval OK (started asynchronously)
16:44 sorear is it very new?
16:44 moritz evalbot rebuild nom
16:44 p6eval OK (started asynchronously)
16:44 diakopter sorear: seems it's actually eaccess
16:44 sorear moritz: note, you've just tripled the length of time people will have to wait... each rebuilder is blocking on the same mutex
16:45 moritz sorear: wouldn't it make sense not to allow a rebuild if the lock file can't be obtained?
16:45 isBEKaml sorear: that is, it's not async? :)
16:45 sorear isBEKaml: it's async relative to IRC
16:45 isBEKaml sorear: nice. :-)
16:45 moritz nom: say 1
16:45 p6eval nom: OUTPUT«1␤»
16:45 sorear diakopter: -r -w -x -o should use eaccess
16:46 diakopter I know
16:46 sorear diakopter: -R -W -X -O should use access
16:46 diakopter there's no "eaccess" bindings in Mono.Unix.Native.Syscall
16:46 diakopter so I concluded that "access" there is actually eaccess
16:46 sorear diakopter: How did you implement -rwxo?
16:47 sorear ah
16:47 diakopter do you think that's a reasonable assumption?
16:47 sorear diakopter: access in Syscall is access in LIBC, according to the pinvoke []
16:47 diakopter oh
16:47 sorear man eaccess says "This function is nonstandard"
16:47 diakopter then there's no eaccess possible
16:48 sorear letme check what Perl does
16:52 sorear lots of #ifdefs here
16:52 sorear 5 possible implementations
16:52 diakopter :)
16:53 sorear on Digital UNIX, uses an extended flag to access EFF_ONLY_OK
16:53 sorear if eaccess available, eaccess
16:53 sorear if accessx available /* AIX */, use that
16:53 sorear if setresuid and setresgid available, temporarily set real ids to effective and use access
16:54 sorear otherwise stat() and check S_IWUSR etc
16:55 diakopter setresuid and setresgid aren't available from Mono.Unix.UnixEnvironment ; you can set effective ones though
16:56 sorear Syscall has setresuid and setresgid
16:56 diakopter that doesn't seem to be a very threadsafe technique
16:59 diakopter I guess I'll stat() and check S_IWUSR etc
16:59 diakopter niecza: say IO.x
17:00 p6eval niecza v8-45-g366d65b: OUTPUT«Unhandled exception: Unable to resolve method x in class IO␤  at /tmp/xZWSCRvjoa line 1 (MAIN mainline @ 1) ␤  at /home/p6eval/niecza/lib/CORE.setting line 1983 (CORE C930_ANON @ 2) ␤  at /home/p6eval/niecza/lib/CORE.setting line 1984 (CORE module-CORE @ 57…
17:03 dalek rakudo/nom: c33f355 | (Solomon Foster)++ | src/core/R (2 files):
17:03 dalek rakudo/nom: Add Real.Rat with optional tolerance and optional tolerance to Rat.Rat.
17:03 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/c33f355a54
17:04 moritz colomon: why does Rat.Rat need an optional tolerance?
17:04 colomon so that you can call Real.Rat with an actual tolerance and have it do the right thing
17:05 Trashlord joined #perl6
17:05 isBEKaml nom: my $x = 7 % 2; say $x;
17:05 p6eval nom: OUTPUT«1␤»
17:08 jnthn colomon: If you don't use the value you can just do Real $?
17:09 jnthn colomon: And the binder will ignore the arg and not have the binding cost
17:09 colomon ah, good to know.
17:09 jnthn nom: sub foo($?) { }; foo(); foo(1);
17:09 p6eval nom: OUTPUT«In signature parameter, '$?', it is illegal to use '?' twigil at line 1, near ") { }; foo"␤current instr.: 'nqp;HLL;Grammar;panic' pc 23611 (src/stage2/gen/NQPHLL.pir:6348) (src/stage2/gen/NQPHLL.pm:329)␤»
17:09 jnthn d'oh
17:09 jnthn std: sub foo($?) { }; foo(); foo(1);
17:09 p6eval std 516268a: OUTPUT«ok 00:01 121m␤»
17:10 jnthn hm
17:10 jnthn Wonder if std parses it correct or just doesn't whine :)
17:11 moritz std: sub foo($?bar) { }
17:11 p6eval std 516268a: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤You may not use the ? twigil in a signature at /tmp/LKeDm2_sw5 line 1:â�¤------> [32msub foo($[33mâ��[31m?bar) { }[0mâ�¤    expecting twigilâ�¤Parse failedâ�¤FAILED 00:01 119mâ�¤Â»
17:12 jnthn moritz: Yeah, it gets it right...think I see why
17:13 jnthn Trying a patch.
17:13 dalek evalbot: c160421 | moritz++ | / (2 files):
17:13 dalek evalbot: Some targets don't need to obtain lock files, because their build scripts are smart enough
17:13 dalek evalbot:
17:13 dalek evalbot: Also remove the case of $executer being a coderef, which doesn't seem to
17:13 dalek evalbot: happen in evalbot.pl. YAGNI applies.
17:13 dalek evalbot: review: https://github.com/perl6/evalbot/commit/c16042198d
17:14 cosimo joined #perl6
17:15 p6eval joined #perl6
17:15 moritz evalbot rebuild nom
17:16 p6eval OK (started asynchronously)
17:16 moritz nom: say 1
17:16 p6eval nom: OUTPUT«1␤»
17:16 moritz \o/
17:17 jnthn \o/
17:17 jnthn moritz++
17:21 am0c joined #perl6
17:23 tokuhirom joined #perl6
17:23 dalek evalbot: 04077a8 | moritz++ | / (2 files):
17:23 dalek evalbot: refactor locking a bit, and only rebuild if a lock file can be obtained
17:23 dalek evalbot: review: https://github.com/perl6/evalbot/commit/04077a85d3
17:24 p6eval joined #perl6
17:25 * moritz has the feeling that evalbot could use a good refactor at some point :-)
17:25 moritz evalbot rebuild std
17:25 p6eval OK (started asynchronously)
17:25 moritz evalbot rebuild std
17:25 p6eval OK (started asynchronously)
17:25 moritz ah, that one just runs a 'make', which finished kinda fast
17:26 moritz evalbot rebuild rakudo
17:26 p6eval OK (started asynchronously)
17:26 Util colomon: pong
17:26 moritz and that one also checks if it actually needs to build
17:26 moritz evalbot rebuild niecza
17:26 p6eval OK (started asynchronously)
17:26 moritz evalbot rebuild niecza
17:26 p6eval NOT OK (maybe a rebuild is already in progress?)
17:26 masak joined #perl6
17:26 masak \o/ #perl6
17:27 moritz hello masak
17:27 masak moritz: I forgot to say, but I liked your simplifications on the MAIN spec.
17:28 moritz masak: nice :-)
17:28 bluescreen10 joined #perl6
17:28 jnthn o/ masak
17:28 masak \o
17:34 colomon Util: you were saying something a week or two ago about revisiting the implementations of the Complex trig functions?
17:35 perlhack joined #perl6
17:35 Util colomon: yes; some of the work is already in a branch
17:35 Util but that is in Parrot, not Perl 6.
17:35 colomon Util: what's the story?
17:36 Util A GSOC student filed a bug, and I hit the same problem while trying to hammer down Win32 bugs...
17:36 mj41 joined #perl6
17:38 Util Some of the Hyperbolic trig functions may be incorrect along the branch cuts, especially arccosh which may be wrong in part of the unit circle too.
17:40 Util My explorations were muddied by the fact that Mathematica, Darwin's Clib, and GNU Clib disagree on the canonical values of some the the multi-valued functions.
17:42 Util It *may* be the case that all of those three, *and* Parrot's implementation of the functions in Complex, all give *correct* answers, and that the multi-valued functions just need to have a more understanding is() to check the answers during testing...
17:42 Util I don't know yet, though.
17:42 impious joined #perl6
17:42 impious left #perl6
17:43 Util Just curious?
17:48 TiMBuS joined #perl6
17:48 colomon Util: well, thought as long as we were (re-) implementing the functions in nom and niecza, and you were doing research on it, we ought to pay attention to you.
17:49 pernatiy joined #perl6
17:49 colomon sorry for disappearing there for a minute, had to fetch a small child who had just let himself out of the house and administer a time out.
17:50 fbass joined #perl6
17:52 fbass joined #perl6
17:57 dalek rakudo/nom: 7c9b08a | jonathan++ | src/Perl6/Grammar.pm:
17:57 dalek rakudo/nom: Fix twigil parsing to be in line with STD.
17:57 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/7c9b08aa41
17:57 * tadzik is back
17:57 masak tadzik! \o/
17:57 jnthn evenin', tadzik
18:00 moritz if anybody notices any evalbot oddness in the next few days, please tell
18:00 moritz I've touched more of its code today than I would have liked :-)
18:01 tadzik :)
18:01 tadzik masak: have you seen the fully-parsed S26 today? :)
18:01 masak tadzik: oh wow no I haven't!
18:02 dalek niecza: 30c9d82 | diakopter++ | lib/ (3 files):
18:02 dalek niecza: actually implement -R -O -W -X -o and stub in -r -w -x
18:02 dalek niecza: review: https://github.com/sorear/niecza/commit/30c9d82c4d
18:02 tadzik the NYI formatting codes still look stupid, but it seems fine aside from it
18:02 tadzik masak: just perl6 --doc ~/your/s/26
18:03 masak tadzik: making nomz. will try later :)
18:04 tadzik ok :)
18:08 zby_home_ joined #perl6
18:12 Util colomon: I am on-site with a new client until tonight, and therefore intermittant myself; no worries.
18:12 Util I will let you know how my experiments work out, and also take a look at the Complex implementations in nom and Niecza, later this week.
18:12 Util Is there a log of any discussion on your planned re-implementation of Complex?
18:12 colomon Util: well, there are no complex trig implementations in either, yet.  ;)
18:13 * [Coke] wonders if having a perl6 copy called "perldoc" that just forced --doc to be set would be useful.
18:13 Util Ah, yes, now I remember looking at Rakudo master and noticing that pieces were... missing :)
18:13 colomon Util: the only thing I've heard is a repeated theory that I would be the one to implement the Complex trig functions.
18:14 TimToady are you hoping to disprove this theory? :)
18:15 Util So you will be wanting my notes? Or are you already Zen Master of the domain?
18:15 Util colomon++ # just on spec :)
18:15 colomon TimToady: apparently not hard enough, as I started working on it this morning.  ;)
18:15 diakopter TimToady alive
18:15 colomon Util: I am SO not Zen Master of the domain.  I would love your notes.
18:17 Util colomon: It will be later in the week, but I will provide them.
18:18 colomon I mean, I have a okay overall understanding of the area (I think), but I looked up all the formulas on wikipedia when I did the first implementation.  ;)
18:23 fbass joined #perl6
18:28 Trashlord joined #perl6
18:30 * [Coke] runs perldoc on S26. o/
18:30 * [Coke] tries not to be like his analysts; the immediate next step is to complain about all the things that can be fixed now! ;)
18:40 hanekomu joined #perl6
18:41 pernatiy joined #perl6
18:59 tadzik moritz: around?
18:59 moritz tadzik: yes
18:59 moritz tadzik: remember to report at #phasers in about 1min :-)
19:00 dalek rakudo/nom: d441931 | (Solomon Foster)++ | src/core/Rat.pm:
19:00 dalek rakudo/nom: Use "Real $?" for the Rat.Rat optional parameter which is ignored.  jnthn++
19:00 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/d4419313f4
19:02 tadzik moritz: I'm thinking about DOC use right now, I tried something along of a rule like 'DOC' \h+ <?before 'use'> and then checking  %*COMPILING<%?OPTIONS><doc> in the action method, but it makes no sense for the actual using happens in the grammar rule. So I thought, maybe something like [ %*COMPILING<%?OPTIONS><doc> && 'DOC' \h && {my $*YES_CONTINUE := 1}] at the beginning of statement_control:sym<use>, and
19:02 tadzik then checking $*YES_CONTINUE before the actual loading, or something?
19:04 moritz tadzik: or maybe it's just  DOC <blast>, and check if <blast> matched a 'use' statement, and if yes executed immediately
19:05 moritz can <blast> parse 'use Foo;' ?
19:05 tadzik yes, that's the use for it
19:05 tadzik as in 'DOC use Pod::To::Text'
19:06 tadzik not much different from DOC INIT { use }
19:06 * jnthn suspects s/BEGIN/INIT/
19:06 jnthn er
19:06 jnthn the other way around :)
19:07 tadzik mebbe
19:07 * tadzik is not really fond of 'DOC use', as a spec thing
19:08 tadzik it's just like "oh, there's a possibily to move 'use' out of your custom DOC INIT, if you want to"
19:08 tadzik not really useful imho
19:09 jnthn nom: use Test; say Test
19:09 p6eval nom: OUTPUT«Test()␤»
19:09 jnthn nom: DOC INIT { use Test }; say Test
19:09 p6eval nom: OUTPUT«arglist case of use not yet implemented at line 1, near "}; say Tes"␤current instr.: 'nqp;HLL;Grammar;panic' pc 23611 (src/stage2/gen/NQPHLL.pir:6348) (src/stage2/gen/NQPHLL.pm:329)␤»
19:09 moritz well, you need something wich 1) happens at compile time, only in the context of DOC and 2) isn't in a separate scope, because import is lexical
19:09 jnthn nom: DOC INIT { use Test; }; say Test
19:09 moritz I think that 'DOC use MyDocModule;' is useful for that
19:09 p6eval nom: OUTPUT«Test()␤»
19:09 jnthn Bug.
19:10 moritz not a blocker for gsoc though, IMHO
19:10 jnthn No, it's not
19:10 jnthn I don't have a good answer off hand
19:10 jnthn I'll ponder it a bit. :)
19:11 tadzik I don't get it. DOC use is only useful if the module you use is used later in DOC INIT, or DOC OTHER_PHASE, in which case you could as well stick the use inside of the phaser and save typing
19:13 moritz tadzik: unless that module wants to modify the grammar, or something
19:13 tadzik hmm, mebbe
19:13 tadzik ok
19:15 tadzik moritz: I don't get the "check if <blast> matched a 'use' statement, and if yes executed immediately" part :)
19:16 tadzik as in: put <statement_control> in there, and if it's not /^use/ issue a parsefail?
19:16 moritz no
19:16 moritz just a sec
19:16 tadzik ok, no hurries
19:16 jnthn Note that as soon as "use" is parsed, it takes action.
19:17 tadzik I know'
19:17 jnthn By the time you know you've parsed a use in the node above, you've already used.
19:17 tadzik that's the problem
19:17 moritz ah
19:17 moritz then forget what I said
19:17 tadzik so I thought about modifying use itself
19:18 tadzik so put a [ 'DOC' \h* $*HAS_DOC := 1] and then check $*HAS_DOC just before loading, and do not load if it's not set
19:18 tadzik well, no. Do not load, if it's set, and there's no --doc
19:18 moritz yes, something like that
19:18 tadzik so modifying use. Ok
19:27 soh_cah_toa joined #perl6
19:27 tadzik done, spectesting and pushign
19:28 moritz ++tadzik
19:29 tadzik oh wait, it's wrong :)
19:30 tadzik it's late for boolean logic
19:30 pmichaud $*HAS_DOC should probably be $*IN_DOC
19:30 pmichaud since it's not "has" anything.
19:30 jnthn aye
19:31 tadzik I actually used $*DOC_USE
19:31 tadzik then unless $*DOC_USE && !%*COMPILING<%?OPTIONS><doc>
19:31 masak niecza: sub foo($x) { PRE { $x %% 2 }; return $x - 1; POST { $x !%% 2 } }; say foo(10)
19:31 p6eval niecza v8-45-g366d65b: OUTPUT«Unhandled exception: System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary.␤  at System.Collections.Generic.Dictionary`2[System​.String,System.Reflection.FieldInfo].get_Item (System.String key) [0x00000] in <filenam…
19:31 masak hm.
19:31 masak er.
19:32 masak niecza: sub foo($x) { PRE { $x %% 2 }; return $x - 1; POST { $_ !%% 2 } }; say foo(10)
19:32 p6eval niecza v8-45-g366d65b: OUTPUT«Unhandled exception: System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary.␤  at System.Collections.Generic.Dictionary`2[System​.String,System.Reflection.FieldInfo].get_Item (System.String key) [0x00000] in <filenam…
19:32 masak sorear: can I submit this as a Niecza issue?
19:33 * moritz wouldn't see why not
19:38 shinobicl left #perl6
19:40 * masak does it, then
19:58 im2ee joined #perl6
20:01 * diakopter looks for something else "quick/easy" to tackle in niecza
20:02 masak diakopter: temp! :)
20:03 diakopter hah
20:04 masak too easy? maybe 'let', then. I've been wanting that one for a long time :)
20:04 masak now that many phasers are in place, it should even be within reach.
20:06 diakopter unfortunately for me, I don't understand enough about let and phasers
20:06 pmichaud careful playing with phasers... one might get burned.
20:06 pmichaud :-)
20:08 masak one might get burned early on... or very late.
20:08 TimToady let is just like temp, except it puts the restorer in UNDO instead of in LEAVE
20:09 masak well, there you go.
20:09 diakopter I don't understand enough about temp also :)
20:09 colomon I thought phasers were more likely to stun you...
20:09 TimToady (or in the case of temp $*foo, puts the hoister into KEEP)
20:09 TimToady er, let $*foo
20:10 dalek niecza: b1a06ff | diakopter++ | lib/ (3 files):
20:10 dalek niecza: fix the build; sigh
20:10 dalek niecza: review: https://github.com/sorear/niecza/commit/b1a06ffc6e
20:11 diakopter evalbot: rebuild niecza
20:11 diakopter halp
20:12 diakopter p6eval: rebuild niecza
20:12 diakopter evalbot control rebuild niecza
20:13 diakopter evalbot rebuild niecza
20:13 p6eval OK (started asynchronously)
20:15 timbunce joined #perl6
20:15 diakopter niecza: IO.X
20:15 p6eval niecza v8-45-g366d65b: OUTPUT«Unhandled exception: System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary.␤  at System.Collections.Generic.Dictionary`2[System​.String,System.Reflection.FieldInfo].get_Item (System.String key) [0x00000] in <filenam…
20:15 diakopter urp
20:15 diakopter niecza: say 3.IO.x
20:16 p6eval niecza v8-45-g366d65b: OUTPUT«Unhandled exception: System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary.␤  at System.Collections.Generic.Dictionary`2[System​.String,System.Reflection.FieldInfo].get_Item (System.String key) [0x00000] in <filenam…
20:16 diakopter uh oh
20:16 diakopter now what did I do
20:16 TimToady niecza: say "Rebuild in progress"
20:17 p6eval niecza v8-45-g366d65b: OUTPUT«Unhandled exception: System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary.␤  at System.Collections.Generic.Dictionary`2[System​.String,System.Reflection.FieldInfo].get_Item (System.String key) [0x00000] in <filenam…
20:17 diakopter maybe I broke the build in more ways than I know
20:17 TimToady .oO(Meta-Rebuild in progress)
20:19 diakopter TimToady: I don't suppose you could explain the fallback algorithm perl uses for -x,-r,-w when eaccess etc aren't available
20:19 molaf joined #perl6
20:20 diakopter or maybe point me to a filename somewhere
20:20 dalek rakudo/nom: 3462af1 | tadzik++ | src/Perl6/Grammar.pm:
20:20 dalek rakudo/nom: Implement DOC use
20:20 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/3462af1fc1
20:21 TimToady pp_sys.c
20:21 pmichaud tadzik: for a one-level flag like $*DOC_USE, easier would be to simply capture the 'DOC' into a subcapture
20:22 pmichaud $<doc>=[ 'DOC' \h* ]
20:22 diakopter TimToady: yikes; it switches effective uid temporarily; that doesn't seem threadsafe
20:22 pmichaud and then look for the subcapture
20:22 tadzik pmichaud: oh, probably, yes
20:22 tadzik will do that
20:22 TimToady diakopter: I believe this was mentioned earlier as a problem with that approach
20:23 TimToady in fact, you said it
20:23 diakopter yes; I'm running out of choices
20:24 TimToady let's see, there's always forking off another process, then sending the info back through a pipe
20:25 TimToady not something you wanna do on every -r though...
20:26 * TimToady will nap upon it
20:26 diakopter poor mono doesn't emulate it
20:26 diakopter I wonder what parrot/rakudo do
20:27 * [Coke] needs to turn off "parrot" as a word of interest in this channel.
20:28 pmichaud I think that rakudo does "nyi" for that.  :)
20:28 pmichaud (Parrot also.)
20:28 diakopter but it does do -r -w -x I thought
20:29 diakopter which is supposed to use effective uid/gid
20:30 diakopter oh, I guess they're fudged
20:31 diakopter in filetest.t
20:32 tadzik is it just me, or ./perl6 --doc -e 'DOC use Test;' does run HORRIBLY slow for some reason?
20:32 tadzik like, 8 times slower than withouth the --doc?
20:32 masak 'night, #perl6
20:32 diakopter n
20:33 tadzik oh, that's maybe the loading of Pod::To::Text and so
20:33 tadzik nom: use Test; use Pod::To::Text
20:33 p6eval nom:  ( no output )
20:34 jnthn tadzik: Oh, I think we don't install the pre-compiled versions of those.
20:34 tadzik it's 7.5 seconds for me
20:34 jnthn So if you're hitting the install somehow...
20:34 tadzik I don't install nom on my machine
20:34 jnthn ok
20:34 jnthn Is it far faster without --doc?
20:35 pmichaud looks like Parrot implements "real uid" access checks, and not "effective uid"
20:35 tadzik jnthn: yes, a lot
20:36 diakopter pmichaud: same for mono
20:36 tadzik jnthn:  see https://gist.github.com/1135126
20:36 tadzik and it's not because of DOC use, commenting it out doesn't help
20:37 Khisanth joined #perl6
20:38 jnthn hmm
20:38 tadzik adding use Pod::To::Text and copypasting the default phaser still doesn't slow things down that much
20:38 tadzik I'll compare the pir output
20:38 pmichaud where is the --doc switch handled, ooc?
20:38 tadzik well, --doc generates over 200% the pir
20:38 tadzik 206 lines vs 442 lines
20:39 tadzik pmichaud: it depends on what do you mean by handled. There are checks for '%*COMPILING<?OPTIONS><doc> from time to time
20:42 dalek rakudo/nom: 1ec5883 | tadzik++ | src/Perl6/Grammar.pm:
20:42 dalek rakudo/nom: Use a subcapture instead of a dynvar in DOC use handling, pmichaud++
20:42 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/1ec5883b68
20:43 im2ee left #perl6
20:52 dalek 6model: 5fa7d52 | (Martin Berends)++ | c/ (2 files):
20:52 dalek 6model: [6model/c] fix a memory leak in t/01c-osthreads.c detected up by valgrind
20:52 dalek 6model: review: https://github.com/jnthn/6model/commit/5fa7d52926
20:58 Khisanth joined #perl6
20:59 dalek niecza: dd8c40b | diakopter++ | lib/Builtins.cs:
20:59 dalek niecza: copy Perl 5's emulate_eaccess algorithm for -r -w -x
20:59 dalek niecza: review: https://github.com/sorear/niecza/commit/dd8c40b8c5
20:59 fbass joined #perl6
21:07 timbunce joined #perl6
21:19 tadzik g'night #perl6
21:19 jnthn night, tadzik
21:20 Vlavv` joined #perl6
21:44 Psyche^ joined #perl6
21:46 drbean joined #perl6
22:03 diakopter sorear: ping
22:03 diakopter niecza: say 1
22:04 p6eval niecza v8-48-gb1a06ff: OUTPUT«Unhandled exception: System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary.␤  at System.Collections.Generic.Dictionary`2[System​.String,System.Reflection.FieldInfo].get_Item (System.String key) [0x00000] in <filenam…
22:04 diakopter gah
22:04 Util rakudo: my $m = [ [1,2,3], [4,5,6], [7,8,9] ]; my @a = $m.list>>.list; say @a.perl;
22:05 p6eval rakudo 922500: OUTPUT«[1, 2, 3, 4, 5, 6, 7, 8, 9]␤»
22:05 Util rakudo: my $m = [ [1,2,3], [4,5,6], [7,8,9] ]; my @a = $m.list>>.flat; say @a.perl;
22:05 p6eval rakudo 922500: OUTPUT«[1, 2, 3, 4, 5, 6, 7, 8, 9]␤»
22:05 Util nom:    my $m = [ [1,2,3], [4,5,6], [7,8,9] ]; my @a = $m.list>>.list; say @a.perl;
22:05 p6eval nom: OUTPUT«Array.new(1, 3, 2)␤»
22:05 Util nom:    my $m = [ [1,2,3], [4,5,6], [7,8,9] ]; my @a = $m.list>>.flat; say @a.perl;
22:05 p6eval nom: OUTPUT«Array.new(5, 4, 6)␤»
22:05 Util Known problem with nom?
22:06 Reaganomicon joined #perl6
22:07 pmichaud nom:  my $m = [ [1,2,3], [4,5,6], [7,8,9] ];  say $m.perl;
22:07 p6eval nom: OUTPUT«[[1, 2, 3], [4, 5, 6], [7, 8, 9]]␤»
22:07 whiteknight joined #perl6
22:07 pmichaud nom:  my $m = [ [1,2,3], [4,5,6], [7,8,9] ];  say $m.list
22:07 p6eval nom: OUTPUT«1 2 3 4 5 6 7 8 9␤»
22:08 pmichaud nom:  my $m = [ [1,2,3], [4,5,6], [7,8,9] ];  say $m.list.perl
22:08 p6eval nom: OUTPUT«Array.new([1, 2, 3], [4, 5, 6], [7, 8, 9])␤»
22:08 pmichaud nom:  my $m = [ [1,2,3], [4,5,6], [7,8,9] ];  say $m.list>>.flat.perl
22:08 p6eval nom: OUTPUT«Array.new(1, 2, 3)␤»
22:08 pmichaud nom:  my $m = [ [1,2,3], [4,5,6], [7,8,9] ];  say ($m.list>>.flat).perl
22:08 p6eval nom: OUTPUT«Array.new(5, 4, 6)␤»
22:08 pmichaud nom:  my $m = [ [1,2,3], [4,5,6], [7,8,9] ];  say ($m.list.flat).perl
22:08 p6eval nom: OUTPUT«Array.new([1, 2, 3], [4, 5, 6], [7, 8, 9])␤»
22:09 pmichaud nom:  my $m = [ [1,2,3], [4,5,6], [7,8,9] ];  say ($m.list>>.flat).perl
22:09 p6eval nom: OUTPUT«Array.new(5, 4, 6)␤»
22:09 pmichaud weird.
22:09 pmichaud looking.
22:09 pmichaud nom:  my $m = [ [1,2,3], [4,5,6], [7,8,9] ];  say ($m.list."dispatch:<hyper>"()).perl
22:09 p6eval nom: OUTPUT«Not enough positional parameters passed; got 1 but expected at least 2␤current instr.: 'dispatch:<hyper>' pc 750498 (src/gen/CORE.setting.pir:190619) (src/gen/CORE.setting:654)␤»
22:09 pmichaud nom:  my $m = [ [1,2,3], [4,5,6], [7,8,9] ];  say ($m.list."dispatch:<hyper>"('flat')).perl
22:09 p6eval nom: OUTPUT«Array.new(8, 9, 7)␤»
22:09 pmichaud oh!
22:12 sorear diakopter: pong
22:13 * Util has *no* insight into pmichaud's insight
22:13 diakopter sorear: I think perhaps "using Mono.Unix.Native;" broke something in Builtins.cs
22:13 jnthn Util: Me either. :)
22:13 jnthn But I look forward to seeing the patch. :)
22:13 pmichaud well, it's somewhat of a question of "what do you expect to happen there?"
22:15 jnthn pmichaud: I'm guessing there's an itemize happening somewhere
22:16 pmichaud actually, it's that an itemize *isn't* happening.
22:16 jnthn oh.
22:16 jnthn ah, I see
22:16 jnthn It's doing a list assignment.
22:16 pmichaud right.
22:16 dalek niecza: 3517be9 | diakopter++ | lib/Builtins.cs:
22:16 dalek niecza: fix the build for realz
22:16 dalek niecza: review: https://github.com/sorear/niecza/commit/3517be9143
22:16 pmichaud I can force it to itemize... but then that would totally negate the point of the .flat
22:16 diakopter evalbot rebuild niecza
22:16 p6eval OK (started asynchronously)
22:17 jnthn ah, yeah
22:17 jnthn the number of result elements != the number of elements we started with, if it's gonna work.
22:17 diakopter niecza: saliveay
22:17 p6eval niecza v8-50-g3517be9: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤â�¤Undeclared routine:â�¤      'saliveay' used at line 1â�¤â�¤Unhandled exception: Check failedâ�¤â�¤  at /home/p6eval/niecza/boot/lib/CORE.setting line 685 (CORE die @ 2) â�¤  at /home/p6eval/niecza/src/STD.pm6 line 1136 (STD P6.comp_unit @ 36)…
22:17 diakopter er
22:17 diakopter niecza: say "liave"
22:17 pmichaud well, I suspect @result[...] =  is wrong anyway.
22:17 p6eval niecza v8-50-g3517be9: OUTPUT«liave␤»
22:18 pmichaud I'm guessing it needs to go into a list instead of an array.
22:18 diakopter niecza: say IO.x
22:18 p6eval niecza v8-50-g3517be9: OUTPUT«Unhandled exception: CORE IO.x may not be used in safe mode␤  at /home/p6eval/niecza/lib/CORE.setting line 0 (CORE IO.x @ 0) ␤  at /tmp/uV0DPCuojs line 1 (MAIN mainline @ 1) ␤  at /home/p6eval/niecza/lib/CORE.setting line 1991 (CORE C938_ANON @ 2) ␤  at /ho…
22:18 sorear diakopter++
22:19 sorear diakopter: I was pretty conservative with the "is unsafe" decorators
22:19 sorear I'm not sure how much we *really* need to block
22:20 pmichaud have to fetch dinner -- will fix when I return.  My guess is that the results should go into an RPA that then gets turned into a list (with flattening as appropriate)
22:20 sorear almost all mutating syscalls except exit() and similar, naturally
22:20 pmichaud or, perhaps more likely, the results go into an RPA that gets turned into a Parcel
22:20 sorear also reading files
22:20 sorear but I can't tell offhand if -x is a security risk
22:21 pmichaud anyway, I'll fix it shortly.
22:21 sorear maybe I should ask the person whose security is threatened :D  diakopter, you own(FSVO own) host04, right?
22:21 jnthn pmichaud++
22:21 TimToady niecza: use Test
22:21 p6eval niecza v8-50-g3517be9:  ( no output )
22:21 TimToady niecza: use Test; say "alive"
22:21 p6eval niecza v8-50-g3517be9: OUTPUT«alive␤»
22:22 TimToady hmm, fails here
22:22 diakopter git pull again
22:22 diakopter just fixed
22:22 TimToady did, the build was broke before
22:22 TimToady now just 'make test' is
22:22 diakopter hm
22:23 TimToady I get: Unable to resolve method shift in class Str
22:23 diakopter mono run/Niecza.exe -e 'say "lib".IO.x'
22:23 TimToady that returns true
22:23 diakopter /o/
22:24 TimToady trying a make clean
22:24 diakopter make test wfm
22:24 TimToady fixed
22:25 diakopter sorear: https://github.com/sorear/niecza/issues/47 can be closed I'm sure
22:25 TimToady must be a missing dependency if a make clean fixes
22:25 TimToady s/must/likely to/
22:26 sorear TimToady: it's more insidious than that; the dependency calculator breaks if there are files left around from a previous incompatible revision of the .nam format
22:26 sorear I should probably add a version number to that at some point
22:27 TimToady well, that's sort of a missing dependency :)
22:27 bbkr joined #perl6
22:28 diakopter TimToady: I ended up doing setreuid/setregid and back
22:28 sorear diakopter: closed
22:29 diakopter sorear: now all it needs is the ~~ :x syntax for filetest.t to pass largely
22:29 dalek roast: 63327ca | jonathan++ | S12-subset/multi-dispatch.t:
22:29 dalek roast: Update test to follow latest proto semantics.
22:29 dalek roast: review: https://github.com/perl6/roast/commit/63327ca6e5
22:30 sorear well that's trivial
22:30 diakopter trivial for you
22:31 TimToady I imagine it already has the syntax; it's the semantics it needs...
22:31 diakopter niecza: say IO ~~ :e # yes
22:31 p6eval niecza v8-50-g3517be9: OUTPUT«Bool::False␤»
22:32 diakopter (doesn't try to invoke the method)
22:32 TimToady niecza: say Pair.can('ACCEPTS')
22:32 p6eval niecza v8-50-g3517be9: OUTPUT«Bool::True␤»
22:32 sorear that's because it's calling Mu.ACCEPTS
22:32 sorear wait, no, it's calling Any.ACCEPTS
22:32 TimToady niecza: say "foo" ~~ :chars
22:33 p6eval niecza v8-50-g3517be9: OUTPUT«Bool::False␤»
22:33 sorear and then "foo" === :chars
22:33 TimToady right
22:33 TimToady niecza: say "1" ~~ :chars
22:33 p6eval niecza v8-50-g3517be9: OUTPUT«Bool::False␤»
22:34 TimToady um
22:34 TimToady right
22:34 sorear niecza: my $p = :chars; say $p ~~ $p
22:34 p6eval niecza v8-50-g3517be9: OUTPUT«Bool::True␤»
22:34 TimToady niecza: say 1 ~~ :chars
22:34 p6eval niecza v8-50-g3517be9: OUTPUT«Bool::False␤»
22:34 TimToady niecza: say 1 ~~ 1
22:35 p6eval niecza v8-50-g3517be9: OUTPUT«Bool::True␤»
22:35 TimToady niecza: say 1 ~~ 1.chars
22:35 p6eval niecza v8-50-g3517be9: OUTPUT«Bool::True␤»
22:35 dalek rakudo/nom: 73ee1ee | jonathan++ | / (17 files):
22:35 dalek rakudo/nom: Add archetypes, which provide a way for a meta-object to describe the things the types it describes can be used for, or can provide related types for. Replaces the .is_generic mechnism, and adds a few more things, including a way to ask a subtype for its underlying nominal type.
22:35 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/73ee1eee3b
22:35 dalek rakudo/nom: 9d9f42c | jonathan++ | src/Perl6/Metamodel/SubsetHOW.pm:
22:35 dalek rakudo/nom: Missing decontainerize.
22:35 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/9d9f42cf8b
22:35 dalek rakudo/nom: 71168e4 | jonathan++ | src/Perl6/Actions.pm:
22:35 dalek rakudo/nom: Handle non-nominal types used in the nominal parameter type slot; start preparing for fixing generics handling in the binder a little more.
22:35 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/71168e4906
22:35 dalek rakudo/nom: c954899 | jonathan++ | t/spectest.data:
22:35 dalek rakudo/nom: Run S12-subset/multi-dispatch.t.
22:35 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/c954899a83
22:35 diakopter sorear: what is niecza missing that makes its "Basic File IO" entry in Features not be green
22:36 sorear diakopter: close and most of the other handle operators
22:36 sorear niecza: say (1.?"pie"()).perl
22:37 p6eval niecza v8-50-g3517be9: OUTPUT«Potential difficulties:â�¤  Useless use of quotes at /tmp/nkLGOT2TXG line 1:â�¤------> [32msay (1.?"pie"[33mâ��[31m()).perl[0mâ�¤â�¤Nilâ�¤Â»
22:37 sorear niecza: say (1."sqrt"()).perl
22:37 p6eval niecza v8-50-g3517be9: OUTPUT«Potential difficulties:â�¤  Useless use of quotes at /tmp/DUkKh7kjsD line 1:â�¤------> [32msay (1."sqrt"[33mâ��[31m()).perl[0mâ�¤â�¤1â�¤Â»
22:37 sorear niecza: say (1.?"sqrt"()).perl
22:37 p6eval niecza v8-50-g3517be9: OUTPUT«Potential difficulties:â�¤  Useless use of quotes at /tmp/xHCTrEoE1w line 1:â�¤------> [32msay (1.?"sqrt"[33mâ��[31m()).perl[0mâ�¤â�¤1â�¤Â»
22:37 sorear I've added a Pair.ACCEPTS
22:37 sorear now testing
22:38 TimToady also lines() doesn't do anything with filenames on the command line
22:39 diakopter gather take my $l while ($l = self.get).defined;
22:39 diakopter TimToady, including with .IO ?
22:39 sorear diakopter: you think it could use more parens?
22:39 diakopter heh no
22:39 diakopter just pasting it
22:39 Util pmichaud++
22:40 TimToady gather makes its own parens
22:40 TimToady so you don't need 'em for the while modifier
22:40 * TimToady thinks
22:40 Util (independent of implementation) If I have a AoA, and want to completely
22:40 Util flatten it, is there a "best way" among .flat>>.flat, .flat>>.list,
22:40 Util .list>>.list, .list>>.flat, or something completely different?
22:41 TimToady Util: .tree is supposed to do that, but nobody's implemented it
22:41 diakopter sounds like a feature item
22:42 TimToady diakopter: I don't know what you mean by: including with .IO ?
22:42 diakopter I guess I was asking for an example of your command line
22:42 TimToady lines with no argument implicitly opens filter style
22:42 sorear Util: probably { $_ ~~ Array ?? map(&?BLOCK, @($_)) !! $_ }
22:43 dalek niecza: 785e335 | sorear++ | lib/CORE.setting:
22:43 dalek niecza: Implement Pair.ACCEPTS
22:43 dalek niecza: review: https://github.com/sorear/niecza/commit/785e3357fd
22:44 diakopter I don't know what filter style is
22:44 TimToady filenames on command line or STD if none specified
22:44 TimToady STDIN
22:45 Util sorear, TimToady: thanks!
22:45 TimToady lines works with <file but not just file
22:45 Util When implemented in Rakudo and Niecza, I want to change part of RC Matrix-exponentiation_operator from:
22:45 Util my $size = 1; for ^$m X ^$m -> $i, $j { $size max= $m[$i][$j].Str.chars; }
22:45 Util to:
22:45 Util my $size = [max] 1, $m.tree».chars;
22:46 TimToady well, except we probably will change that one to use real shaped arrays when we have 'em
22:47 TimToady what we need is the visit-every-leaf semantics somewhere handy
22:48 TimToady which was specced somewhere...
22:49 Util visit-every-leaf would be quite nice
22:50 TimToady seems that Enumerable used to mean that, or some such
22:51 pmichaud okay, now that I've done my errand and thought about it, I feel an inconsistency in the hyperops
22:51 Util traverse() is in S06, but it is an example of "Unpacking tree node parameters", not a language feature in itself.
22:51 pmichaud if @a>>++  recursively applies ++ to any Iterables in @a, does the same hold true for @a>>.foo  ?
22:51 pothos_ joined #perl6
22:52 TimToady but it's specced to return the same structure
22:52 pmichaud right, so is the same true for @a>>.foo ?
22:52 pmichaud i.e., it returns the same structure?
22:53 wolfman2000 joined #perl6
22:54 TimToady I'd think the best that could do is turn sub-arrays into sub-parcels
22:54 TimToady in any case, we don't actually want to flatten the 2-D array in this case
22:54 TimToady but just treat it like a 1-D array temporarily
22:54 TimToady or just visit each leaf
22:55 pmichaud I don't follow.
22:55 pmichaud maybe I need to read the backscroll a bit
22:55 TimToady Util's code above
22:56 pmichaud my $m = [ [1,2,3], [4,5,6] ];   $m>>.flat
22:57 fbass joined #perl6
22:57 pmichaud shouldn't preserve the AoA structure?
22:57 pmichaud i.e., it should become  ( (1,2,3), (4,5,6) ) ?
22:57 pmichaud similarly
22:57 pmichaud my $m = [ [ 1, [2,3] ], [4,5,6] ];   $m>>.flat      produces  ((1,(2,3)), (4,5,6))   ?
23:00 pmichaud on a related note, S03:4251 talks about "tree node types with C<Iterable> semantics"  providing visitation on each node... but I have no idea what that should actually look like.
23:01 pmichaud i.e., many operations want to work on the leaves and preserve structure (meaning they don't apply to the Iterable itself)
23:01 TimToady I guess the problem is that, while ». visits, it doesn't flatten, so you have to do a gather/take to flatten the results such that [max] could work on it
23:04 dalek features: fc7813d | diakopter++ | features.json:
23:04 dalek features: fix wrong perl6advent link
23:04 dalek features: review: https://github.com/perl6/f​eatures/commit/fc7813dcf9
23:04 TimToady perl6: my $m = [ [1,2,3], [4,5,6] ]; say [*] gather $m».map: { take $_ }
23:04 p6eval niecza v8-50-g3517be9: OUTPUT«720␤»
23:04 p6eval ..rakudo 922500: OUTPUT«1␤»
23:04 p6eval ..pugs: OUTPUT«decodeUTF8': bad data: '\187'␤1␤»
23:04 TimToady niecza++
23:04 * flussence just realised @a».?foo is a thing
23:05 TimToady sure, though .map should work on pretty much anything
23:05 pmichaud nom: my $m = [ [1,2,3], [4,5,6] ]; say [*] gather $m>>.map: { take $_ }
23:05 p6eval nom: OUTPUT«Null PMC access in push_pmc()␤current instr.: '_block13920' pc 785377 (src/gen/CORE.setting.pir:207766) (src/gen/CORE.setting:2974)␤»
23:05 pmichaud hmmm
23:05 pmichaud nom: my $m = [ [1,2,3], [4,5,6] ]; say [*] gather { $m>>.map({ take $_ }) }
23:05 p6eval nom: OUTPUT«Null PMC access in push_pmc()␤current instr.: '_block13920' pc 785377 (src/gen/CORE.setting.pir:207766) (src/gen/CORE.setting:2974)␤»
23:06 TimToady if that's going to be a common pattern we should tell hyper not to reconstruct the new value in sink context (which a gather supplies)
23:06 pmichaud yeah
23:06 TimToady How to Write the Visitor Pattern in Perl 6
23:06 pmichaud ...if we can somehow know we're in sink context :-P
23:07 TimToady you can know this one statically
23:07 flussence rakudo: my @a = (4, 'q', False); say @a».?sqrt
23:07 p6eval rakudo 922500: OUTPUT«200␤»
23:07 pmichaud wait
23:08 pmichaud why wouldn't that be simply?
23:08 pmichaud my $m = [ [1,2,3], [4,5,6] ];  say [*] gather $m>>.take
23:08 TimToady er, cause I didn't know .take was implemented yet
23:09 pmichaud it might not be... is there a .take ?
23:09 TimToady dint useta was
23:09 pmichaud seems weird to use .map there, though, if it applies mainly to the leaves
23:09 TimToady perl6: my $m = [ [1,2,3], [4,5,6] ]; say [*] gather $m».take
23:09 p6eval pugs: OUTPUT«decodeUTF8': bad data: '\187'␤720␤»
23:09 p6eval ..rakudo 922500: OUTPUT«Method 'take' not found for invocant of class 'Array'␤  in <anon> at line 22:/tmp/xWVszOzWLn␤  in 'List::Bool' at line 1:src/metamodel/RoleToInstanceApplier.nqp␤  in 'prefix:<!>' at line 502:src/gen/core.pm␤  in 'reducewith' at line 375:src/gen/core.pm␤  in main pr…
23:09 p6eval ..niecza v8-50-g3517be9: OUTPUT«Unhandled exception: Unable to resolve method take in class Int␤  at /tmp/t7h5KPQDOk line 1 (MAIN C1_ANON @ 1) ␤  at /home/p6eval/niecza/lib/CORE.setting line 1611 (CORE hyperunary @ 56) ␤  at /home/p6eval/niecza/lib/CORE.setting line 1602 (CORE hyperunary …
23:10 TimToady perl6: my $m = [ [1,2,3], [4,5,6] ]; say [*] gather take«($m)
23:10 dorlamm joined #perl6
23:10 p6eval niecza v8-50-g3517be9: OUTPUT«Unhandled exception: System.IndexOutOfRangeException: Array index is out of range.␤  at Lexer.Run (System.String from, Int32 pos) [0x00000] in <filename unknown>:0 ␤  at Lexer.RunDispatch (Niecza.Frame fromf, Niecza.P6any cursor) [0x00000] in <filename unkn…
23:10 p6eval ..pugs: OUTPUT«decodeUTF8': bad data: '\171'␤*** ␤    Unexpected "\171($"␤    expecting "::", dot, ":", "(", term postfix, operator or ","␤    at /tmp/JomdOe7Uyy line 1, column 50␤»
23:10 p6eval ..rakudo 922500: OUTPUT«===SORRY!===␤Confused at line 22, near "say [*] ga"␤»
23:10 TimToady perl6: my $m = [ [1,2,3], [4,5,6] ]; say [*] gather take« $m
23:10 p6eval niecza v8-50-g3517be9: OUTPUT«Unhandled exception: System.IndexOutOfRangeException: Array index is out of range.␤  at Lexer.Run (System.String from, Int32 pos) [0x00000] in <filename unknown>:0 ␤  at Lexer.RunDispatch (Niecza.Frame fromf, Niecza.P6any cursor) [0x00000] in <filename unkn…
23:10 p6eval ..pugs: OUTPUT«decodeUTF8': bad data: '\171'␤*** ␤    Unexpected "\171"␤    expecting "::", dot, ":", "(", term postfix, operator or ","␤    at /tmp/mgUcMuS74d line 1, column 50␤»
23:10 p6eval ..rakudo 922500: OUTPUT«===SORRY!===␤Confused at line 22, near "say [*] ga"␤»
23:10 TimToady boom, boom, boom :D
23:10 pmichaud $m<<.&take   maybe?
23:10 pmichaud er, >>
23:11 TimToady likely
23:11 pmichaud nom:  my @a = 1..10;  @a>>.&say;   # curious
23:11 TimToady perl6: my $m = [ [1,2,3], [4,5,6] ]; say [*] gather $m».&take
23:11 p6eval nom: OUTPUT«1␤5␤2␤7␤9␤10␤4␤3␤8␤6␤»
23:11 p6eval niecza v8-50-g3517be9: OUTPUT«720␤»
23:11 p6eval ..pugs: OUTPUT«decodeUTF8': bad data: '\187'␤720␤»
23:11 p6eval ..rakudo 922500: OUTPUT«9␤»
23:11 TimToady good guess, rakudo, but no
23:11 pmichaud nom:  my $m = [ [1,2,3], [4,5,6] ];  say [*] gather $m>>.&take;
23:11 p6eval nom: OUTPUT«Null PMC access in push_pmc()␤current instr.: '_block13920' pc 785377 (src/gen/CORE.setting.pir:207766) (src/gen/CORE.setting:2974)␤»
23:12 pmichaud hmmph
23:12 pmichaud I wonder where that Null PMC is coming from.  must be in gather/take somewhere.
23:12 pmichaud nom:  my $m = [ [1,2,3], [4,5,6] ];  say (gather { $m>>.&take });
23:12 p6eval nom: OUTPUT«1 2 3 4 5 6␤»
23:12 pmichaud nom:  my $m = [ [1,2,3], [4,5,6] ];  say [*] (gather { $m>>.&take });
23:12 p6eval nom: OUTPUT«Null PMC access in push_pmc()␤current instr.: '_block13920' pc 785377 (src/gen/CORE.setting.pir:207766) (src/gen/CORE.setting:2974)␤»
23:13 pmichaud nom:  my $m = [ [1,2,3], [4,5,6] ];  say [*] (gather { $m>>.&take }).eager;
23:13 p6eval nom: OUTPUT«720␤»
23:13 pmichaud nom:  my $m = [ [1,2,3], [4,5,6] ];  say [*] (gather $m>>.&take ).eager;
23:13 p6eval nom: OUTPUT«720␤»
23:13 pmichaud nom:  my $m = [ [1,[2,3]], [4,5,6] ];  say [*] (gather $m>>.&take ).eager;
23:13 p6eval nom: OUTPUT«240␤»
23:14 pmichaud hmmmmm
23:14 pmichaud so, back to my earlier question...    >>.foo preserves structure when applied to iterables?
23:15 pmichaud q!
23:15 pmichaud ww
23:19 TimToady S03:4124 is what the spec says
23:19 TimToady which is why I said it could downgrade a structure to parcels, but not remove them
23:20 pmichaud when would we downgrade, though?
23:20 pmichaud always?
23:20 pmichaud what about nested hashes?
23:22 TimToady that would depend on whether the method in question is applied to the old leaves or the new ones
23:22 * sorear wonders what language was used in the latest parrot-dev post, with .| and .^ as operatos
23:22 TimToady doing it to the new ones would seem to violate S03:4124
23:23 pmichaud "new ones"?  I'm not following again.
23:24 TimToady I don't think you can call any method on something that hyper will see as a sub-iterable, since the point of a hyper is to distribute a scalar over iterables
23:24 TimToady so ».flat should be a no-op
23:25 TimToady it only ever calls .flat on the leaves
23:27 TimToady we need .tree if we want to stop recursing at some level
23:31 pmichaud if I'm reading you correctly, I agree totally.  I'm taking from this that >>.foo preserves the structure (which I think is fine and consistent and good)
23:32 jnthn pmichaud: While we're on this topic, I'm not sure that dispatch:<hyper> is going to quite work out. (more)
23:32 jnthn @obj>>.?foo also needs to work
23:32 jnthn I was thinking maybe >> there results in us re-writing to a closure of some kind
23:33 jnthn And then we take the same path as e.g. @obj>>.++
23:33 TimToady I was trying to say that if ».flat were able to recursively flatten, it would have to be applied to the result of applying it to the leaves, not recursively to the old structure, which is what hyper does
23:34 TimToady something like postorder vs preorder
23:35 TimToady jnthn: seems reasonable, though perhaps hot-pathable
23:37 jnthn TimToady: Given the thingy that implements >> can be statically known, a sufficiently clever inliner may be able to unpick the thing.
23:38 TimToady well, correct first, then fast
23:38 jnthn aye
23:38 TimToady much as it galls me to say it :)
23:38 jnthn pmichaud: think tadzik's patch earlier busted the build
23:38 jnthn Got a fix here.
23:39 jnthn It's interleaved with a couple of other commits but I suspect they're harmless...
23:39 jnthn ...so pushed.
23:40 pmichaud jnthn: guess what, I think that >>.?foo already works :-)
23:40 dalek rakudo/nom: c5e94c1 | jonathan++ | src/ (3 files):
23:40 dalek rakudo/nom: Pass generic nominal flag down to binder.
23:40 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/c5e94c13c0
23:40 dalek rakudo/nom: 130bab8 | jonathan++ | src/Perl6/Grammar.pm:
23:40 dalek rakudo/nom: Seems tadzik's last patch was a little off and managed to break the build; this unbreaks it.
23:40 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/130bab83ff
23:40 dalek rakudo/nom: cb738d9 | jonathan++ | src/binder/bind.c:
23:40 dalek rakudo/nom: Make (::T, T) style signatures work properly in the binder.
23:40 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/cb738d9d9d
23:40 pmichaud nom:  my @a = 1,2,3;  say @a>>.?succ
23:40 p6eval nom: OUTPUT«2 3 4␤»
23:40 jnthn pmichaud: OK, then I musta mis-reviewed your patch. :)
23:40 jnthn pmichaud: er
23:40 jnthn nom: my @a = 1,2,Mu;  say @a>>.?succ
23:40 p6eval nom: OUTPUT«2  3␤»
23:40 pmichaud :-)
23:40 jnthn nom: say Mu.succ
23:40 p6eval nom: OUTPUT«Method 'succ' not found for invocant of class 'Mu'␤current instr.: '_block1002' pc 63 ((file unknown):136) (/tmp/Q9Lpv7y2KR:1)␤»
23:40 jnthn pmichaud++
23:41 * jnthn should not doubt :)
23:41 pmichaud it's the same way that  >>.&var   is working
23:41 pmichaud it's calling dispatch:<var>
23:41 pmichaud from within dispatch:<hyper>
23:41 jnthn oh!
23:41 pmichaud in the case of   >>.?method
23:41 jnthn oh, clever. :)
23:41 pmichaud it's calling dispatch:<.?>  (or whatever)
23:41 molaf_ joined #perl6
23:42 jnthn TimToady: btw, will you be at the hackathon on Saturday in Riga?
23:44 pmichaud jnthn: unlike the previous implementation of hyper-dispatch, nom's implementation actually grabs the name from the underlying PAST::Op node instead of always using the parsed name
23:44 jnthn pmichaud: Yeah, I noticed. :)
23:44 pmichaud (although it's failing a bit with .>>.foo, which needs some fixing.
23:45 pmichaud er, .>>.++  I mean
23:45 pmichaud .>>.foo probably works fine
23:45 pmichaud nom:  my @a = 1,2,3;  say @a.>>.succ
23:45 p6eval nom: OUTPUT«Confused at line 1, near "say @a.>>."␤current instr.: 'nqp;HLL;Grammar;panic' pc 23611 (src/stage2/gen/NQPHLL.pir:6348) (src/stage2/gen/NQPHLL.pm:329)␤»
23:45 pmichaud oh, guess not.
23:45 jnthn std: my @a = 1,2,3;  say @a.>>.succ
23:45 p6eval std 516268a: OUTPUT«ok 00:01 122m␤»
23:46 jnthn hmmmmm
23:46 jnthn (::T, T) things in multi-dispatch are...interesting.
23:50 * jnthn thinks he'll leave that for tomorrow :)
23:52 amkrankruleuen joined #perl6
23:57 saaki joined #perl6

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

Perl 6 | Reference Documentation | Rakudo