🦋 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.
jmerelo m: my $a = True; say «a b \qq[$a]» 07:02
camelia (a b True)
jmerelo m: my $a = True; say «a b \qq[$a]».raku
camelia ("a", "b", "True")
jmerelo m: my $a = True; say «a b \q[$a]».raku 07:03
camelia ("a", "b", "\$a")
jmerelo m: my $a = True; say «a b \Q[$a]».raku
camelia 5===SORRY!5=== Error while compiling <tmp>
Unrecognized backslash sequence: '\Q'
at <tmp>:1
------> 3my $a = True; say «a b \7⏏5Q[$a]».raku
expecting any of:
argument list
shell-quote words
term
jmerelo m: class A { has Bool $.foo; method Str { $.foo }; my $a = A.new( :foo(True) ); print ~$a 07:09
camelia 5===SORRY!5=== Error while compiling <tmp>
Missing block
at <tmp>:1
------> 3; my $a = A.new( :foo(True) ); print ~$a7⏏5<EOL>
expecting any of:
postfix
statement end
statement modifier
stat…
jmerelo m: class A { has Bool $.foo; method Str { $.foo }}; my $a = A.new( :foo(True) ); print ~$a 07:10
camelia True
jmerelo m: class A { has Bool $.foo; method Str { $.foo }}; my $a = A.new( :foo(True) ); print «a b $a».raku
camelia No such method 'WORDS_AUTODEREF' for invocant of type 'Bool'
in block <unit> at <tmp> line 1
jmerelo Hum
m: class A { has Bool $.foo; method Str { $.foo }}; my $a = A.new( :foo(True) ); say «a b $a».raku 07:11
camelia No such method 'WORDS_AUTODEREF' for invocant of type 'Bool'
in block <unit> at <tmp> line 1
jmerelo m: class A { has $.foo; method Str { $.foo }}; my $a = A.new( :foo(True) ); say «a b $a».raku 07:13
camelia No such method 'WORDS_AUTODEREF' for invocant of type 'Bool'
in block <unit> at <tmp> line 1
jmerelo m: say $*RAKU 07:21
camelia Raku (6.d)
jmerelo m: say $*RAKU.raku
camelia Raku.new(compiler => Compiler.new(id => "25D5FC253B23D0A685CA76DAC284BB450F18FA89", release => "", codename => "", name => "rakudo", auth => "The Perl Foundation", version => v2021.02.25.g.726.a.75.e.24, signature => Blob, desc => Str), name => "Raku"…
jmerelo m: class B { has $.bar; method WORDS_AUTODEREF { $.bar } }; class A { has $.foo; method Str { B.new( :bar($.foo)) }}; my $a = A.new( :foo(True) ); say «a b $a».raku 07:32
camelia Value of type Bool uselessly passed to val()
("a", "b", Bool::True)
in block <unit> at <tmp> line 1
jmerelo m: class B { has $.bar; method WORDS_AUTODEREF { $.bar } }; class A { has $.foo; method Str { B.new( :bar($.foo)) }}; my $a = A.new( :foo(True) ); say <a b $a>.raku 07:34
camelia ("a", "b", "\$a")
jmerelo m: class B { has $.bar; method WORDS_AUTODEREF { $.bar } }; class A { has $.foo; method Str { B.new( :bar($.foo)) }}; my $a = A.new( :foo(True) ); say qqw:!val «a b $a».raku 07:38
camelia This type cannot unbox to a native string: P6opaque, B
in block <unit> at <tmp> line 1
jmerelo m: my $a = True; say qqw:!val «a b $a».raku 07:39
camelia ("a", "b", "True")
jmerelo m: my $a = True; say qqw:!val:!quotewords «a b $a».raku 07:40
camelia ("a", "b", "True")
jmerelo m: class A { has $.foo; method Str { $.foo }}; my $a = A.new( :foo(True) ); say qqw:!val:!quotewords «a b $a» 07:41
camelia This type cannot unbox to a native string: P6opaque, Bool
in block <unit> at <tmp> line 1
jmerelo m: my $a = <3 4>; say qqw:!val:!quotewords «a b $a».raku 07:41
camelia ("a", "b", "3", "4")
jmerelo m: my $a = <3 4>; say qqw:!val «a b $a».raku
camelia ("a", "b", "3", "4")
jmerelo m: my $a = <3 4>; say «a b $a».raku 07:42
camelia ("a", "b", IntStr.new(3, "3"), IntStr.new(4, "4"))
jmerelo m: my $a = <3 4>; say qqw:!val «a b $a».raku
camelia ("a", "b", "3", "4")
jmerelo m: my @a = 3, True; say qqw:!val «a b @a».raku 07:45
camelia ("a", "b", "\@a")
jmerelo m: my $a = 3, True; say qqw:!val «a b $a».raku
camelia WARNINGS for <tmp>:
("a", "b", "3")
Useless use of constant integer True in sink context (line 1)
japhb jmerelo: Would you mind /msg'ing camelia instead?
jmerelo japhb: the whole point of doing it here is (possibly) gathering insights from the rest of the people around. I could, for that matter, do it in my home computer 07:46
japhb jmerelo: Erm, maybe do the exploration off-channel, and then come here for the questions/insight requests? Better yet, post the weirdness you find as issues or gists for discussion? 07:47
I mean, clearly you're finding some odd stuff, but to make sure it all gets addressed it needs to be in a less transient form than in-channel. 07:49
jmerelo japhb: I've already posted a couple of issues, in Rakudo and raku/docs. The questions/insight requests are all above. Can you help?
japhb There aren't actually any questions there, just a mix of errors and non-errors. It's not clear to me which things you're expecting, and which not. I mean, my first reaction is that the errors you've found are LTA in most cases, but is there a deeper question there? 07:52
jmerelo japhb: well, just wondering about the serial coercions performed by quoting and how to turn them off, and if it's possible at all. The main context is this question stackoverflow.com/questions/666426...xt-in-raku in SO 07:56
Apparently what qqw is doing is, first, String context (which is the first thing I turned off), then "quotewords" context (which can also be turned off), and eventually, "val" (which can also be turned off). However, trying to skip some of these steps leaves the original thing in context that's not valid. 07:57
japhb Ah, yeah, I read that question earlier today before you'd posted your answer. I see what you're thinking about now. 07:58
jmerelo Last one is "sink" context. Other path leave the variable in a state that should be converted to P6Opaque, but it's not.
Also, on the way I think that "unquoting" does not do exactly what it says it does. So maybe I should raise another issue there... 08:00
Also, today there are more [raku] questions in Stackoverflow than [perl] questions. 08:01
japhb :-)
I've now seen the second person from EMEA timezones pop up in one of the Raku-related channels, so seems like as good a time as any: 08:03
🎉‭🎉‭🎉‭ Earlier today I released MUGS 0.0.5 at github.com/Raku-MUGS (and uploaded into the fez/zef ecosystem).
You can see more discussion at colabti.org/irclogger/irclogger_lo...03-15#l374
jmerelo japhb: cool! Congrats!
japhb The short of it is: I built a thing. It is a platform for building gaming services, built in Raku, using Cro, Red, RPG::Base, and a cast of many individual modules. 08:04
I have a roadmap in progress at github.com/Raku-MUGS/MUGS/blob/mai...roadmap.md 08:05
I'd love to talk with anyone interested in doing game dev on Raku (even if they're not planning to use MUGS!) 08:06
jmerelo japhb++ 08:07
japhb I already have a Freenode channel over at #mugs dedicated to it, and the Raku-MUGS GitHub org hosting all the stuff I've made public so far (there's more to come, such as full-screen TUI and GTK+ interfaces, arcade and card games, etc. but those are all more primitive and will be worked on in the 0.2 release cycle)
Thanks jmerelo. :-)
FWIW, this is the thing I want to build Docker images on a new Rakudo-Star for. :-D 08:08
jmerelo japhb: I could maybe help with that.
japhb Also, contributors (MORE THAN!) WELCOME.
(y) 08:09
japhb Or rather 🖒‭ 08:09
jmerelo japhb: this looks neat github.com/Raku-MUGS/MUGS-Core/blo...Dockerfile Problem is the base image? Do you *really* need Rakudo Star? 08:11
japhb I mean, I could manually build from raw ubuntu I suppose. (I've already discovered it's non-trivial to build from alpine, they don't have some of the native prereqs packaged. I hate the ubuntu bloat for docker images, but for now it's way easier.) 08:14
jmerelo japhb: there's Debian slim too 08:15
japhb I just want to get a newer Rakudo base image, because the R* image is missing some updates that make a difference.
jmerelo: What's the name of that one? 08:16
jmerelo japhb: let me check
japhb: meanwhile, this is something I'm experimenting with github.com/JJ/docker-raku-test
It's pretty slim. But based on Alpine, so that might be a problem.
japhb I actually looked at that! ... and yeah, that was why I couldn't just use that. :-( 08:17
jmerelo japhb: it's debian:(whatever version)-slim
japhb has been trying to avoid shaving the "learn how to create new alpine native packages" yak, but ... 08:18
jmerelo japhb: well, it could theoretically be done with Debian slim. I could give it a try.
japhb OK, worth a try. I mean, I'm basically just using Ubuntu as a Debian anyway, so it's not that big a difference in effect, but if the base image is a lot smaller and it cleans out better on purge, I'm all for it. 08:19
jmerelo No, wait, it's not that one...
jmerelo This one github.com/JJ/docker-raku 08:20
japhb japhb.sleep(*) # Good night y'all, I'll backlog any MUGS comments tomorrow. :-) 08:36
jmerelo Good night! 08:44
tyil huh, I can donate to the Python Software Foundation on humblebundle.com, wonder how much effort it would be to add a potential Raku (or Perl) foundation there 08:53
MasterDuke that would be nice. i haven't bought a bundle in a little while now, but i have spent a bunch over the years 08:56
tyil it would be an incentive for me to check the site more regularly :>
notagoodidea m: say "foo bar".words.lc; 09:02
camelia foo bar
notagoodidea say "Foo Bar".words.lc.WHAT
evalable6 (Str)
notagoodidea m: say "Foo Bar".words.map(*.lc).WHAT
camelia (Seq)
CIAvash weekly: blog.ciavash.name/2021/03/16/impro...emacs.html 11:36
notable6 CIAvash, Noted! (weekly)
codesections CIAvash++ very cool. That might be enough to get me to switch back to flycheck (from flymake) 12:00
CIAvash 🙂 12:02
lizmat clickbaits rakudoweekly.blog/2021/03/15/2021-...year-itch/ 13:23
notagoodidea \o/ 13:25
guifa2 lizmat++
tellable6 2021-03-12T14:55:58Z #raku <vrurg> guifa2 So far, I don't see any wrongdoing in Role() behavior. But can't be sure without more details.
guifa2 lizmat: I actually hadn't used App::Mi6 before, didn't realize that's how you were generating it, I'm gonna take a look at it to see how I might generate some of my documentation multilingually 13:27
guifa2 github.com/alabamenhu/IntlLanguageTagSimple <-- example of a localization per my mailing list message 13:28
xinming What is the right way to check process is running for Proc::Async instance? 15:48
docs.raku.org/type/Proc::Async in this page, We have started and ready method, But doesn't seem to mean what I need. 15:49
lizmat what do you need ? 15:52
xinming I just thought we can use "/proc/{$p.pid}".IO ~~ :d to do what we want. Is there a standard way?
lizmat that would maybe work on Linux, but not on MacOS or Windows, afaik
gfldex xinming: you have to check if the symling /proc/$pid/exe points to the right thing. And even then there migth be cases where this can fail. 15:56
xinming: the right way would be to hold and check a file descriptor to the child. But since that is hidden from Raku code, there is no reliable way to check if a "child" is still alive. 15:57
xinming got it, thanks. 15:58
So, I think, this should be a reasonable feature request. 15:59
ugexe not sure its possible
not without race conditions that make its unsuitable for core feature
gfldex xinming: if you control the child, you might be able to do something with a fifo. 16:00
ugexe if you're using proc::async why cant you just set some flag like $no-longer-running = 1 whenever the proc finishes or errors (since the parent process can watch these inside an e.g. react block)? 16:02
ugexe my $is-running = 0; my $promise = start react { my $proc = Proc::Async.new("raku","-e", "sleep(5)"); whenever $proc.start { $is-running = 1; so $_; $is-running = 0; } }; while $is-running != 1 { say "not finished" } 16:07
of course $is-running should be protected but this is just a demonstration 16:08
[Coke] raku 16:15
MasterDuke gesundheit 16:16
xinming ugexe: Thanks, I just now forgot that we can catch the exception to handle error 16:21
guifa2 is there a way to subclass List? "is List" works but I can't figure out how to handle the self.bless 17:16
Geth Raku-Steering-Council/main: 47b476f155 | (JJ Merelo)++ | papers/CoC.md
Trying to see if it's a name problem
17:18
Raku-Steering-Council/main: d77ad515f1 | (JJ Merelo)++ | README.md
Linking the new web-only page
17:20
Raku-Steering-Council/main: e42089092a | (JJ Merelo)++ | papers/CoC.md
Adding note to the copy
leont Why can I say %!monitors<>:v but not %!monitors:v 18:38
leont That zen slice there feels rather unfortunate 18:39
codesections leont: I don't know why it's needed, but isn't that a decont operator, not a zen slice? (Not sure if that matters) 18:44
leont Is there a difference? 18:46
codesections maybe not? I always thought there was, but I can't think of what it'd be atm 18:51
[Coke] tries to make any of his windows shells happy to display UTF8 output from a raku app and fails 19:28
powershell, cmd, git bash - first two using chcp 65001 - everything garbled, not always the same way
[Coke] guesses the last issue is not having decent fallback fonts for emojis. 19:29
a tutorial on how to set this up would probably be very helpful for casual windows users.
Geth ecosystem: 2ed06f1a3f | (David Warring)++ | META.list
css-raku org has movedf to CPAN
19:35
evalable6 ugexe, Full output: gist.github.com/2e7474650db53d2bef...bef6f3feb7 20:25
guifa2 leont / codesections: %!monitors:v is trying to adverb an object. There's no operator to handle the :v adverb. Zen slicing gives you an operator (even if it's often a noop) that can be adverbed 20:38
[Coke] .seen jonathanstowe 23:13
tellable6 [Coke], I haven't seen jonathanstowe around
[Coke] .seen stowe
tellable6 [Coke], I haven't seen stowe around, did you mean thowe?