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.
japhb I know I'm late to (this iteration of) the slow-JSON-parsing discussion, but I still wonder why we don't update the Rakudo::Internals one with a snapshot of the JSON::Fast code to get a quick boost. We can continue to have JSON::Fast in the ecosystem, still able to make improvements over time, and we can still treat the Rakudo one as internal, but we avoid the bootstrapping of JSON::Fast install 00:19
problem, and make it just better out of the box.
jdv79 sounds eerily like p5's dual life modules 00:24
AlexDaniel timotimo: ↑ ? 00:51
[Coke] as I recall we didn't want *any* json in core but were stuck because christmas. 00:54
if we pull it in to core, we need to cla it, I think, also 00:55
zzz
AlexDaniel but it's written by timotimo 00:56
AlexDaniel hm… yeah not entirely sure what's the issue with just pulling it 00:58
but, whatever
MasterDuke timotimo: mind looking at the current version of my patch? i'm getting a `P6opaque: get_boxed_ref could not unbox for the representation 'P6bigint' of type Scalar` in my add_I, but i added a decont and it didn't fix it 02:12
AlexDaniel Geth: ver github.com/rakudo/rakudo/commit/fc23b197 02:32
lizmat Files=1253, Tests=76133, 336 wallclock secs (15.36 usr 5.37 sys + 2371.71 cusr 225.77 csys = 2618.21 CPU) 07:45
AlexDaniel btw I did run normal toaster overnight, results here: toast.6lang.org/ 08:06
I haven't looked at them yet
AlexDaniel lizmat: Scalar::Util depends on NQP ops which were changed, the module now fails: modules.perl6.org/dist/Scalar::Uti...il.pm6#L23 08:08
AlexDaniel lizmat: “Cannot unbox a type object (Rakudo::Internals::IterationSet) to int.” seems like a thing you can look at. toast.6lang.org/module?module=Prob...g0bf909bb1 08:09
lizmat AlexDaniel++ # working on it 08:36
update on its way to CPAN 08:39
m: (1,2,3).Set.ACCEPTS(().Set) # golfed 08:50
camelia Cannot unbox a type object (Rakudo::Internals::IterationSet) to int.
in block <unit> at <tmp> line 1
lizmat m: (1,2,3).Bag.ACCEPTS(().Bag) # samo 08:51
camelia Cannot unbox a type object (Rakudo::Internals::IterationSet) to int.
in block <unit> at <tmp> line 1
lizmat hmmm... did we lose Geth ? 09:10
AlexDaniel: breakage in ProblemSolver should be fixed now 09:11
|Tux| Tadam tadam tadam 🥁🥁🥁🥁🥁 09:21
Rakudo version 2018.08-112-g0bf909bb1 - MoarVM version 2018.08-90-g025b3cdaa
csv-ip5xs0.905 - 0.913
csv-ip5xs-206.763 - 6.932
csv-parser21.929 - 22.069
csv-test-xs-200.428 - 0.436
test8.427 - 8.796
test-t1.971 - 2.006
test-t --race0.881 - 0.898
test-t-2036.181 - 36.425
test-t-20 --race11.692 - 13.174
lizmat whee! 09:32
dogbert2 test-t under 2 seconds, now that's a milestone 11:00
nine csv-ip5xs-20 also looks almost half a second faster. What happened? 12:38
lizmat I think some stuff came along with samcv's last MoarVM bump ? 12:41
nine I don't see anything in that bump that I can remotely connect to a performance improvement. Let alone such a large one 12:42
lizmat well, for a long time I have suspected that some builds are just faster than other builds 12:44
maybe something with alignment of stuff
I guess we maybe hit a fast build 12:45
nine Maaaaybe the change to MVM_string_find_encoding
pmurias CIAvash[m]: hopefully the newest HEAD is a least a bit less broken 13:01
CIAvash[m] pmurias: yeah, it builds now, but there is just an error in the console "test.8a3d36cf.js:146 Uncaught SyntaxError: Invalid or unexpected token" 13:28
AlexDaniel Geth: help 13:35
Geth AlexDaniel, Source at github.com/perl6/geth To add repo, add an 'application/json' webhook on GitHub pointing it to hack.p6c.org:8888/?chan=#perl6 and choose 'Send me everything' for events to send | use `ver URL to commit` to fetch version bump changes
tbrowder__ hi folks, couple questions on rakudo src/Perl6/*nqp: 14:37
can one call back to class Actions from Pod? 14:38
i have tried using Perl6::Actions in Pod.nqp but get build errors that either indicate some build tools need modifying or that it won’t be possible. 14:40
calling back without the use statement gives me a “=== sorry...” 14:42
jnthn I think if you have a match object in there you can do something like $/.actions or similiar 14:43
And then call the method you want on that
tbrowder__ ok, i’ll try that.
can you tell me just in general what the wantall subs are really doing? 14:44
jnthn I'm guessing from the name, something about sink context handling 14:45
timotimo the actions are probably in the ParseShared object 14:47
tbrowder__ i’m probably not doing stuff the right way, but i have hacked some things by dealing with playing with the str verion of some ast, but i’m stumped at the moment.
timotimo that's somewhere in the match object
tbrowder__ is there any general way to “unpack” an ast object and recreate it with changes inside the code? 14:48
timotimo there is nqp::clone, which reconstructs it - shallowly - with the same stuff in it 14:49
so you can make the necessary changes then
tbrowder__ aha! thanks 14:50
jnthn: thanks
timotimo the copying really is shallow, though
tbrowder__ timotimo: thanks
any tidbit is progress at this point
Zoffix Geth: help 16:23
Geth Zoffix, Source at github.com/perl6/geth To add repo, add an 'application/json' webhook on GitHub pointing it to hack.p6c.org:8888/?chan=#perl6 and choose 'Send me everything' for events to send | use `ver URL to commit` to fetch version bump changes
Zoffix Did geth announce last commit to roast? About rounding? It ain't in the logs...
jnthn Zoffix: fwiw, it's not been announcing any commits this afternoon on #MoarVM 16:25
I don't see any roast announce here 16:26
Geth roast: 171a1c59e3 | (Zoffix Znet)++ | S32-num/rounders.t
Spec .round's return type
16:26
roast: 6d75d855a0 | (Elizabeth Mattijsen)++ | 6 files
Add tests for R#2289
synopsebot R#2289 [closed]: github.com/rakudo/rakudo/issues/2289 Breakage in QuantHash.ACCEPTS(empty QuantHash)
Zoffix GitHub really needs a "redeliver all failed webhooks" button. 16:30
There's like two pages of Rakudo hooks. I'm just gonna leave them undelivered
lizmat m: for ^1 -> int $_ { "a" ~~ /./ } # is this to be expected ? 17:12
camelia This type cannot unbox to a native integer: P6opaque, Str
in block <unit> at <tmp> line 1
jnthn Yes, ~~ sets $_ 17:29
And if you've declared it as a native int, then it isn't going to be able to put anything in it 17:30
Well, unless it's putting an Int there :)
But really, just pick another variable name :) 17:31
Or `int $` since it seems you ain't using it anyway
Zoffix jnthn: but doesn't it set $_ in it's local space and doesn't mangle the $_ that's in the scope of ~~ ? 17:37
Zoffix Also, how come this doesn't do a typecheck error: 17:37
m: -> Str $_ is rw { $_ = 42 }($ = "x")
camelia ( no output )
Zoffix m: for ^1 -> int $_ { "a" andthen .say } 17:39
camelia a
jnthn Zoffix: There's no new scope
Scopes are always delimited by curlies 17:40
Zoffix Then how is the last eval working? 17:40
jnthn Because it binds, iirc
Zoffix Ah
jnthn And probably in some very direct way that bypasses the bind check :)
Arguably it should be upset
Zoffix m: for ^1 -> int $_ { "a" andthen .say; dd $_ } 17:41
camelia a
0
jnthn Yeah, that's one of the exceptions, as is `.say for @bar`
jnthn isn't entirely fond of those, but they're kinda convenient
Zoffix ok 17:42
jnthn Well, if it was 100% regular everywhere then it'd not be Perl :P
Zoffix m: -> Str $_ is rw { $_ = 42 }($ = "x")
camelia ( no output )
Zoffix How come it's not typecheckfailing here?
Is that a bug?
Ah, it binds the outer thing and typecheck is lost?
m: -> Str $_ is rw { $_ = 42 }(my Str $ = "x") 17:43
camelia Type check failed in assignment; expected Str but got Int (42)
in block <unit> at <tmp> line 1
jnthn m: -> Str $_ is rw { $_ = 42 }(my Str $ = "x")
camelia Type check failed in assignment; expected Str but got Int (42)
in block <unit> at <tmp> line 1
jnthn Exactly; `is rw` means we bind to the supplied container
Zoffix k. got it. Thanks.
jnthn The constraint is just about what it contains when it's received.
jnthn should hurry up with getting his couple of remaining 6.d tweaks in 17:45
(the `start` in void context one, and the `$_` not being dynamic one) 17:46
Zoffix \o/
buggable: d
buggable Zoffix, Diwali is in 49 days, which is 6 weeks, 6 days, 6 hours, 13 minutes, and 30 seconds. Need to review 81 commits per day (567/week) to complete. Need 3 teaser flyers. Still have 7 TODO features costing 110 hours. Still have 0.3 policies to write. Still have ~95% of ChangeLog to do.
jnthn Also will look at the RT tickets you pointed me at some more.
Zoffix 49 days \o/
lizmat was looking at this very LTA error: 18:47
m: my &foo; foo
camelia Cannot invoke this object (REPR: Uninstantiable; Callable)
in block <unit> at <tmp> line 1
lizmat which goes straight into the bowels of 6model.c 18:48
tried adding a CALL-ME to the Callable role, but that busts the setting build
jnthn I think we could drop the REPR part of that message 19:00
Making it Cannot invoke a Callable 19:01
If we then stick " type object" on the end when it's a type object, it's probably decent enough.
[Coke] +1 19:04
lizmat ok, will see if I can manage that 19:19
but not today :-)
m: sub a(+values) { dd values }; a 1,2,3 19:23
camelia (1, 2, 3)
lizmat m: sub a(*values) { dd values }; a 1,2,3 # so why is this a compilation error? seems a bit inconsistent (although I understand the historical reasons)
camelia 5===SORRY!5=== Error while compiling <tmp>
Missing block
at <tmp>:1
------> 3sub a(*7⏏5values) { dd values }; a 1,2,3 # so wh
AlexDaniel uuuuuuggggghhhhhhhhh 20:57
lizmat hugs AlexDaniel
AlexDaniel lizmat: it's fine! ♥ 20:58
lizmat
.oO( or did I mix up causality? )
AlexDaniel just trying to figure out why NASA regressed (?)
with my setup it fails on 2018.08 consistently
so I'm not sure how it managed to succeed in toaster 20:59
or maybe my stuff is just wrong
yeah, pretty sure it fails on 2018.08 also 21:11
AlexDaniel finally looks at the code :) 21:12
lizmat m: my \a = @ = 1,2,3; dd MY..<@ANON_VAR_1> # is it necessary to have that anonymous var in the lexpad ? 21:16
camelia MY.."\@ANON_VAR_1"
lizmat m: my \a = @ = 1,2,3; dd MY::<@ANON_VAR_1> # eh,. better
camelia Nil
lizmat m: my \a = @ = 1,2,3; dd MY::<@ANON_VAR__1> # eh,. better 21:17
camelia Array @ = [1, 2, 3]
timotimo hm, should be possible to have it as a local, or does that mess up handling of itemization or something? 21:18
AlexDaniel Zoffix: can you take a look at NASA module? My uneducated guess is that the api of the service changed, and now $res<hdurl> is no longer there and $res<media_type> is “video” instead of “image”
Zoffix: the reason why I'm looking at it is because it succeeded on 2018.08 and failed on HEAD, maybe that's just unfortunate timing? 21:19
<service_version> is still v1 so that kinda sucks 21:20
it returns a link like this now: www.youtube.com/embed/R60m1W7t1og?rel=0 21:21
lizmat timotimo: afaics, it's only needed for initialization
AlexDaniel aaaaaaaaaaaaaaaah
maybe it rolled over to the next day while toaster was doing its thing 21:22
so it depends on which day you run it
lizmat timotimo: QAST::Var(lexical $ANON_VAR__1) <wanted nosink> $ # is how it codegens
jnthn I think it has to be a lexical in case of thunkiness 21:42
Or something like that :)
lizmat jnthn: but does it need to live in the lexpad in the case of "my \a = @ = 1,2,3" ? 21:44
ah well, I was just wondering :-) 21:47
sleep& 21:49
jnthn In that case, no 21:57
jnthn But we don't lower any variable that's assigned to at present. That's actually pretty high on my todo list now :) 21:57
samcv so for now utf16le and utf16be act like Perl 5 does (afai have tested) and so they pass through a BOM for these formats, and for utf16 it will detect BOM and act acordingly 22:29
*issue*: for 'utf16' we don't add a byte order marker on writing a file which doesn't make much sense at all. and i'd add one but don't want to break compatibility
perl 5 adds a BOM when you write out a utf16 file 22:30
so files created by perl 6 on one endianess machine won't read correctly if you moved to a different endianess machine 22:31
AlexDaniel samcv: I'm happy with things, we did spot one regression which was fixed very quickly by lizmat++ 23:35
samcv: so please go ahead and release moarvm :) 23:36