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
|