🦋 Welcome to Raku! raku.org/ | evalbot usage: 'p6: say 3;' or /msg camelia p6: ... | irclog: colabti.org/irclogger/irclogger_log/raku
Set by ChanServ on 14 October 2019.
00:22 wildtrees left 00:26 chloekek left
rypervenche I feel like this may be a dumb question, but is it possible to have a range of numbers inside of a regex? 00:34
A range as in 1..33, for example. 00:35
00:38 pecastro left
thundergnat m: put "4..14".comb(/\d+/).map(+*).minmax 00:44
camelia 4 5 6 7 8 9 10 11 12 13 14
thundergnat rypervenche: ^^
01:00 titsuki joined
MasterDuke m: say say "1" ~~ / << <{2..30}> >> /; say "12" ~~ / << <{2..30}> >> /; say "33" ~~ / << <{2..30}> >> / 01:03
camelia Nil
True
「12」
Nil
MasterDuke m: say say "1" ~~ / << @(2..30) >> /; say "12" ~~ / << @(2..30) >> /; say "33" ~~ / << @(2..30) >> / 01:05
camelia Nil
True
「12」
Nil
rypervenche Oooh, interesting. 01:10
MasterDuke the second version is fantastically faster 01:15
rypervenche Ahhh, I finally found <{ }> in the docs. Very cool. Thanks. 01:16
MasterDuke np
01:17 SCHAPiE left
rypervenche Oh my, the speed difference is insane, haha. 01:17
01:30 SCHAPiE joined 01:33 sena_kun left 01:40 libertas left 01:49 sena_kun joined 02:10 aindilis` left 02:11 aindilis joined 02:24 marcusr left 02:27 marcusr joined 02:37 webstrand left 02:40 webstrand joined 03:03 Seirdy joined 03:05 hungryd49 joined 03:08 hungrydonkey left 03:09 kktt007 joined 03:10 kktt007 left, kktt007 joined 03:12 hungrydonkey joined 03:15 hungryd49 left 03:20 Kaiepi left 03:25 Kaiepi joined, hungrydonkey left, hungrydonkey joined 03:34 sena_kun left 03:46 aborazmeh left 03:49 sena_kun joined 03:58 epony left 03:59 epony joined 04:02 surrealpie left
Voldenet How to rewrite c-style iterators into raku? 04:09
I could use nativecall to just do: my $i = allocate_iterator(…); while($i.next) { $i.current }; $i.free; 04:10
but is there a way to rewrite this as: `for allocate_iterator(…) { say $_ }` instead? 04:11
my main problem is that I need free_iterator used, even if iteration is interrupted in the middle 04:15
04:26 nosqrt left
Voldenet m: for class { method iterator { class { method pull-one { 1 } }.new } }.new { .say; last if state $x++ > 4 } 05:06
camelia 1
1
1
1
1
1
Voldenet m: my $c = 0; { for class { method iterator { submethod DESTROY { $c++ }; class { method pull-one { 1 } }.new } }.new { last if state $x++ > 4 }}; use nqp; nqp::force_gc(); sleep .1; say $c 05:18
camelia 1
Voldenet m: my $c = 0; { for class { method iterator { submethod DESTROY { $c++ }; class { method pull-one { 1 } }.new } }.new { last if state $x++ > 4 }}; use nqp; nqp::force_gc(); say $c
camelia 0
Voldenet m: my $c = 0; { for class { method iterator { class { submethod DESTROY { $c++; }; method pull-one { 1 } }.new } }.new { last if state $x++ > 4 }}; use nqp; nqp::force_gc(); say $c 05:22
camelia 0
Voldenet m: my $c = 0; { for class { method iterator { class { submethod DESTROY { $c++; }; method pull-one { 1 } }.new } }.new { last if state $x++ > 4 }}; use nqp; nqp::force_gc(); sleep .1; say $c
camelia 1
05:26 linkable6 left 05:27 linkable6 joined
Voldenet DESTROY works, but I wouldn't mind having more deterministic way to do this, can I somehow attach LEAVE phaser in the iterator itself, so consumers of the iterator don't have to? 05:31
05:34 sena_kun left 05:47 sena_kun joined 06:47 bisectable6 left, releasable6 left, notable6 left, quotable6 left, nativecallable6 left, shareable6 left, statisfiable6 left, bloatable6 left, benchable6 left, coverable6 left, sourceable6 left, committable6 left, greppable6 left, squashable6 left, reportable6 left, linkable6 left 06:48 sourceable6 joined, coverable6 joined 06:49 benchable6 joined, notable6 joined, bisectable6 joined, releasable6 joined, squashable6 joined, committable6 joined, reportable6 joined, shareable6 joined, linkable6 joined, nativecallable6 joined, quotable6 joined, greppable6 joined 06:50 bloatable6 joined, statisfiable6 joined 07:04 rindolf joined, rindolf left 07:05 rindolf joined
nine Voldenet: I don't see a way around a LEAVE phaser. 07:20
Voldenet uh, as a `fix`, I went and made iterators non-disposable 07:22
my $it = allocate_iterator(…); for $it { … }; $it.free; 07:23
nine Why would DESTROY be so bad fo this?
Voldenet because I have no guarantee on how the underlying implementation treats allocation and freeing 07:26
For each allocator I've got some data collection with pointers to iterators, and freeing the iterator may try to remove itself from the context 07:27
07:33 sena_kun left
Voldenet in fact, I'll just do wasteful thing and attach all finalizers to the context - then it wouldn't matter if DESTROY is called later as long as they're called in order 07:35
nine TreyHarris: what mishegas? 07:42
sena_kun: .precomp directories are already only created when they are actually written to. I don't know why people dismiss .repo-id files without knowing what they are actually needed for. 07:45
07:47 sena_kun joined
nine TreyHarris: there's currently no way to centralize the storage of precomp files. Shouldn't be hard to implement such support though. I'd be happy to review PRs. 07:47
sena_kun: .precomp directories are already only created when they are actually written to. I don't know why people dismiss .repo-id files without knowing what they are actually needed for.
rindolf nine: what is "mishegas"? 07:57
nine rindolf: apparently some Jiddish word for "chaos". Had to look it up myself after TreyHarris used it 07:58
rindolf nine: ah 07:59
nine: en.wiktionary.org/wiki/%D7%9E%D7%A...7%92%D7%A2 means "crazy" in hebrew 08:00
nine Well at least I got the meaning about right ;) 08:02
08:04 grayrider left 08:27 NODE left, molaf joined 08:28 NODE joined
Geth doc: 9cbe10612a | (JJ Merelo)++ | 2 files
Adds note on error for synthetic codepoints #2632
08:32
doc: 4f2a7a09fc | (JJ Merelo)++ | doc/Language/quoting.pod6
Adds ⸨/⸩ as quoting construct in an example refs #2632
linkable6 DOC#2632 [open]: github.com/Raku/doc/issues/2632 [Hacktoberfest][RFE][big][docs][good first issue][help wanted][new][⚠ Top Priority ⚠] Checklist for 6.d
Link: docs.raku.org/language/quoting
08:52 kensanata joined 08:55 molaf left 09:01 NODE left, Benett left 09:02 Benett joined
Geth doc: e472ef8d38 | (JJ Merelo)++ | doc/Type/Array.pod6
Adds Array.flat in both capacities refs #2632
09:02
linkable6 Link: docs.raku.org/type/Array
DOC#2632 [open]: github.com/Raku/doc/issues/2632 [Hacktoberfest][RFE][big][docs][good first issue][help wanted][new][⚠ Top Priority ⚠] Checklist for 6.d
sena_kun nine: well, my messages about .precomp were full of doubt, because I don't know how does it work. If it works the good way already, it is great. :) 09:03
09:17 NODE joined 09:18 pecastro joined 09:25 NODE left 09:26 domidumont joined, NODE joined 09:32 domidumont left, domidumont joined 09:34 sena_kun left 09:37 cpan-raku left, cpan-raku joined, cpan-raku left, cpan-raku joined 09:39 NODE left, wamba joined 09:41 NODE joined 09:49 sena_kun joined 10:05 wamba left, wamba joined 10:06 NODE left 10:09 NODE joined 10:19 samebchase left, samebchase- left 10:32 molaf joined 10:42 mithaldu_ left, mithaldu_ joined 10:43 tejr left
Geth whateverable: MasterDuke17++ created pull request #376:
Wait to reply if message is from Geth
10:45
10:48 tejr joined 11:00 wamba left 11:11 mojca left 11:13 mojca joined 11:14 wamba joined 11:15 kensanata left, wamba left 11:20 kensanata joined 11:23 tejr left 11:25 gabiruh_ left
Geth whateverable: a55e0787c9 | (Daniel Green)++ | xbin/Linkable.p6
Wait to reply if message is from Geth

Otherwise the reply usually ends up being in the middle of the commit message.
11:26
whateverable: 75e84f7a52 | (Elizabeth Mattijsen)++ (committed using GitHub Web editor) | xbin/Linkable.p6
Merge pull request #376 from MasterDuke17/delay_if_from_geth

Wait to reply if message is from Geth
11:26 __jrjsmrtn__ left
lizmat Voldenet: maybe modules.raku.org/dist/FINALIZER could be useful ? 11:28
11:31 __jrjsmrtn__ joined 11:33 libertas joined 11:34 sena_kun left
Voldenet lizmat: most definitely, but I'll introduce a role: `role finalizable { has &!f = FINALIZER.register: { self.finalize(); &!f() }; method finalize { … } };` 11:46
lizmat if you think that could be added to the FINALIZER module, I'll gladly accept a PR :-) 11:47
11:48 sena_kun joined 11:57 NODE left 11:58 NODE joined 12:01 chloekek joined 12:07 m_athias joined 12:13 abraxxa joined, jjatria joined 12:14 abraxxa left 12:15 jjatria left, jjatria joined 12:19 veesh left
jjatria Is there a way to get the Raku REPL to behave like with this? ipython.org/ipython-doc/3/config/e...eload.html 12:26
Basically: if you modify a loaded module, it gets reloaded
Geth doc: 1540a4de9c | (Stoned Elipot)++ | doc/Language/operators.pod6
Restore previous index entries for (cont), ∋ and ∌
12:27
linkable6 Link: docs.raku.org/language/operators
12:31 veesh joined
lizmat jjatria: that would be tricky, and the REPL is already pretty tricky 12:31
jjatria lizmat: I see. Thanks. It would be a neat feature to have, though :) 12:36
sena_kun jjatria: if you are willing to volunteer, I think things can be improved. :) 12:37
jjatria I think I'm already biting more than I can chew, but I wouldn't mind learning more about how the REPL is put together 12:39
Even a non-automatic solution would be worth having 👏
lizmat jjatria: github.com/rakudo/rakudo/blob/mast...c/REPL.pm6 12:40
jjatria Ta~ 12:41
12:47 titsuki left 13:05 lucasb joined 13:13 gabiruh joined 13:20 xelxebar left, xelxebar joined 13:24 titsuki joined 13:26 gabiruh left, gabiruh joined
cpan-raku New module released to CPAN! Object::Trampoline (0.0.8) by 03ELIZABETH 13:27
13:33 kktt007 left 13:35 sena_kun left 13:36 _jrjsmrtn joined 13:37 __jrjsmrtn__ left 13:40 satori__ joined 13:42 reach_satori_ left
cpan-raku New module released to CPAN! Object::Delayed (0.0.8) by 03ELIZABETH 13:43
New module released to CPAN! Object::Delayed (0.0.7) by 03ELIZABETH
13:44 kensanata left, rindolf left 13:47 satori__ left 13:49 sena_kun joined 13:53 rindolf joined 14:03 natrys joined
Voldenet m: my @a = (^100).pick(4); for @a -> $e { my $WHICH := $e.WHICH; @a.splice($_,1) with @a.first( $WHICH eq *.WHICH, :k ); }; say @a 14:10
camelia [64 59]
Voldenet huh~
m: my @a = (^100).pick(4); for @a.Array -> $e { my $WHICH := $e.WHICH; @a.splice($_,1) with @a.first( $WHICH eq *.WHICH, :k ); }; say @a 14:11
camelia []
14:26 bdju left 14:46 aborazmeh joined, aborazmeh left, aborazmeh joined 14:47 bdju joined 14:54 wamba joined 15:01 reach_satori joined 15:02 satori__ joined 15:03 satori__ left 15:19 Seirdy left 15:31 hungrydonkey left 15:33 zakharyas joined 15:34 zakharyas left 15:35 sena_kun left 15:49 zakharyas joined 15:52 sena_kun joined 15:53 Xliff joined 16:00 paul6 joined 16:03 ZZZzz joined 16:06 molaf left, molaf joined 16:08 paul6 left 16:09 paul6 joined 16:12 lichtkind joined, molaf left 16:18 wamba left, wamba joined 16:21 aborazmeh left 16:24 hungrydonkey joined 16:25 gabiruh left 16:27 gabiruh joined 16:37 paul6 left 16:38 Kaiepi left, melezhik left 16:44 Kaiepi joined
uzl[m] What are the details about an exception of type `X::Parameter::RW`? I don't find it in the type exceptions page. 16:48
MasterDuke github.com/rakudo/rakudo/blob/mast...1281-L1287 16:49
uzl[m] MasterDuke: Ah, always go to the source. Well, most of the time ;-). Thanks! 16:54
MasterDuke np
Geth doc: 5b8180a2f4 | Coke++ | doc/Type/Cool.pod6
fix typo
16:55
doc: 8ce8572239 | Coke++ | doc/Type/Cool.pod6
statements require closing ;
linkable6 Link: docs.raku.org/type/Cool
17:07 domidumont left 17:08 domidumont joined
uzl[m] I'm playing around with a Raku implementation of a BST (from my class book) and it seems I'm failing at adapting it to Raku. Link: pastebin.run/XN2r2pt2Pt 17:12
17:34 sena_kun left
moritz_ that looks like a less-than-awesome error message 17:38
uzl[m]: you likely want `BinaryNode $node is raw`, not `is rw` 17:39
`is rw` *always* wants to bind a writable container, but $node.left and $node.right is not writable 17:40
but then the case where $node isn't defined doesn't work anymore, probably 17:42
if you make $.left and $.write both 'is rw', then 'is rw' also works in !rec-insert 17:43
17:44 wamba left
uzl[m] moritz_: You mean make the $.left and $.right attributes writable and then keep the same signature (i.e., `is rw ` instead of `is raw`) in !rec-insert? 17:47
17:49 sena_kun joined
moritz_ uzl[m]: yes 17:49
uzl[m] It did the job! 17:50
Any idea about `X::TypeCheck::Assignment` when a node's `item` attribute is typed? It's thrown when the new node is created and the `item` attribute is assigned to. 17:52
18:03 hungrydonkey left 18:14 titsuki left
xinming m: my @a = %(:a, :b), %(:c, :d); for @a -> (:$a) { $a.perl.say; } 18:37
camelia Unexpected named argument 'b' passed in sub-signature
in block <unit> at <tmp> line 1
xinming m: my @a = %(:a, :b), %(:c(:xx(1), :yy(2)), :d); for @a -> (:$a, :c(:$xxx), *%) { [$a, $xxx].perl.say; } 18:40
camelia [Bool::True, Mu]
[Mu, (:xx(1), :yy(2))]
xinming m: my @a = %(:a, :b), %(:c(:xx(1), :yy(2)), :d); for @a -> (:$a, :c(:$xx), *%) { [$a, $xx].perl.say; }
camelia [Bool::True, Mu]
[Mu, (:xx(1), :yy(2))]
xinming In this case, How can we unpack the nested xx and yy? 18:41
Or, is it even possible?
18:50 ZZZzz left
xinming m: (3 / 2^2).^name.say 19:06
camelia Junction
19:06 a3r0_ left
xinming Also, Why is this a junction, instead of a Number? 19:06
sena_kun 2 ^ 2 forms a junction, ^
xinming Ah, got it
sena_kun what do you want, square?
xinming I think I should use **
yea
sena_kun **
yeah
m: (3 / 2 ** 2).^name.say
camelia Rat
sena_kun m: say 3 / 2 ** 2 19:07
camelia 0.75
xinming BTW, do you know the answer to my previous question?
m: my @a = %(:a, :b), %(:c(:xx(1), :yy(2)), :d); for @a -> (:$a, :c(:$xx), *%) { [$a, $xx].perl.say; }
camelia [Bool::True, Mu]
[Mu, (:xx(1), :yy(2))]
sena_kun sorry, nope. :S I didn't even look closer, it sounds like over-engineering to me
xinming Unpack the nested value
Ok. :-) 19:08
sena_kun I mean, is it like life or death to do _everything_ in a signature?
just add a temp var and do the thing, it'd be more readable and easy to grasp
if you're golfing, that's another question, of course. :)
xinming signature can unpack single level, So, I thought we may be able to nested unpacking
sena_kun prefers to avoid any situations where something is super specific, it smells 19:09
xinming Ok, understood, that's kind of over engineering. 19:10
sena_kun just today I wrote a piece with something like "If it is X, and then if we have Y, and then if in this Y we have Z, no, stop, this is horrible and won't work in a generic way, let's do something better instead, remove the lines, tea refill, redo". 19:11
19:13 a3r0 joined 19:20 jmerelo joined
jmerelo Hi 19:20
Can someone tell me if they can reproduce this error?
Simply try zef install IO::Capture::Simple
with raku 2020.01 19:21
sena_kun tries
hmm, All candidates are currently installed, let's try again...
jmerelo I've had that kind of failure with many modules, apparently unrelated
sena_kun jmerelo: installs just ok 19:22
stoned75 also ok for me
jmerelo This one too github.com/jonathanstowe/Raku-Sys-...g/issues/4
Altreus lizmat: thanks for fixing that so fast! You'll be pleased to know it seems to have worked :) ! 19:23
stoned75 btw jmerelo, are your slides from fosdem available somewhere ? I can't seem to be able to find them :)
lizmat Altreus: good to hear!
jmerelo I have errors of this kind, not finding the module it's installed when testing
I use rakudobrew, but I can't see how that could be related 19:24
I have to download the module using git, and then try
lizmat jmerelo: Don't understand identity: IO::Capture:Simple
oops :-) single :
jmerelo stoned75: IARA jj.github.io/hablando-p6/fosdem20.html
stoned75 jmerelo: many thanks
jmerelo stoned75: sure, enjoy. Suggestions and criticism always welcome. The video is also available on the FOSDEM page 19:25
funny thing, it does not always happen, only in some modules, for instance in Sys::Lastlog and in some others. 19:26
lizmat jmerelo: something like this: gist.github.com/lizmat/5d7c0d14c56...dec1ff0f14
?
jmerelo lizmat: right! That error!
lizmat I already had it installed, started producing that error after an uninstall
jmerelo It shouldn't, right? 19:27
lizmat feels like a missing 'use lib' in a test file or so
jmerelo lizmat: but zef takes care of that usually
lizmat: it precomps anything in the lib module 19:28
in most cases, if you download it and test it, it works. I can try in that case, but I'm pretty sure nothing will happen.
I've forked and downloaded and it tests without a problem 19:31
lizmat yup, I see that too 19:32
jmerelo lizmat: so it must be somehow related to how downloaded stuff is precompiled by zef. And it's a change brought by the latest raku
lizmat the only thing that looks slightly suspect to me, is the "unit module Test::IO::Capture;" *after* loading two modules
jmerelo I'm seeing the same problem now with HTTP::Status 19:33
19:34 sena_kun left
lizmat jmerelo: confirmed here as well 19:35
seems like we haz another blocker :-(
nine FWIW it's working just fine here 19:39
lizmat have you tried uninstalling the module and then installing it again ?
nine yes 19:40
lizmat weird
nine What does zef --debug say about it?
stoned75 uninstall and install again also works for me
lizmat nine: gist.github.com/lizmat/61fa8f4b8af...82f584a7c8 19:41
I'm slightly surprised by the "# SKIP: No need to build HTTP::Status"
nine No, that's to be expected
lizmat do you have a moar with the latest $?FILE fixes ? 19:43
rakudo rather :-)
19:43 raven__ joined
nine yes 19:43
2020.01-215-gb90bebae4
lizmat too
jmerelo: are you on MacOS ? 19:44
19:44 TimToady joined 19:46 darkstardev13 left, domidumont left
jmerelo lizmat: no, ubuntu 19:49
lizmat ok, so the OS is not the reason
nine lizmat: is your zef up to date? 19:50
lizmat ah... good question
19:50 sena_kun joined
lizmat how do you update zef ? 19:51
jmerelo nine: updating now
lizmat: zef upgrade zef
nine: Sys::Lastlog installs fine with zef 0.8.3. Thanks! 19:52
lizmat no change for me for HTTP::Status after upgrade 19:53
19:53 jmerelo left
lizmat hmmm... after installing HTTP::Status with --force-test 19:55
installing again with zef install HTTP::Status --force-install works like a charm 19:56
so it still feels like testing may work only because it uses an older HTTP::Status somewhere
20:10 tejr joined
Geth doc/supply-first: ffccbfdbfb | (Stoned Elipot)++ | doc/Type/Supply.pod6
Add Supply.first
20:22
doc: stoned++ created pull request #3221:
Add Supply.first
20:23
guifa jmerelo: ’zef upgrade zef’ it feels so…. deeply philosophical
20:23 molaf joined
TreyHarris Sorry for confusing folks earlier with a Yiddish word. But nine wrote, '.precomp directories are already only created when they are actually written to. I don't know why people dismiss .repo-id files without knowing what they are actually needed for." Okay, I'll bite--what is the importance of a *.repo-id file in an otherwise plain-file-free .precomp, and what could go wrong if you just 'rm -rf 20:31
.precomp'?
Unless/untill that centralization of .precomp patch is written, I'm going to have to add .precomp to .gitignore in 38 git repos I have cloned that have no Raku code at all if I can't remove any of them safely 20:34
20:34 wamba joined 20:39 wamba left, wamba joined
MasterDuke TreyHarris: well, you could also do `git config --global core.excludesfile <path to something like ~/.global_git_ignore> ` 20:41
TreyHarris MasterDuke: true enough, thanks. Can you tell me the significance of a 4-entry .precomp tree with only one plain file, a *.repo-id file? I can't find it in the docs--it isn't discussed in the .repo-id method 20:44
20:44 TimToady left 20:45 TimToady joined
MasterDuke i can't. i know almost nothing about the pre-comp/compunits/zef/etc 20:45
TreyHarris who does know about them?
this is probably more of a #raku-dev question 20:46
MasterDuke nine, ugexe, tony-o_ maybe
20:52 wamba left 21:00 MasterDuke left 21:03 daxim left 21:06 molaf left 21:07 wamba joined 21:08 daxim joined
nine TreyHarris: whenever the contents of any of the repositories in the $*REPO chain changes (i.e. installing or uninstalling a module or changing source code in a -I or $PERL6LIB directory), this could mean that a precompiled file needs an update. 21:10
TreyHarris: to check whether we really need to compile, we need to resolve the dependencies again, i.e. get from Foo::Bar to the actually resolved full name Foo::Bar:auth<me>:api<1>:ver<0.1.2>. 21:11
TreyHarris: resolving such dependencies involves EVALing the dependency specification serialized into precomp files to get to an actual object. EVAL is slow because our compiler is so darn slow. 21:12
Since EVAL is so slow (and resolving a DependencySpecification is not exactly free either) we really only want to do that if a repository actually changed. 21:13
21:14 MasterDuke joined
nine So when we do actually resolve dependencies, we also save the full contents of all active repositories in the form of a SHA hash into a .repo-id file accompanying the precomp file. 21:14
I.e. precompilation itself saves (purely made up numbers) about 80 % of the time and the .repo-id files save some 19 % and we only actually have to pay 1 % when nothing happened in the repositories. 21:16
So yes, it's perfectly safe to delete those .precomp dirs. Deleting .precomp (not "precomp" without the period) is always safe, you will just pay for it by waiting longer. Or not in the case of the errantly created ones. 21:18
TreyHarris If I typed precomp without the period at some point, that was a typo 21:19
nine And yes, the repository chain gets also changed by just adding any directory, so that '.' in PERL6LIB gave rakudo new exciting repositories to check all the time. Probably also slowed down your programs quite a lot.
sena_kun: ^^^ 21:20
TreyHarris so a new .precomp directory gets created in whatever dir I happen to be in when I invoke the REPL or a Raku program? 21:22
nine TreyHarris: only if that dir is in your repository chain (i.e. by -I. or PERL6LIB=.) 21:23
TreyHarris sorry, I should have written "got created"--meaning before I removed . from PERL6LIB 21:24
nine yes
Now we know you ran Raku programs from your ~/.ssh ;) 21:25
Altreus This method never returns and I can't figure out why. github.com/shuppet/p6-api-discord/...l.pm6#L189
Here's a gist gist.github.com/Altreus/7ac355c32b...3426826cc3
you can see the hash dumped from here github.com/shuppet/p6-api-discord/...d.pm6#L193
I realised I omitted the line that proves that `ButReal.new` does return 21:26
nine Btw. in case other precomp/module loading related questions comp up and I'm not around: while I suck at writing tests, I really try to document the full reasoning behind whatever I do in my commit messages. So reading the git history of the stuff I wrote will tell you the whole story.
TreyHarris nine: I'm pretty sure I didn't (in fact, I know I didn't, my histfile hasn't been truncated yet since I built this host, and I've never cd'd into my .ssh) so I suspect it's Emacs--if I happened to be in a buffer visiting, say, authorized_keys when I run the REPL, its CWD will be set to that file's directory 21:27
Which is probably why they're strewn all over the place but particularly in Git repos of all kinds 21:28
Altreus I've updated the file on github and the gist
TreyHarris Altreus: I haven't traced you code carefully, but when you `say Dump $r`, I believe you'll block on a Promise 21:31
if you remove the say Dump, I'll bet it returns
It's not entirely different than the issue you noted last night with the REPL evaluating a delayed object 21:32
21:33 sena_kun left
Altreus because there's a promise on the object? 21:34
TreyHarris This may or may not be sufficient to fix it: github.com/tony-o/perl6-data-dump#skip-methods
Altreus yes you're right, removing the dump did let it continue 21:35
I'll try this skip-methods
TreyHarris I haven't played with Data::Dump, but it looks like you can't simply give a list of attributes to skip in the dump
So you mind want to make a custom .gist 21:36
s/mind/may/
21:36 zakharyas left
Altreus looks like it wasn't a method it was blocking on 21:36
well, at least I've found the answer
I wonder why it was awaiting a promise ... why would it await something I didn't ask it to await? 21:37
Hm maybe it's trying to dump the result of it?
TreyHarris a custom gist can answer that, and if you're handy with your editor you can probably use the text of the class itself to pre-populate the gist output, and then you can use exclusion by division to figure out which attribute(s) are causing the issue
if you write the gist method so that each attribute is on its own line so you can comment them out as needed, it will go faster 21:38
(own source line, not own gist output line)
Altreus Yes, I will figure out what blocks it and raise an issue if there seems to be no built-in way to skip it 21:39
21:43 natrys left
TreyHarris In general, doing deep inspection (evaluation, comparison or printing) of objects containing concurrency objects as attributes without filtering them out is likely to cause issues 21:47
Altreus Concurrency support is the reason I'm using raku ^_^
21:47 sena_kun joined
TreyHarris Well, I can't think of any language that lets you safely introspect channels or supplies or pipes or whatever. It's not really a reasonable thing for a language or runtime to be able to do. 21:52
I mean, for a gross example, if it's a queue-like channel, you'd need the introspection to pull out a value to dump it and then stuff it back into the channel for the real code to get at it 21:53
21:57 natrys joined
Geth doc: 242f2f0d6f | (Trey Harris)++ | doc/Type/Array.pod6
Minor wording fix to Array.flat
22:01
linkable6 Link: docs.raku.org/type/Array
22:02 rindolf left
TreyHarris I take that back; Haskell and maybe Erlang let you do this because all state is rewindable, but you could potentially take huge memory hits for just using such an unwinding even once since now the state and state changes of potentially the entire program has to be kept in memory for long periods 22:04
22:05 reach_satori left 22:06 reach_satori joined
ingy Does raku find .pm modules before .pm6? 22:09
I have a perl module and a raku module in the same dir with the same base name 22:10
MasterDuke don't think so
22:10 lucasb left
ingy one .pm (for perl) and one .pm6 22:10
and raku is complaining that it's not perl6 22:11
ie it's finding the .pm file 22:12
when I move the .pm file the raku code works
MasterDuke github.com/rakudo/rakudo/blob/mast...em.pm6#L11 and github.com/rakudo/rakudo/blob/mast...m.pm6#L167 would lead me to believe it searches in the array order
but nine would know for sure
22:13 Kaiepi left, Kaiepi joined
ingy I haven't updated perl6 in some time 22:14
TreyHarris It's used in an any-junction, so I don't think you can guarantee order
that's probably wrong
ingy in this case that's crazy
my @extensions = <rakumod pm6 pm>; # seesm like a good order 22:15
TreyHarris Yep, but the any() comparison needs to be changed to a well-ordered map
ingy +1 22:16
TreyHarris unfortunately, if you wmant to be current-compatible you'll have to put the Raku and Perl modules into separate directories :-(
There's already an issue open on this: github.com/rakudo/rakudo/issues/1846 22:18
Unfortunately, no action in 2.5 years on it 22:19
ingy I just did that workaround before you said that :\
TreyHarris er, 19 months, I can't count 22:20
ingy it works...
seems like an easy fix for raku
TreyHarris I think folks are reticent to touch any code that refers to both Raku names and Perl 6 names 22:21
This should be a no-brainer though
22:25 libertas left 22:27 libertas joined 22:29 molaf joined
jjatria I got an unexpected "Cannot find method 'find_method_qualified' on object of type Perl6::Metamodel::SubsetHOW" error. It's the first time I see something like this. What sort of thing can throw this? 22:31
22:34 natrys left 22:36 wamba left
MasterDuke that's a kind of low-level error. how did you trigger it? 22:42
jjatria Hm, it looks like it was caused by me trying to `+|` an undefined value
When I gave it a default the error went away 22:43
TreyHarris Huh, my understanding of NQP clearly sucks--AFAICT, src/vm/moar/spesh-plugins.nqp:39 should be the only place that particular error could be thrown 22:48
Other callers of find_method_qualified aren't calling them on a HOW at all
MasterDuke jjatria: do you get the same error if you set MVM_SPESH_DISABLE=1 before running it? 22:52
lizmat TreyHarris: pretty sure that any() works the eigenstates of the Junction in order 23:03
in the current implementation at least
TreyHarris lizmat: then I have no explanation for ingy's reported behavior 23:06
Oh, wait, I haven't blamed that code, was the pre-.rakumod ordering possibly backwards? 23:07
that old GitHub issue suggests so
lizmat yeah, I think ingy needs to get of his perl6 and get a raku :-) 23:09
just put a "Foo.rakumod" with "dd $?FILE" in a dir, and copy that file to the .pm and .pm6 extensions 23:10
then try to use it
it will select the rakumod one
TreyHarris But most folks in the wild are probably still on rakudo star, which doesn't know about .rakumod 23:11
23:11 lichtkind left
jjatria MasterDuke: I'll give that a shot, but now I need to go to bed. I'll report on that later 23:11
lizmat TreyHarris: possibly 23:12
in any case, I think I found a bug...
apparently, CURFS does *not* check if the file in question still exists, if there is a precomp for it
will write up a test-case tomorrow
MasterDuke jjatria: sure 23:13
lizmat it's been late, and cycling today has been... special...
23:23 chloekek left 23:34 sena_kun left 23:48 aborazmeh joined, aborazmeh left, aborazmeh joined, sena_kun joined 23:53 titsuki joined 23:58 pecastro left