timotimo cool library 00:13
Geth rakudo: fa355a26d2 | (Elizabeth Mattijsen)++ | lib/BUILDPLAN.rakumod
Add support for the new 13/14 object build opcodes

13 = same as 0, but bind instead of assign 14 = same as 4, but bind instead of assign
Note that native attributes were already being bound, rather than assigned, so we don't need extra object build opcodes for that.
00:23
rakudo: 19b820d8fe | (Elizabeth Mattijsen)++ | src/core.c/Mu.pm6
BUILDPAN build opcode 13/14 (runtime version)

This implements BUILDPLAN opcodes 13/14, to *bind* to atributes rather than assign to them.
13: same as 0, but bind instead of assign 14: same as 4, but bind instead of assign
00:28
lizmat argh s/BUILDPAN/BUILDPLAN/
the compile-time portion should be done tomorrow 00:34
for now, some sleep& 00:35
00:41 sena_kun left 00:45 pmurias left 00:47 pmurias joined 00:56 sena_kun joined 01:27 pmurias left
Geth nqp: 57a65f0a1b | (Daniel Green)++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java
Java's BigInteger.modPow can take exponents < 0
01:38
AlexDaniel Dynamic variable %*COMPILING not found 01:52
huh?
01:54 travis-ci joined
travis-ci NQP build passed. Daniel Green 'Java's BigInteger.modPow can take exponents < 0' 01:54
travis-ci.org/perl6/nqp/builds/638991031 github.com/perl6/nqp/compare/c7f4d...a65f0a1b72
01:54 travis-ci left
AlexDaniel that's something in HTTP::UserAgent 01:56
does it sound familiar? I'm not sure I'm very interested in figuring this out right now
02:03 Kaiepi left 02:04 Kaiepi joined 02:05 shareable6 left 02:08 shareable6 joined 02:43 sena_kun left 02:57 sena_kun joined 03:57 sourceable6 left, nativecallable6 left, reportable6 left, coverable6 left, releasable6 left, shareable6 left, unicodable6 left, greppable6 left, benchable6 left 03:58 benchable6 joined, nativecallable6 joined, reportable6 joined 03:59 shareable6 joined 04:00 greppable6 joined, unicodable6 joined, sourceable6 joined, coverable6 joined, releasable6 joined 04:41 sena_kun left 04:57 sena_kun joined 06:42 sena_kun left 06:58 sena_kun joined 07:58 reportable6 left, benchable6 left, unicodable6 left, releasable6 left, greppable6 left, coverable6 left, shareable6 left, sourceable6 left, nativecallable6 left, squashable6 left, statisfiable6 left, quotable6 left, notable6 left, tellable6 left, committable6 left, bloatable6 left, bisectable6 left, evalable6 left, benchable6 joined, nativecallable6 joined, sourceable6 joined 07:59 tellable6 joined, evalable6 joined, statisfiable6 joined, quotable6 joined, releasable6 joined, notable6 joined, shareable6 joined, bloatable6 joined, coverable6 joined 08:00 greppable6 joined, reportable6 joined, committable6 joined, bisectable6 joined 08:01 squashable6 joined, unicodable6 joined 08:03 epony left 08:31 epony joined 08:32 epony left, epony joined 08:41 sena_kun left 08:57 sena_kun joined 09:04 epony left, dumarchie joined
dumarchie Should List.new-from-iterator be documented (and covered by a spectest) or should it be hidden? 09:09
09:16 epony joined 10:18 pmurias joined 10:22 pmurias left 10:24 pmurias joined
lizmat Files=1301, Tests=109805, 210 wallclock secs (28.17 usr 8.05 sys + 2939.19 cusr 267.98 csys = 3243.39 CPU) 10:29
seems like yesterday's bump was a fluke
10:41 sena_kun left 10:55 sena_kun joined
nine releasable6: status 10:56
releasable6 nine, Next release will happen when it's ready. 1 blocker. 0 out of 499 commits logged
nine, Details: gist.github.com/99470faf1adc321797...18004b6d0b
nine I thought overload::constant and ADT were fixed by a revert on the release branch? 10:58
sena_kun nine: yes, I am now running blin for the latest cut. `1382 out of 1384 modules processed (left: PDF::API6 IRC::Client::Plugin::Github)`, if there are no regressions, it's a green light for the moarvm release. 11:01
nine Err....we already got a MoarVM release :) 11:03
sena_kun nine: yes, but it was made kind of prematurely and now one has to sync in terms of tags, bumps and so on. 11:04
sena_kun will look at the release soon
nine There's been just 1 bugfix and a couple of warning fixes (which are not associated with any known actual bugs) since the 2020.01 MoarVM release 11:06
sena_kun nine: but this 1 bugfix fixes severe segfault for cro::websockets, no?
nine It does fix a segfault, yes. Though I can't seem to remember where exactly it showed up 11:08
sena_kun in cro::websocket tests. and if simple tests are failing, showing up in a production environment is likely and we don't want that 11:09
nine Ah, now I remember! The segfault occured only on a somewhat older libopenssl version 11:14
And I upgraded to a newer libopenssl on our production VMs which is why we don't encounter that issue anymore.
FWIW we haven't had a rakudo segfault on our production machines in weeks :) 11:16
So yes, a point release of MoarVM would be nice indeed. But rakudo need not depend on that point release. 11:18
sena_kun has finally finished with the morning routine and can look at blin results 11:24
11:35 pmurias left
Geth rakudo: ecf8a3f4ce | (Elizabeth Mattijsen)++ | 2 files
Add support for Attribute is built(:bind)

  - add "is_bound" attribute handling to Attribute in bootstrap
  - add support for ":bind" to "is built" trait
11:51
rakudo: 7bbb76da19 | (Elizabeth Mattijsen)++ | src/Perl6/World.nqp
Support for binding attributes in BUILDPLAN processing

This adds support for binding attributes (with "is built(:bind)", opcodes 13 and 14)) to the object build logic compiler services.
12:18
rakudo: Altai-man assigned to vrurg Issue Regression related to AUTOGEN signature github.com/rakudo/rakudo/issues/3433
8ab53027e2 | (Elizabeth Mattijsen)++ | src/Perl6/Metamodel/BUILDPLAN.nqp

If an attribute is marked as "is_bound", then adapt the opcodes 0 and 4 to 13 and 14 respectively. It really was as simple as that.
12:31
sena_kun and we have one more regression to look into
12:41 sena_kun left
12:57 sena_kun joined
Geth rakudo: 3f0dca4f4d | (Elizabeth Mattijsen)++ | lib/BUILDPLAN.rakumod
Fix stray i in method name
12:58
rakudo: taboege++ created pull request #3434:
NativeCall: add CArray[ā€¦].new(Str:D, ā€¦) candidate
13:04
Kaiepi a while ago i was working on making feed operators compliant with their original design, but stopped since the implementation i ended up with was slower than what we have now
i have some ideas on how to speed this up now 13:05
lizmat ++Kaiepi
tobs thanks lizmat, you're fast :) 13:06
lizmat hehe
tobs: I actually approved it before I saw your request for review :-) 13:08
tobs can't get any faster
Geth rakudo: d1cda8460d | (Elizabeth Mattijsen)++ | src/core.c/Attribute.pm6
An accessor on a bound attribute should not decont

As there is no container anyway in that case, so just simply return the attribute.
13:24
13:45 dumarchie left 13:56 pmurias joined
jnthn lizmat: I'm not sure I agree with that; why would there be "no container"? In `class A { has $.foo is init(:bind) }; my $foo = 42; A.new(:$foo)`, $!foo =:= $foo 14:03
14:04 lucasb joined
jnthn class A { has $.foo is rw is init(:bind) }; my $foo = 41; A.new(:$foo).foo++; say $foo # I'd expect 42 14:04
And without the `is rw` I'd expect an error 14:05
And I don't see how we get that if such an accessor doesn't decont
lizmat jnthn: you use "is init" did you mean that, or did you mean "is built" ? 14:19
jnthn: also, without the "is rw", shouldn't that just decont on object creation ? 14:21
so we'd lose any container then, so we don't have to decont every attribute access ? 14:22
afk for a few hours&
nine lizmat: but then we lose the ability to bind a container on purpose (however bad such a thing may sound). If there's no container then MoarVM will optimize the decont away 14:27
jnthn lizmat: Meant "is built" 14:29
lizmat: Under *normal* object creation semantics, we assign into an attribute; :bind is meant to bind. 14:30
lizmat: There's no automatic decont anywhere except in a non-rw accessor
Well, also in that if you have `has @!foo is built(:bind)` and you pass `foo => $[foo]` then per normal binding semantics we lose the Scalar. But that just falls out of normal := semantics. 14:31
14:41 sena_kun left 14:56 sena_kun joined 14:57 pmurias left 15:30 pmurias joined 15:35 Kaiepi left 15:36 Kaiepi joined 16:42 sena_kun left 16:49 domidumont joined 16:53 dumarchie joined 16:56 sena_kun joined
dumarchie Does anybody have an opinion on whether List.new-from-iterator should be documented and covered by a spectest or should be hidden? 17:01
Documenting it creates one more opportunity for new users to find out how to create a lazy list. 17:07
MasterDuke lizmat: istr you had a comment on a commit from the past couple weeks about wanting a fast Int.chars? i can't find it, so maybe i'm imagining things 17:15
17:30 ab5tract joined 18:14 pmurias left 18:15 pmurias joined
ab5tract regarding that recent commit to doc which discussed managed char* ... thanks for that one!! it got the flaps right out of my library tests. it was clear that the flaps were due to memory management timings but it was quite unclear how i should go about addressing it. 18:16
18:43 sena_kun left 18:58 sena_kun joined 19:06 TreyHarris joined 19:23 pmurias left, pmurias joined 19:29 dumarchie left
tobs hah, amazing how a random doc change can come at just the right time 19:43
Geth rakudo: bd4b2c1487 | (Elizabeth Mattijsen)++ | src/core.c/Attribute.pm6
Revert "An accessor on a bound attribute should not decont"

This reverts commit d1cda8460d2199c6605871ecd4e3c3fb6e29863d.
19:53
lizmat m: class A { has $.a = 42 }; A.new for ^10_000_000; say now - INIT now 19:57
camelia 1.8076504
lizmat m: class A { has $.a is built(:bind) = 42 }; A.new for ^10_000_000; say now - INIT now
camelia 1.3209165
lizmat m: say 1.8076504 / 1.3209165
camelia 1.368481959
lizmat morale: make your objects with immutable attributes go 1.3x as fast with "is built(:bind)" 19:58
20:05 domidumont left 20:41 sena_kun left
MasterDuke dumarchie: i don't have an informed opinion on whether it should be hidden (i'd lean towards no absent any other information), but if not, then yes it should be spectested and written up in the docs 20:50
tellable6 MasterDuke, I'll pass your message to dumarchie
20:54 lucasb left 20:56 sena_kun joined 22:42 sena_kun left 22:57 sena_kun joined
lizmat .tell dumarchie I'd rather see .List and .Array coercers implemented in the Iterator role 23:02
tellable6 lizmat, I'll pass your message to dumarchie
23:03 ab5tract left 23:33 pmurias left