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