|
01:47
ilbot3 joined
03:27
MadcapJake_ joined
06:18
RabidGravy joined
|
|||
| [Tux] | test 22.632 | 06:43 | |
| test-t 12.666 | |||
| csv-parser 25.445 | 06:44 | ||
| RabidGravy | creeping down again | 06:58 | |
| [Tux] | yesterday was better | ||
| test-t 12.120 | |||
|
08:22
|Tux| joined
|
|||
| dalek | kudo/nom: 41abcd1 | lizmat++ | tools/build/makeMAGIC_INC_DEC.pl6: Hopefully last work on magic string generator |
11:43 | |
| kudo/nom: b808816 | lizmat++ | src/core/Rakudo/Internals.pm: Reimplement magic increment/decrement in Internals This serves a number of purposes: - abstract the magic inc/dec logic into generally accessible library methods this should allow us to fix the "z" .. "ab" issue - create a fast-path for most common increments (up to 3.5x as fast) - uses generated string tables, easily maintainable for future unicode features - abstracted the "." logic out of the magic inc/dec 9c02f65 | lizmat++ | src/core/Rakudo/Internals.pm: Make magic inc/dec match spec wrt to "." |
|||
| lizmat | this was: github.com/rakudo/rakudo/commit/b8...cc5d6a3995 | 11:44 | |
| followed by github.com/rakudo/rakudo/commit/53...9b69afb84b | |||
| timotimo | oooh, 3.5x as fast | 11:46 | |
| that's pretty lovely | |||
| z0ff9x.c0m! | |||
| lizmat | i would posit that the magic increment "." feature should only be applicable to IO::Path, *not* to Str | 11:48 | |
| jnthn | lizmat: From discussion with TimToady a little back, it stays on Str too. | ||
| lizmat | m: say "foo.bar".succ # feels like a WAT to me | ||
| camelia | rakudo-moar ae3a79: OUTPUTĀ«fop.barā¤Ā» | ||
| jnthn | Every DWIM can be see as a WAT :) | ||
| timotimo | m: say "192.168.0.1".succ | ||
| camelia | rakudo-moar ae3a79: OUTPUTĀ«193.168.0.1ā¤Ā» | ||
| timotimo | ^- THAT is a WAT :P | ||
| but if you're using a string for an ipv4 address in the first place, you may be on the way for more trouble | 11:49 | ||
| lizmat | $ 6 'say "192.168.0.1".succ' | ||
| 192.168.1.1 | |||
| timotimo | hah | ||
| lizmat | seems I fixed that now ? | ||
| :-) | |||
| timotimo | are you sure? :) | ||
| lizmat | $ 6 'say "192.168.99.1".succ' | 11:50 | |
| 192.168.100.1 | |||
| timotimo | well, i have no clue how the feature is described in the specs and the documentation | ||
| the behavior we have on camelia right now is what you want when you have for example a .tar.gz file | |||
| m: say "foo01.tar.gz".succ | |||
| camelia | rakudo-moar ae3a79: OUTPUTĀ«foo02.tar.gzā¤Ā» | ||
| timotimo | i expect your local output would be foo01.tas.gz? | ||
| lizmat | aha... yes | 11:51 | |
| hmmm... and that is *not* caught by the spectest :-( | |||
| timotimo | we probably want to keep the "left of the first dot" behavior | ||
| and add spec tests :) | |||
| lizmat | fortunately, it's a 1 char fix | 11:52 | |
| timotimo | great! | ||
| lizmat | hmmm... still, labster assumed in 2013 that magic increment only works on the basename | 11:55 | |
| as shown in the last 2 tests in t/spec/S32-io/io-path-unix.t | |||
| jnthn | TimToady++ noted that the . rule is probably in the design docs | ||
| So yeah, +1 to adding tests to cover it | |||
| timotimo | Perhaps more to the point, if you happen to increment a string that ends with a decimal number, it's likely to do the right thing: | 11:56 | |
| $num = "123.456"; | |||
| $num++; # 124.456, not 123.457 | |||
| design.perl6.org/S03.html#Autoincre...precedence | 11:57 | ||
| jnthn | That's also cute :) | ||
| timotimo | Increment of a Str (in a suitable container) works similarly to Perl 5, but is generalized slightly. A scan is made for the final alphanumeric sequence in the string that is not preceded by a '.' character. | ||
| there it says "not preceded by a . character" | 11:58 | ||
| |Tux| | test 21.073 | 12:30 | |
| test-t 12.093 | |||
| csv-parser 24.505 | |||
| :) | |||
| timotimo | neat | ||
| some day we'll wiggle down below 12 using the power of noise | 12:31 | ||
| and maybe later we'll reach 10 :) | |||
| |Tux| frees the butterflies | |||
| dalek | kudo/nom: 2b3d1c1 | ab5tract++ | src/Perl6/Optimizer.nqp: Fix for WhateverCodes in void context |
12:51 | |
| kudo/nom: 49a6214 | ab5tract++ | src/Perl6/Optimizer.nqp: Fold the condition into the surrounding clause |
|||
| kudo/nom: b4b7fa0 | ab5tract++ | src/Perl6/Optimizer.nqp: Constrain the match to avoid ignoring multiplication |
|||
| kudo/nom: 91858a6 | ab5tract++ | src/Perl6/Optimizer.nqp: Use the substring of first and last indices approach |
|||
|
13:46
AlexDaniel joined
13:47
skids joined
13:57
[Tux] joined
|
|||
| dalek | kudo/nom: 7d4b3a3 | coke++ | docs/release_guide.pod: reluctantly claim the next release |
14:10 | |
| [Coke] | Note that the next release is going to occur the weekend of the Baltimore perl workshop. | 14:12 | |
| assuming it doesn't get delayed. | |||
| jnthn | Mmm...more balti... | 14:15 | |
| [Coke]++ | |||
| perlpilot | We need some sort of white-camel-like award so that we can give it to Coke for all of the releases he's done :) | 14:16 | |
| [Coke] | eh. Just pushing buttons. | 14:17 | |
| perlpilot | ... when no one else would push them | 14:18 | |
| timotimo | baltimore? | 14:24 | |
| that always used to highlight me :D | |||
| lizmat | commute to Amsterdam for NLPW tomorrow | 14:36 | |
| the van is loaded with camels and butterflies and a lot of books and T-shirts | |||
| & | |||
| [Coke] | safe travels! | 14:37 | |
| Woodi | hmm, "123.456"++ finishing as not "123.457" is pity... someone was realy thinked about devs here :) but having $ip_addr++ doing right thing would be realy mini-killer-app of Perl6, especially for IPv6... | 15:12 | |
| timotimo | we can't have everything at the same time | 15:14 | |
| Woodi | so, we have some magic-automatic here. what if there will be ways to specify what kind of Range is given and how to ++ it ? | ||
| timotimo | if you're at that point, you shouldn't use .succ and .pred any more | ||
| jnthn | Woodi: Just declare your own type and teach it how to succ | ||
| And then you can make ranges of it just fine | 15:15 | ||
| ip($a)..ip($b) or so | |||
| timotimo | oh, i should have specified; at that point you shouldn't just use .succ and .pred on Str | 15:17 | |
| Woodi | I think such thing is AI-applied domain, just not fuzzy :) | 15:20 | |
| timotimo | m: say Buf[uint8].new(1, 2, 3).succ | 15:28 | |
| camelia | rakudo-moar 7d4b3a: OUTPUTĀ«Method 'succ' not found for invocant of class 'Buf[uint8]'⤠in block <unit> at /tmp/cpmxLE5UvY line 1ā¤ā¤Ā» | ||
| dalek | p: ff4beee | (Pawel Murias)++ | src/vm/js/nqp-runtime/serialization.js: [js] Fix serialization of contexts. |
15:51 | |
| p: 0a8a782 | (Pawel Murias)++ | src/vm/js/Compiler.nqp: [js] Fix bug. |
|||
| p: b403469 | (Pawel Murias)++ | src/vm/js/ (3 files): [js] Fix the way closures are handled so that nqp-js-on-js passes t/nqp/56-role.t When capturing scopes also save the outer context. Make nqp::compunitcodes return all the compiled code refs. |
|||
| Woodi | jnthn: ok, got it now :) | 16:29 | |
|
18:43
Ven joined
19:10
Ven joined
19:39
Ven joined
21:00
skids joined
22:01
lizmat joined,
AlexDaniel joined
|
|||
| dalek | rakudo/nom: 8863aae | TimToady++ | src/Perl6/Optimizer.nqp: | 22:42 | |
| rakudo/nom: Revert "Use the substring of first and last indices approach" | |||
| rakudo/nom: | |||
| rakudo/nom: This reverts commit 91858a63ee7711af20b53e70ef5dac3ac373e55d. | |||
| rakudo/nom: | |||
| rakudo/nom: Checking for textual * in the optimizer is too late; a better way | |||
|
22:43
dalek joined
|
|||
| timotimo | are we going to do anything at all for april fools' day? | 22:44 | |
| well, it might be a bit late right now | |||
| TimToady: you made the wanted stuff; can you teach me how to make p6sink smarter when it contains an if or unless with just one branch? | 22:45 | ||
| my tries so far have led to a mysterious "cannot look for method sink in null object" after everything i run and i can't get --ll-exception | |||
| maybe you can try to implement that and do it in just five minutes instead of my "already spent two hours" | 22:46 | ||
| TimToady | I dunno, I ran into trouble myself there, once upon a time | ||
| there's something mysterious down in codegenland that relies on teh current v node structure | |||
| timotimo | gist.github.com/timo/d30f9fc08daf9...1ff02096f4 - my stuff so far | ||
| well, there's a problem where we only ever visit the first branch of the Want, ever. even though we already know we're in void context there | 22:47 | ||
| TimToady | I tried once to optimize those away and failed | ||
| timotimo | darn | ||
| TimToady | maybe I know more, or more likely, I knew more at Christmas, and since forgot it :) | 22:48 | |
| timotimo | possibly | ||
| do you want to explain the WANTED stuff? | |||
| that's only about warning of "unnecessary use of blah"? or is there more to it? | |||
| TimToady | it's about propagating sink/nonsink context down the tree | 22:49 | |
| Useless use is just one, er, use of that | |||
| I basically inserted a top-down pass interleaved with the action methods bottom-up pass | 22:50 | ||
| so it's quite similar to how P5 propagates context ASP, in fact | 22:51 | ||
| ASAP | |||
| timotimo | hm, OK | ||
| does that factor into what the optimizer knows as $!void_context? | |||
| TimToady | as soon as we know something is wanted/unwanted, we mark the leaves below it | ||
| there are also two variants of each: wanted() WANTED() and unwanted() UNWANTED() | 22:52 | ||
| the uppercase one tries harder :) | |||
| timotimo | "tries"? | 22:53 | |
| tries to get rid of something or tries to make sure something ends up in the result? | |||
| TimToady | makes sure something is marked that might otherwise be considered too unimportant to mark | ||
| the distinction is mostly just trying to save putting annotations on all kinds of nodes that won't be checked for sinkness | 22:54 | ||
| timotimo | mhm | ||
| TimToady | if nodes used an attribute instead of annotations, the distinction would be meaningless | ||
| timotimo | and those long lists of letters in the :BY? | ||
| TimToady | that's just figuring out who is actually doing the wanted()/unwanted() call | 22:55 | |
| timotimo | i find it extremely noisy visually. though to be fair it was already quite noisy before those additions | 22:56 | |
| TimToady | just a debugging aid that is supposed to go away unless you set the envvar | ||
| timotimo | i didn't know about the envvar yet | ||
| TimToady | the stuff with $wantwant | 22:57 | |
| I don't think it's even compiled in right now though | 22:58 | ||
| but yeah, the BY stuff could probably be simplified for normal use | 22:59 | ||
| it was mostly a temporary expedient to solve deep mysteries :) | |||
|
22:59
sortiz joined
|
|||
| TimToady | anyway, it shouldn't be generating a lot of string trash unless $wantwant is set | 23:01 | |
|
23:21
vendethiel- joined
|
|||
| timotimo | do you think it'd be horrible and terrible if i wrote a second dump method that lives only in Node and has special knowledge of all node types? or maybe even a sub that lives after all the node types, that would make forward declaration unnecessary | 23:29 | |
| er, in order to dump to json, i mean | |||
| anyway, i'm just about ready to go to bed and have some sleeps | 23:30 | ||
|
23:43
AlexDaniel joined
|
|||