BenGoldberg | If it weren't so obviously a fruity frozen ice cream thing, I would suspect they'd used chocolate covered pop rocks. | 02:50 | |
Geth | nqp: 01c1cd0100 | MasterDuke17++ | src/vm/moar/HLL/Backend.nqp Some minor optimizations to profiling code Move the creation of a variable down to where it's actually used. Make some ints explicitly so. Make some lists native. Sped up to_sql() by ~5%. |
03:23 | |
roast: 4fbc81e42e | usev6++ | S32-io/lock.t [JVM] Fudge failing tests for file locking |
05:34 | ||
lizmat_ | Files=1191, Tests=56770, 205 wallclock secs (12.31 usr 4.73 sys + 1210.59 cusr 117.41 csys = 1345.04 CPU) | 05:55 | |
samcv | thx lizmat :) | 06:08 | |
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: github.com/rakudo/rakudo/commit/88...01e97181f4 | ||
camelia | java.lang.StringIndexOutOfBoundsException: String index out of range: 0 in block <unit> at <tmp> line 1 |
||
-1 | |||
bartolin | r: use nqp; say nqp::ord("foo", 7) | ||
camelia | java.lang.StringIndexOutOfBoundsException: String index out of range: 7 in block <unit> at <tmp> line 1 |
||
-1 | |||
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 | |
github.com/rakudo/rakudo/blob/e1c0...32.pm#L198 | |||
r: say IO::Path::Cygwin.new("/usr/bin").relative("/usr") ## blows up on rakudo-j now | |||
camelia | 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 |
||
bin | |||
bartolin | (locally I get 'bin' from rakudo-m as well) | 06:23 | |
[Tux] | This is Rakudo version 2017.04.2-2-ge1c086b7a built on MoarVM version 2017.04 | 06:54 | |
csv-ip5xs 3.077 | |||
test 12.780 | |||
test-t 5.113 - 5.198 | |||
csv-parser 13.743 | |||
nine | rakudo and perl6-Inline-Perl5 packages ready for installation: download.opensuse.org/repositories/....2/x86_64/ | 07:29 | |
samcv | nice | 07:37 | |
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 | |||
m: say IO::Path::Cygwin.new("/usr/bin").relative("/usr") | 10:06 | ||
camelia | 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 |
||
Zoffix | wtf | ||
Ah. RESTRICTED bites again | |||
Geth | rakudo/nom: 6f3de66415 | (Timo Paulssen)++ | src/perl6-debug.nqp get perl6-debug-m past the setlang error and straight into bizzarro-world where everything gives mysterious errors … |
10:10 | |
timotimo | for some reason this commit wasn't enough to get us to a repl yesterday | 10:12 | |
but it is now, so ... ?!? | |||
Zoffix | That's it? | 10:15 | |
timotimo | well, no | ||
Zoffix | There was someone asking about a month or so ago and I promised the fix to be in the release... | ||
timotimo | you can't do a single solitary thing with it | ||
Zoffix | Ah. OK | ||
timotimo | > eval say "hi" | 10:16 | |
Non ast passed to WANTED: NQPMu | |||
Weird node in analyze: NQPMu | |||
Unknown QAST node type NQPMu | |||
m: my $result = try "oh lord".&die // "default"; say $result | 10:18 | ||
camelia | (Any) | ||
Zoffix | m: my $result = (try "oh lord".&die) // "default"; say $result | ||
camelia | default | ||
timotimo | yeah | ||
Zoffix wants a .try :) | 10:19 | ||
my $result = "oh lord".&die.try // "default"; | |||
timotimo | hah | ||
m: my $result = try "oh lord".&fail // "default"; say $result | |||
camelia | default | ||
timotimo | i did not expect this | ||
m: my $result = try "oh lord".&fail.thismethnotexists // "default"; say $result | |||
camelia | (Any) | ||
timotimo | oh | ||
Zoffix | oh shit | 10:53 | |
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 | ||
But surprise surprise, I couldn't make my bench show the massive difference | 10:55 | ||
m: my @p = 1..40000; $ = @p.unique: :with(-> $a, $, { dd $a }); say now - INIT now | |||
camelia | 0.0280431 | ||
Zoffix | And that's because it looks like :with is ignored :( | ||
star: my @p = 1..40000; $ = @p.unique: :with(-> $a, $, { dd $a }); say now - INIT now | |||
camelia | 0.0283061 | ||
Zoffix | Oh | ||
Or maybe I need more coffee | |||
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» | ||
Zoffix | wtf? | ||
llfourn | Zoffix: try the coffee thing first it might be easier | ||
Zoffix | llfourn: well, why doesn't it get called? | ||
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 | ||
committable6 | Zoffix, ¦2017.02: «0.0251288» | ||
Zoffix | s: [], 'unique', \(:with(-> $a, $, { dd $a })) | ||
SourceBaby | Zoffix, Sauce is at github.com/rakudo/rakudo/blob/6f3d...s.pm#L1591 | ||
Zoffix | eager | 10:58 | |
m: 2017.02 my @p = 1..40000; @ = @p.unique: :with(-> $a, $, { dd $a; 42 }); say now - INIT now | |||
camelia | 5===SORRY!5=== Error while compiling <tmp> Two terms in a row at <tmp>:1 ------> 032017.027⏏5 my @p = 1..40000; @ = @p.unique: :with( expecting any of: infix infix stopper statement end statem… |
||
timotimo | oh, hah :) | ||
Zoffix | m: my @p = 1..40000; @ = @p.unique: :with(-> $a, $, { dd $a; 42 }); say now - INIT now | ||
timotimo | you weren't taking the values out? | ||
Zoffix | THERE we go | ||
camelia | 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… |
||
timotimo | phew | ||
Zoffix | *phew* :) No bug | ||
llfourn | hah :) | 11:02 | |
timotimo | yo Zoffix | 12:01 | |
i'm going to push a branch that ought to give more precision in the coverage report | 12:02 | ||
can you give me a before/after for spectest (or something smaller)? | |||
it's MoarVM/line_coverage_precision | 12:04 | ||
Zoffix is a bit annoyed with all the TODOs in the docs | 12:07 | ||
docs.perl6.org/type/Any#method_iterator | |||
timotimo | oh wow | 12:08 | |
Zoffix | Or rather, annoyed by the person who added them and then fucked off from perl6 org. | ||
The parable about a bad programmer creating job for 2 good programmer rings so true right about now. | |||
timotimo: OK, but probably not until the weekend. | 12:10 | ||
timotimo | hm, okay | ||
i can try it myself, though only on the nqp test suite, i'd imagine | |||
the output from before/after this stuff is a bit strange | 12:11 | ||
nine | /win 10 | 12:15 | |
Zoffix | BINGO! | ||
timotimo | yeah, i think the branch makes things a bit better | 12:22 | |
Zoffix | sweet | ||
timotimo | but across the whole nqp test it's only a few lines more that are covered ...?! | ||
but somehow one line got actually lost | 12:23 | ||
i'll have a look what valgrind thinks, maybe i'm reallocing off-by-one or something | 12:27 | ||
[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:30 | |
Zoffix | Dunno | 12:32 | |
[Coke] | I do agree that the happy bpath for our users is easier. | ||
timotimo | i did have an off-by-one | ||
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? | ||
timotimo | rather annoying that i can't rebuild moarvm without "make test" in nqp recompiling nqp | 12:40 | |
though i can just cp over moar and libmoar.so and it won't trigger | 12:41 | ||
it's probably due to the .nqp files moar generates so nqp knows about all ops and such | 12:42 | ||
OK, now there's only + lines in the diff | 12:43 | ||
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:56 | |
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 | |
And they also added awful hacks (like absuing subsets with runtime requires) to the docs that users will read as proper code. | |||
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 | 12:59 | ||
And the TOC is still broken on narrower layouts | 13:00 | ||
But yes, tell me about commit count. | |||
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 docs.perl6.org/perl6.xhtml in common browsers. | 13:01 | ||
Oh oh | 13:02 | ||
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 | ||
Just want to give credit where credit is due! | |||
nine | Zoffix: so what's your suggestion for moving on? | 13:06 | |
Zoffix | nine: moving on with what? | 13:07 | |
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 | |
Zoffix: IDK, encouraging new contributors, or reverting the objectionable commits or whatever? | |||
perlpilot | nine: I think he had that list because those are things he's had to fix. | ||
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 | |
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 | |||
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 | ||
s/.xhtml/XHTML/; | |||
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:18 | ||
nine | so simple :) | 13:22 | |
Zoffix | Indeed it was. Here's my showing a working JSFiddle followed by them saying "please stop": irclog.perlgeek.de/perl6/2016-07-07#i_12801062 | 13:26 | |
nine | Now that's a discussion gone wrong... | 13:34 | |
Zoffix | "But whatever... I'm not looking to make another enemy in #perl6" | 13:36 | |
Wonder who my first enemy was... | |||
ZofBot: world peace by amnesia! | |||
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) | ||
nine | It's really sad to see such arguing when all people involved actually try to help and do good | 13:38 | |
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: rt.perl.org/Public/Bug/Display.htm...et-history | 13:40 | |
nine | That would be very odd. The whole require code is very far away from any platform specifics | 13:46 | |
Zoffix | "Perl 6 IO TPF Grant: Monthly Report (April, 2017)": blogs.perl.org/users/zoffix_znet/20...-2017.html | 16:02 | |
perlpilot | Zoffix: you have a minor typo "compleetion" | 16:14 | |
Zoffix: nice report, btw. | 16:15 | ||
Zoffix | Thanks. Fixed. | 16:19 | |
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 | ||
Or at least I'm gonna start to do it in Perl 6 and will continue, unless I hit any major blocks :) | |||
Why is it good? I'll probably churn out a few modules to make my job easier | 16:50 | ||
Also: Yey Perl 6 in production :) | 16:51 | ||
123,280 lines at the moment. I think Perl 6 version will be... 40,000 lines at most. | 16:53 | ||
japhb | Zoffix: What is the original language? Perl 5? | 17:05 | |
Zoffix | japhb: YEAH | 17:08 | |
I mean yeah | |||
:) | |||
japhb: or rather, Perl 5 written by novice Zoffix :) | |||
timotimo | you've grown a lot since then, i bet | 17:09 | |
Zoffix | Yeah, I no longer think churning out my own web framework is an awesome idea :P | 17:11 | |
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, ... | ||
Zoffix | ORM :) | ||
TimToady | they didn't have web frameworks when I needed a right of passage... | ||
so I had to write a game and a compiler/interpreter | 17:13 | ||
japhb | TimToady: s/web framework/usenet tool/ | ||
Zoffix | :) | ||
TimToady | well, okay, I did some of that too :) | ||
while parsing the setting, we create 2126937 backtrack points in contexts that are simply going to throw them away in !cursor_pass | 17:50 | ||
so we're doing 8507748 pushes onto the $!bstack that we probably know in advance we won't need | 17:51 | ||
Zoffix | :o | 17:52 | |
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 | |
which would save copying them over later in the MATCH method | |||
s/with/within/ | 17:55 | ||
(and making *that* possible is why we got uncurse) | |||
Zoffix | ZOFFLOP: t/spec/S06-currying/positional.t | 17:59 | |
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 | ||
jnthn: well, I still have to try to implement it :) | 18:02 | ||
so some signal has to pass downward that backtrack points are unwanted, and that might have to be dynamic | |||
(in some cases) | |||
probably not via dynvar though | 18:03 | ||
jnthn | Well, the fates are also a passing downwards problem | ||
So probably worth a common mechanism | 18:04 | ||
TimToady | so the info probably comes through the Match object | ||
(almost said Cursor :) | |||
well, it's still functioning as a cursor | |||
jnthn | Yeah, I'd probably hold it in there | 18:05 | |
Since we invoke the rule passing it as invocant | |||
So it can grab out what it needs | |||
TimToady | in any case, the cursor has to be involved because that's where the direct captures would want to be put | ||
jnthn | aye | ||
Other thing it'd be nice to do is cut down on the code we spit out per rule too | 18:06 | ||
The prelude/postlude | |||
TimToady | in fact, the NFA engine probably wants to write the fates info directly into the current cursor | ||
jnthn | Much of which only applies when we backtrack | ||
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 :) | ||
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 | ||
essentially the parent needs to tell the child to commit | |||
yes, but I had a hard time getting people to see it back then :) | 18:09 | ||
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 :) | ||
Geth | rakudo/nom: b4fa6d6792 | (Zoffix Znet)++ | src/core/REPL.pm Fix REPL failures with Linenoise Bug find: irclog.perlgeek.de/perl6/2017-04-19#i_14452772 The code for creating paths starts off by trying to `mkdir` `/` dir and so on for each path. On OSX, this fails, despite working fine on Linux. Also, `mkdir` used to return the list of files, but not it returns the Failure object, 'causing the explosion. Fix by removing all the mkpath business, because mkdir is `mkdir -p` really. And then watch out for Failures from mkdir. |
18:11 | |
jnthn | Zoffix: Did your recent Windows perf improvements make it into the point release, or came after it? | 18:12 | |
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) | ||
s/one that went in/the commit that went in after the point release/; | |||
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 | ||
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." | ||
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 | |
(in the non-capture case) | |||
Dunno if that's something you've already been pondering in the fates work | |||
TimToady | yes, that one shouldn't be too difficult, it's just work | ||
The main problem with doing impossible things is getting around the hard parts... :) | 18:19 | ||
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:20 | ||
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 | ||
*the | |||
another possible optimization is to not merge NFAs by copying, but just use tail refs of some sort | 18:23 | ||
(why I was thinking about unique fate numbers a couple months ago) | |||
jnthn | I don't think there's any deep reason we can't do that | ||
TimToady | as you pointed out at the time, separate comp is a problem | 18:24 | |
jnthn | (The tail ref thing) | ||
TimToady | but the deserializer can uniqueify fate nums | ||
jnthn | But yeah, it needs to not bust sep comp | ||
TimToady | or fates contain the NFA ident | ||
or we figure out how to structure fate data so the right small integers get to the right spot | 18:25 | ||
which how STD did it | |||
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 | ||
the unique fates approach has the advantage that you can detect when the fates aren't for you | |||
well, one step at a time | 18:28 | ||
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. | ||
Zoffix wonders what portion of users that represents. | |||
Releasing three point releases is a bit embarassing :/ | 18:32 | ||
Zoffix joins the club of TimToady and nine | |||
At least I'm in good company :) | |||
TimToady looks at nine and himself and wonders about that | |||
geekosaur | didn't groucho have something to say about that? | 18:35 | |
TimToady | that was about clubs, we're talking about hearts :P | 18:41 | |
and I always call a spade a shovel | 18:42 | ||
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:41 | |
dogbert17 | oh, will be interesting to hear what you think of it when it's up and running properly | 19:45 | |
nine | Ok, didn't have to recompile after all. Just needed to blacklist a module. | 20:02 | |
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:04 | ||
Geth | rakudo: samcv++ created pull request #1063: RFC Allow the decode of utf* buffers as other encodings |
20:05 | |
nine | Stage parse : 47.703 | 20:07 | |
MasterDuke_ | nice | ||
nine | Files=1178, Tests=56684, 107 wallclock secs (12.71 usr 2.15 sys + 1411.82 cusr 110.02 csys = 1536.70 CPU) | 20:09 | |
dogbert17 | impressive numbers indeed | 20:10 | |
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) | ||
With TEST_JOBS=22 | |||
MasterDuke_: yes | |||
MasterDuke_ | not bad at all | 20:12 | |
dogbert17 | is the system silent enough for your liking? | ||
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:15 | |
dogbert17 | do you have some kind of temp numbers? | 20:16 | |
dogbert17 remembers that his old Noctua cooler came with fan resistors | |||
nine | dogbert17: no, looks like Linux doesn't support the sensors on this board yet. I do have the resistors installed. | 20:17 | |
lizmat | . | 20:18 | |
yoleaux | 18 Apr 2017 19:58Z <samcv> lizmat: thank you :) got your package in the mail! so happy! | ||
dogbert17 | but the cooler fan is still spinning too fast or is it a noisy part | ||
lizmat | samcv: whee! | ||
dogbert17 | the fan that is | ||
lizmat | re Zoffix's comment on blogs.perl.org/users/eugen_konkov/2...ughts.html : perhaps we should have .// operator | 20:19 | |
$a.//foo # call method foo on $a if $a is defined, else return Nil | 20:20 | ||
hmmm... perhaps $a//.foo would be better | |||
Zoffix | We already sorta have than with andthen op | ||
japhb | Zoffix: $a andthen $a.foo ? | 20:21 | |
lizmat | $a andthen .foo | ||
? | |||
japhb | Oh, does it topicalize as well? | ||
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 | ||
lizmat | I wondered | ||
Zoffix | Yes, it topicalizes | ||
japhb | Also, <bikeshed> .?? to go with .? instead of .// makes more sense to me | 20:22 | |
lizmat | japhb: but // indicates a test for definedness | ||
japhb | Sure, but for some reason my brain heads for a different mnemonic | 20:23 | |
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 | ||
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. | ||
Zoffix | m: $ .?meows.?contains: 'foo' | ||
camelia | 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' |
||
Zoffix | m: Any.?meows.?contains: 'foo' | 20:26 | |
camelia | 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 |
||
Zoffix | m: Any.?meows andthen .?contains('foo').say orelse say 'heh' | 20:28 | |
camelia | heh | ||
Zoffix | m: class { method meows {'food'}}.?meows andthen .?contains('foo').say orelse say 'heh' | 20:29 | |
camelia | True | ||
nine | Looks like t/spec/S17-supply/syntax.t is a flapper, too :/ | ||
Zoffix | I guess that's one way to work around it | ||
nine: yes, flops for me too | |||
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 | ||
nine | dogbert17: that would make so much sense | ||
Zoffix | I guess it last flapped for me before I started logging with ZOFFLOP :) | ||
dogbert17 | nine: e.g. www.youtube.com/watch?v=uoE1s0pqjv0 | 20:31 | |
nine | www.kotaku.com.au/2017/03/amds-ryz...-they-are/ is talking about exactly my motherboard | 20:32 | |
dogbert17 | cool :) | 20:36 | |
nine | So I guess there'll be a BIOS update to fix this | ||
dogbert17 | what kind of gfx card did you get? | 20:40 | |
timotimo got a gtx 1060 6gb around christmastime | 20:42 | ||
dogbert17 | not bad | ||
dogbert17 has a tendency to only buy passively cooled cards | 20:43 | ||
MasterDuke_ | that's the combo i've been contemplating: 1060 + ryzen 1700 | ||
timotimo | i'm not sure you should go for a 1060 | 20:44 | |
OTOH, it's not like i'm really going to get an htc vive any time soon, so ... | |||
MasterDuke_ is internally debating between PSVR or new cpu+gpu | 20:45 | ||
timotimo | did you put on a PSVR yet? | 20:46 | |
MasterDuke_ | yeah | ||
timotimo | any of the others, too? | ||
MasterDuke_ | nope | ||
timotimo | i believe you also have to get a ps4 pro if you want to use psvr, right? | 20:48 | |
MasterDuke_ | no, nothing requires a pro | 20:49 | |
timotimo | oh, it seems like you can also connect a psvr to a pc | ||
i.e. sony didn't put in ridiculous measures to prevent you from plugging it into anything but a ps4 | 20:50 | ||
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 | ||
though tbh it's not as big a deal after the first minute of wearing the thing | |||
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 | ||
timotimo | .o( should we continue this discussion in #perl6-gaming? ) | 20:53 | |
MasterDuke_ | is that a thing? | 20:54 | |
timotimo | it is | 20:56 | |
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:57 | |
timotimo | what cpu is that with? | 20:58 | |
MasterDuke_ | i7 860 | ||
timotimo | huh, that's one digit less than my laptop has | 21:00 | |
MasterDuke_ | which digit? | 21:02 | |
timotimo | i7-4600U is mine | ||
MasterDuke_ | my laptop is i5-4200U | 21:03 | |
timotimo | my desktop's a i5-3570 | ||
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:14 | |
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:15 | ||
timotimo | you don't even have to spell out a JOIN statement? | 21:16 | |
yeah, that looks sensible | |||
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? | ||
MasterDuke_ | yup | ||
timotimo | cool. | 21:18 | |
samcv | timotimo, MasterDuke_ what are your thoughts on 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) | ||
and then have resources license for the url? right now the meta spec says to have it be the url for the license | |||
timotimo | i think it seems good | ||
samcv | ok cool | 21:19 | |
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 | |
and we don't support them being empty? | |||
Zoffix | So... do we need another point release or not? | 21:39 | |
Basically, unless there's a way to add github.com/rakudo/rakudo/commit/b4...71cddc0b8e to Rakudo Star, we're gonna have all the OSX users without Repl | |||
Rather without history in REPL, I mean | 21:40 | ||
Actually, that doesn't sound that terrible :} | |||
Or is it? I don't either neither REPL or OSX | 21:41 | ||
timotimo | does Readline also b0rk? | 21:45 | |
Zoffix | Yes. | ||
FWIW I think it's possible to make a shim that fixes the bug... | 21:46 | ||
timotimo | heh. mod Linenoise so it .wraps the offending function before trying to load it %) | 21:47 | |
Zoffix | m: use nqp; BEGIN REPL.^lookup('history-file').wrap: -> | {42 }; dd REPL.new(nqp::getcomp("perl6"), %).history-file | 21:48 | |
camelia | You may want to `zef install Readline` or `zef install Linenoise` or use rlwrap for a line editor 42 |
||
Zoffix | So adding that ^ wrap somewhere before REPL loads will avoid the bug | ||
OK, no point release. | 21:49 | ||
samcv | also is META6.json preferred Zoffix ? or META.json? | 21:52 | |
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 | ||
i need to change my meta then | |||
timotimo | shake up the metagame | 21:54 | |
Zoffix | m: REPL.^lookup('history-file)'.wrap: -> | { $!history-file } | 21:55 | |
camelia | 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 } |
||
Zoffix | Is there a way to get $!history-file in wrap without nqp? | 21:56 | |
Or a way to replace a method in a type? | |||
samcv | ok cool. fixed that. need to be proper™ if i'm going to have it as an example on the PR page | ||
timotimo | replacing methods is possible in objects with "does" | ||
not in types, though | 21:57 | ||
Zoffix | :( | ||
nqp it is then! :) | |||
not working :/ | 22:01 | ||
gist.github.com/zoffixznet/48d990d...90ad578cf9 | |||
Zoffix gives up | 22:05 | ||
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 | ||
samcv | ok looks like we can't use resources for the url | 22:07 | |
based on what this says design.perl6.org/S22.html#resources | |||
Zoffix | Actually, not starting the repl and executing some code seems to work | ||
timotimo | oh wait | 22:08 | |
you were putting a http url into resources? | |||
Zoffix | I mean.. using perl6 -e '' and starting the REPL there | ||
samcv | yes | ||
i will fix it. where should it be put timotimo | |||
timotimo | i misread, i thought you were putting the license url into the support hash | ||
samcv | yeah it should be support | ||
Zoffix | Success! | 22:10 | |
samcv | yeah that's what i meant for it to be | ||
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 | |
q|$!history-file|, $hs); $hs.absolute }; sub MAIN (*%adverbs) { REPL.new(nqp::getcomp("perl6"), %).repl-loop(:interactive(1), |%adverbs) }'\''' | |||
And then users can use perl6repl alias to use the REPL until next rakudo star.... :} | |||
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): gist.github.com/zoffixznet/6a0d212...fa9efcc263 When you type perl6repl: (a) does the REPL work OK? (b) Is the error message about mkdir '/' gone? (c) try typing | 22:16 | ||
something, exiting, and running perl6repl alias again; press UP arraw, does it show the line you typed before exiting the repl last time? | |||
samcv | timotimo, let me know what you think of this github.com/perl6/specs/pull/120 | 22:17 | |
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: gist.github.com/zoffixznet/6a0d212...fa9efcc263 | 22:38 | |
yoleaux | Zoffix: I'll pass your message to stmuk. | ||
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. | ||
Zoffix | gist.github.com/zoffixznet/6a0d212...fa9efcc263 | ||
.tell lizmat gist.github.com/zoffixznet/6a0d212...fa9efcc263 | |||
yoleaux | Zoffix: I'll pass your message to lizmat. | ||
timotimo | oh, Zoffix, you can just ignore the error about mkdir /? | 22:46 | |
i thought it immediately crashed the repl | |||
well, that's half a relief | |||
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:50 | |
timotimo | phew | 22:51 | |
samcv | can we point release it? | 22:52 | |
nothing wrong with point releases right? | |||
timotimo | one point release in every home! | 22:53 | |
that's Rakudo 4! | |||
Zoffix | Other than looking like we don't got a clue with what we're doing, guess not :) | ||
Automate it. Make the bot cut a release ever 4 hours :P | |||
timotimo | Rakudo 2017.04 OSX Premium Edition | ||
Zoffix | haha | ||
samcv | lollll | 22:54 | |
point release meants that we make sure we fix problems :) | |||
also how can we make sure this is tested in the future | 22:55 | ||
TimToady is still looking for a fix for Grammar::Debugger | |||
samcv | :( | ||
Zoffix | samcv: by making a bot that regularly builds, stresstestes, and tries installing a handful of modules. | 22:56 | |
samcv | sounds good | 22:58 | |
but would that catch it? | |||
i mean it'd have to start repl | |||
we could use the expect program to start a repl and interact with it | |||
and it'll error on any weird output | |||
if we do it righ i think | 22:59 | ||
dunno if os x has expect | |||
oh good developer.apple.com/legacy/library...ect.1.html | |||
Zoffix | we have is_run_repl or something or other in roast/packages/Test/Util.pm | 23:00 | |
Zoffix & | |||
timotimo | i have had a test about the repl that i've always had to kill when doing spec test runs :P | ||
but maybe that's because of some left-over readline/linenoise module in my perl6 folders or something | 23:01 | ||
ugexe | No such method 's' for invocant of type 'IO::Handle' | 23:29 | |
in sub content-length at /home/travis/build/tokuhirom/p6-Crust/lib/Crust/Utils.pm6 (Crust::Utils) line 52 | |||
hmm | |||
what can that be replaced with? | 23:31 | ||
Zoffix | IO::Handle.IO.s | 23:32 | |
$thing.IO.s | |||
or $thing.path.s | 23:33 | ||
Zoffix looks at code | 23:34 | ||
ugexe | star: say $*OUT.s | ||
camelia | 0 | ||
Zoffix | Um... That looks like a bug | ||
Or maybe not | |||
I guess not | 23:35 | ||
It returnings the *remaining* content | |||
geekosaur | I think the OS returns size of 0 for things that aren't seekable | ||
Zoffix | m: $*OUT.tell | ||
camelia | ( no output ) | ||
geekosaur | and offset, yeh | ||
m: $*OUT.tell.say | 23:36 | ||
camelia | 0 | ||
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:37 | |
"Zoffix │ Um... That looks like a bug" I meant the code in Crust | 23:40 | ||
The removal of .s and 15 other methods was part of IO work and is documented in the upgrade notice | |||
ZofBot: no one reads my notices! | |||
ZofBot | Zoffix, With that syntax, what would be the "argument"s of the function are named operands instead | ||
geekosaur | nobody ever reads notices | 23:41 | |
like nobody ever reads manuals >.> | |||
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:42 | ||
Zoffix | Are regexes implemented with just a bunch of NQP ops? | 23:46 | |
Kinda noticing rewriting more complex regexes with nqp ops doesn't have a lot of bang for the buck | |||
NQP version of /^ ([[<$slash> ** 2] <$notslash>+ <$slash> [<$notslash>+ | $]]?) (.*) / is only 7.5x faster | 23:47 | ||
timotimo | "only" :) | 23:48 | |
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 | ||
Zoffix | Well, by comparison to 63x, 7.5x feels paltry | ||
timotimo | i don't think i understand what is faster and what code is what | ||
Zoffix | In the context of my question? | 23:50 | |
This change makes stuff 63x faster: github.com/rakudo/rakudo/commit/e1...fdaf064828 | |||
But this monstrosity to replace the first regex above is only 7.5x faster: gist.github.com/zoffixznet/734b351...581e27858b | 23:51 | ||
And it still has a bug for one case :} | |||
Zoffix packs it up for the day and goes to play Far Cry: Primal | 23:52 | ||
ZofBot: Takhar, Mammote! | |||
ZofBot | Zoffix, $tmpdir = IO::Spec |