Perl 6 - the future is here, just unevenly distributed

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

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

All times shown according to UTC.

Time Nick Message
00:08 astj joined #perl6-dev
00:57 geekosaur joined #perl6-dev
01:04 astj joined #perl6-dev
01:25 astj joined #perl6-dev
02:15 sasheto joined #perl6-dev
02:50 BenGoldberg If it weren't so obviously a fruity frozen ice cream thing, I would suspect they'd used chocolate covered pop rocks.
03:23 Geth ¦ nqp: 01c1cd0100 | MasterDuke17++ | src/vm/moar/HLL/Backend.nqp
03:23 Geth ¦ nqp: Some minor optimizations to profiling code
03:23 Geth ¦ nqp:
03:23 Geth ¦ nqp: Move the creation of a variable down to where it's actually used. Make some ints explicitly so.  Make some lists native.
03:23 Geth ¦ nqp:
03:23 Geth ¦ nqp: Sped up to_sql() by ~5%.
03:23 Geth ¦ nqp: review: https://github.com/perl6/nqp/commit/01c1cd0100
04:01 AlexDaniel joined #perl6-dev
05:00 AlexDaniel joined #perl6-dev
05:34 Geth ¦ roast: 4fbc81e42e | usev6++ | S32-io/lock.t
05:34 Geth ¦ roast: [JVM] Fudge failing tests for file locking
05:34 Geth ¦ roast: review: https://github.com/perl6/roast/commit/4fbc81e42e
05:52 RabidGravy joined #perl6-dev
05:55 lizmat_ Files=1191, Tests=56770, 205 wallclock secs (12.31 usr  4.73 sys + 1210.59 cusr 117.41 csys = 1345.04 CPU)
06:08 samcv thx lizmat :)
06:19 bartolin r: use nqp; say nqp::ord("")
06:19 yoleaux 18 Apr 2017 10:03Z <Zoffix> bartolin: Thanks. Fixed by undoing the bugfix for JVM: https://github.com/rakudo/rakudo/commit/88a6facc81e95d2bcc3ada5f5bfbf701e97181f4
06:19 camelia rakudo-jvm fb4f16: OUTPUT: «java.lang.StringIndexOutOfBoundsException: String index out of range: 0␤  in block <unit> at <tmp> line 1␤␤»
06:19 camelia ..rakudo-moar e1c086: OUTPUT: «-1␤»
06:19 bartolin r: use nqp; say nqp::ord("foo", 7)
06:19 camelia rakudo-jvm fb4f16: OUTPUT: «java.lang.StringIndexOutOfBoundsException: String index out of range: 7␤  in block <unit> at <tmp> line 1␤␤»
06:19 camelia ..rakudo-moar e1c086: OUTPUT: «-1␤»
06:22 bartolin ^^ that seems to be behind cannon-cat blowing up on JVM. would it make sense to return -1 on JVM as well or would the cleaner solution be to add checks in Rakudos code
06:22 bartolin https://github.com/rakudo/rakudo/blob/e1c086b7a75115864238536415834efdaf064828/src/core/IO/Spec/Win32.pm#L198
06:22 bartolin r: say IO::Path::Cygwin.new("/usr/bin").relative("/usr")  ## blows up on rakudo-j now
06:22 camelia rakudo-moar e1c086: OUTPUT: «Cannot dispatch to method new on IO::Path because it is not inherited or done by IO::Path::Cygwin␤  in block <unit> at <tmp> line 1␤␤»
06:22 camelia ..rakudo-jvm fb4f16: OUTPUT: «bin␤»
06:23 bartolin (locally I get 'bin' from rakudo-m as well)
06:29 lizmat_ joined #perl6-dev
06:54 [Tux] This is Rakudo version 2017.04.2-2-ge1c086b7a built on MoarVM version 2017.04
06:54 [Tux] csv-ip5xs        3.077
06:54 [Tux] test            12.780
06:54 [Tux] test-t           5.113 - 5.198
06:54 [Tux] csv-parser      13.743
07:19 [Tux] joined #perl6-dev
07:29 nine rakudo and perl6-Inline-Perl5 packages ready for installation: http://download.opensuse.org/repositories/home:/niner9:/branches:/devel:/languages:/parrot/openSUSE_Leap_42.2/x86_64/
07:37 samcv nice
08:59 astj_ joined #perl6-dev
09:44 robertle joined #perl6-dev
10:05 Zoffix bartolin: -1 on JVM makes more sense to me. No point in adding length checks all over rakudo's source
10:05 * Zoffix is working on another commit that'll have several more ords
10:06 Zoffix m: say IO::Path::Cygwin.new("/usr/bin").relative("/usr")
10:06 camelia rakudo-moar e1c086: OUTPUT: «Cannot dispatch to method new on IO::Path because it is not inherited or done by IO::Path::Cygwin␤  in block <unit> at <tmp> line 1␤␤»
10:06 Zoffix wtf
10:06 Zoffix Ah. RESTRICTED bites again
10:10 Geth ¦ rakudo/nom: 6f3de66415 | (Timo Paulssen)++ | src/perl6-debug.nqp
10:10 Geth ¦ rakudo/nom: get perl6-debug-m past the setlang error
10:10 Geth ¦ rakudo/nom:
10:10 Geth ¦ rakudo/nom: and straight into bizzarro-world where everything gives
10:10 Geth ¦ rakudo/nom: mysterious errors …
10:10 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/6f3de66415
10:12 timotimo for some reason this commit wasn't enough to get us to a repl yesterday
10:12 timotimo but it is now, so ... ?!?
10:15 Zoffix That's it?
10:15 timotimo well, no
10:15 Zoffix There was someone asking about a month or so ago and I promised the fix to be in the release...
10:15 timotimo you can't do a single solitary thing with it
10:15 Zoffix Ah. OK
10:16 timotimo > eval say "hi"
10:16 timotimo Non ast passed to WANTED: NQPMu
10:16 timotimo Weird node in analyze: NQPMu
10:16 timotimo Unknown QAST node type NQPMu
10:18 timotimo m: my $result = try "oh lord".&die // "default"; say $result
10:18 camelia rakudo-moar e1c086: OUTPUT: «(Any)␤»
10:18 Zoffix m: my $result = (try "oh lord".&die) // "default"; say $result
10:18 camelia rakudo-moar e1c086: OUTPUT: «default␤»
10:18 timotimo yeah
10:19 * Zoffix wants a .try :)
10:19 Zoffix my $result = "oh lord".&die.try // "default";
10:19 timotimo hah
10:19 timotimo m: my $result = try "oh lord".&fail // "default"; say $result
10:19 camelia rakudo-moar e1c086: OUTPUT: «default␤»
10:19 timotimo i did not expect this
10:19 timotimo m: my $result = try "oh lord".&fail.thismethnotexists // "default"; say $result
10:19 camelia rakudo-moar e1c086: OUTPUT: «(Any)␤»
10:19 timotimo oh
10:53 Zoffix oh shit
10:54 timotimo uh oh, what's wrong?
10:54 Zoffix Was about to tell bdfoy to use .unique: :as instead of .unique: :with, because `:with` has  O(n²/2) complexity and chokes on ~4000+ elems
10:55 Zoffix But surprise surprise, I couldn't make my bench show the massive difference
10:55 Zoffix m: my @p = 1..40000; $ = @p.unique: :with(-> $a, $, { dd $a }); say now - INIT now
10:55 camelia rakudo-moar 6f3de6: OUTPUT: «0.0280431␤»
10:55 Zoffix And that's because it looks like :with is ignored :(
10:55 Zoffix star: my @p = 1..40000; $ = @p.unique: :with(-> $a, $, { dd $a }); say now - INIT now
10:55 camelia star-m 2016.10: OUTPUT: «0.0283061␤»
10:55 Zoffix Oh
10:55 Zoffix Or maybe I need more coffee
10:56 Zoffix c: 2017.02 my @p = 1..40000; $ = @p.unique: :with(-> $a, $, { dd $a }); say now - INIT now
10:56 committable6 Zoffix, ¦2017.02: «0.025751»
10:56 Zoffix wtf?
10:56 llfourn Zoffix: try the coffee thing first it might be easier
10:56 Zoffix llfourn: well, why doesn't it get called?
10:57 * llfourn goes to look at src
10:57 Zoffix c: 2017.02 my @p = 1..40000; $ = @p.unique: :with(-> $a, $, { dd $a; 42 }); say now - INIT now
10:57 committable6 Zoffix, ¦2017.02: «0.0251288»
10:57 Zoffix s: [], 'unique', \(:with(-> $a, $, { dd $a }))
10:57 SourceBaby Zoffix, Sauce is at https://github.com/rakudo/rakudo/blob/6f3de66/src/core/Any-iterable-methods.pm#L1591
10:58 Zoffix eager
10:58 Zoffix m: 2017.02 my @p = 1..40000; @ = @p.unique: :with(-> $a, $, { dd $a; 42 }); say now - INIT now
10:58 camelia rakudo-moar 6f3de6: OUTPUT: «5===SORRY!5=== Error while compiling <tmp>␤Two terms in a row␤at <tmp>:1␤------> 2017.027⏏5 my @p = 1..40000; @ = @p.unique: :with(␤    expecting any of:␤        infix␤        infix stopper␤        statement end␤        statem…»
10:58 timotimo oh, hah :)
10:58 Zoffix m: my @p = 1..40000; @ = @p.unique: :with(-> $a, $, { dd $a; 42 }); say now - INIT now
10:58 timotimo you weren't taking the values out?
10:58 Zoffix THERE we go
10:58 camelia rakudo-moar 6f3de6: OUTPUT: «Int $a = 2␤Int $a = 3␤Int $a = 4␤Int $a = 5␤Int $a = 6␤Int $a = 7␤Int $a = 8␤Int $a = 9␤Int $a = 10␤Int $a = 11␤Int $a = 12␤Int $a = 13␤Int $a = 14␤Int $a = 15␤Int $a = 16␤Int $a = 17␤Int $a = 18␤Int $a = 19␤Int $a = 2…»
10:58 timotimo phew
10:58 Zoffix *phew* :) No bug
11:02 llfourn hah :)
11:29 AlexDaniel joined #perl6-dev
12:01 timotimo yo Zoffix
12:02 timotimo i'm going to push a branch that ought to give more precision in the coverage report
12:02 timotimo can you give me a before/after for spectest (or something smaller)?
12:04 timotimo it's MoarVM/line_coverage_precision
12:07 * Zoffix is a bit annoyed with all the TODOs in the docs
12:07 Zoffix https://docs.perl6.org/type/Any#method_iterator
12:08 timotimo oh wow
12:08 Zoffix Or rather, annoyed by the person who added them and then fucked off from perl6 org.
12:08 Zoffix The parable about a bad programmer creating job for 2 good programmer rings so true right about now.
12:10 Zoffix timotimo: OK, but probably not until the weekend.
12:10 timotimo hm, okay
12:10 timotimo i can try it myself, though only on the nqp test suite, i'd imagine
12:11 timotimo the output from before/after this stuff is a bit strange
12:15 nine /win 10
12:15 Zoffix BINGO!
12:22 timotimo yeah, i think the branch makes things a bit better
12:22 Zoffix sweet
12:22 timotimo but across the whole nqp test it's only a few lines more that are covered ...?!
12:23 timotimo but somehow one line got actually lost
12:27 timotimo i'll have a look what valgrind thinks, maybe i'm reallocing off-by-one or something
12:30 [Coke] Zoffix: (group key) (hostile key) not sure how a single key protects us against an 'apeshit' user, if they have access to the group key.
12:32 Zoffix Dunno
12:32 [Coke] I do agree that the happy bpath for our users is easier.
12:32 timotimo i did have an off-by-one
12:33 Zoffix ZofBot: the two hardest problems in compsci is cache invalidation, naming things, and off-by-one errors
12:33 ZofBot Zoffix, japhb: you mean decoding utf8 without doing any normalization, yeah?
12:40 timotimo rather annoying that i can't rebuild moarvm without "make test" in nqp recompiling nqp
12:41 timotimo though i can just cp over moar and libmoar.so and it won't trigger
12:42 timotimo it's probably due to the .nqp files moar generates so nqp knows about all ops and such
12:43 timotimo OK, now there's only + lines in the diff
12:56 MasterDuke_ Zoffix: that's a bit harsh. "the person who added them and then fucked off from perl6 org" has the 2nd most number of commits to the docs of all time. they didn't just add those todos and then leave
12:58 Zoffix Yes, they also added half-assed implementation of Pod::To::BigPage that 'caused installation issues for, what, 3 months? And everyone was too polite to tell them to stop using broken prereq
12:58 Zoffix And they also added awful hacks (like absuing subsets with runtime requires) to the docs that users will read as proper code.
12:59 Zoffix They also changed the TOC to use coding practices outdated in 1999 and then went apeshit when pointed out the dozens of commits they were adding could be avoided with 2 CSS rules
13:00 Zoffix And the TOC is still broken on narrower layouts
13:00 Zoffix But yes, tell me about commit count.
13:01 Zoffix Especially since the reason they fucked off was another fit thrown when it was pointed out the broken Pod::To::BigPage blocked users from viewing https://docs.perl6.org/perl6.xhtml in common browsers.
13:02 Zoffix Oh oh
13:04 Zoffix Let's not forget the assinine URL escapes that added $COLON$HOLY$CRAP$AT$THESE$URLS into all URLs. That's also their handiwork. The code that handles these is all over the place in htmlify.p6 and the module it loads so I couldn't even hunt down all the places the escape is applied
13:04 Zoffix Just want to give credit where credit is due!
13:06 nine Zoffix: so what's your suggestion for moving on?
13:07 Zoffix nine: moving on with what?
13:08 nine Zoffix: well, you just gave us a nice list of things where improvements are due. Do you have suggestions on how to get that going?
13:08 nine Zoffix: IDK, encouraging new contributors, or reverting the objectionable commits or whatever?
13:08 perlpilot nine: I think he had that list because those are things he's had to fix.
13:12 Zoffix nine: samcv++ fixed the $COLON thing after I wasted 40 minutes on it and gave up. I'll be making my own doc site, so I couldn't care less about the markup on docs.perl6.org. RabidGravy fixed the bug in User Agent module Pod::To::BigPage was using so the issue that was breaking installations for 3 months i no longer there. I removed the subset hack from docs about a month ago, so it's no longer there. And
13:12 Zoffix all the TODO methods: I'd just remove them all. The one I looked at this morning: Any.unique and List.unique are all handled by the same method, so I don't know why List.unique has a section and Any.unique is listed as a TODO
13:14 nine Zoffix: ok, so at least the mess is cleaned up mostly already.
13:14 Zoffix for docs markup: remove the <table> and just use CSS; don't use .xhtml in perl6.xml and add proper CSS file to it
13:14 Zoffix s/.xhtml/XHTML/;
13:18 Zoffix I think the pre-table markup just needed #TOC li { list-type: none; margin-left: 0; padding-left: 0 }; instead of making everything a table
13:22 nine so simple :)
13:26 Zoffix Indeed it was. Here's my showing a working JSFiddle followed by them saying "please stop": https://irclog.perlgeek.de/perl6/2016-07-07#i_12801062
13:34 nine Now that's a discussion gone wrong...
13:36 Zoffix "But whatever... I'm not looking to make another enemy in #perl6"
13:36 Zoffix Wonder who my first enemy was...
13:36 Zoffix ZofBot: world peace by amnesia!
13:36 ZofBot Zoffix, On the other hand, while an unspace can start with "\#" in normal code, "\#" within a regex is specifically allowed, and is not taken as unspace, but matches a literal "U+0023" (NUMBER SIGN)
13:38 nine It's really sad to see such arguing when all people involved actually try to help and do good
13:40 Zoffix nine: BTW there's a ticket about require issues. I'm not exactly sure what they are. The last response suggests there's a difference between Windows and Linux: https://rt.perl.org/Public/Bug/Display.html?id=131168#ticket-history
13:46 nine That would be very odd. The whole require code is very far away from any platform specifics
16:02 Zoffix "Perl 6 IO TPF Grant: Monthly Report (April, 2017)": http://blogs.perl.org/users/zoffix_znet/2017/04/perl-6-io-tpf-grant-monthly-report-april-2017.html
16:08 pmurias joined #perl6-dev
16:12 robertle joined #perl6-dev
16:14 perlpilot Zoffix: you have a minor typo "compleetion"
16:15 perlpilot Zoffix: nice report, btw.
16:19 Zoffix Thanks. Fixed.
16:49 Zoffix Good-ish news: my bosses are contemplating rewamping our 100,000+ line internal web app. And I plan on redoing it in Perl 6.
16:49 Zoffix Or at least I'm gonna start to do it in Perl 6 and will continue, unless I hit any major blocks :)
16:50 Zoffix Why is it good? I'll probably churn out a few modules to make my job easier
16:51 Zoffix Also: Yey Perl 6 in production :)
16:53 Zoffix 123,280 lines at the moment. I think Perl 6 version will be... 40,000 lines at most.
17:05 japhb Zoffix: What is the original language?  Perl 5?
17:08 Zoffix japhb: YEAH
17:08 Zoffix I mean yeah
17:08 Zoffix :)
17:08 Zoffix japhb: or rather, Perl 5 written by novice Zoffix :)
17:09 timotimo you've grown a lot since then, i bet
17:11 Zoffix Yeah, I no longer think churning out my own web framework is an awesome idea :P
17:12 Zoffix Though I might end up doing some of that, since Perl 6 offerings in the area are a bit green...
17:12 japhb Right of passage.  Write a web framework, a game, a compiler or interpreter, ...
17:12 Zoffix ORM :)
17:12 TimToady they didn't have web frameworks when I needed a right of passage...
17:13 TimToady so I had to write a game and a compiler/interpreter
17:13 japhb TimToady: s/web framework/usenet tool/
17:13 Zoffix :)
17:13 TimToady well, okay, I did some of that too :)
17:50 TimToady while parsing the setting, we create 2126937 backtrack points in contexts that are simply going to throw them away in !cursor_pass
17:51 TimToady so we're doing 8507748 pushes onto the $!bstack that we probably know in advance we won't need
17:52 Zoffix :o
17:54 TimToady knowing that in advance is also the point at which we can decide to write directly to the capture with the current match object instead of pushing captures to the $!cstack
17:54 TimToady which would save copying them over later in the MATCH method
17:55 TimToady s/with/within/
17:55 TimToady (and making *that* possible is why we got uncurse)
17:59 Zoffix ZOFFLOP: t/spec/S06-currying/positional.t
18:00 MasterDuke_ joined #perl6-dev
18:01 jnthn TimToady: Wowzer, that sounds like a nice saving :)
18:01 TimToady the other major speedup will hopefully come from not recalculating fates several times at the same position each time because subrules don't know what superrules already figured out in the NFA
18:02 TimToady jnthn: well, I still have to try to implement it :)
18:02 TimToady so some signal has to pass downward that backtrack points are unwanted, and that might have to be dynamic
18:02 TimToady (in some cases)
18:03 TimToady probably not via dynvar though
18:03 jnthn Well, the fates are also a passing downwards problem
18:04 jnthn So probably worth a common mechanism
18:04 TimToady so the info probably comes through the Match object
18:04 TimToady (almost said Cursor :)
18:04 TimToady well, it's still functioning as a cursor
18:05 jnthn Yeah, I'd probably hold it in there
18:05 jnthn Since we invoke the rule passing it as invocant
18:05 jnthn So it can grab out what it needs
18:05 TimToady in any case, the cursor has to be involved because that's where the direct captures would want to be put
18:05 jnthn aye
18:06 jnthn Other thing it'd be nice to do is cut down on the code we spit out per rule too
18:06 jnthn The prelude/postlude
18:06 TimToady in fact, the NFA engine probably wants to write the fates info directly into the current cursor
18:06 jnthn Much of which only applies when we backtrack
18:07 jnthn And we can statically see we have no backtracking points in many tokens, I'd imagine
18:07 TimToady well, some of this is my own fault for demanding way back in the early 2000s that regex be considered real code, and not run under a sub-engine as it is in P5 :)
18:08 jnthn I can imagine the sorts of problems we'd be battling if you hadn't, and the grass doesn't look any greener :)
18:08 TimToady yes, we can know that statically, but we can't know statically the intermediate case of a parent rule not wanting backtracking info out of something that might backtrack
18:08 TimToady essentially the parent needs to tell the child to commit
18:09 TimToady yes, but I had a hard time getting people to see it back then :)
18:10 TimToady and then poor pmichaud++ had to try to implement it, more than once :)
18:10 jnthn I joined once he was already well on the way with that, so I guess I came in at the "sure it's possible, we're already doing it" point :)
18:11 Geth ¦ rakudo/nom: b4fa6d6792 | (Zoffix Znet)++ | src/core/REPL.pm
18:11 Geth ¦ rakudo/nom: Fix REPL failures with Linenoise
18:11 Geth ¦ rakudo/nom:
18:11 Geth ¦ rakudo/nom: Bug find: https://irclog.perlgeek.de/perl6/2017-04-19#i_14452772
18:11 Geth ¦ rakudo/nom:
18:11 Geth ¦ rakudo/nom: The code for creating paths starts off by trying to `mkdir` `/` dir
18:11 Geth ¦ rakudo/nom: and so on for each path. On OSX, this fails, despite working fine on
18:11 Geth ¦ rakudo/nom: Linux. Also, `mkdir` used to return the list of files, but not it
18:11 Geth ¦ rakudo/nom: returns the Failure object, 'causing the explosion.
18:11 Geth ¦ rakudo/nom:
18:11 Geth ¦ rakudo/nom: Fix by removing all the mkpath business, because mkdir is `mkdir -p`
18:11 Geth ¦ rakudo/nom: really. And then watch out for Failures from mkdir.
18:11 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b4fa6d6792
18:12 jnthn Zoffix: Did your recent Windows perf improvements make it into the point release, or came after it?
18:13 TimToady I mean, we actually have a really good regex implementation right now; it's just that it's optimizing for the failure case more than the success case right now, and compilers don't/shouldn't do much backtracking
18:13 Zoffix jnthn: after it. And the one that went in wasn't as widely used as I originally said. The one I'm working on ATM should give more boost (should commit it in about 6 hours)
18:13 Zoffix s/one that went in/the commit that went in after the point release/;
18:14 jnthn Zoffix: Ah, OK, if there's more to come I might just wait until I bump the Moar/Rakudo versions we ship in the $dayjob MSI then :)
18:14 Zoffix Oh yeah, more will be comming
18:16 jnthn Very nice, hopefully that'll get startup time of things that use a load of modules down on Windows to about where it is on Linux :)
18:16 TimToady I really have no complaint about how we got to this point, though, because we couldn't have done it at all without a lot of "Do the simplest thing that could possibly work."
18:18 jnthn Indeed. Another issue there is that it'd be nice if the NFA could tell the compiled thing "you can just jump to here" in a bunch of cases, so we don't have to re-do its work
18:18 jnthn (in the non-capture case)
18:18 jnthn Dunno if that's something you've already been pondering in the fates work
18:18 TimToady yes, that one shouldn't be too difficult, it's just work
18:19 TimToady The main problem with doing impossible things is getting around the hard parts... :)
18:20 TimToady we can also start doing some first-step-of-DFA work in the NFA, at least on cutting down the initial set of states based on the first char
18:21 TimToady full-on DFA is probably not worth it for parsing, but for other pattern matching it would be nice to have to capability
18:21 TimToady *the
18:23 TimToady another possible optimization is to not merge NFAs by copying, but just use tail refs of some sort
18:23 TimToady (why I was thinking about unique fate numbers a couple months ago)
18:23 jnthn I don't think there's any deep reason we can't do that
18:24 TimToady as you pointed out at the time, separate comp is a problem
18:24 jnthn (The tail ref thing)
18:24 TimToady but the deserializer can uniqueify fate nums
18:24 jnthn But yeah, it needs to not bust sep comp
18:24 TimToady or fates contain the NFA ident
18:25 TimToady or we figure out how to structure fate data so the right small integers get to the right spot
18:25 TimToady which how STD did it
18:27 TimToady a lists of lists might be sufficient there, as long as we don't get out of sync trying to use the wrong small integers
18:27 TimToady the unique fates approach has the advantage that you can detect when the fates aren't for you
18:28 TimToady well, one step at a time
18:31 Zoffix .ask stmuk does R* have some sort of mechanism to apply patches or use non-release commit for release or something? The b4fa6d6792 fixes a REPL bug that affects REPL users on OSX who load Readline or Linenoise.
18:31 yoleaux Zoffix: I'll pass your message to stmuk.
18:31 * Zoffix wonders what portion of users that represents.
18:32 Zoffix Releasing three point releases is a bit embarassing :/
18:32 * Zoffix joins the club of TimToady and nine
18:32 Zoffix At least I'm in good company :)
18:32 * TimToady looks at nine and himself and wonders about that
18:35 geekosaur didn't groucho have something to say about that?
18:41 TimToady that was about clubs, we're talking about hearts :P
18:42 TimToady and I always call a spade a shovel
18:50 RabidGravy joined #perl6-dev
19:41 lizmat joined #perl6-dev
19:41 nine AMD Ryzen system is up and running! Or...crawling. Had to boot with acpi=off because of some issue with exactly the motherboard I picked. But nothing a custom compiled kernel cannot fix. Though compiling with only one CPU core is kinda boring...
19:45 dogbert17 oh, will be interesting to hear what you think of it when it's up and running properly
19:51 AlexDaniel joined #perl6-dev
20:02 nine Ok, didn't have to recompile after all. Just needed to blacklist a module.
20:04 nine Compiling moarvm takes 4.9 seconds with make -j16. About half of this is /usr/bin/perl build/mk-moar-pc.pl pkgconfig/moar.pc
20:05 Geth ¦ rakudo: samcv++ created pull request #1063: RFC Allow the decode of utf* buffers as other encodings
20:05 Geth ¦ rakudo: review: https://github.com/rakudo/rakudo/pull/1063
20:07 nine Stage parse :  47.703
20:07 MasterDuke_ nice
20:09 nine Files=1178, Tests=56684, 107 wallclock secs (12.71 usr  2.15 sys + 1411.82 cusr 110.02 csys = 1536.70 CPU)
20:10 dogbert17 impressive numbers indeed
20:11 MasterDuke_ so that's about 3min total for a rakudo compile+spectest?
20:11 nine Files=1178, Tests=56684, 102 wallclock secs (12.64 usr  2.31 sys + 1436.15 cusr 103.54 csys = 1554.64 CPU)
20:11 nine With TEST_JOBS=22
20:11 nine MasterDuke_: yes
20:12 MasterDuke_ not bad at all
20:12 dogbert17 is the system silent enough for your liking?
20:15 nine dogbert17: not yet. Will have to play with the fan settings, because ironically the CPU cooler I've waited for is the noisiest part. Though completely unnecessarily so. The cooler is really cold to the touch. Could probably just turn off the fans.
20:16 dogbert17 do you have some kind of temp numbers?
20:16 * dogbert17 remembers that his old Noctua cooler came with fan resistors
20:17 nine dogbert17: no, looks like Linux doesn't support the sensors on this board yet. I do have the resistors installed.
20:18 lizmat .
20:18 yoleaux 18 Apr 2017 19:58Z <samcv> lizmat: thank you :) got your package in the mail! so happy!
20:18 dogbert17 but the cooler fan is still spinning too fast or is it a noisy part
20:18 lizmat samcv: whee!
20:18 dogbert17 the fan that is
20:19 lizmat re Zoffix's comment on http://blogs.perl.org/users/eugen_konkov/2017/04/soft-call-operator-thoughts.html :  perhaps we should have .// operator
20:20 lizmat $a.//foo  # call method foo on $a if $a is defined, else return Nil
20:20 lizmat hmmm... perhaps $a//.foo would be better
20:20 Zoffix We already sorta have than with andthen op
20:21 japhb Zoffix: $a andthen $a.foo ?
20:21 lizmat $a andthen .foo
20:21 lizmat ?
20:21 japhb Oh, does it topicalize as well?
20:21 Zoffix And also I'd want a .? that does .cando with the args too, so it actually checks the method has a candidate that can accept the stuuf
20:21 lizmat I wondered
20:21 Zoffix Yes, it topicalizes
20:22 japhb Also, <bikeshed> .?? to go with .? instead of .// makes more sense to me
20:22 lizmat japhb: but // indicates a test for definedness
20:23 japhb Sure, but for some reason my brain heads for a different mnemonic
20:24 japhb But I could probably learn .//
20:24 Zoffix I'd say the crux of the problem with .? is that Nil is Cool. So there is a ton of methods it .can do, but many of them don't accept a :U as an invocant
20:25 Zoffix m $ .?meows.?contains: 'foo'
20:25 nine Ok, selected the silent fan control profile and use system temperature instead of CPU temperature as input for the second CPU fan control. Much more quiet now. Firmware reports 56 °C CPU temperature which doesn't correspond at all with how the CPU cooler feels.
20:25 Zoffix m: $ .?meows.?contains: 'foo'
20:25 camelia rakudo-moar b4fa6d: OUTPUT: «5===SORRY!5=== Error while compiling <tmp>␤Malformed postfix call (only alphabetic methods may be detached)␤at <tmp>:1␤------> 3$ .7⏏5?meows.?contains: 'foo'␤»
20:26 Zoffix m: Any.?meows.?contains: 'foo'
20:26 camelia rakudo-moar b4fa6d: OUTPUT: «Invocant requires an instance of type Cool, but a type object was passed.  Did you forget a .new?␤  in block <unit> at <tmp> line 1␤␤»
20:28 Zoffix m: Any.?meows andthen .?contains('foo').say orelse say 'heh'
20:28 camelia rakudo-moar b4fa6d: OUTPUT: «heh␤»
20:29 Zoffix m: class { method meows {'food'}}.?meows andthen .?contains('foo').say orelse say 'heh'
20:29 camelia rakudo-moar b4fa6d: OUTPUT: «True␤»
20:29 nine Looks like t/spec/S17-supply/syntax.t is a flapper, too :/
20:29 Zoffix I guess that's one way to work around it
20:29 Zoffix nine: yes, flops for me too
20:30 nine Zoffix: but you've not logged that to the channel. I've looked for a ZOFFLOP in the log :)
20:30 dogbert17 nine: there's been some talk on the net that Ryzen overreports temps with 20 degrees for some stupid reason
20:30 nine dogbert17: that would make so much sense
20:30 Zoffix I guess it last flapped for me before I started logging with ZOFFLOP :)
20:31 dogbert17 nine: e.g. https://www.youtube.com/watch?v=uoE1s0pqjv0
20:32 nine https://www.kotaku.com.au/2017/03/amds-ryzen-cpus-arent-running-as-hot-as-they-say-they-are/ is talking about exactly my motherboard
20:36 dogbert17 cool :)
20:36 nine So I guess there'll be a BIOS update to fix this
20:40 dogbert17 what kind of gfx card did you get?
20:42 * timotimo got a gtx 1060 6gb around christmastime
20:42 dogbert17 not bad
20:43 * dogbert17 has a tendency to only buy passively cooled cards
20:43 MasterDuke_ that's the combo i've been contemplating: 1060 + ryzen 1700
20:44 timotimo i'm not sure you should go for a 1060
20:44 timotimo OTOH, it's not like i'm really going to get an htc vive any time soon, so ...
20:45 * MasterDuke_ is internally debating between PSVR or new cpu+gpu
20:46 timotimo did you put on a PSVR yet?
20:46 MasterDuke_ yeah
20:46 timotimo any of the others, too?
20:46 MasterDuke_ nope
20:48 timotimo i believe you also have to get a ps4 pro if you want to use psvr, right?
20:49 MasterDuke_ no, nothing requires a pro
20:49 timotimo oh, it seems like you can also connect a psvr to a pc
20:50 timotimo i.e. sony didn't put in ridiculous measures to prevent you from plugging it into anything but a ps4
20:51 MasterDuke_ or i could just delay getting anything even more and then try to decide between the next generation of those things...
20:51 timotimo yeah, i was also hoping i could get one that has finer physical pixels
20:51 timotimo though tbh it's not as big a deal after the first minute of wearing the thing
20:52 timotimo but damn, the vive controllers are amazing
20:52 MasterDuke_ yep. was both surprised at how noticeable they were, and then weren't after a couple min
20:53 timotimo .o( should we continue this discussion in #perl6-gaming? )
20:54 MasterDuke_ is that a thing?
20:56 timotimo it is
20:57 MasterDuke_ backing up to some of the earlier discussion, a spectest for me takes ~260s. -j (6|8|10|12) are all about the same. and a rakudo compile takes ~90s
20:58 timotimo what cpu is that with?
20:58 MasterDuke_ i7 860
21:00 timotimo huh, that's one digit less than my laptop has
21:02 MasterDuke_ which digit?
21:02 timotimo i7-4600U is mine
21:03 MasterDuke_ my laptop is i5-4200U
21:03 timotimo my desktop's a i5-3570
21:14 MasterDuke_ timotimo: select r.name, sum(a.count) from routines r, allocations a, callees c, types t where r.id = c.routine_id and a.caller_id = c.caller_id and t.id = a.type_id and t.name = "BOOTStr" group by r.name;
21:15 MasterDuke_ for a tiny sample profile it's giving me the same results as the "View" link next to "BOOTStr" in the "Allocations" tab of a regular profile of the same code
21:16 timotimo you don't even have to spell out a JOIN statement?
21:16 timotimo yeah, that looks sensible
21:17 MasterDuke_ that's the oracle style syntax, i never really got familiar with the normal ansi (i think it's called that) syntax
21:17 timotimo ah, but sqlite allows for that, yeah?
21:17 MasterDuke_ yup
21:18 timotimo cool.
21:18 samcv timotimo, MasterDuke_ what are your thoughts on https://github.com/samcv/URL-Find/blob/master/META.info making the license field be the spdx license name (which is the most widely used cataloging thing)
21:18 samcv and then have resources license for the url? right now the meta spec says to have it be the url for the license
21:18 timotimo i think it seems good
21:19 samcv ok cool
21:32 timotimo i wonder if TimToady can figure out what might have b0rked the debug grammar; something with wanted getting NQPMu, so perhaps some named parameters not being passed or something?
21:32 timotimo and we don't support them being empty?
21:39 Zoffix So... do we need another point release or not?
21:39 Zoffix Basically, unless there's a way to add https://github.com/rakudo/rakudo/commit/b4fa6d6792dd02424d2182b73c31a071cddc0b8e to Rakudo Star, we're gonna have all the OSX users without Repl
21:40 Zoffix Rather without history in REPL, I mean
21:40 Zoffix Actually, that doesn't sound that terrible :}
21:41 Zoffix Or is it? I don't either neither REPL or OSX
21:45 timotimo does Readline also b0rk?
21:45 Zoffix Yes.
21:46 Zoffix FWIW I think it's possible to make a shim that fixes the bug...
21:47 timotimo heh. mod Linenoise so it .wraps the offending function before trying to load it %)
21:48 Zoffix m: use nqp; BEGIN REPL.^lookup('history-file').wrap: -> | {42 }; dd REPL.new(nqp::getcomp("perl6"), %).history-file
21:48 camelia rakudo-moar b4fa6d: OUTPUT: «You may want to `zef install Readline` or `zef install Linenoise` or use rlwrap for a line editor␤␤42␤»
21:48 Zoffix So adding that ^ wrap somewhere before REPL loads will avoid the bug
21:49 Zoffix OK, no point release.
21:52 samcv also is META6.json preferred Zoffix ? or META.json?
21:53 Zoffix samcv: yeah. META6.json.  The META.info file was pre-Christmas format. I've been including change to META6.json as part of some of the PRs I've been sending
21:53 samcv cool
21:53 samcv i need to change my meta then
21:54 timotimo shake up the metagame
21:55 Zoffix m: REPL.^lookup('history-file)'.wrap: -> | { $!history-file }
21:55 camelia rakudo-moar b4fa6d: OUTPUT: «5===SORRY!5=== Error while compiling <tmp>␤Variable $!history-file used where no 'self' is available␤at <tmp>:1␤------> 3story-file)'.wrap: -> | { $!history-file7⏏5 }␤»
21:56 Zoffix Is there a way to get $!history-file in wrap without nqp?
21:56 Zoffix Or a way to replace a method in a type?
21:56 samcv ok cool. fixed that. need to be proper™ if i'm going to have it as an example on the PR page
21:56 timotimo replacing methods is possible in objects with "does"
21:57 timotimo not in types, though
21:57 Zoffix :(
21:57 Zoffix nqp it is then! :)
22:01 Zoffix not working :/
22:01 Zoffix https://gist.github.com/zoffixznet/48d990de7a76404135942990ad578cf9
22:05 * Zoffix gives up
22:06 Zoffix But the idea was to replace buggy REPL.history-file method with non-buggy version when loading perl6... somehow
22:06 timotimo i wonder if the MOP will let you fiddle with the methods
22:07 samcv ok looks like we can't use resources for the url
22:07 samcv based on what this says https://design.perl6.org/S22.html#resources
22:07 Zoffix Actually, not starting the repl and executing some code seems to work
22:08 timotimo oh wait
22:08 timotimo you were putting a http url into resources?
22:08 Zoffix I mean.. using perl6 -e '' and starting the REPL there
22:08 samcv yes
22:08 samcv i will fix it. where should it be put timotimo
22:08 timotimo i misread, i thought you were putting the license url into the support hash
22:08 samcv yeah it should be support
22:10 Zoffix Success!
22:10 samcv yeah that's what i meant for it to be
22:11 Zoffix alias perl6repl='perl6 -e '\''use nqp; REPL.^lookup("history-file").wrap: method (\SELF:--> Str:D) { my $hs = nqp::getattr(nqp::decont(SELF), REPL, q|$!history-file|); return $hs.absolute if $hs.defined; $hs = $*ENV<RAKUDO_HIST> ?? $*ENV<RAKUDO_HIST>.IO !! $*HOME.add(".perl6/rakudo-history"); note "Cannot load history: {.exception.message}" without mkdir $hs.parent; nqp::bindattr(nqp::decont(SELF), REPL,
22:11 Zoffix q|$!history-file|, $hs); $hs.absolute }; sub MAIN (*%adverbs) { REPL.new(nqp::getcomp("perl6"), %).repl-loop(:interactive(1), |%adverbs) }'\'''
22:11 Zoffix And then users can use perl6repl alias to use the REPL until next rakudo star.... :}
22:16 Zoffix If anyone with OSX willing to test it out.... Build 2017.04.2 Rakudo, install Linenoise, start REPL: it should show some error about mkdir '/'. Now try running this shell script (I'm assuming `alias` command works on OSX): https://gist.github.com/zoffixznet/6a0d212ada41fce7aeca15fa9efcc263   When you type perl6repl: (a) does the REPL work OK? (b) Is the error message about mkdir '/' gone? (c) try typing
22:16 Zoffix something, exiting, and running perl6repl alias again; press UP arraw, does it show the line you typed before exiting the repl last time?
22:17 samcv timotimo, let me know what you think of this https://github.com/perl6/specs/pull/120
22:38 Zoffix .tell stmuk never mind. It's a much more minor issue than I originally thought. The history file just isn't saved between REPL runs and it displays a message about mkdir '/' 0o777 at startup. I also got a workaround that involves setting up an alias the users who really want their command line history: https://gist.github.com/zoffixznet/6a0d212ada41fce7aeca15fa9efcc263
22:38 yoleaux Zoffix: I'll pass your message to stmuk.
22:43 Zoffix .tell 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:
22:43 yoleaux Zoffix: I'll pass your message to lizmat.
22:43 Zoffix https://gist.github.com/zoffixznet/6a0d212ada41fce7aeca15fa9efcc263
22:43 Zoffix .tell lizmat https://gist.github.com/zoffixznet/6a0d212ada41fce7aeca15fa9efcc263
22:43 yoleaux Zoffix: I'll pass your message to lizmat.
22:46 timotimo oh, Zoffix, you can just ignore the error about mkdir /?
22:46 timotimo i thought it immediately crashed the repl
22:46 timotimo well, that's half a relief
22:50 Zoffix timotimo: I thought so too at first, but reading the code, I see there's a try block wrapping the call to it further up the food chain
22:51 timotimo phew
22:52 samcv can we point release it?
22:52 samcv nothing wrong with point releases right?
22:53 timotimo one point release in every home!
22:53 timotimo that's Rakudo 4!
22:53 Zoffix Other than looking like we don't got a clue with what we're doing, guess not :)
22:53 Zoffix Automate it. Make the bot cut a release ever 4 hours :P
22:53 timotimo Rakudo 2017.04 OSX Premium Edition
22:53 Zoffix haha
22:54 samcv lollll
22:54 samcv point release meants that we make sure we fix problems :)
22:55 samcv also how can we make sure this is tested in the future
22:55 * TimToady is still looking for a fix for Grammar::Debugger
22:55 samcv :(
22:56 Zoffix samcv: by making a bot that regularly builds, stresstestes, and tries installing a handful of modules.
22:58 samcv sounds good
22:58 samcv but would that catch it?
22:58 samcv i mean it'd have to start repl
22:58 samcv we could use the expect program to start a repl and interact with it
22:58 samcv and it'll error on any weird output
22:59 samcv if we do it righ i think
22:59 samcv dunno if os x has expect
22:59 samcv oh good https://developer.apple.com/legacy/library/documentation/Darwin/Reference/ManPages/man1/expect.1.html
23:00 Zoffix we have is_run_repl or something or other in roast/packages/Test/Util.pm
23:00 * Zoffix &
23:00 timotimo i have had a test about the repl that i've always had to kill when doing spec test runs :P
23:01 timotimo but maybe that's because of some left-over readline/linenoise module in my perl6 folders or something
23:17 BenGoldberg joined #perl6-dev
23:29 ugexe No such method 's' for invocant of type 'IO::Handle'
23:29 ugexe in sub content-length at /home/travis/build/tokuhirom/p6-Crust/lib/Crust/Utils.pm6 (Crust::Utils) line 52
23:29 ugexe hmm
23:31 ugexe what can that be replaced with?
23:32 Zoffix IO::Handle.IO.s
23:32 Zoffix $thing.IO.s
23:33 Zoffix or $thing.path.s
23:34 * Zoffix looks at code
23:34 ugexe star: say $*OUT.s
23:34 camelia star-m 2016.10: OUTPUT: «0␤»
23:34 Zoffix Um... That looks like a bug
23:34 Zoffix Or maybe not
23:35 Zoffix I guess not
23:35 Zoffix It returnings the *remaining* content
23:35 geekosaur I think the OS returns size of 0 for things that aren't seekable
23:35 Zoffix m: $*OUT.tell
23:35 camelia rakudo-moar b4fa6d: ( no output )
23:35 geekosaur and offset, yeh
23:36 geekosaur m: $*OUT.tell.say
23:36 camelia rakudo-moar b4fa6d: OUTPUT: «0␤»
23:37 Zoffix So yeah, there's that sort of bug in there. IO::Pipe and future IO::CatHandle are IO::Handle but that code would return bogus result for them.
23:40 Zoffix "Zoffix │ Um... That looks like a bug" I meant the code in Crust
23:40 Zoffix The removal of .s and 15 other methods was part of IO work and is documented in the upgrade notice
23:40 Zoffix ZofBot: no one reads my notices!
23:40 ZofBot Zoffix, With that syntax, what would be the "argument"s of the function are named operands instead
23:41 geekosaur nobody ever reads notices
23:41 geekosaur like nobody ever reads manuals >.>
23:42 geekosaur you could have it pop a dialog with bright red blinkenlights in their face and they'd click through it and then complain that nobody told them...
23:46 Zoffix Are regexes implemented with just a bunch of NQP ops?
23:46 Zoffix Kinda noticing rewriting more complex regexes with nqp ops doesn't have a lot of bang for the buck
23:47 Zoffix NQP version of /^ ([[<$slash> ** 2] <$notslash>+  <$slash>  [<$notslash>+ | $]]?) (.*) /   is only 7.5x faster
23:48 timotimo "only" :)
23:49 Zoffix But NQP version of /^ <[A..Z a..z]> ':' ]?  <[\/ \\]>  /  is 63x faster
23:49 timotimo the regex compiler creates a load of moarvm bytecode that does contain a couple of nqp ops you can manually use
23:49 Zoffix Well, by comparison to 63x, 7.5x feels paltry
23:49 timotimo i don't think i understand what is faster and what code is what
23:50 Zoffix In the context of my question?
23:50 Zoffix This change makes stuff 63x faster: https://github.com/rakudo/rakudo/commit/e1c086b7a75115864238536415834efdaf064828
23:51 Zoffix But this monstrosity to replace the first regex above is only 7.5x faster: https://gist.github.com/zoffixznet/734b3514d3684901ab7fe7581e27858b
23:51 Zoffix And it still has a bug for one case :}
23:52 * Zoffix packs it up for the day and goes to play Far Cry: Primal
23:52 Zoffix ZofBot: Takhar, Mammote!
23:52 ZofBot Zoffix, $tmpdir = IO::Spec

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