Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6-dev, 2017-04-20

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

All times shown according to UTC.

Time Nick Message
00:16 samcv ZofBot, state your purpose
00:16 ZofBot samcv, r = FIRST { rand }; has $
00:16 samcv k
00:18 TimToady I believe I found the bug in Grammar::Debugger
00:28 TimToady actually, the bug is in Grammar::Tracer
00:28 samcv i'm not sure how to fix this problem in DateTime::Math
00:28 samcv Ambiguous call to 'infix:<->'; these signatures all match:
00:28 samcv :(DateTime:D \a, DateTime:D \b)
00:28 samcv :(DateTime:D $a, DateTime:D $b)
00:29 Zoffix m: dd DateTime.now - DateTime.now
00:29 camelia rakudo-moar b4fa6d: OUTPUT: «Duration.new(<-4417/2205500>)␤»
00:29 samcv doesn't make sense to me
00:29 samcv .WHAT shows they're both datetime objects
00:29 Zoffix samcv: by removing that op. It's now implemented in core so one of those multies is the core one and the other is the one the module provides
00:29 samcv oh. yes
00:29 samcv very true
00:29 samcv i'm make a pr then
00:30 TimToady the closure that Grammar::Tracer provides has -> $c, |args, but then uses $meth($obj, |args), and $obj is the type object rather than the instantiated object
00:33 samcv PR sent now
00:33 Zoffix samcv++
00:36 samcv TimToady, can you check this https://github.com/perl6/specs/pull/120 and see how you feel about this for META and licenses to the spec?
00:36 samcv right now it's kind of anarchy of what people put there from what i have seen checking all META files in the ecosystem
00:37 samcv this would greatly simplify it and make the license in a standardized format that is well defined and used by a great number of license tracking systems
00:38 TimToady seems reasonable to me, if people actually want their code to be used
00:39 samcv it is ok if i merge that?
00:40 samcv i've also put PR template for the ecosystem to encourage people to add licenses to their projects. because https://github.com/perl6/ecosystem/blob/master/PULL_REQUEST_TEMPLATE.md like... almost none of them (including me) have them
00:44 samcv doesn't *require* a license but should nudge people in the right direction, because it's something often overlooked, by myself and others when publishing modules
00:46 TimToady the legal interface is just about as important as the technical one
00:46 TimToady speaking as someone who wrote his own license...
00:48 Zoffix pfft.. show off! Next you'll tell us you wrote your own programming language!
00:48 TimToady .tell jnthn Grammar::Tracer calls $meth($obj, |args) where it should call $meth($c, |args)
00:48 yoleaux TimToady: I'll pass your message to jnthn.
00:54 samcv also TimToady we have a 'support' key, and only define email, buggtracker
00:55 samcv what about the module's homepage?
00:55 samcv should that be defined as 'homepage'?
00:58 samcv the rakudo credits has https://github.com/rakudo/rakudo/blob/nom/CREDITS#L8 web-address
00:58 samcv so that's a possibility too and more specific
01:07 samcv and this is meta https://metacpan.org/pod/CPAN::Meta::Spec#resources
01:13 * TimToady foresees that the next wave of malware will involve forking projects to a different auth and giving them a spam homepage :)
01:13 samcv oh my
01:13 samcv also nicely the spdx defines what to write if there is no license as well as if the creator of the META file doesn't know the license
01:14 samcv NONE for no license and NOASSERTION if whoever adds the field doesn't know or makes no assertion as to the license
01:15 samcv i think it would be cool if we had travis ci check to make sure there is at least some license field, even if it says NONE or NOASSERTION it's better than just blank
01:16 samcv and obviously if nobody has the ability to change the meta file then not like you have to listen to travis, and it wouldn't affect commits, just PR
01:32 awwaiid joined #perl6-dev
01:33 Geth ¦ roast: 0c6b07b278 | TimToady++ | 2 files
01:33 Geth ¦ roast: fix for correct BUILD semantics of grammar
01:33 Geth ¦ roast:
01:33 Geth ¦ roast: This test uses a module that lists a bunch of internal methods.  This is
01:33 Geth ¦ roast: suboptimal, but for now just add the methods that are called when a proper
01:33 Geth ¦ roast: new/BUILDALL are done.  (The old code only worked because class Grammar
01:33 Geth ¦ roast: bypassed all that and went straight to nqp, which in turn made it impossible
01:33 Geth ¦ roast: to support user grammars with their own attributes.)
01:33 Geth ¦ roast: <…commit message has 5 more lines…>
01:33 Geth ¦ roast: review: https://github.com/perl6/roast/commit/0c6b07b278
01:40 samcv TimToady, https://design.perl6.org/S22.html#emulates hehehe
01:40 samcv dunno if this is implemented yet or not. but it says thet it will load one module as if it were another if it does not have the original module
01:41 samcv dunno you could probably cause mischief with that
01:41 TimToady you can cause mischief with just about anything :)
01:41 samcv :-)
01:46 samcv gonna make a Bag of all the keys in every single META file in the ecosystem to get a distribution of usage
01:55 Geth ¦ rakudo/nom: db42d62f81 | TimToady++ | src/core/Grammar.pm
01:55 Geth ¦ rakudo/nom: user grammars should work more like real classes
01:55 Geth ¦ rakudo/nom:
01:55 Geth ¦ rakudo/nom: We now actually call .new (as we ought) to fire off all the BUILDALL stuff
01:55 Geth ¦ rakudo/nom: for Capture, Match, and whatever attributes the user adds to their grammar.
01:55 Geth ¦ rakudo/nom: (Capture and Match already had switched to using BUILD for the release, but
01:55 Geth ¦ rakudo/nom: the parse methods didn't honor that yet.)
01:55 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/db42d62f81
02:07 samcv bag(emulates(10), test-depends(301), version(813), name(813), api(4), description(813), excludes(9), resources(145), build-depends(195), supersedes(9), production(10), support(211), source-uri, licence(4), author(285), source-url(779), superseded-by(9), resource(13), tags(149), license(108), auth(155), perl(739), provides(803), meta6(54), history, repo-type(31), authors(411), owner(9), authority(8), depends(771), source-type(69))
02:08 samcv TimToady, only 4 in eco have licenses...
02:08 samcv and two of them are my modules
02:08 samcv that i just changed today
02:08 samcv idk maybe that's wrong
02:09 samcv that should be right though. i mean it picked up every other thing
02:09 samcv that's still depressing
02:09 samcv err oh some are mispelled?
02:09 samcv nice...
02:11 ugexe if its worth anything zef has a white/black list for licenses in its config that you can use on those 4 distributions
02:12 samcv also we have author and authors dunno if author is valid?
02:13 samcv ugexe, what do you mean by that?
02:16 samcv just made a PR to zef to add a license field to its META file
02:16 ugexe "License" : { "whitelist" : "*", "blacklist" : [] } # you can change this in the config to filter dists-to-be-installed by license
02:16 samcv ah
02:16 samcv ah i see
02:16 samcv that's cool though
02:17 samcv can you blacklist modules with no license?
02:17 Zoffix 10 dists have emulates?
02:17 * Zoffix wonders which those are
02:18 samcv Zoffix, https://gist.github.com/51e8a1fd862ad512a7983a1006c176e2 this is the code to find that
02:18 samcv can probably modify it to print out more useful info
02:18 Zoffix `excludes`? what's that
02:18 samcv https://design.perl6.org/S22.html#excludes
02:18 samcv also i want to know who misspelled license... 4 modules worth
02:19 samcv and who used author instead of authors
02:19 samcv which semes to be many people
02:19 Zoffix FWIW, we have an ecosystem JSON file; other than normalizing source URL, it's basically the original META files: http://ecosystem-api.p6c.org/projects.json
02:20 samcv oh. how often updated
02:20 Zoffix every 15 minutes or so. That's our ecosystem file zef/panda use
02:20 samcv nice
02:20 Zoffix Complimentary errors file: http://ecosystem-api.p6c.org/errors.json
02:20 Zoffix s/lim/lem/;
02:21 ugexe https://github.com/rakudo/rakudo/blob/nom/src/core/Distribution.pm#L40 # author has history
02:21 samcv oh no i broke mine
02:21 ugexe method auth { $!auth // $!author // $!authority } # just think about *this*
02:22 Zoffix I fixed the first two errors
02:23 Geth ¦ rakudo/nom: 894ba82de8 | (Zoffix Znet)++ | src/core/IO/Spec/Win32.pm
02:23 Geth ¦ rakudo/nom: [io grant] Make IO::Spec::Win32.split about 82% faster
02:23 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/894ba82de8
02:23 * Zoffix drops to bed
02:39 Zoffix Hm... A critique of TPF grant program on blogs.perl.org right after I posted a TPF grant report...
02:40 samcv heh
02:42 samcv seems people are using `auth` as a key, but that's not in the spec
02:43 samcv well it says what auth is. but it's not in the META section
02:43 samcv it just defines it as a term but doesn't say it's a metadata key at all
03:21 ugexe take anything in there with a grain of salt. but auth happened because dynamically creating the auth from multiple fields did not work well
03:27 ugexe method auth { $!auth // $!author // $!authority } # this is still supported for backcompat, but will probably go aware just be $!auth
03:40 TimToady well, auth is just supposed to be the part of the identity that names who dunnit, such that if someone else dunnit, it's a different one
03:49 samcv yeah i know what it is. but the spec needs to be updated to say that's a META6.json key
03:59 ugexe i mean that same spec also documents @?INC
04:00 ugexe anything you think is missing or wrong probably is
04:17 TimToady joined #perl6-dev
05:04 Geth ¦ roast: 0b199e1a4d | (David Warring)++ | S12-introspection/attributes.t
05:04 Geth ¦ roast: add test for RT #131174
05:04 Geth ¦ roast:
05:04 Geth ¦ roast: incorrect attribute container shape
05:04 Geth ¦ roast: review: https://github.com/perl6/roast/commit/0b199e1a4d
05:04 synopsebot6 Link:  https://rt.perl.org/rt3/Public/Bug/Display.html?id=131174
05:51 RabidGravy joined #perl6-dev
05:58 samcv ugh so many META6 git repos
05:58 samcv META6, and META6bin and META6::Test
05:58 samcv gotta make changes in at least two of them
06:05 Geth ¦ nqp: c594acaf4c | usev6++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java
06:05 Geth ¦ nqp: [JVM] Avoid StringIndexOutOfBoundsException
06:06 Geth ¦ nqp:
06:06 Geth ¦ nqp: ... when using nqp::ord with empty string or invalid offset
06:06 Geth ¦ nqp: review: https://github.com/perl6/nqp/commit/c594acaf4c
06:20 Geth ¦ roast: 896191b66b | usev6++ | S32-io/lock.t
06:20 Geth ¦ roast: [JVM] Fudge another two file locking tests
06:20 Geth ¦ roast: review: https://github.com/perl6/roast/commit/896191b66b
06:58 [Tux] This is Rakudo version 2017.04.2-6-g894ba82de built on MoarVM version 2017.04
06:58 [Tux] csv-ip5xs        3.049
06:58 [Tux] test            12.700
06:58 [Tux] test-t           5.102 - 5.476
06:58 [Tux] csv-parser      13.658
07:04 llfourn joined #perl6-dev
08:02 lizmat Files=1191, Tests=56770, 198 wallclock secs (11.83 usr  4.59 sys + 1162.78 cusr 109.40 csys = 1288.60 CPU)
08:02 yoleaux 19 Apr 2017 22:43Z <Zoffix> lizmat: some material for Weekly, if there's space: There's an OSX REPL history bug that made it into release (and thus R*). Displays a message about failed mkdir '/' and doesn't save history. Most users can probably just ignore the message and move on with their lives, but if they really need saved history they can make a shell alias for REPL That Saves:
08:02 yoleaux 19 Apr 2017 22:43Z <Zoffix> lizmat: https://gist.github.com/zoffixznet/6a0d212ada41fce7aeca15fa9efcc263
08:02 samcv .tell yoleaux thx for your tireless message relaying
08:02 yoleaux samcv: Thanks for the message.
08:03 lizmat :-)
08:03 nine dogbert17: BIOS update did the trick. Temperature is now being reported correctly and when I turn off the spinning rust I use for multimedia data, the system is now almost inaudible. Not even heavy spec testing raises the noise level :)
08:58 astj joined #perl6-dev
09:32 dogbert17_ nine: very cool, sound as if you're quite satisfied :)
09:35 * jnthn should prod the folks meant to be building/delivering his new machine today..
09:35 yoleaux 00:48Z <TimToady> jnthn: Grammar::Tracer calls $meth($obj, |args) where it should call $meth($c, |args)
09:44 nine dogbert17_: oh definitely :)
10:06 jnthn Argh, what...
10:07 jnthn perl6-m -e "say 'README.md'.IO.e"
10:07 jnthn True
10:07 jnthn perl6-m -e "say 'README.md'.IO.resolve.e"
10:07 jnthn False
10:07 Zoffix ...
10:07 jnthn (Yes, there is a README.md)
10:07 jnthn On Windows fwiw
10:08 jnthn No problem on Linux
10:08 jnthn say 'README.md'.IO.resolve
10:08 evalable6 jnthn, rakudo-moar 894ba82de: OUTPUT: «"/home/bisectable/git/whateverable/README.md".IO»
10:08 jnthn Is correct
10:09 jnthn oh wait
10:09 jnthn It's not
10:09 jnthn perl6-m -e "say 'README.md'.IO.resolve"
10:09 jnthn "\C:\consulting\rakudo\README.md".IO
10:09 jnthn Spot the extra \
10:09 jnthn Let me grab rakudo HEAD
10:09 Zoffix jnthn: what perl6 version?
10:09 jnthn Though I was pretty close anyway
10:09 jnthn This is Rakudo version 2017.04.2-4-gb4fa6d6 built on MoarVM version 2017.04
10:09 jnthn implementing Perl 6.c.
10:11 * Zoffix guesses the 63x faster Win32 spec method was also some x wronger :(
10:11 Zoffix Good thing I merged it post-release
10:11 jnthn Confirmed at HEAD
10:12 jnthn Now back to the last release
10:12 jnthn And will check there
10:12 jnthn I'd bumped to get the perf improvements which actually knocked 50ms-100ms off startup time
10:13 astj joined #perl6-dev
10:13 astj joined #perl6-dev
10:14 jnthn perl6-m --version
10:14 jnthn This is Rakudo version 2017.04.2 built on MoarVM version 2017.04
10:14 jnthn implementing Perl 6.c.
10:14 jnthn perl6-m -e "say 'README.md'.IO.resolve"
10:14 jnthn "\C:\consulting\rakudo\README.md".IO
10:14 jnthn :(
10:15 Zoffix craaaap
10:15 nine rakudo startup takes 85ms here. Knocking off 50-100ms of that would be fantastic ;)
10:15 Zoffix heh
10:16 jnthn nine: This isn't Rakudo startup, it's my app's startup, fwiw, which loads a ton of modules, and in doing so spent about 50% of its time in Windows path mangling
10:16 jnthn Thus starting up about twice as slow on my Windows host compared to in my Linux VM :)
10:18 nine oh, ok :)
10:18 jnthn Urgh, this bug is...uh...a problem
10:19 jnthn Guess I can work around it with say 'README.md'.IO.absolute.IO.e for now
10:21 Zoffix bisect: say ".".IO.WHAT.new('C:/README.md', :SPEC(IO::Spec::Win32.new)).resolve
10:21 bisectable6 Zoffix, On both starting points (old=2015.12 new=894ba82) the exit code is 0 and the output is identical as well
10:21 bisectable6 Zoffix, Output on both points: «"\C:\README.md".IO»
10:21 Zoffix reaaaally
10:22 jnthn o.O
10:23 Zoffix C:\>perl6 -e "dd $*PERL.compiler.version; dd 'vcredist.bmp'.IO.resolve"
10:23 Zoffix v2016.11
10:23 Zoffix "\\C:\\vcredist.bmp".IO(:SPEC(IO::Spec::Win32))
10:23 Zoffix Well, I'm glad it's not a regression I broke :}
10:23 Zoffix But how in the world has this stayed undetected for so long :/
10:24 nine Very few Windows users?
10:26 jnthn Or few users of .resolve?
10:28 jnthn Then take the intersection
10:30 nine set(jnthn)
10:31 jnthn Apparently ;)
10:34 Zoffix jnthn: so how many percent of startup time 50-100ms is?
10:36 Zoffix Ah, there's a comment in IO::Path.resolve that says '# XXXX: Not portable yet; assumes POSIX semantics'. I guess that's how not-portability manifests itself
10:41 jnthn Zoffix: It stood a bit over 600ms; now it's reliably under 600ms
10:41 jnthn As opposed to 200ms-300ms on Linux
10:41 jnthn Oh, to be fair, that's also including time to generate the usage message
10:41 astj joined #perl6-dev
10:41 jnthn from MAIN
10:41 jnthn Which has quite a few candidates
10:43 Ulti on macOS `time perl6 -e 'sub MAIN {}' ` is 0.178s real for me
10:43 yoleaux 19 Apr 2017 18:51Z <Zoffix> Ulti: there are some unmerged PRs that've been marinating for months. Do you mind merging them? https://github.com/MattOates/Text--Homoglyph/pulls
10:43 Ulti whoa
10:47 Ulti doh should have properly reviewed those
10:47 Ulti why are people messing around with the file name
10:49 Ulti Zoffix: I'll fix it up, some of my other modules also need the .* perl version really
10:50 astj joined #perl6-dev
10:50 Zoffix Ulti: "Is there a preference for .json rather than .info I wasnt aware of?"  Not a preference. META.info is not a thing. It's an old, pre-Christmas meta name
10:51 Ulti whoa there are loads of PR I've ignored
10:51 Ulti Zoffix: okedoke I'll make sure to change that
10:51 Ulti thanks
11:30 tadzik joined #perl6-dev
12:00 TimToady joined #perl6-dev
12:26 Zoffix .ask mst would you know whether it's possible to debug Travis's IRC bot connection timeouts to Freenode? We've not seen their bot for a while and they responded to me: https://twitter.com/travisci/status/855034311103455232
12:26 yoleaux Zoffix: I'll pass your message to mst.
12:27 Zoffix The username it joins with is `travis-ci`
12:32 MasterDuke_ joined #perl6-dev
12:50 Zoffix m: use nqp; dd nqp::getlexdyn(q|$*PERL|)
12:50 camelia rakudo-moar 894ba8: OUTPUT: «Mu␤»
12:51 Zoffix What sort of name does getlexdyn take?
12:52 Zoffix reading its use in sauce, suggests the above should work, so what gives?
12:52 Zoffix m: use nqp; my $*PERL = 42; dd nqp::getlexdyn(q|$*PERL|)
12:52 camelia rakudo-moar 894ba8: OUTPUT: «Mu␤»
12:52 Zoffix m: use nqp; my $*PERL = 42; { dd nqp::getlexdyn(q|$*PERL|) }
12:52 camelia rakudo-moar 894ba8: OUTPUT: «Int $*PERL = 42␤»
12:52 Zoffix Ahhh. OK, got it
12:58 jnthn It doesn't do any failover stuff
13:20 Geth ¦ rakudo/nom: 1d6a0023e8 | (Zoffix Znet)++ | src/core/Rakudo/Internals.pm
13:20 Geth ¦ rakudo/nom: Micro-optimize reg/init dynamic
13:20 Geth ¦ rakudo/nom:
13:20 Geth ¦ rakudo/nom: The nqp concat is about 60% faster, but I don't think these methods
13:20 Geth ¦ rakudo/nom: are called all that many times.
13:20 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/1d6a0023e8
14:06 AlexDaniel joined #perl6-dev
14:10 Zoffix ZOFFLOP: t/spec/S10-packages/precompilation.t
14:12 AlexDaniel “I'd bumped to get the perf improvements which actually knocked 50ms-100ms off startup time” 50ms-100ms startup time improvement? WAT?
14:12 AlexDaniel ah
14:12 AlexDaniel read the next message… okay
14:13 jnthn Context is everything :P
14:14 AlexDaniel would've been better if context came before that message :)
14:14 Geth ¦ rakudo/nom: 277b6e5b74 | (Zoffix Znet)++ | src/core/IO/Spec/Unix.pm
14:14 Geth ¦ rakudo/nom: [io grant] Make IO::Spec::Unix.rel2abs 2.9x faster
14:14 Geth ¦ rakudo/nom:
14:14 Geth ¦ rakudo/nom: Used by IO::Path.absolute and .absolute is used all over the place,
14:14 Geth ¦ rakudo/nom: so this should give some sort of gravity boost.
14:14 Geth ¦ rakudo/nom:
14:14 Geth ¦ rakudo/nom: - Don't call .catdir, do the thing ourself and bypass the slurpy
14:14 Geth ¦ rakudo/nom: - Don't call .canonpath twice; once should be sufficient
14:14 Geth ¦ rakudo/nom: - Don't add '/' to end of path like .catdir does, as .canonpath
14:14 Geth ¦ rakudo/nom:     strips it anyway (similar patch to .catdir coming up soon)
14:14 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/277b6e5b74
14:16 AlexDaniel hmmm I should really make statisfiable6 measure startup time
14:18 AlexDaniel mhm okay, issue #131… https://github.com/perl6/whateverable/issues/131
14:23 Zoffix "similar patch to .catdir coming up soon"; it isn't, as in catdir it handles a special case, but it don't matter for rel2abs
14:24 Zoffix roast++ :)
14:26 Zoffix m: dd IO::Spec::Unix.catdir: ''
14:26 camelia rakudo-moar 1d6a00: OUTPUT: «"/"␤»
14:26 Zoffix Weird special case IMO
14:30 committable6 joined #perl6-dev
14:32 Zoffix ZOFVM: Files=1241, Tests=133747, 110 wallclock secs (21.56 usr  3.07 sys + 2293.52 cusr 123.34 csys = 2441.49 CPU)
14:37 Zoffix m: use MONKEY; augment class Rat { has $!foo; method x { $!foo } }; Rat.new.x
14:37 camelia rakudo-moar 277b6e: OUTPUT: «P6opaque: no such attribute '$!foo' in type Rat when trying to get a value␤  in method x at <tmp> line 1␤  in block <unit> at <tmp> line 1␤␤»
14:37 Zoffix Can't augment-in new attributes, eh?
14:39 jnthn No
14:41 jnthn Maybe some day we'll manage it but...it's rather problematic to support
14:42 jnthn Or at least, it is if you're using memory layout for attributes where you just store them in an object body
14:42 jnthn Which is what P6opaque does
14:43 nine How are mixins handled?
14:49 jnthn nine: By a change of type table on the individual object being mixed in to, migrating the attributes to another piece of memory that P6opaque has a slot for (which is waste on most objects), making every attribute lookup we do cost an extra branch because of checking this pointer, forcing a deopt of the whole stack and hoping it's sufficient but it ain't because threads but we usually get away with it, and probably leaking memory if you mix i
14:49 Zoffix "Invalid BUILD_LEAST_DERIVED plan"... welll, that's new :o
14:49 Zoffix m: https://gist.github.com/zoffixznet/280bdb99a350dc4a63cc02d50c265da2
14:50 camelia rakudo-moar 277b6e: OUTPUT: «Invalid BUILD_LEAST_DERIVED plan␤  in block <unit> at <tmp> line 26␤␤»
14:51 jnthn nine: There are ways to do better on most of the problematic things there.
14:51 Zoffix m: $ = 42 but role { has int $!x  }
14:51 camelia rakudo-moar 277b6e: ( no output )
14:51 Zoffix m: $ = 42 but role { has int $!x = 42 }
14:51 camelia rakudo-moar 277b6e: OUTPUT: «Invalid BUILD_LEAST_DERIVED plan␤  in block <unit> at <tmp> line 1␤␤»
14:52 jnthn Though I suspect many of them involve making mixed-in-to things perform a bit worse as the cost for making everything that isn't cheaper
14:53 Zoffix Rakudobugged: https://rt.perl.org/Ticket/Display.html?id=131181
14:54 jnthn Zoffix: That's an...interesting...one :)
14:55 Zoffix :)
14:55 nine jnthn: I'm glad we have still opportunities for huge improvements like that :)
14:55 jnthn We do but...
14:56 jnthn If multis are anything to go by, people nearly never say "oh gosh, thanks for spending hours/days/weeks/months figuring out how to make X fast", just "omg Y is so slow compared to X" :P
14:56 Zoffix heh
14:57 jnthn So if we make most things faster but not mixins, then they comparatively end up seeming glacial, even if they didn't get any worse. ;)
14:59 jnthn So far we didn't actually define the cross-thread visibility of mixins though :)
14:59 jnthn Or, well, many other things
14:59 jnthn Which we'll need to at some point
15:00 jnthn But these things are pretty hard; I think it took until Java 5 for them to get a good one. :)
15:03 timotimo hm. the build least derived interpreter can only handle instructions 0 through 7 and also 13
15:13 Zoffix ZOFFLOP: t/spec/S11-modules/nested.t
15:14 Geth ¦ rakudo/nom: 74680d44f4 | (Zoffix Znet)++ | src/core/IO/Path.pm
15:14 Geth ¦ rakudo/nom: [io grant] Make IO::Path.is-absolute about 80% faster
15:14 Geth ¦ rakudo/nom:
15:14 Geth ¦ rakudo/nom: Benched with IO::Spec::Unix spec
15:14 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/74680d44f4
15:17 Zoffix s/Benched with <(.+/pre-set attr/
15:18 AlexDaniel bloatable6: releases
15:18 bloatable6 AlexDaniel, https://gist.github.com/555bfbc3b0a41c3d680c71fbe0e9e77c
15:19 AlexDaniel we are growing \o/ :S
15:19 Zoffix ?
15:19 Zoffix That URL is busted
15:19 AlexDaniel Zoffix: F5, github problems
15:19 Zoffix ah
15:22 Geth ¦ rakudo/nom: ff23416b1e | (Zoffix Znet)++ | src/core/IO/Path.pm
15:22 Geth ¦ rakudo/nom: [io grant] Make IO::Path.is-relative about 2.1x faster
15:22 Geth ¦ rakudo/nom:
15:22 Geth ¦ rakudo/nom: Benched for repeated calls or paths made with
15:22 Geth ¦ rakudo/nom: !new-from-absolute-paths.
15:22 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/ff23416b1e
15:44 Zoffix ZOFFLOP: t/spec/S11-modules/nested.t
15:52 Geth ¦ rakudo/nom: 7364afdcf7 | (Zoffix Znet)++ | src/core/IO/Spec/Unix.pm
15:52 Geth ¦ rakudo/nom: Improve readability of code
15:52 Geth ¦ rakudo/nom:
15:52 Geth ¦ rakudo/nom: && and || codegen to nqp::if/nqp::unless, so we can use those to
15:52 Geth ¦ rakudo/nom: make this code more readable.
15:52 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/7364afdcf7
15:53 Zoffix Hm, consistently getting 114s stresstests now; was 111s in the morning. Wonder if that's just Google giving less "power" to my VM or my optimizations actually suck :|
15:57 Zoffix So... what's global deopt and interning?
16:01 Zoffix ok 112s now. I guess the former hypothesis is truer
16:03 Geth ¦ rakudo/nom: d272667638 | (Zoffix Znet)++ | src/core/IO/Spec/Unix.pm
16:03 Geth ¦ rakudo/nom: [io grant] Make IO::Spec::Unix.join about 40% faster
16:03 Geth ¦ rakudo/nom:
16:03 Geth ¦ rakudo/nom: Used in a bunch of places in IO::Path  like
16:03 Geth ¦ rakudo/nom: .add/.child/.parent/.sibling and .new from parts.
16:03 Geth ¦ rakudo/nom:
16:03 Geth ¦ rakudo/nom: Get more speed by copying relevant bits of .catpath impl
16:03 Geth ¦ rakudo/nom: into .join and avoiding the method call.
16:03 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/d272667638
16:11 robertle joined #perl6-dev
16:26 astj joined #perl6-dev
17:20 ugexe just confirming (from backlog) that .resolve never worked right on windows
17:29 * Zoffix will fix it by next release
17:45 Zoffix Can someone give me perms to make new repos in https://github.com/perl6-community-modules/ ?
17:45 Zoffix Gonna start FastIO module...
17:58 timotimo it says you are already in this organization
17:59 Zoffix timotimo: but I can't make new repos.
17:59 Zoffix I see I'm listed as "Member". Can I be "Owner"? If, can you create FastIO repo and give me commit bit to it
17:59 timotimo that mig htahve don et
17:59 timotimo ...
18:00 timotimo that might have done it
18:00 Zoffix Yey
18:00 Zoffix timotimo++ thanks
18:04 timotimo though i considered perl6-community-modules to just be for when modules got abandoned
18:06 Zoffix I thought it was modules made by perl6 community
18:07 Zoffix kinda long to type tho
18:07 Zoffix .oO( perl6-mods )
18:08 timotimo stack some mods on yo perl6
18:15 Zoffix Interesting. Coverage shows IO::Path.perl is hit, but I can see it has a definite bug; it won't roundtrip
18:15 Zoffix m: ".".IO.perl.eval
18:15 camelia rakudo-moar d27266: OUTPUT: «No such method 'eval' for invocant of type 'Str'␤  in block <unit> at <tmp> line 1␤␤»
18:15 Zoffix m: ".".IO.perl.EVAL
18:15 camelia rakudo-moar d27266: ( no output )
18:15 Zoffix reallly
18:16 Zoffix Ah, it passes args as named, so it doesn't crash outright, but the args *are* ignored
18:16 Zoffix m: dd ".".IO.perl
18:16 camelia rakudo-moar d27266: OUTPUT: «"\".\".IO(:SPEC(IO::Spec::Unix),:CWD(\"/home/camelia\"))"␤»
18:16 Zoffix m: dd ".".IO.WHAT.new(".", :SPEC(IO::Spec::Win32)).perl
18:16 camelia rakudo-moar d27266: OUTPUT: «"\".\".IO(:SPEC(IO::Spec::Win32),:CWD(\"/home/camelia\"))"␤»
18:16 Zoffix m: dd ".".IO.WHAT.new(".", :SPEC(IO::Spec::Win32)).perl.EVAL.perl
18:16 camelia rakudo-moar d27266: OUTPUT: «"\".\".IO(:SPEC(IO::Spec::Unix),:CWD(\"/home/camelia\"))"␤»
18:16 Zoffix hehe
18:17 AlexDaniel joined #perl6-dev
18:19 * Zoffix spots an error in https://github.com/rakudo/rakudo/commit/7364afdcf7
18:19 Zoffix I mean in https://github.com/rakudo/rakudo/commit/ff23416b1e
18:21 timotimo if and not_i swapped?
18:21 timotimo oh, no that's probably fine
18:21 timotimo oooh
18:21 timotimo $!SPEC vs $.SPEC
18:21 timotimo er
18:21 timotimo $*SPEC
18:21 Zoffix Yup
18:21 timotimo in one of those
18:22 timotimo well, it's past the release, which is good :)
18:25 Geth ¦ rakudo/nom: ce37b31a3d | (Zoffix Znet)++ | src/core/IO/Path.pm
18:25 Geth ¦ rakudo/nom: Fix typo
18:25 Geth ¦ rakudo/nom:
18:25 Geth ¦ rakudo/nom: Change in earlier commit accidentally swapped $!SPEC to $*SPEC
18:25 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/ce37b31a3d
18:33 Zoffix Looking through IO::Path, I'm a bit dubious will get any sort of miraculous perf gains by abandoning $*SPEC
18:33 Zoffix s/will/we'll/;
18:34 [Coke] m: s/will/we'll/;
18:34 camelia rakudo-moar ce37b3: OUTPUT: «Use of uninitialized value of type Any in string context.␤Methods .^name, .perl, .gist, or .say can be used to stringify it to something meaningful.␤  in block <unit> at <tmp> line 1␤»
18:35 Zoffix At least on Linux, there's not much of a loss of perf due to $*SPEC. Possibly just a couple of method calls saved in a few select IO::Path methods + 1 DYNAMIC call
18:40 Zoffix I think I'm gonna do something more fun: instead of hacking away all the $!SPEC stuff and maintaining same API, make an new IO::Path from scratch, starting with *nix-only support.
18:40 Zoffix And if that ends up only marginally faster, give up.
18:41 Zoffix I mean in FastIO module, not in core.
18:43 Zoffix The one pain-point I see is for every new IO::Path we make, we stringify $*CWD
18:51 lizmat joined #perl6-dev
19:03 AlexDaniel joined #perl6-dev
19:17 timotimo will be interesting to see
19:40 MasterDuke_ timotimo: i had the allocation stuff wrong before, but it looks like it's good now
19:40 timotimo oh!
19:41 timotimo i didn't notice :(
19:41 MasterDuke_ well, in the branch i'm working on
19:41 MasterDuke_ but now you can recreate the two views in the current allocations tab
19:41 timotimo fantabulastic
19:42 MasterDuke_ total allocations by type, and which routines they were allocated in
19:43 timotimo it's dinner time here right now!
19:43 MasterDuke_ what was the other info you were interested in? which routines called a particular other routine?
19:43 timotimo exactly
19:44 timotimo i.e. "who the hell is calling bind_one_param all the damn time"
19:44 MasterDuke_ i'll see if i can figure that out
19:59 geekosaur joined #perl6-dev
20:00 nine That would be sooo helpful
20:02 MasterDuke_ i do enjoy sql, and haven't gotten to do any at $work in a while
21:34 lizmat joined #perl6-dev
22:58 astj joined #perl6-dev
22:59 BenGoldberg joined #perl6-dev

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