Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6-dev, 2016-07-31

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

All times shown according to UTC.

Time Nick Message
00:29 AlexDaniel joined #perl6-dev
00:31 cog_ joined #perl6-dev
00:53 Zoffix m: class Foo { method ACCEPTS ($what) { say "Got `$what`" } }; "foo" ~~ Foo
00:53 camelia rakudo-moar 373634: OUTPUT«Got `foo`␤»
00:53 Zoffix m: role Foo { method ACCEPTS ($what) { say "Got `$what`" } }; "foo" ~~ Foo
00:53 camelia rakudo-moar 373634: ( no output )
00:53 Zoffix :(
00:56 japhb role Foo { method ACCEPTS ($what) { say "Got `$what`" } }; "foo" ~~ Foo.new
00:56 japhb m: role Foo { method ACCEPTS ($what) { say "Got `$what`" } }; "foo" ~~ Foo.new
00:57 camelia rakudo-moar 373634: OUTPUT«Got `foo`␤»
00:57 timotimo hey japhb
00:57 timotimo how are you? :)
00:57 japhb m: role Foo { method ACCEPTS ($what) { say "Got `$what`" } }; "foo" ~~ class :: does Foo
00:57 camelia rakudo-moar 373634: OUTPUT«===SORRY!=== Error while compiling <tmp>␤Unable to parse class definition␤at <tmp>:1␤------> `$what`" } }; "foo" ~~ class :: does Foo⏏<EOL>␤»
00:57 japhb m: role Foo { method ACCEPTS ($what) { say "Got `$what`" } }; "foo" ~~ class :: does Foo {}
00:57 camelia rakudo-moar 373634: OUTPUT«Got `foo`␤»
00:57 japhb Zoffix: You need to get it into a class, either composing it or punning it
00:57 japhb timotimo: Not too bad.  You?
00:58 timotimo okay-ish
00:58 timotimo far from productive these days
00:59 timotimo but did you notice how rakudo's builtins have become significantly faster?
00:59 japhb Oh, I've been watching lizmat++'s commit stream happily.
01:00 timotimo oh yes, very yes
01:00 japhb Need raw speed though, not just builtin speed.
01:00 timotimo yes :(
01:01 timotimo parallelization speed is also still an issue because invoking something hits our shared (i.e. locked) allocator twice. once for lexical environment, once for locals
01:01 timotimo and then when a frame returns, we hit the allocator again for freeing one or two of those
01:01 japhb :-(
01:02 timotimo so sometimes tiny things don't get inlined and just trash performance by keeping that lock occupied all the time
01:02 japhb ugh.
01:02 timotimo "oh you want to add these two numbers? ok! that'll be 1/100 msec per call"
01:03 timotimo "oh yeah and 70% of that is allocating/deallocating"
01:03 japhb :-(
01:04 timotimo things do improve, though
01:04 timotimo do you have anything like a "macro-benchmark" for raw-speed-y things?
01:04 timotimo the kind of thing you need to have fast?
01:05 timotimo jnthn has been running a daily moarvm benchmark as you might know, but we really ought to give a day-by-day comparison; i don't think the data stayed around, though
01:05 timotimo so not entirely sure how to make that work :)
01:07 japhb Too bad he's not keeping the benchmark data, because perl6-bench can certainly pivot to showing historical change
01:08 japhb I tried to convince people to take their benchmarks and add them to the perl6-bench suite, but ... that has been less than successful, and I don't have the cycles to do it myself.  :-(
01:11 Zoffix Failed to create directory '/var/www/tmp/IRC-Client/lib/.precomp' with mode '0o777': Failed to mkdir: 13
01:11 timotimo mhm
01:11 timotimo oh gosh, 13?!?
01:11 timotimo that's bad!
01:11 Zoffix I really wish we didn't create .precomp dirs all over the place.
01:12 Zoffix Well, in this case, I'm assuming it's cause I don't have /var/www/tmp/..blah blah. It's just part of my `lib`  because I do have it on another box.
01:12 Zoffix And I wish it just ignored it instead of dying...
01:16 Zoffix I'd be creating .precomp in $*TMPDIR
01:16 Zoffix if it were my personal project. I see no reason of spamming .precomp into any dir we get a chance to get our hands on
01:16 timotimo :\
01:16 Zoffix Or some dir inside the perl6 install
01:18 timotimo i wonder if that'd just work; having a .precomp for everything, and having the hashes not collide when two different repo-chains have something similar
01:18 timotimo it might be easy to make that work by providing your own CompUnitRepo
01:18 timotimo one that only handles precomp saving
01:18 Zoffix Nice.
01:19 timotimo might
01:19 Zoffix I've been hating .precomp directory since the first day I had to add it to .gitignore and I think the above error just drew the final straw.
01:19 * Zoffix sets .precomp on fire
01:19 FROGGS_ joined #perl6-dev
01:20 ShimmerFairy I'd recommend a special setup like ~/.perl6/.precompdirs/ or something, where there are directories with names depending on the absolute path it belongs to in some fashion
01:21 ShimmerFairy e.g. ~/.perl6/.precompdirs/home-projects-foobar-lib/ is equivalent to a .precomp in the lib/ directory (though not quite like that, of course)
01:22 Zoffix The one problem I see with storing .precomp in P6 dir instead of $*TMPDIR is it'll gradually fill up and at the end you won't even know which ones you still use and which aren't used
01:23 ShimmerFairy Zoffix: ah, true. I just picked ~/.perl6 since I think of that as the "main directory" for Perl 6's module installation and stuff :)
01:26 ShimmerFairy also fun fact, we don't get 64 bits of fractional precision on square roots, at least
01:26 timotimo :o
01:26 ShimmerFairy m: say ((sqrt(3) * 2**64).floor % 2**64).base(16) # should be 0xBB67AE8584CAA73B, according to SHA-512
01:26 camelia rakudo-moar 373634: OUTPUT«BB67AE8584CAA000␤»
01:27 timotimo damn
01:29 ShimmerFairy m: say ((sqrt(5) * 2**64).floor % 2**64).base(16) # and this 0x3C6EF372FE94F82B
01:29 camelia rakudo-moar 373634: OUTPUT«3C6EF372FE950000␤»
01:30 ShimmerFairy timotimo: it looks to me like there might be a 64-bit limit including the non-fractional part. I just don't know how to calculate the square root of primes without sacrificing bits to the integral part :P
01:30 timotimo i haven't a clue
01:38 ShimmerFairy I can't seem to squeeze out a few more digits via something like sqrt(5/256), not sure if I should expect that to work in the first place though.
01:39 buggable joined #perl6-dev
01:41 Zoffix https://travis-ci.org/rakudo/rakudo/builds/148589867
01:41 buggable Zoffix, One build failed due to timeout.
01:41 Zoffix Neat. eh
01:46 ShimmerFairy I wonder if at some point Perl 6 would want multi-precision floating-point numbers, like it currently has bigints.
01:49 ilbot3 joined #perl6-dev
01:49 Topic for #perl6-dev is now Perl 6 language and compiler development 2.0 | Logs at http://irclog.perlgeek.de/perl6-dev/today
01:49 timotimo fantastic, Zoffix
01:50 timotimo well, yeah, we need a bit of internals rework to make bigger-than-64bit-things work
01:50 timotimo but then we can have 96 bit floats
01:50 Zoffix I retract my $*TMPDIR .precomp thoughts. It'd be cleaned on every restart and make precomp useless in many instances.
01:55 ShimmerFairy timotimo: I'd personally love if we had mpfr in moar or similar (assuming libtommath doesn't already have mp floats waiting to be used).
01:56 ShimmerFairy ...Actually, does the spec ever say if Num is meant to be the floating point version of Int?
01:57 timotimo um, i'm not sure
01:58 ShimmerFairy (it possibly should IMO, since the likes of  num  can cover limited floating point)
01:59 timotimo that's not what the difference is
01:59 timotimo the difference is between having a box that you can add roles to and such, and having just a register or something
02:00 ShimmerFairy timotimo: true, but we don't have e.g. Int64 do we? So for the land of integers, that's at least one difference.
02:00 timotimo well, of course, Int is always big
02:03 ShimmerFairy My one concern is how an mp float (let's call it FatNum for clarity) can be limited in precision; that is, how do I tell sqrt(FatNum.new(2)) to stop at 128 fractional bits?
02:04 timotimo oh, well, that's difficult :)
02:04 ShimmerFairy maybe FatNum[128] for "128 bits mantissa" or something?
02:05 timotimo my laptop seems to have stopped charging from the plugged in AC ...
02:05 timotimo this is kind of bad
02:05 timotimo i'll end up having to get the repair earlier than i thought i would
02:06 ShimmerFairy :(
02:25 timotimo but repair will still be free
02:25 timotimo and on-site
02:25 timotimo so that's nice
02:32 timotimo i'll let my laptop sleep
02:40 [Tux] joined #perl6-dev
02:42 buggable joined #perl6-dev
02:44 Zoffix Wow neat. Dude jumped from a plane without a parachute and landed into a net: https://www.facebook.com/topic/Heaven-Sent/376157862431205?source=whfrt&amp;position=1&amp;trqid=6313300200391206050
02:45 dalek joined #perl6-dev
02:45 Zoffix But the neat part is that that video is 360... You can click-and-drag in it to rotate the view and look around. That's really neat.
02:57 buggable joined #perl6-dev
02:59 gfldex m: say Q ⸨ oi! ⸩
02:59 camelia rakudo-moar 373634: OUTPUT«===SORRY!=== Error while compiling <tmp>␤Couldn't find terminator ⸨ (corresponding ⸨ was at line 1)␤at <tmp>:1␤------> say Q ⸨ oi! ⸩⏏<EOL>␤    expecting any of:␤        ⸨␤»
02:59 gfldex should that work?
03:00 ShimmerFairy m: say "⸨".uniprop
03:00 camelia rakudo-moar 373634: OUTPUT«Ps␤»
03:00 ShimmerFairy m: say "⸩".uniprop
03:00 camelia rakudo-moar 373634: OUTPUT«Pe␤»
03:01 ShimmerFairy m: say Q⸨ oi!⸩
03:01 camelia rakudo-moar 373634: OUTPUT«===SORRY!=== Error while compiling <tmp>␤Couldn't find terminator ⸨ (corresponding ⸨ was at line 1)␤at <tmp>:1␤------> say Q⸨ oi!⸩⏏<EOL>␤    expecting any of:␤        ⸨␤»
03:01 ShimmerFairy gfldex: Seems to me like it should.
03:01 timotimo i think we have a big string somewhere that has all openers and their respective closers or something?
03:01 geekosaur the problem iirc is that while unicode tells you the start vs. end, it doesn't tell you which go with which
03:02 geekosaur so the list is hardcoded and needs to be managed manually
03:02 timotimo comes goes with snowman
03:02 timotimo it might be that what i'm thinking of is what powers magical succ, though
03:03 gfldex m: say Q ⁅ oi! ⁆
03:03 camelia rakudo-moar 373634: OUTPUT« oi! ␤»
03:04 ShimmerFairy we need to petition Unicode for new properties! .oO(Matching_Close_Bracket and Matching_Open_Bracket?)
03:04 gfldex m: say 2 ⁽²⁺³⁾
03:04 camelia rakudo-moar 373634: OUTPUT«===SORRY!=== Error while compiling <tmp>␤Confused␤at <tmp>:1␤------> say 2⏏ ⁽²⁺³⁾␤    expecting any of:␤        infix␤        infix stopper␤        postfix␤        statement end␤        statement modifier␤        …»
03:05 ShimmerFairy I don't think you should quite expect a superscript EXPR from standard P6 :P
03:07 Zoffix Why not?
03:07 Zoffix m: say 2 *²²⁺³
03:07 camelia rakudo-moar 373634: OUTPUT«128␤»
03:07 Zoffix :trollface:
03:12 Zoffix m: say 2²⁺³
03:12 camelia rakudo-moar 373634: OUTPUT«64␤»
03:17 Zoffix m: say 2²⁺² # even a correct result :)
03:17 camelia rakudo-moar 373634: OUTPUT«16␤»
03:21 gfldex .tell TimToady should this work? m: say 2 ⁽²⁺³⁾
03:21 yoleaux2 gfldex: I'll pass your message to TimToady.
03:22 gfldex m: say "⸨".uniname
03:22 camelia rakudo-moar 373634: OUTPUT«LEFT DOUBLE PARENTHESIS␤»
04:00 Zoffix There's little point in making 2⁽²⁺³⁾ work in core. You'd need an entire superscript EXPR to make it useful and I don't see neither superscript multiplcation, nor division, nor sigils.
04:01 Zoffix m: my \ˣ = 42; my \ʰ = 72; my &infix:<⁺> = &infix:<+>;  say ˣ⁺ʰ
04:01 camelia rakudo-moar 373634: OUTPUT«114␤»
04:56 ShimmerFairy Zoffix: just like I said :P
06:37 CQ joined #perl6-dev
07:17 [TuxCM] joined #perl6-dev
07:22 FROGGS joined #perl6-dev
07:28 AlexDaniel #125756 #128594 ← this is pretty sad…
07:28 yoleaux2 30 Jul 2016 14:42Z <Zoffix> AlexDaniel: is is possible to make committable/bisectable join #zofbot? I don't wanna spam #perl6-dev
07:28 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=125756
07:28 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=128594
08:29 nine Zoffix: we should create the whole /var/www/tmp/.../.precomp path. The error must have a different reason. Maybe a permission problem?
08:58 AlexDaniel m: my @foo; say @foo.end
08:58 camelia rakudo-moar 373634: OUTPUT«-1␤»
09:07 RabidGravy joined #perl6-dev
09:07 AlexDaniel Zoffix: In IRC::Client, what happens if you return a string with a newline?
09:08 AlexDaniel Zoffix: well, nothing good for sure
09:28 dalek rakudo/nom: 6972d50 | lizmat++ | src/core/Any-iterable-methods.pm:
09:28 dalek rakudo/nom: We don't need special Failure check here
09:28 dalek rakudo/nom:
09:28 dalek rakudo/nom: Assigning a Failure will throw it anyways
09:28 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/6972d50b08
09:29 lizmat japhb: the reason for me to not add any more benchmarks atm, is that it will make a page like http://www.moarvm.org/measurements/perl6-bench/2016-07-31.html progressively heavier and more unusable
09:30 lizmat to make this more useful, we would need a way to select one or more benchmarks over a period and show that
09:31 lizmat or is that already possible?
09:36 lizmat actually, looking at http://www.moarvm.org/measurements/perl6-bench/ , that's a nice benchmark in an of itself
09:37 lizmat assuming that the cronjob has started on the same time since Feb 29,
09:37 lizmat the final arrival of the benchmark has gone back from 5am to 4:44am, aka a 16 minute gain
09:38 lizmat I have no idea when it starts, so I have no idea of the relative gain there
09:40 lizmat on 23 July it went from 4:49 to 4:43,  not sure what commit was responsible for that
09:42 lizmat on 30 July we lost 2 mins again: I wonder if that's the wanted work by TimToady or the MoarVM async improvements
10:23 travis-ci joined #perl6-dev
10:23 travis-ci Rakudo build passed. Elizabeth Mattijsen 'We don't need special Failure check here
10:23 travis-ci https://travis-ci.org/rakudo/rakudo/builds/148644879 https://github.com/rakudo/rakudo/compare/373634e72766...6972d50b08e6
10:23 travis-ci left #perl6-dev
10:29 mst if larry's optimising things, be very afraid
10:29 mst I've seen the results in perl5 of him doing that
10:29 mst it is both glorious and CANNOT UNSEE
10:30 lizmat mst: TimToady wasn't optimising, he was making sink warnings better
10:31 * mst reduces the alert level from 'gibbering under the table' to 'twitching slightly and eyeing the exits'
10:52 jnthn lizmat: Within the last week or so the VM that those run on was migrated from Xen to KVM and gained an extra 4GB of RAM, which probably caused the big across-the-board drop.
10:52 lizmat aha, ok  *phew*
10:52 jnthn I suspect the WANTED stuff is really costly, btw. Its using annotations on every single node, while they are a mechanism designed for *occasional* annotations. :S
10:53 jnthn So it's an extra hash every node
10:53 lizmat yeah, looked like we gained a few MB's when building the setting
10:53 jnthn Yup
10:53 jnthn Too much hash is bad.
10:53 lizmat :-)
10:54 jnthn Will have to see if we can store that stuff in a better way :)
10:54 lizmat sure, if you can give me a recipe, I can do the grunt work
10:54 jnthn I'd need to understand what it's doing a bit better to come up with a recipe :)
10:55 timotimo TT already mentioned it'd be enough to have a little bitmask in nodes to store that wanted stuff
10:55 jnthn Ah, OK
10:55 timotimo i ought to find that in the irclog, gimme a sec
10:55 jnthn Could just stick an int $!flags in the QAST::Node base I guess...
10:55 timotimo right now i'm fiddling with the explosion when using :merge with proc spawning
10:56 jnthn Ah, nice.
10:56 timotimo seems to be that libuv gets extremely unhappy when the same thing is put into an event loop twice
10:56 jnthn I plan to continue with concurrency/async problem hunting in the next week...
10:56 jnthn Including figuring out why my branch that gets rid of a deadlock also oddly breaks Supply.throttle.
10:58 timotimo http://irclog.perlgeek.de/perl6-dev/2016-07-30#i_12939399
11:13 timotimo i fixed the explosion, yay
11:13 timotimo i decided to put in a new flag to signify that out and err are the same thing
11:13 timotimo that's probably better than checking if they had the same object assigned
11:17 FROGGS timotimo++
11:17 FROGGS I'm eager to see the patch
11:18 jnthn cookin' brunch &
11:18 dalek nqp: 1c340e1 | timotimo++ | / (3 files):
11:18 dalek nqp: get a moarvm with PIPE_MERGED_OUT_ERR flag support
11:18 dalek nqp: review: https://github.com/perl6/nqp/commit/1c340e1e7e
11:19 timotimo FROGGS: pretty trivial patch, actually
11:19 timotimo i think i'll wait for travis to see if jvm is happy with that patch, too
11:19 timotimo since i did nothing except add the flag ...
11:21 FROGGS ohh, setting the stdio_count to two does the trick?
11:21 timotimo oh, huh, travis only builds nqp with moar?
11:21 timotimo yes, but i'm also not calling setup_stdio in that case
11:21 timotimo it could still be wrong to have stdio be 2
11:22 timotimo i need to test it with a program that outputs to both stderr and stdin to see that, gimme a sec
11:22 FROGGS I was looking in their tests and documentation and even asked in their irc channel but got no answer in how to combine stderr and stdout
11:23 timotimo right, my fix was wrong :)
11:24 timotimo so now with :merge you get only stdout :(
11:24 ShimmerFairy jnthn: backlogging just a touch, would WANTED, erm, want to be some kind of attribute like $.node on QAST objects?
11:25 timotimo yeah, kind of like that, ShimmerFairy
11:25 ShimmerFairy First thing that came to mind in terms of something that gets attached to every QAST object :)
11:25 timotimo yeah
11:26 timotimo "has int $.wanted" or something
11:26 lizmat well, seems a bit of a waste to spend a whole int on a boolean
11:27 timotimo then it'd be $.flags
11:27 lizmat http://irclog.perlgeek.de/perl6-dev/2016-07-30#i_12939399   # TimToady pointing to a bitmap
11:27 timotimo i'm not sure if we can put more stuff into the flags there
11:27 ShimmerFairy timotimo: that's a job for "these next 63 bits reserved for future use" :P
11:27 timotimo yup
11:30 lizmat I think some type of optimisation info could live there, no ?
11:31 timotimo sure
11:32 timotimo my next idea is that we have to not set "UV_CREATE_PIPE" for the stderr in case we merge the two
11:32 timotimo but still call setup_stdio for the third one
11:57 timotimo *sigh*
11:57 timotimo why did i even think it'd be easy? it never is.
11:57 lizmat so, which one would be faster:    list.min or list.min(&infix:<cmp>)
11:57 lizmat m: my @a = ^1000; for ^1000 { @a.min(&infix:<cmp>) }; say now - INIT now
11:57 camelia rakudo-moar 6972d5: OUTPUT«0.743613␤»
11:58 lizmat m: my @a = ^1000; for ^1000 { @a.min }; say now - INIT now
11:58 camelia rakudo-moar 6972d5: OUTPUT«0.9607976␤»
11:58 timotimo is that just camelia being noisy?
11:58 timotimo or ... is it just that strange?
11:58 lizmat nope
11:58 timotimo :o
11:58 lizmat the candidate with (&infix<cmp>) gets almost immediately Jitted and OSR's
11:58 lizmat 'd
11:59 lizmat whereas the candidate without parameters only gets JITTED about 800 iterations in
11:59 timotimo o_O
11:59 timotimo that's really interesting
12:00 lizmat also: the &infix<cmp> gets JITTED in the parameter case, but not in the parameterless case
12:00 lizmat did we have a way to generate a profile using camelia or another bot?
12:01 timotimo yeah, prof-m i think
12:04 lizmat prof-m: my @a = ^1000; for ^1000 { @a.min(&infix:<cmp>) }
12:04 camelia prof-m : OUTPUT«No such file or directory»
12:04 camelia .. Prof: http://p.p6c.org/2f96958
12:04 lizmat apparently it's borked  :-(
12:04 camelia prof-m : OUTPUT«(timeout)Can't exec "./rakudo-inst/bin/perl6-m": No such file or directory at lib/EvalbotExecuter.pm line 206.␤cat: /home/camelia/rakudo-inst/revision: No such file or directory␤␤now running scp...␤/tmp/mprof.html: No such file or directory␤»
12:04 camelia .. Prof: http://p.p6c.org/2f9696e
12:05 timotimo :o
12:05 timotimo :(
12:13 jnthn lizmat: (wate a whole int on a boolean) you will anyway, thanks to alignment rules, I suspect :)
12:13 jnthn *waste
12:14 lizmat jnthn: yes, but at least we will space to do more stuff, when it's interpreted as a birmap, rather than a boolean
12:14 lizmat *have
12:14 jnthn ShimmerFairy: Yes, that's what I'm thinking but maybe a more general flags field...
12:14 jnthn lizmat: Ah, right...then we're agreeing ;)
12:15 jnthn On the min thing, I don't have an immediate guess on the OSR/JIT thing, though I bet the spesh log would tell us :)
12:15 timotimo does Proc::Async even have :merge support ...
12:19 MasterDuke the string 'merge' doesn't appear in src/core/Proc/Async.pm
12:19 timotimo yeah
12:20 jnthn Don't believe so, unless somebody sneaked it in while I wasn't watching. Which would be entirely possible... :)
12:20 timotimo right ...
12:29 lizmat jnthn: got a .5M normalized diff of the spesh log, but I have no idea what I should be looking for
12:35 benchable joined #perl6-dev
12:36 dalek rakudo/nom: 4c773b1 | lizmat++ | src/core/Any-iterable-methods.pm:
12:36 dalek rakudo/nom: Make .minmax about 25% faster
12:36 dalek rakudo/nom:
12:36 dalek rakudo/nom: - rewrite in nqp::ops
12:36 dalek rakudo/nom: - have a separate candidate for .minmax()
12:36 dalek rakudo/nom: - based on using an iterator, rather than copying, so more memory friendly
12:36 dalek rakudo/nom: - now also allows things like {}.minmax(*.value)
12:36 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/4c773b1e0e
12:38 MasterDuke lizmat: japhb: we're working on making the graphing more useable (and prettier), but benchable can benchmark code over a time period (specified as commits)
12:38 timotimo lizmat: perhaps we don't generate an osrpoint for the kind of loop you have in the candidate that doesn't end up getting jitted earlier?
12:38 MasterDuke bench: releases my ($a, $b, $c, $d, $e) = ^$_ for ^10000;my $s = $a + $b + $c + $d + $e
12:39 benchable MasterDuke: https://gist.github.com/4d231396187f1080a43626dbc13ed9c6
12:40 timotimo is invalid? :(
12:41 lizmat timotimo: in the diff, there is only one osrpoint shared by both, all of the other osrpoints are in the (&infix:<cmp>) case
12:41 lizmat timotimo: so I think your assertion is correct
12:41 MasterDuke i can switch a setting that will produce a valid (according to github) file, but it doesn't resize correctly, so it will only show about 10 points and then cuts off on the right
12:42 timotimo i'm not sure i understand your output, but ... okay?
12:43 MasterDuke timotimo: my output? what don't you understand?
12:43 lizmat I grepped for "osrpoint" in the diff of the spesh_log
12:44 lizmat timotimo: if you want me to, I could gist the files
12:45 timotimo MasterDuke: no, liz' output :)
12:45 timotimo lizmat: what about the one shared by both?
12:46 lizmat -      [Annotation: INS Deopt OSR (idx 5 -> pc 246); line 5439]
12:46 lizmat +      [Annotation: INS Deopt OSR (idx 11 -> pc 528); line 5456]
12:46 lizmat osrpoint
12:46 timotimo right, the annotation isn't so important
12:47 timotimo just important that there's an osrpoint that we run over in the "hot" loop
12:47 lizmat the first is the nqp::if( in the min() candidate
12:47 lizmat the second one is the nqp::if inside the min(&by) candidate
12:50 timotimo i think i've found a way to make the shared pipe thing work
12:50 timotimo it's a bit round-about, but it might just be the right thing
13:37 skids joined #perl6-dev
14:24 skids joined #perl6-dev
14:25 Zoffix AlexDaniel, the behaviour is currently undefined. I'm yet to decide whether I want them to be sanitized or to convert them to multiple messages.
14:28 Zoffix AlexDaniel, opened an RFC https://github.com/zoffixznet/perl6-IRC-Client/issues/17
14:30 [TuxCM] joined #perl6-dev
14:41 Zoffix nine, but why are we creating it at all? If '/var/www/tmp/' does not exist, I definitely do not have any modules in '/var/www/tmp/IRC-Client/lib/' and the include path should be ignored
14:45 Zoffix ("should"; as there's a case where it can be created and populated with modules after script is started and modules loaded during runtime)
14:46 nine Zoffix: we really just need a place to store those precomp files. The way we choose it is certainly up for improvement
14:48 dalek rakudo/nom: fa84f13 | lizmat++ | src/core/Array.pm:
14:48 dalek rakudo/nom: Make Array.splice() almost infinitely faster
14:48 dalek rakudo/nom:
14:48 dalek rakudo/nom: - don't copy anything, just transplant internals
14:48 dalek rakudo/nom: - create separate candidates for :SINK and without :SINK
14:48 dalek rakudo/nom: - speed gains increase with size of Array
14:48 dalek rakudo/nom: - much easier on memory, as nothing gets copied
14:48 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/fa84f13440
14:49 Zoffix :o infinitely faster.... lizmat++
14:50 lizmat well, I couldn't really measure the difference between the bare loop and the one with the splice in it
14:50 lizmat it all drowned in the noiser
14:50 lizmat *noise
14:50 Zoffix :)
15:25 lizmat &afk
17:15 [TuxCM] This is Rakudo version 2016.07.1-94-gfa84f13 built on MoarVM version 2016.07-13-gcba3ae3
17:15 [TuxCM] test            15.064
17:15 [TuxCM] test-t           8.050
17:15 [TuxCM] csv-parser      16.338
17:25 FROGGS joined #perl6-dev
18:03 japhb MasterDuke: What I originally designed perl6-bench for is to have a suite of different tests doing lots of different things, with different sizes of code from one liners to (at least) dozens of lines, to give the compiler a decent workout
18:04 japhb lizmat: Yes, you can filter the perl6-bench data relatively easily, and it allows you to just run tests with certain tags (or *without* certain tags, if you want to skip a particular class of tests).
18:04 japhb There are a lot of possibilities for producing what you want.  :-)
18:05 dalek nqp: 878960d | (Pawel Murias)++ | src/vm/js/nqp-runtime/array.js:
18:05 dalek nqp: [js] Remove debugging leftover.
18:05 dalek nqp: review: https://github.com/perl6/nqp/commit/878960d948
18:05 dalek nqp: 36b8182 | (Pawel Murias)++ | src/vm/js/nqp-runtime/ (4 files):
18:05 dalek nqp: [js] Add 'use strict'
18:05 dalek nqp: review: https://github.com/perl6/nqp/commit/36b818275b
18:05 dalek nqp: cd6e01b | (Pawel Murias)++ | src/vm/js/ (2 files):
18:05 dalek nqp: [js] Implement nqp::x using String.repeat.
18:05 dalek nqp: review: https://github.com/perl6/nqp/commit/cd6e01b65f
18:34 AlexDaniel lizmat: it is slightly noisy, but you get the idea https://gist.github.com/Whateverable/fab839b9e510e203f3834a60132d5bfd#file-result and https://gist.github.com/Whateverable/5cc790597c31c0a3418968b009f48078#file-result
18:35 AlexDaniel looks very promising :)
18:39 Zoffix :o charts!@
18:47 [TuxCM] joined #perl6-dev
19:11 buggable_ joined #perl6-dev
20:10 Zoffix m: say DateTime.now.split('T')
20:10 camelia rakudo-moar fa84f1: OUTPUT«Use of uninitialized value of type Any in string context␤Any of .^name, .perl, .gist, or .say can stringify undefined things, if needed.  in block <unit> at <tmp> line 1␤Cannot resolve caller split(DateTime, Str); none of these signatures match:␤  in…»
20:10 Zoffix m: say DateTime.now.Str.split('T')
20:10 camelia rakudo-moar fa84f1: OUTPUT«(2016-07-31 22:10:28.255696+02:00)␤»
20:10 Zoffix What is .split trying to split on by default? (/me wondering if it's a bugglet)
20:11 Zoffix Oh, nevermind. I didn't even bother reading the error message far enough to notice the caller resolve stuff >_< XD
20:22 masak Zoffix: somewhat relatedly, wanting to do any kind of parsing of a DateTime is a sign that a wrong turn was taken at some prior point ;)
20:23 masak m: say DateTime.now.month
20:23 camelia rakudo-moar fa84f1: OUTPUT«7␤»
20:23 Zoffix I'm not parsing. I'm abridging
20:23 masak just format it in a better way from its parts
20:23 masak strings are a very flat, boring data structure
20:24 masak the rich object here is the DateTime, not its stringification
20:26 Zoffix What would I gain other than more code and more places to mess it up?
20:27 pmurias joined #perl6-dev
20:28 masak freedom from the assumptions carried into the original stringification
20:28 masak clarity by dint of using the methods on DateTime that carry the data you want
20:30 Zoffix Passs
20:32 masak your call :) just sharing something I've found to be true, that happiness is seldom found by re-parsing serialized text
20:32 Zoffix The assumptions I make in stringification relies on the assumptions of Perl 6 specification and assumption that it will continue following it in a  backwards compatible way. Changing to using methods would make my code more verbose and will require payment in the extra time I need to LEARN the method names and their return values and argument and to write them all in proper way AND debug any of the issues
20:32 Zoffix Considering the type of code it is: a personal tool. It's perfectly fine to just split on .Str
20:33 masak *nod*
20:33 masak m: say sprintf "%d-%02d-%02d", .year, .month, .day for DateTime.now
20:33 camelia rakudo-moar fa84f1: OUTPUT«2016-07-31␤»
20:34 Zoffix m: DateTime.now.Str.split('.')[0].split('T').join(' ').say
20:34 camelia rakudo-moar fa84f1: OUTPUT«2016-07-31 22:34:24␤»
20:37 masak m: say DateTime.now.Str.split('.')[0].subst('T', ' ')
20:37 camelia rakudo-moar fa84f1: OUTPUT«2016-07-31 22:37:18␤»
20:38 Zoffix m: say sprintf "%d-%02d-%02d %02d:%02d:%02d", .year, .month, .day, .hour, .minute, .second given DateTime.now
20:38 camelia rakudo-moar fa84f1: OUTPUT«2016-07-31 22:38:55␤»
20:38 Zoffix c'mon :)
20:40 masak "c'mon" is a bit of an emotional argument ;) I don't think we're convincing each other here
20:40 masak but there's no need for that either
20:40 masak there are tradeoffs involved, for sure
20:44 masak m: say Date.today ~ " " ~ hms(DateTime.now); sub hms($_) { sprintf "%02d:%02d:%02d", .hour, .minute, .second }
20:44 camelia rakudo-moar fa84f1: OUTPUT«2016-07-31 22:44:07␤»
20:44 masak m: say Date.today, " ", hms(DateTime.now); sub hms($_) { sprintf "%02d:%02d:%02d", .hour, .minute, .second }
20:44 camelia rakudo-moar fa84f1: OUTPUT«2016-07-31 22:44:29␤»
20:45 Zoffix There's a race condition in that code (corroborating my argument about introducing bugs) ????
20:47 masak aye; should probably work form the same snapshot, that's true
20:47 masak m: say .Date.today ~ " " ~ .&hms given DateTime.now; sub hms($_) { sprintf "%02d:%02d:%02d", .hour, .minute, .second }
20:47 camelia rakudo-moar fa84f1: OUTPUT«2016-07-31 22:47:46␤»
20:50 masak m: say .Date ~ " " ~ .&hms given DateTime.now; sub hms($_) { sprintf "%02d:%02d:%02d", .hour, .minute, .second }
20:50 camelia rakudo-moar fa84f1: OUTPUT«2016-07-31 22:50:48␤»
20:51 masak maybe we should have a .hms method on DateTime...
20:52 Zoffix would be neat
20:53 jnthn .oO( Her Majesty's Ship? )
20:55 masak jnthn: the corresponding method for the date part is called .yyyy-mm-dd, so by analogy the time part should be .hh:mm:ss :)
20:55 masak but that's a bit of an awkward method name, perhaps
20:56 masak m: class C { method hh:mm:ss { say "OH HAI" } }; C.new.hh:mm:ss
20:56 camelia rakudo-moar fa84f1: OUTPUT«Method 'hh' not found for invocant of class 'C'␤  in block <unit> at <tmp> line 1␤␤»
20:56 masak also, it doesn't work
20:56 masak m: class C { method hh:mm:ss { say "OH HAI" } }; C.new."hh:mm:ss"()
20:56 camelia rakudo-moar fa84f1: OUTPUT«OH HAI␤»
20:56 masak or more exactly, it needs to be quoted
20:57 Zoffix 0.o
20:57 masak maybe .hh-mm-ss is a decent compromise
20:57 jnthn hah :P
20:58 jnthn Yeah, it's at least consistent with tother one
20:58 jnthn Though what does it return, and does it zero-pad? :)
20:59 masak jnthn: sprintf "%02d:%02d:%02d", .hour, .minute, .second
20:59 masak and yes
21:14 buggable joined #perl6-dev
21:17 Zoffix buggable, rt
21:17 buggable Zoffix, TOTAL: 1355, UNTAGGED: 611, BUG: 414, LTA: 90, JVM: 62, NYI: 32, SEGV: 28, UNI: 25, RFC: 24, PERF: 19, POD: 14, CONC: 11, @LARRY: 10, TODO: 9, PRECOMP: 8, GLR: 6, BUILD: 5, STAR: 4, WEIRD: 3, LTA ERROR: 3, MOARVM: 2, OSX: 2, FEATURE REQUEST: 1, CPP: 1, SPEC: 1, LIST: 1, LHF: 1, SPESH: 1, DOCS: 1, NATIVECALL: 1   Details: http://bug.perl6.party/1469999846.html
21:17 Zoffix buggable, rt @larry
21:17 buggable Zoffix, Found 8 tickets tagged with @LARRY. Details: http://bug.perl6.party/1469999865.html
21:17 b2gills It would be nice if 「DateTime.now.fmt: 'yyyy-mm-dd hh:mm:ss'」 worked (perhaps a different name)
21:17 Zoffix Neat, eh?
21:18 Zoffix buggable, rt sdafdsfsdds
21:18 buggable Zoffix, Found 0 ticket tagged with SDAFDSFSDDS. Details: http://bug.perl6.party/1469999937.html
21:19 * geekosaur actually went looking for strftime foo before remembering that got banished to future ecosystem foo with the rest of posix
21:21 buggable joined #perl6-dev
21:22 buggable joined #perl6-dev
21:25 skids joined #perl6-dev
21:31 Zoffix buggable, rt docs
21:31 buggable Zoffix, Found 1 ticket tagged with DOCS. Details: http://bug.perl6.party/1470000719.html
21:55 buggable joined #perl6-dev
21:57 buggable joined #perl6-dev
23:14 gfldex lizmat: thta was the week that was: https://gist.github.com/gfldex/645935787bd57787a20f83edfd33eb92
23:26 AlexDaniel Zoffix: pretty cool

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