»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend! Set by sorear on 4 February 2011. |
|||
jnthn | Enough for tonight...gotta get up for $dayjob in the morning... | 00:01 | |
& | |||
00:05
bluescreen10 joined
00:06
PacoLinux joined
00:16
drbean joined
00:17
sftp left
00:19
sftp joined
00:20
sftp left
00:35
sftp joined
00:41
rdesfo left
00:47
isBEKaml left
|
|||
dalek | ast: 26046d4 | Coke++ | S03-smartmatch/ (3 files): nom fudge |
00:52 | |
00:52
fbass joined,
impiou1 left
00:53
fbass left
00:56
cogno joined
|
|||
dalek | kudo/nom: 40aa6d5 | Coke++ | t/spectest.data: run more tests, track failure modes. |
00:56 | |
00:57
rgrau left,
fbass joined,
fbass left,
fbass joined
01:07
sftp left
01:13
fbass left
01:14
sftp joined
01:17
fbass joined
|
|||
dalek | kudo/nom: 0b11319 | Coke++ | t/spectest.data: track failure mode |
01:22 | |
01:25
cognominal left,
cognominal joined
01:33
woosley joined
01:34
whiteknight left
|
|||
[Coke] | getting a ton of non-zero exit statuses. | 01:45 | |
01:47
wolfman2000 left,
amkrankruleuen joined
|
|||
[Coke] | Files=409, Tests=11767 | 01:49 | |
colomon | [Coke]: same her | 01:52 | |
*here | 01:53 | ||
01:53
sili left
|
|||
[Coke] | colomon! how about getting those trig tests passing in nom? ;) | 01:57 | |
*tap tap* | 02:10 | ||
colomon | *hollow echo* | ||
02:11
bluescreen10 left
|
|||
[Coke] | curses! | 02:12 | |
02:15
PacoLinux left
02:17
PacoLinux joined
02:20
jaldhar left
|
|||
sorear | how about getting trig tests in niecza? :p | 02:20 | |
02:24
stepnem left
02:26
stepnem joined
02:28
jevin left,
jaldhar joined
02:31
PacoLinux left,
am0c left
02:42
kfo joined
02:44
rdesfo joined
02:46
kfo_ left
02:56
rdesfo left,
jevin joined
03:22
fbass left
03:27
Su-Shee left
03:28
Su-Shee joined
03:32
shinobicl_ joined
03:40
Chillance left
03:43
fbass joined
03:46
stepnem left
03:50
stepnem joined
04:10
thou joined
04:11
birdwindupbird joined
04:13
agentzh joined
04:15
fbass left
04:16
daniel-s joined
04:31
satyavvd joined
|
|||
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 | ||
shinobicl_ | rakudo: my @arr = <1 2>; my @arr2 =<a b c d>; my @arr3 = < + * - >; say @arr X (@arr2 X @arr3); | ||
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-» | ||
shinobicl_ | i want that each combination has exactly one element for each of the 3 arrays... | 04:40 | |
the output should start like 1a+1b+1c+..... and so on | |||
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)» | ||
moritz | nom: say <1 2> X~ <+ * -> X~ <a b c d> | ||
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» | ||
shinobicl_ | rakudo: my @arr = <1 2>; my @arr2 =<a b c d>; my @arr3 = < + * - >; say [X](@arr,@arr2,@arr3); | ||
p6eval | rakudo 922500: OUTPUT«1 - * - + - * - d - * - + - * - c - * - + - * - d - * - + - * - b - * - + - * - d - * - + - * - c - * - + - * - d - * - + - * - a - * - + - * - d - * - + - * - c - * - + - * - d - * - + - * - b - * - + - * - d - * - + - * - c - * - + - * - d - * - + - * - 2 - * - +… | ||
moritz | the 3-array form is not implemented in rakudo master, but works in nom | ||
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+*-» | ||
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+*-» | ||
dalek | kudo/nom: 5e2c0fb | moritz++ | src/core/ (4 files): Merge pull request #35 from kboga/multi-Numeric make .Numeric methods multis with defined invocant |
04:44 | |
04:46
odoacre joined
|
|||
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*1d-2a+2a*2a-2b+2b*2b-2c+2c*2c-2d+2d*2d-» | ||
shinobicl_ | :D | 04:48 | |
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 ="» | ||
dalek | kudo/nom: 2bbc998 | moritz++ | src/core/List.pm: Merge pull request #38 from ruz/nom-list-rotate List.rotate |
||
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*Ñ2c*ñ2c-Ñ2c-ñ2d+Ñ2d+ñ2d*Ñ2d*ñ2d-Ñ2d-ñ» | ||
04:56
thou left,
thou joined
05:00
colomon left
05:05
SHODAN joined
|
|||
dalek | ast: 86b9677 | moritz++ | S10-packages/use-with-class.t: fix scoping bug in use-with-class.t, fudge for rakudo |
05:07 | |
ast: 6b7d57d | moritz++ | S12-introspection/can.t: correct and unfudge can.t |
05:10 | ||
shinobicl_ | rakudo: my @arr = <1 4>; my @arr2 =split ' ', @arr.fmt("%02d"); for (@arr2) { say $_ ~ '.' } | 05:12 | |
p6eval | rakudo 922500: OUTPUT«01.04.» | ||
dalek | ast: 138a8a5 | moritz++ | S32-array/rotate.t: fudge rotate.t for rakudo |
05:13 | |
kudo/nom: 69b7e56 | moritz++ | t/spectest.data: three more passing test files |
05:14 | ||
05:16
satyavvd left
05:34
soh_cah_toa left
05:37
envi joined
|
|||
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… | ||
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«[]» | ||
shinobicl_ | :( | ||
05:44
mj41 joined
05:45
jaldhar left
|
|||
dalek | ast: 12a16dc | moritz++ | S06-multi/type-based.t: fudge type-based.t for rakudo |
05:49 | |
05:51
jaldhar joined
|
|||
moritz | nom: say 'a b c d'.subst(/\w/, 'x', :x(1)) | 05:51 | |
p6eval | nom: OUTPUT«x b c d» | ||
05:52
thou left
|
|||
moritz | nom: say 'a b c d'.subst(/\w/, 'x', :x(0..1)) | 05:52 | |
p6eval | nom: OUTPUT«a b c d» | ||
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)» | ||
dalek | kudo/nom: e658f0d | moritz++ | / (2 files): run type-based.t, fix an unrelated thinko |
06:02 | |
06:06
Mowah joined
|
|||
dalek | ast: c8d241c | moritz++ | S05-substitution/subst.t: fudge subst.t for rakudo |
06:11 | |
kudo/nom: f373c17 | moritz++ | t/spectest.data: two more test files |
06:15 | ||
06:20
koban joined
06:21
wtw joined
06:22
im2ee joined
06:25
jaldhar left,
jaldhar joined
06:37
shinobicl_ left
|
|||
moritz | rakudo: say ~[\<] 1, 2, 3 | 06:40 | |
p6eval | rakudo 922500: OUTPUT«Bool::True Bool::True Bool::True» | ||
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» | ||
06:42
mj41 left
07:06
lue joined
07:27
PacoLinux joined
07:29
jaldhar left
|
|||
dalek | kudo/nom: 190f28d | moritz++ | src/core/metaops.pm: implement chaining reduce metaop |
07:32 | |
07:33
fbass joined,
fbass left
|
|||
dalek | ast: bb4a8e7 | moritz++ | S05-mass/stdrules.t: fudge stdrules.t for rakudo |
07:35 | |
ast: 9c74a37 | moritz++ | S03-metaops/reduce.t: fudge reduce.t for rakudo |
|||
07:36
fbass joined
07:37
fbass left
|
|||
dalek | kudo/nom: c0ac660 | moritz++ | t/spectest.data: run reduce.t |
07:37 | |
mberends read stdrules as strudles, hmm :) | 07:40 | ||
07:47
mj41 joined,
PacoLinux left
07:50
Trashlord left
07:52
Trashlord joined
|
|||
jnthn | monring, #perl6 | 07:58 | |
08:08
[particle] left
|
|||
tadzik | morning #perl6 | 08:09 | |
moritz | good morning everybody | 08:16 | |
yes, strudels are a good idea, in general :-) | |||
jnthn | mmm | 08:18 | |
moritz: did type-based.t need extra fudges? | |||
moritz | jnthn: yes | 08:19 | |
jnthn | oh, I see the patch | ||
moritz | jnthn: some for narrowness of slurpies, some for constraints | ||
jnthn | ok | 08:21 | |
ugh, slurpy narrowness? Thought I fixed that recently. | |||
moritz | nom: multi f() { 1 }; multi f(*$x, *@a) { 2 }; say f() | 08:23 | |
p6eval | nom: OUTPUT«1» | ||
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«NilNilNil» | ||
moritz | wtf? | ||
oh | |||
nom: proto mmd(*@) {*}; multi mmd () { 1 }; multi mmd (*$x, *@xs) { 2 }; say mmd(); say mmd(1, 2, 3); say mmd(1..3) | |||
p6eval | nom: OUTPUT«122» | ||
moritz | it helps to have the proto redispatch :-) | ||
dalek | ast: 91f1c57 | moritz++ | S06-multi/type-based.t: it helps to have the proto re-dispatch to its candidates |
08:27 | |
moritz | jnthn: never mind the slurpy narrowness :-) | ||
jnthn | moritz: yeah | 08:31 | |
S06-multi/proto.t does need nom fixes (plan to do them soon), but it also has similar out-of-dateness. | |||
Comment I don't want to see in production code: | 08:34 | ||
//ToDo add security | |||
o.O | |||
tadzik | erm | ||
jnthn | gonna be a long day at $dayjob :) | ||
08:38
dakkar joined
08:44
Alias joined
08:55
wamba joined
09:07
rgrau joined
09:09
donri joined
09:13
fbass joined,
fbass left
09:18
awoodland joined
09:21
am0c joined
09:26
im2ee left
09:37
cosimo joined
|
|||
moritz | nom: say :2('101') | 09:40 | |
p6eval | nom: OUTPUT«NYI form of number litereal encounteredcurrent instr.: 'nqp;Perl6;Actions;rad_number' pc 85504 (src/gen/perl6-actions.pir:30844) (src/Perl6/Actions.pm:2995)» | ||
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)» | ||
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/parrot/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
|
|||
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)» | ||
jnthn | ah, yes. | ||
Didn't fix the using NQP modules thing up yet. | |||
09:46
Mowah_ joined
09:54
mj41 left
|
|||
jnthn | Today's discovery: I find graphical merge tools too confusing. :) | 09:56 | |
dalek | ast: fcecec7 | moritz++ | S02- (2 files): rakudo (un)fudges |
10:00 | |
10:06
timbunce joined
|
|||
moritz | nom: say :16<a> | 10:13 | |
p6eval | nom: OUTPUT«Invalid character 'a' in number literalcurrent instr.: 'nqp;Perl6;Actions;_block1888' pc 32972 (src/gen/perl6-actions.pir:11076) (src/Perl6/Actions.pm:3842)» | ||
moritz | wtf | ||
sorear | nom: say :16<A> | 10:15 | |
p6eval | nom: OUTPUT«10» | ||
10:15
[particle] joined
|
|||
moritz | nqp: say(try { 1 }) | 10:15 | |
p6eval | nqp: OUTPUT«1» | ||
tadzik | nom: multi foo($a where { $a > 0 }) { 1 }; foo(5) # nyi? | ||
p6eval | nom: OUTPUT«Nominal type check failed for parameter '$a'; expected Any but got Mu insteadcurrent instr.: 'infix:<>>' pc 713206 (src/gen/CORE.setting.pir:172036) (src/gen/CORE.setting:1674)» | ||
moritz | sorear++ | 10:16 | |
10:17
cosimo left
|
|||
dalek | ast: 7353f94 | moritz++ | S02-literals/radix.t: make test plan in radix.t dynamic, since I do not know if fudge miscounted or not |
10:26 | |
tadzik | moritz: any comments on my gsoc checklist? | 10:27 | |
moritz | tadzik: where can I find it? | ||
sorry, didn't backlog yet | |||
tadzik | moritz: github.com/tadzik/gsocmess/issues | 10:29 | |
dalek | kudo/nom: c61a8d5 | moritz++ | / (2 files): fix radcalc, generate errors with line numbers, run tests |
||
10:33
REPLeffect left,
REPLeffect joined
|
|||
mberends | tadzik: in issue #4 in the above checklist, is Polish a verb or a nationality? ;) | 10:37 | |
jnthn | tadzik: (constraint issue) yeah, that's why they're still on the punch card :) | 10:43 | |
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
|
|||
mberends | jnthn, tadzik: Pod::To::Text::Polish.pm ;) | 10:45 | |
10:46
Chillance joined
|
|||
jnthn | Then we have one that calls .flip on the result, Pod::To::Text::ReversePolish :) | 10:46 | |
tadzik | mberends: it's a verb :) | 10:49 | |
mberends | jnthn: touché | ||
10:51
SHODAN left
|
|||
jnthn | :P | 10:58 | |
11:04
pernatiy left
|
|||
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 | |
tadzik: have you tried parsing S26 with rakudo? | |||
tadzik | moritz: no, not yet | 11:20 | |
I'll rather have everything officialy in the proposal ready, then play with the optional things | |||
hence the list | |||
moritz | ok | ||
$ ./perl6 ../specs/S26-documentation.pod | |||
Error while reading from file: Malformed UTF-8 string | |||
now that was quick | |||
tadzik | hah | 11:22 | |
oh, it will parsefail in pod too, we don't support config options yet | 11:23 | ||
as in =begin code :allow<B> | 11:24 | ||
11:25
rgrau left
11:26
Woodi joined
|
|||
moritz | oh, S26 is written in latin1 | 11:28 | |
any objections to converting it to UTF-8? | |||
tadzik | nope | ||
moritz | it parsefails in line 3 already | 11:29 | |
=begin without matching =end at line 3, near "=comment\nT" | |||
tadzik | interesting | 11:30 | |
dalek | ecs: fb1ceb2 | moritz++ | S26-documentation.pod: convert S26 from Latin-1 to UTF-8 No semantic changes or anything, just a dumb recode |
||
tadzik | will investigate in a second | 11:31 | |
dalek | kudo/nom: 083287a | tadzik++ | / (2 files): Small tunes in Pod::To::Text, sanitize newline handling, interpret package declarators correctly |
11:33 | |
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:34 | |
moritz: what I'm now trying is copying S26 to S26-mini, block after block, and seeing when it'll fail | 11:35 | ||
and fixing Pod::To::Text accordingly | |||
I miss Str.indent :/ | 11:36 | ||
no, no easy to bring back | 11:37 | ||
11:37
MayDaniel joined
|
|||
moritz | so, recruite a minion to bring it back :-) | 11:38 | |
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 :) | ||
s/se/ste/ | 11:40 | ||
tadzik | moritz: it depends on this ($a where {...}) signatures | ||
that's why I didn't bring it back today | |||
flussence | oh, right. Forgot I did all that fancy stuff in it :( | ||
moritz | tadzik: ok | ||
jnthn | Note those probably work with placeholders just fine | 11:41 | |
11:46
pernatiy joined
|
|||
tadzik | heh, I can parse 2% of S26 :) | 11:59 | |
takadonet | morning all | ||
tadzik | copypasting the remaining 98%... | ||
takadonet: morning | |||
moritz: yes, parsing fails on =begin code :allow<B> | 12:00 | ||
is there anything like "anything that constructs a pair" in Grammar? | |||
moritz | look in the vincinity of token colonpair | 12:01 | |
12:02
woosley left
|
|||
jnthn | quotepair is a little more restricted version of that and may be more suitable | 12:02 | |
tadzik | how about :nested? | 12:04 | |
takadonet | Can anyone help me figure out why my @!grid attribute cannot be changed? gist.github.com/1133863 | ||
moritz | takadonet: which rakudo are you running? master? | 12:05 | |
or nom? | 12:06 | ||
12:06
rdesfo joined
|
|||
takadonet | NIecza | 12:06 | |
moritz | oh | ||
takadonet | but having the same issue if using master | ||
it does not run under nom yet | |||
moritz | so what's the problem? | ||
takadonet | @!grid attribute does not keep it value after returning from placeNumber method | 12:07 | |
12:07
ab5tract joined
|
|||
takadonet | it return back to the original value set by build method | 12:07 | |
since both master and Niecza give the same issue, I assume its my mistake | 12:08 | ||
tadzik | moritz: gist.github.com/1133875 part of S26 without the colopairs | ||
moritz | takadonet: in master I think the type constraint on @!grid will prevent it from working anyway | 12:09 | |
takadonet: but more interesting, have you debugged it to the point where you're sure that it ever assigns something to @!grid[$something] ? | 12:10 | ||
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:12 | |
12:13
properly joined
|
|||
moritz | takadonet: problem is line 33 | 12:17 | |
takadonet: there you undo any modification to @!grid that you've done before | 12:18 | ||
takadonet | ohhh! | ||
wow.... | 12:19 | ||
now I feel like an idiot ... | 12:20 | ||
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 | ||
moritz: I know | |||
just was copying the rosetta stone Java solution | |||
moritz | ah, so it uses that for backtracking | ||
takadonet | ya | 12:22 | |
so I really do need to throw an exception for this to work | |||
this is really a horrible solution | 12:23 | ||
moritz | it is | ||
12:23
woosley joined
|
|||
pmichaud | good morning, #perl6 | 12:23 | |
takadonet | was mostly just for practice | ||
moritz | good am, pm | ||
takadonet | pmichaud: morning | ||
I might still post the solution on rosetta stone so we have something for now. Probably make a new solution sometime this week | 12:24 | ||
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 | ||
moritz | takadonet: github.com/moritz/perl6-Sudoku/blo...oku.pm#L30 | ||
takadonet | moritz: cool :) | 12:28 | |
mberends | good morning pmichaud, takadonet | ||
takadonet | mberends: morning | 12:29 | |
moritz | takadonet: note that my sudoku module has some bugs and limitations I never bothered to debug | ||
takadonet | moritz: I'll be probably borrowing some of your code. | 12:30 | |
moritz | takadonet: feel free :-) | 12:31 | |
I mean, it has a license, but if that's not permissive enough for RC, I can change that to something more permissive | 12:32 | ||
tadzik | with the commit below, we parse the first 30% of S26 :) | 12:37 | |
dalek | kudo/nom: 62bd6a7 | tadzik++ | src/Perl6/Grammar.pm: Allow colonpairs to appear after Pod block declarations |
||
kudo/nom: 77c62ce | tadzik++ | lib/Pod/To/Text.pm: [Pod::To::Text] Generate proper output for Tables and Comments, fix output for Named blocks |
|||
moritz | \o/ | 12:38 | |
tadzik: what's missing? | |||
tadzik | moritz: I found a bug | ||
moritz: gist.github.com/1133928 causes the parsefail | |||
moritz | nom: class Sudoku::Constraint { }; class Sudoku { } | ||
p6eval | nom: OUTPUT«error:imcc:Multiple declarations of lexical 'Sudoku' in file '(file unknown)' line 54751767» | ||
tadzik | so maybe the code block should have non-greedy match inside, eh? | ||
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... ;-) | ||
moritz: I fix the above later. :) | |||
moritz | jnthn: ok | ||
tadzik | yes, it's already non-greedy | ||
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? | ||
tadzik | moritz: I probably do, never thought about that before | ||
I'll recheck the spec | 12:41 | ||
12:42
properly left
|
|||
tadzik | CC | 12:42 | |
oops | |||
12:43
SHODAN joined
12:44
im2ee left,
MayDaniel left
12:46
drbean left
|
|||
tadzik | moritz: yeah, S26 mentions only the content of a block to be "indented as you wish" | 12:49 | |
so the closing delimiter is probably supposed to not be indented | |||
moritz | aye | ||
oh, today is Tuesday, #phasers day! | 12:50 | ||
jnthn | :) | ||
Well remembered! | |||
moritz | that's... not bad for my standards :-) | 12:51 | |
tadzik | :) | ||
is it preferred to pre-report so the actual #phasers time can be dedicated to discussion only? | 12:54 | ||
jnthn | tadzik: Don't feel strongly either way. | 12:56 | |
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 | ||
colomon | yow, getting one of the least helpful error messages ever from nom | 13:00 | |
moritz | nom: say X::Base | ||
p6eval | nom: OUTPUT«Rebuild in progress» | ||
colomon | well, messiest, anyway | ||
moritz | that one? :-) | ||
which reminded me, I wanted to improve the build thingy on p6eval server | 13:01 | ||
colomon | gist.github.com/1133976 multiplied by about a thousand. (takes up more than 50% of the scrollback on my terminal window) | 13:02 | |
with a maximum recursion depth exceeded message at the top. | |||
moritz | colomon: are you trying to hack something in the setting? | ||
colomon | trying to add Complex.asin | ||
moritz | we've discussed that yesterday, something very weird is going on there, probably not your fault | 13:03 | |
colomon | sure, never thought my numeric code could legitimately cause an infinite stream of Stringy calls. ;) | 13:04 | |
jnthn | colomon: There's a compile-time stringification bug somewhere. | 13:05 | |
colomon: Hard to track down. :( Spent a couple of hours on it yesterday. | |||
colomon | it just doesn't help figure out what my innocent-looking math code is doing wrong. :) | ||
jnthn | It's probably not. | 13:06 | |
It's probably something to do with using complex literals in the setting or something. | |||
moritz | right, you can't use 1i or so in the setting | ||
colomon | oh. yeah, there is a complex literal in there. hmmm | ||
moritz | needs to be Complex.new(0, 1) | 13:07 | |
jnthn | Yeah. That any many things are hitting the same issue. | ||
It's happening somewhere in the intersection of dynamic compilation, method dispatch and multi dispatcher derevation. Not an easy intersection of things to debug. | |||
colomon | looks like it is indeed the -1i | 13:08 | |
jnthn | Note that using complex literals inside complex may be a little fun... :) | 13:10 | |
Manageable fun though. | 13:11 | ||
But for now use Complex.new | |||
moritz | well, 1i tries to construct the object right away | ||
jnthn | Right | 13:12 | |
But Str is a multi-method and those aren't composed until saga end. | |||
dalek | albot: 5bdd571 | moritz++ | build-scripts/ (3 files): prepare to install nom |
13:13 | |
13:21
jaldhar joined
13:23
bluescreen10 joined
13:27
jman_ joined
13:28
shinobicl left
13:29
shinobicl joined
13:35
shinobicl left
|
|||
[Coke] | was "litereal" intentionally punny, btw? I find it distracting. | 13:39 | |
moritz | where? | ||
13:40
jman_ left
|
|||
[Coke] | you just ran a test from spectest.data that used to throw that error. | 13:40 | |
PerlJam | heh. "litereal" | 13:42 | |
13:42
wamba left
|
|||
moritz | [Coke]: no, just a typo | 13:43 | |
[Coke] | it is a good typo. ;) | ||
[Coke] reruns the test suite to see if moritz++'s litereal update unbreaks any other tests. | 13:44 | ||
moritz | but the error message is bogus anyway | 13:45 | |
because it's not a literal | |||
13:45
rdesfo left
13:46
rdesfo joined
13:47
Mowah_ left
|
|||
dalek | kudo/nom: 67f3c06 | moritz++ | src/Perl6/Actions.pm: improve a NYI error message |
13:48 | |
tadzik | this makes us parse the first 85% of S26 :) | 13:51 | |
[Coke] | tadzik++ | 13:52 | |
dalek | kudo/nom: 769ae7d | tadzik++ | / (2 files): Disallow closing delimiters indented more than opening delimiters |
13:55 | |
moritz | tadzik: that's good news | 13:57 | |
13:58
_twitch joined
|
|||
jnthn | tadzik: Wow, good going. | 14:13 | |
14:16
cosimo joined
|
|||
jnthn beats .Net's reflection stuff into submission to achieve Great Evil. | 14:18 | ||
The .Net Type type is an example of how *not* to factor meta-space. :/ | |||
14:20
ab5tract left
14:22
_twitch left,
wtw left
14:24
noganex left
14:25
Moukeddar joined
|
|||
Moukeddar | hi o/ | 14:26 | |
tadzik | hello Moukeddar | 14:28 | |
Moukeddar | how are you doing Sir? | 14:29 | |
tadzik | pretty nice :) | 14:30 | |
how is your Perling? | 14:31 | ||
sorear | good * #perl6 | ||
moritz | o/ sorear | ||
Moukeddar | the syntax feels a bit weird | 14:32 | |
tadzik | any particular syntax? | ||
o/ sorear | |||
14:33
hanekomu joined
|
|||
Moukeddar | just the whole thing :) | 14:33 | |
14:33
M_o_C joined
|
|||
Moukeddar | coming from C# | 14:33 | |
[Coke] | moritz++ # reclaimed a few more spectests. | 14:34 | |
dalek | kudo/nom: 04a9e65 | Coke++ | t/spectest.data: run more tests, track failure modes |
14:35 | |
14:37
noganex joined
14:42
Trashlord left,
daniel-s left
14:47
mentesan joined
|
|||
mentesan | hi all | 14:47 | |
moritz | hello | 14:48 | |
nom: say <a b c>.Int | 14:50 | ||
p6eval | nom: OUTPUT«Rebuild in progress» | ||
moritz | uhm | ||
dalek | albot: c842a4a | moritz++ | evalbot.pl: actually use the installed nom |
14:52 | |
14:52
birdwindupbird left
14:53
p6eval left,
p6eval joined,
ChanServ sets mode: +v p6eval
|
|||
moritz | nom: say <a b c>.Int | 14:53 | |
14:53
koban left
|
|||
moritz | hello? | 14:53 | |
p6eval | nom: OUTPUT«Rebuild in progress» | ||
moritz | perl6: say <a b c>.Int | 14:54 | |
p6eval | rakudo 922500, niecza v8-45-g366d65b: OUTPUT«3» | ||
..pugs: OUTPUT«*** No such method in class Array: "&Int" at /tmp/lPG6nYJggs line 1, column 5 - line 2, column 1» | |||
14:55
mentesan left
|
|||
moritz | nom: say 1 | 14:56 | |
p6eval | nom: OUTPUT«1» | ||
14:59
PacoLinux joined
|
|||
takadonet | nom: say 2 | 15:01 | |
p6eval | nom: OUTPUT«2» | ||
TimToady | ooh, progress! | ||
takadonet | we're good :) | ||
15:02
kaare_ joined
15:04
MayDaniel joined
|
|||
moritz | nom: say 4 | 15:04 | |
p6eval | nom: OUTPUT«4» | ||
moritz | look, it's exponential! | ||
takadonet | ! | 15:07 | |
jnthn | decommute & | 15:08 | |
15:08
Trashlord joined,
am0c left,
Moukeddar left
15:09
im2ee joined
15:10
cosimo left
15:18
thou joined
15:27
im2ee left
|
|||
dalek | kudo/nom: e8e3340 | tadzik++ | src/Perl6/Grammar.pm: Fix handling colonpairs in Pod directives. Makes us fully parse S26 |
15:31 | |
moritz | \o/ | 15:32 | |
takadonet | WHAT! | 15:33 | |
tadzik++ | |||
tadzik | :) | ||
that was easy :) | |||
mberends | Awesome! | ||
tadzik | well, it parser in a sense that it has no parse errors. The resulting output is still far from perfect | ||
flussence | new objective: figure out another way to make S26 break tadzik's code while staying within spec :) | 15:34 | |
tadzik | hey! | 15:35 | |
:) | |||
colomon | ugh. getting trig tests to work in nom is non-trivial. :( | 15:38 | |
tadzik | phasers in 3:20? | 15:41 | |
colomon | errr... sounds right? | 15:42 | |
15:43
woosley left
|
|||
tadzik | okay | 15:43 | |
I never know with this DST :) | 15:44 | ||
15:44
agentzh left
|
|||
colomon | tadzik: same here, actually, which is why I say "sounds right" instead of yes. ;) | 15:46 | |
tadzik | :) | ||
nom: say <a b c>[1..*-1] | 15:48 | ||
p6eval | nom: OUTPUT«b c» | ||
15:51
shinobicl joined,
noganex_ joined
15:52
noganex left
|
|||
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::FalseBool::True» | ||
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'}); | ||
p6eval | rakudo 922500: OUTPUT«Bool::TrueBool::True» | ||
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» | ||
tadzik bbl | 15:59 | ||
dalek | kudo/nom: 90e9c38 | tadzik++ | lib/Pod/To/Text.pm: Couple of more fixes to make the output generated from S26 more pleasant to read |
16:00 | |
pmichaud | nom: say <a b c>[1..*] # checking | 16:01 | |
p6eval | nom: OUTPUT«Rebuild in progress» | ||
16:03
im2ee joined
|
|||
colomon | woah, just had a zillion test fails on nom | 16:06 | |
jnthn home | |||
colomon | ugh, out of date t/spec | ||
16:08
Alias left
16:11
kanishka joined
16:19
wamba joined
16:26
im2ee left
16:28
pernatiy left
|
|||
moritz | nom: say '1' | 16:33 | |
p6eval | nom: OUTPUT«1» | 16:34 | |
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::TrueBool::True» | ||
dalek | ecza: 3603f44 | diakopter++ | / (8 files): implement IO r,w,x,o methods |
16:38 | |
16:38
isBEKaml joined
|
|||
diakopter | phenny: tell sorear I pushed IO.r .w .x .o | 16:38 | |
phenny | diakopter: I'll pass that on when sorear is around. | ||
sorear | I saw \o/ | 16:39 | |
phenny | sorear: 16:38Z <diakopter> tell sorear I pushed IO.r .w .x .o | ||
diakopter | unfortunately it doesn't appear RWXO are possible | ||
sorear | diakopter: why not? | ||
diakopter | bindings for that syscall don't exist | 16:40 | |
actually O is possible | |||
sorear | diakopter: no bindings for access? | 16:41 | |
diakopter | not that I can find | ||
I suppose access can be reimplmented since theoretically I can query /etc/group | 16:42 | ||
and I know the effective user id | |||
sorear | you don't want the effective user id, do you? | 16:43 | |
diakopter | er yes, sorry, meant real user id | ||
sorear | my copy of Mono.Unix.Native.Syscall has an access() method | ||
moritz | evalbot rebuild nom | 16:44 | |
p6eval | OK (started asynchronously) | ||
moritz | evalbot rebuild nom | ||
p6eval | OK (started asynchronously) | ||
sorear | is it very new? | ||
moritz | evalbot rebuild nom | ||
p6eval | OK (started asynchronously) | ||
diakopter | sorear: seems it's actually eaccess | ||
sorear | moritz: note, you've just tripled the length of time people will have to wait... each rebuilder is blocking on the same mutex | ||
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? :) | ||
sorear | isBEKaml: it's async relative to IRC | ||
isBEKaml | sorear: nice. :-) | ||
moritz | nom: say 1 | ||
p6eval | nom: OUTPUT«1» | ||
sorear | diakopter: -r -w -x -o should use eaccess | ||
diakopter | I know | 16:46 | |
sorear | diakopter: -R -W -X -O should use access | ||
diakopter | there's no "eaccess" bindings in Mono.Unix.Native.Syscall | ||
so I concluded that "access" there is actually eaccess | |||
sorear | diakopter: How did you implement -rwxo? | ||
ah | 16:47 | ||
diakopter | do you think that's a reasonable assumption? | ||
sorear | diakopter: access in Syscall is access in LIBC, according to the pinvoke [] | ||
diakopter | oh | ||
sorear | man eaccess says "This function is nonstandard" | ||
diakopter | then there's no eaccess possible | ||
sorear | letme check what Perl does | 16:48 | |
lots of #ifdefs here | 16:52 | ||
5 possible implementations | |||
diakopter | :) | ||
sorear | on Digital UNIX, uses an extended flag to access EFF_ONLY_OK | 16:53 | |
if eaccess available, eaccess | |||
if accessx available /* AIX */, use that | |||
if setresuid and setresgid available, temporarily set real ids to effective and use access | |||
otherwise stat() and check S_IWUSR etc | 16:54 | ||
diakopter | setresuid and setresgid aren't available from Mono.Unix.UnixEnvironment ; you can set effective ones though | 16:55 | |
sorear | Syscall has setresuid and setresgid | 16:56 | |
diakopter | that doesn't seem to be a very threadsafe technique | ||
16:57
awoodland left
|
|||
diakopter | I guess I'll stat() and check S_IWUSR etc | 16:59 | |
niecza: say IO.x | |||
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:00 | |
dalek | kudo/nom: c33f355 | (Solomon Foster)++ | src/core/R (2 files): Add Real.Rat with optional tolerance and optional tolerance to Rat.Rat. |
17:03 | |
17:04
Trashlord left
|
|||
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
|
|||
isBEKaml | nom: my $x = 7 % 2; say $x; | 17:05 | |
p6eval | nom: OUTPUT«1» | ||
jnthn | colomon: If you don't use the value you can just do Real $? | 17:08 | |
colomon: And the binder will ignore the arg and not have the binding cost | 17:09 | ||
colomon | ah, good to know. | ||
17:09
MayDaniel left
|
|||
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)» | ||
jnthn | d'oh | ||
std: sub foo($?) { }; foo(); foo(1); | |||
p6eval | std 516268a: OUTPUT«ok 00:01 121m» | ||
jnthn | hm | 17:10 | |
Wonder if std parses it correct or just doesn't whine :) | |||
17:10
dakkar left
|
|||
moritz | std: sub foo($?bar) { } | 17:11 | |
p6eval | std 516268a: OUTPUT«===SORRY!===You may not use the ? twigil in a signature at /tmp/LKeDm2_sw5 line 1:------> sub foo($⏏?bar) { } expecting twigilParse failedFAILED 00:01 119m» | ||
jnthn | moritz: Yeah, it gets it right...think I see why | 17:12 | |
Trying a patch. | 17:13 | ||
dalek | albot: c160421 | moritz++ | / (2 files): Some targets don't need to obtain lock files, because their build scripts are smart enough Also remove the case of $executer being a coderef, which doesn't seem to happen in evalbot.pl. YAGNI applies. |
||
17:14
cosimo joined
17:15
p6eval left,
p6eval joined,
ChanServ sets mode: +v p6eval
|
|||
moritz | evalbot rebuild nom | 17:15 | |
p6eval | OK (started asynchronously) | 17:16 | |
moritz | nom: say 1 | ||
p6eval | nom: OUTPUT«1» | ||
moritz | \o/ | ||
jnthn | \o/ | 17:17 | |
moritz++ | |||
17:21
am0c joined
17:23
tokuhirom joined
|
|||
dalek | albot: 04077a8 | moritz++ | / (2 files): refactor locking a bit, and only rebuild if a lock file can be obtained |
17:23 | |
17:24
p6eval left,
p6eval joined,
ChanServ sets mode: +v p6eval
|
|||
moritz has the feeling that evalbot could use a good refactor at some point :-) | 17:25 | ||
evalbot rebuild std | |||
p6eval | OK (started asynchronously) | ||
moritz | evalbot rebuild std | ||
p6eval | OK (started asynchronously) | ||
moritz | ah, that one just runs a 'make', which finished kinda fast | ||
evalbot rebuild rakudo | 17:26 | ||
p6eval | OK (started asynchronously) | ||
Util | colomon: pong | ||
moritz | and that one also checks if it actually needs to build | ||
evalbot rebuild niecza | |||
p6eval | OK (started asynchronously) | ||
moritz | evalbot rebuild niecza | ||
p6eval | NOT OK (maybe a rebuild is already in progress?) | ||
17:26
masak joined
|
|||
masak | \o/ #perl6 | 17:26 | |
moritz | hello masak | 17:27 | |
17:27
bluescreen10 left
|
|||
masak | moritz: I forgot to say, but I liked your simplifications on the MAIN spec. | 17:27 | |
moritz | masak: nice :-) | 17:28 | |
17:28
bluescreen10 joined
|
|||
jnthn | o/ masak | 17:28 | |
masak | \o | ||
colomon | Util: you were saying something a week or two ago about revisiting the implementations of the Complex trig functions? | 17:34 | |
17:35
perlhack joined
|
|||
Util | colomon: yes; some of the work is already in a branch | 17:35 | |
but that is in Parrot, not Perl 6. | |||
colomon | Util: what's the story? | ||
Util | A GSOC student filed a bug, and I hit the same problem while trying to hammer down Win32 bugs... | 17:36 | |
17:36
mj41 joined
|
|||
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:38 | |
17:38
perlhack left
|
|||
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:40 | |
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 | ||
I don't know yet, though. | |||
17:42
impious joined,
impious left
|
|||
Util | Just curious? | 17:43 | |
17:47
hanekomu left,
TiMBuS left
17:48
TiMBuS joined
|
|||
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:48 | |
17:49
pernatiy joined
|
|||
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:49 | |
17:50
fbass joined
17:51
fbass left
17:52
fbass joined
17:56
molaf_ left
|
|||
dalek | kudo/nom: 7c9b08a | jonathan++ | src/Perl6/Grammar.pm: Fix twigil parsing to be in line with STD. |
17:57 | |
tadzik is back | |||
17:57
fbass left
|
|||
masak | tadzik! \o/ | 17:57 | |
jnthn | evenin', tadzik | ||
moritz | if anybody notices any evalbot oddness in the next few days, please tell | 18:00 | |
I've touched more of its code today than I would have liked :-) | |||
tadzik | :) | 18:01 | |
masak: have you seen the fully-parsed S26 today? :) | |||
masak | tadzik: oh wow no I haven't! | ||
dalek | ecza: 30c9d82 | diakopter++ | lib/ (3 files): actually implement -R -O -W -X -o and stub in -r -w -x |
18:02 | |
tadzik | the NYI formatting codes still look stupid, but it seems fine aside from it | ||
masak: just perl6 --doc ~/your/s/26 | |||
18:03
M_o_C left
|
|||
masak | tadzik: making nomz. will try later :) | 18:03 | |
tadzik | ok :) | 18:04 | |
18:08
zby_home_ joined
|
|||
Util | colomon: I am on-site with a new client until tonight, and therefore intermittant myself; no worries. | 18:12 | |
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. | |||
Is there a log of any discussion on your planned re-implementation of Complex? | |||
colomon | Util: well, there are no complex trig implementations in either, yet. ;) | ||
[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
pernatiy left
|
|||
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:13 | |
TimToady | are you hoping to disprove this theory? :) | 18:14 | |
Util | So you will be wanting my notes? Or are you already Zen Master of the domain? | 18:15 | |
colomon++ # just on spec :) | |||
colomon | TimToady: apparently not hard enough, as I started working on it this morning. ;) | ||
diakopter | TimToady alive | ||
colomon | Util: I am SO not Zen Master of the domain. I would love your notes. | ||
Util | colomon: It will be later in the week, but I will provide them. | 18:17 | |
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:18 | |
18:23
fbass joined
18:24
Mowah left
18:26
Trashlord left
18:28
Trashlord joined
|
|||
[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,
fbass left
18:41
pernatiy joined
18:42
am0c left
|
|||
tadzik | moritz: around? | 18:59 | |
moritz | tadzik: yes | ||
tadzik: remember to report at #phasers in about 1min :-) | |||
dalek | kudo/nom: d441931 | (Solomon Foster)++ | src/core/Rat.pm: Use "Real $?" for the Rat.Rat optional parameter which is ignored. jnthn++ |
19:00 | |
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 | |
then checking $*YES_CONTINUE before the actual loading, or something? | |||
moritz | tadzik: or maybe it's just DOC <blast>, and check if <blast> matched a 'use' statement, and if yes executed immediately | 19:04 | |
can <blast> parse 'use Foo;' ? | 19:05 | ||
tadzik | yes, that's the use for it | ||
as in 'DOC use Pod::To::Text' | |||
not much different from DOC INIT { use } | 19:06 | ||
jnthn suspects s/BEGIN/INIT/ | |||
er | |||
the other way around :) | |||
tadzik | mebbe | 19:07 | |
tadzik is not really fond of 'DOC use', as a spec thing | |||
it's just like "oh, there's a possibily to move 'use' out of your custom DOC INIT, if you want to" | 19:08 | ||
not really useful imho | |||
jnthn | nom: use Test; say Test | 19:09 | |
p6eval | nom: OUTPUT«Test()» | ||
jnthn | nom: DOC INIT { use Test }; say Test | ||
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)» | ||
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 | ||
jnthn | nom: DOC INIT { use Test; }; say Test | ||
moritz | I think that 'DOC use MyDocModule;' is useful for that | ||
p6eval | nom: OUTPUT«Test()» | ||
jnthn | Bug. | ||
moritz | not a blocker for gsoc though, IMHO | 19:10 | |
jnthn | No, it's not | ||
I don't have a good answer off hand | |||
I'll ponder it a bit. :) | |||
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:11 | |
moritz | tadzik: unless that module wants to modify the grammar, or something | 19:13 | |
tadzik | hmm, mebbe | ||
ok | |||
moritz: I don't get the "check if <blast> matched a 'use' statement, and if yes executed immediately" part :) | 19:15 | ||
as in: put <statement_control> in there, and if it's not /^use/ issue a parsefail? | 19:16 | ||
moritz | no | ||
just a sec | |||
tadzik | ok, no hurries | ||
jnthn | Note that as soon as "use" is parsed, it takes action. | ||
tadzik | I know' | 19:17 | |
jnthn | By the time you know you've parsed a use in the node above, you've already used. | ||
tadzik | that's the problem | ||
moritz | ah | ||
then forget what I said | |||
tadzik | so I thought about modifying use itself | ||
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 | ||
well, no. Do not load, if it's set, and there's no --doc | |||
moritz | yes, something like that | ||
tadzik | so modifying use. Ok | ||
19:27
soh_cah_toa joined
|
|||
tadzik | done, spectesting and pushign | 19:27 | |
moritz | ++tadzik | 19:28 | |
tadzik | oh wait, it's wrong :) | 19:29 | |
it's late for boolean logic | 19:30 | ||
pmichaud | $*HAS_DOC should probably be $*IN_DOC | ||
since it's not "has" anything. | |||
jnthn | aye | ||
tadzik | I actually used $*DOC_USE | 19:31 | |
then unless $*DOC_USE && !%*COMPILING<%?OPTIONS><doc> | |||
masak | niecza: sub foo($x) { PRE { $x %% 2 }; return $x - 1; POST { $x !%% 2 } }; say foo(10) | ||
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… | ||
masak | hm. | ||
er. | |||
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… | ||
masak | sorear: can I submit this as a Niecza issue? | ||
moritz wouldn't see why not | 19:33 | ||
19:38
shinobicl left
|
|||
masak does it, then | 19:40 | ||
19:53
mj41 left
19:58
im2ee joined
20:00
timbunce left
|
|||
diakopter looks for something else "quick/easy" to tackle in niecza | 20:01 | ||
masak | diakopter: temp! :) | 20:02 | |
diakopter | hah | 20:03 | |
masak | too easy? maybe 'let', then. I've been wanting that one for a long time :) | 20:04 | |
now that many phasers are in place, it should even be within reach. | |||
diakopter | unfortunately for me, I don't understand enough about let and phasers | 20:06 | |
pmichaud | careful playing with phasers... one might get burned. | ||
:-) | |||
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 | ||
masak | well, there you go. | 20:09 | |
diakopter | I don't understand enough about temp also :) | ||
colomon | I thought phasers were more likely to stun you... | ||
TimToady | (or in the case of temp $*foo, puts the hoister into KEEP) | ||
er, let $*foo | |||
dalek | ecza: b1a06ff | diakopter++ | lib/ (3 files): fix the build; sigh |
20:10 | |
diakopter | evalbot: rebuild niecza | 20:11 | |
halp | 20:12 | ||
p6eval: rebuild niecza | |||
evalbot control rebuild niecza | |||
evalbot rebuild niecza | 20:13 | ||
p6eval | OK (started asynchronously) | ||
20:15
timbunce joined
|
|||
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… | ||
diakopter | urp | ||
niecza: say 3.IO.x | |||
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 | ||
now what did I do | |||
TimToady | niecza: say "Rebuild in progress" | ||
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 | ||
TimToady | .oO(Meta-Rebuild in progress) |
||
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 | |
20:19
molaf joined
|
|||
diakopter | or maybe point me to a filename somewhere | 20:20 | |
dalek | kudo/nom: 3462af1 | tadzik++ | src/Perl6/Grammar.pm: Implement DOC use |
||
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 | ||
$<doc>=[ 'DOC' \h* ] | 20:22 | ||
diakopter | TimToady: yikes; it switches effective uid temporarily; that doesn't seem threadsafe | ||
pmichaud | and then look for the subcapture | ||
tadzik | pmichaud: oh, probably, yes | ||
will do that | |||
TimToady | diakopter: I believe this was mentioned earlier as a problem with that approach | ||
in fact, you said it | 20:23 | ||
diakopter | yes; I'm running out of choices | ||
TimToady | let's see, there's always forking off another process, then sending the info back through a pipe | 20:25 | |
not something you wanna do on every -r though... | |||
TimToady will nap upon it | 20:26 | ||
diakopter | poor mono doesn't emulate it | ||
I wonder what parrot/rakudo do | |||
[Coke] needs to turn off "parrot" as a word of interest in this channel. | 20:27 | ||
pmichaud | I think that rakudo does "nyi" for that. :) | 20:28 | |
(Parrot also.) | |||
diakopter | but it does do -r -w -x I thought | ||
which is supposed to use effective uid/gid | 20:29 | ||
oh, I guess they're fudged | 20:30 | ||
in filetest.t | 20:31 | ||
tadzik | is it just me, or ./perl6 --doc -e 'DOC use Test;' does run HORRIBLY slow for some reason? | 20:32 | |
like, 8 times slower than withouth the --doc? | |||
masak | 'night, #perl6 | ||
diakopter | n | ||
tadzik | oh, that's maybe the loading of Pod::To::Text and so | 20:33 | |
nom: use Test; use Pod::To::Text | |||
20:33
masak left
|
|||
p6eval | nom: ( no output ) | 20:33 | |
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 | ||
jnthn | So if you're hitting the install somehow... | ||
tadzik | I don't install nom on my machine | ||
jnthn | ok | ||
Is it far faster without --doc? | |||
20:35
Khisanth left
|
|||
pmichaud | looks like Parrot implements "real uid" access checks, and not "effective uid" | 20:35 | |
tadzik | jnthn: yes, a lot | ||
diakopter | pmichaud: same for mono | 20:36 | |
tadzik | jnthn: see gist.github.com/1135126 | ||
and it's not because of DOC use, commenting it out doesn't help | |||
20:37
kanishka left,
Khisanth joined
|
|||
jnthn | hmm | 20:38 | |
tadzik | adding use Pod::To::Text and copypasting the default phaser still doesn't slow things down that much | ||
I'll compare the pir output | |||
pmichaud | where is the --doc switch handled, ooc? | ||
tadzik | well, --doc generates over 200% the pir | ||
206 lines vs 442 lines | |||
pmichaud: it depends on what do you mean by handled. There are checks for '%*COMPILING<?OPTIONS><doc> from time to time | 20:39 | ||
dalek | kudo/nom: 1ec5883 | tadzik++ | src/Perl6/Grammar.pm: Use a subcapture instead of a dynvar in DOC use handling, pmichaud++ |
20:42 | |
20:43
im2ee left
20:44
Khisanth left
20:47
kaare_ left
|
|||
dalek | odel: 5fa7d52 | (Martin Berends)++ | c/ (2 files): odel/c] fix a memory leak in t/01c-osthreads.c detected up by valgrind |
20:52 | |
20:58
Khisanth joined
|
|||
dalek | ecza: dd8c40b | diakopter++ | lib/Builtins.cs: copy Perl 5's emulate_eaccess algorithm for -r -w -x |
20:59 | |
20:59
fbass joined
21:02
timbunce left
21:07
timbunce joined
21:18
fbass left
|
|||
tadzik | g'night #perl6 | 21:19 | |
jnthn | night, tadzik | ||
21:20
Vlavv` joined
21:22
Vlavv left
21:39
bluescreen10 left
21:44
Psyche^ joined
21:45
zby_home_ left
21:46
drbean joined
21:48
Patterner left,
Psyche^ is now known as Patterner
21:55
isBEKaml left
|
|||
diakopter | sorear: ping | 22:03 | |
niecza: say 1 | |||
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 | ||
Util | rakudo: my $m = [ [1,2,3], [4,5,6], [7,8,9] ]; my @a = $m.list>>.list; say @a.perl; | ||
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; | ||
p6eval | rakudo 922500: OUTPUT«[1, 2, 3, 4, 5, 6, 7, 8, 9]» | ||
Util | nom: my $m = [ [1,2,3], [4,5,6], [7,8,9] ]; my @a = $m.list>>.list; say @a.perl; | ||
p6eval | nom: OUTPUT«Array.new(1, 3, 2)» | ||
Util | nom: my $m = [ [1,2,3], [4,5,6], [7,8,9] ]; my @a = $m.list>>.flat; say @a.perl; | ||
p6eval | nom: OUTPUT«Array.new(5, 4, 6)» | ||
Util | Known problem with nom? | ||
22:06
Reaganomicon joined
|
|||
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
|
|||
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» | ||
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])» | ||
pmichaud | nom: my $m = [ [1,2,3], [4,5,6], [7,8,9] ]; say $m.list>>.flat.perl | ||
p6eval | nom: OUTPUT«Array.new(1, 2, 3)» | ||
pmichaud | nom: my $m = [ [1,2,3], [4,5,6], [7,8,9] ]; say ($m.list>>.flat).perl | ||
p6eval | nom: OUTPUT«Array.new(5, 4, 6)» | ||
pmichaud | nom: my $m = [ [1,2,3], [4,5,6], [7,8,9] ]; say ($m.list.flat).perl | ||
p6eval | nom: OUTPUT«Array.new([1, 2, 3], [4, 5, 6], [7, 8, 9])» | ||
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)» | ||
pmichaud | weird. | ||
looking. | |||
nom: my $m = [ [1,2,3], [4,5,6], [7,8,9] ]; say ($m.list."dispatch:<hyper>"()).perl | |||
p6eval | nom: OUTPUT«Not enough positional parameters passed; got 1 but expected at least 2current instr.: 'dispatch:<hyper>' pc 750498 (src/gen/CORE.setting.pir:190619) (src/gen/CORE.setting:654)» | ||
pmichaud | nom: my $m = [ [1,2,3], [4,5,6], [7,8,9] ]; say ($m.list."dispatch:<hyper>"('flat')).perl | ||
p6eval | nom: OUTPUT«Array.new(8, 9, 7)» | ||
pmichaud | oh! | ||
22:12
alester left
|
|||
sorear | diakopter: pong | 22:12 | |
Util has *no* insight into pmichaud's insight | 22:13 | ||
diakopter | sorear: I think perhaps "using Mono.Unix.Native;" broke something in Builtins.cs | ||
jnthn | Util: Me either. :) | ||
But I look forward to seeing the patch. :) | |||
pmichaud | well, it's somewhat of a question of "what do you expect to happen there?" | ||
jnthn | pmichaud: I'm guessing there's an itemize happening somewhere | 22:15 | |
pmichaud | actually, it's that an itemize *isn't* happening. | 22:16 | |
jnthn | oh. | ||
ah, I see | |||
It's doing a list assignment. | |||
pmichaud | right. | ||
dalek | ecza: 3517be9 | diakopter++ | lib/Builtins.cs: fix the build for realz |
||
pmichaud | I can force it to itemize... but then that would totally negate the point of the .flat | ||
diakopter | evalbot rebuild niecza | ||
p6eval | OK (started asynchronously) | ||
jnthn | ah, yeah | 22:17 | |
the number of result elements != the number of elements we started with, if it's gonna work. | |||
diakopter | niecza: saliveay | ||
p6eval | niecza v8-50-g3517be9: OUTPUT«===SORRY!===Undeclared routine: 'saliveay' used at line 1Unhandled 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)… | ||
diakopter | er | ||
niecza: say "liave" | |||
pmichaud | well, I suspect @result[...] = is wrong anyway. | ||
p6eval | niecza v8-50-g3517be9: OUTPUT«liave» | ||
pmichaud | I'm guessing it needs to go into a list instead of an array. | 22:18 | |
diakopter | niecza: say IO.x | ||
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… | ||
sorear | diakopter++ | ||
diakopter: I was pretty conservative with the "is unsafe" decorators | 22:19 | ||
I'm not sure how much we *really* need to block | |||
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 | ||
pmichaud | or, perhaps more likely, the results go into an RPA that gets turned into a Parcel | ||
sorear | also reading files | ||
but I can't tell offhand if -x is a security risk | |||
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? | ||
jnthn | pmichaud++ | ||
TimToady | niecza: use Test | ||
p6eval | niecza v8-50-g3517be9: ( no output ) | ||
TimToady | niecza: use Test; say "alive" | ||
p6eval | niecza v8-50-g3517be9: OUTPUT«alive» | ||
TimToady | hmm, fails here | 22:22 | |
diakopter | git pull again | ||
just fixed | |||
TimToady | did, the build was broke before | ||
now just 'make test' is | |||
diakopter | hm | ||
TimToady | I get: Unable to resolve method shift in class Str | 22:23 | |
diakopter | mono run/Niecza.exe -e 'say "lib".IO.x' | ||
TimToady | that returns true | ||
diakopter | /o/ | ||
TimToady | trying a make clean | 22:24 | |
diakopter | make test wfm | ||
TimToady | fixed | ||
diakopter | sorear: 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 | ||
s/must/likely to/ | |||
22:25
bbkr1 left
22:26
timbunce left
|
|||
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 | |
I should probably add a version number to that at some point | |||
TimToady | well, that's sort of a missing dependency :) | 22:27 | |
22:27
bbkr joined
|
|||
diakopter | TimToady: I ended up doing setreuid/setregid and back | 22:28 | |
sorear | diakopter: closed | ||
diakopter | sorear: now all it needs is the ~~ :x syntax for filetest.t to pass largely | 22:29 | |
dalek | ast: 63327ca | jonathan++ | S12-subset/multi-dispatch.t: Update test to follow latest proto semantics. |
||
sorear | well that's trivial | 22:30 | |
diakopter | trivial for you | ||
TimToady | I imagine it already has the syntax; it's the semantics it needs... | 22:31 | |
diakopter | niecza: say IO ~~ :e # yes | ||
p6eval | niecza v8-50-g3517be9: OUTPUT«Bool::False» | ||
diakopter | (doesn't try to invoke the method) | 22:32 | |
22:32
Chillance left
|
|||
TimToady | niecza: say Pair.can('ACCEPTS') | 22:32 | |
p6eval | niecza v8-50-g3517be9: OUTPUT«Bool::True» | ||
sorear | that's because it's calling Mu.ACCEPTS | ||
22:32
rdesfo left
|
|||
sorear | wait, no, it's calling Any.ACCEPTS | 22:32 | |
TimToady | niecza: say "foo" ~~ :chars | ||
p6eval | niecza v8-50-g3517be9: OUTPUT«Bool::False» | 22:33 | |
sorear | and then "foo" === :chars | ||
TimToady | right | ||
niecza: say "1" ~~ :chars | |||
p6eval | niecza v8-50-g3517be9: OUTPUT«Bool::False» | ||
TimToady | um | 22:34 | |
right | |||
sorear | niecza: my $p = :chars; say $p ~~ $p | ||
p6eval | niecza v8-50-g3517be9: OUTPUT«Bool::True» | ||
TimToady | niecza: say 1 ~~ :chars | ||
p6eval | niecza v8-50-g3517be9: OUTPUT«Bool::False» | ||
TimToady | niecza: say 1 ~~ 1 | ||
p6eval | niecza v8-50-g3517be9: OUTPUT«Bool::True» | 22:35 | |
22:35
saaki left
|
|||
TimToady | niecza: say 1 ~~ 1.chars | 22:35 | |
p6eval | niecza v8-50-g3517be9: OUTPUT«Bool::True» | ||
dalek | kudo/nom: 73ee1ee | jonathan++ | / (17 files): 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. |
||
kudo/nom: 9d9f42c | jonathan++ | src/Perl6/Metamodel/SubsetHOW.pm: Missing decontainerize. |
|||
kudo/nom: 71168e4 | jonathan++ | src/Perl6/Actions.pm: Handle non-nominal types used in the nominal parameter type slot; start preparing for fixing generics handling in the binder a little more. |
|||
kudo/nom: c954899 | jonathan++ | t/spectest.data: Run S12-subset/multi-dispatch.t. |
|||
diakopter | sorear: what is niecza missing that makes its "Basic File IO" entry in Features not be green | ||
sorear | diakopter: close and most of the other handle operators | 22:36 | |
niecza: say (1.?"pie"()).perl | |||
p6eval | niecza v8-50-g3517be9: OUTPUT«Potential difficulties: Useless use of quotes at /tmp/nkLGOT2TXG line 1:------> say (1.?"pie"⏏()).perlNil» | 22:37 | |
sorear | niecza: say (1."sqrt"()).perl | ||
p6eval | niecza v8-50-g3517be9: OUTPUT«Potential difficulties: Useless use of quotes at /tmp/DUkKh7kjsD line 1:------> say (1."sqrt"⏏()).perl1» | ||
sorear | niecza: say (1.?"sqrt"()).perl | ||
p6eval | niecza v8-50-g3517be9: OUTPUT«Potential difficulties: Useless use of quotes at /tmp/xHCTrEoE1w line 1:------> say (1.?"sqrt"⏏()).perl1» | ||
sorear | I've added a Pair.ACCEPTS | ||
now testing | |||
TimToady | also lines() doesn't do anything with filenames on the command line | 22:38 | |
diakopter | gather take my $l while ($l = self.get).defined; | 22:39 | |
TimToady, including with .IO ? | |||
sorear | diakopter: you think it could use more parens? | ||
diakopter | heh no | ||
just pasting it | |||
Util | pmichaud++ | ||
TimToady | gather makes its own parens | 22:40 | |
so you don't need 'em for the while modifier | |||
TimToady thinks | |||
Util | (independent of implementation) If I have a AoA, and want to completely | ||
flatten it, is there a "best way" among .flat>>.flat, .flat>>.list, | |||
.list>>.list, .list>>.flat, or something completely different? | |||
TimToady | Util: .tree is supposed to do that, but nobody's implemented it | 22:41 | |
diakopter | sounds like a feature item | ||
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 | ||
TimToady | lines with no argument implicitly opens filter style | ||
sorear | Util: probably { $_ ~~ Array ?? map(&?BLOCK, @($_)) !! $_ } | ||
dalek | ecza: 785e335 | sorear++ | lib/CORE.setting: Implement Pair.ACCEPTS |
22:43 | |
diakopter | I don't know what filter style is | 22:44 | |
TimToady | filenames on command line or STD if none specified | ||
STDIN | |||
Util | sorear, TimToady: thanks! | 22:45 | |
TimToady | lines works with <file but not just file | ||
Util | When implemented in Rakudo and Niecza, I want to change part of RC Matrix-exponentiation_operator from: | ||
my $size = 1; for ^$m X ^$m -> $i, $j { $size max= $m[$i][$j].Str.chars; } | |||
to: | |||
my $size = [max] 1, $m.tree».chars; | |||
TimToady | well, except we probably will change that one to use real shaped arrays when we have 'em | 22:46 | |
what we need is the visit-every-leaf semantics somewhere handy | 22:47 | ||
which was specced somewhere... | 22:48 | ||
Util | visit-every-leaf would be quite nice | 22:49 | |
TimToady | seems that Enumerable used to mean that, or some such | 22:50 | |
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. | ||
pmichaud | if @a>>++ recursively applies ++ to any Iterables in @a, does the same hold true for @a>>.foo ? | ||
22:51
pothos_ joined
|
|||
TimToady | but it's specced to return the same structure | 22:52 | |
pmichaud | right, so is the same true for @a>>.foo ? | ||
i.e., it returns the same structure? | |||
22:53
wolfman2000 joined,
pothos left,
pothos_ is now known as pothos
|
|||
TimToady | I'd think the best that could do is turn sub-arrays into sub-parcels | 22:54 | |
in any case, we don't actually want to flatten the 2-D array in this case | |||
but just treat it like a 1-D array temporarily | |||
or just visit each leaf | |||
pmichaud | I don't follow. | 22:55 | |
maybe I need to read the backscroll a bit | |||
TimToady | Util's code above | ||
pmichaud | my $m = [ [1,2,3], [4,5,6] ]; $m>>.flat | 22:56 | |
22:57
fbass joined
|
|||
pmichaud | shouldn't preserve the AoA structure? | 22:57 | |
i.e., it should become ( (1,2,3), (4,5,6) ) ? | |||
similarly | |||
my $m = [ [ 1, [2,3] ], [4,5,6] ]; $m>>.flat produces ((1,(2,3)), (4,5,6)) ? | |||
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:00 | ||
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:02
hanekomu left
|
|||
dalek | atures: fc7813d | diakopter++ | features.json: fix wrong perl6advent link |
23:04 | |
TimToady | perl6: my $m = [ [1,2,3], [4,5,6] ]; say [*] gather $m».map: { take $_ } | ||
p6eval | niecza v8-50-g3517be9: OUTPUT«720» | ||
..rakudo 922500: OUTPUT«1» | |||
..pugs: OUTPUT«decodeUTF8': bad data: '\187'1» | |||
TimToady | niecza++ | ||
flussence just realised @a».?foo is a thing | |||
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 $_ } | ||
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)» | ||
pmichaud | hmmm | ||
nom: my $m = [ [1,2,3], [4,5,6] ]; say [*] gather { $m>>.map({ take $_ }) } | |||
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)» | ||
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 | ||
TimToady | How to Write the Visitor Pattern in Perl 6 | ||
pmichaud | ...if we can somehow know we're in sink context :-P | ||
TimToady | you can know this one statically | 23:07 | |
flussence | rakudo: my @a = (4, 'q', False); say @a».?sqrt | ||
p6eval | rakudo 922500: OUTPUT«200» | ||
pmichaud | wait | ||
why wouldn't that be simply? | 23:08 | ||
my $m = [ [1,2,3], [4,5,6] ]; say [*] gather $m>>.take | |||
TimToady | er, cause I didn't know .take was implemented yet | ||
pmichaud | it might not be... is there a .take ? | 23:09 | |
TimToady | dint useta was | ||
pmichaud | seems weird to use .map there, though, if it applies mainly to the leaves | ||
TimToady | perl6: my $m = [ [1,2,3], [4,5,6] ]; say [*] gather $m».take | ||
p6eval | pugs: OUTPUT«decodeUTF8': bad data: '\187'720» | ||
..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… | |||
..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 … | |||
TimToady | perl6: my $m = [ [1,2,3], [4,5,6] ]; say [*] gather take«($m) | 23:10 | |
23:10
dorlamm joined
|
|||
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 | |
..pugs: OUTPUT«decodeUTF8': bad data: '\171'***  Unexpected "\171($" expecting "::", dot, ":", "(", term postfix, operator or "," at /tmp/JomdOe7Uyy line 1, column 50» | |||
..rakudo 922500: OUTPUT«===SORRY!===Confused at line 22, near "say [*] ga"» | |||
TimToady | perl6: my $m = [ [1,2,3], [4,5,6] ]; say [*] gather take« $m | ||
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… | ||
..pugs: OUTPUT«decodeUTF8': bad data: '\171'***  Unexpected "\171" expecting "::", dot, ":", "(", term postfix, operator or "," at /tmp/mgUcMuS74d line 1, column 50» | |||
..rakudo 922500: OUTPUT«===SORRY!===Confused at line 22, near "say [*] ga"» | |||
TimToady | boom, boom, boom :D | ||
pmichaud | $m<<.&take maybe? | ||
er, >> | |||
TimToady | likely | 23:11 | |
pmichaud | nom: my @a = 1..10; @a>>.&say; # curious | ||
TimToady | perl6: my $m = [ [1,2,3], [4,5,6] ]; say [*] gather $m».&take | ||
p6eval | nom: OUTPUT«15279104386» | ||
niecza v8-50-g3517be9: OUTPUT«720» | |||
..pugs: OUTPUT«decodeUTF8': bad data: '\187'720» | |||
..rakudo 922500: OUTPUT«9» | |||
TimToady | good guess, rakudo, but no | ||
pmichaud | nom: my $m = [ [1,2,3], [4,5,6] ]; say [*] gather $m>>.&take; | ||
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)» | ||
pmichaud | hmmph | 23:12 | |
I wonder where that Null PMC is coming from. must be in gather/take somewhere. | |||
nom: my $m = [ [1,2,3], [4,5,6] ]; say (gather { $m>>.&take }); | |||
p6eval | nom: OUTPUT«1 2 3 4 5 6» | ||
pmichaud | nom: my $m = [ [1,2,3], [4,5,6] ]; say [*] (gather { $m>>.&take }); | ||
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)» | ||
pmichaud | nom: my $m = [ [1,2,3], [4,5,6] ]; say [*] (gather { $m>>.&take }).eager; | 23:13 | |
p6eval | nom: OUTPUT«720» | ||
pmichaud | nom: my $m = [ [1,2,3], [4,5,6] ]; say [*] (gather $m>>.&take ).eager; | ||
p6eval | nom: OUTPUT«720» | ||
pmichaud | nom: my $m = [ [1,[2,3]], [4,5,6] ]; say [*] (gather $m>>.&take ).eager; | ||
p6eval | nom: OUTPUT«240» | ||
pmichaud | hmmmmm | 23:14 | |
so, back to my earlier question... >>.foo preserves structure when applied to iterables? | |||
q! | 23:15 | ||
ww | |||
TimToady | S03:4124 is what the spec says | 23:19 | |
which is why I said it could downgrade a structure to parcels, but not remove them | |||
pmichaud | when would we downgrade, though? | 23:20 | |
always? | |||
what about nested hashes? | |||
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 | |||
TimToady | doing it to the new ones would seem to violate S03:4124 | ||
pmichaud | "new ones"? I'm not following again. | 23:23 | |
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 | |
so ».flat should be a no-op | |||
it only ever calls .flat on the leaves | 23:25 | ||
we need .tree if we want to stop recursing at some level | 23:27 | ||
23:31
wamba left
|
|||
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:31 | |
jnthn | pmichaud: While we're on this topic, I'm not sure that dispatch:<hyper> is going to quite work out. (more) | 23:32 | |
@obj>>.?foo also needs to work | |||
I was thinking maybe >> there results in us re-writing to a closure of some kind | |||
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 | ||
something like postorder vs preorder | 23:34 | ||
jnthn: seems reasonable, though perhaps hot-pathable | 23:35 | ||
jnthn | TimToady: Given the thingy that implements >> can be statically known, a sufficiently clever inliner may be able to unpick the thing. | 23:37 | |
TimToady | well, correct first, then fast | 23:38 | |
jnthn | aye | ||
TimToady | much as it galls me to say it :) | ||
jnthn | pmichaud: think tadzik's patch earlier busted the build | ||
Got a fix here. | 23:39 | ||
It's interleaved with a couple of other commits but I suspect they're harmless... | |||
...so pushed. | |||
pmichaud | jnthn: guess what, I think that >>.?foo already works :-) | 23:40 | |
dalek | kudo/nom: c5e94c1 | jonathan++ | src/ (3 files): Pass generic nominal flag down to binder. |
||
kudo/nom: 130bab8 | jonathan++ | src/Perl6/Grammar.pm: Seems tadzik's last patch was a little off and managed to break the build; this unbreaks it. |
|||
kudo/nom: cb738d9 | jonathan++ | src/binder/bind.c: Make (::T, T) style signatures work properly in the binder. |
|||
pmichaud | nom: my @a = 1,2,3; say @a>>.?succ | ||
p6eval | nom: OUTPUT«2 3 4» | ||
jnthn | pmichaud: OK, then I musta mis-reviewed your patch. :) | ||
pmichaud: er | |||
nom: my @a = 1,2,Mu; say @a>>.?succ | |||
p6eval | nom: OUTPUT«2 3» | ||
pmichaud | :-) | ||
jnthn | nom: say Mu.succ | ||
p6eval | nom: OUTPUT«Method 'succ' not found for invocant of class 'Mu'current instr.: '_block1002' pc 63 ((file unknown):136) (/tmp/Q9Lpv7y2KR:1)» | ||
jnthn | pmichaud++ | ||
jnthn should not doubt :) | 23:41 | ||
pmichaud | it's the same way that >>.&var is working | ||
it's calling dispatch:<var> | |||
from within dispatch:<hyper> | |||
jnthn | oh! | ||
pmichaud | in the case of >>.?method | ||
jnthn | oh, clever. :) | ||
pmichaud | it's calling dispatch:<.?> (or whatever) | ||
23:41
molaf_ joined
|
|||
jnthn | TimToady: btw, will you be at the hackathon on Saturday in Riga? | 23:42 | |
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. :) | ||
pmichaud | (although it's failing a bit with .>>.foo, which needs some fixing. | ||
er, .>>.++ I mean | 23:45 | ||
.>>.foo probably works fine | |||
nom: my @a = 1,2,3; say @a.>>.succ | |||
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)» | ||
pmichaud | oh, guess not. | ||
jnthn | std: my @a = 1,2,3; say @a.>>.succ | ||
p6eval | std 516268a: OUTPUT«ok 00:01 122m» | ||
23:45
molaf left
|
|||
jnthn | hmmmmm | 23:46 | |
(::T, T) things in multi-dispatch are...interesting. | |||
23:47
dorlamm left
|
|||
jnthn thinks he'll leave that for tomorrow :) | 23:50 | ||
23:51
amkrankruleuen left
23:52
amkrankruleuen joined
23:57
saaki joined
|