»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend! Set by sorear on 25 June 2013. |
|||
japhb__ | retupmoca: or just: | 00:00 | |
nevermind, backlogged and didn't realize it. | |||
00:04
benabik joined
|
|||
lue | Quick sanity check: ("|" denotes where the imaginary "cursor" lies) in the string "a|b", <?before> checks against 'b', and <?after> checks against 'a', correct? | 00:08 | |
Mouq | lue: yeah | 00:12 | |
japhb__ | r: say so run </bin/true> | ||
camelia | rakudo e55c66: OUTPUT«run is disallowed in restricted setting in sub restricted at src/RESTRICTED.setting:2 in sub run at src/RESTRICTED.setting:8 in block at /tmp/vgiETL9pw0:1» | ||
Mouq | r: say 'ab' ~~ / \w <?after \w> <?before \w> / | 00:13 | |
camelia | rakudo e55c66: OUTPUT«「a」» | ||
Mouq | r: say 'ab' ~~ / \w <?after \w> <?before \w> $<b>=b / | ||
camelia | rakudo e55c66: OUTPUT«「ab」 b => 「b」» | ||
japhb__ | It appears that rakudo-parrot and rakudo-jvm disagree on the boolification of run() results too. | ||
.oO( Where is the masakbot when I need him? ) |
00:14 | ||
Mouq | r: say 'ab' ~~ / a <?after a> <?before b> b / | ||
camelia | rakudo e55c66: OUTPUT«「ab」» | ||
lue | OK. Perhaps I should look at NQP terminator eater now; it's maddening trying to get mine to work :) (specifically letting the semicolon not required after the echo in -e 'if (1=1) { echo "hi" };' | ||
japhb__: which one is wrong (0 -> True, !0 -> False is right) | 00:15 | ||
japhb__ | rakudo-jvm is wrong | ||
colomon | easier to fix than to report the bug? | 00:16 | |
[Coke] | japhb__: updating r-j to do replace existing is pretty trivial. | ||
working on it. | |||
Mouq | lue: Yeah, <eat_terminator> just eats up a ';', matches $, or matches before a terminator like } | ||
japhb__ | [Coke]: Thank you! | 00:17 | |
colomon | [Coke]++ | ||
[Coke] adds JVM/MOAR/PARROT tags to nqp issues. | 00:18 | ||
(just the ability to add them.) | |||
japhb__ has decided this weekend to keep the yak-shaving limit at Rakudo source fixes; anything that requires changes to VM-specific code, I'm handing the shaver to someone else. :-) | 00:19 | ||
[Coke] | if someone could add a test for that feature, it would be helpful. | ||
japhb__ | [Coke]++ | ||
lue | Mouq: well then. mine is actually token term_eat { [ <!before \}> ';'? <.ws> <?before \}> | '}' \h* [';'? \h* \n | ';' \h*] | ';' ] } right now, and works only most of the time. *sigh* :) | 00:20 | |
Mouq | lue: (Though note that NQP and Rakudo use <?ENDSTMT> to match the 'curly + end of line is statement terminator' rule | ||
[Coke] | japhb__: should it also copy attributes if possible? | 00:24 | |
japhb__ | [Coke]: I don't think so, that's not the behavior of cp by default. | 00:25 | |
[Coke] | Roger. | ||
lue | (my eater is the one that eats the brace, not the blockoid-equivalent (although that's actually probably an artifact of how I did PHPish functions before needing to separate out the { } parser for ex. 6.2)) | ||
[Coke] | building a version with a fix... | 00:26 | |
japhb__ | w00t | 00:27 | |
[Coke] | also adding a "TESTNEEDED" label.. | 00:28 | |
lue | is <?[stuff]> eqv. to <?before stuff> ? | ||
Mouq | Oh, STD uses the same sort of endstmt thing too, it just does it in a nicer way :p | ||
lue | (there's also MARKED stuff in the NQP grammar I'll need more detail on later, but hopefully I don't need it. At least it seems to be provided by HLL::Grammar) | 00:29 | |
Mouq | AFAIK, <?[stuff]> is more like <?before <[stuff]> >, but I don't know the precise difference between <?…> and <?before …> | 00:30 | |
TimToady | only a syntactic difference | 00:31 | |
lue | .oO(This compiler writin' sure is hard. How do you ever manage Perl 6‽) On the plus side, though, I got this sudden sense that I *can* understand Perl 6's grammar and actions now. I at least have my foot in the door. |
||
TimToady | the first can only take another assertion-innards, the latter only a full refex | ||
*regex | |||
lue | "full regex" as in no <rule> rules, or "full regex" as in everything I can do outside the construct? | 00:32 | |
Mouq | everything | 00:33 | |
TimToady | well, consider the difference between <?[...]> and <?before [...]> | ||
the latter are just grouping brackets, and redundant | |||
the former are cclass delims | 00:34 | ||
lue | ah, ok. So my statement "is <?[stuff]> eqv. to <?before stuff> ?" was wrong, and should be <?[stuff]> eqv to <?before [stuff]> | ||
or, no. | |||
TimToady | <?foo> means something very different from <?before foo> | ||
lue | oh oh, ok. I had completely forgotten the existence of <[ ]> for character classes. <?[ ]> now makes much much more sense. | 00:35 | |
TimToady | <? recursively calls back into < | ||
<?before calls back into Regex language | |||
00:35
benabik left
|
|||
TimToady | r: say 'foo' ~~ /<?!?!before 'foo'>/ | 00:36 | |
camelia | rakudo e55c66: OUTPUT«「」» | ||
TimToady | hmm | ||
n: say 'foo' ~~ /<?!?!before 'foo'>/ | 00:37 | ||
camelia | niecza v24-98-g473bd20: OUTPUT«「」» | ||
lue | r: say 'foo' ~~ /<?!?!before 'foo'> (foo)/ | ||
camelia | rakudo e55c66: OUTPUT«「foo」 0 => 「foo」» | ||
TimToady | oh, yeah, duh | ||
Mouq | r: say 'foo' ~~ /<?!?!before (foo)>/ #? | ||
camelia | rakudo e55c66: OUTPUT«===SORRY!===Unrecognized regex metacharacter ( (must be quoted to match literally)at /tmp/RE3isF5bZV:1------> say 'foo' ~~ /<?!?!before (foo)>⏏/ #?Regex not terminatedat /tmp/RE3isF5bZV:1------> say …» | ||
TimToady | n: say so 'foo' ~~ /<?!?!?!?!?!before 'foo'>/ | 00:38 | |
camelia | niecza v24-98-g473bd20: OUTPUT«True» | ||
Mouq | r: say 'foo' ~~ /<?!?!before (foo)> / #? | ||
camelia | rakudo e55c66: OUTPUT«===SORRY!===Unrecognized regex metacharacter ( (must be quoted to match literally)at /tmp/tQnVXx4T2f:1------> say 'foo' ~~ /<?!?!before (foo)> ⏏/ #?Regex not terminatedat /tmp/tQnVXx4T2f:1------> say…» | ||
Mouq | r: say 'foo' ~~ /<?!?!before (foo) > / #oh | ||
camelia | rakudo e55c66: OUTPUT«「」» | ||
lue | n: say 'foo' ~~ /<?!?!before (foo)> / #? | ||
camelia | niecza v24-98-g473bd20: OUTPUT«===SORRY!===Unable to parse capture parens at /tmp/hEZszNBhZ8 line 1:------> say 'foo' ~~ /<?!?!before (⏏foo)> / #?Couldn't find final ')'; gave up at /tmp/hEZszNBhZ8 line 1:------> say 'foo' ~…» | 00:39 | |
Mouq | lue: ')>' is a metacharacter | ||
lue | ( niecza has a better error message, assuming )> is being misinterpreted as part of <( )> ) | ||
Although the best error would be "found )> but not <(" imo | 00:40 | ||
TimToady | std: say 'foo' ~~ /<?!?!before (foo)> / | 00:41 | |
camelia | std a0bcfb1: OUTPUT«ok 00:01 126m» | ||
Mouq checks on his branch and the error is now the same as nieczas. Woo. | |||
dalek | p: 329bff6 | coke++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java: (same behavior as nqp-p) |
||
TimToady | std treats the ) terminator as more important than the )> LTM | ||
[Coke] | japhb__: ^^ | ||
ah, crap. | 00:42 | ||
can't reference the issue number on the first column of the line, or it's a comment! whoops. | |||
lue | I can't decide if the best error for that situation would complain about (, no ), no <(, or )> :/ | 00:45 | |
(maybe a special error message for <( ... ) or ( ... )> screwups?) | |||
00:46
[particle] joined
|
|||
TimToady | the correct thing would be to parse it correctly like STD does | 00:48 | |
in general, terminators should be considered stronger than LTM | 00:50 | ||
00:50
dayangkun joined,
dayangkun left
00:51
dayangkun joined
|
|||
lue | this feels a bit like that std::vector<std::vector<object>> thing C++11 fixed. | 00:51 | |
[Coke] | any way to add a label to a pull request on github? | 00:52 | |
lue | [Coke]: I wouldn't know. | 00:56 | |
dalek | p: 309fb1c | coke++ | src/vm/parrot/QAST/Operations.nqp: Remove concat_s fossil opcode Fixes #138 |
00:58 | |
japhb__ | [Coke]++ # copy fix | 00:59 | |
[Coke] | japhb__: hopefully it helps with panda. g'luck. | 01:00 | |
lue | is MARKER/MARKED used to set/look for various flags to see if things happened in other rules? If so, then in NQP::Grammar <?MARKED('endstmt')> checks for the use of the ENDSTMT rule recently, correct? | 01:03 | |
(And I would assume said flags are subject to some sort of scoping rules, because there don't seem to be any UNMARKER things.) | 01:05 | ||
Waitaminute. Isn't line 49 in NQP/Grammar.nqp redundant? Doesn't <.unv>? effectively cover \h* ? | 01:08 | ||
r: say so "" ~~ /\h*/; say so "" ~~ /[\h+]?/; | 01:09 | ||
camelia | rakudo e55c66: OUTPUT«TrueTrue» | ||
Mouq | It looks like MARKER('thing') sets a hash in the cursor with %h<thing> = <<<Something cursor related>>>, so that's scoped | ||
lue | It had to be, or else one ENDSTMT and then you'd never have a false MARKED('endstmt') again. | 01:10 | |
aren't I right with Grammar.nqp:49 though? Or is that there because the contents of <.unv> aren't guaranteed to have a \h+ alternation? | |||
Mouq | I believe <<<Something cursor related>>> is a cursor eqv to <?> | 01:12 | |
lue: Looks like it | |||
lue will go to update NQP, and then compare spectests with/without line 49 | |||
Mouq | Although it may be an optimization | 01:13 | |
lue | That's what I was thinking, but the alternation uses |, not ||. (At least, that's what I'd use unless || causes more problems) | 01:14 | |
Mouq | Wouldn't || throw away the any \h* already matched? | 01:15 | |
lue | I don't know about that. Point is, it's functionally useless, but I can't say I've ruled out some optimization use for it. | 01:17 | |
01:18
woosley joined
|
|||
Mouq | r: say 'ab' ~~ /a<.ws>b/ | 01:19 | |
camelia | rakudo e55c66: OUTPUT«Nil» | ||
Mouq | r: say 'ab' ~~ /a<.unv>b/ | ||
camelia | rakudo e55c66: OUTPUT«No such method 'unv' for invocant of type 'Cursor' in regex at /tmp/gROLV_zIEA:1 in method ACCEPTS at src/gen/CORE.setting:12249 in method ACCEPTS at src/gen/CORE.setting:750 in block at /tmp/gROLV_zIEA:1» | ||
Mouq | r: say 'ab' ~~ /a<!ww>b/ | ||
camelia | rakudo e55c66: OUTPUT«Nil» | ||
Mouq | r: say 'ab' ~~ /a<ww>b/ | ||
camelia | rakudo e55c66: OUTPUT«「ab」 ww => 「」» | ||
Mouq | r: say 'ab' ~~ /a [ \h* | [<!ww>\h+]? ] b/ | 01:20 | |
camelia | rakudo e55c66: OUTPUT«「ab」» | ||
01:20
grondilu joined
|
|||
lue | r: say "a\nb" ~~ /a $$ b/; # I could swear $$ doesn't eat the newline, but I think I'm mistaken. | 01:20 | |
camelia | rakudo e55c66: OUTPUT«Nil» | ||
Mouq | Oh, wait | 01:21 | |
lue | (nvm, ENDSTMT takes care of it with <.ws>. Durp.) | ||
Mouq | r: say "a\nb" ~~ /a [<!ww><.ws>] b/ | 01:22 | |
camelia | rakudo e55c66: OUTPUT«「ab」» | ||
Mouq | r: say "a\nb" ~~ /a [<!ww>$$] b/ | ||
camelia | rakudo e55c66: OUTPUT«Nil» | ||
Mouq | r: say "a\nb" ~~ /a [<!ww><.ws>$$] b/ | ||
camelia | rakudo e55c66: OUTPUT«Nil» | ||
Mouq | r: say "a\nb" ~~ /a [<!ww>\h*$$] b/ | ||
camelia | rakudo e55c66: OUTPUT«Nil» | ||
Mouq | r: say "a\nb" ~~ /a [\h*$$] b/ | ||
camelia | rakudo e55c66: OUTPUT«Nil» | ||
Mouq | r: say "a\nb" ~~ /a [\h*$$<.ws>] b/ | 01:23 | |
camelia | rakudo e55c66: OUTPUT«「ab」» | ||
Mouq | r: say "a\nb" ~~ /a [<.ws>$$<.ws>] b/ | ||
camelia | rakudo e55c66: OUTPUT«Nil» | ||
Mouq | ENDSTMT has line 48 to eat the case '}', me thinks | 01:24 | |
lue | 49 you mean? | ||
Mouq | Yeah | 01:25 | |
lue | r: say "}\n" ~~ /\h* $$ <.ws>/ | ||
camelia | rakudo e55c66: OUTPUT«「」» | ||
lue | r: say "}\n" ~~ /[<!ww> [\v+ | '#' \N* | \h+]*]? $$ <.ws>/ # relevant bits of <.unv> in outermost [] | 01:26 | |
camelia | rakudo e55c66: OUTPUT«「」» | ||
lue | oh wait, I accidentally took ws. Where's my head? | 01:27 | |
r: say "}\n" ~~ /[[\h* '#' \N* | \h+]]? $$ <.ws>/ # relevant bits of <.unv> in outermost [] | 01:28 | ||
camelia | rakudo e55c66: OUTPUT«「」» | ||
01:30
sciurius left
|
|||
[Coke] | looking at rakudo's src/core/Mu.pm - there's a huge #?if parrot conditional that seems to differ only by use of atpos in one side, and atpos_s in the other ... but all the vm's have atpos_s | 01:39 | |
[Coke] tries ripping out the java path and doing a build... | 01:40 | ||
lue | it looks like the \h* line was added the same time .unv's current contents are, so there's some reason for the redundancy to be a speed optimization perhaps. | 01:44 | |
Then again, those changes were instated in 2011, so I'd be surprised if those measures were still necessary. | 01:46 | ||
pre-redundancy removal: Files=98, Tests=2236, 189 wallclock secs ( 0.86 usr 0.17 sys + 173.19 cusr 8.80 csys = 183.02 CPU) | 01:56 | ||
post-redundancy removal: Files=98, Tests=2236, 185 wallclock secs ( 0.84 usr 0.14 sys + 172.42 cusr 8.91 csys = 182.31 CPU) | |||
(The times are close enough that I should probably run 'make test' a couple more times each way. But so far there seems a slight improvement in times.) | 01:57 | ||
lue & | |||
dalek | p/stdsigspace: 05b0c30 | Mouq++ | src/QRegex/P6Regex/ (2 files): Panic after a null regexes ( RT #77784 ) Now catches and dies on more (hopefully all) null regexes, un-terminated regexes, and unrecognized metacharacters |
02:09 | |
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=77784 | ||
02:12
mtk left
|
|||
TimToady | Mouq++ | 02:12 | |
02:12
hypolin joined
|
|||
Mouq | Alas, I missed some! / || a || / dies as unrecognized metacharacter | | 02:17 | |
TimToady | std: / || a || / | 02:18 | |
camelia | std a0bcfb1: OUTPUT«===SORRY!===Null pattern not allowed at /tmp/TGblNyjSXi line 1:------> / || a || ⏏/Parse failedFAILED 00:00 121m» | ||
TimToady still appreciates that someone is working on it | |||
it's a pretty important thing | |||
Mouq | n: / || a || / | 02:19 | |
camelia | niecza v24-98-g473bd20: OUTPUT«===SORRY!===Null pattern not allowed at /tmp/9SAuDtKpk3 line 1:------> / || a || ⏏/Parse failed» | ||
TimToady | niecza's parser is pretty close to STD | ||
dalek | p/stdsigspace: d565a90 | Mouq++ | src/QRegex/P6Regex/Grammar.nqp: Replace <.throw_null_pattern> on regex infixes |
02:21 | |
02:34
odoacre joined
|
|||
dalek | ast: a5ab705 | coke++ | S12-enums/thorough.t: Add test for RT #101900 |
02:38 | |
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=101900 | ||
02:48
xenoterracide joined
02:55
grondilu left
03:13
integral left
03:16
araujo left
03:17
xinming left
03:19
xinming joined
03:22
[particle] left
03:23
Quom joined
03:24
Bucciarati left,
TimToady left
03:25
TimToady joined,
Mouq left
|
|||
dalek | p: db37f2d | dwarring++ | examples/rubyish/ (12 files): added rubyish unless blocks |
03:25 | |
03:25
Bucciarati joined
03:38
preflex left
03:40
preflex joined,
ChanServ sets mode: +v preflex
03:45
SmokeMachine joined
|
|||
Quom | n: say 'ab cd' ~~ /:s $<w>=[\w+] / | 03:45 | |
camelia | niecza v24-98-g473bd20: OUTPUT«「ab 」 w => 「ab」» | ||
Quom | n: say 'ab cd' ~~ /:s $<w>=[\w+]/ | ||
camelia | niecza v24-98-g473bd20: OUTPUT«「ab」 w => 「ab」» | ||
Quom | n: say 'ab cd' ~~ /:s $<w>=\w+ / | ||
camelia | niecza v24-98-g473bd20: OUTPUT«「ab 」 w => 「ab」» | ||
Quom | n: say 'ab cd' ~~ /:s $<w>= \w+ / | 03:46 | |
camelia | niecza v24-98-g473bd20: OUTPUT«「ab 」 w => 「ab」» | ||
Quom | n: say 'ab cd' ~~ /:s $<w>=[\w+ ] / | 03:49 | |
camelia | niecza v24-98-g473bd20: OUTPUT«「ab 」 w => 「ab 」» | ||
Quom | Hmm :( | ||
Niecza does what I think makes sense, but it differs in what I think STD does | 03:50 | ||
TimToady: ping | 03:52 | ||
03:53
fridim_ joined
|
|||
TimToady | how is STD different? | 04:00 | |
Quom | Just going by source, /:s $<w>=\w+ / will grab "\w+<.ws>" for $<w> | 04:03 | |
Niecza doesn't grab the final sigspace | 04:04 | ||
BenGoldberg | r: say 1 [R[R~]] 2 | 04:14 | |
camelia | rakudo e55c66: OUTPUT«12» | ||
Quom | r: say 1 RR~ 2 | 04:16 | |
camelia | rakudo e55c66: OUTPUT«12» | ||
Quom | r: say 1 RRRRRRRRRRRRRRRRRR~ 2 | ||
camelia | rakudo e55c66: OUTPUT«12» | ||
BenGoldberg | r: say 'abcd' ~~ /(\w\w)(\w\w)/ | 04:17 | |
camelia | rakudo e55c66: OUTPUT«「abcd」 0 => 「ab」 1 => 「cd」» | ||
BenGoldberg | r: say /(\w\w)(\w\w)/ [R~~] 'abcd' | ||
lue | some times: gist.github.com/lue/7078598 (I'm not pushing this change, in any case, until jnthn has a chance to see it. But it does appear to save a couple of seconds in the tests at least.) | ||
camelia | rakudo e55c66: OUTPUT«True» | ||
BenGoldberg | Why True, instead of 0 => ab, 1 => cd ? | 04:18 | |
r: say (/(\w\w)(\w\w)/ [R~~] 'abcd').WHAT | |||
camelia | rakudo e55c66: OUTPUT«(Bool)» | ||
BenGoldberg | r: say (/(\w\w)(\w\w)/ R~~ 'abcd').WHAT | 04:19 | |
camelia | rakudo e55c66: OUTPUT«(Bool)» | ||
Quom | BenGoldberg: I'd wager bug | ||
BenGoldberg | r: say (/(\w\w)(\w\w)/ ~~ 'abcd').WHAT | ||
camelia | rakudo e55c66: OUTPUT«(Bool)» | ||
BenGoldberg | r: say (/(\w\w)(\w\w)/ ~~ 'abcd') | ||
camelia | rakudo e55c66: OUTPUT«False» | ||
04:21
[Sno] left
|
|||
BenGoldberg | r: say <Another> [R,] <Perl> [R,] <Hacker> | 04:21 | |
camelia | rakudo e55c66: OUTPUT«Too many positional parameters passed; got 3 but expected 2 in block at src/gen/CORE.setting:16364 in block at /tmp/Fxq45QMJg9:1» | ||
BenGoldberg | r: say <Another> [R,] <Perl> , <Hacker> | ||
camelia | rakudo e55c66: OUTPUT«Perl Hacker Another» | ||
BenGoldberg | r: say <Another>, <Perl> R, <Hacker> | ||
camelia | rakudo e55c66: OUTPUT«AnotherHacker Perl» | ||
BenGoldberg | r: say <Another> R, <Just>, <Perl> R, <Hacker> | 04:22 | |
camelia | rakudo e55c66: OUTPUT«Just Hacker Perl Another» | ||
BenGoldberg | r: say <Hacker> R, <Perl>, <Just> R, <Another> | ||
camelia | rakudo e55c66: OUTPUT«Perl Another Just Hacker» | 04:23 | |
BenGoldberg | r: say 1 R, 2, 3 R, 4 | ||
camelia | rakudo e55c66: OUTPUT«2 4 3 1» | ||
BenGoldberg | r: say <Hacker> R, <Just>, <Perl> R, <Another> | 04:24 | |
camelia | rakudo e55c66: OUTPUT«Just Another Perl Hacker» | ||
BenGoldberg | r: say 1 R, 2, 3 R, 4, 5 R, 6 | ||
camelia | rakudo e55c66: OUTPUT«2 4 6 5 3 1» | ||
BenGoldberg | r: say 1 R, 2, 3 R, 4, 5 R, 6, 7 R 8 | ||
camelia | rakudo e55c66: OUTPUT«===SORRY!=== Error while compiling /tmp/AZCm_GJVBRTwo terms in a rowat /tmp/AZCm_GJVBR:1------> say 1 R, 2, 3 R, 4, 5 R, 6, 7 R⏏ 8 expecting any of: postfix infix stopper infix …» | ||
BenGoldberg | r: say 1 R, 2, 3 R, 4, 5 R, 6, 7 R, 8 | ||
camelia | rakudo e55c66: OUTPUT«2 4 6 8 7 5 3 1» | ||
BenGoldberg | r: say 5 R... 1 | 04:26 | |
camelia | rakudo e55c66: OUTPUT«1 2 3 4 5» | ||
BenGoldberg | r: say 5 R... 1 R, 0 | ||
camelia | rakudo e55c66: OUTPUT«Too many positional parameters passed; got 3 but expected 2 in block at src/gen/CORE.setting:16364 in block at /tmp/lFmQaguGxx:1» | ||
BenGoldberg | r: say 0 R, 5 R... 1 | 04:27 | |
camelia | rakudo e55c66: OUTPUT«1 2 3 4 5 0» | ||
BenGoldberg | n: say <Another>, <Perl> R, <Hacker> | ||
camelia | niecza v24-98-g473bd20: OUTPUT«===SORRY!==="," and "R," are non-associative and require parens at /tmp/XprUQXRzvk line 1:------> say <Another>, <Perl> R, ⏏<Hacker>Unhandled exception: Check failed at /home/p6eval/niecza/bo…» | ||
BenGoldberg | n: say (/(\w\w)(\w\w)/ R~~ 'abcd') | ||
camelia | niecza v24-98-g473bd20: OUTPUT«「abcd」 0 => 「ab」 1 => 「cd」» | 04:28 | |
BenGoldberg | rn: say (/(\w\w)(\w\w)/ R~~ 'abcd') | ||
camelia | rakudo e55c66: OUTPUT«True» | ||
..niecza v24-98-g473bd20: OUTPUT«「abcd」 0 => 「ab」 1 => 「cd」» | |||
BenGoldberg | rn: say ('abcd' ~~ /(\w\w)(\w\w)/) | ||
camelia | rakudo e55c66, niecza v24-98-g473bd20: OUTPUT«「abcd」 0 => 「ab」 1 => 「cd」» | ||
BenGoldberg | n: say <Hacker> R, <Just>, <Perl> R, <Another> | 04:29 | |
camelia | niecza v24-98-g473bd20: OUTPUT«===SORRY!==="R" and "," are non-associative and require parens at /tmp/fGYs8f9_P8 line 1:------> say <Hacker> R, <Just>, ⏏<Perl> R, <Another>"," and "R," are non-associative and require parens at /t…» | ||
BenGoldberg | r: say <Hacker> R, <Just>, <Perl> R, <Another> | ||
camelia | rakudo e55c66: OUTPUT«Just Another Perl Hacker» | ||
retupmoca | so what does R actually do? | ||
BenGoldberg | It reverses the order of it's arguments | 04:30 | |
Or rather, it's a meta-operator, which modifies a normal operator to create a "new" operator with the argument order reversed | |||
So 'a'~'b' is the same as 'b'R~'a' | 04:31 | ||
retupmoca | I gotcha | ||
04:32
skids left
|
|||
BenGoldberg | Rakudo clearly is doing the wrong thing with 'str' R~~ /regex/; Niecza has it right | 04:33 | |
Rakudo is probably doing the wrong thing with two R, operators in one expression, niecza is probably doing the right thing | |||
But I'm not sure | 04:34 | ||
I would have expected this: | |||
r: say 1 R, 2, 3 R, 4, 5 R, 6, 7 R, 8 | 04:35 | ||
camelia | rakudo e55c66: OUTPUT«2 4 6 8 7 5 3 1» | ||
BenGoldberg | To produce 2, 1, 4, 3, 6, 5, 8, 7 | ||
04:35
fridim_ left
|
|||
BenGoldberg | I think. | 04:35 | |
r: say [*] 1..6 | 04:37 | ||
camelia | rakudo e55c66: OUTPUT«720» | ||
BenGoldberg | r: say [\*] 1..6 | ||
camelia | rakudo e55c66: OUTPUT«1 2 6 24 120 720» | ||
BenGoldberg | r: say [\,] 1..6 | ||
camelia | rakudo e55c66: OUTPUT«1 1 2 1 2 3 1 2 3 4 1 2 3 4 5 1 2 3 4 5 6» | ||
BenGoldberg | r: say [\R,] 1..6 | ||
camelia | rakudo e55c66: OUTPUT«Not enough positional parameters passed; got 1 but expected 2 in block at src/gen/CORE.setting:16364 in block at src/gen/CORE.setting:16467 in any coro at src/gen/CORE.setting:7306 in method reify at src/gen/CORE.setting:7288 in method rei…» | ||
BenGoldberg | n: say [\,] 1..6 | ||
camelia | niecza v24-98-g473bd20: OUTPUT«1 1 2 1 2 3 1 2 3 4 1 2 3 4 5 1 2 3 4 5 6» | ||
BenGoldberg | n: say [\R,] 1..6 | 04:38 | |
camelia | niecza v24-98-g473bd20: OUTPUT«Unhandled exception: No value for parameter 'anon_1' in 'ANON' at /tmp/QH_6u5U1it line 0 (ANON @ 1)  at /home/p6eval/niecza/lib/CORE.setting line 2755 (reduceop @ 12)  at /home/p6eval/niecza/lib/CORE.setting line 2722 (ANON @ 7)  at <un…» | ||
BenGoldberg | n: say [R,] 1..6 | ||
camelia | niecza v24-98-g473bd20: OUTPUT«Unhandled exception: Excess arguments to ANON, used 2 of 6 positionals at /tmp/CNwvzk3k8_ line 0 (ANON @ 1)  at /home/p6eval/niecza/lib/CORE.setting line 2755 (reduceop @ 12)  at /tmp/CNwvzk3k8_ line 1 (mainline @ 3)  at /home/p6eval/ni…» | ||
BenGoldberg | n: say [R,] 1..6 | ||
camelia | niecza v24-98-g473bd20: OUTPUT«Unhandled exception: Excess arguments to ANON, used 2 of 6 positionals at /tmp/tvbTjePqx1 line 0 (ANON @ 1)  at /home/p6eval/niecza/lib/CORE.setting line 2755 (reduceop @ 12)  at /tmp/tvbTjePqx1 line 1 (mainline @ 3)  at /home/p6eval/ni…» | ||
BenGoldberg | r: say [R,] 1..6 | ||
camelia | rakudo e55c66: OUTPUT«Too many positional parameters passed; got 6 but expected 2 in block at src/gen/CORE.setting:16364 in sub at src/gen/CORE.setting:16471 in block at /tmp/keRC6oUVxE:1» | ||
BenGoldberg | r: say [\R,] 1..6 | 04:39 | |
camelia | rakudo e55c66: OUTPUT«Not enough positional parameters passed; got 1 but expected 2 in block at src/gen/CORE.setting:16364 in block at src/gen/CORE.setting:16467 in any coro at src/gen/CORE.setting:7306 in method reify at src/gen/CORE.setting:7288 in method rei…» | ||
BenGoldberg | rn: say [\R~] 1..5 | 04:41 | |
camelia | rakudo e55c66: OUTPUT«1 21 321 4321 54321» | ||
..niecza v24-98-g473bd20: OUTPUT«Unhandled exception: No value for parameter 'anon_1' in 'ANON' at /tmp/oNlzzGzSZH line 0 (ANON @ 1)  at /home/p6eval/niecza/lib/CORE.setting line 2755 (reduceop @ 12)  at /home/p6eval/niecza/lib/CORE.setting line 2722 (ANON @ 7)  at <un…» | |||
BenGoldberg | rn: say [R~] 1..5 | 04:42 | |
camelia | niecza v24-98-g473bd20: OUTPUT«Unhandled exception: Excess arguments to ANON, used 2 of 5 positionals at /tmp/GkRoSYuPZs line 0 (ANON @ 1)  at /home/p6eval/niecza/lib/CORE.setting line 2755 (reduceop @ 12)  at /tmp/GkRoSYuPZs line 1 (mainline @ 3)  at /home/p6eval/ni…» | ||
..rakudo e55c66: OUTPUT«54321» | |||
BenGoldberg | rn: say [~] 1..5 | ||
camelia | rakudo e55c66, niecza v24-98-g473bd20: OUTPUT«12345» | ||
Quom | r: sub f (*@a) { (@a-1||return @a)&&&[,](@a[*/2..*].&f,@a[0..^(*-1)/2].&f) }; .print for f 'Just another Perl hacker'.flip.comb | 04:44 | |
camelia | rakudo e55c66: OUTPUT«Just another Perl hacker» | ||
Quom | ... I *could* have flipped 'Just anoth…', but I like my programs to be self-documenting | 04:47 | |
04:49
Quom is now known as Mouq
04:54
ggoebel12 joined
|
|||
TimToady | Mouq: I suspect that STD handles the extra ws in the action rules somehow | 04:56 | |
04:57
ggoebel11 left
|
|||
Mouq | TimToady: Okay, I'll have NQP/Rakudo do the same an Niecza then | 04:58 | |
TimToady | niecza's behavior looks correct, anyway | 04:59 | |
at least in that case :) | 05:00 | ||
Mouq | It makes sense there, since to do right otherwise is: | ||
n: say 'ab cd' ~~ /:s [$<w>=[\w+]]/ | |||
camelia | niecza v24-98-g473bd20: OUTPUT«「ab」 w => 「ab」» | ||
TimToady | sure, sigspace is supposed to be an "oh, by the way, after you're done, skip to the next token" | 05:02 | |
STD was attaching it mostly to make it easier to write translators back to P6 and to P5, iirc | |||
05:02
LWA joined
|
|||
TimToady | it needs to attach somewhere if you're going to preserve the comments... | 05:03 | |
05:05
BenGoldberg left
|
|||
TimToady | there are, I imagine, a lot of spots where the current parser depends on the old semantics of :s | 05:16 | |
s/current/current rakudo/ | |||
05:29
kaleem joined
05:31
LWA left
05:32
[Sno] joined,
LWA joined
|
|||
moritz | \o | 05:33 | |
TimToady | o/ | 05:40 | |
moritz | chocolate cake for breakfast \o/ | 05:42 | |
Mouq | n: say 'a , a, a ' ~~ /:s $<v>= a* % \, / | 05:43 | |
camelia | niecza v24-98-g473bd20: OUTPUT«「a , a, a 」 v => 「a , a, a」» | ||
Mouq | Uggghhhh do I really have to try converting QRegex to use EXPR to make this work right? | 05:44 | |
moritz | is that what STD and Niecza do? | 05:45 | |
TimToady | that doesn't look right, offhand | 05:46 | |
moritz hopes not | |||
Mouq++ # nqp/stdsigspace | |||
TimToady | that form shouldn't allow whitespace after 'a' and before the comma | 05:47 | |
Mouq | n: say 'a , a, a ' ~~ /:s $<v>= a *% \, / | 05:49 | |
camelia | niecza v24-98-g473bd20: OUTPUT«「a , a, a 」 v => 「a , a, a」» | ||
Mouq | I think it's just ignoring the final whitespace if it's $<var>=binding | 05:50 | |
TimToady | n: say 'a , a, a ' ~~ /:s $<v>= a*% \, / | 05:52 | |
camelia | niecza v24-98-g473bd20: OUTPUT«「a , a, a 」 v => 「a , a, a」» | ||
TimToady | n: say 'a , a, a ' ~~ /:s $<v>= a*%\, / | ||
camelia | niecza v24-98-g473bd20: OUTPUT«「a 」 v => 「a」» | ||
05:53
SamuraiJack joined
|
|||
Mouq | n: say 'a , a, a ' ~~ /:s a*%\, / | 05:53 | |
camelia | niecza v24-98-g473bd20: OUTPUT«「a 」» | ||
TimToady | I think that's the old semantics for ws around % | ||
Mouq | n: say 'a , a, a ' ~~ /:s a*% \, / | ||
camelia | niecza v24-98-g473bd20: OUTPUT«「a , a, a 」» | ||
TimToady | niecza hasn't caught up with that part of it | ||
so don't copy that part :) | 05:54 | ||
in the new semantics, the spaces around % don't matter at all | 05:55 | ||
only the space after the a or the space after the comma | |||
05:56
dayangkun left
|
|||
TimToady | which is why the form a +% ',' is recommended if you want spaces on either side of the comma | 05:56 | |
that is, / a +% ',' / | 05:57 | ||
it's actually a simplification of the old rules to be more consistent | |||
Mouq | consistency++ | 05:59 | |
TimToady | okay, I lied a little | 06:00 | |
if you write / a+ % ',' / then the space before % is significant, and applies after the whole thing matches | |||
'sigfinal' in STD's quantified_atom rule | |||
it just doesn't matter if you write space before the + since that already eats the final ws anyway | 06:01 | ||
06:01
sciurius joined
|
|||
Mouq | std: / )>* / | 06:10 | |
camelia | std a0bcfb1: OUTPUT«ok 00:01 122m» | ||
TimToady | yeah, it oughta catch that as quantifying something that is known to be 0 width | 06:14 | |
I don't remember why those lines are commented out | |||
06:16
denisboyun joined
|
|||
TimToady | though in any case it should perhaps allow it under %, since '' +% ',' make a perverse kind of sense | 06:17 | |
06:18
darutoko joined
|
|||
TimToady | though arguably in that case it's not really '' that it's quantify, but some combination of '' and ',' | 06:19 | |
*fying | |||
06:42
REPLeffect left
06:48
FROGGS left
06:52
araujo joined
|
|||
jnthn | morning, #perl6 | 06:58 | |
06:58
dayangkun joined
|
|||
moritz | \o * | 06:59 | |
frettled | g'morning! | ||
dalek | p/unified-build: dbbd3ac | moritz++ | / (2 files): [Configure] write single Makefile for multiple backends does not work yet properly, because several targets are defined multiple times |
07:07 | |
p/unified-build: a1267ed | moritz++ | tools/build/Makefile- (3 files): [build] untagle build targets you can now write "perl Configure.pl --backends=parrot,jvm" and then "make p-all" and "make j-all", and it will build both nqp-parrot and nqp-jvm (though the launchers might still be confused) |
|||
nqp/unified-build: 617e6d8 | moritz++ | tools/build/Makefile- (3 files): | |||
nqp/unified-build: [build] unify "clean:" handling a bit | |||
07:19
Mouq left
07:31
dmol joined
07:33
Mouq joined
07:38
denisboyun left
07:46
xinming_ joined
07:49
xinming left
07:55
FROGGS joined
08:16
iSlug joined
08:19
LWA left,
donaldh left
08:20
LWA joined
08:21
donaldh joined
08:36
daxim joined
08:49
FOAD left
08:50
FOAD joined
08:51
dakkar joined
08:59
dayangkun left
|
|||
jnthn | arnsholt: I think I figured out the bug. At github.com/perl6/nqp/blob/master/s...e.java#L39 it just clones the delegate if there is one, for efficiency. But in change_type, if there is a delegate, we update only the obj.st = newType.st; but fail to update obj.delegate.st to newType.st so the clone ends up with an out-of-date st | 09:06 | |
arnsholt: The solution is thus presumably to update delegate.st if there is an obj.delegate | |||
arnsholt | That sounds very promising, yeah | 09:07 | |
jnthn | can't try it as at $teaching_gig :) | 09:10 | |
arnsholt | Giving it a whirl now | 09:11 | |
Success! | 09:12 | ||
jnthn++ | 09:13 | ||
jnthn | \o/ | 09:15 | |
arnsholt++ for golfing it to something that led to figuring it out :)_ | |||
bbl | |||
09:16
kurahaupo joined
09:17
dayangkun joined
|
|||
dalek | rlito: 87aa50b | (Flavio S. Glock)++ | / (2 files): Perlito5 - command line - start with no-strict |
09:23 | |
p: a141179 | (Arne Skjærholt)++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/NativeCallOps.java: Add missing break. |
09:27 | ||
p: 90244ee | (Arne Skjærholt)++ | src/vm/jvm/runtime/org/perl6/nqp/sixmodel/reprs/P6Opaque.java: Update the STable of delegates in P6Opaque.change_type. This fixes a bug where cloning a P6Opaque resulted in an object of the wrong type if the opaque had a delegate and was then change_type-d without needing to introduce a new delegate. Thus obj.st != obj.delegate.st. Since P6OpaqueBaseInstance.clone simply clones the delegate if one is present, this resulted in an object of the wrong type under these conditions. |
|||
moritz | does the moarvm backend suffer from the same bug? | 09:30 | |
and do we have a unit test? | |||
09:34
ssutch left
|
|||
arnsholt | My test script can probably be turned into a unit test | 09:34 | |
I don't think Moar's P6Opaque will use delegates though, since it can do C shenanigans similar to what the Parrot implementation does | 09:35 | ||
09:35
iSlug left
|
|||
moritz | ah | 09:35 | |
arnsholt: if you nopaste your test script somewhere, I can look into turning it into a unit test | 09:36 | ||
arnsholt | gist.github.com/arnsholt/7059777 | ||
The crux is that the first mixin introduces a new attribute (which means we need a delegate), but the second one does not | 09:37 | ||
moritz | that's Perl 6 level, right? | ||
arnsholt | Yeah | ||
09:38
iSlug joined
|
|||
arnsholt | The nqp op you'll want to use is nqp::rebless | 09:38 | |
moritz | I'm not sure I'll be able to translate this to nqp :-) | ||
arnsholt | The does magic happens in Rakudo's src/Perl6/Metamodel/Mixins.nqp | 09:39 | |
I think those bits should be more or less applicable to NQP's HOWs as well | 09:40 | ||
moritz | arnsholt: and in the end, &test.name eq 'what we want' should be true, right? | 09:41 | |
arnsholt | No, nqp::can(nqp::clone($obj), 'bar') should return true | 09:42 | |
I'll try to wrangle it into submission as NQP code later today or tonight | 09:43 | ||
09:53
kurahaupo left,
kurahaupo joined
09:54
denisboyun joined
|
|||
dalek | rlito: e1a3c3f | (Flavio S. Glock)++ | / (3 files): Perlito5 - js - goto fix |
10:05 | |
10:07
lue left
10:08
lue joined
10:16
xenoterracide left
10:24
fhelmberger joined
10:55
denisboyun left
10:58
dayangkun left
10:59
pernatiy joined,
iSlug left
11:01
iSlug joined
11:08
kaleem left
|
|||
diakopter | .tell TimToady www.drdobbs.com/mobile/facebook-ado.../240162694 | 11:25 | |
yoleaux | diakopter: I'll pass your message to TimToady. | ||
diakopter | .tell stevan www.infoworld.com/print/228905 | 11:27 | |
yoleaux | diakopter: I'll pass your message to stevan. | ||
diakopter | stevan_: ^ | ||
dalek | rlito: 88e5ab4 | (Flavio S. Glock)++ | / (3 files): Perlito5 - js - cleanup |
11:30 | |
11:54
LWA left
12:07
rindolf joined
|
|||
rindolf | Hi all. | 12:07 | |
12:08
kaleem joined
|
|||
jnthn | moritz, arnsholt: All of Moar, JVM and Parrot implement change_type differently 'cus they all have sufficiently different memory models :) | 12:11 | |
arnsholt | Oh, right. Good to know | ||
jnthn | The Moar one doesn't have the risk the JVM one does 'cus it doesn't store a duplicate st pointer anywhere. | ||
arnsholt | I'll try to make a unit test for this, in case of refactoring or some such | 12:12 | |
jnthn | Yeah | ||
It can go in NQP | |||
Tehre's no does operator | |||
arnsholt | Yeah | ||
jnthn | but .HOW.mixin(...) is there | ||
arnsholt | Oh, that makes it a lot simpler | ||
12:15
pdurbin left
|
|||
jnthn | arnsholt: Does that fix nicely unblock nativecall work? :) | 12:17 | |
arnsholt | It was mostly unblocked by the box_target fix you put in a while back | 12:21 | |
This was an annoying failure in the very first test file | |||
jnthn | *nod* | ||
Good to have it out of the way. | |||
12:22
iSlug left
|
|||
arnsholt | Yeah, definitely | 12:22 | |
jnthn | Hopefully, November brings the JVM Star | 12:23 | |
12:24
grondilu joined
|
|||
jnthn | .oO( In my mind and in my car... ) |
12:24 | |
arnsholt | Once I put in a TODO (the very weird null string bug, if you remember), this means we now have three out of eight Zavolaj test files working | ||
The three easy ones, but still | |||
jnthn | yay :) | ||
I guess arrays and structs next? | 12:25 | ||
arnsholt | Arrays, probably then structs | 12:26 | |
12:26
kaleem left
|
|||
jnthn | CArray will probably be the same pain as VMArray | 12:26 | |
Since the JVM needs you to tell it want kinda memory you're working with for the array | |||
Whereas in C you can just screw | |||
Wonder if it's possible to base CArray off VMArray somehow... | 12:27 | ||
arnsholt | Troo that | ||
CStruct might be easier, although CStruct will probably involve generating classes a la P6Opaque | 12:28 | ||
jnthn | aye, but you can nab the existing code :D | ||
arnsholt | I know =D | ||
jnthn | and you don't have to support mixins... :) | ||
arnsholt | Actually, I might do callbacks first. They look to be reasonably straightforward in JNA \o/ | ||
jnthn | ooh | ||
dalek | volaj: d5fbad0 | (Arne Skjærholt)++ | t/02-simple-args.t: Skip a test on JVM for the time being. |
12:29 | |
volaj: 50bcadd | (Arne Skjærholt)++ | t/03-simple-returns.t: Mark a test as TODO on JVM. |
|||
12:29
mtk joined
|
|||
arnsholt | rj: say Int.REPR | 12:31 | |
camelia | rakudo-jvm e55c66: OUTPUT«java.lang.NoSuchMethodError: org.perl6.rakudo.RakOps.p6reprname(Lorg/perl6/nqp/sixmodel/SixModelObject;Lorg/perl6/nqp/runtime/ThreadContext;)Lorg/perl6/nqp/sixmodel/SixModelObject;» | ||
arnsholt | That's a missing s/p6//, right? | ||
Hmm, no | 12:32 | ||
r: say Int.REPR | |||
camelia | rakudo e55c66: OUTPUT«P6opaque» | 12:33 | |
arnsholt | Heh, it's a NYI I think | 12:34 | |
[Coke] yawns, and heads off to $dayjob | 12:36 | ||
jnthn | wow, a real NYI! | 12:37 | |
I wonder if it's tested... | |||
masak | doubt it. | ||
jnthn | same | 12:39 | |
If there were a fudge-on-JVM test for it I'd probably have been like "om nom LHF" :) | 12:40 | ||
*fudged | |||
.oO( "fadge" ) |
|||
13:03
SamuraiJack left
|
|||
arnsholt | I'll have a look. If there's no test I'll add one | 13:05 | |
13:10
denis_boyun joined
13:15
iSlug joined
13:21
woolfy left,
dmol left
13:24
woolfy joined
13:27
iSlug left
13:31
lowpor03 joined,
iSlug joined
13:35
colomon left
13:37
btyler joined
13:38
colomon joined
13:44
ajr joined,
ajr is now known as Guest95761,
Guest95761 is now known as ajr_
13:46
bluescreen10 joined
13:48
lowpor03 left
|
|||
dalek | rlito: 5b2a060 | (Flavio S. Glock)++ | / (3 files): Perlito5 - js - infrastructure for variable redeclaration |
13:50 | |
13:53
woolfy left,
woolfy1 joined
|
|||
arnsholt | So, Rakudo has a directory t/02-rakudo but there doesn't seem to be any targets that actually run those tests. Wat? | 13:54 | |
13:58
skids joined
14:02
denis_boyun left
|
|||
moritz | I think I noticed that too, once, and then ignored it again | 14:03 | |
14:05
fhelmberger left
14:09
colomon left
14:15
jnap joined,
colomon joined
14:21
sqirrel joined
|
|||
masak | this afternoon, I have wrested some time away from $dayjob to work on t4 reviews. | 14:24 | |
also, I will keep thinking about good macro use cases. | 14:25 | ||
mathw | macros are great if you want a new loop structure that writes 'And we're going round again' to a filehandle every time it loops | 14:28 | |
...I really hope you don't want one of those, though | 14:29 | ||
I've always suspected the best use of macros is for writing really neat libraries and frameworks | |||
that seems to be how they get used in Lisps | |||
14:31
denis_boyun joined
14:32
colomon left
|
|||
masak | aye. | 14:33 | |
arnsholt | jnthn: Any ideas about the AWOL test file in Rakudo? | ||
jnthn | no :) | ||
arnsholt | Right | ||
masak | mathw: at its simplest: APIs package relatively inconvenient computations into relatively convenient names, chunking them and allowing the user to focus on the "what", not the "how". | ||
jnthn | oh...I see it | 14:34 | |
14:34
rindolf left
|
|||
jnthn | I think it's a test for something Rakudo has but is not spec | 14:34 | |
dalek | kudo/nom: e9830d3 | (Arne Skjærholt)++ | src/vm/jvm/runtime/org/perl6/rakudo/RakOps.java: Implement p6reprname op on JVM. |
||
jnthn | Actually that'd be a sane place to put testse like :from<jvm> | ||
masak | mathw: subroutines do that during runtime. macros do that during compile time. | ||
jnthn | Which are not spec but still Rakudo-provided. | ||
We should probably run them as aprt of make test | |||
arnsholt | Yeah =) | ||
jnthn | Also, 00-parrot and 01-sanity could really just merge into 01-sanity :) | 14:35 | |
arnsholt | But .REPR is spec, right? | ||
jnthn | Yes | ||
It is | |||
The p6reprname exists in order to hand back a Perl 6 Str | |||
Maybe we should have a t/jvm and t/parrot for the vm-specific things | |||
Rather than running then skip-alling 09-pir.t on Rakudo JVM | 14:36 | ||
14:38
colomon joined
|
|||
arnsholt | True | 14:38 | |
My test for p6reprname is just making sure Foo.REPR works though | |||
Since in Rakudo .REPR delegates to p6reprname | |||
mathw | masak: quite. I suspect macros might be a little less useful in Perl 6 compared to if, say, C# had them, because Perl 6 has the ability to add methods to classes at runtime etc. | 14:39 | |
masak | mathw: it reduces but does not remove the need for and usefulness of macros. | 14:40 | |
mathw | Oh I'm not about to argue they're unnecessary | ||
People are going to do awesome things with them | |||
Maybe even me | |||
masak | the difference is simply that: BEGIN semantics rather than mainline semantics. | 14:41 | |
all that stuff with ASTs is simply necessary because the two worlds operate with different currencies. | 14:42 | ||
mathw | yeah | ||
14:42
denis_boyun left
|
|||
dalek | p: 92a3962 | (Arne Skjærholt)++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/NativeCallOps.java: Add a missing decont. |
14:44 | |
tadzik | oh, the backlog | 14:48 | |
hello #perl6 | |||
jnthn | tadzik: I'd say hello, but it'd make more backlog :P | ||
tadzik | it's now frontlog :P | ||
masak .oO( it's... NOW fr... no, wait... here it comes... NOW... dang it... ) | 14:50 | ||
tadzik: "Yesterday is history, tomorrow is a mystery. Today? Today is a gift." | 14:51 | ||
tadzik: "That’s why we call it the present." :P | |||
14:52
lizmat left
|
|||
arnsholt | All right, four test files working =D | 14:52 | |
14:52
lizmat joined
|
|||
jnthn | Go arnsholt! | 14:53 | |
arnsholt: Which one did you make pass? :) | 14:54 | ||
14:54
LWA joined
|
|||
tadzik | masak: hm hm, where did I hear that befoer? :) | 14:55 | |
14:56
iSlug left
|
|||
masak | tadzik: Kung Fu Panda. | 14:56 | |
14:57
benabik joined
|
|||
tadzik | hm, never seen that one :) | 14:58 | |
arnsholt | jnthn: 04-pointers | ||
14:58
araujo left
|
|||
arnsholt | All that was blocking it was Foo.REPR, so it was really easy as well | 14:59 | |
14:59
araujo joined,
kurahaupo left
15:00
kurahaupo joined
|
|||
arnsholt | The deps in the test files mean that callbacks block on structs, and the refresh things block on both arrays and structs | 15:00 | |
15:06
colomon left
15:10
kurahaupo_ joined,
kurahaupo left
15:11
kurahaupo joined,
kurahaupo_ left
15:16
kurahaupo_ joined,
kurahaupo left
15:19
robinsmidsrod left,
colomon joined
15:20
robinsmidsrod joined
15:23
[Sno] left
|
|||
jnthn | arnsholt: Well, I suspect module usage wise, arrays and structs are most depended on by e.g. MiniDBI | 15:23 | |
grondilu | rn: say join ",", ([^3], [<foo bar>])»[] | 15:24 | |
camelia | rakudo e9830d, niecza v24-98-g473bd20: OUTPUT«0 1 2,foo bar» | ||
grondilu was expecting 0,1,2,foo,bar | |||
rn: say join ",", ([^3], [<foo bar>])».list | |||
camelia | rakudo e9830d, niecza v24-98-g473bd20: OUTPUT«0 1 2,foo bar» | ||
grondilu | * | 15:25 | |
15:27
kurahaupo_ left
15:28
risou_awy is now known as risou
|
|||
jnthn | decommute | 15:28 | |
15:30
dansamo joined
15:32
kurahaupo joined
|
|||
TimToady | quick, rewrite Moar in D :P | 15:33 | |
yoleaux | 11:25Z <diakopter> TimToady: www.drdobbs.com/mobile/facebook-ado.../240162694 | ||
15:34
lowpor03 joined
|
|||
arnsholt | jnthn: Oh, definitely. It's just that callbacks could've been an easy win | 15:34 | |
But if the tests depend on structs anyways, implementing it is a bit useless, since I won't know if it works properly | 15:35 | ||
15:35
dayangkun joined
15:36
FROGGS left
15:42
REPLeffect joined,
ajr_ left,
ajr joined,
[particle] joined
15:43
ajr is now known as Guest56510
|
|||
arnsholt | "@SuppressWarnings("unchecked") // Because Java implemented generics stupidly" =D | 15:43 | |
15:43
denis_boyun joined
|
|||
masak | they chose a certain kind of forwards compatibility (as in "do not break the world") rather than a really clean implementation. | 15:45 | |
it was a tradeoff, and one which probably couldn't have done much differently. | |||
but it did mean Java got the crappy generics, and C# got the nice ones. | 15:46 | ||
arnsholt | Definitely. They went the way they did for perfectly legitimate reasons | 15:47 | |
But yeah, still means Java generics are a bit annoying | 15:48 | ||
masak .oO( we call it "erasure", which is a technical term meaning "it sucks" ) | 15:49 | ||
15:54
vky joined
|
|||
cognominal | en.wikipedia.org/wiki/Type_inference "[type inference] is also planned for Perl 6". WTF? | 16:00 | |
Is TimToady hiding stuff from us in plain sight? | 16:01 | ||
dalek | p/unified-build: 8f7df78 | moritz++ | tools/build/Makefile- (3 files): rename some more Makefile targets |
16:02 | |
p/unified-build: e6580ee | moritz++ | Configure.pl: [build] write targets like "all:" that delegate to p-all, j-all etc. (whatever is available) |
|||
p/unified-build: c72977b | moritz++ | / (7 files): [build] untangle the runners |
|||
moritz | you can now do | ||
16:03
FROGGS joined
|
|||
moritz | perl Configure.pl --backends=parrot,jvm | 16:03 | |
colomon | moritz++ | ||
flussence_ | \o/ | ||
moritz | and then run 'make j-test' and 'make p-test' | ||
dunno why 'make test' only runs j-test | |||
16:03
benabik left,
daxim left,
Guest56510 is now known as ajr_
|
|||
flussence_ | do things like "--parrot-make-option" still work with that? | 16:04 | |
moritz | haven't tested it, but should still work, yes | ||
arnsholt | Cool! | ||
Are things installed to separate locations as well? | |||
flussence_ | well then, guess I'll be the tester for that... | 16:05 | |
16:05
flussence_ is now known as flussence
|
|||
FROGGS | moritz: how far is it? I am thinking about waiting for yours to finish, before I introduce weird stuff for rakudo's Makefile-Moar.in and ConfigureMoar.pl | 16:07 | |
16:07
benabik joined
|
|||
moritz | FROGGS: pretty far along | 16:07 | |
FROGGS: worth doing stuff in the branch | |||
(and there's no ConfigureMoar.pl anymore in that branch :-) | |||
FROGGS | yeah... | 16:08 | |
16:08
lowpor03 left
16:15
alester joined
|
|||
TimToady | type inference isn't exactly planned; I see it more as inevitable from the pressure to optimize gradually typed code | 16:28 | |
colomon | you're planning on it being inevitable? ;) | 16:30 | |
cognominal | ok, good to know | 16:33 | |
16:35
SamuraiJack joined
16:38
vky left,
pernatiy left
16:42
dmol joined
|
|||
jnthn back | 16:45 | ||
16:45
vky joined
16:47
kurahaupo_ joined,
kurahaupo left
16:48
LWA left
|
|||
arnsholt | jnthn: Thought of the moment: A circular list of CStructs is all going to end in tears, isn't it? | 16:49 | |
16:49
kurahaupo_ left,
fhelmberger joined,
kurahaupo joined
|
|||
TimToady | or it will never end | 16:49 | |
arnsholt | Yeah. A neverending stream of tears | 16:50 | |
jnthn | arnsholt: Why, ooc? :) | ||
jnthn doesn't immediately see a reason why it has to :) | 16:51 | ||
arnsholt | It'll do an infinite pointer chase | ||
jnthn | Where, exactly? | ||
arnsholt | Oh, right. The Parrot implementation actually won't | ||
Been too long since I worked on that part of the code | 16:52 | ||
TimToady | it will not only never end, it will never start, I guess :) | ||
jnthn | Sometimes, our past selves were smarter than we realized ;) | ||
arnsholt | Indeed | ||
TimToady | and sometimes our present selves are stupider than we had hoped :) | 16:53 | |
arnsholt | Very, very true | ||
jnthn | Indeed :) | ||
TimToady | .oO(Do not look a present horse in the mouth.) |
||
.oO(Do not look a past horse in the mouth either, since its mouth will be on the other end.) |
16:54 | ||
jnthn | .oO( "All these people looking in my mouth are making me horse" ) |
16:55 | |
16:56
LWA joined
17:06
salv0 left,
dakkar left
17:07
jnap left
17:08
iSlug joined
17:09
bruges left
17:12
[Sno] joined
17:17
BenGoldberg joined,
ssutch joined,
kurahaupo left,
kurahaupo_ joined
|
|||
BenGoldberg | rn: say 'abcd' ~~ /(\w\w)(\w\w)/ | 17:19 | |
camelia | rakudo e9830d, niecza v24-98-g473bd20: OUTPUT«「abcd」 0 => 「ab」 1 => 「cd」» | ||
BenGoldberg | rn: say /(\w\w)(\w\w)/ R~~ 'abcd' | 17:20 | |
camelia | rakudo e9830d: OUTPUT«True» | ||
..niecza v24-98-g473bd20: OUTPUT«「abcd」 0 => 「ab」 1 => 「cd」» | |||
BenGoldberg | rn: say [~] 1..5 | 17:21 | |
camelia | rakudo e9830d, niecza v24-98-g473bd20: OUTPUT«12345» | ||
BenGoldberg | rn: say [R~] 1..5 | ||
camelia | niecza v24-98-g473bd20: OUTPUT«Unhandled exception: Excess arguments to ANON, used 2 of 5 positionals at /tmp/D1ZhvOgN0U line 0 (ANON @ 1)  at /home/p6eval/niecza/lib/CORE.setting line 2755 (reduceop @ 12)  at /tmp/D1ZhvOgN0U line 1 (mainline @ 3)  at /home/p6eval/ni…» | 17:22 | |
..rakudo e9830d: OUTPUT«54321» | |||
TimToady | one rakudobug, one nieczabug, seems to me | ||
dalek | Heuristic branch merge: pushed 24 commits to nqp/unified-build by moritz | 17:23 | |
TimToady | the nieczabug seems to be in not handling a list-associative reversal correctly | 17:25 | |
dalek | p/unified-build: 283d36c | moritz++ | Configure.pl: "install" target |
||
TimToady | so I'd predict that other list-associative operators would also fail | ||
rn: say [R^] 1..5 | 17:28 | ||
camelia | niecza v24-98-g473bd20: OUTPUT«Unhandled exception: Excess arguments to ANON, used 2 of 5 positionals at /tmp/JtJV3IGxK_ line 0 (ANON @ 1)  at /home/p6eval/niecza/lib/CORE.setting line 2755 (reduceop @ 12)  at /tmp/JtJV3IGxK_ line 1 (mainline @ 3)  at /home/p6eval/ni…» | ||
..rakudo e9830d: OUTPUT«Too many positional parameters passed; got 5 but expected 2 in block at src/gen/CORE.setting:16364 in sub at src/gen/CORE.setting:16471 in block at /tmp/D36m3YJ3Sy:1» | |||
TimToady | ooh, same failure in rakudo now :) | ||
(not that reversing a commutative operator makes any sense, but still) | 17:29 | ||
colomon | so list-associative Rop should reverse the list of arguments before sending to op? | ||
rn: say [R+] 1 | 17:30 | ||
camelia | niecza v24-98-g473bd20: OUTPUT«1» | ||
..rakudo e9830d: OUTPUT«Not enough positional parameters passed; got 1 but expected 2 in block at src/gen/CORE.setting:16364 in sub at src/gen/CORE.setting:16419 in block at /tmp/828WyxkFwF:1» | |||
colomon | well, this certainly is a rich vein of bugs | ||
17:31
ajr_ left
|
|||
TimToady | reversing the entire list would seem to be the most straightforward thing to do | 17:33 | |
colomon | you mean transforming [Rop] list to [op] list.reverse ? | 17:35 | |
what is $a R~ $b R~ $c supposed to do? | |||
TimToady | probably the same thing | 17:36 | |
flussence | moritz: gave it a try, I can get a working rakudo-parrot with no trouble, but it seems to get really confused with the jvm bits (installs them to the parrot folders) | ||
17:39
kurahaupo joined,
kurahaupo_ left
|
|||
colomon | TimToady: so we need a rule saying that if op is list-associative, Rop generates a new operator which is also list-associative, takes a list, reverses it, and passes it to op? | 17:40 | |
colomon wonders if this is in roast somewhere. | |||
TimToady guesses not | |||
17:40
grondilu left
|
|||
colomon has discovered that a $work bug he fixed a week ago has somehow mutated into a brand new bug. :( | 17:41 | ||
TimToady | doesn't look like roast has such a test, offhand | 17:43 | |
it tests that R is transparent to precedence, but doesn't seem to test that it is also transparent to associativity | 17:44 | ||
I note that the list reversal semantics are not just simpler, but consistent with the decision that mixed list associations must use the same operator consistently, or be parenthesized | 17:45 | ||
std: 1 R, 2 , 3 | 17:46 | ||
camelia | std a0bcfb1: OUTPUT«===SORRY!==="R" and "," are non-associative and require parens at /tmp/PD4G3MHiRu line 1:------> 1 R, 2 , ⏏3Check failedFAILED 00:01 122m» | ||
TimToady | hmm, should say R, there, but still | ||
std: 1 R| 2 R& 3 | 17:47 | ||
camelia | std a0bcfb1: OUTPUT«ok 00:01 122m» | ||
TimToady | is fine because of precedence | ||
std: 1 R| 2 R^ 3 | |||
camelia | std a0bcfb1: OUTPUT«ok 00:01 122m» | ||
TimToady | hmm, that should've faile, I think | 17:48 | |
*ed | |||
std: 1 | 2 ^ 3 | |||
camelia | std a0bcfb1: OUTPUT«===SORRY!==="|" and "^" are non-associative and require parens at /tmp/sj4c2F0cVB line 1:------> 1 | 2 ^ ⏏3Check failedFAILED 00:01 122m» | ||
TimToady | stdbug in R transparency too | 17:49 | |
probably sees both operators as "R" and says "That's fine then." | |||
17:50
denis_boyun left
|
|||
GlitchMr | std: 1, 2, 3 R= my @array | 17:51 | |
TimToady | std: 1 X| 2 X^ 3 | ||
camelia | std a0bcfb1: OUTPUT«===SORRY!===Cannot reverse the args of = because list assignment operators are too fiddly at /tmp/Pt4qwqyOUb line 1:------> 1, 2, 3 R=⏏ my @arrayCheck failedFAILED 00:01 125m» | ||
std a0bcfb1: OUTPUT«===SORRY!==="X|" and "X^" are non-associative and require parens at /tmp/8ehCWp4Lht line 1:------> 1 X| 2 X^ ⏏3Check failedFAILED 00:01 122m» | |||
TimToady | so R is wrong but not X, hmm | ||
18:00
stevan_ left
18:05
iSlug left,
dansamo left
18:08
ajr joined
18:09
ajr is now known as Guest1017,
Guest1017 is now known as ajr_
|
|||
dalek | d: 082981d | larry++ | STD.pm6: R and S metaops should include subop in $<sym> |
18:09 | |
kudo/unified-build: 54ffc91 | moritz++ | tools/build/Makefile-Parrot.in: [parrot] use nqp-p instead of nqp |
|||
18:11
kaare_ joined
18:15
SamuraiJack left
18:16
xinming_ left
18:17
kurahaupo left
18:18
stevan_ joined
18:19
spider-mario joined
|
|||
masak | a really nice introduction to Haskell: yannesposito.com/Scratch/en/blog/Ha...-Hard-Way/ | 18:23 | |
18:23
xinming joined
|
|||
TimToady | quick, rewrite Moar in Haskell! | 18:24 | |
diakopter | *grunt* | 18:25 | |
masak | TimToady: tsk, don't be so impatient. the goal is still to make Perl 6 slang the rest of the world. :) | ||
diakopter | eh | 18:27 | |
18:31
pecastro left
18:32
pecastro joined
|
|||
dalek | p/unified-build: 485d998 | moritz++ | tools/build/install-jvm-runner.pl: install nqp on JVM as nqp-j |
18:34 | |
masak | I think Parrot captured people's imaginations because it had ambitious goals. | 18:35 | |
it's important to have ambitious goals. among other things. | 18:36 | ||
18:36
fhelmberger left
|
|||
diakopter | "Let's go to the moon" is ambitious. | 18:36 | |
"Let's build a Dyson sphere" is something else | 18:37 | ||
masak | diakopter: you have a point, and I believe I see it. | ||
diakopter: just because you can use SQL as a slang of Perl 6 doesn't mean SQL outside of Perl 6 ceases to exist, or ceases to be important. | 18:38 | ||
but having language X be a slang of Perl 6, for various values of X, is still quite cool. | |||
FROGGS | +1 to build a dyson sphere | 18:39 | |
18:40
sorear left
|
|||
masak | :) | 18:40 | |
diakopter++ is right. it would be something else ;) | |||
diakopter | "we would be the envy of all the solar systems." "but we'd be so cool.. they couldn't see us" | 18:41 | |
moritz | a whole new realm of awesome | ||
18:42
spider-mario left
|
|||
masak .oO( Schrödinger's Earth ) | 18:42 | ||
arnsholt | "we'd be so cool they couldn't see us" *groan* | ||
18:42
spider-mario joined
|
|||
moritz | ~/p6/rakudo>find install/ -name nqp.jar | 18:42 | |
install/lib/parrot/5.9.0-devel/languages/nqp/lib/nqp.jar | |||
oops. | |||
masak | arnsholt: maybe all the unaccounted-for "dark matter" is made of Dyson spheres. | ||
18:43
sorear joined
|
|||
diakopter | I try to register languagex.com on godaddy. it suggests Lang-U-Ag-Ex.com instead. -_- | 18:43 | |
oh, also Language-You-Ag-Ex.net how helpful. | 18:44 | ||
18:44
darutoko left
|
|||
moritz | wow, I've managed to break installed nqp-p AND installed nqp-j | 18:45 | |
arnsholt | masak: OMG, that's genius! =D | 18:49 | |
diakopter | r: constant f'f'f'f'f'f'f'f'f'f'f'f'f'f'f'f = 4; | ||
camelia | ( no output ) | ||
GlitchMr | r: constant identifiers-are-nice-aren't-they = 42; say identifiers-are-nice-aren't-they | 18:50 | |
camelia | rakudo e9830d: OUTPUT«42» | ||
18:51
FROGGS left
|
|||
dalek | p/unified-build: 66eb272 | moritz++ | tools/build/Makefile-Parrot.in: Parrot's NQP_LANG_DIR is different from the others |
18:53 | |
moritz | ... and that fixes the nqp-j failure | ||
nqp-p still b0rked | |||
18:53
FROGGS joined
18:54
bluescreen10 left,
denis_boyun joined
|
|||
arnsholt | jnthn: When making nqp::consts out of the TYPE_CHECK constants, we don't want to include the _MASK one, right? | 18:56 | |
18:57
bluescreen10 joined,
spider-mario left
|
|||
dalek | kudo/unified-build: 5df1482 | moritz++ | ConfigureJVM.pl: [JVM] use "install" prefix, and nqp-j |
18:58 | |
18:58
spider-mario joined
19:01
denis_boyun left
|
|||
dalek | kudo/unified-build: 07e119e | moritz++ | tools/build/Makefile- (2 files): avoid variable name collisions |
19:02 | |
kudo/unified-build: 9fbb4e7 | moritz++ | Configure.pl: [parrot] use nqp-p, really. |
19:04 | ||
19:04
woolfy1 left
|
|||
arnsholt | moritz: You're a hero for doing the config reunification work, BTW | 19:05 | |
moritz | :-) | 19:07 | |
19:07
woolfy joined
|
|||
FROGGS | absolutely | 19:08 | |
it is not the funniest job, but an awesome one :o) | |||
(awesome for us) | 19:09 | ||
diakopter | moritz++ | ||
19:10
risou is now known as risou_awy
|
|||
arnsholt | moritz++ indeed | 19:10 | |
moritz | can anybody please test the nqp build + make test on windows? | 19:12 | |
(with parrot backend, mostly) | |||
dalek | kudo/unified-build: 3deeff2 | moritz++ | tools/build/Makefile- (2 files): [build] shuffle around stuff from the Makefiles a bit |
||
kudo/unified-build: 2b18010 | moritz++ | tools/build/Makefile- (2 files): [build] avoid collision of HARNESS_WITH_FUDGE |
19:14 | ||
moritz | fwiw I've decided not to install an 'nqp' binary for now | 19:16 | |
diakopter | ++ | ||
moritz | nqp is low-level enough that we can force people to use nqp-j or nqp-p | ||
can't do that with rakudo/perl6 though :-) | |||
19:17
Rotwang joined
|
|||
arnsholt | Yeah | 19:17 | |
But being able to have both JVM and Parrot NQP side by side without doing the recompile dance all the time is going to be useful, I think | |||
dalek | p/unified-build: 7297c44 | moritz++ | tools/build/Makefile-Parrot.in: get rid of "nqp" executable it did not work, and we can force people to use nqp-j or nqp-p |
19:19 | |
FROGGS | /o\ | 19:20 | |
arnsholt | I can definitely live with that! =) | 19:23 | |
19:26
Rotwang left
|
|||
lue | hello world o/ | 19:34 | |
dalek | kudo/unified-build: a135bc6 | moritz++ | tools/lib/NQP/Configure.pm: (mostly) import NQP::Configure from nqp |
||
19:36
benabik left
|
|||
jnthn | arnsholt: Right, not the mask. | 19:37 | |
moritz | I have some trouble figuring out how the options to rakudo's Configure.pl should look like | ||
19:38
vky left
|
|||
moritz | probably --backends=parrot,jvm and optionally --prefix= | 19:38 | |
and if only prefix is present, look into the prefix which backends are available | 19:39 | ||
and --with-nqp goes | |||
away | |||
'cause there's not just one nqp, and it always looks in --prefix | 19:40 | ||
does that sound sensible? | |||
lue | jnthn: have you seen this from a while ago? gist.github.com/lue/7078598 | ||
19:41
dmol left,
sizz left
19:42
sizz joined
|
|||
jnthn | lue: Hm, I'd have to look at it in context but not sure why to remove it? :) | 19:42 | |
lue | because the next line is | <.unv>? $$ <.ws> <?MARKER('endstmt')>, and <.unv> contains \h+ as an alternative, and [\h+]? is equivalent to \h* | 19:44 | |
19:44
Rotwang joined
|
|||
lue | jnthn: discussion last night on the subject starts here: irclog.perlgeek.de/perl6/2013-10-21#i_7740763 | 19:45 | |
jnthn | lue: Looks like you're correct | 19:46 | |
And that we get rid of an alternation | |||
lue | git blame says you added unv's contents and ENDSTMT in 2011, so I'm guessing there was some speed/comment advantage for the \h* line at the time? | 19:47 | |
s/comment/correctness/ | 19:48 | ||
jnthn | Very possible speed | ||
If it was pre-LTM for example... | 19:49 | ||
Now, the tran-LTMer will happily look into the unv | |||
lue | As my gist shows, there appears to be a modest improvement of a few seconds running the test w/o the line, but I have no clue what the margin of error is :) | 19:50 | |
jnthn | Yeah. But it's no worse, and it's a simplification :) | 19:51 | |
19:51
bluescreen10 left
|
|||
jnthn | Removing unrequired code is always a nice thing if it's not helping performance. | 19:51 | |
moritz | lue: do it 5 times or more, and calculate the standard deviation | ||
jnthn | And I don't see how this case could be these days | ||
lue | jnthn: the only caveat I see is if all the following occur: 1) unv loses its \h+ alternative 2) ENDSTMT still needs an effectively \h* alternative. Since neither rule has been touched in about two years, I doubt this will occur. | 19:52 | |
jnthn | aye | 19:53 | |
lue | moritz: will do, just have to update NQP if needed first. | ||
lue will enjoy the mathing to come :) | |||
BenGoldberg | r: say <Hacker> R, <Just>, <R,> R, <Another> | 19:55 | |
camelia | rakudo e9830d: OUTPUT«Just Another R, Hacker» | ||
masak | :P | ||
colomon | that's wrong, isn't it? | 19:59 | |
colomon is not sure how much of the discussion from a couple of hours ago people have read. :) | |||
moritz is sure he hasn't read enough of the discussion above to comment | 20:00 | ||
lue personally has never found himself needing R :/ | |||
colomon | …. actually, is infix:<,> list-associative? | ||
20:00
MrMeek-afk left
|
|||
moritz | lue: that doesn't preclude you from being a valuable member of society | 20:01 | |
colomon: it is | |||
lue | :) | ||
moritz | if not infix:<,>, what is? :-) | ||
lue | (it does mean my opinions would lean towards "R seems kinda useless, don't it? Let's get rid of it!") | ||
colomon | n: say <Hacker> R, <Just>, <R,> R, <Another> | 20:02 | |
camelia | niecza v24-98-g473bd20: OUTPUT«===SORRY!==="R" and "," are non-associative and require parens at /tmp/aDysg8M_4Z line 1:------> say <Hacker> R, <Just>, ⏏<R,> R, <Another>"," and "R," are non-associative and require parens at /tmp…» | ||
colomon | so yes, wrong. :) | ||
std: say <Hacker> R, <Just>, <R,> R, <Another> | |||
camelia | std 082981d: OUTPUT«===SORRY!==="R," and "," are non-associative and require parens at /tmp/B7gfb0JVEY line 1:------> say <Hacker> R, <Just>, ⏏<R,> R, <Another>"," and "R," are non-associative and require parens at /tmp/B7gfb0JVEY line…» | ||
colomon | TimToady++ # improved the error message on std today | ||
BenGoldberg | rn: my $a = "bar"; $a [R~]= "foo"; say $a | 20:03 | |
camelia | niecza v24-98-g473bd20: OUTPUT«foobar» | ||
..rakudo e9830d: OUTPUT«===SORRY!=== Error while compiling /tmp/FupIduYeNTPreceding context expects a term, but found infix = insteadat /tmp/FupIduYeNT:1------> my $a = "bar"; $a [R~]=⏏ "foo"; say $a» | |||
BenGoldberg | r: say [\**] 1..4 | 20:06 | |
camelia | rakudo e9830d: OUTPUT«4 81 2417851639229258349412352 1» | ||
masak | lue: I know of one good use of R | 20:07 | |
BenGoldberg | ? | ||
masak | lue: when the operands come in an already-fixed order, and you need, let's say, "reverse minus". | ||
lue: I've seen it once in a nice RPN calculator pmichaud++ wrote. | |||
lue: the operands come in a fixed order because they are on the stack. the use of R- (and R/) was very beautiful. | 20:08 | ||
lue | .oO(uh, that, uh, doesn't count, 'cos it, uh, has "Reverse" in the name! RPN was clearly designed as pro-R propaganda!) |
||
masak: Somehow I'm not surprised RPN would make use of R. It is a very valid use I must say. :) | 20:09 | ||
BenGoldberg | RPN is where you would write "3 * 4 + 5" as "5 3 4 * +", yes? | ||
20:09
kaare_ left
|
|||
BenGoldberg | Or is it the other way around? | 20:09 | |
geekosaur | first one is correct | 20:10 | |
stack-based | |||
20:11
xenoterracide joined
|
|||
lue | moritz: I'm guessing I want to use sample σ, not population σ, right? | 20:12 | |
20:17
LWA left
20:18
LWA joined
20:19
FROGGS left
20:22
FROGGS joined
|
|||
dalek | p: 3b9cb86 | (Arne Skjærholt)++ | src/vm/ (2 files): Add nqp::consts for the TYPE_CHECK_* family of constants. This closes #126. |
20:32 | |
arnsholt | lue: In pretty much all contexts where you're doing descriptive stats, you want to divide by n-1 rather than n, I think | 20:33 | |
lue | so sample σ then :) (that's what I thought, considering it's a handful of timings from an indefinite population of them) | 20:34 | |
arnsholt | Also, note that some distributions are perverse and don't have well defined means or deviations | ||
If the chances of getting big outliers is there, you might be better served by something like the median and interquartile range | 20:35 | ||
lue | It seems to be all within a small range, so I don't think there's much a chance for outliers (excepting lag on my computer's part, but I'd be suspicious of those numbers anyway) | 20:37 | |
arnsholt | Good, good | ||
I've been doing quite a bit of this recently, so it's a chance to geek out a bit | |||
20:39
BenGoldberg left
20:40
grondilu joined
|
|||
lue | :) | 20:42 | |
TimToady would like to point out for the record that a Dyson sphere that is cool enough to make dark matter out of would have to have some way of redirecting all the energy output of their star to some sink other than the universe at large. Just sayin'... | 20:46 | ||
geekosaur | Dyson's original assumption was that the point was to capture and use all the solar power output | 20:47 | |
20:47
aindilis joined
|
|||
TimToady | thermodynamically speaking, you can't | 20:48 | |
you have to radiate heat | |||
geekosaur | yes, but the radiated heat is difficult to detect over interstellar distances | ||
(although, see recent discovery of free-floating planets by their heat signatures) | |||
TimToady | even if it's in the far microwave region, it'd be a huge bump on CMB if there were enough of them to account for dark matter | 20:49 | |
free-floaters don't have to radiate the energy output of a star | |||
at we still can detect them by their IR siggie | |||
20:50
Rotwang left
|
|||
TimToady | dark matter doesn't seem to radiate *at all* | 20:50 | |
that we can detect | |||
20:56
sqirrel left
|
|||
TimToady | I'd much sooner believe that the Dyson spheres have found a way to sink the flow into dark energy, and that's why the universe is now accellerating, because there are too many Dyson spheres :) | 20:56 | |
grondilu | redirecting the light of a star to some kind of a sink? Easy, make a kugleblitz: en.wikipedia.org/wiki/Kugelblitz_(astrophysics) | 20:58 | |
20:59
dmol joined
21:04
dayangkun left
21:06
REPLeffect left
21:10
skids left
21:13
spider-mario left
21:15
nebuchadnezzar left
21:17
dayangkun joined
21:19
REPLeffect joined
21:20
nebuchadnezzar joined
21:21
stevan_ left,
denisboyun joined
21:24
denisboyun left,
fhelmberger joined
21:25
fhelmberger left
|
|||
lue | What's funny is that I'm looking at some of the skip reasons in the NQP tests during make test and thinking "I wonder if I couldn't do something about that" :) | 21:31 | |
21:42
ajr_ left
21:43
vky joined
21:45
stevan_ joined
21:49
araujo left
21:50
araujo joined
|
|||
dalek | p/stdsigspace: e31c208 | Mouq++ | src/QRegex/P6Regex/ (2 files): Don't grab sigspace after $<var> = binding |
21:53 | |
p/stdsigspace: 1203912 | Mouq++ | src/QRegex/P6Regex/Grammar.nqp: Remove hard-to-reach debugging lines |
21:55 | ||
22:03
FROGGS left
22:07
iSlug joined
22:12
iSlug left
|
|||
lue | jnthn: when the hll/ tests say "design changes, needs re-work", is that the tests needing fixing or the feature? (I'm assuming tests) | 22:20 | |
22:36
BenGoldberg joined
|
|||
lue | hey, I got some times: gist.github.com/lue/7078598 (result is that the removal causes no significant speed improvement, but since there's no epic slowdown or regression, I think it's safe to push. Stop me if I'm wrong.) | 22:39 | |
22:52
LWA left,
LWA joined
|
|||
Mouq | n: say "abc = 123" ~~ /:s $<key>=\w+ \= $<val>=\S+ / | 22:52 | |
camelia | niecza v24-98-g473bd20: OUTPUT«「abc = 123」 key => 「abc」 val => 「123」» | ||
Mouq | k | 22:53 | |
23:01
LWA left
|
|||
lue | wha? I don't have push rights to NQP‽ | 23:03 | |
23:04
LWA joined
|
|||
Mouq | lue: Yeah, that's a separate bit IIRC | 23:05 | |
lue has pull & push rights to every other perl6 repo, so idk... | |||
Mouq | Yeah | ||
lue | :( .oO(Which complaint dept. do I yell at?) | 23:07 | |
Mouq | I don't think I can give you a commit bit, and even if I could, that wouldn't really be my place | ||
23:07
vky left
|
|||
lue | .tell jnthn I haz change to nqp, but I no haz push bit. halp? :) [the specific change is the removal of the "redundant \h* line" from earlier] | 23:10 | |
yoleaux | lue: I'll pass your message to jnthn. | ||
23:20
gshank left,
gshank joined
23:57
dmol left
|
|||
Mouq | n: say "abc, efg = 123" ~~ /:s $<key>=\w+ % \, \= $<val>=\S+ / | 23:58 | |
camelia | niecza v24-98-g473bd20: OUTPUT«Nil» | ||
Mouq | n: say "abc, efg = 123" ~~ /:s $<key>=\w+ % [\, ] \= $<val>=\S+ / | ||
camelia | niecza v24-98-g473bd20: OUTPUT«Nil» | ||
Mouq | n: say "abc, efg = 123" ~~ /:s $<key>=\w +% \, \= $<val>=\S+ / | ||
camelia | niecza v24-98-g473bd20: OUTPUT«Nil» | ||
Mouq | n: say "abc, efg = 123" ~~ /:s $<key>=[\w+] +% \, \= $<val>=\S+ / | 23:59 | |
camelia | niecza v24-98-g473bd20: OUTPUT«「abc, efg = 123」 key => 「abc, efg」 val => 「123」» | ||
Mouq | n: say "abc, efg = 123" ~~ /:s $<key>=[\w+]+ % \, \= $<val>=\S+ / | ||
camelia | niecza v24-98-g473bd20: OUTPUT«「abc, efg = 123」 key => 「abc, efg」 val => 「123」» | ||
Mouq | n: say "abc, efg = 123" ~~ /:s $<key>=[\w+]+% \, \= $<val>=\S+ / | ||
camelia | niecza v24-98-g473bd20: OUTPUT«「abc, efg = 123」 key => 「abc, efg」 val => 「123」» | ||
Mouq | Cool |