Zoffix_ huggable, IO kills 01:04
huggable Zoffix_, [XXXX] (doc test suite[fixed]; Text::CSV[fixed]; XML.pm6[PR to fix github.com/supernovus/exemel/pull/43 ], Zef [fixed in github.com/ugexe/zef/commit/e2deb25 ])
Zoffix_ huggable, IO kills :is: [XXXXX] (doc test suite[fixed]; Text::CSV[fixed]; Zef [fixed]; XML.pm6[PR to fix github.com/supernovus/exemel/pull/43 ], Crust.pm6[ PR to fix github.com/tokuhirom/p6-Crust/pull/89 ])
huggable Zoffix_, Added IO kills as [XXXXX] (doc test suite[fixed]; Text::CSV[fixed]; Zef [fixed]; XML.pm6[PR to fix github.com/supernovus/exemel/pull/43 ], Crust.pm6[ PR to fix github.com/tokuhirom/p6-Crust/pull/89 ])
Zoffix_ Looks like I should switch to a gist :/ 01:05
There's another way to describe the breakage: this software was using entirely untested features. 01:06
And on that happy note....
Zoffix_ drops to bed
ZofBot, night!
ZofBot Zoffix_, That is, you're specifying the abstract operation, which may be used by various shallow operators
Zoffix_ &
timotimo gnite Zoffix_! 01:17
i'll try sleep, too
moritz: i have a reason to look at perl6-all-modules again; feel like updating it? :) 01:18
ugexe github.com/CurtTilmes/perl6-dbi-async this is kinda interesting, although should maybe use a different name 02:51
Ulti samcv out of curiosity why are you using a different string match for a given OS, is there a tangible difference in perf given the platform? 06:38
samcv there is a bit of difference. and it's because linux has glibc and freebsd's libc has another 06:39
and the freebsd one is portable and i got it working on windows and macos
Ulti oh thats interesting, I would have guessed they'd be the same 06:41
samcv and it's only used when the strings are either both 8bit or both 32bit string representations 06:46
but that is most of them
eventually we may be able to adapt the FreeBSD code to also skip x number of bytes because 32bit strings have 4 bytes, so it searches the same on 8 bit as 32bit. but can be optimized more if it's able to skip more often 06:47
moritz timotimo: sure, will do
samcv instead of each byte considered seperate
moritz I did want to automate that 06:48
(updating perl6-all-modules)
Ulti samcv is this all low level or accessible higher up to swap out? 06:49
samcv it's all low level
the nqp::index op is what has been changed
Ulti I've been considering implementing in a module bitap but for buf so I can do DNA/RNA searches efficiently since they have really small alphabets where each character can be 2bits
samcv github.com/MoarVM/MoarVM/commit/e8...0240272851 if you want to see the merge that pulled it all in. i've added a fair number of comments if you scroll past the bsd source file (though that's really interesting too)
hm 06:50
Ulti cool thanks
samcv you should look then
but memmem is basically searches for memory inside a memory
which is just the same as string search, just. i mean that's what it really is anyway
Ulti yeah 06:51
samcv and our strings aren't null terminated and are 32bit or 8bit
also github.com/MoarVM/MoarVM/pull/574 this may be interesting. and i have a link to the PDF of the paper that describes freebsd's algorithm (which also compares it to boyer-moore and also kruth-morris-pratt (glibc uses this) 06:52
Ulti so what was there before you made your changes? 06:57
samcv just brute force search 06:58
which grabs graphemes out of the each string and compares them
moritz and I assume that was due to our interesting string format?
samcv Ulti, github.com/MoarVM/MoarVM/blob/mast...ops.c#L265 06:59
this is the fallback still in case the strings are different bit widths 07:00
i still haven't been able to trigger this github.com/MoarVM/MoarVM/blob/mast...ops.c#L240 at least doesn't show it on coverage reports. even when i forced both strings to 32bit by converting them in the function beforehand 07:03
if anybody can help me with that, it would be cool
github.com/perl6/nqp/blob/master/t...ndex.t#L10
the comments big endian and little endian there are reversed by accident but both of them (i'm pretty certain) contain 4 bytes of null in their 32bit string represetations 07:04
depending on the endianess
camelia, gist.githubusercontent.com/samcv/a.../endian.p6 07:06
evalable6, gist.githubusercontent.com/samcv/a.../endian.p6
evalable6 samcv, Successfully fetched the code from the provided URL.
1048576 base 10
Padding 11 extra 0's
11
21
Big: (00000000 00010000 00000000 00000000)
Little: (00000000 00000000 00010000 00000000)
samcv if anybody can confirm if that is correct that'd be great 07:08
since that's the script i used to decide which codepoints to use in the test 07:09
lizmat good *, #perl6-dev! 07:23
samcv hi lizmat :-)
lizmat Files=1189, Tests=56681, 201 wallclock secs (12.08 usr 4.86 sys + 1195.44 cusr 116.20 csys = 1328.58 CPU) 07:24
samcv hey lizmat :) 07:25
oh i said that already. i think i'm tired
lizmat samcv o/
yeah, it's way past midnight for you, no ?
samcv 25 mins past
i got travis pushing rakudo builds now
pushing appimages
lizmat :-)
samcv github.com/samcv/rakudo-appimage/tree/gh-pages all these 4 were commited by travis 07:26
lizmat cool
samcv got a 4 matrix heh
so hopefully we will be able to have nightly appimages or maybe other things. now that i've figured out how the fuck to get travis to behave
lizmat Zoffix_: MacOs apparently fails S16-filehandles/filetest.t test 48: .z can be called on directories
Ulti samcv++ from all the people who do lots of string match :D 08:00
samcv :D 08:02
Ulti, i'll probably convert 8 bit needles to 32bit if the haystack is 32bit and the haystack is long enough and needles not too long 08:03
so it can use the optimized not the brute force
but still very big improvement so far. but i'm not sure what the next most used function is to speed improve
for string search that is
Ulti I guess one thing is for the code to be portable, but SSE4 instructions for strings would be a cool thing 08:04
samcv yeah. qt has that
Ulti it amazes me how few if any string libs actually use them despire it being a huge boost
samcv wait maybe. idk
they have optimized UTF-8 decoding though
i was eying that a month ago
but it seems pretty integrated 08:05
Ulti its kind of mental strings are this complicated
samcv what?
also we may want to use the freebsd memmem on linux for some things, i'm not sure yet though. if performance shows it's faster. because it might be faster at searching for a 32bit single character in a 32bit string because it has a fourbyte_memmem function 08:07
github.com/MoarVM/MoarVM/blob/mast...mmem.c#L46
chansen_ www-igm.univ-mlv.fr/~lecroq/string/...CTION00130 08:10
Works well and memcmp() is usally very optimized in any libc 08:11
samcv hmm maybe that can be altered to take advantage of knowing 4 byte width per char not 1 byte 08:18
bookmarking
but what license is that code under
chansen_ It's a book, did you see the index? www-igm.univ-mlv.fr/~lecroq/string/index.html 08:21
samcv nope not yet 08:23
Zoffix_ lizmat, what does perl6 -e 'dd ".".IO.z; dd ".".IO.s' give on MacOS? 09:13
samcv Zoffix_, where do i edit rakudo's source to have it change directory before running a script 09:14
based on an ENV var
for my appimages
Zoffix_ samcv, anywhere, I guess. 09:15
samcv, the sub for changing process's chdir is here github.com/rakudo/rakudo/blob/nom/...#L149-L150
samcv uh. where do we process command line arguments
i'd like to hack that
Zoffix_ Oh, no idea.
samcv i have opened the source file at least once months ago 09:16
Zoffix_ Somewhere in github.com/rakudo/rakudo/blob/nom/...mpiler.nqp
samcv oh yes
though i hope if i change directory there it doesn't screw up things 09:17
like if i chdir inside the perl6 shell script before launching all the relative links break
Zoffix_, i tried doing -M module_that_chdirs 09:28
works on my normal perl 6 but with the appimage it enters a dependency loop
Zoffix_ samcv, chdirs with what tho? 09:29
samcv probably due to relative paths or something weird
chdir's to the directory the appimage was started from
Zoffix_ What are you calling to chdir?
samcv well it doesn't matter what is in the module. it can be empty
but it fails in the appimage because the appimage uses relative paths or something
-I lib and then `use foo:bar` works though. but module PRE loading doesn't work 09:30
Zoffix_ It's curious how common misused of IO routines is in the ecosystem... I hope improved docs will help. 09:38
"return False unless $pid-file.IO.abspath.IO.e;" in UNIX::Daemonize
samcv it can just be $pid-file.IO.e right? 09:40
so is abspath getting deprecated with a warning? cause it's used a lot of places
Zoffix_ Another one in OpenSSL: "$*SPEC.catfile( IO::Path.new($*PROGRAM.dirname).absolute, "cacert.pem" )" 09:41
m: say WHAT $*PROGRAM.dirname
camelia (Str)
Zoffix_ m: say $*PROGRAM.dirname
camelia /tmp
Zoffix_ samcv, it's already gone.
samcv oh 09:42
m: say ".".IO.abspath
camelia No such method 'abspath' for invocant of type 'IO::Path'
in block <unit> at <tmp> line 1
samcv m: say ".".IO.absolute
camelia /home/camelia
Zoffix_ m: say $*PROGRAM.parent.child('cacert.pem') 09:43
camelia "/tmp/cacert.pem".IO
Zoffix_ Hm. I think I will steal `.sibling` from Mojolicious
samcv m: say '.'.IO.Str.IO.Str.IO.absolute.Str
camelia /home/camelia
Zoffix_ Details on what I wanna steal: metacpan.org/pod/Mojo::File#sibling 09:47
samcv m: my $str = ".IO.Str.IO.Str.IO.absolute.Str"; ā€œ'.'{$str x 10000}ā€.EVAL.say
camelia (timeout)
Zoffix_ 0.o what are you doing...
samcv m: my $str = ".IO.Str.IO.Str.IO.absolute.Str"; ā€œ'.'{$str x 1000}ā€.EVAL.say 09:49
camelia /home/camelia
samcv only what must be done
Zoffix_ .Str.IO is wrong
samcv it works though? 09:50
can't you call .IO on a string?
Zoffix_ Doesn't
samcv i call IO on all the strings which have filenames or directories in them i want to do operations
Zoffix_ m: my $orig = '.'.IO; $orig.dir.say; chdir '/tmp'; $orig.Str.IO.dir.say
camelia (".cpanm".IO ".local".IO ".npm".IO ".perl6".IO ".perlbrew".IO ".rcc".IO ".ssh".IO "Perlito".IO "evalbot".IO "log".IO "nqp-js".IO "p1".IO "p2".IO "perl5".IO "std".IO ".bash_history".IO ".bashrc".IO "mbox".IO ".lesshst".IO "evalbot.log".IO ".cpan".IO "daleā€¦
Zoffix_ m: my $orig = '.'.IO; $orig.dir[0].say; chdir '/tmp'; $orig.Str.IO.dir[0].say
camelia ".cpanm".IO
"y2yamldata-M2wvA1".IO
Zoffix_ m: my $orig = '.'.IO; $orig.dir[0].say; chdir '/tmp'; $orig.absolute.IO.dir[0].say
camelia ".cpanm".IO
"/home/camelia/.cpanm".IO
samcv m: "blah".^methods.pick.say
camelia comb
Zoffix_ samcv, .Str.IO on an IO::Path object is wrong, because .Str doesn't take $!CWD into account. The proper way to stringify IO::Path while preserving path correctness is with .absolute or .relative 09:51
m: my $orig = '.'.IO; $orig.dir[0].say; chdir '/tmp'; $orig.relative.IO.dir[0].say
camelia ".cpanm".IO
"../home/camelia/.cpanm".IO
samcv ok that is wrong
yeah 09:52
agree
Zoffix_ "$remote = $remoteio.abspath() ~ '/' ~ $path.IO.basename();" another one heh 10:00
samcv my $p = Promise.in(1); sub rec (Mu $b) { my $m; my $e = False; repeat while $e { $m = $b.^methods.pick.gist; try { "$b.$m".EVAL }; CATCH {$e = True; }; }; return !$p ?? rec("$b.$m") !! "$b.$m"; }; rec("'hi'").say 10:14
m: my $p = Promise.in(1); sub rec (Mu $b) { my $m; my $e = False; repeat while $e { $m = $b.^methods.pick.gist; try { "$b.$m".EVAL }; CATCH {$e = True; }; }; return !$p ?? rec("$b.$m") !! "$b.$m"; }; rec("'hi'").say
camelia 'hi'.indent.encode.trim.substr-eq.Str.chars.Stringy.parse-names.parse-base.indices.BUILD.Str.chop.NFC.match.ords.contains.contains.samespace.encode.match.parse-base.samecase.tc.trim.Stringy.uc.Bool.Int.codes.lc.starts-with.ords.samemark.subst-mutate.codeā€¦
samcv heh
m: my $p = Promise.in(1); sub rec (Mu $b) { my $m; my $e = False; repeat while $e { $m = $b.^methods.pick.gist; try { "$b.$m".EVAL }; CATCH {$e = True; }; }; return !$p ?? rec("$b.$m") !! "$b.$m"; }; rec("'hi'".IO).say
camelia 'hi'.x.uc.subst-mutate.chars.words.ords.rindex.chars.DUMP.lc.samespace.Num.samespace.uc.trim-leading.Num.BUILD.index.WHY.index.NFD.gist.DUMP.ord.chars.BUILD.lc.ord.word-by-word.trim-trailing.contains.NFC.subst.tclc.subst.trans.parse-base.samecase.Int.triā€¦
samcv m: my $p = Promise.in(1); sub rec (Mu $b) { my $m; my $e = False; repeat while $e { $m = $b.^methods.pick.gist; try { "$b.$m".EVAL }; CATCH {$e = True; }; }; return !$p ?? rec("$b.$m") !! "$b.$m"; }; rec("'hi'.IO").say
camelia 'hi'.IO.words.Str.samecase.words.chomp.samemark.gist.WHICH.lc.gist.Str.substr-eq.WHICH.Str.contains.uc.index.contains.Int.match.DUMP.contains.trim.chomp.comb.flip.ord.flip.chomp.trim-leading.starts-with.ACCEPTS.chop.wordcase.index.Num.tclc.indent.subst.Nā€¦
samcv m: my $p = Promise.in(1); sub rec (Mu $b) { my $m; my $e = False; repeat while $e { $m = $b.^methods.pick.gist; try { "$b.$m".EVAL }; CATCH {$e = True; }; }; return !$p ?? rec("$b.$m") !! "$b.$m"; }; rec("'hi'.IO").say 10:15
camelia 'hi'.IO.fc.substr-eq.subst-mutate.NFKD.comb.ends-with.trim-leading.flip.comb.gist.NFD.BUILD.samecase.Numeric.Int.rindex.chars.encode.Str.starts-with.NFC.chomp.NFKC.tc.DUMP.ords.index.trim-trailing.contains.pred.subst.ord.Bool.samemark.Int.words.Numeric.sā€¦
samcv only does methods that eval shows don't throw.
m: my $p = Promise.in(1); sub rec (Mu $b) { my $m; my $e = False; repeat while $e { $m = $b.^methods.pick.gist; try { "$b.$m".EVAL }; CATCH {$e = True; }; }; return !$p ?? rec("$b.$m") !! "$b.$m"; }; rec("Promise.new").say 10:16
camelia Promise.new.trans.word-by-word.ACCEPTS.lines.tclc.indices.ord.indices.subst-mutate.codes.tclc.NFKD.WHY.subst-mutate.starts-with.NFKD.perl.ords.flip.Stringy.substr-eq.wordcase.substr-eq.trim-leading.tclc.rindex.ord.starts-with.word-by-word.chomp.words.preā€¦
samcv m: my $p = Promise.in(1); sub rec (Mu $b) { my $m; my $e = False; repeat while $e { $m = $b.^methods.pick.gist; try { "$b.$m".EVAL }; CATCH {$e = True; }; }; return !$p ?? rec("$b.$m") !! "$b.$m"; }; rec("Promise.new").EVAL.say
camelia No such method 'parse-base' for invocant of type 'Promise'
in block <unit> at EVAL_67 line 1
in block <unit> at <tmp> line 1
samcv oh. i guess it doesn't work that well
Zoffix_ <timotimo> moritz: i have a reason to look at perl6-all-modules again; feel like updating it? :) 10:20
timotimo, FWIW, I sent PRs for the .abspath that were in the current perl6-all-modules: gist.github.com/zoffixznet/0ea1f4d...3f8dd11cc1
huggable, IO kills
huggable Zoffix_, [XXXXX XXXXX XXXXX XXX]: See gist.github.com/zoffixznet/0ea1f4d...3f8dd11cc1
timotimo Zoffix_: sha1-native already has my pullrequest merged :) 10:42
Zoffix_ timotimo, I see neither commits nor other PRs: github.com/bduggan/p6-digest-sha1-...its/master 10:43
lizmat clickbaits p6weekly.wordpress.com/2017/04/10/...15-kaboom/ 10:45
oops, wrong chan
Zoffix_ looks up why the upcoming Good Friday is Good.... 10:47
Creepy :|
At least we get a day off up in Canukistan \o/
samcv night everybody o/
Zoffix_ night
samcv also thanks Zoffix_ for sending PR to the modules :) very awesome 10:48
'break it you fix it'?
heheh
lizmat just spent a day trying to optimize creating a sorted list of keys of a hash 10:49
turns out, just creating a list_s and sorting that, is the fastest way to do this
and not an approach with a binary search, building the list on the fly from the iterator 10:50
*sigh*
gist.github.com/lizmat/5ce4c4963e8...0ff932611c # for those interested 10:53
samcv lizmat, also is there a reason for nqp::stmts, when i was coding nqp it didn't change execution time using stmts versu just (exp 1; exp2; exp3) 10:54
when compiled
argh it's way too late
lizmat samcv: I try to mix nqp-like code and HLL code as little as possible 10:55
samcv see you all tomorrow
lizmat good night!
samcv kk :)
lizmat 4am is a good time to go and get some rest!
samcv it was a good time 2 hours ago
and now it's still a good time
but not a better time
o/
lizmat o/
lizmat will be mostly away on Wed / Thu and possibly Fri, so stops doing commits now as to not more problems for the release 11:00
*create
timotimo Zoffix_: damn, i looked at closed pullrequests and there's actually only one "use abspath"
i just got out of bed, so that's probably why i derped that 11:01
looks like i made the change and somehow didn't pullrequest it?
Zoffix_ lizmat, what does perl6 -e 'dd ".".IO.z; dd ".".IO.s' give on MacOS? 11:02
Zoffix .tell lizmat FWIW, I'm delaying the release by 1.5-2 days to cram all the IO stuff into it. You said .z test fails on MacOS... it's testing for Bool; what does it get on MacOS? 11:21
yoleaux Zoffix: I'll pass your message to lizmat.
Zoffix good grief... 12:15
I'm using Molases ISP 12:16
timotimo :<
Zoffix ehehe. I found a way to test out code on mac. 12:40
It's very slow though. Takes 8.5 minutes to do 1 test :)
.tell lizmat managed to run .z on Mac. Seems to work fine. Is it possible you ran the test without pulling and building HEAD for rakudo? travis-ci.org/zoffixznet/mactest/jobs/220938858 12:41
yoleaux Zoffix: I'll pass your message to lizmat.
timotimo oh yeah, travis :\
Zoffix NeuralAnomaly: status 13:00
NeuralAnomaly Zoffix, [āœ˜] Next release will be in 3 days and 15 hours. Since last release, there are 24 new still-open tickets (14 unreviewed and 0 blockers) and 222 unreviewed commits. See perl6.fail/release/stats for details
Zoffix lotsa commits :o
m: my int @b = 1, 2, 3, 4, 5; say @b[-2 ^ 0]; 13:02
camelia one(4, 1)
Zoffix m: my int @b = 1, 2, 3, 4, 5; say @b[-10 ^ 0];
camelia MVMArray: Index out of bounds
in block <unit> at <tmp> line 1
Zoffix neat :D
timotimo oh, that's fun 13:04
because it's checking for bounds, and *one* of those satisfies the bounds
that check needs to happen after the junction fans out
timotimo BBIAB 13:05
Zoffix m: my int @b = 1, 2, 3, 4, 5; say @b[-2 ^ -1];
camelia one(4, 5)
lizmat . 13:09
yoleaux 11:21Z <Zoffix> lizmat: FWIW, I'm delaying the release by 1.5-2 days to cram all the IO stuff into it. You said .z test fails on MacOS... it's testing for Bool; what does it get on MacOS?
12:41Z <Zoffix> lizmat: managed to run .z on Mac. Seems to work fine. Is it possible you ran the test without pulling and building HEAD for rakudo? travis-ci.org/zoffixznet/mactest/jobs/220938858
lizmat Zoffix: indeed, cannot reproduce it now, so sorry for the false alarm
afk again&
Zoffix \o/
Hmmm 14:09
<ZofBot> Zoffix, The "subparse" method does not add anchors, and will match substrings against the rule 14:10
m: grammar { token TOP { "foo" } }.subparse("meowfoobar").say
camelia #<failed match>
Zoffix But it doesn't actually. It's anchored to the start of the string.
Did the bot find a bug?
Geth roast/6.c-errata: ae9c63cf27 | (Zoffix Znet)++ | integration/advent2011-day23.t
Fix typo in code

The previous fix[^1] to the test to accomodate Rakudo's changes[^2] removed one-too-many characters. Fix by re-adding it. Also amend test's description to describe actual code run.
  [1] github.com/perl6/roast/commit/5f76...a3b70e102b
  [2] github.com/rakudo/rakudo/commit/7e...8dcaa4989e
14:17
roast: 6546a54cae | (Zoffix Znet)++ | integration/advent2011-day23.t
Update test description

To reflect the actual code being run.
14:19
Zoffix Should roast even be accessible to default perl6 users? Basically anyone who's part of perl6 org has perms to alter The Official Perl 6 Specificationā„¢ 14:36
I just went to GitHub and it suggested me I pull and merge 6.c-errata to master.
Which might be quite damaging if actually done.. 14:37
ZofBot: I'm all alone, talking in this room, am I not? It's just you and me. 14:38
ZofBot Zoffix, Default "multi"s should be marked with ""is default""
moritz Zoffix: we also gave everybody write access to perl6/specs when that was considered "The Official Perl 6 Specificationā„¢"
Zoffix Before it was solidified tho 14:39
And made immutable 14:40
jnthn Trusting people has, so far, worked out pleasantly well
Zoffix This isn't about trust. This is about someone accidentally deleting 6.c-errata, for example. That won't be even reported by Geth. And with 270 people accidents are more likely than with 30-50. 14:42
moritz then one of us who has 6.c-errata checked out pushes it again
when we notice it's gone
Geth roast/6.c-errata: fe1aef1688 | (Elizabeth Mattijsen)++ | integration/advent2013-day07.t
Make bogus .WHICH test less bogus
moritz most mistakes in git land are simple to recover from (if sometimes painful, through a force-push), so mistakes typically aren't that fatal 14:43
Zoffix OK. can't merge 6.cerrata anyway 14:45
Geth roast/6.c-errata: fe1aef1688 | (Elizabeth Mattijsen)++ commited by Geth::GitHub::Hooks::Event::Push::Commit<140152101270048>.commiter | integration/advent2013-day07.t
Make bogus .WHICH test less bogus
14:50
Zoffix uhhh...
Geth roast/6.c-errata: fe1aef1688 | (Elizabeth Mattijsen)++ (committed by Zoffix Znet) | integration/advent2013-day07.t
Make bogus .WHICH test less bogus
14:52
dogbert17_ o/
Zoffix That's better.
Geth geth: 43aa2970ab | (Zoffix Znet)++ | lib/Geth/Plugin/GitHub.pm6
Report committer when it differes from author

  - e.g. in cherry picks
14:53
dogbert17_ is it reasonable that running 'perl6 htmlify.p6' should take 20 minutes to execute (on a dual core i5)?
Zoffix That sounds about what my experience with it was.
dogbert17_ that's annoyingly slow
dogbert17_ wonders what it might be doing behind the scenes 14:54
timotimo dogbert17_: yeah, it's pretty slow :(
oh, did you get the faster highlighter? 14:55
Zoffix Interesting....
dogbert17_ any idea what causes this slowness?
Zoffix 6.c-errata stresstest takes: Files=1149, Tests=125720, 121 wallclock secs (20.15 usr 3.22 sys + 2247.16 cusr 122.38 csys = 2392.91 CPU)
timotimo is that still optional?
Zoffix dogbert17_: doing lots of work
dogbert17_ it uses some node thingie I belive
Zoffix I think it gets faster if you turn off highlighting and image generation
the node stuff is highlighting 14:56
timotimo OK, good
it used to do it by exec ing a python instance if you didn't have Inline::Python, but those days are probably long gone
can you run it with --parallel or what it's called? are we stable enough for that yet?
dogbert17_ well, today the NDA's are lifted on AMD's Ryzen 5 series CPU's, maybe it's time to upgrade ...
Zoffix yeah, python's ded :}
dogbert17_ www.youtube.com/watch?v=HO20mmQjY40 # review of the new CPU's 14:58
Zoffix timotimo: BTW the :s doesn't stop you from key-lookup or index-look or method call for your scalars. Just like you can still use %hash<foo>[42] with just :h. The most permissive option I found is :c and using codeblocks for all interpolation, but that still sucks for CSS interpolation :/ 14:59
TimToady: showed some trick that I now forget 15:00
m: my $foo = 42; say q|qq\\$foo|
camelia qq\$foo
Zoffix It looked somethign like that 15:01
m: my $foo = 42; say q|qq//$foo|
camelia qq//$foo
Zoffix shrugs
m: my $foo = 42; say q|qq{$foo}|
camelia qq{$foo}
Zoffix m: my $foo = 42; say q|\qq[$foo]| 15:02
camelia 42
Zoffix Therewego
m: my $foo = 42; say '\qq[$foo](42)' 15:03
camelia 42(42)
Zoffix \o/
m: my $foo = 42; say 'the $foo is \Qs[$foo]' 15:05
camelia the $foo is \Qs[$foo]
Zoffix I guess \Q don't work
too much risk for false positives 15:06
tho \q gets interpreted vOv 15:07
MasterDuke dogbert17_: i just ran `htmlify.p6 --no-highlight --parallel=10` and it took maybe 2-3min, but there were two errors 15:13
Use of uninitialized value $node of type Any in string context. Methods .^name, .perl, .gist, or .say can be used to stringify it to something meaningful. in sub node2rawtext at /home/dan/Source/perl6/doc/../modules/Pod-To-HTML/lib/Pod/To/HTML.pm (Pod::To::HTML) line 599
..No such method 'contents' for invocant of type 'Any' in block at htmlify.p6 line 936 in sub write-kind at htmlify.p6 line 916 in sub MAIN at htmlify.p6 line 232 in block <unit> at htmlify.p6 line 1013 15:14
Zoffix Here. Summed it all up in a screenshot: twitter.com/zoffix/status/851815881852284929 15:15
timotimo MasterDuke: sounds like it's having some kind of concurrency related issue :( 15:17
MasterDuke timotimo: yup. much better than it used to be, but still not perfect 15:18
Zoffix Have you checked that the problem is not actually in the htmlify.p6 script? 15:20
This type of stuff you'd get when you have more than one thread changing the same variable 15:21
timotimo yeah, the crossthreadwrite log might give a clue, but not necessarily
jnthn The problem I know about in htmlify is that the NEXT phaser mis-compiles into something not thread safe
In the while loop case
Or something like that
Zoffix Ah
jnthn Many of the others I fixed
But the script really wasn't written in a concurrency-thoughtful way 15:22
So I'd not be surprised if there are some further issues after fixing that one
timotimo yeah :|
jnthn Though other than that issue it seemed to be getting relatively into things 15:24
*relatively far
I'd love to say I'd look at it soon, but my Perl 6 time these days is...pretty limited. 15:28
[Coke] Zoffix: I didn't see this explicitly mentioned in backscroll, but the 6.c-errata branch is protected, on github. 15:29
we can protect it further if needs be, but it can't be deleted, and can't be force-pushed. 15:30
dogbert17_ MasterDuke: have you ever managed to profile htmlify? 15:31
[Coke] nope. 15:32
Zoffix [Coke]: cool
[Coke] It's doing a lot, and it does it all in one script (instead of in several make-composable chunks). If you're using it locally, you can pass "--sparse=40" to do a fraction of the pages (this may also help with profiling) 15:33
dogbert17_ [Coke]: thx, I'll try that when I get home from work
b2gills Zoffix: Windows reserves the filename "NUL" (/dev/null) in every directory, along with CON (STDOUT) LPT1 and COM1 etc 15:37
Zoffix BTW, now that more people are here, I'm planning to add IO::Path.sibling($x) that will function like .parent.concat-with($x). 15:38
It's shorter to type. I've seen some uses of it in ecosystem. Mojo::File has it and their team bikesheds everything to death.
b2gills That sounds useful
Zoffix So if anyone wants to protest, do so now :D)
b2gills: TIL. Out of them all, the 'CON' file does get created with perl6 -e "'COM1'.IO.spurt('test')" 15:55
And LPT1 fails with "Failed to open file C:\temp\LPT1: no such file or directory" even though it's a writing open :S
The rest silently succeed with no file left.
Oh, it's CON not COM! Yeah, also failed to open. 15:56
Cool.
b2gills One of my earliest Perl programs was directly controlling an Epson Dot matrix printer by sending bytes to LPT1
I think it was in DOS 1.0 which was before it had directories, so to be backwards compatible in DOS 2.0 it worked in all directories. 15:58
Zoffix is pretty sure he wasn't yet born at the time... 16:00
A time when computing products were advertised with stone and chizzels lulz: upload.wikimedia.org/wikipedia/en/...sdosad.jpg 16:02
[Coke] do we want to restrict the actual github ids that can even push to 6.c-errata? that's possible with github.
Zoffix [Coke]: I'd say yes. Simply because otherwise we're relying on people noticing a commit announced via a bot. It shouldn't be easy to change something that's supposedly immutable. 16:04
After 6.d release, would be nice to have some stricter rules, or more like concrete checklist for identifying stuff that can be changed in erratas. 16:05
perlpilot b2gills: I'm a wee bit skeptical that you had Perl running on DOS 1.0 or 2.0 :)
b2gills I didn't say that, I said that is why CON and NUL are in every directory 16:06
perlpilot oh, I conflated your two statements in my head.
b2gills I think I was using Windows 98 (SE)? when I first found out about Perl 16:07
Zoffix And maybe a separate branch where errata-breaking stuff gets pushed, until the test is changed. I noticed at least 1 time where a change went in and a discussion about whether errata is wrong and should be changed never properly took place, because people couldn't connect together. This way, the change can exist elsewhere until everything is properly decided. 16:08
And more bots to watch stuff. After all the grant stuff, gonna add a bot that stresstests nightly. 16:11
Will track all the flappers too.
And improve the release bot to also cut Perl6.VIP and also make distro packages. 16:13
And improve the release app a bit. Too much typing when doing logs. Gonna add boxes for each commit and a toggle for which section to log it. It'll assemble it at the end automagically. 16:14
ZofBot: replace all the things with robots.
ZofBot Zoffix, ^ *>5 # means 0, 1, 2, 3, 4, 5 [Conjecture: it is possible that, for most of the above operators that take "*" to mean "Inf", we could still actually return a closure that defaults that particular argument to "Inf"
Geth rakudo/uncurse: cdd625b68c | TimToady++ | 11 files
unify Match with Cursor

This just follows the same changes that nqp does for unification.
rakudo/uncurse: b123ab223b | TimToady++ | 2 files
move Match code from Cursor.pm to Match.pm
Zoffix m: say ^ *>5
camelia { ... }
Zoffix m: say eager ^ *>5 16:15
camelia ({ ... })
Zoffix m: say eager 1..^*>5
camelia (True)
Zoffix m: say eager 1...^*>5
camelia (1 2 3 4 5)
Zoffix \o/ 16:16
Geth nqp: 7f949d31f6 | TimToady++ | 11 files
rebootstrap to get constant declarator
16:18
nqp: 98601ba688 | TimToady++ | 11 files
Revert "rebootstrap to get constant declarator"

This reverts commit 7f949d31f691fe862dc962d9ab9bff4239f20cac.
Accidentally did this in master when I intended to do it in a branch.
TimToady progress report: the uncurse branch now successfully parses the setting, but blows up somewhere in the precompiler 16:20
without having done any benchmarks, it appears to run at about the same speed, or possibly a hair faster, but large speedups are not yet expected 16:21
since it's still doing most of the work that the old MATCH method is doing
in any case, not intending to merge this till after release 16:22
since it may impact downstream modules that have gotten overly chummy with the current internals 16:23
Zoffix It's possible the release will be delayed by 2 days and be cut on April 17th (around noon on Monday, EST time) 16:26
TimToady yes, I picked up the distress call earlier :)
Zoffix :)
Geth nqp/uncurse: 17 commits pushed by (Samantha McVey)++, (Pawel Murias)++, TimToady++
review: github.com/perl6/nqp/compare/e32ad...6439b08a94
16:39
Zoffix t/spec/S17-supply/syntax.t flopped 16:40
Geth rakudo/uncurse: 30 commits pushed by (Zoffix Znet)++, (Julien Simonet)++, (Elizabeth Mattijsen)++, (Samantha McVey)++, (Daniel Green)++, (David Warring)++, lizmat++, TimToady++
review: github.com/rakudo/rakudo/compare/b...3dbd05631d
MasterDuke dogbert17_: i had profiled htmlify.p6 a while ago, but i don't have it anymore (and it probably wouldn't be useful by now anyway) 16:46
i just tried now, with --parallel=1 so there wasn't any concurrency, but it immediately segfaults 16:47
valgrind output fwiw gist.github.com/MasterDuke17/cdf57...03efb29c35 16:52
Zoffix Oh hah. Un-inteded side effect: Geth fix above now also identifies commits that were pushed using GitHub's web interface :) 16:55
Geth rakudo/uncurse: 6d04acf7dc | TimToady++ | src/core/Attribute.pm
get rid of hacky read of .HOW

  (It was a mystery why we ever needed it in the first place, but for
a while the following method call to .generate_accessor would not work without it.)
16:59
[Coke] suggested restricted list of committers for 6.c-errata? lizmat, zoffix, jnthn, timtoady? 17:05
Zoffix rakudo's repo members?
Geth geth: 7844afdbf1 | (Zoffix Znet)++ | lib/Geth/Plugin/GitHub.pm6
Identify when a commit is made using GitHub's web editor

Because we can.
17:06
[Coke] Zoffix: that would have to be coordinated manually, and I can't see that list.
we could create a perl 6 team called "core" or something and give that team privs. 17:08
(then we use team management to manage it instead of a list of users in one repo's settings.)
Zoffix Then I guess yeah, that list is good. + samcv + usev6 (bartolin) + MasterDuke17 + pmurias + FCO (SmokeMachine) + niner + arnsholt 17:09
+ stmuck 17:10
* stmuk
ZofBot: is that all?
ZofBot Zoffix, 14159265358979323846264338327950288 Context * Perl still has the three main contexts: sink (aka void), item (aka scalar), and list
Zoffix Yeah, the core perl6 team sounds good. 17:12
MasterDuke fyi, i'm not a rakudo repo member 17:13
[Coke] as long as your a perl6 org member, 'sfine.'
adding myself to list as well. 17:14
MasterDuke k, just didn't want to slide in under an incorrect assumption. btw, what about moritz and masak also? 17:16
[Coke] sure. 17:17
Zoffix oh yeah
Oh and AlexDaniel 17:18
MasterDuke timotimo?
[Coke] there, push to 6.c-errata is now restricted to the probably inappropriately named 'core' team.
Zoffix [Coke]++
Thanks.
Oh, this for for 6.c-errata. Cool.
[Coke] yup. any perl6 owner/admin can update the "core" team to add more members as needed. 17:19
but this should prevent potential thinkos.
Zoffix OK. Thanks.
[Tux] This is Rakudo version 2017.03-219-gb6838ee4d built on MoarVM version 2017.03-115-ge8231a30 17:38
csv-ip5xs 3.052
test 12.593
test-t 4.942 - 4.996
csv-parser 12.679
Zoffix buggable: speed 5 17:40
buggable Zoffix, ā–ā–ƒā–ā–ā–‚ data for 2017-04-10ā€“2017-04-11; range: 4.921sā€“5.031s; 1% slower
Zoffix bah
buggable: speed 10 17:41
buggable Zoffix, ā–ˆā–ā–‡ā–„ā–ˆā–ā–ƒā–ā–ā–‚ data for 2017-04-08ā€“2017-04-11; range: 4.921sā€“5.413s; 8% faster
Zoffix There are lies, damned lies, and statistics :)
buggable: speed 4 17:42
buggable Zoffix, ā–ƒā–ā–ā–‚ data for 2017-04-10ā€“2017-04-11; range: 4.921sā€“5.031s; 1% faster
Zoffix buggable: speed 4000
buggable Zoffix, Refusing to do more than 100 last entries
Zoffix buggable: speed 100
buggable Zoffix, ā–ā–ā–ā–ā–ā–‚ā–ā–‚ā–ā–ā–‚ā–‚ā–ā–‚ā–ā–ā–ā–ā–‚ā–‚ā–‚ā–‚ā–‚ā–‚ā–‚ā–‚ā–‚ā–‚ā–‚ā–‚ā–‚ā–ā–ƒā–ƒā–‚ā–‚ā–‚ā–‚ā–ā–‚ā–ˆā–‚ā–‚ā–ƒā–‚ā–ā–ā–ā–ā–ā–‚ā–ā–ā–ā–ā–‚ā–‚ā–‚ā–ā–‚ā–ā–‚ā–‚ā–ā–ā–ā–ā–ā–ā–†ā–‚ā–ā–ā–ā–ā–ā–ā–ā–‚ā–ā–ƒā–ā–‚ā–ā–ā–ā–ā–ā–ā–‚ā–ƒā–ā–‚ā–‚ā–‚ā–ā–‚ā–ā–ā–‚ data for 2017-02-25ā€“2017-04-11; range: 4.788sā€“7.664s; 4% slower
Zoffix :(
Well, don't mean much, as far as entire Rakudo is concerned. 17:43
dogbert17 some htmlify stats from my home machine: running with --no-highlight takes a bit over 7 minutes, running with highlighting takes 20 ! 17:57
dogbert17 wonders of node v 4.5 is too old 17:58
and 'perl6 --profile htmlify.p6 --no-highlight --sparse=10' segfaults 18:01
MasterDuke dogbert17: i believe the segfaulting is the same as this github.com/MoarVM/MoarVM/issues/571 18:11
Geth roast: a8a968499e | (Daniel Green)++ | S02-types/native.t
Too big argument for a native param should throw
18:37
dogbert17 Program received signal SIGSEGV, Segmentation fault. 18:46
0xb7c157d5 in MVM_interp_run (tc=0x804c458, initial_invoke=0xb7cee5e9 <toplevel_initial_invoke>, invoke_data=0x80b8b20) at src/core/interp.c:5328
5328 tc->cur_frame->params.named_used[GET_UI16(cur_op, 0)] = 1;
MasterDuke: looks familiar? 18:47
here's the gist, perhaps something for timotimo: gist.github.com/dogbert17/82fd4cb9...b39f7223d0 18:50
MasterDuke dogbert17: yep 18:51
[Coke] perl6 -MApp::Uni -e 'say uni-gist $_ for qx/tput cuu 1/.comb' # should be able to make this awesomer. 18:54
... wrong window! 18:55
MasterDuke dogbert17: btw, 6m30s no highlighting, 24m20s with highlighting 19:01
[Coke] there is a highlighting -- option to speed things up, not sure if it's the default. 19:03
Zoffix ZofBot: what are your options to speed things up 19:25
ZofBot Zoffix, typename'" !! "No such method '$
Zoffix m: sub (int $x) { dd $x }(99999999999999999999) 19:26
camelia 7766279631452241919
Zoffix MasterDuke: seems it's a failing test you added
c: 2017.03 sub (int $x) { dd $x }(99999999999999999999)
committable6 Zoffix, Ā¦2017.03: Ā«Cannot unbox 67 bit wide bigint into native integerā¤ in sub at /tmp/LAM1jd3FFL line 1ā¤ in block <unit> at /tmp/LAM1jd3FFL line 1ā¤ Ā«exit code = 1Ā»Ā»
Zoffix hopes for a fix before release :) 19:27
MasterDuke Zoffix: whoops, the fix was merged to moar this monring 19:28
Zoffix Ah, we just need a bump github.com/MoarVM/MoarVM/pull/578
MasterDuke++
Imma do it
That's another thing I'm gonne make a bot do: version bumps, with stressting stuff first 19:31
Might be too slow tho; since I don't have a 24-core VM running 24-7 19:38
Hm... I could teach it to power on a VM to do the bump...
Probably takes like half an hour on a 2-core VM 19:39
ZOFVM: Files=1238, Tests=133657, 113 wallclock secs (21.17 usr 3.40 sys + 2323.35 cusr 156.45 csys = 2504.37 CPU) 19:44
Geth nqp: a29b8187e2 | (Zoffix Znet)++ | tools/build/MOAR_REVISION
Bump MoarVM version

Brings these commits:
  github.com/MoarVM/MoarVM/compare/2...8-gc9ab59c
c9ab59c Remove arbitrary and small length range check. 66dd8c9 Merge pull request #578 from MasterDuke17/fix_mp_get_int64_and_mp_get_uint64_for_realz ... (11 more lines)
Ā¦ nqp: version bump brought these changes: github.com/MoarVM/MoarVM/compare/2...8-gc9ab59c
rakudo/nom: d0924f1a28 | (Zoffix Znet)++ | tools/build/NQP_REVISION
Bump NQP Version

NQP version bump brought these commits:
  github.com/perl6/nqp/compare/2017....2-ga29b818
98601ba Revert "rebootstrap to get constant declarator" 7f949d3 rebootstrap to get constant declarator ... (27 more lines)
Ā¦ rakudo/nom: version bump brought these changes: github.com/perl6/nqp/compare/2017....2-ga29b818
timotimo dogbert17: that might be another thing where disabling INLINE might help?
Zoffix It's kinda weird that master stresstest runs in 113 secs, but 6.c-errata stresstestā€”that complains about 20-30 missing filesā€”runs in 121secs 19:46
MasterDuke timotimo: same as the experimenting we did before. disabling jit and spesh get it a tiny bit farther and more info, but stiff immediate segfaults 19:47
timotimo wait, huh, did i just see something else? 19:48
i saw one where paramnamesused segfaulted
MasterDuke timotimo: i think that was something you were doing, maybe yesterday? 19:49
timotimo long, long ago
Geth roast: e3ce53a142 | (Zoffix Znet)++ (using GitHub Web editor) | S02-types/native.t
Don't use non-standard features in tests
19:51
dogbert17 timotimo: you're right setting MVM_SPESH_INLINE_DISABLE=1 seems to fix things 20:01
timotimo i wonder what it is about named arguments that breaks inlines sometimes 20:09
MasterDuke you can profile htmlify.p6 with MVM_SPESH_INLINE_DISABLE=1?
i've never seen a backtrace like this before: gist.github.com/MasterDuke17/dd93c...d98075b2ba 20:17
Geth rakudo/nom: acaeb367f3 | usev6++ | src/vm/jvm/runtime/org/perl6/rakudo/Binder.java
[JVM] Fix X::TypeCheck::Binding::Parameter

In order to make the recently (with 0f9f00082b) introduced exception X::TypeCheck::Binding::Parameter work, the CallSiteDescriptor had to contain the additional argument. This makes a couple of tests from roast pass again.
20:32
timotimo MasterDuke: fascinating! 20:36
dogbert17 I'm trying to profile now but the profiles get rather big so I'm commenting out some steps
timotimo MasterDuke: can you give us what thread 1 has in its backtrace?
it might be at the end of gc and waiting for other threads to report finished 20:37
dogbert17 am a bit confused with how to interpret the 'Routines' page of profiler output 20:40
the top few entries all have 'Inclusive time' equal to 100% after that it slowly starts to drop off until there's a big jump 20:42
timotimo yeah
you know that inclusive counts not only the routine itself but also all time spent in routines they call?
so imagine you have a "main" 20:43
99.9% of the program's run time is spent inside of main or something main calls
dogbert17 e.g. I have 'sink' at 97.85% followed by 'process-pod-dir' at 75.78%
timotimo right, that sink is most likely a very top-level for loop that does most of the work in total
dogbert17 aha, do I then have to drill down that call to see whats's happening 20:44
MasterDuke timotimo: gist updated 20:45
dogbert17: are you using the qt profile viewer? much better for large profiles 20:46
dogbert17 haven't tried that
timotimo i generally just sort by exclusive time, honestly 20:47
MasterDuke github.com/tadzik/p6profiler-qt
i pretty much use it exclusively, until the profile get too big even for it and then switch to SQL 20:48
dogbert17 cool, will have to try that 20:49
so 'sink' might then refer to a loop
MasterDuke dogbert17: are you in a 32-bit OS? how old is your rakudo? 20:50
tadzik MasterDuke: since you use it a lot, could I get all possible feedback on what'd you like improved?
especially how big is "too big"
it's one of the things I'd like to polish a little over the not-qa-hackathon next month 20:51
MasterDuke tadzik: well, i know QT imposes a somewhat arbitrary limit of ~120mb, iirc
timotimo too big is when the json parser says "i can't deal with files this big"
tadzik yeah, a move to sql is probably unavoidable 20:52
timotimo yeah
MasterDuke tadzik: one thing is resizing the columns doesn't always work well
actually you can't resize at all 20:53
so sometimes even full screen i can't read the file+linenumber in the "Routine" column 20:54
timotimo i wish we had something clever for these looooong hash filenames 20:56
in the html one
MasterDuke yeah, those are where it really breaks down
tadzik: another small thing. the bar in the inclusive and exclusive columns adjusts adjusts its width to fit the percentage+time 20:59
but it just looks a little funny that sometimes the bar's total width differs from one row to the next 21:01
timotimo i wanted to add info about GCs to the qtprofiler some time ago, but handling the model/view stuff qt has come up with is ... annoying
and also trying to build a progressbar that renders in three colors ...
tadzik hmm
tadzik notes
MasterDuke timotimo: do the regular profiles still lack allocation info and such? 21:02
timotimo yeah :( 21:03
well, the info is there, but the html app doesn't let you look
MasterDuke: do can you figure out how the instrumented_mark_data function crashes exactly? 21:04
MasterDuke tadzik: see what i mean here? i.imgur.com/khj3FAU.png 21:05
timotimo wat?
tadzik yeah, silly indeed :)
timotimo that's not how i remember the profiler looking
tadzik though it looks much different here, must be styling
MasterDuke i'm using KDE fwiw
on Arch
timotimo: how do i figure that out? 21:06
timotimo MasterDuke: start by doing "print" on all the local variables
tc->prof_data is already null-checked, but maybe it's just a totally invalid pointer somehow?
MasterDuke does it matter what thread?
timotimo it should be the one that crashed 21:07
MasterDuke timotimo: gist updated 21:09
timotimo could you also print the foo[0] for each of these so it dereferences? 21:10
except the null pointer of course
hum. zef somehow failed to fetch OO::Monitors 21:12
*shrug*, i git cloned and locally installed it 21:13
MasterDuke gist updated 21:14
timotimo m: say DateTime.new(1033699633629796) 21:16
camelia +32758607-05-21T23:23:16Z
timotimo what.
hm, might be msec
m: say DateTime.new(1033699633629796 / 1000)
camelia +34726-08-22T03:07:09.796000Z
timotimo ..... 21:17
Zoffix Well, this is unpleasant :| Coming in home to find pieces of drywall all over the hall and half the bathroom wall missing :S
timotimo :o
what kind of ghetto repair job are they doing there
Zoffix Note: I had no idea anyone would come at all :/ 21:18
timotimo MasterDuke: i'm surprised it crashed at that point ... but maybe gcc just totally inlined the other function and therefor you can't properly see it in the debugger?
Zoffix And I was supposed to work from home tomorrow; now I wonder if I should turn in to the office, so I wouldn't get annoyed by all the banging.
timotimo MasterDuke: does it crash early enough so that you could run it under valgrind? it usually gives a bit better errors when a segfault happens 21:19
MasterDuke yeah, just a sec 21:23
timotimo otherwise maybe --optimize=1 could help? i can't really see in what way that code is supposed to crash 21:26
MasterDuke would compiling with --optimize=0 be useful at all?
timotimo usually not much better than 1, i believe
MasterDuke oh interesting, it just got past the part it always crashes in in valgrind
timotimo updating zef helped with installing stuff 21:30
maybe it was an .abspath thing or something
MasterDuke gist updated with valgrind output, now i'll try recompiling with --optimize=1 21:31
timotimo ouch 21:32
Pod::To::BigPage is failing tests with an internal-ish error 21:33
dogbert17 not something about MAST I hope 21:35
timotimo exactly that
mast frame expected but not gotted
dogbert17 github.com/perl6/perl6-pod-to-bigpage/issues/1 21:36
timotimo oh, that's when it tries to install
MasterDuke timotimo: gist updated, filename '--optimize=1' is the new one
timotimo that makes a lot more sense 21:37
MasterDuke oh, also: (gdb) p node $6 = (MVMProfileCallNode *) 0x0
oh, could already see that 21:38
timotimo yeah, but only via another pointer deref
and nothing in the line that was highlighted did that
well, not sure why that'd happen, but i've just put a "&& tc->prof_data->call_graph" into the if guarding that part 21:39
MasterDuke src/profiler/instrument.c:541 ? 21:40
timotimo yu 21:41
yup
MasterDuke oh, i tried that and it doesn't die right away 21:42
yeah, just finished normally
timotimo that's better. 21:43
MasterDuke still dies if i leave off MVM_SPESH_INLINE_DISABLE=1 though
timotimo yeah
that's an entirely different thing :)
MasterDuke dinner & 21:48
tadzik hmm, I wonder if a profiler could be ported to perl 6 %) 21:54
and to gtk, probably
timotimo could be, yeah 21:55
tadzik it'd be pretty cool if it turned out that perl 6 is performant enough where JS wasn'ot
timotimo DBIish can do sqlite
well, it'd also work completely differently 21:56
tadzik yup
is there an ncurses module? :)
dogbert17 timotimo: here's an odd thing with the 'perl6' shell script. On my machine it looks like this: 21:58
#!/bin/sh
exec /home/dogbert/repos/rakudo/install/bin/moar --execname="$0" --libpath="/home/dogbert/repos/rakudo/install/share/nqp/lib" --libpath="/home/dogbert/repos/rakudo/install/share/nqp/lib" --libpath="." /home/dogbert/repos/rakudo/perl6.moarvm --nqp-lib=blib "$@"
there are two --libpath's pointing to the same directory 21:59
timotimo that seems fun 22:07
MasterDuke dogbert17: same here 22:39
Geth geth: 19e44a4a42 | (Zoffix Znet)++ | lib/Geth/Plugin/GitHub.pm6
Reword with `when` to avoid duplication

And to look cool.
Also add word "committed" to message about GitHub editor.
22:45
geth: a9df0ea59c | (Zoffix Znet)++ | lib/Geth/Plugin/GitHub.pm6
Remove another useless duplication of var
22:47
Zoffix huggable: IO kills 22:50
huggable Zoffix, 14 x [āœ”]; 4 x [āœ˜]: See gist.github.com/zoffixznet/0ea1f4d...3f8dd11cc1
Zoffix Much better outlook on breakage than 12 hours ago :)
Oh, I even missed one merge. It's now 15 vs 3 22:51
MasterDuke (IO Grant)++ 22:52
Geth rakudo/nom: 184d499961 | (Zoffix Znet)++ | src/core/IO/Handle.pm
[io grant] Make IO::Handle.Supply respect handle's mode

  - Use bin mode when then handle is in bin mode
  - Remove :bin argument
23:01
roast: a4c53b01be | (Zoffix Znet)++ | S16-io/supply.t
[io grant] Use bin IO::Handle to test its .Supply

As part of the IO Action Plan it was deemed the test was erroneous.
  .Supply was made to respect the handle's mode[^1], which requires
the test to be amended.
  [1] github.com/rakudo/rakudo/commit/184d499961
23:03
roast/6.c-errata: b83882bf8e | (Zoffix Znet)++ | S16-io/supply.t
[io grant] Use bin IO::Handle to test its .Supply

As part of the IO Action Plan it was deemed the test was erroneous.
  .Supply was made to respect the handle's mode[^1], which requires
the test to be amended.
  [1] github.com/rakudo/rakudo/commit/184d499961
23:05
samcv m: say '\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[\qq[testing]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] 23:06
camelia 5===SORRY!5=== Error while compiling <tmp>
Couldn't find terminator ] (corresponding [ was at line 1)
at <tmp>:1
------> 3ting]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]7ā5<EOL>
expecting any of:
]
samcv ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]'
damn cut ofgf
that apparently works
Zoffix doesn't see why it wouldn't :) 23:07
samcv m: '\q[\q[\q[\q[\q[\q[\q[\q[\q[\q[\q[testing]]]]]]]]]]]'
camelia ( no output )
samcv m: say '\q[\q[\q[\q[\q[\q[\q[\q[\q[\q[\q[testing]]]]]]]]]]]'
camelia testing
samcv it's insane though
Zoffix m: say '\qq[\q[\qq[\q[this works too!]]]]'
camelia this works too!
samcv how many levels until i use up all my memory though
m: my $head = Q{\q[}; my $tail = ']'; my $b = 10; my $i = 0; sub funct ($in) { ++$i > $b ?? $head ~ $in ~ $tail !! funct($head ~ $in ~ $tail) }; say "'" ~ funct("testing") ~ "'" 23:08
camelia '\q[\q[\q[\q[\q[\q[\q[\q[\q[\q[\q[testing]]]]]]]]]]]'
samcv that is the question
m: my $head = Q{\q[}; my $tail = ']'; my $b = 10000; my $i = 0; sub funct ($in) { ++$i > $b ?? $head ~ $in ~ $tail !! funct($head ~ $in ~ $tail) }; say ("'" ~ funct("testing") ~ "'").EVAL
camelia testing
samcv for some reason i find that very amusing 23:09
timotimo samcv: are you going to add some html to the gh-pages of the rakudo-appimage project? 23:10
Zoffix m: say $*DEFAULT-READ-ELEMS
camelia 65536
samcv maybe
Zoffix So, are we making that part of the language?
The $*DEFAULT-READ-ELEMS var 23:11
samcv well yes eventually
what is that...
Zoffix Reworded: Are we making $*DEFAULT-READ-ELEMS part of the language and make it default to 65536?
It's used in a bunch of places in IO. I'm documenting stuff. So, should I document $*DEFAULT-READ-ELEMS or not.
samcv but.. what dose it do 23:12
Zoffix $ grep -FR '$*DEFAULT-READ-ELEMS' src/
src/core/IO/Handle.pm: method readchars(Int(Cool:D) $chars = $*DEFAULT-READ-ELEMS) {
src/core/IO/Handle.pm: method Supply(IO::Handle:D: :$size = $*DEFAULT-READ-ELEMS --> Supply:D) { 23:13
src/core/IO/Handle.pm:Rakudo::Internals.REGISTER-DYNAMIC: '$*DEFAULT-READ-ELEMS', {
src/core/IO/Socket.pm: my $r := nqp::readfh($!PIO, nqp::decont(buf8.new), $*DEFAULT-READ-ELEMS);
samcv hmm interesting
m: say $*DEFAULT_READ_ELEMS.^methods 23:14
camelia (DESTROY AT-POS AT-KEY defined handled Int Num Numeric mess sink CALL-ME FALLBACK STORE new Bool Str gist perl exception backtrace AT-POS AT-KEY BIND-KEY ASSIGN-KEY STORE iterator sink unshift chrs gist BIND-POS Numeric Str new ords chomp push FALLBACK cā€¦
Zoffix Looking at that... I'm gonna go with "no" as the answer to my question.
samcv seems internalish
Zoffix And we should nix it to not pay the dynamic price.
I think it was sorta meant as a macro or something.
samcv ok 100000 levels gets to 5GB of ram then gets killed cause my ulimit setting 23:16
Zoffix :o
samcv but 10000 levels is much less ram maybe 750MB
timotimo samcv: i wonder if .^ will neglect to vivify the dynamic var there
m: say $*DEFAULT_READ_ELEMS; say $*DEFAULT_READ_ELEMS.^methods
camelia Dynamic variable $*DEFAULT_READ_ELEMS not found
in block <unit> at <tmp> line 1

Actually thrown at:
in block <unit> at <tmp> line 1
timotimo m: say $*DEFAULT-READ-ELEMS; say $*DEFAULT-READ-ELEMS.^methods 23:17
camelia 65536
(Int Num Rat FatRat abs Bridge chr sqrt base polymod expmod is-prime floor ceiling round lsb msb narrow Range atanh sign asech sin tan atan2 acosech truncate asinh conj acosh pred asec cosec acotan cosh acos acosec sech unpolar log exp roots cotaā€¦
timotimo that's why
samcv: your .^methods was equivalent to $*WHAT_EVEN_IS_THIS.^methods
samcv heh
m: $*WHAT_EVEN_IS_THIS.^methods.say
camelia (DESTROY AT-POS AT-KEY defined handled Int Num Numeric mess sink CALL-ME FALLBACK STORE new Bool Str gist perl exception backtrace AT-POS AT-KEY BIND-KEY ASSIGN-KEY STORE iterator sink unshift chrs gist BIND-POS Numeric Str new ords chomp push FALLBACK cā€¦
timotimo i.e. Failure.^methods 23:18
samcv do we have a max variable name length
probably not right
timotimo i'm not aware of one
samcv good
timotimo m: use MONKEY-SEE-NO-EVAL; EVAL 'my $' ~ "foo" x 10000 ~ ' = 1'; 23:19
camelia ( no output )
timotimo m: use MONKEY-SEE-NO-EVAL; EVAL 'my $' ~ "foo" x 10000 ~ ' = 1; say $' ~ "foo" x 10000;
camelia 1
timotimo 10k graphs ought to be enough for anybody
Zoffix Bill Gates said that! 23:20
Oh wait, that was memory :}
samcv graphemes, memory. same thing
timotimo only for people with photographic memory 23:21
samcv well 100k graphs works 23:22
timotimo that ought to be enough
samcv naw not even 23:23
10 million works too
timotimo do we want an easter egg for when you use a very specific number of some significance?
samcv heh
timotimo, if the name is long enough the name is the variable ;)
well stores more data
ha
timotimo you can grab the name via .VAR.name 23:24
so, yeah, probably!
samcv ok 100_000_000 million is like 23:25
taking a realllyyy long time
brb
timotimo hahaha
samcv maybe will be done when i'm back
timotimo well, it's a few megabytes, so ... :)
samcv xoh wait it finished already
timotimo what's its maxresidentk: )
samcv going for 1_000_000_000 then
oh. no.
MoarVM panic: Memory allocation failed; could not allocate 8000000076 bytes
T_T T_T
timotimo okay!
get some swap on a very big disk 23:26
samcv k
we should make moarvm more efficient
to enable longer variable names
brb actually tho
timotimo that's clearly very important
MasterDuke "we should make moarvm more efficient" - can't argue with that 23:29
"to enable longer variable names" - eh
samcv maybe it will be a side effect 23:32
brb
MasterDuke ooo, but can your variable name be an actual Perl 6 program when EVALed?
timotimo m: my ::('oh lord why is this variable so crazy') = 10 23:34
camelia 5===SORRY!5=== Error while compiling <tmp>
Malformed my
at <tmp>:1
------> 3'oh lord why is this variable so crazy')7ā5 = 10
MasterDuke what's the word i'm looking for? when a problem prints out it's own source code
timotimo quine
MasterDuke right
timotimo named after mister quine, all he could ever say was his whole genome sequence
MasterDuke heh 23:35
timotimo: now that you've solved that one bug, any idea on the spesh bug? 23:44
timotimo nah, it's probably a whole bit different flavour to it
MasterDuke if i do a profile with MVM_SPESH_INLINE_DISABLE=1, is that at all useful? 23:46
timotimo yeah
performance will differ a bit
you can check what percentage difference it makes by running it without profiling
samcv why does travis have the HAS_JOSH_K_SEAL_OF_APPROVAL env var 23:47
timotimo like, not profiling but timing. once with and once without inline
samcv: monkey see no env var?
samcv can't avoid it with travis
MasterDuke huh. i profile with MVM_SPESH_INLINE_DISABLE=1, --no-highlight, and --sparse=50, which created a 19mb .json profile, but the qt viewer gets killed when i try to open it 23:48
timotimo oh, now here's something interesting 23:49
you can definitely debug that though
MasterDuke with what? 23:50
timotimo well, gdb i guess?
MasterDuke huh, only 308486 lines in the sql profile output
timotimo well, turning off inlining doesn't make there be any fewer routines 23:51
and we record functions post-inline as a different piece either way
i.e. a normal call differs only from an inlined call by having a "it was inlined" bit set 23:52
so the call graphs should be the same size
MasterDuke i'm just surprised the qt viewer can't do such a small file
timotimo well, it might be choking on some value? null pointer dereference or something? 23:53
i don't think you've told us what way it actually dies in?
MasterDuke will gdb help if the OOM killer is what's killing it?
yep, it's the OOM killer 23:54
mst perhaps it's time to provision some swap?
timotimo oh, haha 23:55
well, in that case try a memory debugger or something
MasterDuke i'm using this as just one part of the justification to upgrade my system
timotimo like, what was it, heaptrack?
MasterDuke mst: i've run without swap for a long time now. adds a sense of danger and excitement to my life 23:57
timotimo hah
i have zram swap and it's nice 23:58
mst I tend to provision my dev systems to look as much like production as possible
'danger and excitement' are not geatures
nor, indeed, are they features
MasterDuke heaptrack overview: i.imgur.com/IdwUa0E.png
timotimo wow
i don't think it should generate that much data 23:59
MasterDuke mst: in complete agreement at work. at home i'm more freewheeling