🦋 Welcome to Raku! raku.org/ | evalbot usage: 'p6: say 3;' or /msg camelia p6: ... | irclog: colabti.org/irclogger/irclogger_log/raku
Set by ChanServ on 14 October 2019.
00:03 natrys left
Xliff raydiak: Yep. 00:03
Trying to puzzle out why anonymous methods can't be named!
A better question: How can you name anoymous methods! :) 00:04
raydiak I fixed replit.com/@Xliff/MobileBeneficialPixels
Xliff raydiak++
What was the problem?
raydiak a few different things. one of the major things was, since it's a line-oriented format, I redefined the whitespace rule to not gobble up newlines 00:05
Xliff Ah. 00:06
raydiak are you asking about that method problem in the gist you shared above? 00:15
Xliff Yep. That too 00:21
Was still waiting for you to finish describing your fix. I guess I will look into it in a bit.
Digging deep in the source to figure out how to name a Method. Not having much luck. :/ 00:22
raydiak yes, read what I did, see if it makes sense to you
Xliff Day's getting long in the tooth, though.
OK. One sec.
raydiak for the other thing, I'd use a FALLBACK. if you're up for a few more minutes, I can probably get a working example 00:23
00:23 aborazmeh left
Xliff Yep. Will be here. 00:25
Actually, FALLBACK isn't what I want.
I want to be able to create a Method object (via whatever avenue), then reassign the name (.name) of that method instance.
radiak: Your solution on MobileBeneficialPixels is perfect. Thank you! 00:27
Will have to circle back and apply it, tomorrow.
raydiak you're totally welcome, happy to help. we can work on the other thing another time if you want to call it a night 00:28
Xliff Well... I'm here. Give it a shot. 00:29
raydiak if you're just trying to get lvalue accessors for a cstruct, why wouldn't a fallback work? 00:30
Xliff That's one part. But not all of it. 00:31
Go ahead and request write, while I'm here.
raydiak I think I just did 00:34
if you don't see the request I'll try again, this thing is a little flakey 00:35
Xliff Yeah. It is. Neat though. Just accepted.
Especially for Recent repls. 3 months? Really?
00:41 aborazmeh joined
raydiak looks like...you won? 00:44
Xliff hehehe. 00:45
No. Still want to change the name associated with the Method object. If only for display purposes and bragging rights.
But this will do for now.
00:45 ggoebel joined
raydiak this is a little out of my experience, I doubt I'll be much help on this one before you go to bed 00:46
Xliff No worries. You've done your part for the day! 00:47
raydiak heh cool, glad I could help 00:48
guifa2 Xliff: anon method foo (|) { … } ? 00:53
my &foo = anon method bar { self.say }; say &foo; "hello world!".&foo; 00:56
evalable6 bar
hello world!
00:57 aborazmeh left
Xliff guifa: Now do that from a string. 00:59
01:06 abraxxa left 01:07 kvw_5 joined, abraxxa joined 01:10 kvw_5_ left
guifa2 Xliff: maybe 01:15
m: role Beknownst[Str $name] { method name { $name } }; my &foo = anon method bar { } but Beknownst['not-bar']; say &foo;
camelia not-bar
Xliff guifa: Um. No. 01:16
guifa2 lol I know it's ugly
Xliff It's also not correct.
m: role Beknownst[Str $name] { method name { $name } }; my &foo = anon method bar { } but Beknownst['not-bar']; say &foo.^name; 01:17
camelia Method+{Beknownst[Str]}
Xliff m: role Beknownst[Str $name] { method name { $name } }; my &foo = anon method bar { } but Beknownst['not-bar']; say &foo.name;
camelia not-bar
Xliff Humm... I stand corrected
guifa2 role Beknownst[Str $name] { method name { $name } }; my &foo = anon method bar { } but Beknownst['not-bar']; &foo.^set_name('Method'); # last bit restores the name to Method
Xliff LOL, guiga! That might work.
guifa, even!
guifa2 (name of the mixed class/role, I mean) 01:18
I maybe do the ^set_name trick in DateTime to cover my tracks ^_^
Xliff Would prefer somethign cleaner.
Will look in DateTime to steal, then! :)
guifa2 haha that's all I do though
Xliff But that actually just. Might. Work
guifa2 I mix in a role, and immediately change the name of the mixed in class 01:19
ugexe a role with a single attribute allows you to do
m: role Beknownst{ has $.name }; my &foo = anon method bar { } but Beknownst("not-bar"); say &foo;
camelia not-bar
Xliff Thanks, ugexe
guifa2 ^^ I forgot about that, single attribute = automade
ugexe++ 01:20
also xliff I meant to say I use that trick in DateTime::Timezones, rather.
Xliff OK, thanks! 01:23
guifa2 oh
also I'm super dumb
m: my &foo = anon method bar { }; &foo.set_name('not-bar'); say &foo; say &foo.WHAT; 01:24
camelia not-bar
guifa2 I had been using ^set_name which of courses acted on the Method type, rather than the method itself. Duh.
Xliff See! That's what I was looking for! LOL! 01:25
guifa2 I mean, it's nice to know that there are complicated ways to do things but … sometimes the simpler is best haha 01:26
moon-child why is it set_name instead of set-name?
guifa2 moon-child: the naming convention was to use snake_case for internally methods and kebab-case for externally methods 01:28
moon-child right
codesections it's not followed 100%, but that's the idea anyway
guifa2 hence past tense ;-) 01:29
codesections wait, really? That changed at some point? It's still in the docs...
guifa2 I feel like I remember jnthn talking about perhaps changing it 01:33
RakuAST uses kebab case exclusively 01:34
(well, when in all lowercase, at least. Pascal or allcaps kebab elsewhere) 01:35
codesections interesting. My first reaction is that it's a shame to give up that extra info. But I'm sure jnthn thought about it for longer than the 10 seconds I have & had a good reason for the change 01:36
in any event, I guess we should update the docs 01:37
moon-child one thing that comes to mind is that single-word names will be ambiguous 01:39
guifa2 ^^ was just typing that
codesections true. But (imo) having a small(ish) fraction of names be ambiguous is better than all of them 01:41
babies and bathwater and all that
moon-child I think consistency is far more important
codesections though I can see the argument that misleading info is worse than none
moon-child ^ that too 01:42
guifa2 the "is implementation-detail" trait I belive is the preferred method of indicated internalness
indicating* 01:43
codesections ah, that makes a certain amount of sense
guifa2 Yeah, I think that was added in what? about a year ago now? 01:44
01:45 aindilis` joined, aindilis left
guifa2 docs.raku.org/language/traits#is_i...tail_trait <-- oh hey, almost exactly. 2020.05 compiler 01:45
codesections (I've kind of wondered whether to use camelCase for anything in my own codebase, but have hesitated because of the it's-not-clear-for-one-word-terms issue. Well, and I haven't picked out a clear category I want to separate) 01:46
guifa2 I regrettably support it in Intl::CLDR 01:47
CLDR had an identity crisis and switched fom camelCase to kebab-case about half way through its life
codesections I have an odd fondness for camelCase 01:48
guifa2 unfortunately, while the data can adjust, the format/keys don't 01:49
moon-child uses camel case for work. Can't stand it
codesections moon-child: in JS?
moon-child no
well, actually--there is some ts, which does use camelcase, but it's mostly d
codesections interesting. I wouldn't have guessed that D would use that convention 01:50
01:56 gordonfish left 01:58 aindilis` left 02:02 Sgeo left 02:05 Sgeo joined 02:18 Sgeo left 02:22 gordonfish joined 02:23 monkey__ joined 02:29 Sgeo joined 02:31 Sgeo left 02:32 Sgeo joined 02:34 frost-lab joined 02:37 monkey__ left 02:59 lucasb left 03:09 Xliff left 03:21 abraxxa left 03:24 abraxxa joined 03:57 benkolera joined 04:27 abraxxa left 04:28 abraxxa joined 05:05 neshpion left 05:17 aluaces joined 05:27 abraxxa left 05:29 abraxxa joined 05:38 jmerelo joined 05:41 parabolize left 06:08 guifa2 left 06:17 ufobat joined, holyghost left
Geth doc: wukgdu++ created pull request #3871:
Update link in Chinese translation
06:19 PotatoGim joined, caasih left 06:20 ufobat left, ufobat joined 06:22 caasih joined
Geth doc: bf04e2cf14 | wukgdu++ (committed by Juan Julián Merelo Guervós) | resources/i18n/zh/README.zh.md
Update link in Chinese translation
06:34 wamba joined 06:45 rindolf joined 07:06 benkolera left
samebchase- codesections: I like using CamelCase for class names, types and kebab-case for everything else. 07:14
07:18 Sgeo left 07:33 brtastic joined 07:35 pecastro joined 07:36 dakkar joined 07:48 benkolera joined
japhb CBOR::Simple 0.0.1 is up. It passes a few basic tests, but there are large swaths of the spec it doesn't handle yet, and it's got no real docs. But I figured I'd get the first partially-functional version uploaded to fez before I called it a night. 07:50
07:53 kst left 07:54 sena_kun left 08:02 sena_kun joined
El_Che weekly: twitter.com/rakuconference/status/...57664?s=19 08:05
notable6 El_Che, Noted! (weekly)
08:48 aborazmeh joined 09:10 aborazmeh left 09:12 ecocode joined 09:26 |oLa| joined 09:34 __jrjsmrtn__ left 09:36 __jrjsmrtn__ joined 09:46 wamba left 09:50 sena_kun left 09:58 sena_kun joined 10:08 benkolera left 10:21 Black_Ribbon left 10:37 Kaiepi left, Kaiepi joined 10:43 Kaeipi joined 10:44 Kaiepi left 11:01 ChanServ sets mode: +o lizmat
lizmat 🦋 Welcome to the main IRC channel of the Raku Programming Language (raku.org). This channel is logged for the purpose of keeping a history about its development | evalbot usage: 'm: say 3;' or /msg camelia m: ... | Logs can be inspected at colabti.org/irclogger/irclogger_log/raku 11:04
11:05 ChanServ sets mode: -o lizmat 11:25 wamba joined 11:43 |oLa| left
samcv good news everyone. We are famous now twitter.com/msdevUK/status/1384809132071571456 I mean not actually. But. I thought it was interesting... 11:44
moritz enough to retweet it :D 11:49
timotimo that's cute 11:52
jmerelo samcv: :-) 12:02
moritz btw in genreal, if you come across any raku-related tweets you find worth sharing, feel free to reply or retweet mentioning @raku_news; I'll get a notification about and will retweet 12:03
I don't backlog IRC reliably anymore 12:04
(also, if somebody wants to help manage the @raku_news twitter account, please let me know)
12:10 guifa2 joined 12:20 lizmat_ joined 12:24 lizmat left, lizmat_ is now known as lizmat 12:26 guifa2 left
codesections samebchase: I meant camelCase (first word lowercase) as distinct from PascalCase (all words have initial capitals) – though I acknowledge that some people call both camel case 13:09
13:19 dataange` left 13:20 dataangel joined
[Coke] (licensing) in the olden times, we'd ask Allison with TPF when we had that sort of question. 13:28
13:50 wamba left 13:52 natrys joined 13:56 jmerelo left 13:58 wamba joined 14:11 domidumont joined 14:12 frost-lab left 14:15 Sgeo joined 14:20 b2gills left, b2gills joined 14:21 kurahaupo_ joined 14:24 kurahaupo left 14:32 parabolize joined 14:33 ufobat_ joined 14:37 ufobat left 14:38 asymptotically joined 14:51 wamba left 15:03 aborazmeh joined 15:43 aborazmeh left 15:49 sno joined 16:04 wamba joined 16:28 asymptotically left 16:37 brtastic left 16:38 dakkar left 16:52 wamba left 16:59 pkx joined
pkx hiya - I should know how to do this & it seems simple enough, but, I can't figure it out: 16:59
suppose I have an array @f = (1, 2, 3) 17:00
and I want to call a function that is s($x,$y,$z);
what can I do to call s(@f) = but have @f expanded to s(1,2,3) ? 17:01
like, it should be some property of @f, I think.
raydiak m: sub f ($x,$y,$z) { .say for $x,$y,$z }; my @a = 1,2,3; f |@a 17:12
camelia 1
raydiak rebooting, brb
pkx yes - the vertical bar. 17:13
thanks, I found it at:
is there such a thing in perl ? 17:14
17:19 domidumont left
raydiak argument passing in p5 is very different. essentially, everything automatically flattens unless you pass it by reference, and it's all received in the @_ array 17:21
at least last I knew. I haven't kept up on the last 10-15 years of p5 development 17:22
Grinnz that's correct. there's experimental signatures now, but they are really just sugar for assigning from @_ 17:23
pkx there's something kinda complicated here: 17:26
17:26 sno left
pkx but, its not really what I want. 17:26
raku's vertical bar is what I'm looking for. 17:27
seems odd to overlook that in the language and seems so necessary.
Grinnz I'm confused - are you looking for a feature in Perl or Raku? 17:29
(if the former, you should probably ask in #perl)
raydiak p5 essentially does what you asked by default. you have to pass by reference to get things to *not* flatten into one giant list
17:30 sno joined
raydiak it'd look something like sub f { my ($x,$y,$z) = @_; say for $x, $y, $z; }; my @a = (1,2,3); f(@a) 17:31
which is fine until you want to pass multiple array/hashes, then you have to use references 17:32
pkx yeah, I guess that's good enough. 17:35
grinnz - I couldn't remember the idiom in perl ... I was looking for the expression in raku. 17:36
17:36 sno left
Grinnz gotcha 17:36
pkx " ! " is exactly what I am looking for.
its a little weird in raku because I can have an expression like: 17:37
foo | @blah
17:38 kurahaupo_ left
pkx and I would read that, uncarefully, as something like foo "or" blah ... 17:38
17:38 sno joined 17:39 brtastic joined
pkx ( btw, I meant:  " | " is exactly what ... ) 17:40
raydiak agreed that's a bit odd-looking. most authors I've seen prefer to write it without the space like |@a, just for clarity 17:41
17:43 kurahaupo joined 17:44 aborazmeh joined
pkx yeah, and i put parens around it, too. 17:44
seems like someone made a mistake in the def of the language. 17:45
17:45 jmerelo joined
raydiak not sure what you mean 17:47
pkx well .. let me see if I can express it better. 17:50
17:52 sno left 17:53 sno joined
pkx I mean, sure, raku is its own language, but, I think certain things like unary operators have somewhat converged on a general meaning. 17:53
like: ( ! foo() ) should generally mean the same thing. 17:54
and, I get that that could be a polemic statement, but, I think its kinda true and most of the languages I know seem to have settled on it. 17:55
and I think I'd extend that to other unary operators.
and that would include " | " ...
or just operators in general. 17:56
raydiak | means bitwise or in some languages, logical or in others. || for logical or is quite common, and is logical or in Raku as well
in lua, unary "not" is "~", not "!" 17:57
it's not uncommon in modern use
17:58 Black_Ribbon joined
pkx yeah, I know we'll find many exceptions. 17:58
hobbs and in the VB of my youth, "&" was string concat :)
raydiak I take that back, unary not is "not". ~= is what you'd say should be "!="
pkx but, I kinda am upset everytime I use raku ternary operator, for instance. 17:59
raydiak it's better imo. and I'd hate for all languages to be the same, or there wouldn't be a reason to have different languages. just my opinion, though
pkx ok. sure, I "get it" but, I'm not sure I would have chosen +| as bitwise of over | ... 18:01
which was to then be made as a spread/expansion operator.
leont How often do you use bitwise operators? In Raku you should be using junctions more often
pkx not very often, but, derived from c like languages, they have taken on a somewhat special meaning. 18:02
and now to see them used differently is like "what?"
leont They're terrible huffmanization, because in any language that isn't C you shouldn't be using them much
raydiak all these choices are interconnected with other choices and syntatic features of the language. making one change like that would have a dizzying number or reprocussions for a lot of the rest of the language. that said, you can totally define your own operators, within certain limits.
pkx ok. 18:03
leont Also, they precedence is totally wrong in C, and you end up needing parentheses to make it do the right thing all the time
pkx I get that to ... I mean once you added the + for certain operators, it made sense to recruit the others.
raydiak I know what you mean, some of it felt off-putting to me too at first. I'd encourage you to keep an open mind whenever exposing yourself to new languages and cultures, in general. just because it's not familiar or comfortable to you doesn't make it a "mistake"
sorry, don't mean to get the last word in and run away, but unfortunately I have to move on with my day for now, but hope we can talk again. nice chatting with you pkx! 18:05
pkx ok.
leont Yeah, as a whole it makes sense
pkx ttyl 1
18:05 sno left
pkx yes, I mean, it would suck to have certain of these operators have a + but then others don't. 18:06
leont It's wider than that
+ is a numeric operator, so operators starting with + are numeric.
pkx but, come on: I mean ternary is sacrosanct.
leont ~ is a string operator, so operators starting with ~ are stringwise.
18:06 sno joined
leont ? is a boolean operator, so operators starting with ? are boolean. 18:07
Ternary got in the way with one of the first rules of raku design: everyone wants the colon
There is quite a lot of syntax that wouldn't be possible otherwise. 18:08
pkx yeah, I'm sure there were lots of arguments on it & it wasn't decided lightly. 18:09
and I'm sure that, as you say, there were good technical rationale for it.
and I'm sure that there was a challenge to get a logical cohesion vs. the pell-mell way that they have been, but, by having changed them now it becomes "yet another thing to learn" and get used to. 18:12
leont This might help explaining it: thelackthereof.org/Perl6_Colons 18:14
18:17 jmerelo left, abraxxa left 18:19 abraxxa joined
pkx thanks leon - I appreciate your time ! 18:24
18:26 lucasb joined 18:40 pkx left 18:46 brtastic left
raydiak .tell pkx I got ready and have a few minutes left before I need to leave. I think the ternary operator is a great example. 18:46
tellable6 raydiak, I'll pass your message to pkx
18:46 wamba joined
raydiak .tell pkx you're used to ? and :. ?? and !! was so weird to me at first that I had a hard time remembering how to write it in raku. 18:47
tellable6 raydiak, I'll pass your message to pkx
raydiak .tell pkx but if you have infix operators within the three operands, and pad all the terms with whitespace, it's way easier to read because raku's ternary uses two characters instead of one. 18:48
tellable6 raydiak, I'll pass your message to pkx
raydiak .tell pkx it becomes more visually clear in most simple cases which things are operations within an operand to the ternary, and where the ternary itself separates the operands.
tellable6 raydiak, I'll pass your message to pkx
raydiak .tell pkx also, ? and ! are much more related in english than ? and :. I think if you learned ??!! first, ?: would seem at least as bizarre to you if not moreso 18:49
tellable6 raydiak, I'll pass your message to pkx
raydiak .tell pkx also wrt bitwise ops, also keep in mind that they get somewhat less usage in raku, because we have Blob/Buf classes which do some of those things more explicitly 18:50
tellable6 raydiak, I'll pass your message to pkx
raydiak .tell pkx in general, raku is a ground-up rethinking of many things. how something has commonly been done in the past isn't necessarily a justification to keep doing it that way indefinitely 18:53
tellable6 raydiak, I'll pass your message to pkx
raydiak .tell pkx this is also one of the reasons that much of the p5 community didn't get on board with raku (yet). people felt alienated by the broad sweeping changes and complete abandonment of backwards-compatible syntax and semantics 18:54
tellable6 raydiak, I'll pass your message to pkx
raydiak .tell pkx this is also a philosophical question of modernism vs postmodernism. in postmodern thinking, not everything on the landscape has to, or should, be made out of one small set of identical primitives 18:58
tellable6 raydiak, I'll pass your message to pkx
19:00 lizmat_ joined
raydiak .tell pkx that said, I had over a decade of professional experience with p5 and js among other things before I started learning raku (then called p6). so I do totally understand how these changes can feel unsettling at first 19:00
tellable6 raydiak, I'll pass your message to pkx
19:01 lizmat left 19:02 lizmat_ is now known as lizmat, abraxxa1 joined
raydiak .tell pkx all I'm suggesting, is that if you learn raku and use it and get comfortable with the ways it does things, you may find a real appreciation of some of these differences (and strengthen your neural plasticity along the way) 19:02
tellable6 raydiak, I'll pass your message to pkx
raydiak afk time to go 19:03
19:09 sno left 19:10 asymptotically joined 19:16 sno joined 19:22 sno left 19:23 abraxxa left 19:26 abraxxa joined
demostanis[m] github.com/vim/vim/commit/11e3c5ba...d7b8808d33 🥳 19:33
MasterDuke nice 19:34
19:36 sno joined 19:39 ufobat_ left 19:41 aborazmeh left 19:42 sno left, sno joined 19:47 perigrin joined 19:48 sno left 19:50 sno joined 20:23 natrys left 20:26 guifa2 joined 20:27 guifa2 left, sno left 20:28 sno joined 20:34 rindolf left 20:36 guifa2 joined 20:38 DiffieHellman left, DiffieHellman joined
gfldex lolibloggedalittle: gfldex.wordpress.com/2021/04/21/re...g-a-wheel/ 20:39
20:42 sno left, sno joined 20:49 sno left, sno joined 20:56 sno left 20:57 sno joined 21:20 dogbert17 joined 21:24 sno left, dogbert11 left 21:25 sno joined 21:27 asymptotically left 21:32 sno left, sno joined 21:34 abraxxa left 21:35 abraxxa joined 21:38 sno left 21:40 sno joined 21:41 wamba left 21:46 sno left 21:48 sno joined 22:00 abraxxa1 left 22:05 sno left 22:07 sno joined 22:20 aborazmeh joined 22:25 sno left 22:27 sno joined 22:33 sno left, sno joined 22:34 abraxxa left 22:36 abraxxa joined 22:45 sno left 22:46 sno joined 22:58 aindilis joined 23:14 Xliff joined
Xliff \o 23:15
What does this error message mean?
STable conflict detected during deserialization.
(Probable attempt to load a mutated module or modules that cannot be loaded together).
Looks like my application of building accessors at compile time is not being well received. 23:16
23:20 sno left 23:21 sno joined
raydiak the vast majority people here won't be able to help with that. you might have more luck in #raku-dev, but most people who are best qualified to answer are in Europe, so you might not get much help there either until several hours from now 23:32
ugexe github.com/rakudo/rakudo/issues/2378 23:34
23:35 pecastro left 23:39 Xliff left, abraxxa left 23:40 Xliff joined
raydiak ah, looks like "no precompilation" might work around the issue for now? 23:40
or perhaps wrapping it in a BEGIN 23:42
23:42 abraxxa joined
Xliff BEGIN makes the working code fail with a really messed up type check exception. 23:44
\O should be able to accept anything, but throws up with the class type. 23:45
raydiak try "no precompilation"?
from the issue ugexe++ linked, those are my only two guesses
Xliff Yep! Works with "no precompilation" but is exceedingly slow. 23:47
For now, that will work until a work-around is in place.
raydiak probably only slow at startup, I think using your class in loops and so forth should be about the same speed 23:48
also, adding a comment to the issue on github might help get it a little more attention 23:49
even if it's just "I have this problem too" or whatever
23:53 sno left, sno joined 23:59 aborazmeh left