🦋 Welcome to the IRC channel of the core developers of the Raku Programming Language (raku.org #rakulang). This channel is logged for the purpose of history keeping about its development | evalbot usage: 'm: say 3;' or /msg camelia m: ... | log inspection situation still under development | For MoarVM see #moarvm
Set by lizmat on 22 May 2021.
00:02 reportable6 left 00:05 reportable6 joined
Geth DBIish/rbt.complex-types: 5246282492 | (Rod Taylor)++ | 9 files
Restructure type conversions

Allow for 2-way registered conversions. From Raku objects to a format suitable for the database (this was hardcoded for Buf already) in addition to the previously registerable conversions from DB to Raku (Bool, DateTime, Buf).
Allow registration of conversion via register-type-conversion() function calls. This hides the internal implementation which will probably change at some point.
The pg_custom_type.p6 file contains a sample Raku Point(:$x, :$y) object to a Pg "point" type in both directions.
00:19
00:20 Geth left, Geth joined
Geth DBIish: 89dfb87ebb | (Rod Taylor)++ | lib/DBDish/Pg/StatementHandle.pm6
Use dashy variable names
00:27
00:27 Geth left, Geth joined 00:31 Geth left 00:32 Geth joined 00:36 Geth left, Geth joined 00:37 hankache joined
Geth DBIish/rbt.fix-ci: 682715c0a5 | (Rod Taylor)++ | .github/workflows/test.yml
Additional Debug information for CI
00:45
00:47 Geth left, Geth joined
Geth DBIish/rbt.fix-ci: a973742c14 | (Rod Taylor)++ | .github/workflows/test.yml
fixup! Additional Debug information for CI
00:50
DBIish/rbt.fix-ci: c3bd587ec1 | (Rod Taylor)++ | .github/workflows/test.yml
Remove mysql-client installation

This is already installed and good enough even when it isn't the latest version. Upgrading to the latest version can mess things up.
DBIish/rbt.fix-ci: f8a0f6d39c | (Rod Taylor)++ | .github/workflows/test.yml
Additional Debug information for CI
00:51
DBIish/rbt.fix-ci: 6590a59d7a | (Rod Taylor)++ | .github/workflows/test.yml
Remove mysql-client installation

This is already installed and good enough even when it isn't the latest version. Upgrading to the latest version can mess things up.
00:52 Geth left, Geth joined
Geth DBIish/rbt.complex-types: 64d7ce54d6 | (Rod Taylor)++ | 9 files
Restructure type conversions

Allow for 2-way registered conversions. From Raku objects to a format suitable for the database (this was hardcoded for Buf already) in addition to the previously registerable conversions from DB to Raku (Bool, DateTime, Buf).
Allow registration of conversion via register-type-conversion() function calls. This hides the internal implementation which will probably change at some point.
The pg_custom_type.p6 file contains a sample Raku Point(:$x, :$y) object to a Pg "point" type in both directions.
00:58
DBIish: f8a0f6d39c | (Rod Taylor)++ | .github/workflows/test.yml
Additional Debug information for CI
DBIish: 6590a59d7a | (Rod Taylor)++ | .github/workflows/test.yml
Remove mysql-client installation

This is already installed and good enough even when it isn't the latest version. Upgrading to the latest version can mess things up.
00:59 hankache left
Geth DBIish/rbt.complex-types: d7f6ae4741 | (Rod Taylor)++ | 9 files
Restructure type conversions

Allow for 2-way registered conversions. From Raku objects to a format suitable for the database (this was hardcoded for Buf already) in addition to the previously registerable conversions from DB to Raku (Bool, DateTime, Buf).
Allow registration of conversion via register-type-conversion() function calls. This hides the internal implementation which will probably change at some point.
The pg_custom_type.p6 file contains a sample Raku Point(:$x, :$y) object to a Pg "point" type in both directions.
00:59
01:00 Geth left 01:01 Geth joined
Geth DBIish/rbt.complex-types: f8dcea8a6e | (Rod Taylor)++ | 9 files
Restructure type conversions

Allow for 2-way registered conversions. From Raku objects to a format suitable for the database (this was hardcoded for Buf already) in addition to the previously registerable conversions from DB to Raku (Bool, DateTime, Buf).
Allow registration of conversion via register-type-conversion() function calls. This hides the internal implementation which will probably change at some point.
The pg_custom_type.p6 file contains a sample Raku Point(:$x, :$y) object to a Pg "point" type in both directions.
01:05
01:05 Geth left, Geth joined
Geth DBIish/rbt.schedule-ci: 176c28f453 | (Rod Taylor)++ | .github/workflows/test.yml
Schedule daily CI run
01:35
01:37 Geth left 01:38 Geth joined
Geth DBIish: 176c28f453 | (Rod Taylor)++ | .github/workflows/test.yml
Schedule daily CI run
01:41
01:42 Geth left, Geth joined 01:57 discord-raku-bot left 03:22 sourceable6 left, notable6 left, nativecallable6 left, coverable6 left, greppable6 left, releasable6 left, committable6 left, shareable6 left, bloatable6 left, squashable6 left, evalable6 left, unicodable6 left, benchable6 left, reportable6 left, linkable6 left, tellable6 left, bisectable6 left, quotable6 left, statisfiable6 left, committable6 joined 03:23 linkable6 joined, reportable6 joined 03:24 unicodable6 joined, sourceable6 joined, notable6 joined, quotable6 joined, nativecallable6 joined 03:25 greppable6 joined 04:23 evalable6 joined, bisectable6 joined 04:24 coverable6 joined 04:25 releasable6 joined, bloatable6 joined 05:23 tellable6 joined 05:24 shareable6 joined, benchable6 joined 06:02 reportable6 left 06:04 reportable6 joined 06:23 statisfiable6 joined, squashable6 joined
lizmat Files=1349, Tests=117874, 315 wallclock secs (34.94 usr 9.36 sys + 4355.06 cusr 353.43 csys = 4752.79 CPU) 08:56
09:30 [Tux] left 09:39 dogbert17 left, moon-child left 09:45 TempIRCLogger__ left 09:46 statisfiable6 left, Xliff left, Kaiepi left, rypervenche left, Colt left, kawaii_ left, JRaspass left, jdv left, masak left, sivoais left, eof left, reportable6 left, benchable6 left, shareable6 left, tellable6 left, bloatable6 left, releasable6 left, coverable6 left, bisectable6 left, evalable6 left, jjatria left, sjn left, ilogger2 left, greppable6 left, nativecallable6 left, notable6 left, linkable6 left, committable6 left, samcv left, timo left, casaca left, sena_kun left, Geth left, Util_ left, codesections left, qorg11 left, djinni` left, Voldenet left, squashable6 left, quotable6 left, sourceable6 left, unicodable6 left, frost left, [Coke] left, vrurg left, nine left, tonyo left, ugexe left, tbrowder left, japhb left, gfldex left, maettu left, zostay left, camelia left, lizmat left, SmokeMachine left, nebuchadnezzar left, leont left, rba left 09:52 Colt left, Colt joined 10:07 Geth left, Geth joined 10:16 Geth left, Geth joined
[Tux] Rakudo v2021.10-146-gc7e456d35 (v6.d) on MoarVM 2021.10-126-g83c53580a
csv-ip5xs0.853 - 0.869
csv-ip5xs-205.157 - 5.409
csv-parser4.215 - 4.218
csv-test-xs-200.408 - 0.412
test7.304 - 7.374
test-t1.670 - 1.711
test-t --race0.968 - 1.004
test-t-2024.622 - 24.840
test-t-20 --race7.530 - 7.861
10:29
releasable6 Next release in ≈3 days and ≈7 hours. 3 blockers. Please log your changes in the ChangeLog: github.com/rakudo/rakudo/wiki/ChangeLog-Draft 11:00
11:29 evalable6 left, linkable6 left 11:31 linkable6 joined 12:02 reportable6 left 12:05 reportable6 joined 12:32 evalable6 joined 12:38 squashable6 left 12:42 discord-raku-bot joined
lizmat m: class Foo { class Zippo { }; class Zappo { }; class Zippo::Deeper { }; }; say Zippo; say Zappo # why is Zippo visible, and Zappo not? 13:56
camelia 5===SORRY!5=== Error while compiling <tmp>
Undeclared name:
Zappo used at line 1. Did you mean 'Zippo'?
lizmat nine ^^ ? 13:57
or put differently: why *is* Zippo visible? Because it has a subclass Zippo::Deeper ? 13:58
making the deeper class a my: 13:59
m: class Foo { class Zippo { }; class Zappo { }; my class Zippo::Deeper { }; }; say Zippo; say Zappo # why is Zippo visible, and Zappo not?
camelia 5===SORRY!5=== Error while compiling <tmp>
Undeclared names:
Zappo used at line 1
Zippo used at line 1
lizmat so, having an "our" subclass makes the parent class visible 14:00
ugexe m: class Foo::Bar { }; say Foo 14:09
camelia (Foo)
ugexe isnt it just that?
lizmat m: class Foo { }; say Foo 14:19
camelia (Foo)
lizmat no?
m: class Foo { class Bar { } }; say Foo; say Foo::Bar 14:20
camelia (Foo)
(Bar)
lizmat m: class Foo { my class Bar { } }; say Foo; say Foo::Bar
camelia (Foo)
Could not find symbol '&Bar' in 'Foo'
in block <unit> at <tmp> line 1
lizmat m: class Foo { my class Bar { }; my class Bar::Baz { } }; say Foo; say Foo::Bar
camelia (Foo)
Could not find symbol '&Bar' in 'Foo'
in block <unit> at <tmp> line 1
lizmat m: class Foo { my class Bar { }; class Bar::Baz { } }; say Foo; say Foo::Bar
camelia (Foo)
Could not find symbol '&Bar' in 'Foo'
in block <unit> at <tmp> line 1
lizmat m: class Foo { my class Bar { }; class Bar::Baz { } }; say Foo; say Foo::Bar::Baz
camelia (Foo)
Could not find symbol '&Baz' in 'Foo::Bar'
in block <unit> at <tmp> line 1
lizmat m: class Foo { class Bar { }; class Bar::Baz { } }; say Foo; say Foo::Bar::Baz 14:21
camelia (Foo)
(Baz)
lizmat m: class Foo { my class Bar { }; class Bar::Baz { } }; say Foo; say Bar
camelia (Foo)
(Bar)
lizmat I could understand if that would make Foo::Bar visible, in order to make Foo::Bar::Baz visible 14:22
but why would that make Bar (without Foo::) visible ?
14:39 squashable6 joined 14:59 frost left
nine lizmat: I've come across a bunch of issues with nested and multi part names when working on in-process precompilation. Apparently the fixes didn't make it into master. 15:35
Geth rakudo/precomp-singleprocess-endgame: 20 commits pushed by (Arne Skjærholt)++, (Stefan Seifert)++
review: github.com/rakudo/rakudo/compare/3...436d41eb3a
15:38
15:39 Geth left, Geth joined
nine github.com/rakudo/rakudo/commit/60...797adL1662 15:39
15:42 atroxaper joined
atroxaper I have a dev related question. I try to investigate how compunit id are created for filename in .precomp directory. I've read FileSystem.pm6 and think that is something like sha1( sha1(meta_name:ver<meta_ver>:auth<meta_auth>:api<meta_api>) ~ module-short-name). But my experiments fails. I have a distribution with META6.json and a module A::B (for example) and I have compiled module in the .precomp. But I cannot reproduce the module id. 15:49
Where I am wrong?
ugexe first, im obliged to say you probably shouldnt be depending on implementation details 15:54
second, you are forgetting to include the distribution name when sha1ing the ver/auth/api
atroxaper ugexe: precomp at all is implementation details :) 15:56
ugexe: meta_name is META6.json{name}. Is it distribution name? 15:57
ugexe not the parts covered by roast
oh i didnt see meta_name for some reason
atroxaper Agree. But zef does so too :)
ugexe probably not for long 15:58
a lot of what it does is because i hadnt yet implemented public interfaces in rakudo, which ive since done for some things 15:59
and even then it is only using it to look up stuff in rakudo because so many people want to look up sha1 16:00
there is nothing critical that uses it
atroxaper For my purpose it will not be some critical. It will speed up. 16:01
ugexe what is it supposed to do 16:02
atroxaper Anyway. I found a second option, when FileSystem does not use META6.json. It creates a hash with face information. I do not understand which value $prefix has? github.com/rakudo/rakudo/blob/mast...m.pm6#L295 16:04
It is for Rococo. To my shame, I found that I calculate .precomp id for modules in a wrong way and always use precomp files compiled by myself. I want to use lib/.precomp files to if they there. 16:07
A hard and naive way is analysing all .precomp files and get the information from dependencies header. 16:09
ugexe fwiw i personally wouldn't encourage users to even think about .precomp 16:10
if you are doing something with .precomp that should be invisible to the users
otherwise you are promoting the implementation details themselves
so like `--fix-compunit - erase <library>/.precomp directory ` shoudl instead say like 'erase precomp files' 16:11
i would also have to discourage telling users errors like to please only have X number of directories in lib/.precomp is 16:17
i think instead you would want to create your own CompUnit::Repository
jdv sena_kun is altai-man, right? 16:20
ugexe yes
jdv sena_kun: thanks for the blin run the other day. 16:21
i just finally got one that's basically a superset of that one - github.com/rakudo/rakudo/issues/4667
codesections: looks like your ro thing is responsible for some fallut 16:23
*fallout
do we care about November? i seem to recall maybe not.
nine What is Rococo_ 16:24
atroxaper ugexe: How my own CompUtin::Repository can help me? A user run the code -> I want to analyze his precomp files if they exists. 16:25
MasterDuke nine: raku-advent.blog/2021/12/09/raku-code-coverage/ 16:26
jdv nine: looks like some of the fallout maybe be from your recent works
16:27 Geth left
nine jdv: what fallout? 16:27
16:27 Geth joined
jdv blin 16:27
nine ah, #moarvm
jdv and ^, but yes 16:28
ugexe atroxaper: can the user ever run code and the precomp files not exist? 16:38
i would expect the act of running the code to precompile the files in the first place 16:39
atroxaper ugexe: In my experiments, not all modules will be precompiles. Dunno why. 16:40
ugexe you might try to capture the RAKUDO_MODULE_DEBUG=1 from an instance it fails to precompile 16:41
(for us to look at)
atroxaper Ok.
ugexe also parsing the output of RAKUDO_MODULE_DEBUG=1 can probably give you the information you want 16:42
atroxaper So. I think, I will try to use native CompUnit::Repository::FileSystem to retrieve ids.
ugexe thats one way to guess, although RAKUDO_MODULE_DEBUG=1 will literally tell you 16:44
1 RMD: Loading precompiled 16:45
/Users/ugexe/repos/zef/.precomp/5D2982B12B342A3DE3151613889FE10DB41E6685/CF/CF569252EA8F158C63A712BA13344194C93C6B07
atroxaper I need a map like FileName.rakumod -> id 16:47
ugexe you can make a map out of what i said 16:49
nine I'm still worried that this is the wrong approach in the first place. I'm very tempted to do away with those .precomp directories alltogether because github.com/rakudo/rakudo/issues/46...-991837842 has a point
ugexe thats just moving .precomp :P 16:50
atroxaper Hm... :) 16:52
17:27 evalable6 left, linkable6 left 17:28 evalable6 joined 17:29 linkable6 joined 18:02 reportable6 left 18:48 [Coke] left 18:58 [Coke] joined 18:59 Geth left 19:00 Geth joined, linkable6 left 19:04 Geth left, Geth joined, atroxaper left 19:08 Geth left 19:09 Geth joined
Geth rakudo: usev6++ created pull request #4668:
[JVM] Don't let signal(SIGINT) break the REPL
19:38
19:40 Geth left, Geth joined 20:01 linkable6 joined 20:05 reportable6 joined 20:42 vrurg left 20:44 vrurg joined 20:57 Geth left, Geth joined 21:24 patrickb joined 21:29 sena_kun left 21:31 sena_kun joined
Geth whateverable: 757a0f9fc7 | (Elizabeth Mattijsen)++ | 3 files
Make Whateverable work with latest IRC::Client

Basically, just "use IRC::Client" will give you everything you need.
22:03
lizmat jdv: ^^^ just FYI 22:04
22:04 Geth left, Geth joined
jdv lizmat: ok 22:04
lizmat I've tried to get it to work again all day, but as nine also confirmed, there's stuff there that we need to look into deeper 22:05
the fix was easy: remove one line, and remove ::Message from another
jdv cool
lizmat I never saw the point of having a Foo/Bar.pm6, which does a "use Foo" 22:13
jdv sure. as long as it works:) 22:15
22:26 patrickb left
Geth nqp: MasterDuke17++ created pull request #752:
Change nqp::radix(_I)? to return # chars converted
22:27
22:28 Geth left, Geth joined
Geth rakudo: MasterDuke17++ created pull request #4669:
Adapt to nqp::radix(_I)? now returning # chars converted
22:39
rakudo: MasterDuke17++ created pull request #4670:
Restore larger limit for using string_to_int on 64bit systems
23:19
timo codesections: have you considered instead of giving Block an .is method, introducing a .is postfix operator? 23:50
m: sub postfix:<.is>(&b) { return %( value => &b() ) }; { 5 + 9 }.is.value.say 23:51
camelia No such method 'value' for invocant of type 'Hash'. Did you mean
'values'?
in block <unit> at <tmp> line 1
timo m: sub postfix:<.is>(&b) { return %( value => &b() ) }; { 5 + 9 }.is<value>.say
camelia No such method 'is' for invocant of type 'Block'. Did you mean 'isa'?
in block <unit> at <tmp> line 1
timo welp! never mind then?
MasterDuke m: sub postfix:<?is>(&b) { return %( value => &b() ) }; { 5 + 9 }?is<value>.say 23:53
camelia 14