🦋 Welcome to the MAIN() IRC channel of the Raku Programming Language (raku.org). Log available at irclogs.raku.org/raku/live.html . If you're a beginner, you can also check out the #raku-beginner channel!
Set by lizmat on 6 September 2022.
00:00 reportable6 left 00:02 reportable6 joined 00:16 jgaz left
rf Is there a phaser or something for a class to run when GC collects an instance? 00:16
lizmat nope
that's VM land, and VM's are free to GC whenever they feel like it 00:17
[Coke] GC should be mostly invisible.
tellable6 2023-02-18T21:30:20Z #raku <tbrowder> [Coke] see my ramblings on #raku-doc ref "Opener graphemes" and added proposal at doc issue #3917
[Coke] ... lizmat's phrasing is better. :)
lizmat however, having said that, you *can* specify a DESTROY method that *will* get called when an object is GCd
however, there is no guarantee that an object will ever get GCd, for whatever reason, so YMMV 00:18
rf ^
lizmat notices that the documentation doesn't mention that there is no guarantee that a DESTROY will run at all ever 00:19
rf Cool. This will let me take my simdjson port to the moon.
Thanks liz & will 00:20
lizmat rf: FWIW, you're probably better off with a LEAVE or END phaser
the END phaser *is* guaranteed to run
rf Ok. I'm gonna try both and see which one results in less of a memory leak lol 00:21
00:28 deoac left
Geth doc/main: 75815167fa | (Will Coleda)++ | META6.json
no more build, no more depends
00:42 Geth left, Geth joined
Geth doc/main: b1b5d523fe | (Will Coleda)++ | Build.pm6
Avoid installing this repo.

Other repositories that use it expect a clone to exist, they do not expect it to be installed, and our old install process was broken for years.
[Coke] How to make sure github.com/raku/doc isn't listed in the ecosystem? 00:55
Geth ecosystem/doc: 1d02e07044 | (Will Coleda)++ | META.list
Doc isn't meant to be installed
ecosystem: coke++ created pull request #615:
Doc isn't meant to be installed
[Coke] there's one way.
[Coke] clones REA.... so slow. 00:59
01:04 xinming left
[Coke] opens github.com/Raku/REA/issues/10 and tags lizmat. 01:04
Where is the official copy of Artistic-2.0?
if I wanted to verify that someone hadn't changed a local copy?
01:06 xinming joined
[Coke] en.wikipedia.org/wiki/Artistic_License is missing some Perl 6 -> Raku changes. 01:06
(Also refs to parrot can probably be dropped)
Ugh. looks like the official version is here: www.perlfoundation.org/artistic-license-20.html - would love a raw version in an official TPF github project. 01:07
especially since the html version has at least one embedded weird codepoint. 01:08
ah, it's a ZWS 01:10
.ask codesections - if you compare the LICENSE In raku/docs vs. rakudo/rakudo, you'll see they are not identical. (differing only by whitespace, presumably because it was failing raku/doc's overly strict "no trailing whitespace" test) - how to proceed? 01:11
tellable6 [Coke], I'll pass your message to codesections
Geth doc/main: 063ae29db1 | (Will Coleda)++ | .gitignore
These ignores should be per-user, not in the repo itself
[Coke] .ask ugexe - I made the Build.pm6 in raku/doc die if someone tries to install to prevent it. Is that "OK"? Is there a better way to declare in META6? 01:17
tellable6 [Coke], I'll pass your message to ugexe
ugexe my first thought is lets use .rakumod for new files :P 01:18
[Coke] it's not a new file, it's years old. :) 01:19
ugexe ah
[Coke] it used to try to copy things from doc into resources and did so badly, so the install hasn't worked in ages. 01:20
ugexe the other question i have is: do you still need the META6.json file then to (I presume) install dependencies?
[Coke] Yes, still have test deps.
ugexe Yeah thats probably the best you can do. I dunno if the message is strong enough or not... zef is going to suggest using --force-build when the build step fails and I'm guessing users will then just try that 01:21
[Coke] "you can force build it but it will still not install anything." 01:22
I could do that I suppose
~gist.github.com/coke/3c9cda4e6bf87...0910a1ee07 01:23
"This repository is not intended to be installed." is the current exception
ugexe hmm i didn't expect it to show up as a SORRY 01:24
i dunno i guess that seems pretty clear to me
gist.github.com/ugexe/b04f71e97fad...ca73b42860 -- this + deleting the META6.json would be more ideal 01:26
I need to revisit my grant proposal ideas one of these days :/ 01:27
02:06 linkable6 left, evalable6 left, linkable6 joined 02:07 evalable6 joined 02:20 Manifest0 left 02:48 ispyhumanfly left 02:59 p6steve left 03:02 p6steve joined 03:06 cfa left 03:25 razetime joined 03:54 jpn joined 03:58 jpn left 03:59 razetime left 04:04 kjp left 04:05 saint- left 04:07 kjp joined 04:43 razetime joined 04:50 rf left 05:50 shareable6 left, bisectable6 left, bloatable6 left, reportable6 left, committable6 left, notable6 left, unicodable6 left, releasable6 left, coverable6 left, statisfiable6 left, squashable6 left, tellable6 left, nativecallable6 left, sourceable6 left, greppable6 left, evalable6 left, linkable6 left, quotable6 left, benchable6 left 05:51 statisfiable6 joined, reportable6 joined, linkable6 joined, shareable6 joined, evalable6 joined 05:52 tellable6 joined, bisectable6 joined, sourceable6 joined, coverable6 joined, committable6 joined, greppable6 joined 05:53 releasable6 joined, bloatable6 joined, quotable6 joined, nativecallable6 joined, squashable6 joined, notable6 joined, unicodable6 joined, benchable6 joined 06:00 reportable6 left 06:01 reportable6 joined 06:42 nort joined 06:45 derpydoo left 07:00 samcv left, jpn joined 07:05 jpn left 08:05 tellable6 left, evalable6 left, unicodable6 left, sourceable6 left, coverable6 left, committable6 left, releasable6 left, notable6 left, squashable6 left, benchable6 left, shareable6 left, nativecallable6 left, statisfiable6 left, bloatable6 left, reportable6 left, quotable6 left, bisectable6 left, linkable6 left, greppable6 left 08:06 quotable6 joined, statisfiable6 joined, committable6 joined, releasable6 joined, coverable6 joined, evalable6 joined, benchable6 joined, squashable6 joined, unicodable6 joined 08:07 notable6 joined, tellable6 joined, greppable6 joined 08:08 bisectable6 joined, bloatable6 joined, shareable6 joined, sourceable6 joined, nativecallable6 joined, linkable6 joined, reportable6 joined, jpn joined 08:15 jpn left 08:17 razetime left 08:30 razetime joined 08:39 QhpAptyj9hj0RQwM joined 08:42 jpn joined 08:51 jpn left 09:05 bdju left 09:07 bdju joined 09:21 jpn joined 09:47 freeside left 10:01 sena_kun joined 10:03 razetime1 joined, razetime left 10:07 razetime1 left 10:08 razetime joined 10:28 Manifest0 joined 10:32 abraxxa-home joined, CaptainQ joined 10:33 CaptainQ left, abraxxa-home left 10:35 abraxxa-home joined 11:04 razetime left 11:12 hythm joined 11:14 frost joined 11:20 abraxxa-home left
hythm may be a new field need to be added in dist's META file, "uninstallable": "reason" or whatever the name would be to declare that the dist should not be installed. and that field should be honored by package mangers and not attempt to install the dist. also a recommendation manager should not recommend that version of the dist or may be add to the 11:20
bottom of the recommended list
11:22 Sgeo left
hythm this works for new dists, but not sure how this would be done for existing dists since it will require updating version anyway to pick up the changes in the ecosystem 11:24
lizmat If something is in the REA, the exposed META files aren't an exact duplicate of the one in the distro anyway, so things can be done there 11:26
hythm Ok, then I think a name should be chosen and agreed on for the key in META to indicate uninstallable dist 11:37
ugexe I’m not convinced this is a good idea
A field hard coupled to a specific CURI for the sole purpose of marking distributions that shouldn’t be in an ecosystem / discoverable at all as not installable sounds weird 11:41
Just don’t put it in the ecosystem indexes to begin with
lizmat well, there's a lot of dists in the REA that are probably uninstallable / have known issues 11:45
I'd rather not remove them for the historical record
but somehow an indication that it may not be what you want, could be a nice thing to have 11:46
ugexe If they aren’t installable they have no historical value being indexed 11:47
and none of this stuff would work for other CURs
lizmat not being installable ≠ no potentially valuable code inside 11:48
ugexe It doesn’t belong in an index of an ecosystem
it’s on GitHub. The code and value still exists
But it’s totally a code smell that a field is hard coupled to a specific type of CUR 11:53
because that field a) only has meaning to CURI and b) uninstallable based on what (rakudo version? OS? Etc) 11:54
lizmat fair enough... that's why I removed the meta of p6doc just now from the REA 11:56
ugexe đź‘Ť 12:00
12:00 reportable6 left 12:02 reportable6 joined 12:10 jpn left
tbrowder lizmat: hi, i just filed issue #800 for nqp. discovered it when working on a doc table to replace "Opener graphemes" 12:19
12:32 samcv joined
tbrowder samcv: hi 12:34
.ask samcv do we know you by another name? 12:36
tellable6 tbrowder, I'll pass your message to samcv
lizmat tbrowder: that'd be Samantha McVey :-) 12:37
tbrowder every time i see yr name i think of "green eggs and ham, sam i am"
12:39 QhpAptyj9hj0RQwM left
tbrowder lizmat: that's what i thought, but yr comment on issue and seeing samcv join seemed too non-random 12:39
i guess it was a git notification
12:59 QhpAptyj9hj0RQwM joined 13:59 evalable6 left, linkable6 left 14:00 linkable6 joined 14:01 evalable6 joined 14:28 derpydoo joined 14:29 derpydoo joined 14:51 ab5tract left
mst oh orange site, how foolish are ye 14:56
14:57 freeside joined
mst I mention raku with a caveat I've probably got my example slightly wrong, somebody who knows raku better replies with a very polite "yep, you did, I reckon this is what you meant:" followed by much better examples than mine were 14:57
I reply saying "your corrections and elaborations are much appreciated"
somebody immediately downvotes the thank you comment
15:00 jpn joined 15:05 jpn left 15:20 frost left 15:28 jpn joined
tbrowder mst: where did that happen? 15:28
there is a class of ppl who seem to downvote anything they see just to be ornery 15:29
mst tbrowder: news.ycombinator.com/item?id=34846306 15:30
I'm guessing it was one of (a) random ornery (b) somebody convinced that saying thank you is a low quality post (c) one of my fan club somehow interpreting my gratitude to be the opposite 15:31
never mind, the post now has a comment from not-me that covers what I was attempting to except properly
15:36 jpn left
tbrowder i couldn't see the downvote (or any vote), but i have visited there before and think it's something like the talks in the public squares in london: not my cup of tea 15:39
anyhow, this place is much friendlier
15:40 jpn joined
tbrowder ref master branch for any checked out raku/rakudo repo: for those like raku/doc, how does one change from master to main painlessly? raku/doc is my immediate concern 15:48
perryprog tbrowder you need I think 100 (somewhere around there) to be able to downvote. Downvoted comments appear in a less opaque font. 15:51
15:52 razetime joined
perryprog That is a very orange site thing to downvote for though 15:52
lucs How to rename an exported sub when using a module? 15:53
(Oops, "Raw" is mispaste.)
Details: gist.github.com/lucs/9beec4122981b...50aa170754 15:54
mst: As someone put it after seeing someone be a similar kind of victim on Reddit: 15:56
"Unfortunately there are a few noisy people there who confuse the vote down button with an “I am very stupid” button, which they eagerly click"
mst tbrowder: you can generally only see the vote counts for your own comments 16:00
tbrowder thnx
mst upvotes are designed to encourage the author rather than form a popularity contest 16:11
it's breaking down somewhat at the current scale of the site but it actually worked rather well for some years 16:12
lucs I usually upvote when I feel the post or comment deserves to be read.
I very rarely downvote.
perryprog Eh, I think it still works pretty well. It's only like 1/10 posts that I see a post that was downvoted for no good reason. 16:18
I see a comment*
16:20 yjh left
Geth doc/main: 6a7bfe63d8 | cfa++ (committed using GitHub Web editor) | doc/Language/5to6-perlfunc.pod6
Fix output for the `wantarray` example

Also update to use the OUTPUT: «...» convention for consistency.
mst perryprog: 'still works pretty well' and 'breaking down somewhat' are pretty much the same observation, tbh 16:28
perryprog ummm
you got me there 16:29
16:32 jpn left
Geth doc/main: bbf9c01f77 | cfa++ (committed using GitHub Web editor) | doc/Language/5to6-perlfunc.pod6
Amend output for `wantarray` sink example
16:38 cfa joined
cfa o/ 16:40
16:42 QhpAptyj9hj0RQwM left 17:00 jpn joined 17:22 razetime left 17:26 jpn left 17:28 jpn joined 17:49 jpn left 17:51 cfa left 18:00 reportable6 left 18:01 reportable6 joined 18:09 hythm left
[Coke] do we have any kind of metrics on module usage? I'm curious if anyone is using raku/rakudoc 18:56
18:56 jpn joined
[Coke] cfa++ 19:00
ugexe Telemetry in zef would be nice, but I also wouldn’t opt in (and am skeptical a significant enough number of people would) 19:04
19:05 jpn left, QhpAptyj9hj0RQwM joined
ugexe You can also go to the repo on GitHub, click the insights tab, then (if you have proper permissions) view traffic 19:17
to show how often the repo gets cloned anyway
19:19 Sgeo joined
[Coke] Danke 19:22
19:26 SenFache left 19:27 Sauvin joined 19:43 QhpAptyj9hj0RQwM left, QhpAptyj9hj0RQwM joined
Anton Antonov @Coke Any Gherkin / Cucumber updates? 19:46
[Coke] No. As I said, I don't have time to lead the project, haven't done anything on it.
Anton Antonov Did you try the “Cucumis::Sextus” module? 19:47
I plan to take a more minimalistic perspective. I just want to generate Raku test files from Gherkin specs. 19:48
[Coke] sounds good 20:19
Geth doc/main: 0923eb74fd | (Will Coleda)++ | 2 files
Rename Build file

use preferred file extension
[Coke] ugexe: fixed the extension 20:21
Geth doc/main: 305537cc6f | (Will Coleda)++ | README.md
Remove references to items in generated HTML

Leave SO listing for now, but this should be reviewed for accuracy.
Anton Antonov A good introduction to the Cucumber / Gherkin approach and workflows is the README of "Cucumis::Sextus" : github.com/robertlemmen/raku-cucum...tus#readme . 20:37
20:43 linkable6 left 20:44 evalable6 left 20:45 QhpAptyj9hj0RQwM left, evalable6 joined 20:46 linkable6 joined 21:04 grondilu joined 21:14 grondilu left 22:02 rf joined
rf Afternoon folks 22:02
22:09 cfa joined
rf If anyone has some spare time, I need some more eyes on another Humming-Bird feature github.com/rawleyfowler/Humming-Bi...l/34/files 22:10
22:16 QhpAptyj9hj0RQwM joined
Geth doc/main: 78e0a5ccce | cfa++ (committed using GitHub Web editor) | doc/Language/5to6-perlfunc.pod6
Prefer OUTPUT: «…»
lucs Um, "How to rename an exported sub when using a module?" 22:32
New revised gist: gist.github.com/lucs/8ba389a6480c7...b7622b5b44
(the one I showed earlier was wrong) 22:33
Nemokosch github.com/lizmat/from 22:39
I don't know why it's suddenly impossible to find 22:40
Geth ecosystem/main: 1d02e07044 | (Will Coleda)++ | META.list
Doc isn't meant to be installed
ecosystem/main: 2c96b832e3 | Altai-man++ (committed using GitHub Web editor) | META.list
Merge pull request #615 from Raku/doc

Doc isn't meant to be installed
lucs Not sure if that was for me, but it doesn't do quite what I need. 22:50
22:56 QhpAptyj9hj0RQwM left
Nemokosch I don't understand what you need, then 22:59
lucs Hmm... I'm not sure how to phrase it bettet than in the gist. 23:00
rf You need to import a sub from another dist under a different name? 23:04
lucs Yeah, pretty much that. Under an arbitrary different name.
23:05 sena_kun left
The example in the gist is very explicit. 23:06
Nemokosch I think from can do that, though 23:15
rf m: my &new-name = do { use Test; &ok };
camelia ( no output )
Nemokosch maybe I'm misremembering but that was clearly what I had in mind
23:17 merp left
maybe there is also an "as"... I clearly seem to recall something that did just that, I thought it would be in "from" 23:18
23:18 merp joined
lucs Yeah, an "as" sounds like what I'm after, but that module does not appear to supply that. 23:21
tl;dr-the_gist: My::Mod exports sub foo(). I want: If user does "use My::Mod 'bar'", then they can use bar() instead of foo() in their code. 'bar' is arbitrary, it could be anything.
Hmm... 23:23
lucs rf: I did not express that the idea is also to render the original name inoperative, and ideally, the user would just need to pass an extra argument to the "use" statement. 23:32
Why inoperative? Because the idea is also that if the original name happens to be exported into the code by some other module, they can use that meaning without collision. 23:33
rf I'm not sure if that makes sense though, if you have a collision, you want one ot inoperative. 23:37
to be**
In my example you rebind ok from Test to new-name, using a scoped block. 23:38
Now you just have access to ok through new-name you wont be able to call 'ok'.
I don't think it makes sense to do that at the module level. 23:40
lucs You're right, I mistested that.
So this is very close. 23:41
How can I make that mechanism work with use MyMod 'bar'; ? 23:42
(getting pretty hungry, will go start making food, but I'll be around) 23:43
cfa speaking of this, i find the following surprising: 23:49
m: module A { sub foo is export { ... } }; module B { sub foo is export { ... } }
camelia ===SORRY!=== Error while compiling <tmp>
A symbol '&foo' has already been exported
at <tmp>:1
cfa given that i hadn't imported A at the time of B's definition; why should my ability to import from A affect compilation of B?
lucs rf: Oh, I meant, you're right about it being inoperative after the example code you showed, but I'm not sure why it would not make sense at the module level. 23:50
cfa by contrast if A and B are in their respective .rakumod files, i can import both (and B's foo shadows A's)
lucs cfa: Interesting. 23:52
ugexe it sounds like maybe you want to write your own EXPORT function 23:55
although i'm not sure i totally grok what you're trying to do, it sounds like you want to do something at import time based on the arguments passed to `use Main ...` 23:56
cfa i figured the intent behind the request was for something like python's `from foo import bar as baz` 23:57
ugexe yeah not sure that would work quite the same since we usually do our imports via some group name like :DEFAULT (i.e more than one sub) 23:59
cfa for this use MyMod 'bar', is 'bar' supposed to be dynamic?