🦋 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.
tonyo raydiak: got what you were after? 01:23
raydiak tonyo: not really, but it wasn't for me anyway. demostanis[m] was asking about documentation on authoring zef modules, among other things. I had a tab about fez open too, and got them mixed in my head for a minute (I don't multitask well). thanks for checking though, I appreciate it! 03:45
zef plugins, that is 03:51
ambidextrose can someone link me to some good stuff if i'm catching up from 7 years ago? 05:01
or just good perl6/raku pages in general?
i still miss seeing the eject symbol on debug messages from the interpreter 05:02
ambidextrose hears a mysterious wind blow
frost-lab You can get rakudo (the compiler) from rakudo.org, and you can get the latest news from the weekly news( rakudoweekly.blog/blog-feed/ ). 05:08
frost-lab At this time, most people are sleeping, I guess :) 05:09
tonyo raydiak: demostanis[m]: deathbyperl6.com/zef-plugins-a-ver...a-glimpse/ <- this is the most recent i've written about it for zef 12:01
it being `plugins`
demostanis[m] <tonyo "raydiak: demostanis: dea"> Do plugins still work the same way as described in this article? Was that WIP branch to bring plugins support merged into master? 12:24
tonyo the structure was changed a bit in zef before being merged. it was waiting on a commit i made to core at that time which has merged since 12:59
i doubt the plugin stuff made the merge, let me check 13:00
it didn't 13:02
what're you trying to write demostanis[m] ?
lizmat and yet another Rakudo Weekly News hits the Net: rakudoweekly.blog/2021/04/19/2021-...atch-anew/ 13:38
demostanis[m] <tonyo "what're you trying to write demo"> A META6 generator, with features like updating META6.json on `zef install` 13:52
<lizmat "and yet another Rakudo Weekly Ne"> I'm in the Rakudo Weekly 🎉 13:54
🥳 13:55
tonyo demostanis[m]: messing with zef install might come with some weirdness. if it's for module authoring you might look at plugins for fez 14:36
ugexe updating meta6.json on `zef install` would be essentially roll out the red carpet for setting up inconsistent environments. consumers of modules don't care about something that e.g. makes it easier for the author to publish; ease of publishing features shouldnt impact module users. someone modifying a local copy of some module shouldnt end up with crazy version conflicts because `zef install .` 15:21
wanted to not only change things, but to also assume the changes its making are what you would have even wanted.
as for meta6.json generation whats the difference between a theoretical `zef skeleton` and a theoretical `mi6 skeleton` (im sure it has an actual command for this) or `fez skeleton`? since zef installs modules its trivial to install any tool you want that can do these things 15:23
with the bonus that things that are not included with zef can use external modules / dependencies 15:24
[Coke] m: $*ERR.out-buffer: False; 15:33
camelia Too many positionals passed; expected 1 argument but got 2
in block <unit> at <tmp> line 1
[Coke] m: $*ERR.out-buffer = False; 15:35
camelia ( no output )
[Coke] ah.
demostanis[m] <ugexe "updating meta6.json on `zef inst"> I don't see how updating META6.json on `zef install` would create version conflicts. It would simply make our lives easier, as we wouldn't have to write JSON. Much like what NPM does by creating a package.json when we run `npm install <package>`
[Coke] out-buffer is listed as a method on docs site.
ugexe and rakudo could just do that as well 15:36
but its not a good idea
and creating lock-files isn't the same as changing meta6.json
but again, making module authors lives easier at the peril of the systems the modules will run on is not a goal of mine 15:37
and yes it would create version fonclits 15:39
conflicts
npm for instance doesnt manage a global module repository along with local repositories with the ability to have multiple versions in every one 15:40
codesections I don't have an opinion on how zef should handle it (and what you're saying makes sense, ugexe) but npm et al. don't _just_ edit lock files -- they change package.json, not just package.lock. But I'm also fine with *not* following that model; it obviously has flaws
ugexe right, im saying updating a package.lock would be acceptable but not the meta6.json 15:42
tonyo your average user doesn't have to write json to use zef, just the module author. if you want to automate that then create a bundler plugin for fez 15:45
[Coke] . 17:12
demostanis[m] Can't two different versions of the same module coexist using zef? 17:35
jmerelo demostanis[m]: yes, if they have a different auth field, or even an API field. 17:39
demostanis[m]:the :api adverb has been designed with that objective in mind
demostanis[m] Then how would that create version conflicts? I don't really understand.. 17:40
ugexe you are assuming that whever you run this on is absolutely the latest version 17:55
what if you work on an older verison? `zef install` would then bump the version to a version that already exists 17:56
demostanis[m] What do you mean? One would install a specific version of a module and this version would be the one written to the META6.json. What problem arises there? I'm having trouble understanding what you're saying. 18:07
ugexe you were suggesting `zef install .` updates stuff in a meta6.json 18:12
demostanis[m] No, I never mentionned `zef install .`. I was talking about updating META6.json when a new/newer version of a module is installed 18:13
ugexe <demostanis[m]><tonyo "what're you trying to write demo"> A META6 generator, with features like updating META6.json on `zef install
demostanis[m] Not `zef install .`. Sorry for the confusion. 18:14
demostanis[m] < matrix.org/_matrix/media/r0/downlo...essage.txt > 18:15
ugexe if you are talking about updating dependencies i refer back to my stance of generating a package.lock being ok (and doesnt yet exist in raku) but not the data inside a meta6.json
because installing some module does not imply to add it to some meta6.json 18:16
which again goes back to the issue of having a global repo of modules that other projects also use 18:17
El_Che (nothing much to add but changing upstream meta6.json seems like a terrible idea. It kind of breaks the no surprise principle)
demostanis[m] < matrix.org/_matrix/media/r0/downlo...essage.txt > 18:18
demostanis[m] < matrix.org/_matrix/media/r0/downlo...essage.txt > 18:19
demostanis[m] < matrix.org/_matrix/media/r0/downlo...essage.txt >
demostanis[m] < matrix.org/_matrix/media/r0/downlo...essage.txt >
Oops sorry for the edit spam
ugexe i do like 80% of my raku development inside ~/repos/zef... 100% of what i `zef install` inside that directory is not intended to be a zef dependency
demostanis[m] Then having a command line flag which tells zef to update META6.json 18:20
`zef install --add-to-meta6-json-please MODULE`
ugexe just run a separate command
there is no reason an authoring tool cant do this and run the zef install
and then there is no confusion because its explicitly an authoring action 18:21
demostanis[m] Does such a command exist yet? Should it be implemented in zef, or as an external program? 18:26
demostanis[m] < matrix.org/_matrix/media/r0/downlo...essage.txt > 18:30
ugexe depending on a specific version doesn't even solve the problem 18:32
you still have to depend on that specific version in your code
putting Foo:ver<1> in your meta6.json doesnt mean `use Foo` is going to load :ver<1>
if things were simple it be very easy to implement things the way e.g. Golang did 18:33
demostanis[m] Which version is loaded when I do `use Foo` then? 18:59
lizmat if there is only one version installed, that one 19:01
demostanis[m] If there's 2?
lizmat otherwise the highest API, then version
it's still a bit of a grey arear
demostanis[m] Why not changing Rakudo's code so that it can load the version specified in the META6.json? 19:02
lizmat *area
you *can* say "use Foo:ver<0.0.3>"
and that will make sure you get *that* version
demostanis[m] Yes, but isn't it easier for Rakudo to load the version specified in the META6.json, if there's one?
and fallback to the highest API, then version if not? 19:03
lizmat that may happen in the future...
meanwhile, being *specific* in what you want to use, is the best way of ensuring stability 19:04
demostanis[m] Until then, what can I do for zef to write on my META6.json for me when I run `zef install MODULE` without having to do it manually? 19:05
Plugins?
El_Che it sounds you have a fix for an undefined problem
demostanis[m] <El_Che "it sounds you have a fix for an "> What is it? 19:06
El_Che that you want to write the Meta file with a module installer instead with an authoring tool 19:07
separation of concern, I would say 19:08
but ugexe knows a lot more about that than I do, just 2c
demostanis[m] So... with fez? 19:10
or creating my own authoring tool?
for such a simple task?
tonyo tbh i would just check out mi6 demostanis[m] 19:16
tonyo if you're coming from haskell or something with pinned requirements and you just want, in your meta, to pin a `depends` then put it as ugexe and lizmat said `{ ..., "depends": ["Test:ver<1>:auth<some1>", ...]}` 19:17
lizmat FYI: news.perlfoundation.org/post/cat-t...april-2021 19:26
El_Che is there a list of the CAT members? 19:32
samcv El_Che, it is in the previous post news.perlfoundation.org/post/cat-u...april-2021 19:36
El_Che thx, samcv 19:37
japhb Thank you to everyone working on that team, and to samcv++ for (IIUC) leading it currently. It can be a hard and stressful job, but it is a very important one; I very much appreciate the work that goes into this. 19:41
samcv japhb, thanks for the appreciation. I concur with everything you said. 19:43
demostanis[m] tonyo: "How can I manage depends, build-depends, test-depends? 19:45
Write them to META6.json directly :)."
El_Che The vagueness (in order to repect the privacy of those involved) makes me a little uneasy, certainly if the result is a perpetual ban. 19:46
jdv79 if that's what passes for "transparency" ok then. seems opaque to me. 19:46
japhb jdv79: From experience in other communities (and as a team manager), that's pretty transparent. Unfortunately, there's just about no level of transparency that won't invite further curiosity (or in worse cases, attempts to reopen the case). People are naturally curious, and often find it difficult to not know all the details. 19:52
El_Che it's not curiosity only. I suspect people feel the need to know details in order to make their own judgement. 19:53
japhb (And as a side note, certain bits of privacy don't just have an ethical imperative but a legal one as well. I am unfamiliar with all the relevant laws, besides knowing they exist.)
El_Che this is no critique of samcv's works (or others), but I think that's how people tick 19:54
it's a hard spot to be in for the people making decisions, certainly 19:55
japhb El_Che: One of the things that makes the CAT job so difficult is that it is a position of trust; the community puts their trust in your ability to be fair, even when you can't explain the details as much as they would like.
Yeah, exactly.
samcv jdv79, El_Che if you have comments please reply to the email address at the end of the document. We will be looking at them. That is the proper place to ensure the CAT gets them. 19:56
Of course you are free to discuss it here if you wish, just letting you know
neshpion what is CAT
El_Che samcv: that's kind of the paradox, we don't know what we don't know
samcv El_Che, if you wish there was more detail in the report then please send an email saying so. 19:57
El_Che samcv: thank you, I'll think about it.
japhb neshpion: news.perlfoundation.org/post/cat-u...april-2021 19:58
El_Che I suspect the banned person did get all the details?
lucs neshpion: Community Affairs Team 20:00
tonyo i'd suspect they have half 20:01
codesections just as a note, this level of detail is similar to the level called for in the Raku CoC incident response guide 20:02
("When summarizing an incident, the CAT should avoid going into more detail than necessary to fairly inform the community of the incident. Additionally, the CAT should recall that the identity of any party may become known even if that party isn't named in the summary, and the CAT should be especially careful to avoid descriptions of the event that risk creating misleading impressions of the violation's severity. If factual dispute
about the incident exist, the CAT should avoid creating the impression of greater certainty about the facts than exists.")
japhb codesections: I would bet that's 100% intentional.
guifa Given my work on similiar-ish committees at the university I work at, the report seems about what I’d expect. Obviously, some people might want more, and others (those involved) might want less. But as japhb mentions, there’s trust that the folks working on the team (who is known) does have greater details, and is acting fairly.
El_Che samcv: again, don't feel attacked by my musings. I think I have a good relationship with several people in this issue, and I was a little surprised about the connection of investigation 1 and 2 (I saw them as separate issues) 20:03
mithaldu_ El_Che: as of this point it appears that person 1 may not even have seen the message or be aware of any of this happening, and person 2 was threatened with receiving a warning in the future, but it is unclear who they are and several candidates have not received any notice yet 21:01
[Coke] .seen pmichaud 21:04
tellable6 [Coke], I saw pmichaud 2018-10-02T15:45:44Z in #perl6: <pmichaud> BTW, the docs page on ""is required"" only mentions scalar variables, a hash or array example might be useful there.
El_Che mithaldu_: I am under the assumption all parties were heard. Or they should be, imho, certainly because of the perpetual character of the ban 21:04
tellable6 El_Che, I'll pass your message to mithaldu_
lizmat "several candidates" ?? 21:05
Gus26 Hi I was wondering, what is the easiest way to play with RakuAST? Is it necessary to build from source at this point? 22:23
[Coke] I believe so, yes. 22:26
codesections Gus26: last time I checked, you needed to clone the repo, check out the RakuAST branch, and build with the RAKUDO_RAKUAST=1 env var. See www.reddit.com/r/rakulang/comments...n/gpivwha/ 22:27
[Coke] I believe you need a very recent version and have to a) set env vars and b) update your code.
Gus26 Ok thanks. I've read the blog posts about the work but somehow missed the comment you linked explaining how to set it up. 22:28
guifa really needs to do that at some point 22:31
Gus26 Do you know what branch the new dispatcher work is on?
lizmat building with RAKUDO_RAKUAST=1 won't work
much anyway
you need to *run* with RAKUDO_RAKUAST=1
the new grammar is not capable of building Rakudo completely yet
ComputerTech wut
MasterDuke Gus26: new-disp
lizmat running with RAKUDO_RAKUAST=1 forces the new grammar to be used for any code compiled with it *then* 22:32
bootstrapping is hard
Gus26 lizmat Do I need to build from source (without RAKUDO_RAKUAST) in order for that ENV variable to do anything?
lizmat yes, in the "rakuast" branch
Gus26 Ok, so first build from source from that branch, then turn on the ENV variable to enable the feature when running a script 22:33
MasterDuke thanks!
lizmat Gus26: yup 22:34
calling it a nigh&
t
guifa lizmat++ I might even just make a post on reddit for others who are interested
lizmat ++guifa 22:35
guifa will need to check that he can successfully build it first, probably later tonight
Gus26 Is there something sort of like godbolt for rakulang?
An online playpen where people can try out different versions? 22:36
MasterDuke the committable6 bot has pre-built rakudo at every commit from ~end of 2014. it didn't used to also do branches, but i think it might as of recently 22:39
committable6: 2014.12,2021.03 say "hi"
committable6 MasterDuke, ¦2014.12,2021.03: «hi␤» 22:40
MasterDuke committable6: 2014.12,2021.03 say $*PERL.compiler.version 22:41
committable6 MasterDuke, ¦2014.12: «v2014.12␤» ¦2021.03: «v2021.03␤»
Gus26 MasterDuke is there a guide anywhere?
MasterDuke committable6: help
committable6 MasterDuke, Like this: committable6: f583f22,HEAD say ‘hello’; say ‘world’ # See wiki for more examples: github.com/Raku/whateverable/wiki/Committable
codesections Gus26: there's also this list of online evaluators that support Raku, though I'm not sure which/if any let you select a version www.reddit.com/r/rakulang/comments...orts_raku/ 22:43
Gus26 I apologize if this isn't a raku question but an IRC question, but can I interact with committable6 without it spamming responses back to this channel?
ugexe you can private message code with `camelia` 22:45
but i think thats the only one
Gus26 codesections hey that's really helpful for playing with a normal/mainline version, thanks!
MasterDuke Gus26: the *able bots don't respond to private messages, but they are all in #whateverable, which anyone is free to use 22:46
Gus26 MasterDuke great, thanks! 22:47
MasterDuke welcome
Gus26 I just realized that while committable6 recognizes the commits from the rakuAST branch, it doesn't have the ENV variable set; none of the online playpens would either. Will just have to build from source. 23:03
ugexe if `shell` works... 23:05
MasterDuke you could use `run` command probably. e.g., something like committable6: rakuast %*ENV<RAKUDO_RAKUAST> = 1; say run <raku -e "say 'hi'">
Gus26 MasterDuke So the example you gave didn't quite work, but this seemed to: committable6: rakuast %*ENV<RAKUDO_RAKUAST> = 1; my $p = run 'raku', '-e', "say 'hi'", :out; my $o = $p.out.slurp: :close; say $o; 23:47
Now I just need to figure out a simple AST example to see if it actually works! 23:48
ugexe also needs to fit in a single line of irc text 23:50