Perl 6 language and compiler development | Logs at colabti.org/irclogger/irclogger_log/perl6-dev | For toolchain/installation stuff see #perl6-toolchain | For MoarVM see #moarvm
Set by Zoffix on 27 July 2018.
00:06 ggoebel_ left 00:19 lizmat left 00:23 lizmat joined 00:24 p6bannerbot sets mode: +v lizmat 00:28 lizmat left
Geth roast: 8fdad7f0dc | (Zoffix Znet)++ | S17-procasync/bind-handles.t
[v6.d REVIEW] Use standard temp file routines in Proc::Async

Orig: github.com/perl6/roast/commit/ebac29a7e
00:41
00:45 Kaiepi left 00:47 PufferBot joined, p6bannerbot sets mode: +v PufferBot 00:57 ggoebel_ joined 00:58 p6bannerbot sets mode: +v ggoebel_ 01:00 go|dfish left, mst left, moritz left, krunen left, krunen joined, moritz joined, mst joined, p6bannerbot sets mode: +v mst 01:01 mst left, mst joined, livingstone.freenode.net sets mode: +v mst, p6bannerbot sets mode: +v mst, go|dfish joined, p6bannerbot sets mode: +v go|dfish, p6bannerbot sets mode: +v krunen, p6bannerbot sets mode: +v moritz
[Coke] tony-o: but why? if it has to be doing something exactly like core, shouldn't there be a core way to do it so it's not got to be duplicative? 01:25
timotimo we don't really want to specify a json parser and serializer to be in the perl6 language, though? 01:26
[Coke] I would prefer we didn't do that, yes. 01:27
timotimo though we could also just not specify the whole compunit repo format either 01:31
on the other hand, the meta6.json format is also already json
01:32 MasterDuke left
timotimo on the third hand, we could perhaps say "there must be some serialization format" and the ecosystem api would offer whatever the implementation likes … 01:34
...
this is dumb :) :) :) 01:37
we should invent our own format, designed explicitly for being as dumb as possible, and only to support what we actually need
let's take a page out of klingon's design and mix together properties that are as foreign to each other as we possibly can 01:39
every string begins with a BOM and ends in a particular emoji
every new element must be on a new line starting with as many spaces as the file had characters up to that point, as determined by twitter's character counting algorithm 01:40
the beginning five bytes of the file must be the first five bytes of the sha256 of the entire file
array entries are actually written top-to-bottom in the file 01:42
geekosaur ...first system is intercal, second system syndrome still gives you xml >.> 01:52
01:59 Ursula21 joined 02:00 Ursula21 left
timotimo since array elements have to go vertically, files with insufficiently many lines must be padded with at least the first 50 words of "lorem ipsum". typos or wrong words must result in a memory access violation via accessing the address 0x00 + position of first wrong character 02:05
02:18 combro2k joined 02:19 combro2k left 06:13 Ipsilon22 joined 06:15 Ipsilon22 left 06:17 robertle joined 06:18 p6bannerbot sets mode: +v robertle 06:22 Guest37021 joined 06:23 Guest37021 left 06:24 patrickb joined, p6bannerbot sets mode: +v patrickb 06:38 robertle left 07:26 hankache joined, lizmat joined 07:27 p6bannerbot sets mode: +v hankache, p6bannerbot sets mode: +v lizmat 07:44 whartung17 joined
nine Ok, on the JSON discussion: what is keeping us from just swapping out our code with that from JSON::Fast? Looks like the easiest win to me. 07:45
07:45 pounard27 joined 07:47 whartung17 left 07:50 [TuxCM] left, pounard27 left
lizmat FWIW, I have no special love for the quick parser that I wrote... so it can be removed at any time afaic 07:52
yoleaux 19 Sep 2018 22:47Z <AlexDaniel> lizmat: I think you should try that parser on these files: raw.githubusercontent.com/ugexe/Pe.../cpan.json ecosystem-api.p6c.org/projects.json
06:18Z <El_Che> lizmat: You have a comment on your second p5-6 article opensource.com/article/18/8/garbag...ion-perl-6
06:19Z <El_Che> lizmat: And an error in the 3rd (p5: say @bar[1]) opensource.com/article/18/8/containers-perl-6
lizmat .tell El_Che those pseky P6isms keep creeping in :-( alas, I cannot correct the artical afaik 07:54
yoleaux lizmat: I'll pass your message to El_Che.
patrickb What files is the rakudo internal json parser parsing? Exclusively the META6.json files? I bet one could tune JSON::Fast a lot to only serve this file... 08:02
nine patrickb: yes, it's about META6.json files - which can become a lot more complex than most of them are now. Take e.g. github.com/niner/Inline-Python/blo...META6.json 08:05
But anyway, even an "untuned" JSON::Fast is a hell of a lot faster than our current parser.
lizmat ok, so I got parsing of projects.json down from 2.2 seconds on my machine down to 0.3 08:47
that's with the new quick-parser installed
without it, it goes down to only 1 second or so 08:48
nine cool :)
lizmat the change would be in zef, specific to parsing the projects.json file
so you would benefit from it both on older and newer rakudos 08:49
08:57 Thev00d0024 joined, Thev00d0024 left
lizmat github.com/ugexe/zef/issues/273 09:12
09:14 Ven` joined 09:15 p6bannerbot sets mode: +v Ven`
|Tux| timotimo, look 09:16
Rakudo version 2018.08-119-g16ce9c89a - MoarVM version 2018.08-92-g3e94a68f6
csv-ip5xs0.933 - 0.963
csv-ip5xs-207.107 - 7.376
csv-parser21.499 - 22.109
csv-test-xs-200.425 - 0.426
test8.539 - 8.855
test-t1.972 - 2.071
test-t --race0.890 - 0.891
test-t-2035.993 - 36.834
test-t-20 --race11.607 - 11.820
2018-09-14 17:13:45 test-t 2.025
2018-08-30 17:35:38 test-t 2.015
2018-09-18 11:13:20 test-t 2.006
2018-09-20 11:10:24 test-t 1.972
2018-09-18 11:16:48 test-t 1.971
09:20 [TuxCM] joined 09:21 p6bannerbot sets mode: +v [TuxCM] 09:22 lu_zero19 joined 09:24 lu_zero19 left 09:48 hankache left 09:54 nebuchadnezzar left, nebuchadnezzar joined 09:55 p6bannerbot sets mode: +v nebuchadnezzar 09:58 |Tux| joined, p6bannerbot sets mode: +v |Tux| 10:23 Hipikat1 joined 10:25 Hipikat1 left 10:27 Guest32 joined, p6bannerbot sets mode: +v Guest32 10:28 Guest32 left 10:32 Holo0 joined 10:35 pmurias joined 10:36 p6bannerbot sets mode: +v pmurias 10:37 Holo0 left
AlexDaniel nine: re “what is keeping us from just swapping out our code” that's exactly my point and I hope that is the plan 10:43
and it doesn't matter if we then end up hiding to-json/from-json behind serialize/deserialize, or if we end up implementing a quick-from-json or whatever 10:45
11:17 rozie3 joined 11:22 rozie3 left 11:26 Ven` left 11:34 TC019 joined 11:35 TC019 left 11:47 c00p3r19 joined
lizmat twitter.com/alteholzDD/status/1042...4718555136 11:49
AlexDaniel: the main (and also scalability) issue, is that currently there's a giant JSON file that is growing 11:50
github.com/ugexe/zef/issues/273 # should at least parallelize the parsing of that file
AlexDaniel lizmat: I disagree with the solution though 11:53
11:53 c00p3r19 left
AlexDaniel lizmat: so, basically there are already two files, not one 11:53
and zef already parallelizes that
so maybe these json files should be split into chunks
but not when the file is already there 11:54
lizmat ah? But how come my solution brings down the parsing of projects.json from 2.3 to .3 ?
AlexDaniel I mean, we should change the generation of the file, not how it's parsed
lizmat perhaps
AlexDaniel lizmat: from 2.2 seconds to 1 second, you're just utilizing more cores
and zef will already use at least 2 11:55
because there are two files
lizmat so? if you have more cores it will be faster
that's the future reality
anyways, people were asking for a quick win: I provided that 11:56
AlexDaniel lizmat: yes, so let's change this: github.com/ugexe/Perl6-App--ecogen
lizmat: so that it generates multiple proper json files
11:56 nitram23 joined
lizmat doesn't install for me :-( 11:57
looks like faulty hash-order dependent tests
11:58 awwaiid joined
lizmat ah, no, there really is a problem 11:59
11:59 nitram23 left, p6bannerbot sets mode: +v awwaiid
AlexDaniel lizmat: fwiw we should keep back compat in mind when changing the generation (i.e. older zef installations should still be able to work) 12:00
so maybe that's a point against my solution :) 12:01
lizmat yeah, that's why I'm not so sure we should change it
AlexDaniel well, it just means that there should be one big file and also chunkified ones 12:03
looking at your ticket, what is “IO.lines”? 12:13
what does that do again
in terms of \r \r\n \n and unicode newlines
12:15 Ven` joined
lizmat AlexDaniel: lines always auto-chomps unless told otherwise 12:16
AlexDaniel I guess it's fine, it just feels fragile and I'm scared :)
lizmat reading lines from a file feels fragile ?
12:16 p6bannerbot sets mode: +v Ven`
AlexDaniel expecting the json to be in some particular format 12:16
lizmat ah, yes, well, if it's not, it should fall back to the grammar based one 12:17
AlexDaniel lizmat: I was just thinking what if a module has “\r” in one of the fields, or something like that, but I guess that will be escaped and there's no problem. Nevermind :) 12:18
Geth rakudo: abbbd2a5c0 | (Elizabeth Mattijsen)++ | src/core/Rakudo/Internals/JSON.pm6
Revert "Introducing the ultra-fast braindead JSON parser"

This reverts commit 16ce9c89ad0ca242906f026a72da5b369f928e55.
Prevent fragility
12:19
roast: 44e89c1d4b | (Zoffix Znet)++ | MISC/misc-6.d.t
Swap to new group-of test helper
12:20
lizmat in any case, I've reverted it, as it broke App::ecogen's tests 12:22
12:23 TReK12 joined
AlexDaniel lizmat: but I agree that splitting the json file is probably a great idea 12:23
lizmat fwiw, I don't think it needs to be split: feels file like it is
the only thing that might break it if an included JSON file would have a line consisting of ',' or ']' 12:24
but the generator can prevent that by generating with an extra space at the start of each included line
12:27 TReK12 left 12:51 Zoffix joined, p6bannerbot sets mode: +v Zoffix
Zoffix AlexDaniel: are we still pushing to master or a post-release branch? 12:51
ZOFVM: Files=1309, Tests=153185, 156 wallclock secs (22.06 usr 3.31 sys + 3323.82 cusr 170.28 csys = 3519.47 CPU)
AlexDaniel Zoffix: master 12:52
Zoffix k
12:52 Zoffix left
AlexDaniel but not “still”, I'll be cutting the release from a release branch instead 12:53
so changes pushed to master now won't go into the release
Geth rakudo: bb88a0324e | (Zoffix Znet)++ | src/Perl6/Actions.nqp
[6.d] 🧙‍♂️ Cast a spell of silence on $()/@()/%()

Per 6.d-prep[^1], remove all magick from $()/@()/%() and make them mean the same thing as $( )/@( )/%( ) (that is, contextualizers that call .item/.list/.hash respectively on an empty list).
Closes RT#131392 and R#1946
  [1] github.com/perl6/6.d-prep/blob/dff...from--and-
  [2] rt.perl.org/Public/Bug/Display.html?id=131392
  [3] github.com/rakudo/rakudo/issues/1946
13:00
synopsebot RT#131392 [resolved]: rt.perl.org/Ticket/Display.html?id=131392 [@LARRY] Remove magic $/ shortcuts %() and @()
R#1946 [open]: github.com/rakudo/rakudo/issues/1946 %(), @(), $() are evil/weird
13:00 whaa18 joined
Geth roast: 79e86e5f14 | (Zoffix Znet)++ | MISC/misc-6.d.t
Spec $()/@()/%() are not magical in 6.d

Per 6.d-prep: github.com/perl6/6.d-prep/blob/dff...from--and- POV: github.com/rakudo/rakudo/commit/bb88a0324e
13:01
roast: dbb3a98661 | (Zoffix Znet)++ | S03-operators/context.t
Remove trailing whitespace
roast: e37341a973 | (Zoffix Znet)++ | 2 files
Remove spec of magick in $()/@() from 6.d spec

Do NOT backport this commit to 6.c spec. These features still exist in 6.c language.
13:02
13:03 whaa18 left
AlexDaniel nice 13:03
Zoffix++
13:04 evolarium17 joined, evolarium17 left
Geth 6.d-prep: 435d2203aa | (Zoffix Znet)++ | 2 files
Mark $()/@()/%() demagicalization as complete

Propspec: github.com/perl6/roast/commit/79e86e5f14 POV: github.com/rakudo/rakudo/commit/bb88a0324e Docs: github.com/perl6/doc/commit/f55804fc62
13:05
13:11 buggable left 13:12 buggable joined, ChanServ sets mode: +v buggable, p6bannerbot sets mode: +v buggable 13:43 robertle joined 13:44 p6bannerbot sets mode: +v robertle
lizmat commute to NR.pm& 14:00
14:00 lizmat left 14:09 pyrimidine joined, p6bannerbot sets mode: +v pyrimidine 14:14 lizmat joined 14:15 p6bannerbot sets mode: +v lizmat 14:20 Ven` left 14:25 xcin2 joined, xcin2 left 14:40 lizmat left 14:44 lizmat joined 14:45 p6bannerbot sets mode: +v lizmat 14:47 Ven` joined 14:48 p6bannerbot sets mode: +v Ven` 14:58 lizmat_ joined
Geth rakudo: 58592bd0de | (Elizabeth Mattijsen)++ | src/core/Rakudo/Internals/JSON.pm6
We only need the Actions class, no instace
14:59
14:59 p6bannerbot sets mode: +v lizmat_ 15:02 lizmat left 15:13 lizmat_ left 15:15 lizmat joined, p6bannerbot sets mode: +v lizmat, robertle left 15:17 [TuxCM] left
tony-o lizmat++ 15:26
Geth rakudo: c9432c2072 | (Elizabeth Mattijsen)++ | src/core/Rakudo/Internals/JSON.pm6
Attempt #2 at making R:I:JSON.from-json faster

This time the quick version looks at whether the outer part is an array, and if so, parses the JSON for outer { } pairs, and then let's those be parsed in parallel in batches of 32.
This makes parsing of the project.json about 2x as fast, *regardless* of any special formatting of the JSON.
15:27
15:29 lizmat left 15:31 sam7 joined, sam7 left 15:32 patrickb left 15:37 committable6 left, notable6 left 15:38 coverable6 left, nativecallable6 left 15:39 shareable6 left, unicodable6 left, squashable6 left, releasable6 left
japhb lizmat: What made you pick batches of 32? 15:39
Geth nqp/truffle: 5 commits pushed by (Paweł Murias)++ 15:42
AlexDaniel japhb: doesn't sound like a bad choice. FWIW that's not how many threads you'll get, this number can be anything really 15:43
japhb AlexDaniel: Well IIRC the default batch size for hyper is 64, so I'm curious if lizmat found there was a significant performance difference, or wanted to avoid performance loss if the default changed, or somesuch 15:45
AlexDaniel ah ok
IMO both should work just fine
15:46 bisectable6 left 15:48 robertle joined, lupinedk23 joined 15:49 p6bannerbot sets mode: +v robertle 15:50 lupinedk23 left
AlexDaniel so what's the logic in that last commit? 15:55
I fail to understand how could it possibly be valid
I mean, correct
so it searches for { 15:56
and checks that it's not \{
so what if my name is "Alex{Daniel}" ? 15:57
is that invalid json or something?
m: say to-json %(foo => ‘Alex{Daniel}’) 15:58
camelia {
"foo" : "Alex{Daniel}"
}
AlexDaniel ok that's obviously not a problem, but 15:59
m: say to-json %(foo => ‘Alex{Daniel’)
camelia {
"foo" : "Alex{Daniel"
}
AlexDaniel that is, right?
16:03 Zoffix joined, p6bannerbot sets mode: +v Zoffix
Zoffix Sanity check for R#1493 `my Int:D @a; dd @a[^3]` gives `(Int, Int, Int)` in 6.d. Does that make sense? These values don't pass the type constraint. 16:05
synopsebot R#1493 [open]: github.com/rakudo/rakudo/issues/1493 [6.d] .= call on DefiniteHOW tries to create an instance of DefiniteHOW
Zoffix FWIW currently it gives `(Int:D, Int:D, Int:D)` which doesn't pass type constraint either 16:06
Same goes for unset keys in hashes
timotimo yeah, to me it makes no sense to use that construct without an "is default"
Zoffix crap and the error with assignment of Nil is LTA in 6.d 16:07
$ ./perl6 -e 'use v6.d.PREVIEW; my Int:D @a; @a[3] = Nil'
Type check failed in assignment to @a; expected Int:D but got Int (Int)
in block <unit> at -e line 1 16:08
$ ./perl6 -e 'my Int:D @a; @a[3] = Nil'
Type check failed in assignment to @a; expected type Int:D cannot be itself (perhaps Nil was assigned to a :D which had no default?)
in block <unit> at -e line 1
looks fairly straightforward to fix that tho 16:10
AlexDaniel .tell lizmat 1 question from japhb and 1 from me: colabti.org/irclogger/irclogger_log...09-20#l300 16:15
yoleaux AlexDaniel: I'll pass your message to lizmat.
Zoffix lizmat gets all the questions :)
AlexDaniel: bot ded? 16:16
commitagble
AlexDaniel :barjavel.freenode.net 465 committable6test You are banned from this server- Your irc client seems broken and is flooding lots of channels. Banned for 240 min, if in error, please contact [email@hidden.address] (2018/9/20 15.39)
diakopter heh
Zoffix <Zoffix-2016> why don't you make a single bot with many features instead of many bots with a single feature each? 16:17
diakopter the old p6eval bot (written in Perl 5) could reload its modules dynamically when they were updated so it didn't have to disconnect 16:19
AlexDaniel well, very often people want to just say “bisectable: … … …” without trying to figure out what's the right command to trigger what
but yeah, things can be improved, I agree
diakopter bots can respond to something: other than their names 16:20
AlexDaniel diakopter: yeah but how would you know that “something”
16:20 lizmat joined
diakopter it's programmed in, as in camelia 16:20
AlexDaniel for those who use them often it's not an issue, of course
16:21 p6bannerbot sets mode: +v lizmat 16:23 Ven` left
AlexDaniel eventually I'll rewrite them to use Matrix::Client or something like that 16:23
diakopter the very meaning of the word "bisectable" is tied to knowledge of the bot's existence :D
lizmat japhb: without :32batch, project.json parses at 1.06, with it at .93 16:26
yoleaux 16:15Z <AlexDaniel> lizmat: 1 question from japhb and 1 from me: colabti.org/irclogger/irclogger_log...09-20#l300
AlexDaniel btw anyone should feel free to take over whateverable project 16:27
especially if they want to improve things like this :)
lizmat AlexDaniel: re "Alex {Daniel}" : it counts the number of matching { } that are not escaped/ 16:28
AlexDaniel lizmat: so what if there's a { in a string? 16:29
lizmat once it sees the outer matching }, it produces a chunk
AlexDaniel unclosed one, for example
lizmat then it would break and it would fall back to the normal one, serialized
Zoffix lizmat: what do you think of `my Int:D @a; dd @a[^3]` giving `(Int, Int, Int)`? Is there anything better it could give? 16:30
I guess even a `Nil` won't be assignable back to it... hm 16:31
m: my Int:D @a; @a = @a[^3]
camelia Type check failed in assignment to @a; expected type Int:D cannot be itself (perhaps Nil was assigned to a :D which had no default?)
in block <unit> at <tmp> line 1
Zoffix m: (my Int:D @values)[3] = 42; say [+] @values 16:32
camelia 42
Zoffix huh
m: dd Int:D + 42 16:33
camelia Invocant of method 'Bridge' must be an object instance of type 'Int', not a type object of type 'Int:D'. Did you forget a '.new'?
in block <unit> at <tmp> line 1
Zoffix How does `[+]` skip the Int:Ds at the head? :S
lizmat no idea
Zoffix Ah, it's optimized to call sum
m: (my Int:D @values)[3] = 42; sub infix:<+> { &CORE::infix:<+>(|@_) }; say [+] @values 16:35
camelia Invocant of method 'Bridge' must be an object instance of type 'Int', not a type object of type 'Int:D'. Did you forget a '.new'?
in sub infix:<+> at <tmp> line 1
in block <unit> at <tmp> line 1
lizmat Zoffix: yeah, we cheat sometimes :-) 16:36
Geth nqp/truffle: c3247c7ff7 | (Paweł Murias)++ | 2 files
[truffle] Add missing files
16:42
nqp/truffle: 3da3fc0e39 | (Paweł Murias)++ | 2 files
[truffle] Print out an error when running NYI stuff at runtime
nqp/truffle: 42f0e1b276 | (Paweł Murias)++ | src/vm/jvm/bin/cross-compile.nqp
[truffle] Add a script to compile to both truffle bytecode and jvm bytecode
16:49 lizmat left 16:52 notable6 joined, ChanServ sets mode: +v notable6, statisfiable6 joined, ChanServ sets mode: +v statisfiable6 16:53 unicodable6 joined, ChanServ sets mode: +v unicodable6, lizmat joined, p6bannerbot sets mode: +v notable6, p6bannerbot sets mode: +v statisfiable6, p6bannerbot sets mode: +v unicodable6 16:54 p6bannerbot sets mode: +v lizmat, lizmat left
Zoffix m: my Int:D &foo; dd &foo.signature 17:01
camelia No such method 'signature' for invocant of type 'Callable'
in block <unit> at <tmp> line 1
Zoffix kinda LTA error
TimToady that .sum cheating is how we get away with [+] 1..100000000000000000000
Zoffix yeah 17:02
m: my Int:D &foo = sub (--> Int:D) {}; dd &foo.signature
camelia :( --> Int:D)
Zoffix m: my Int:D &foo = -> --> Int:D {}; dd &foo.signature
camelia Type check failed in assignment to &foo; expected Callable[Int:D] but got Block (-> --> Int:D { #`(Bl...)
in block <unit> at <tmp> line 1
Zoffix Weird. Why doesn't it like the Block?
m: dd [.^mro, .^roles] given --> Int:D {} 17:03
camelia 5===SORRY!5=== Error while compiling <tmp>
Prefix -- requires an argument, but no valid term found
at <tmp>:1
------> 3dd [.^mro, .^roles] given --7⏏5> Int:D {}
expecting any of:
prefix
Zoffix m: dd [.^mro, .^roles] given -> --> Int:D {}
camelia Array element = [(Block, Code, Any, Mu), (Callable,)]
Zoffix it ain't parametarized
17:06 nativecallable6 joined, shareable6 joined, p6bannerbot sets mode: +v nativecallable6 17:07 p6bannerbot sets mode: +v shareable6
Zoffix R#2296 R#2295 17:09
synopsebot R#2296 [open]: github.com/rakudo/rakudo/issues/2296 [LTA] LTA error when calling methods on undefined Callable variable
R#2295 [open]: github.com/rakudo/rakudo/issues/2295 [consistency] Blocks don't get parametarized with return type
Zoffix And now I forgot what I was doing.... :)
m: my Int enum <a b c>; dd a 17:16
camelia ::a
Zoffix m: my Int:D enum <a b c>; dd a
camelia 5===SORRY!5=== Error while compiling <tmp>
Cannot find method 'mro' on object of type Perl6::Metamodel::DefiniteHOW
at <tmp>:1
japhb timotimo: JSON::Fast's t/04-roundtrip.t seems to be a bit loose about numeric types ('Array of Num' and 'Hash of Num' don't have Nums, for instance). 17:17
Zoffix R##2297
R#2297
synopsebot R#2297 [open]: github.com/rakudo/rakudo/issues/2297 Crash when parametarizing enums with DefiniteHOWs
17:17 Zoffix left
timotimo japhb: yeah, json simply doesn't do that 17:20
if i'm not misunderstanding
17:25 Keridos3 joined 17:26 Keridos3 left
japhb timotimo: Right, I'm saying it might be worth specifying what *is* expected for each of our Numeric types, even if we know that e.g. Num will become Rat on roundtrip, at least we can check that this behavior doesn't change from release to release. 17:27
Actually, we should be able to roundtrip at least those two based on presence or absence of exponent in the JSON. 17:29
17:35 rodgzilla7 joined
timotimo hm, then we'll also interpret data from "outside" as rats even when they were floating point values 17:36
17:37 rodgzilla7 left 17:46 lizmat joined 17:47 p6bannerbot sets mode: +v lizmat, lizmat left 17:48 committable6 joined 17:49 Zoffix joined, p6bannerbot sets mode: +v Zoffix
Zoffix m: -> Int:D @v { @v[^3] }(my Int:D @) 17:49
camelia ( no output )
Zoffix m: -> Int:U @v { @v[^3] }(my Int:U @)
camelia Parameter '@v' of routine '<anon>' must be a type object of type 'Positional[Int]', not an object instance of type 'Array[Int:U]'. Did you forget a 'multi'?
in block <unit> at <tmp> line 1
Zoffix man, getting sick of all these bugs :(
17:49 bisectable6 joined, p6bannerbot sets mode: +v committable6
Zoffix squints 17:50
17:50 p6bannerbot sets mode: +v bisectable6
Zoffix Looks like it's interpreting the :U to mean the Positional must be a type object instead of its type being a type object 17:50
17:50 releasable6 joined 17:51 p6bannerbot sets mode: +v releasable6 17:55 squashable6 joined 17:56 p6bannerbot sets mode: +v squashable6
Zoffix R#2298 17:56
synopsebot R#2298 [open]: github.com/rakudo/rakudo/issues/2298 :U parametarized@,%,& parameters are incorrectly parametarized
Zoffix ZofBot: rant about not writing tests for features leading to these sorts of bugs 17:57
17:58 Zoffix left
japhb timotimo: Maybe a way to mark wanting to parse Rat similar to requesting parsing of Inf/-Inf/NaN? 17:58
18:08 t3rror23 joined 18:10 lizmat joined 18:11 p6bannerbot sets mode: +v lizmat 18:12 t3rror23 left 18:15 lizmat left 18:31 Zoffix joined, p6bannerbot sets mode: +v Zoffix
Zoffix really weird. My change that's meant to impact only 6.d is hanging S10-packages/require-and-use.t because it fails to detect circularity :S gist.github.com/zoffixznet/0c6a46a...855fe4412c 18:31
The only non-6.d part is this: gist.github.com/zoffixznet/0c6a46a...ff-L43-L44 18:32
18:36 lizmat joined
Zoffix (and removing it doesn't fix the issue :S) 18:36
18:37 p6bannerbot sets mode: +v lizmat
Zoffix Wait, is it my changes even? Does S10-packages/require-and-use.t hang for anyone else? 18:37
I see there's a .to-json call like right after the circularity detecting die statement
guess I can just reset and build HEAD 18:38
AlexDaniel: looks like during 6.d release, you'll dethrone me for the number of consecutive releases :) 18:43
[Coke] wonders how long ago he lost the record.
Zoffix OK, *phew*, the hang ain't due to my smiley work
AlexDaniel time flies 18:44
Zoffix swats
[Coke] 2017.01, when zoffix beat me. Well done. :) 18:45
Zoffix :) 18:46
AlexDaniel btw there's a chance that I will be away for a bit in July next year 18:47
so if there's anyone willing to do some releases they should start preparing mentally :)
Zoffix hm, stresstest is also now 190s 18:51
vs 156s ~8 hours ago
Geth rakudo: 1ff9fa32f0 | (Zoffix Znet)++ | src/Perl6/Actions.nqp
Use actual value in `constant` typecheck error

This way we can report value correctly for :U = 42 messges, for example.
18:53
Zoffix I wonder if that's all the new language version checking for every damn container :S
or variable/constant rather
and parameters
18:54 lizmat left
Zoffix hm, nope 18:56
a file with 4000 variables get run a bit faster on my HEAD than on 2018.06-289-g38de1e5
Geth rakudo: 38b198c992 | (Zoffix Znet)++ | 3 files
[6.d] Set non-DefiniteHOW default default for DefiniteHOWs

Per 6.d-prep[^1]: On :U/:D type constrained variables, params, attributes, and parametarized Arrays/Hashes, use the base type as the default default in 6.d instead of continuing to use the uninitializeable DefiniteHOW as the type, which prevents use of `.=` and other constructs.
... (5 more lines)
19:00
roast: 8c8e8f55bb | (Zoffix Znet)++ | MISC/misc-6.d.t
Spec DefiniteHOW's default defaults

They are now base types instead of DefiniteHOW typeobjects.
Per 6.d-prep: github.com/perl6/6.d-prep/blob/dff...rmal-types POV: github.com/rakudo/rakudo/commit/38b198c992 Enum POV is blocked by R#2297 github.com/rakudo/rakudo/issues/2297 and is not specced.
19:02
synopsebot R#2297 [open]: github.com/rakudo/rakudo/issues/2297 Crash when parametarizing enums with DefiniteHOWs
6.d-prep: a0bc5390fc | (Zoffix Znet)++ | 2 files
Make DefiniteHOW's default defaults as completed

POV: github.com/rakudo/rakudo/commit/38b198c992 Propspec: github.com/perl6/roast/commit/8c8e8f55bb Docs: github.com/perl6/doc/commit/44ac0f916d
19:07
Zoffix m: dd from-json '["A", "B"]' 19:11
camelia Array element = []
Zoffix I think I see it. 19:17
ZofBot: ready the sandwich bread! 19:18
geekosaur release the crackin' ? 19:21
Geth ¦ rakudo: zoffixznet assigned to lizmat Issue t/spec/S10-packages/require-and-use.t hangs github.com/rakudo/rakudo/issues/2299 19:22
19:25 Zoffix left, travis-ci joined, p6bannerbot sets mode: +v travis-ci
travis-ci Rakudo build passed. Zoffix Znet 'Use actual value in `constant` typecheck error 19:25
travis-ci.org/rakudo/rakudo/builds/431171251 github.com/rakudo/rakudo/compare/c...f9fa32f020
19:25 travis-ci left
timotimo they sell a kitkat knock-off here that they call "crack'n'snack" 19:29
Geth 6.d-prep: 5ff4072f24 | (Zoffix Znet)++ (committed using GitHub Web editor) | TODO/FEATURES.md
Don't set the date for 6.e

I'm thinking we might go for 2-year cycles instead of 1 year.
19:42
19:44 buggable left, buggable joined, ChanServ sets mode: +v buggable 19:45 p6bannerbot sets mode: +v buggable 19:55 dogbert17 joined 19:56 p6bannerbot sets mode: +v dogbert17, travis-ci joined, p6bannerbot sets mode: +v travis-ci
travis-ci Rakudo build passed. Zoffix Znet '[6.d] Set non-DefiniteHOW default default for DefiniteHOWs 19:56
travis-ci.org/rakudo/rakudo/builds/431174180 github.com/rakudo/rakudo/compare/1...b198c99285
19:56 travis-ci left 20:00 ario joined 20:02 robertle left 20:04 ario left
Geth nqp/truffle: 7bbcb7bcd5 | (Paweł Murias)++ | src/vm/jvm/runtime/org/perl6/nqp/truffle/runtime/NQPCodeRef.java
[truffle] Fix setting of outer in declaration_static blocks
20:18
nqp/truffle: fc0e8de647 | (Paweł Murias)++ | 2 files
[truffle] Stub nqp::decont
20:49 Vgr_ joined 20:51 Vgr_ left
japhb This seems very fishy: gist.github.com/japhb/eb81ecc106fb...be0e988ed4 20:57
Anyone else able to replicate that? (Same loop taking either 5.8 seconds or 42-45 seconds, seemingly on the flip of a coin.)
jnthn japhb: That's interesting... 21:17
japhb: If you MVM_SPESH_DISABLE=1 does it consistently run at the slower time? Ditto for MVM_SPESH_OSR_DISABLE=1 21:18
timotimo did you mean ..._INLINE_...?
jnthn No :P 21:20
...I wondered if I'd typed into google instead of IRC for a moment then, though :P
I don't think there's anything to inline by runtime on that one
timotimo OK
jnthn I think the static optimizer gets it all
OSR is the thing that moves us from an interpreted hot loop to a spesh'd/jit'd one 21:21
And, I'm guessing, what might be reliably triggering here
21:22 Circlefusion joined
japhb Trying with MVM_SPESH_DISABLE=1 ... 21:25
timotimo i didn't actually look at the code until right now 21:26
:S
surely that's just the repl being silly? :)
21:26 Circlefusion left
japhb Yes, consistently slow with MVM_SPESH_DISABLE=1 (after 4 runs). Now trying with MVM_SPESH_OSR_DISABLE=1 ... 21:28
jnthn m: say "spesh/jit make it {43.1 / 5.81}x as fast" 21:30
camelia spesh/jit make it 7.418244x as fast
diakopter to a billion and beyond! 21:31
japhb Yep, consistently slow with MVM_SPESH_OSR_DISABLE=1 as well. In fact, even slower. Instead of 42-45 seconds, more like 44-49 seconds (over 5 runs). 21:33
jnthn How about MVM_SPESH_BLOCKING=1 ? 21:35
japhb Giving it a try ... 21:36
Consistently fast, and nice tight clustering too (5.82-5.86 seconds) 21:37
timotimo ooh
you remember that time i told you about code being OSR'd, but the check for an OSR'd result was coming back empty? 21:38
because the callsite wasn't matching up with what was being logged?
it could very well be this
diakopter I sense a big opportunity 21:40
jnthn Yeah, I'm wondering if it is 21:41
But this is a very nice small example :)
japhb :-)
jnthn japhb++
japhb That was the result of a couple hours of WTH ...?
jnthn I can't look at it right now, but if you've a moment to make a MoarVM ticket... :)
japhb Sure, will do. 21:42
diakopter can you bisect to find the lowest 1_000_000_000 at which it happens
is it bimodal at 100_000 21:45
japhb diakopter: The loop is fast enough that I had to use a big number to get above the noise floor on my machine. 21:46
(*sufficiently* above the noise floor, I mean)
Doesn't spesh kick in at loop counts in the low hundreds these days? 21:47
Oh, forgot to link: github.com/MoarVM/MoarVM/issues/968 21:48
jnthn japhb: Yes, but it does its work on a background thread 21:53
During which time such a hot loop will interpret quite a few more iterations
timotimo at some point we need to put in loop unrolling so that absurdly short loops like these get just a tiny bit faster 21:54
21:55 epony left 22:05 epony joined, p6bannerbot sets mode: +v epony 22:20 pmurias left 22:22 dct joined, p6bannerbot sets mode: +v dct 22:28 lizmat joined 22:29 p6bannerbot sets mode: +v lizmat
lizmat . 22:29
22:37 realitygaps26 joined, realitygaps26 left 23:02 MasterDuke joined, p6bannerbot sets mode: +v MasterDuke 23:03 MasterDuke left, MasterDuke joined, herbert.freenode.net sets mode: +v MasterDuke, p6bannerbot sets mode: +v MasterDuke