🦋 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:04 deoac joined 00:21 buildable6 left 00:24 buildable6 joined 00:28 buildable6 left, buildable6 joined 01:24 buildable6 left 01:27 buildable6 joined 01:31 jgaz left 02:19 deoac left 02:27 buildable6 left 02:28 buildable6 joined 02:32 buildable6 left, buildable6 joined
Geth ecosystem/main: 8b6a554696 | hythm++ (committed using GitHub Web editor) | META.list
Update META.list

  * Remove `Pakku` - now lives in zef ecosystem.
  * Remove `Pakku::Meta`, `Pakku::Spec`, `Pakku::Recman` and `Pakku::Recman::Client` - These modules were developed during initial version of Pakku, now they are incorporated into `Pakku` and not needed anymore.
02:54 derpydoo left 03:28 buildable6 left 03:29 buildable6 joined 04:10 gabiruh left 04:11 gabiruh joined 04:29 buildable6 left 04:31 buildable6 joined 04:35 buildable6 left 04:36 buildable6 joined 04:48 CIAvash joined 05:31 buildable6 left 05:34 buildable6 joined 05:37 chmod222 left 05:39 chmod222 joined 05:48 abraxxa joined 06:31 nine left, nine joined 06:34 buildable6 left 06:38 buildable6 joined 07:22 jpn joined 07:30 hythm joined 07:38 buildable6 left 07:39 buildable6 joined 07:49 jpn left 07:59 dakkar joined 08:08 jpn joined 08:09 hythm left 08:12 sena_kun joined 08:13 jpn left 08:39 buildable6 left 08:40 buildable6 joined 09:01 Sgeo left 09:34 jpn joined 09:40 buildable6 left 09:42 buildable6 joined
nemokosch ez win 09:59
10:07 CIAvash left, CIAvash joined
ab5tract_ does anyone know how to get rakubrew to compile arm64 binaries on macos? 10:10
10:24 CIAvash left
lizmat shouldn't this auto-detect ? 10:25
10:42 buildable6 left 10:44 buildable6 joined
ugexe Yeah it should just work 11:23
11:40 tea3po joined 11:43 teatwo left 11:44 buildable6 left 11:47 buildable6 joined 11:51 jpn left 11:55 tea3po left 11:56 tea3po joined 12:07 nine left, nine joined 12:14 jpn joined 12:18 jpn left 12:31 jgaz joined
nemokosch raku.land/zef:guifa/Intl::Format::List 12:40
how can a dist specify an open range as its version? 12:41
will this not create anomalies?
12:47 buildable6 left 12:49 buildable6 joined
ugexe i think the 'how' is quite obvious 12:51
you are correct that you shouldn't do that though 12:52
nemokosch yeah well, the 'how' was more like "how did the Mona Lisa get stolen from Louvre" haha 12:53
"how could it actually manifest"
ugexe technically it should be treated as a non-range literal string, but no tooling will actually do that since everything does Version.new($the-string). it kind of goes back to comments like leont have made about different version types
like a ConcreteVersion.new($the-string) could make a non-range version "1.2+" 12:54
zef ecosystem should probably not allow that though at a minimum 12:55
nemokosch I'm not super fond of the Go's "let's not actually solve any problems and delegate even the URL-ish descriptors based on convention" 12:56
but perhaps disallowing something that is ambiguous within code as well is justified
12:56 jpn joined 13:16 vrurg_ is now known as vrurg 13:20 jpn left 13:44 derpydoo joined 13:49 buildable6 left 13:51 buildable6 joined 14:05 jpn joined 14:10 melezhik joined
melezhik o/ 14:10
tellable6 2023-10-09T07:37:49Z #raku <ab5tract_> melezhik: it's just normal colon pair logic.
melezhik if there is a documentation for module versioning ?
I mean the official doc site 14:11
14:11 jpn left
nemokosch hi melezhik 14:16
does Sparky provide some nohup/pm2 kind of functionality (if it's running as a daemon anyway), or should it be combined with tools like that, if I want the built typescript to be kept running on my host? 14:17
leont ugexe: Yeah this whole situation is super frustrating 14:28
El_Che nemokosch: go works with git tags and semver. The upgrade path of what is update is clear and documented. Do you something else? 14:32
nemokosch in other words, they do nothing and just delegate the problem to git and the maintainers 14:35
if anything breaks, it's always your fault because only those make mistakes who do work 14:36
antononcube @leont Heads up -- you might be cherry-picked by someone bicolored. 14:44
leont ? 14:45
antononcube @leont conf.raku.org/talk/202 14:46
14:51 buildable6 left 14:52 jpn joined 14:53 buildable6 joined, merp left 14:56 jpn left
leont Ah I see :-) 14:57
14:59 merp joined 15:05 jpn joined 15:14 clarkema1 left
El_Che nemokosch: it is always the resposability of the release to release the correct version. What should they (or us) do? 15:32
nemokosch ensure integrity, availability, some basic soundness for versions? 15:38
even a repository migration, that should have nothing to do with the released software, is basically a breaking change 15:39
15:53 buildable6 left
melezhik Hi nemokosch ! You can run Sparky as systemd service , if I follow your question 15:55
15:55 buildable6 joined
melezhik these are two sparrowdo scenarios - github.com/melezhik/sparky/tree/master/systemd 15:56
15:58 melezhik left 16:02 buildable6 left, buildable6 joined 16:06 abraxxa left
nemokosch my question is rather if it can manage the running of the "built" system 16:10
16:30 jpn left 16:31 dakkar left 16:39 jpn joined 16:55 buildable6 left 16:58 buildable6 joined 17:35 jpn left 17:58 buildable6 left 18:01 buildable6 joined 18:03 jpn joined 18:21 melezhik joined
melezhik nemokosch: not sure if I understand your question 18:22
nemokosch this is how I feel about these tools 😅 18:25
18:27 jpn left 18:29 melezhik left 18:30 melezhik joined
melezhik What tools? 18:30
nemokosch Sparrow6, Sparrowdo, Tomtit, Sparky, you name it 18:32
I checked the examples but what if I don't want to do the exact same thing? How do I extrapolate from the examples? 18:33
these workflows usually include a directory magic word - what kind of directory is it about? is that a full path? an identifier of a config? an identifier to a target? 18:34
18:35 melezhik left 18:37 melezhik joined
melezhik What exactly you want to know ? What exactly you are trying to do? Sparky is CI /CD server , please outline what do you want to automate and I will help you 18:39
And ... as far as I remember from our last task you decided to go ahead with Sparky, so let's use it, not other tools 18:41
18:42 melezhik left 18:43 melezhik joined 18:48 melezhik left
nemokosch well, the impression is actual regardless, and it's not like they exist in vacuum 18:52
Sparky cross-references with Sparrowdo
which in turn will reference Sparrow6 18:53
for the time being, the whole "build process" is to just automatically pull sources from github and have the latest main executable run 18:54
18:54 melezhik joined
run as a service 18:55
the latest workflow is quite literally just git pull in a folder, followed by pm2 restart appropriate-task
melezhik Nemokosch: yes, you are right and what ? ) 18:56
nemokosch what do you mean by that? 18:57
melezhik I mean you are right about sparky uses sparrowdo uses sparrow6 dependency , and so far I wasn't clear what you are after 18:59
Now you are giving a bit more details and this is a bit better and I can try to help you 19:00
19:01 buildable6 left, melezhik left
nemokosch to the smallest meaningful detail, what I want to do is, on each push a certain branch receives, pull that branch, yarn install it, terminate the executable (which runs as a service), and start the new version of the executable (as a service) 19:02
of course it would be nice to plan for some feedback, should anything go wrong 19:03
but that's about it
19:04 buildable6 joined 19:07 jpn joined 19:08 melezhik joined
melezhik Ok 👌 seems like Sparky could do a job for you . Let me explain ... 19:09
1. You need to create a project ( well directory inside sparky root ) with a sparky.yaml with a scm repo and branch info  19:10
19:11 jpn left
melezhik github.com/melezhik/sparky#trigger...cm-changes 19:11
That's an easy step
gist.github.com/melezhik/388a7d2c8...27b0800611 19:15
You don't need bootstrap as sparrow is already installed on your local host as a part of sparky , also you don't need a sudo as you are going to run sparky jobs on localhost as a user , not root 19:17
Does it make a sense so far ?
19:18 melezhik left 19:31 melezhik joined
melezhik 2. Then inside the same directory where sparky.yaml file is located your place (a Raku scenario) file named sparrowfile - gist.github.com/melezhik/02b8fe1c0...bbf94b2349 19:32
this is an example code mimicking your requirements
that is it 19:33
nemokosch thank you, I'm in a call but I'll check asap 19:34
melezhik sure )) 19:35
I updated sparrowfile a bit so please check the latest gist version 19:41
19:43 jpn joined 19:48 jpn left 19:52 jpn joined
melezhik now when you have a firm grasp of this simple scenario you can write something more interesting - run a parent job that triggers a child build job and when this job finishes reports it's status (via email or irc ) - gist.github.com/melezhik/b53991e91...a8e0955296 19:54
as you can see Sparky allows a lot of flexibility if required )))
one can even run parent / child job on two separate Sparky instances (thus distributing load and run in cluster mode) 19:55
19:57 jpn left 20:00 melezhik left 20:01 jpn joined 20:02 jgaz left 20:04 buildable6 left 20:05 buildable6 joined 20:07 jpn left 20:08 jpn joined 20:09 buildable6 left, buildable6 joined 20:12 jpn left
nemokosch melezhik: what is tags in the sparky.yaml file? 20:24
tellable6 nemokosch, I'll pass your message to melezhik
librasteve this is how I feel about these tools 😅 ... me too
tonyo lizmat: i indicated i'd be doing my talk live for 2023 but some family stuff has come up and i'll need to prerecord it 20:28
jdv no q&a?
tonyo i may be able to do the q&a bit but i'm unsure, i may be driving at that time 20:29
or i can do the q&a textually and post it as a follow up
thebb when would I get an error like "Variable $!a used where no 'self' is available" ? 20:30
librasteve thebb: calling a method from a class sub 20:32
eg 20:33
tonyo m: class AA { has $!data = 1; method b { say $!data; }; }; "OK:"; AA.new.b; "NOT OK:"; AA.b;
camelia WARNINGS for <tmp>:
Useless use of constant string "OK:" in sink context (line 1)
Useless use of constant string "NOT OK:" in sink context (line 1)
Cannot look up attributes in a AA type object. Did you forget a '.new'?
in method b at <t…
thebb hmmm ok 20:35
tonyo using methods on the class where an instance is needed is the most likely case
to put it in plain language
20:36 jpn joined
thebb so I had to change sub to submethod and it doesn't seem to complain 20:38
librasteve errr - I think you need to have method (submethod does something else) 20:40
does that work? 20:41
nemokosch isn't submethod like a "statically resolved" method?
it somehow counters inheritance, that's all I can recall
librasteve ^^ yep - that's the somethong else
thebb ok so method it is :D 20:42
librasteve if it works ;-)
20:51 melezhik joined
melezhik Nemokosch: did you get those examples ? Do they solve your scenario? 20:54
tellable6 2023-10-18T20:24:55Z #raku <nemokosch> melezhik: what is tags in the sparky.yaml file?
nemokosch work in progress 🙂 20:56
where does the SCM_SHA variable come from? 20:58
tonyo thebb: what is the name of your submethod?
melezhik Because you keep asking me new questions without confirming you have understood things I told you before I start feeling maybe 🤔 our conversation is not very productive ...
nemokosch not gonna lie, I don't feel responsible for that at all 21:00
it would just help if you answered the questions, that's all 21:01
I'm not sure what sort of big revelation you expect from me, apparently 21:02
melezhik I don't expect any revelation from you. All I expect if you answer my questions too - like you just said "it would just help if you answers mt 21:04
my question" - so please do the sane favor me 21:05
21:05 buildable6 left
melezhik If you don't bother answer my questions why then should bother I ? 21:06
21:06 buildable6 joined
nemokosch what questions do you have, then? 21:07
melezhik Ok. It's easy just scroll up in a history "[23:54:00] melezhik: Nemokosch: did you get those examples ? Do they solve your scenario? " 21:08
nemokosch and I said "work in progress"
melezhik Or this one - "[22:17:37] melezhik: Does it make a sense so far ? " 21:09
21:10 buildable6 left 21:11 buildable6 joined
nemokosch I said I was in a call 21:11
is it such a crime that I talked with my grandparents for an hour after literal months 21:12
librasteve @whistlingzephyr .... are you there?
whistlingzephyr yup, what's up?
librasteve ^^ 21:13
whistlingzephyr lemme read, apologies
librasteve np
nemokosch by the way, I created the files, under .sparky/projects/rad.io(name of the bot), set the url's and branch, ran nohup sparkyd, commited to the branch 21:14
nothing happened
and I can perfectly imagine that I did something wrong - this is part of the reason I'm asking questions
because I anticipated it wouldn't work at first, and the chances just get worse if I don't even have a clue about the details 21:15
melezhik Not at at all, it's just a style of communication when you don't answer questions I asked you and continue with a new question from your side this makes the whole process of communication quite irritating, if you try ti change this this will help )
nemokosch good sir, you didn't receive an answer to a real-time question because I was away, you went on, I don't think it's fair to go back there 21:16
whistlingzephyr hmm, @nemokosch could you try to be a little more validating when asking for help? I understand that you have questions and also that you were busy but it's the best to not leave the other person in the dark and avoid taking responsibility for the lack of feedback to the answers and requests for clarifications you recieved 21:17
nemokosch the current situation doesn't look like that, though, does it?
melezhik You probably don't get my point , it's not about timing , you could have answered my question in a day or two )) , it's about you don't answer my questions first and keep asking questions from your side
whistlingzephyr well, from my quick reading of the chatlog it seems like your tone has been pretty questionable where you could've been more considerate in terms of prioritizing what information you give/ask first 21:18
nemokosch And I think you don't get that certain questions simply expire
whistlingzephyr I'm sorry, as a moderator I kinda have to be responsible for avoiding conflicts here
and I think it's the best if we try taking the benefit of the doubt and avoid making things more uncomfortable 21:19
nemokosch I frankly didn't anticipate this would be such a big deal and I don't find the whole framing fair at all
librasteve hmm
whistlingzephyr I wasn't given a framing, I came to the chat and read the chatlog, then created my own conclusions 21:20
I guess I'm more used to caring both about what's said and how it's said than only the former
nemokosch sorry, I don't find your own conclusions valid
21:20 jpn left
in any case, there is no point in continuing, it would be hard to stay interested after this procedure 21:21
whistlingzephyr that's fair. well, I'm not exactly sure how to help this case further right now given it doesn't seem to be worth the trouble, so yeah as long as the conversation is called off that's fine with me too
melezhik: I apologize for the mess btw, I'll see what I can do to help reducing further occurrences (mostly by discussing it) 21:23
librasteve hmm - The only requirement is that you know how to be nice to all kinds of people (and butterflies)
whistlingzephyr also, @librasteve thanks for the ping
nemokosch in any case, it's deeply saddening when you get this nervy attitude from somebody who you wanted to highlight as somebody whose work is underappreciated
librasteve ^^ this is the ethos of raku raku.org
whistlingzephyr I think there's no point in dragging this on any further 21:24
here's a cat and a butterfly
librasteve sadly Discord(tm) does not seem to honor the ethos of this group (see history) 21:25
nemokosch this discussion was salvageable, and now everyone is left with a disappointment and time wasted 21:29
melezhik whistlingzephyr - thanks for your help 21:33
El_Che nemokosh: go uses a proxy by default. Every retrieved version is cached so you can't remove it or overwrite it. 21:37
nemokosh: besides perl, go is the ecosystem with the less breakage I have encountered (zero so far). I can't say the same about JS or Ruby 21:38
*least 21:39
21:39 melezhik left
roguerakudev @nemokosch / melezhik - Admin of the Discord here - let's try to assume good intentions and take feedback on board instead of getting snippy. I think this was ultimately just a miscommunication, and that's okay. 21:49
tonyo go's resolution left a lot to be desired last i used it (1.20)
i'm sure it's better now (that lang moves slowly but stays pretty stable) 21:50
El_Che tonyo: it's certainly up for discussion, but it's clear and documented
tonyo: it wasn't in the past
tonyo my last job was writing in go, it left me with a lot of head scratchers for sure 21:51
haskell might be the most rock solid and annoying to use, that i've used
El_Che it catches up very slowly on things we take from granten on dynamic languages 21:52
tonyo go or haskell?
El_Che go
added modules (fixed the versioning very valid critique), generics, and now generic slice functions
until a few months ago you had to write your own loops for everything 21:53
ugexe someone should implement raku.work file support
El_Che like for slice contains element and simple stuff like that
stuff where raku shines
tonyo i haven't seen the generic slice functions. generics were new when i was getting out of go, they're an eyesore the way i saw it. 21:54
ugexe co-pilot writes all my go loops
El_Che ugexe: :)
tonyo: they are not pretty and are limited, but they are better than nothing and they do the job
tonyo heh, the c preprocessor wrote all of mine
are they available on struct funcs now? 21:55
El_Che my last point of annoyance is enums
tonyo: no, only functions not on "methods"
tonyo bummer
El_Che funct(aStruct, someParams) does its ugly job
tonyo yea, i had mine set up like (A) func Abc (T, ...) { abc[T](a, ... // or whatever the syntax is, kind of burnt from work 21:56
El_Che the most limiting for me when using generics with structs is that you can't itenarate the keys
so you end with ugly switches 21:57
tonyo 30 parameter func
nemokosch it seems that Go's ecosystem "doesn't break" simply because it doesn't really exist. It's all just repository owners "doing things right". I've read a horror story on Reddit about repositories that got migrated, or had a version-looking piece that got mistaken for an actual version, and there is no "ecosystem answer" to that, it's apparently all just DIHWIDT
I think somebody could do the same thing with rather little effort for basically any language 21:58
El_Che that's not correct
tonyo it is (or was) a bit ephemeral
i think mostly was
El_Che like a saidm there is a proxy
that was the case for modules on go 1.11/1.13
ugexe Go's ecosystem certainly breaks 21:59
El_Che not since then
yes, but not by the module system itself
just by publishing buggy modules
nemokosch yeah well...
ugexe yeah... for me its usually breaking changes without a major version bump 22:00
El_Che that a bug
and a ugly one at that
tonyo as that ecosystem grows there's definitely more and more bad practices in play
nemokosch anyway, it seems like the praisal should go to "the proxy" in any case, I wonder what it does that prevents the usual problems from using a git provider as ecosystem
ugexe you can rewrite history on git repos, and i presume this cannot be done through the go proxy 22:01
nemokosch tonyo: have you used Ada? 22:02
El_Che yeah, the proxy handles that case
for a time at least
but you can't stop bad actors if they really want to break stuff 22:03
nemokosch I haven't used Haskell but it seems like a solid candidate for "solid and annoying"
tonyo i haven't, is that the symbol based one?
ugexe the zef cache did sort of the same thing at a local machine level, but that mostly just confused people
nemokosch Perhaps not
Ada is the lawyer's Pascal
tonyo ope, not the one i was thinking of 22:04
nemokosch the US defense yadda yadda language
El_Che the dependency chain in go is less small than you would think
and a small module can break a lot of shit
I have a very small lib, nothing big (279 stars, a fork from a abandoned module). No pressure you would think 22:05
nemokosch isn't the complete dependency chain listed on the user's side in Go?
El_Che there are 67 376 repositories depending on it adnd 9399 packages according to github
that's freaky 22:06
nemokosh: there are direct and indirect dependencies
22:06 buildable6 left
El_Che they are part of the build and you can vendor them in your repo 22:06
tonyo sounds like a node module
El_Che still, you need to check what you pull in 22:07
tonyo this is one of mine, didn't think much of it when published: www.npmjs.com/package/optional
El_Che lots of weekly download 22:08
22:08 buildable6 joined
nemokosch Npm downloads are something else 22:08
22:13 Sgeo joined
El_Che github shows clone info. The lib with low activity had 45K clones this week 22:14
it sounds like CI
the internet is so fragile 22:15
nemokosch we need a proxy to the internet 22:17
El_Che :) 22:19
nemokosch Does this bridge get the strikethrough across in any way, by the way? 22:20
Iirc it does tranlate italic and bold 22:21
italic bold
22:22 sena_kun left
tonyo i don't see any strikethroughts, if you've put any 22:28
nemokosch Then probably it doesn't work with that 22:34
But given Poe's law, the second best representation of strikethrough text is plain text 😄 22:35
23:08 buildable6 left 23:09 buildable6 joined 23:13 buildable6 left, buildable6 joined 23:40 tea3po left, tea3po joined 23:57 derpydoo left