Raku Conference Day 2 on Youtube: www.youtube.com/watch?v=BL9-XdC9WYI 🦋 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 14 August 2022.
00:00 vrurg left 00:02 vrurg joined, GeorgeB joined 00:07 reportable6 left 00:09 reportable6 joined 00:12 GeorgeB left, kybr left
Geth App-Rakubrew/zef-default-branch-rename: 7229cf9bcd | (Nick Logan)++ (committed using GitHub Web editor) | lib/App/Rakubrew/Build.pm
Update zef default branch to 'main'
00:38
App-Rakubrew/zef-update-default-branch: 2048c084c5 | (Nick Logan)++ (committed using GitHub Web editor) | lib/App/Rakubrew/Build.pm
Update zef default branch
00:39
App-Rakubrew: ugexe++ created pull request #58:
Update zef default branch
00:40
00:55 kybr joined 01:04 jgaz joined 01:05 jgaz left 01:15 bigdata joined 01:28 MasterDuke joined 02:14 Heptite left, Heptite joined 02:34 MasterDuke left 02:36 frost joined 02:38 nebuchadnezzar left 03:38 statisfiable6 left, notable6 left, linkable6 left, squashable6 left, reportable6 left, committable6 left, bisectable6 left, greppable6 left, benchable6 left, releasable6 left, quotable6 left, nativecallable6 left, coverable6 left, tellable6 left, evalable6 left, sourceable6 left, shareable6 left, bloatable6 left, unicodable6 left 03:39 coverable6 joined, tellable6 joined, reportable6 joined 03:40 bloatable6 joined, quotable6 joined, linkable6 joined, greppable6 joined 03:41 benchable6 joined, unicodable6 joined, committable6 joined, bisectable6 joined, nativecallable6 joined, shareable6 joined, evalable6 joined, releasable6 joined, sourceable6 joined, statisfiable6 joined 03:42 notable6 joined, squashable6 joined 03:44 frost left 03:53 Heptite left 04:53 quotable6 left, bisectable6 left, sourceable6 left, committable6 left, evalable6 left, squashable6 left, shareable6 left, notable6 left, coverable6 left, tellable6 left, linkable6 left, releasable6 left, greppable6 left, nativecallable6 left, statisfiable6 left, bloatable6 left, benchable6 left, reportable6 left, unicodable6 left 04:54 squashable6 joined, linkable6 joined, committable6 joined, greppable6 joined, nativecallable6 joined, coverable6 joined 04:55 benchable6 joined, unicodable6 joined, reportable6 joined, bloatable6 joined, sourceable6 joined, evalable6 joined, statisfiable6 joined, bisectable6 joined, Sgeo left 04:56 shareable6 joined, quotable6 joined, releasable6 joined, notable6 joined, tellable6 joined 05:56 nativecallable6 left, benchable6 left, committable6 left, bisectable6 left, bloatable6 left, tellable6 left, coverable6 left, reportable6 left, evalable6 left, unicodable6 left, quotable6 left, linkable6 left, squashable6 left, shareable6 left, statisfiable6 left, notable6 left, greppable6 left, sourceable6 left, releasable6 left 05:57 committable6 joined, greppable6 joined, reportable6 joined, nativecallable6 joined 05:58 linkable6 joined, unicodable6 joined, squashable6 joined, benchable6 joined, bisectable6 joined, statisfiable6 joined, releasable6 joined, coverable6 joined 05:59 evalable6 joined, shareable6 joined, bloatable6 joined, sourceable6 joined, tellable6 joined 06:00 notable6 joined, quotable6 joined 06:07 reportable6 left 06:10 reportable6 joined 06:17 oodani_ left 06:19 kjp joined 06:20 oodani joined 06:23 Zero_Dogg joined
Nemokosch Guys, not all nonsense needs to be taken into account... 06:40
it would be nonsense even if it was really about master and slave (who cares if a device is called a slave), but in itself, "master" comes from Latin "magister" which meant teacher, and craft guilds were lead by masters 06:44
in that context, the complement of "master" is "apprentice" 06:46
anyway, hopefully you don't need to be told this
06:47 abraxxa joined 06:51 abraxxa left, abraxxa joined
japhb Nemokosch: I'm not sure what the context is for your last four messages (they seem to be a bit out of nowhere), but please *do not* attempt to reopen disucssions about the appropriateness of master and slave in computer science contexts. 06:58
tellable6 japhb, I'll pass your message to Nemokosch
Voldenet probably the context is recent commit > Update zef default branch to 'main' 07:00
Nemokosch japhb: that's easy to achieve - distance yourself with the America-centric, radical barbars who created these discussions in the first place
that's not a tall order
Voldenet but the reason for changing is quite practical 07:01
when tools start using main instead of master by default, you just change branch names so tools still work 07:02
Nemokosch however, the reason tools started using main instead of master, is quite political
and in this case as well, it wasn't tools changing on their own
Voldenet Sure, but are you going to fight authors of tools now? 07:03
Nemokosch I mean... yes?
japhb I'm asking you, please don't.
Voldenet …I think there's better use for your time :)
Nemokosch If the alternative is radicals winning without fight, then there is no question 07:04
There is better use for their time as well, don't you think
Voldenet it could be called "kitten" for all I care
Nemokosch it could, or it could have been called "main" in the first place, that's not the thing 07:05
japhb Nemokosch: If you *must* fight that fight -- do it somewhere else. NOT HERE.
tellable6 japhb, I'll pass your message to Nemokosch
Nemokosch the thing is to not just blindlessly adapt to these idiotic radicals who just want to create friction by deliberately trying to divide us over irrelevant shit 07:06
japhb Nemokosch: STOP. TAKE THIS ELSEWHERE. 07:07
tellable6 japhb, I'll pass your message to Nemokosch
Nemokosch we do know well that they don't stop at renaming the "master" brainch to "main", they intervene in all segments of life
japhb #raku is not the right place for this.
Nemokosch DISTANCE YOURSELF FROM THEM.
Voldenet iirc github decided that first, so if you want to fight, do that on #github
Nemokosch I said "don't need to adapt to them", that was a fair and relevant statement I guess 07:08
and this is the most one can do
and it's degradatory as hell that somebody already finds it more important to shut up this opinion (which isn't even "opening a discussion") than to distance from the political voluntarists making these calls 07:11
Voldenet btw, rakudo uses "master" branch everywhere 07:12
Nemokosch I know. 07:13
japhb Nemokosch: Is there a reason you have not taken this argument elsewhere? I'm asking you not to have that argument *here*. 07:14
tellable6 japhb, I'll pass your message to Nemokosch
Nemokosch The reason is that this is the affected community. Do you know another place within the community where this can be discussed? 07:15
japhb This is *an* affected community, not *the* affected community. The discussion is much larger than anything having to do with Raku. 07:16
Nemokosch I don't think this of all things can be decided top-down. It's not all-or-nothing. If zef of all things is moving over to main when there was no practical need for that, that's within the community. It's not a demand from anyone. 07:19
japhb And you're not the maintainer of zef. So it's not really your business, to be frank. 07:20
Voldenet ^
Nemokosch I'm not anyone else than myself so you could have said that I don't have a say in anything 07:21
Either way, zef is not a private thing, quite the contrary, so it is indeed all of our business either way
So yes, it is perfectly justified to at least say "you guys surely know better than to blindlessly adapt to whatever nonsense radicals shove onto you" 07:23
japhb Nemokosch: You have made your point. Now please STOP and take your rant elsewhere. 07:24
tellable6 japhb, I'll pass your message to Nemokosch
Nemokosch japhb: the damage has been done by you proving that your main concern is to silence and invalidate what I think would be important to also represent 07:25
japhb You have the entire rest of the internet to state your case. Take it somewhere else, is all I'm asking. 07:26
And to be frank, you've gone way past dog whistling into active attack of another channel member (me), so for the love of sunshine, PLEASE STOP. 07:27
Nemokosch You didn't have to say this, though. You didn't have to try to invalidate the point. Because now what you did is much like security guard business for the very worst kind of people.
abraxxa Nemokosch: I hate that change too and didn't make it in my projects because it's just a waste of time. But if someone else does it I notice it and go on. In this case you can talk to the person who did the change, it's not that he asked for permission here. 07:28
tellable6 abraxxa, I'll pass your message to Nemokosch
japhb I haven't either validated or invalidated your point, I just asked you not to have that argument in the #raku* channels on libera.chat IRC. 07:29
Nemokosch So you try to silence me and then talk about how I attacked you? HOLD YOUR HORSES
You attacked me the whole time
Voldenet I was going to write something wise here, but the whole issue is a waste of everyone's time and there's no point debating it 07:30
Nemokosch I asked you where else I can address the members of the very same community. If you ask me to just stay silent in the community that I want to address, that is an attempt to silence me, right? 07:31
Voldenet …isn't there zef irc channel?
Nemokosch abraxxa: I'm not demanding you to enthusiastically take on this trend, please don't expect me to stay silent, in return 07:33
The thing you guys were getting wrong is that I demanded some sort of ultimate resolution or any reaction at all. No. I just shared some factually true information and my judgement attached, because I don't think it's represented enough here. That's all. 07:35
"Take this elsewhere" was the worst possible reaction to that in my view; defeating the whole purpose I wrote it down.
japhb It's not represented here, because the rest of us *ARE SICK OF DISCUSSING IT*. 07:37
It has been discussed to death.
It does not need more discussion.
If you feel the need to keep fighting a battle that is already over, that's being a pest. 07:38
Please stop being a pest.
If you insist on being a pest, please do it to someone else.
I prefer my picnics without mosquitos, thank you.
Nemokosch I also asked you to at least distance yourself from the agenda to intervene in everything in the name of some bigger justice, that would have been enough. 07:39
Also, as I said, it was not "discussing", just being able to represent a view that very apparently doesn't triumph
japhb Let me see if I can explain this in terms you might understand: YOU ARE TALKING OVER THE MOVIE. DON'T TALK OVER THE MOVIE. 07:40
Political discussions absolutely have their place in society. I'm not at all arguing that. I'm asking you to just let this go. 07:41
Nemokosch If neither of this is valid or important enough to not aggressively destroy the message, then indeed, YOU ARE SABOTAGING
japhb Now, I'm going to stop, because god help you if you don't get the last word in. GO AHEAD. YOU KNOW YOU WANT TO.
Nemokosch YOU SHOULDN'T HAVE HAD A WORD IN THE FIRST PLACE BECAUSE YOU HAD NOTHING TO SAY. 07:42
Thank you.
And now that this wasted effort is over, let me freaking paste the original "forbidden" commentary here, so that it isn't aggressively blown away. 07:44
> Re: zef 'master' to 'main' - Guys, not all nonsense needs to be taken into account... it would be nonsense even if it was really about master and slave (who cares if a device is called a slave), but in itself, "master" comes from Latin "magister" which meant teacher, and craft guilds were lead by masters. in that context, the complement of "master" is "apprentice". anyway, hopefully you don't need to be told th 07:46
lizmat Nemokosch: whatever people call their default branch, is their prerogative 07:47
tellable6 lizmat, I'll pass your message to Nemokosch
abraxxa Nemokosch: thanks, but I think everybody that has given attention to this change, knows this already 07:48
tellable6 abraxxa, I'll pass your message to Nemokosch
lizmat also, this channel is not just for "Guys"
Nemokosch lizmat: sure but you can "educate" people back and forth
lizmat Nemokosch: please choose your battles wisely 07:49
tellable6 lizmat, I'll pass your message to Nemokosch
abraxxa I'm no native speaker, but isn't 'guys' gender neutral as in 'friends'?
lizmat and this particular battle does not need to be fought on any of the #raku channels 07:50
Nemokosch then who is it for...
Damn I really hope this wasn't meant to be a troll remark
Voldenet eh, better fight that battle about Nil being valid return value for defined values
i liked that one better
japhb abraxxa: Varies by community. "Folks" is considered more consistently gender-neutral, I believe. 07:54
Nemokosch They aren't mutually exclusive :p
abraxxa japhb: haven't used that, thanks 07:55
Nemokosch _we don't care about the young folks, talkin bout the young style_ 🎶 07:56
be it "folks", then. If things could be solved once and for all by changing two words, I'd be the happiest 07:57
lizmat Nemokosch: it's a lot more difficult for girls to be one of the "guys" then it is for boys
tellable6 lizmat, I'll pass your message to Nemokosch
lizmat we want to be inclusive in the Raku community, so please consider your words 07:58
and if someone on the channel to please stop a specific discussion, because it has already been discussed to death and people have moved on
then please listen
Altreus How do I change the contents of an XML::Text node? :/ 08:00
lizmat Altreus: aren't those supposed to be immutable ?
Nemokosch it was rather an aggressive attempt to blow a certain view away
Altreus Maybe I use a different lib
Nemokosch so on this we won't agree I'm afraid
Altreus lizmat: well maybe, but I just need to increment a number in the XML and this is torturous
don't really see why anything should be immutable in a document I'm altering :P 08:01
lizmat Altreus: fair enough
Altreus My last attempt managed to replace the number with 1/>
Quite how that happened I do not know
Nemokosch Altreus: is this the famous/infamous XML module? 08:02
Altreus yeah I expect it is
lizmat Nemokosch: no, this was not about blowing a view away, this was about you being a pain on the channel
tellable6 lizmat, I'll pass your message to Nemokosch
Altreus I was just looking at this LibXML module that exists
lizmat You should consider the channel as a public place where people meet for various reasons 08:03
Altreus has anyone written an XML module that isn't a low-level pain? :D
lizmat and if the other people tell you to take your discussion elsewhere, you should at some point 08:04
Altreus LibXML is, at least, mutable
lizmat
.oO( XML is a low level pain )
Nemokosch lizmat: then let me be the pain of those people who would earlier silence a view than distance themselves from radicals
and I'm definitely not okay with the thought that I should jut let the whole community fall to the most radical of them all
these people are willing to cause pain to me, while doing a lot of damage on the greater scale. If I need to pay some of that pain back, so be it. 08:05
lizmat Nemokosch: and I'm not ok with you dragging this discussion on
tellable6 lizmat, I'll pass your message to Nemokosch
lizmat Nemokosch: if you would be on IRC, you would now have been kicked off the channel to consider your words
tellable6 lizmat, I'll pass your message to Nemokosch
lizmat Nemokosch: if you continue this nonetheless, I will have no other option than go kick the discord bot from the channel 08:06
tellable6 lizmat, I'll pass your message to Nemokosch
Nemokosch This discussion never came to be, there just was an attempt to blow away what I said with a _full stop_
lizmat: then it's time for you to consider your words about inclusivity
Altreus lizmat: +1 to that. XML is a pain in the arse exascerbated by XML manipulation libraries 08:07
08:07 ChanServ sets mode: +o lizmat
Altreus What's the Raku equivalent of Mojo::DOM? 08:07
Nemokosch also I wanted to ask Altreus: is the XML module as much a resource freak as the open issue suggests? 08:08
lizmat Altreus: I wouldn't know :-( 08:14
08:16 sena_kun joined
Altreus I dunno, the script doesn't take very long 08:16
Nemokosch I remember the HTML::Tag anomaly, honestly I still don't know what made it magnitudes faster all of a sudden 08:17
lizmat 🦋 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! 08:28
08:39 frost joined
Altreus also XML bitches when you give it an IO::Path as a filename 08:48
type checking is great as long as people use appropriate types
lizmat make a PR for XML to include a Str() at the right place :-) 08:52
08:56 ChanServ sets mode: -o lizmat
Nemokosch It might be better the other way around, or at least more consistent with the builtins 08:56
I think those typically coerce to IO
What I also like about that is that it makes the semantics clearer
Altreus But I'm using LibXML now :D 08:57
you're right, I should at least feed back
Nemokosch what are you working on, if it's public 08:58
Altreus It's just a quick script I wrote to handle thumbnails for my videos 09:02
They're inkscape SVGs so it just finds the episode number and ++ 09:03
It was fine as string manipulation, but I used to have thumbnails where I'd use a screenshot from the video, so I'm trying to do that again
It's quite easy to regex a \d+ after an id is discovered; it's harder to replace two attributes of a tag with a given ID, so now I'm knee-deep in the XML quagmire trying to do a simple operation :D 09:04
09:05 jaguart joined
Altreus I don't wanna be the person who owns the JFDI XML library for raku but at this rate I'm going to be 09:05
actually XML::JFDI is the perfect name
Nemokosch what does JFDI mean? 09:07
Altreus just do it
lizmat F**ing 09:08
afk&
Nemokosch 🤣
~~F to the ing~~
Altreus I like to omit F from such responses, as an exercise to the reader 09:09
Nemokosch there should be a querySelectorAll for XML 😄 09:14
Altreus there is, it's yet another layer of obfuscation called xpath 09:16
09:20 nebuchadnezzar joined
Nemokosch huh, good to know 09:21
Voldenet XPath can also select attributes and handle xml namespaces, querySelectorAll… wasn't designed with this in mind 09:37
Nemokosch it wouldn't even make sense 09:39
Altreus Man I always get tripped over basic stuff in Raku 09:43
You'd think once I have a handle on a text node I could use it as text without having to jump through hoops
Stringifying it, surely, should be a thing 09:44
yeah! finally it works :D 09:53
El_Che Altreus: why do you hate hoops 09:58
healthy
Nemokosch isn't this mostly about the library itself? 10:06
Voldenet very likely, I remember using pQuery in perl5 (which only supports html) a few years ago and suddenly html stopped being pain 10:08
Altreus Well I mean ... yeah, but also it's every damn XML library in every language until someone comes along and writes Mojo::DOM again 10:09
But I do often run into typing issues with raku, and normally the error message is quite unhelpful 10:10
I still have trouble parsing the words "Int type object" as a "type object" noun phrase, not an "Int type" adjective phrase
my brain does not like the grammar :D 10:11
10:20 evalable6 left, linkable6 left 10:21 linkable6 joined
Nemokosch let's write Int.Int instead? 😛 10:22
10:22 evalable6 joined
by the way... 10:23
Int.Int actually works and returns the type object, however Int.Numeric throws an error
Altreus It does seem like a contradiction, in a sense 10:24
Use of uninitialized value of type Int in numeric context 10:25
Is an "uninitialized value of type Int" the same as an "Int type object"? The former phrasing is *way* clearer
Nemokosch it happens to be the same thing. Think of it as one cowboy wearing two different hats at once 10:27
another interesting thing coming up: 10:29
well it wouldn't load, anyway 10:30
10:31 Nemokosch joined
Nemokosch m: my Int $origin; my Numeric $nversion = $origin; my Real $rversion = $origin; dd $origin, $nversion, $rversion; 10:31
camelia Int $origin = Int
Int $nversion = Int
Int $rversion = Int
Nemokosch my Int $origin; my Numeric $nversion = $origin; my Real $rversion = $origin;
tellable6 2022-09-05T17:28:32Z #raku <lizmat> Nemokosch: no, it's me who missed adding .htm and .html in a #html group
2022-09-06T07:05:37Z #raku <japhb> Nemokosch: If you *must* fight that fight -- do it somewhere else. NOT HERE.
2022-09-06T07:07:11Z #raku <japhb> Nemokosch: STOP. TAKE THIS ELSEWHERE.
2022-09-06T07:14:36Z #raku <japhb> Nemokosch: Is there a reason you have not taken this argument elsewhere? I'm asking you not to have that argument *here*.
Nemokosch after doing this, they will all store the Int type object...
tellable6 hey Nemokosch, you have a message: gist.github.com/bd885840c3cd347345...11ea314c6c
2022-09-06T07:24:16Z #raku <japhb> Nemokosch: You have made your point. Now please STOP and take your rant elsewhere.
2022-09-06T07:47:55Z #raku <lizmat> Nemokosch: whatever people call their default branch, is their prerogative
2022-09-06T07:48:16Z #raku <abraxxa> Nemokosch: thanks, but I think everybody that has given attention to this change, knows this already
hey Nemokosch, you have a message: gist.github.com/7257894329b881ff35...36ac69b55c
2022-09-06T07:49:14Z #raku <lizmat> Nemokosch: please choose your battles wisely
2022-09-06T07:57:43Z #raku <lizmat> Nemokosch: it's a lot more difficult for girls to be one of the "guys" then it is for boys
2022-09-06T08:02:56Z #raku <lizmat> Nemokosch: no, this was not about blowing a view away, this was about you being a pain on the channel
Nemokosch that was gonna happen, sorry... 10:32
m: my Int $origin; my Numeric $nversion = $origin; my Real $rversion = $origin; dd $origin, $nversion, $rversion;
camelia Int $origin = Int
Int $nversion = Int
Int $rversion = Int
10:32 Nemokosch left
Nemokosch so yeah 10:33
Int implicitly fits into Numeric and even Real, however, "explicitly" (calling the methods) it doesn't seem to 10:35
altreus™ I'mma respond here so I don't make tellable spam you :P 10:38
Nemokosch Feels like this is issue-worthy imo 10:39
altreus™ I guess the idea of asking a type object for a type object of a different type, even though they're related, is silly
Then again, maybe it's $var.Numeric ...
I really like the "null object" pattern but it does seem to have its pitfalls 10:40
Nemokosch this is another case where I think the lack of consistency is the problem, not one behavior or the other
altreus™ It has been my experience of raku that there are consistency issues 10:42
Nemokosch if (Int) can be assigned to a Numeric or Real variable, it should be able to at least return itself when trying to coerce them
*coerce to them
I don't even know which candidate is called when doing Int.Int, but it's definitely not a method of Int itself 10:46
the true irony would be if it took the Int method straight from Real
altreus™ I think raku can tell you that, no? 10:48
Nemokosch perhaps it can, I just don't know how 😅 10:50
waiit 10:57
Real.Real also doesn't work
11:06 grondilu joined
grondilu Hi all 11:06
if I have a Blob made with literals, can I expect it to be compiled before runtime or do I have to explicitely use BEGIN or constant $ = ? 11:07
as in, is it useful to write `constant $ = Blob.new: ^10;` instead of just `Blob.new: ^10` ? `^10` is just an exemple here, I have in mind a case where it would rather be a long list of literals. 11:11
Nemokosch docs.raku.org/language/variables#i...t_(Prefix) 11:13
seems to me the answer is positive, in all senses 🙂
From what I see, constant cannot even be added if the expression can _not_ be evaluated at compile time 11:15
11:23 Nemokosch joined, Nemokosch left
grondilu I get that using `constant` can be useful, but is it necessary considering the optimizer might very well compile any expression that will clearly not change. 11:28
such as a Blob made from literal values.
Altreus Presumably the idea is not about what the compiler does but what it (or the runtime) allows you to do with the resulting variable 11:29
Nemokosch oops, misread the question 11:31
grondilu I do worry about what the compiler does as my concern is performance here
Nemokosch I thought it was whether `constant` does guarantee compile time execution 11:32
grondilu: I did a little benchmark 11:34
raku --profile -e 'constant $ = Blob.new: ^10' 11:35
versus
raku --profile -e 'Blob.new: ^10'
it was radically faster with constant 11:36
executing code: 10ms vs 80ms, 1640 call frames vs 21805 call frames... 11:37
on MoarVM 2022.04
11:38 Nemokosch joined 11:39 Nemokosch left
CIAvash Altreus: raku.land/cpan:HANENKAMP/DOM::Tiny ? 11:39
grondilu Nemokosch: noted 11:41
tellable6 grondilu, I'll pass your message to Nemokosch
Altreus CIAvash: yeah! Nice! 11:42
This looks like the Mojo::DOM interface as well 11:43
> This module started as a port of Mojo::DOM58 from Perl 5 11:44
well there we are then :D
11:54 grondilu left 12:05 reportable6 left 12:09 reportable6 joined
rypervenche Welp, it looks like I'm coming back to Raku to make it my scripting language. Rust has been amazing, but for the quicker things and the regexes *drool*, I haven't found a language that pleases me like Raku did. 12:38
Nemokosch gee gee 12:58
~~come back to Hungarian~~
13:09 evalable6 left, linkable6 left 13:11 linkable6 joined, evalable6 joined 13:16 archenoth joined
Altreus I cannot for the life of me figure out how to replace a text node using DOM::Tiny 13:35
I can't even figure out how to *get* a text node if I don't know how deep it is
And this looks, to me, like I'm supposed to go $parent.text = 'new text', but it doesn't work github.com/zostay/raku-DOM-Tiny/bl...L.pm6#L277 13:36
It says it's immutable
I can .replace(3) on the text node 13:40
where 3 is the new text
13:40 frost left 14:06 bigdata left 14:26 vasko left 14:44 samcv left, samcv joined 14:47 Heptite joined 14:53 abraxxa left 14:54 reol joined
reol is the following code supposed to compile and run without complaints (note: no buf8.new)? my buf8 $x; $x.write-uint16(0,1); 15:10
[Coke] new isn't needed on native types (lower case type names) 15:30
... in general, but doesn't matter for Buf either: 15:31
reol ok. but what is $x.write-uint16(0,1); doing then?
[Coke] m: my Buf $y; $y.write-uint16(0,1)
camelia ( no output )
[Coke] in both cases, by the time you call .write-uint16, you have an un-initialized Buf to work with 15:33
(calling methods on natives upscales them to objects)
reol it doesn't seem to work that way. because $x,elems is not updated by the write 15:34
unless you call buf8.new 15:35
[Coke] maybe the write doesn't fail on an unit version but should. 15:37
*un-init'd*
you don't need the native version to see this behavior: 15:38
reol it is quite confusing for a raku beginner. i've literally no idea what is going on with so many things. like why does $x.elems even return 1 or why $x.bytes isn't defined and so on :)
[Coke] m: my Buf $y; say $y.elems; $y.write-uint16(0,1); say $y.elems 15:39
camelia 1
1
[Coke] m: my Buf $y = Buf.new; say $y.elems; $y.write-uint16(0,1); say $y.elems
camelia 0
2
[Coke] also Buf is a role, not a class. 15:40
yes, this seems buggy to me, might be worth a ticket.
reol the behavour is as expected if the object is constructed by buf8.new(), but without construction it silently produces garbage like .elems returning 1 15:43
15:44 simcop2387 left
Nemokosch .elems is a method of _lists_ though, right? 15:44
15:44 perlbot left 15:45 perlbot joined
I don't know by heart but it's quite possible that it just isn't meant to be used for what you are trying to use it 15:46
reol the docs say (Bob) method elems
15:46 simcop2387 joined
Nemokosch it says Blob:D though 15:46
where D stands for DEFINITE iirc
reol Maybe. but i'm just following docs.raku.org/type/Buf
Nemokosch so when you don't initialize it, you won't get that call - you will access the Any call, which converts to a list 15:48
and here we arrive to something I have already complained about: even not DEFINITE values turn into one element lists containing them
This is not a "bug" but definitely not a feature either, if you ask me...
reol I forgot to initialize with buf8.new(). It is not intentional! But the compiler should generate an exception 15:49
I though that is what is enforced by "method write-uint16(buf8:D:". 15:50
Nemokosch docs.raku.org/routine/write-int16 15:52
looks like if you start writing it, it can return an instance out of thin air?
the bottom definition 15:53
reol i will try
it returns a new instance 15:54
this is crazy
hard to detect
Nemokosch where did you hit problems? 15:58
reol I just forgot to initialize an object of type buf8 with buf8.new. the program runs though :) 15:59
now it is clear that every write-uint16() produced a new instance that went straight to the garbage collector 16:00
16:03 sena_kun left, sena_kun joined
Nemokosch what was the write-uint16 for? 16:04
reol I'm implementing an RPC protocol just to learn a bit of raku 16:05
Nemokosch tricky 16:10
reol Now I read more of the API docs and the little problem I had is definitely intended behaviour. Thank you for helping out. 16:12
Nemokosch 🍬 16:14
16:18 discord-raku-bot left, discord-raku-bot joined 16:37 clarjon1 joined 16:56 discord-raku-bot left 16:57 discord-raku-bot joined 17:44 TieUpYourCamel left 17:51 TieUpYourCamel joined 18:05 reportable6 left 18:07 epony left, reportable6 joined 18:26 epony joined
reol Does anyone know how the argument evaluation order in raku is defined? 18:34
tonyo what're you trying to figure out? 18:37
or, what behavior, specifically
reol eval order for f(a(),b()) 18:38
ugexe m: sub foo($a = say(1); $b = say(2)) { }()
camelia 1
2
reol i found that comma has list associativity but i don't know what that means.
18:40 Kaiepi left
Nemokosch or anyway, it would lead to your question 18:40
because it basically means that the arguments of the operator chain are taken as one list and passed to one function call
tonyo lists should be ordered, iirc argument evaulation does not race so b() shouldn't ever precede a() 18:41
m: sub foo($a, $b) { $a.say; $b.say; }(say(1), say(2));
camelia 1
2
True
True
tonyo that may be untrue on colon pairs, though 18:43
m: sub foo(:$b, :$a) { $a.say; $b.say; }( a => say('a'), b => say('b') && False ); 18:44
camelia a
b
True
False
tonyo this appears to be where that would be happening github.com/rakudo/rakudo/blob/mast....nqp#L6499 18:46
which would lead to the implementation of nqp's call here: github.com/Raku/nqp/blob/e01f299b4...kdown#call 18:50
and looks like it's undocumented which means i wouldn't rely on ordering 18:51
but generally safe to assume a before b since it's a list
Nemokosch anyway, this should be specified (or at least noted as "undefined behavior" a la C) for the language itself, not the implementation 18:55
reol ty. I think I will manually serialize arguments. I looked at the following document, but I didn't find anything regarding argument evaluation order except in conjunction with infix operators. docs.raku.org/language/operators#O...precedence
19:12 Heptite left 19:19 Kaiepi joined
tonyo nemokosch, explicitly undocumented means undefined behavior 19:37
reol: my guess is mainly that it evaluates in list order because of how it gets serialized into NQP and you can see what it actually looks like if you send raku --target=ast -e '...' which shows argument bindings happening as numbers 19:41
and ordered
Nemokosch tonyo: I'm not talking about NQP, I'm talking about Raku 19:46
tonyo not going to engage in pedantry 19:47
Nemokosch this is not pedantry lmao, just because something works in a certain way in Rakudo, it's not necessarily relevant for people learning Raku 19:49
tonyo yes and the myriad of implementations will definitely confuse beginners trying to figure out the evaluation order of arguments.
reol the question is whether this is a mere implementation artefact
the question is whether this is a mere implementation artefact 19:50
tonyo reol: i would assume so until documented otherwise
Nemokosch NQP is meant to be used for compilation, it is a Rakudo thing
tonyo if you want to be a pedant ding dong please do it elsewhere
Nemokosch I wonder what benefit you have from deliberately playing stupid. Saying that something is documented for Raku because <insert something about a Rakudo implementation detail> makes no sense whatsoever. 19:52
tonyo if you want it documented, you could spend less time asking other people to do it and more time learning where the rakudo source is so you can track down what is actually happening so it can be documented and less time arm-chairing guesses and thinking up inane things to argue about
i didn't say it was documented, try reading 19:53
for raku, anyway
19:54 guifa left
Nemokosch hm, I wonder who engages in pedantry. Thanks for the constructive mentality though, and implicitly blaming me for not having the knowledge and audacity to define and document core Raku behavior. 19:54
tonyo pedantry is focusing minor details of something that has no real impact of anything. what exactly is arguing about raku vs implementation specific doing at this very moment when there is one implementation of the language and no ambiguity to clear 20:00
i am explicitly blaming you, by the way, i've linked you to source multiple times where your topic of the day could've been answered with the same link as yesterday 20:01
Nemokosch Maybe you are here from the Perl days but Raku is said to have a standard - no matter the implementation, it doesn't count unless it's specified. If the implementation does the right thing, it should be explicitly noted, this is by no means "pedantry" 20:03
tonyo and rather than asking a question come in here and argue about it until people are blue in the face
Nemokosch Especially just one day after the discussion with guifa mentioning how good it would be to make another Raku compiler, _just for the sake of having one more_ and breaking the Raku=Rakudo implication
tonyo what implementation are you worried about confusing people with? 20:04
Nemokosch What sort of question is this even. Read what I said one more time. 20:05
tonyo what implementation are you worried about confusing people with? maybe this will explain how that topic isn't a minor detail at the moment 20:06
and how the topic at all isn't pedantry 20:07
Nemokosch I don't think anything could help if you just don't understand what having a standard means
tonyo got it, so it's just pedantry
Nemokosch got it, so you're gonna insist on playing stupid
20:08 ChanServ sets mode: +o lizmat
lizmat Nemokosch: I have been afk for most of the day 20:08
tellable6 lizmat, I'll pass your message to Nemokosch
lizmat but it appears that you are still just wanting to be an annoyance on the channel
so, please please PLEASE tone down 20:09
Nemokosch you could check tonyo as well sometimes
20:09 discord-raku-bot was kicked by lizmat (Your behavior is not conducive to the desired environment.))
lizmat sorry people, but I got really fed up as many other people have 20:10
20:11 discord-raku-bot left 20:14 Nemokosch joined
Nemokosch lizmat: just answer this question for one before going at me: is the specification of NQP the specification of the Raku language? 20:15
tellable6 2022-09-06T11:41:45Z #raku <grondilu> Nemokosch: noted
2022-09-06T20:08:35Z #raku <lizmat> Nemokosch: I have been afk for most of the day
lizmat to answer your question: afaik NQP is NQP, and Rakudo is an implementation of the Raku Programming Language using NQP
Nemokosch this is all I was saying. Everything works some way in the runtime, some parts are specified for NQP and again some parts are specified for the Raku language 20:20
lizmat no, you were saying a lot of other things as well
Nemokosch after this was received with personal remarks 20:21
sorry but I'm not a punchbag
lizmat in any case, you can now be congratulated for being the reason that the discord people will not be connected to IRC anymore
Nemokosch It wasn't my doing, and I stand by my words: tonyo started provoking me for the second time in a couple of weeks. 20:23
20:23 Nemokosch was kicked by lizmat (Your behavior is not conducive to the desired environment.))
lizmat enough is enough 20:23
20:25 Nemokosch joined 20:27 ChanServ sets mode: +oo vrurg japhb 20:32 bigdata joined 20:34 bigdata left, bigdata_ joined 20:35 bigdata_ is now known as bigdata
Nemokosch Okay... what next? 20:51
20:51 Nemokosch left
lizmat Nemokosch: you seem to assume that anybody who does not agree with you, or your priorities, is attacking you 20:54
tellable6 lizmat, I'll pass your message to Nemokosch
lizmat as long as you assume this, there is little room for you on any of the #raku channels
open source is about being collaborative, and you are not collaborating 20:55
as tonyo pointed out, you are mainly talking and apparently not willing to put in effort to make things better in the Raku(do) core 20:56
be it in documentation, or in improving the code, or helping other people doing so
you are a time sink for the Raku Community at the moment 20:57
and time is something that is precious to everybody in open source, as it is only time that people can spend on open source
you have now been kicked here because of your behaviour on the discord Raku channel 20:58
which took down all of discord as well, as the owner of the bot no longer wishes to run it 20:59
(discord on this channel, of course :-)
I suggest you think about this very long and very hard
as an older person, I can only suggest you decide to choose your battles well 21:00
vrurg lizmat: he's gone. Won't see it all. 21:01
lizmat it will help you here, as it will help you with your life in general
I'm pretty sure he checks up on irclogs.raku.org/raku/live.html
and if not, well... I hope he will be in a happier place 21:02
vrurg That sounds, well, grim... ;)
lizmat it's not meant to be grim: he clearly wasn't happy here 21:03
as he felt that many people were attacking him
why you would want to stay in a place where people are attacking you, is beyond me
21:04 Nemokosch joined
lizmat especially online, as there are so many other places to be 21:04
vrurg Just kidding. But, yes, I barely remember a constructive discussion with him.
Nemokosch lizmat: no, I don't assume that anyone who doesn't agree with me is attacking me 21:05
tellable6 2022-09-06T20:54:41Z #raku <lizmat> Nemokosch: you seem to assume that anybody who does not agree with you, or your priorities, is attacking you
Nemokosch actually, I don't even think this has to be a "me-thing"
vrurg Nemokosch: and yet, somehow you make people think so and react correspondingly. Just take a break and think about it. 21:06
Nemokosch I think anybody could read how the last discussion went and come to a conclusion. Again, sorry n times for not knowing enough after one years of using Raku mainly in my free time beside work, to be of more use. I do think I try my best, or "good enough". 21:08
I do think I'm trying to help others whenever I can
lizmat I think many of the regulars on the channel have a different opinion on that 21:10
Nemokosch But many would share it
I know that I am often confrontative but it doesn't help when even a pondering "this should be defined in the language" is received with lecturing and assuming bad faith 21:11
lizmat so why are you confrontative ? 21:12
Nemokosch I'm generally dealing with loads of bad faith assumptions, I wonder if you notice that...
vrurg Nemokosch: no good deeds justify the bad ones. I'm not a frequent visitor to this channel, can't tell if you are helpful or not. What I did see today is that word `stupid' has been used in a reply to word `pedant'. Just to wind it down to a single point of failure (there are more, actually).
lizmat Nemokosch: so you came on the channel for the first time, and people started having bad faith assumptions about you immediately ? 21:14
gfldex You are not "confrontative". You are arrogant. You are not just unpolite, you are rude. You ignore the fact that you are dealing with humans, who have feelings. When was the last time you apologised? 21:15
Nemokosch it wasn't a sole word, it was the whole sentence put in a bantering way, and it wasn't a sole word from my side either
lizmat Nemokosch: could you at least entertain the suggestion that maybe, just maybe, it was your behaviour that caused people having bad faith assumptions about you ?
Nemokosch gfldex: one could say that about quite a number of people here, yet I have to take it all. 21:16
vrurg Now, to get things done right we have problem-solving. For making something a standard we have roast and PRs. There are docs. Those are the places to resolve technical matters.
Geth ecosystem: 232fd3bbf6 | (Nick Logan)++ (committed using GitHub Web editor) | META.list
Rename Perl6->Raku and master->main
lizmat ugexe++
Nemokosch vrurg: and I am doing that, whenever I can clearly point out the thing. I have opened a number of issues and I did care to close the issue when I felt we cannot progress with it in a constructive way 21:18
Geth ecosystem/main: 135 commits pushed by 8 authors
review: github.com/Raku/ecosystem/compare/...2fd3bbf6ee
vrurg Nemokosch: So, continue doing so. 21:19
Nemokosch gfldex: one more note - I have an easier time to recall when I apologised than when someone apologised me
vrurg Nemokosch: In your reply to gfldex you prooflessly offended a group of people. This is unacceptable. But you get this route without event noticing what you do. 21:20
Nemokosch Again, he prooflessly offended me. 21:21
lizmat irclogs.raku.org/search.html?query...annel=raku
vrurg Now, this is not the place to proceed with all this altercation. As a member of Community Affairs Team I request Nemokosch to take a break and stop discussing any personal/relational matters here.
lizmat vrurg: want me to kick Nemokosch now ? 21:22
vrurg If there any single word not related to a technical matter.
Nemokosch I'm fine with not discussing personal/relational matters
Sincere question: what am I allowed to do when I feel that I am offended? 21:23
Because right now it just seems "you deserve it, c'est la vie" 21:24
lizmat Nemokosch: what is more important: your ego, or the Raku project ?
vrurg Nemokosch: This is the last question of the kind. Next time you ask me in PM. 21:25
Nemokosch: otherwise would you feel offended then take a deep breath and submit a request to CAT when cooled down.
Nemokosch what is CAT? 21:27
~Caterpillar~
lizmat Community Affairs Team
enforcing the Code of Conduct in Raku spaces
reol m: {}{} 21:28
camelia ( no output )
reol m: {} {}
camelia ===SORRY!=== Error while compiling <tmp>
Unexpected block in infix position (missing statement control word before the expression?)
at <tmp>:1
------> {}⏏ {}
expecting any of:
infix
infix stopper
Nemokosch the first one is indexing a Map, no? 21:29
lizmat m: dd {a => 42}{}
camelia {:a(42)}
lizmat it's a zen slice on an empty hash
Nemokosch "zen-slicing"
or decont, I still don't know if these are meant to be the same thing
lizmat Nemokosch: you still didn't answer my question 21:30
Nemokosch I was going to, don't worry
I just thought it also wouldn't be nice to go back when there is actual content on the chat :DD
lizmat ... 21:31
Nemokosch If my ego were more important, I would have left half a year ago. It's not that convenient to always be that one, whether you believe it or not... 21:32
vrurg lizmat: BTW, what does `rak --json-per-file` do?
lizmat slurps files and attempts to interpret as JSON and then present that to your pattern (usually a WhateverCode or Callable) 21:34
vrurg (facepalm) long to explain, but I did the right thing, haven't checked the result properly. Thanks! 21:36
lizmat % rak --json-per-file '*.<auth>' */META6.json --unique 21:38
zef:lizmat
cpan:ELIZABETH
ah... I thought I missed one module, but it turns out one repo wasnt't checked out on HEAD :-) 21:40
reol Raku transforms my unintentional errors into executable garbage with a consistency that is actually astonishing. 21:44
21:46 justache is now known as justache_test, justache_test is now known as justache
Nemokosch It resembles Javascript in this regard somewhat 21:54
21:55 Sgeo joined
Nemokosch but the exciting part is when you execute something nobody ever did before :D 21:55
reol I'm not quite sure what { say "hi"; }{} does, maybe it is just a fancy NOP. Reminds me of the early GCC days where a forgotten semicolon could have cost you hours to track down. At least it didn't compile.
Nemokosch I couldn't tell at first if it runs or not
lizmat m: dd 42{}
camelia 42
Nemokosch { say "hi"; } -> this is a block, that much is sure
lizmat m: dd 42{"a"} 21:56
camelia Failure.new(exception => X::AdHoc.new(payload => "Type Int does not support associative indexing."), backtrace => Backtrace.new)
reol m: { say "hi"; }{}
camelia ( no output )
Nemokosch oh yeah, it's a "decontainerized" block
bingo
lizmat one could argue that zen slicing anything that is not an Associative, should throw
gfldex reol: you can ask Rakudo what it thinks your Raku code does like so: raku --target=AST -e '{ say "hi"; }{}' 21:57
Nemokosch currently, <>, {} and [] does the same thing, right?
reol i mistakenly typed an addition { which my editor auto completed into {}, disabling a block which caused a bug to turn up in a seemingly unrelated portion of code. wow
Nemokosch are blocks executed in sink context? 21:58
21:58 sena_kun left
Nemokosch perhaps this question doesn't sound as good in ENglish as it sounded in my head... 21:58
lizmat m: { say "executed" }
camelia executed
Nemokosch I tried to ask about the logical implication of "code object in sink context" -> "the code gets executed" 21:59
lizmat and I answered with a code example 22:00
Nemokosch tbh I never thought sink context could "do more" for certain data than any non-sink context, even though this makes sense 22:02
lizmat m: class A { method sink() { say "sunk } }; A.new 22:03
camelia ===SORRY!=== Error while compiling <tmp>
Unable to parse expression in double quotes; couldn't find final '"' (corresponding starter was at line 1)
at <tmp>:1
------> A { method sink() { say "sunk } }; A.new⏏<EOL>
expecting …
lizmat m: class A { method sink() { say "sunk" } }; A.new
camelia sunk
22:05 bigdata left
vrurg m: class A { method sink() { say "sunk" } }; { A.new } 22:05
camelia sunk
vrurg m: class A { method sink() { say "sunk" } }; say { A.new }
camelia -> ;; $_? is raw = OUTER::<$_> { #`(Block|4837339367056) ... }
vrurg m: class A { method sink() { say "sunk" } }; say { A.new }()
camelia A.new
vrurg As simple as it gets...
22:07 Nemokosch left 22:08 Rog joined, Rog is now known as Rogue2017
reol It is actually funny 22:11
m: { die 1; }{ die 2; }{ die 3; }
camelia 2
in block <unit> at <tmp> line 1
gfldex m: { die 1; }{ die 2; die 3; } 22:14
camelia 2
in block <unit> at <tmp> line 1
reol m: { die 1; }{ {die 2;}{} }{ die 3; }
camelia 3
in block <unit> at <tmp> line 1
lizmat m: CATCH { .resume }; die "dead"; say "alive" 22:15
camelia alive
gfldex Is that a SemiList in the postcircumfix:<{ }> ?
Silly me, I can just ask Rakudo.
- QAST::Op(call &postcircumfix:<{; }>) <wanted sunk> :statement_id<1> { die 2; die 3; } 22:17
it is :)
22:23 euandreh left 22:33 Rogue2017 left 22:37 ChanServ sets mode: -o japhb 22:50 reol left 23:05 Discord_Rog joined 23:10 euandreh joined 23:11 guifa joined 23:15 euandreh left 23:16 euandreh joined 23:36 Discord_Rog left