00:03 hungrydonkey joined 00:41 lucs left, lucs joined 01:42 evalable6 left, linkable6 left, linkable6 joined 01:44 evalable6 joined 01:48 Altai-man_ joined 01:50 sena_kun left 03:49 sena_kun joined 03:51 Altai-man_ left 05:31 Guest16689 is now known as masak 05:48 |Tux| left, Altai-man_ joined 05:51 sena_kun left 06:18 Xliff left 06:53 hungryd79 joined 06:56 hungrydonkey left 07:04 hungrydonkey joined 07:05 hungryd79 left 07:10 hungrydonkey left, hungrydonkey joined 07:49 sena_kun joined 07:50 Altai-man_ left
lizmat Files=1306, Tests=111228, 212 wallclock secs (29.00 usr 8.38 sys + 2996.04 cusr 271.44 csys = 3304.86 CPU) 08:08
MasterDuke when compiling rakudo, there are 2278304 call to `symbol` github.com/Raku/nqp/blob/master/sr...k.nqp#L62, but only 31826 call to `new` github.com/Raku/nqp/blob/master/sr...ck.nqp#L14 08:50
any reason not to just `%!symbol := nqp::hash()` in `new` and remove the check in `symbol`? 08:51
lizmat if those numbers are correct, then it feels like something to try 08:57
nine MasterDuke: do we actually call symbol on all or at least most blocks? 09:10
MasterDuke oh hm, you think it might just be lots of repeated calls to a few?
nine Could be. Also looking at that code, we wouldn't have to allocate %!symbol for the else branch 09:11
MasterDuke here? github.com/Raku/nqp/blob/master/sr...ck.nqp#L75 won't the atkey complain if %!symbol isn't allocated? 09:17
nine I was thinking: else { if nqp::isnull(%!symbol) { %NOSYMS } else { nqp::ifnull(nqp::atkey(%!symbol, $name), %NOSYMS)) } } 09:20
MasterDuke right
nine It all depends on whether the majority of blocks gain symbols at some point 09:21
MasterDuke hm, i think the name is not guaranteed to be unique, and the cuid isn't assigned in new(). can i use nqp::where() or will that change if the gc moves things? 09:29
lizmat it's my understanding that nqp::where is *not* constant over the lifetime of an object 09:31
but I could be wrong
nine nqp::where is not constant, nqp::objectid is 09:32
MasterDuke ah, i'll try that
nine nqp::objectid works by forcing the object into gen2, so it's address will stay stable.
09:35 hungryd41 joined 09:38 hungrydonkey left
MasterDuke lots of repeated symbol calls. most is 553193 09:40
huh. but there are repeated values for nqp::objectid in new? 09:43
i added `note("Q::B.new: " ~ nqp::objectid($node));` after this line github.com/Raku/nqp/blob/master/sr...ck.nqp#L20 09:44
nine They are stable and unique at the time they're generated - not unique over the life time of the program.
After all even in gen2 objects can get collected and their memory location be reused. 09:45
09:48 Altai-man_ joined 09:50 sena_kun left
Geth_ rakudo: afff3b0b2e | (Elizabeth Mattijsen)++ | lib/Test.rakumod
Make sure die_on_fail shows correct env variable name

Also make it a 2 line statement for better readability
10:02 camelCaser left, ccamel joined
tbrowder lizmat: can you explain what you mean when you say "hllize" something 11:00
i see "hllize_nfa"...
lizmat m: use nqp; my $l := nqp::list; dd $l.^name, nqp::hllize($l).^name 11:07
camelia "BOOTArray"
lizmat tbrowder: does that make it clearer ?
tbrowder yes, thnx 11:10
AlexDaniel lizmat: but why does it have to do the sorting ahead of time? 11:22
[Tux] Rakudo version 2020.02.1-295-gafff3b0b2 - MoarVM version 2020.02.1-75-g838e6836e
csv-ip5xs0.718 - 0.730
csv-ip5xs-206.363 - 6.459
csv-parser25.364 - 25.482
csv-test-xs-200.380 - 0.396
test7.505 - 8.359
test-t2.025 - 2.131
test-t --race0.910 - 0.985
test-t-2031.445 - 33.146
test-t-20 --race9.722 - 10.029
AlexDaniel lizmat: if nobody is asking for the elements then surely we can delay that?
also, TIL:
m: my @a = <a b c d e f g h i>; my $h := @a.head(3); @a[0]=42; say $h
camelia (42 b c)
AlexDaniel oh and you don't have to bind 11:24
m: my @a = <a b c d e f g h i>; my $h = @a.head(3); @a[0]=42; say $h
camelia (42 b c)
lizmat containers for the win ?
AlexDaniel: what would be the reason for delaying the sort? As soon as *any* element is needed, the sort would have to be done 11:25
for both .sort as well as .min .max you would need to see each element of the source at least once 11:26
AlexDaniel lizmat: you don't have to sort if not all elements are needed, which is demonstrated by the ticket
iterate yes, sort no
lizmat ok, but then I think this functionality belongs in .min / .max 11:27
as *that*'s what you're asking for then
11:32 finsternis left
AlexDaniel maybe 11:32
11:49 sena_kun joined 11:50 Altai-man_ left
Geth_ ¦ problem-solving: JJ assigned to jnthn Issue Redesign Exceptions for subclassing github.com/Raku/problem-solving/issues/173 12:19
12:20 MasterDuke left 12:26 MasterDuke joined 12:40 hungryd41 left, hungrydonkey joined 12:47 hungryd36 joined 12:51 hungrydonkey left 13:41 MasterDuke left 13:42 MasterDuke joined 13:48 Altai-man_ joined 13:51 sena_kun left 13:56 hungrydonkey joined 14:00 hungryd36 left 14:06 hungrydonkey left, hungryd58 joined
MasterDuke nine: not sure if it's just a coincidence or not, but 31.8k QAST::Blocks were created, and there were symbol method calls to 34.4k different objectids... 14:12
nine m: my \Foo := Metamodel::ClassHOW.new_type(name => "Foo"); Foo.^add_method("foo", EVAL q[method foo() { say "foo!" }]); Foo.^compose; Foo.foo 14:52
camelia Potential difficulties:
Useless declaration of a has-scoped method in mainline (did you mean 'my method foo'?)
at /home/camelia/EVAL_0:1
------> 3method7⏏5 foo() { say "foo!" }
nine That declaration is not as useless as the warning makes you believe. I think it's rather bogus
jnthn Easially suppressed by writing `anon method foo`, at least 14:57
But yeah, it could be based on sink context too 14:58
nine It also goes away with a 'my method foo', but I'd rather not have users do this here: github.com/niner/Inline-Perl5/blob...V6.pm#L150 14:59
I wonder if it'd actually be possible to really compile that method in the context of Foo, as if it was just class Foo { method foo() { ... } } 15:13
Oh that would be necessary for attributes anyway. 15:18
I may end up wrapping that in an anonymous role for the EVAL and grab stuff out of there 15:20
15:24 ufobat_ joined 15:28 ufobat__ left 15:43 hungryd58 left, hungrydonkey joined 15:49 sena_kun joined 15:51 Altai-man_ left 16:27 hungrydonkey left 17:48 Altai-man_ joined 17:51 sena_kun left 18:07 SmokeMachine_ joined 18:08 SmokeMachine_ is now known as SmokeMachine 18:13 MasterDuke left
lizmat notable6: weekly 18:29
notable6 lizmat, 2 notes: 2020-04-03T12:47:47Z <lizmat>: Building Raku modules with Nix ; 2020-04-03T12:47:59Z <lizmat>: foldr.nl/raku-nix.html
lizmat notable6: weekly reset
notable6 lizmat, Moved existing notes to “weekly_2020-04-06T18:29:27Z”
18:30 MasterDuke joined
lizmat And another Rakudo Weekly News hits the Net: rakudoweekly.blog/2020/04/06/2020-...spectives/ 19:12
19:49 sena_kun joined 19:50 Altai-man_ left
timotimo lizmat++ # appreciated 19:57
21:48 Altai-man_ joined 21:50 sena_kun left 22:09 jjatria joined 22:18 jjatria left 22:20 jjatria joined 23:44 Xliff joined 23:49 sena_kun joined 23:50 Altai-man_ left