🦋 Welcome to the former MAIN() IRC channel of the Raku Programming Language (raku.org). This channel has moved to Libera (irc.libera.chat #raku)
Set by lizmat on 23 May 2021.
00:03 reportable6 left, reportable6 joined 00:17 Kaiepi left 00:18 Kaiepi joined 00:27 simcop2387 left, simcop2387 joined, perlbot joined 00:49 lgtaube left 01:17 holly left 01:35 linkable6 joined 02:17 lgtaube joined 02:48 cbk__ joined 03:38 frost joined 04:38 greppable6 left, tellable6 left, evalable6 left, committable6 left, squashable6 left, coverable6 left, linkable6 left, bisectable6 left, shareable6 left, notable6 left, benchable6 left, sourceable6 left, quotable6 left, statisfiable6 left, nativecallable6 left, bloatable6 left, releasable6 left, reportable6 left, unicodable6 left, releasable6 joined, bisectable6 joined 04:39 squashable6 joined 04:40 greppable6 joined, statisfiable6 joined 04:41 benchable6 joined, quotable6 joined 05:12 Doc_Holliwood joined 05:31 dogbert11 left 05:35 dogbert17 joined 05:39 coverable6 joined 05:40 bloatable6 joined 05:41 evalable6 joined, reportable6 joined, notable6 joined 05:42 linkable6 joined, shareable6 joined 05:43 sourceable6 joined, tellable6 joined 05:44 unicodable6 joined, nativecallable6 joined 05:49 committable6 joined 05:55 Xliff joined
Xliff o 05:56
Who maintains the Atom plugin for Raku?
06:02 reportable6 left 06:04 reportable6 joined 06:54 abraxxa joined 06:59 abraxxa left, p6steve left 07:00 p6steve joined, abraxxa joined 07:26 Shaeto joined 07:29 Doc_Holliwood left 07:43 dakkar joined 07:46 stoned75 left 08:02 dolmen joined 08:04 stoned75 joined 08:07 Sgeo left 08:08 Kaiepi left, Kaipi joined 08:36 dolmen left 08:37 dolmen joined 09:40 Kaipi left, Kaipi joined
lizmat clickbaits rakudoweekly.blog/2021/05/31/2021-...r-the-bus/ 10:26
10:28 sena_kun joined 10:29 sena_kun left, sena_kun joined 10:33 dolmen left 10:50 patrickb joined 11:28 morayj joined 11:34 dolmen joined, dolmen left 11:41 morayj left 11:50 holly joined 11:54 morayj joined 12:02 reportable6 left 12:03 reportable6 joined 12:04 abraxxa left 12:06 sono left, abraxxa joined 12:11 abraxxa left 12:12 abraxxa joined
stoned75 ~ 12:16
12:18 Doc_Holliwood joined 13:14 dogbert11 joined 13:15 dogbert11 left, dogbert11 joined 13:16 dogbert17 left 13:23 jberkel joined 13:26 Od1n joined
Od1n hello 13:26
jberkel hi, i'm trying to write a simple regex but it's already failing. I want to match a single hash (#) sign: my regex hash { \# }; => Malformed regex 13:28
does hash need to be escaped in some other way? 13:29
Altreus quote it 13:32
Juerd It works with '#' but shouldn't \# work too? 13:33
Altreus that's one for the grown ups 13:34
I just know non-alnum strings need quoting
jberkel docs.raku.org/language/regexes mentions: / \# /; # matches the hash metacharacter literally 13:35
so i assumed that's the way to do it
it looks like the # is interpreted as end of line comment, leaving a single \ 13:37
13:43 dakkar left
Altreus ah, regex foo { ... } doesn't trigger the same parsing rules as / ... / then I guess 13:46
Shaeto what does meat *@ and *% in parameters definition ? 13:50
tyil[m] Shaeto: docs.raku.org/type/Signature#index...y_argument 13:52
jberkel ok, it works with quoting, so i'm already a bit further. thanks 13:54
Shaeto single * or double ** or + is slurpy :( or my god
13:56 dakkar joined 14:11 Doc_Holliwood left 14:19 Doc_Holliwood joined 14:29 frost left 14:30 jberkel left, SmokeMachine left, SmokeMachine joined 14:38 morayj left 14:40 p6steve left 14:42 p6steve joined 14:44 Sgeo joined 14:45 Od1n left 14:46 p6steve left 14:55 p6steve joined 14:59 Doc_Holliwood left 15:02 Doc_Holliwood joined 15:08 Kaipi left 15:11 Kaipi joined 15:16 jmcgnh left 15:19 masak_ joined 15:21 jmcgnh joined
holly github.com/theholyghost2/Solstice should be more compilable except for SDL2::Raw system. I will debug some more later on 15:24
Solstice is an old NES game, see google images or something 15:25
It's easy to RPG elements now 15:26
s/to/to add
15:32 stoned75 left 15:44 eseyman joined
lizmat m: react whenever supply emit "hello" { .say } # a roundabout way of saying "hello" :-) 16:02
camelia hello
16:05 stoned75 joined
moritz how async of you :D 16:05
holly ok, Solstice compiles :-) 16:21
now to coerce it
I want it in the ecosystem later on 16:22
lizmat holly: would be nice if it had tests before you put it in the ecosystem :-) 16:26
holly sure, I'll paint a Solstice-o-matic :-) 16:27
tests are for after debugging the game
it's more or less difficult to test
but I'll see what I can do 16:28
Later on I'll make an adventure game out of it 16:29
from back in the day, problem is I'm not too good at graphics 16:30
16:32 stoned75 left
holly Maybe we can make one with us designing the storyline 16:32
PRs or something 16:33
16:36 dakkar left
holly anyway, SFY 16:37
17:04 patrickb left 17:06 patrickb joined 17:14 guer joined 17:19 guifa joined
guifa o/ 17:19
holly hi 17:20
17:24 jmcgnh left, SmokeMachine left, sourceable6 left, shareable6 left, linkable6 left, notable6 left, evalable6 left, bloatable6 left, coverable6 left, peteretep left, kawaii_ left, kevin1 left, ComplYue[m] left, silug left, camelia left, guer left, codesect` joined, kawaii_ joined, daxim joined, sourceable6 joined, linkable6 joined, bloatable6 joined, shareable6 joined, evalable6 joined, notable6 joined, coverable6 joined, cognominal joined, silug joined, samebchase joined, charsbar joined, peteretep joined, kevin1 joined, guer joined 17:25 SmokeMachine joined, moon-child joined 17:27 codesect` left 17:28 guer left, jmcgnh joined 17:30 guer joined 17:31 codesections joined 17:36 p6steve left 17:44 dogbert11 left, dogbert11 joined 17:45 dogbert11 left 17:46 ComplYue[m] joined 17:47 dogbert11 joined 17:53 p6steve joined 18:03 reportable6 left
Xliff Good morning. 18:04
How hard would this be to implement?
Heredoc quoting construct is q:to/END/ right? 18:05
18:05 reportable6 joined
Xliff WVCards, markup their ilk are becoming more popular and they include their own ending delimiter? 18:05
So why not a heredoc that has the ending inclusive so one can do.... 18:06
Would this be better served on problem-solving?
codesections I kind of like that. Proposed syntax: q:thru/VCARD/ 18:07
but yeah, I think that'd probably need a problem-solving issue, since it'd be a new language feature 18:08
holly maybe use delimiter problem solving
e.g. theorem prover
codesections Would it only work for a delimiter that is the only thing on its line? Or any line-terminal delimiter? 18:10
Xliff codesections: Only thing on its line.
I will move to problem-solving. Thanks!
codesections++ # Better syntax 18:11
Done. 18:17
codesections Anyone interested in a Birds of a Feather session at the Perl & Raku conf? www.reddit.com/r/rakulang/comments...raku_conf/ 18:29
19:05 linkable6 left, evalable6 left, evalable6 joined 19:06 stoned75 joined 19:07 linkable6 joined 19:12 stoned75 left
guifa Xliff++ that sounds like a pretty nice proposal 19:17
I don't think it would be too hard, it's probably just setting a boolean during parsing and then adjusting the cut off point for the string somewhere along the way 19:18
(although it's crossing language boundaries, so that may complicate it a bit but not too badly)
Xliff guifa: I don't think it will be too hard to implement. I am just seeking thoughts on the matter, so if you can comment on the issue, I'd appreciate it. 19:21
guifa Xliff: will do. your stray space actually causd jnthn to make a really good point (although he didn't expound on it) 19:25
The location of END in a normal q:to/END/ lets the parser know how many spaces on each line to strip out 19:26
since it's on its own line, that doesn't really cause any issues at all. But for, e.g., an XML end tag that may be on the same line as one or more other tags, it's not clear how to apply the indent-stripping functionality 19:27
lizmat guifa: the end string needs to be the only thing apart from whitespace, no> 19:28
guifa in a traditional heredoc yeah. 19:29
codesections Yeah, I asked about that ^^^ and Xliff confirmed that would still be true in this proposal
guifa err whoa, I totally missed that, apologies
codesections But yeah, absent that it'd get ... tricky 19:30
(That'd be nice in many use cases, but much harder to implement)
guifa I guess you could always allow for an extra modifier, but that does complicate it more. Like q:thru:4indent/</xml>/; 19:31
(and so I'd probably not recommend it ha) 19:32
19:36 stoned75 joined 19:43 tejr joined, tejr left 19:44 Shaeto left
leont still has some conference driven development to do for conf next week 19:44
codesections I wonder how many values have been used in "$_ driven development" 19:48
19:50 colomon joined
holly YARH :-) 19:50
colomon o/
Having a really weird show-stopper problem in my Raku script. I have a class which "has %.files". When I try to look at %.files, Raku hangs. Hoping this rings a bell for someone... 19:56
gfldex codesections: I'm still waiting for "QA driven development". 19:57
lizmat colomon: how do you "look" ?
colomon lizmat -- pretty much any way I've tried fails. For sure dd %.files 19:58
lizmat could you do a dd %!files ?
colomon oh! That does work. 19:59
Tried it earlier, but still hung because I had another %.files later, and I didn't notice it ran further before hanging
Xliff codesections: LOL! That's a bug I just found in my code. Hah! 20:00
lizmat colomon: also realize that %.files is just short for self.files could that explain something ?
colomon ARGH 20:01
that's it -- idiot me also defined a files method, which of course calls itself
okay, I can fix this no problem. Thank you for helping me sort things out. 20:02
holly so %!, %. problem
Xliff Class Attribute doesn't have a .private ? Can I ask why? 20:03
So instead I have to do $attr.name.starts-with('$!') which seems LTA 20:04
colomon lizmat++
Xliff Actually, $attr.name.substr(1, 1) 20:05
Check that against '!'
lizmat attributes always have the private name, no?
20:06 patrickb left
Xliff lizmat: With '!' as a part of their sigil? 20:06
lizmat: Yes, but as part of the public API, I would rather have a method than a check on attribute name.
lizmat m: class A { has $.a }; dd A.^attributes.head.name
evalable6 "\$!a"
20:07 tejr joined
Xliff lizmat: Would a PR adding a .is-private be worthwhile? 20:07
japhb Xliff: You're wanting to know if there was an auto-generated accessor created for the attribute?
Xliff japhb: Sure. But also if its considered private! 20:08
Consider: "$attr.name.substr(1, 1) eq '!';" vs "$attr.is-private" in code.
I would prefer the latter.
japhb But that first one is broken is what lizmat++ I think was trying to say.
Xliff Yeah. It was. 20:09
Moved on from that.
japhb All attributes are created with a ! twigil ... it's just a question of whether an accessor was generated.
Xliff japhb: OK. How would one check for an accessor?
20:10 tejr left
japhb But of course you can create your own accessor, so I think we have a similar problem to knowing if a sequence is infinite 20:10
lizmat m: class A { has $.a }; dd A.^attributes.head.has_accessor
evalable6 Bool::True
lizmat m: class A { has $!a }; dd A.^attributes.head.has_accessor
evalable6 Bool::False
Xliff m: class A { has $.a; has $!b }; A.^attributes.map( *.name ).sa
evalable6 (exit code 1) No such method 'sa' for invocant of type 'Seq'. Did you mean any of
these: 'isa', 'say', 'so'?
in block <unit> at /tmp/_gRyyg7081 line 1
Xliff m: class A { has $.a; has $!b }; A.^attributes.map( *.name ).gist.say
evalable6 ($!a $!b)
lizmat Xliff ^^
has_accessor is what you want
Xliff lizmat++
Thank you. 20:11
holly cool
lizmat m: class A { has $!a; method a() { "foo" } }; dd A.^attributes.head.has_accessor
evalable6 Bool::False
lizmat it really is the flag that indicates whether an accessor should be made automatically 20:12
Xliff m: class A { has $!a; method a { $!a } }; dd A.^attributes.head.has_accessor
evalable6 Bool::False
Xliff heh
lizmat m: class A { has $!a; method a() { "foo" } }; dd A.^attributes.head.has_accessor && !A.^find_method("a")
evalable6 Bool::False
lizmat m: class A { has $!a; method a() { "foo" } }; dd A.^find_method("a") 20:13
evalable6 Method a = method a (A: *%_) { #`(Method|94155151744592) ... }
lizmat m: class A { has $!a }; dd A.^find_method("a")
evalable6 Mu
lizmat Xliff: I guess you can do something with that to your liking ?
Xliff lizmat: No. .has_accessor is what I was looking for. Just checking for a gotcha. 20:14
20:17 camelia joined 20:18 japhb left 20:20 japhb joined
gfldex lolibloggedalittle: gfldex.wordpress.com/2021/06/01/lo...e-quoting/ 20:23
20:26 colomon left
raydiak bisectable6: regex { \# } 20:26
bisectable6 raydiak, Will bisect the whole range automagically because no endpoints were provided, hang tight
raydiak, Output on all releases: gist.github.com/16efbe386bbb47055c...f00bc17a5f 20:27
raydiak, Nothing to bisect!
guifa thanks himself for providing lots of test files for Fluent. Makes tracking down issues in the Intl reorganization *much* easier 20:30
20:30 stoned75 left, stoned75_ joined
codesections gfldex: wow, I'd never thought of implementing bare strings like that. I can't decide if I love it, hate it, or both! 20:32
(er, nvm actually, I read that too quickly/got over-excited – I thought you meant something more by "bare strings". Still very cool, but not quite as wild as I first thought) 20:38
guifa codesections: that said, it would be not too difficult to implement a php-esque DSL starter 20:39
imaging doing <html> and </html> as the equivalent of “ and ”
But that could also interpolate variables AND then generate a non-Str object as the result (instead of a Str, though presumably would have a .Stringy method) 20:40
codesections You mean as a slang? 20:42
guifa Yup 20:43
The only issue I've had so far with my slangs is enabling handing control back to the other (Quote / Core / Regex) languages. I *think* I can figure that out but since the project I've been doing it with will rely heavily on RakuAST, I've not looked too far into it 20:45
Xliff Hrm. Looking at Perl6::Grammar, I may have to revise my opinion on implementation. 20:47
Even knowing the rule name, I can't see where I'd add q:thru...
Doc_Holliwood is there any writing on why we use @a[*-1] instead of @a[-1] like Perl does? 20:48
$a[-1] rather 20:50
gfldex Doc_Holliwood: I'm not sure if it is written down already. It's quite easy tho. *-1 is a WhateverCode what is a Callable. 20:51
Doc_Holliwood i know
Xliff Doc_Holliwood: Better written now as @a.tail
Doc_Holliwood i just wonder what's wrong with negative indexes?
gfldex It's easy to get wrong by simply typos/thinkos. 20:52
my $index = 10; say @a[$index-1]; # and here you forget to type $index
The result is valid code that will may even work for a 1 element list. 20:53
Raku can complain with out-of-bounds.
Doc_Holliwood m: say (.[0], .[1..*-2].pick(*), .[*-1])[*;*].join with 'AbcdefgH'.comb 20:54
camelia AfcgebdH
Doc_Holliwood neat trick there
Geth doc/allomorph: aa95971fd2 | (Stoned Elipot)++ | doc/Type/Allomorph.pod6
Document Allomorph class

ref #3653 #3888 #3346
doc/allomorph: 6bada45c2d | (Stoned Elipot)++ | 4 files
Adapt allomorph classes documentation for Allomorph class

  - Condense the introduction and link to the Allomorph class documentation
  - Remove documentation for methods inherited from the Allomorph class
  - While here document the === operator for the allomorph classes
Doc_Holliwood m: (.[0], .[1..^*-1].pick(*), .[*-1]).flat.join with 'AbcdefgH'.comb
camelia ( no output )
Doc_Holliwood m: say (.[0], .[1..^*-1].pick(*), .[*-1]).flat.join with 'AbcdefgH'.comb
camelia AbcdgefH
codesections Xliff: I thought I remember .tail and .[*-1] having subtly different semantics -- but I can't remember how
Doc_Holliwood m: say (.[0], .[1..^*-1].pick(*).[*-1]).flat.join with 'AbcdefgH'.comb 20:56
camelia Ag
Doc_Holliwood m: say (.[0], .[1..^*-1].pick(*), .[*-1]).flat.join with 'AbcdefgH'.comb
camelia AdfgbecH
Geth doc: stoned++ created pull request #3893:
Document Allomorph class and adjust documentation for ComplexStr, IntStr, NumStr and RatStr classes
Doc_Holliwood like in these ranges, the whatever looks out of place imho
20:57 raydiak joined
codesections (Maybe I'm just thinking of ) 20:58
m: my @a = (1, 2); dd @a[*-2 .. *]; dd @a.tail: 2 20:59
camelia (1, 2)
(1, 2).Seq
codesections but that doesn't apply to @a.tail()
20:59 guifa left, guifa joined
gfldex Doc_Holliwood: there where a lot of things that looked out of place to me when I started with the language. Getting used to stuff helps. :) 20:59
21:00 guifa left, guifa joined
Xliff Can you eval a QAST tree? 21:01
guifa can't seem to send regular messages for some reason
But /me work okay
er, maybe it's something weird in what I was typing out to Xliff
Anywyas, Xliff: I found where the quote modifiers are being done, but for the life of me I can't find the quote language's definition. In NQP it's defined directly in the grammar 21:02
Nevermind, I'm an idiot: github.com/rakudo/rakudo/blob/f83e....nqp#L5387 21:03
Xliff guifa: I'm ahead of you. I think it's here: github.com/rakudo/rakudo/blob/mast...r.nqp#L167 21:06
However I can't decipher that into a rule that parses the string "q:to"….
Trying to compile some test code into RakuAST and it is SLOW.
21:07 tejr joined
guifa I have to head out for the afternoon, but I'll take a look at it tommorrow and see if I can't figure out more (nuless you make some more progress) 21:07
21:09 sono joined
Xliff No worries. Thanks for your help, guifa++ 21:10
21:15 b2gills left 21:19 Doc_Holliwould joined 21:20 Doc_Holliwood left 21:21 dustinm` joined 21:30 muriloreis joined 21:33 Doc_Holliwould left 21:34 muriloreis left, guer left 21:40 abraxxa left 21:44 abraxxa joined 21:59 guer joined 22:12 Tirifto joined 22:30 cbk__ left 22:31 cbk joined 22:33 Tirifto left 22:38 guer left 22:55 guer joined 23:00 guer left
Xliff Is CALLER:: documented? 23:04
codesections Just with docs.raku.org/language/packages#in..._(package) afaik 23:05
23:11 dogbert17 joined 23:16 dogbert11 left 23:18 cbk left 23:28 dogbert17 left 23:29 dogbert11 joined 23:39 gfldex left
guifa Xliff: I'm going to guess you're running into one of the gotchas that I had with CALLER, perhaps. CALLER can only see stuff that's dynamic 23:42
23:45 gfldex joined
Xliff Um. Hah. Not really. Sorry to give you that impression. 23:46
23:46 b2gills joined
guifa Xliff: was worth a shot haha 23:49