🦋 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.
rypervenche So I've been working on moving my current Bash backup script over to Raku and adding some new features to it. I'm currently writing it as a single script and very functionally, but I was thinking of breaking it out into a real Raku module and not having it all cluttered in a single file. 00:53
I also have some resources (like my rsync exclude list and rsync options) that I think would make sense to have in separate files. Does anyone know of any good examples of a good module that I could use as an example? 00:54
Or any ideas of how I might break this up into different parts? I'm not sure if I would be wanting to make classes or simple keep it the way it is, but put parts into different files and simply call them in the main one: gist.github.com/rypervenche/b18cc7...9b479bfe03 00:55
Voldenet my approach might be wrong, because I'm a oop junkie, but I'd definitely make roles/classes out of this (so, for example mounts-file processor is a class, fsck accepts this class and so on) 01:30
and ofc, I'd get rid of anything that looks like global state, because I dislike having that - I'd rather have complex description of everything in my MAIN file, but again, it's only my preference 01:33
Voldenet m: class Mounts-File { has IO $.path = "/proc/mounts".IO }; say Mounts-File.new.path; say Mounts-file.new(path => "/whatever").path 01:38
camelia 5===SORRY!5=== Error while compiling <tmp>
Undeclared name:
Mounts-file used at line 1. Did you mean 'Mounts-File'?
Voldenet m: class Mounts-File { has IO $.path = "/proc/mounts".IO }; say Mounts-File.new.path; say Mounts-File.new(path => "/whatever".IO).path 01:39
camelia "/proc/mounts".IO
"/whatever".IO
Voldenet That's very java-like approach tho 01:40
rypervenche Oooh, I'll do that. Thanks for the advice. 01:53
cpan-raku New module released to CPAN! Math::Libgsl::RandomDistribution (0.0.1) by 03FRITH 08:13
pilmihilmi I'm poking around in NQP and wanted to ask weather maybe the Precedence Parser of NQP can be implemented in Raku Grammar or weather the constructs used are NQP lowlevel specific? 08:54
I'm talking about this code: github.com/Raku/nqp/blob/master/sr...r.nqp#L384 08:55
moritz pilmihilmi: I don't think there's any magic in there that would prohibit a raku-level reimplementation 08:56
pilmihilmi: in fact, for my book I've implemented a simple precedence parser (only infixes, IIRC) in raku 08:59
(chapter "Case Studies" of www.apress.com/us/book/9781484232279) 09:01
pilmihilmi moritz: That sounds promising. But for instance cursor_start_cur() and $termcur.MATCH(), what type of raku grammar primitives could I use to implement these? The code also sets the pos of the match. I'm not really fluent in raku but it seems readonly property etc... 09:06
jnthn pilmihilmi: I don't think you'd want to translit it that directly; a bunch of what you see in there is optimization based on knowing internals. 09:09
When I've done OPP I've declared proto tokens for infix/prefix/postfix/term, written a rule like rule EXPR { <termish> [<infix> <termish>]* }, with token termish { <prefix>* <term> <postfix>* }, and then done the precedence sorting in an action method. 09:12
(My factoring was a bit different. In operators I did `make Foo::Infix::Add`, for example, and had a `prec` method on that class, for the precedence sorting, and then made a new instance of that type for the AST node in EXPR) 09:13
pilmihilmi jnthn: moving precedence sorting to the action is a good hint. One thing I wonder still is weather the kind of dynamic parsing (try and backtrack like (I only sense it but am not really fluent in raku)) in the Precedence Parser of NQP is not really possible with raku? Is the NQP grammar exposing some internal/mechanisms that are closed in raku? It seems the "cursor" concept and calling "MATCH" seems NQP-only? 09:21
moritz pilmihilmi: an OPP shouldn't make the grammar backtrack 09:23
pilmihilmi jnthn: I'm trying to understand how the code is working because the grammar building on it is so exceptionally small and nice to read...
moritz pilmihilmi: I'd recommend you start with the examples in my book, they have a simple explanation using Raku code only 09:24
it only handles infixes, but contains some hints on how to expand it to other operator types and associativity and so on 09:25
jnthn pilmihilmi: MATCH is something that's called for you provided you're writing stuff as a token/rule rather; those calls are really it "pretending" to be the regex engine 'cus it's written out as a method
pilmihilmi moritz: Is Apress books distributed as pdf or do I need to intsall some proprietery program in linux? 09:30
moritz pilmihilmi: if you buy through apress, you get a watermarked (with your name) but DRM-free PDF 09:33
I believe you also get an .epub copy, but I'm not entirely certain
pilmihilmi moritz: currently stuck in payment limbo, but asking Stringer Customer Service now... 09:58
jnthn: May I aske weather there is some resources that describe the internals of the grammar system of raku, something like a raku-grammar-guts ? 10:00
jnthn I'm not aware of one. 10:04
(I figured it out by reading the implementation. Or perhaps by writing a few parts of it. :)) 10:06
Petr37_ nice day)) where i can find simple module example? 10:10
lizmat .tell Petr37_ modules.raku.org/dist/Today:cpan:ELIZABETH 10:13
tellable6 lizmat, I'll pass your message to Petr37_
lizmat modules.raku.org/dist/Today:cpan:ELIZABETH # Petr37_ 10:13
modules.raku.org/dist/Today:cpan:ELIZABETH # Petr37
Petr37 lizmat, thanks! all i need)) 10:18
all models open source?
dakkar Petr37: there's a LICENSE file that contains the Artistic License, so yes ☺ 10:22
lizmat yeah, I'd say everything on modules.raku.org is open source in one form or another :-) 10:23
JJMerelo m: print "Hello" | "Goodbye" 10:26
camelia HelloGoodbye
JJMerelo m: put "Hello" | "Goodbye" 10:28
camelia Hello
Goodbye
Petr37 interesting... what about compiled (bytecode) modules? 10:29
without source?
dakkar I'm pretty sure there aren't any on modules.raku.org 10:30
Geth_ advent: 832514df46 | (Tom Browder)++ (committed using GitHub Web editor) | raku-advent-2020/authors.md
remove tbrowder
10:31
Petr37 thanks 10:32
lizmat Petr37: that would really be up to packagers
Petr37 lizmat, ok) 10:35
JJMerelo m: printf( "%.2d", ⅓ | ¼ | ¾ ) 10:41
camelia 000000
JJMerelo m: printf( "%.2f", ⅓ | ¼ | ¾ )
camelia 0.330.250.75
JJMerelo m: printf( "%.2f ", ⅓ | ¼ | ¾ )
camelia 0.33 0.25 0.75
Geth_ doc/master: 4 commits pushed by (JJ Merelo)++ 10:44
JJMerelo Not clear from above because it's in the body of the message, but the 6.d documentation issue is now closed 10:47
holyghost I'm doing some scheme, java tokenizers, streams, collection actors. It's something different for pm.org
Geth_ doc: 61f469a19d | (JJ Merelo)++ | doc/Type/independent-routines.pod6
Minor corrections to put
10:57
linkable6 Link: docs.raku.org/type/independent-routines
JJMerelo notable6: weekly the 6.d spec has been totally documented github.com/Raku/doc/issues/2632 11:03
notable6 JJMerelo, Noted! (weekly)
Geth_ doc: a11a097157 | (JJ Merelo)++ | META6.json
Bumps up META version
11:05
JJMerelo So there's a new release of the documentation, FWIW 11:13
oddp Slick! Thanks for the continuous work! 11:17
[ptc] JJMerelo++ 11:40
holyghost nice work, JJ 11:44
pilmihil` moritz: Got the pdf now. Nice book, thanks. 11:46
cpan-raku New module released to CPAN! Hash2Class (0.0.2) by 03ELIZABETH 12:13
lizmat JJMerelo++ 12:24
vrurg . 13:21
[Coke] did a git pull --rebase, reconfig/build, still getting /Volumes/BUKKIT/Users/coke/p6/bin/nqp-m version 2020.06-9-gdb0c1088f is outdated, 2020.06-19-g3e928af0b expected. 14:24
[Coke] (using the installed version and not the version we're currently building) 14:24
patrickb71 Coke, do you build nqp yourself or do you let the rakudo Configure.pl script do that for you? 14:27
[Coke] I let config.pl do it 14:28
I just did an rm ./nqp and am trying again, JIC
(if this works, guessing we need to update the NQP revision ref.) 14:29
(I also tend to include --force-rebuild)
patrickb71 Coke: I'm not entirely sure how exactly you do the build. Given you already had rakudo and nqp installed and then try to rebuild rakudo (irrespective of you deleting the `rakudo/nqp` folder) and *not* passing the `--gen-nqp` option is expected to result in the error you posted. 14:31
[Coke] /opt/local/bin/perl5.28 Configure.pl "--prefix=/Volumes/BUKKIT/Users/coke/p6/" "--gen-nqp" "--gen-moar" "--backend=moar" "--moar-option=--debug" "--force-rebuild" "--force-rebuild" $* 14:32
running that inside a long standing 'rakudo' clone. 14:33
patrickb71 Hm. I think that should work.
[Coke] (not sure why --force-rebuild is in there 2x)
looks like removing the nqp folder fixed it - guessing that we're missing an nqp commit that addressed something? 14:34
holyghost [Cokde] : you better build it cleanly if you can
[Coke] Yes, as I said, removing the nqp folder (which forces it to latest) avoided the issue. 14:36
vrurg [Coke]: --force-build is there because this is what you used last time when ran Config.pl 14:38
[Coke] yes, didn't realize it wasn't de-duping. 14:39
patrickb71 vrurg: github.com/rakudo/rakudo/blob/mast...do.pm#L664 14:40
Does that line mean that once an nqp is checked out it won't change the checked out version?
[Coke] oh, that makes it look like force-rebuild is having kind of the opposite effect of what I expected.
[Coke] drops it from his default build. 14:42
holyghost good point 14:43
vrurg patrickb71: only when --force-rebuild is used. Because the option is mostly for development when one needs to test the exact combination of commits. 14:45
patrickb71 OK. Then it's clear why it behaved the way it did. 14:46
[Coke] Might be nice to change the force-rebuild help to indicate that (test currently checked out versions) as opposed to the negative phrasing currently there. 14:47
Thanks for the explanation, though, much clearer now
vrurg [Coke]: Agree. Hope I remember to do it later today when get some time. 14:55
holyghost you better dump the tarball explode, before you continue 14:57
codesections are any `$=` variables other than `$=pod` currently implemented? I get `pod variable $=Foo not yet implemented. Sorry` when attempting to access any others, as described in the docs ( docs.raku.org/language/variables#The_=_twigil ) 15:36
guifa codesections: no. If you use =AUTHOR foo for instance, and then later say say $=AUTHOR, you get “Pod variable $=AUTHOR not yet implemented. Sorry.” 15:50
pod got the least attention for a while, but there are now people working on it so yay.
kawaii SmokeMachine: hello, I had some beginner questions for using Red, if you have time to help? :) 15:56
codesections :guifa Thanks. I'm hoping to be able to help with that work, though I probably need to learn a bit more about Raku and a lot more about Rakudo & NQP) before I can be of much help 16:12
guifa Yeah, I think we’ve hit the point where people are starting to look at long-term stuff more and more — where in-code documentation plays a huge role — and so the same usability kinks/quirks that early Raku went through we now to get to go through :-) 16:16
codesections :guifa "we’ve hit the point where people are starting to look at long-term stuff more and more"… unlike the last 20 years of Raku's development as a 100-year language, where everyone was focused on the short-term stuff :D 16:21
guifa haha
I meant long-term coding projects
As opposed to short-lived scripts / etc
codesections yeah, and it's a fair enough point. Just struck me as funny :) 16:22
guifa Lately I’ve been playing around with doing more and more literate styles of documentation 16:26
codesections Yeah, Pod6 really seems like it'd be a great fit for that style 16:26
guifa Which of course is what I feel like pod most lends itself towards, but I also wonder then how the bestw ays of presenting that on a user-facing side. I’m sure for comma it could have an code-“reading” style where the pod is rendered appropriately without the code, but it’s the creation of, e.g., a website documenting things that makes me most think about stuff 16:28
JJMerelo guifa: cool! 16:30
guifa that’s why a link to a code object (me and ShimmerFairy were talking about it the other day) would be awesome, because right now, all of the awesome rakudocs are entirely separate from the code (speaking of, jjmerelo++) in order to enable the links 16:33
codesections Yeah, I've been thinking along vaguely similar lines. In my ideal world, `#|` declarator blocks could be used to extract more API-level docs, while the main Pod blocks could give a more "literate" feel for the code. And both could be automatically viewable online as HTML or locally (via man? info? as plain text?). But that's getting pretty far ahead 16:34
JJMerelo That's cool 16:35
codesections (Poking around with these sorts of ideas was what led me to realize that `#|` can't currently be used to document variables. But I opened an issue: github.com/rakudo/rakudo/issues/3804 16:36
)
JJMerelo For the time being, you need to explicitly mix code and documentation. doc renderers just extract the declaration part...
SmokeMachine kawaii: how can I help you? 16:37
JJMerelo codesections could you also please show the AST for that piece of code? I don't remember exactly how to do that, it's something like raku --ASt
Let me check
kawaii SmokeMachine: If I want to create a table with a combined primary key in Postgres, can I just use `is serial` on two items instead of `is column`? :) 16:38
JJMerelo codesections no, raku --target=optimize docs.raku.org/language/faq#Is_ther...f_the_AST? 16:39
SmokeMachine kawaii: yes, but `is serial` mean id + auto-increment, you probably want 2 `is id` instead
JJMerelo So you save your program to a file, and run that through raku --target=optimize, and it prints the AST so that we know why the pod is not assigned to the right declaration. 16:40
kawaii SmokeMachine: ah yes, I understand, I will try that now, thanks :)
SmokeMachine kawaii: like here: github.com/FCO/Red/blob/master/doc...rimary-key
codesections JJMerelo: Aha, I didn't understand what you were asking for. Will do! 16:41
kawaii SmokeMachine: I missed that, there is so much Red documentation it's hard to find specific things :)
JJMerelo codesections comments (and then pod6 sections) are part of the AST, so what way we know where they are and check if there's an arror
you can also use target=ast
SmokeMachine kawaii: that page is new... I really need some help to organise the documentation... 16:42
kawaii SmokeMachine: instead of using `has DateTime`, what can I use to get `timestamptz`, which is postgres-specific 'timestamp WITH timezone'? :)
SmokeMachine kawaii: you can use `is column{ :type<timestamptz> }` if I'm not remembering it wrong... let me take a look 16:43
kawaii SmokeMachine: I'll try like this `as DateTime $.last-updated is column{ :type<timestamptz> }` :) 16:45
SmokeMachine kawaii: yes, it should work... if it doesn't, please let me know 16:47
kawaii SmokeMachine: I think this error is unrelated, but I'm new to the lib and unsure :) www.irccloud.com/pastebin/6gtCMxno/
kawaii L17 is `Reputation.^create-table: :if-not-exists;` 16:48
SmokeMachine kawaii: sorry... I'll have to add that...
kawaii SmokeMachine: otherwise my script works fine if I just use the regular DateTime :) thanks for your help! 16:50
SmokeMachine: I note that Red has created column names using _ instead of - (which is totally fine in postgres if you wrap it in quotes i.e. `"user-id"`) is there a way to override this behaviour yet? :) 16:52
SmokeMachine kawaii: it seems I've forgot the default... :) 16:54
fixing it...
kawaii: not yet... 16:55
kawaii SmokeMachine: great, I'm going afk for 1hr or so, but feel free to ping me if there is stuff to test :)
I really love Red so far, even from making my first table :D
SmokeMachine :) 17:00
kawaii: that should be working now... 17:05
holyghost I've written some more jav actor objects in scheme, I'm writing a prologian parser for expanding delimiters in tokenizers 17:06
*java
and also a theorem prover for it
it endures though while parsing the delimiter 17:07
cpan-raku New module released to CPAN! Red (0.1.19) by 03FCO 17:08
holyghost The meaning is to caalculate the delimiter spces and so on 17:09
*spaces
Xliff Holaaa.... 17:10
m: my rule mode { (<[ugo]>) (<[+-]>) (<[rwxstST]>) }; sub change ($mode where * ~~ &mode) { say $/.gist }; change('ug+rx') 17:11
camelia Constraint type check failed in binding to parameter '$mode'; expected anonymous constraint to be met but got Str ("ug+rx")
in sub change at <tmp> line 1
in block <unit> at <tmp> line 1
Xliff m: my rule mode { (<[ugo]>) (<[+-]>) (<[rwxstST]>) }; sub change ( $mode where * ~~ &mode() ) { say $/.gist }; change('ug+rx')
camelia Too few positionals passed; expected 1 argument but got 0
in regex mode at <tmp> line 1
in sub change at <tmp> line 1
in block <unit> at <tmp> line 1
holyghost It's inside an utilities lib for scheme (the prolog and theorem prover system)
Xliff m: my rule mode { (<[ugo]>) (<[+-]>) (<[rwxstST]>) }; sub change ( $mode where * ~~ /<mode>/ ) { say $/.gist }; change('ug+rx')
camelia Constraint type check failed in binding to parameter '$mode'; expected anonymous constraint to be met but got Str ("ug+rx")
in sub change at <tmp> line 1
in block <unit> at <tmp> line 1
holyghost lol Xliff
Xliff m: my rule mode { (<[ugo]>) (<[+-]>) (<[rwxstST]>) }; sub change ( Str $mode where * ~~ /<mode>/ ) { say $/.gist }; change('ug+rx')
camelia Constraint type check failed in binding to parameter '$mode'; expected anonymous constraint to be met but got Str ("ug+rx")
in sub change at <tmp> line 1
in block <unit> at <tmp> line 1
Xliff m: my rule mode { (<[ugo]>) (<[+-]>) (<[rwxstST]>) }; sub change ( Str $mode where *.match(/<mode>/) ) { say $/.gist }; change('ug+rx') 17:12
camelia Constraint type check failed in binding to parameter '$mode'; expected anonymous constraint to be met but got Str ("ug+rx")
in sub change at <tmp> line 1
in block <unit> at <tmp> line 1
Xliff m: my rule mode { (<[ugo]>) (<[+-]>) (<[rwxstST]>) }; sub change ( $mode where *.match(/<mode>/) ) { say $/.gist }; change('ug+rx')
camelia Constraint type check failed in binding to parameter '$mode'; expected anonymous constraint to be met but got Str ("ug+rx")
in sub change at <tmp> line 1
in block <unit> at <tmp> line 1
Xliff :(
m: my rule mode { (<[ugo]>) (<[+-]>) (<[rwxstST]>) }; sub change ( $mode where { .match(/<mode>/) } ) { say $/.gist }; change('ug+rx')
camelia Constraint type check failed in binding to parameter '$mode'; expected anonymous constraint to be met but got Str ("ug+rx")
in sub change at <tmp> line 1
in block <unit> at <tmp> line 1
Xliff m: my rule mode { (<[ugo]>) (<[+-]>) (<[rwxstST]>) }; say 'ug+rx' ~~ &mode 17:13
camelia Nil
Xliff m: my rule mode { (<[ugo]>) (<[+-]>) (<[rwxstST]>) }; say 'ug+rx' ~~ &mode.gist
camelia False
Xliff m: my token mode { (<[ugo]>) (<[+-]>) (<[rwxstST]>) }; say 'ug+rx' ~~ &mode.gist
camelia False
Xliff m: my token mode { (<[ugo]>) (<[+-]>) (<[rwxstST]>) }; say 'ug+rx' ~~ &mode
camelia 「g+r」
0 => 「g」
1 => 「+」
2 => 「r」
Xliff m: my rule token { (<[ugo]>) (<[+-]>) (<[rwxstST]>) }; sub change ( $mode where { .match(/<mode>/) } ) { say $/.gist }; change('ug+rx')
camelia No such method 'mode' for invocant of type 'Match'. Did you mean any
of these: 'codes', 'made', 'make', 'none'?
in sub change at <tmp> line 1
in block <unit> at <tmp> line 1
Xliff m: my token mode { (<[ugo]>) (<[+-]>) (<[rwxstST]>) }; sub change ( $mode where * ~~ &mode() ) { say $/.gist }; change('ug+rx')
camelia Too few positionals passed; expected 1 argument but got 0
in regex mode at <tmp> line 1
in sub change at <tmp> line 1
in block <unit> at <tmp> line 1
Xliff m: my token mode { (<[ugo]>) (<[+-]>) (<[rwxstST]>) }; sub change ( $mode where * ~~ &mode ) { say $/.gist }; change('ug+rx') 17:14
camelia 「g+r」
0 => 「g」
1 => 「+」
2 => 「r」
melezhik Hi! Does rakudo work on Mac OS? 17:19
lizmat melezhik: yes 17:20
melezhik what is the best way to install Rakudo on Mac?
lizmat I have no idea, I do a git clone and then build
but then again, I also have XCode installed
melezhik yeah, is it possible install with user, without root access?
providing that xcode is here 17:21
lizmat works for me :-)
guifa Building from source is also probably best right now. Current versions of macOS are starting to get insane about permissions for running non-code-signed software
holyghost melezhik : it does not go on powerpc mcs 17:24
*macs
Zero_Dogg How does rakudo-js actually work? Is it a transpiler or does it actually bundle an asm.js or similar build of rakudo? 17:33
kawaii SmokeMachine: tested, working, thank you so much! 17:36
[Coke] rakudo targets nqp - rakudo.js has a JS backend for NQP 17:37
[Coke] easiest way to use it is to install the NPM package. 17:37
SmokeMachine kawaii: \o/ 17:38
kawaii: would you mind to do me a favor?
kawaii SmokeMachine: I can certainly try? :) 17:39
holyghost js is cool
SmokeMachine kawaii: could you, please, create an issue to make it possible to change the table name?
[Coke] er, phrasing was weird there: NQP has a JS backend. (it also has a moarvm backend - the default, and a jvm backend)
kawaii SmokeMachine: I was just about to ask if you'd like me to do that :)
SmokeMachine kawaii: I mean a way to set the rule for the table name creation 17:40
:)
kawaii Yep, doing it now!
SmokeMachine kawaii: thank you very much
[Coke] .seen pmurias 17:41
tellable6 [Coke], I saw pmurias 2020-06-13T14:07:49Z in #raku: <pmurias> hi, I moved to Warsaw last Wednesday, any Raku folk living in the city?
[Coke] .ask pmurias do you have directions on how to generate an updated npm module? Want to make sure we keep up to date on the rakudo.js versions if possible. 17:42
tellable6 [Coke], I'll pass your message to pmurias
kawaii SmokeMachine: 439 :) 17:43
kawaii SmokeMachine: does Red have any regards to schema versioning? i.e. a future version of my program adds/removes or changes a column - is there logic in Red to handle this? 17:45
holyghost I'm going to continue on my scheme prolog parser 17:48
timotimo Zero_Dogg: it doesn't use anything like asm.js at the moment 17:59
SmokeMachine kawaii: not yet... but there is a long discussion about that... 18:00
kawaii: please, give me your opinions about that: github.com/FCO/Red/issues/15 18:01
SmokeMachine kawaii: and I've made some experimentation on that: github.com/FCO/Red/blob/master/lib/Red.pm6#L47 18:08
kawaii SmokeMachine: I asked my colleague who is far more experienced to comment on it, and he has :) 18:16
Zero_Dogg timotimo: so it pretty much runs an interpreter in the browser, then? 18:17
timotimo it translates nqp and raku code to javascript code 18:20
vrurg .ask Xliff try PM me when available. 18:22
tellable6 vrurg, I'll pass your message to Xliff
Zero_Dogg timotimo: okay, what I'm trying to figure out, is the overhead of translation *in browser* or at compile time locally when building the app? 18:25
SmokeMachine kawaii: thanks! 18:28
holyghost 19h o'clock, done coding, booze time ! 18:50
*20 o'clock :-) 18:53
timotimo Zero_Dogg: rakudo has support for pre-compilation, i don't know how it behaves in the nqp backend, but there was something about precompiling stuff so that the test suite runs faster, so there is something somewhere 19:00
Geth_ ecosystem: 8d8d000b64 | thundergnat++ (committed using GitHub Web editor) | META.list
Add Gray::Code::RBC to the ecosystem

Add a reflected binary code Gray code encode / decode module
See github.com/thundergnat/Gray-Code-RBC
19:04
lizmat github.com/Raku/RSC/blob/main/anno...0200720.md # Raku Community to elect Raku Steering Council 19:28
holyghost I'm a supporter !
liz for president 19:29
and holly in the steering council !
holyghost great idea 19:33
I am just a package writer though, end user :-)
good for JJ and liz 19:34
and moritz 19:36
the only ones I know :-)
I hope there's severl elections so we don't have a BDFL 19:40
*several
*electees 19:41
holyghost lizmat : it stays a council right ? There's no dictator ? 19:44
lizmat It's all in github.com/Raku/RSC/blob/main/pape...il_Code.md 19:45
holyghost thx lizmat 19:52
I hope there's not too much flux 19:53
status-quo s if it were
*as
stable people, stable raku
maybe have some arch-overlords to delegate things also 19:54
holyghost ex-members 19:54
then wtching out for big changes as code can detoriate
*watching
that's all
cracker vs. hacker, holy wars, such things 19:55
thing is, I do support the candidtes, good choice for themselves 19:59
*candidates
holyghost good input, good output 20:00
holyghost So there's 7! (faculty) relations ... 20:06
which is better thn council of 13 (13!) :-) 20:07
*than a
stupid 'a' key
modular systems are all right FWIW 20:09
holyghost We're doing all right now, so a status-quo should be there 20:11
There is lots of output of perl6/rku
good talks on irc, and so on 20:12
*perl6/raku
a predictive MILESTONES file would be in order, for example, so people can add to it on the whole, as everything goes 20:13
the project leader of worldforge.org and inkscape.or told me that, back in the day
*inkscape.org
if you put something forward like that, everyone can contribute to its needs, today, tomorrow etc. 20:14
lizmat that will be something for when the RSC is actually elected 20:17
holyghost ok
a steering council should have its supporters, that's all
lizmat it should indeed 20:18
holyghost from here to there 20:19
holyghost ok, I'm going to listen to some music 20:30
oddp thanks a lot for yet another weekly edition! 20:43
guifa lizmat++ 20:45
lizmat oddp guifa thank you 20:45
guifa ponders what to do next in Intl 20:57
emoji annotations or spelled-out numbers
Altreus apparently "The use of `.result` in a `whenever` block is blocking." ... I assume this applies to `await` as well. Given that, how do I ensure I inspect the result of a promise (in order to get any errors) but without blocking the whenever? 20:59
or the react
holyghost guifa : SFY 21:00
Altreus oh do I just do whenever $promise inside the existing whenever?
Asking questions is a great way to suddenly realise the answer!
Altai-man_ Altreus, if you want to inspect result of a promise _eventually_, use .then.
If you are working with react|supply whenever -> yes, can just add another one on top. 21:01
lizmat Altreus: I'd say that's it, yes
Altreus okay, and what if I don't want to do anything on success? Is it bad form to have an empty whenever?
If I use the then form I have to get its result so at least there's something in it, but it seems unnecessary just to have words in the block 21:03
Altai-man_ lizmat, very cool weekly! Out of curiosity, no release mention? I kinda thought you kept it back a bit to add that.
lizmat no, I kept it back to get the election announcement in, because I was working on that as well at the same time 21:04
Altai-man_ I see, okie.
lizmat next week a proper announcement in RWN, with maybe a R* as well :-)
Altai-man_ While releasing I thought with me on board we probably had more "a week after" announcements than "in time" ones, so maybe people are used to it anyway. :> 21:05
lizmat in any case, now that the release is out again, I will be committing to master again :-)
Altai-man_ lizmat, please do! Also PR queue is growing and all that.
lizmat next weeks title: "Almost on time"
SmokeMachine m: role R {}; R.^add_method: "bla", -> {} # how can I add a method into a role? 21:40
camelia No such method 'add_method' for invocant of type
'Perl6::Metamodel::ParametricRoleGroupHOW'. Did you mean 'find_method'?
in block <unit> at <tmp> line 1
SmokeMachine m: role :: {}.^add_method: "bla", -> {} # and why does this work? 21:42
camelia ( no output )
SmokeMachine m: role :: {}.HOW
camelia ( no output )
SmokeMachine m: say role :: {}.HOW
camelia Perl6::Metamodel::ParametricRoleHOW.new
Altreus any kind advice on whether an empty whenever is idiomatically acceptable? :) 21:46
lizmat what are you trying to achieve with it ? 21:58
all action as a side affect of the promise / etc
?
SmokeMachine m: role R {}; R.^candidates.head.^add_method: "bla", -> {} 22:11
camelia ( no output )
jnthn Altreus: Yes, if you're using the subscription to prevent termination of the enclosing `supply` or `react` for some reason, for example 22:24
SmokeMachine: A role declaration evaluates to the parametric role itself, but the name is a role group (for all roles with the same shortname); it's like a proto with multi candidates. 22:26
SmokeMachine: Also, .^add_method ao a composed role is risky in that roles are immutable (not to mention you won't get to close over the type variables)
s/ao/on/
SmokeMachine jnthn: thanks 22:34
cpan-raku New module released to CPAN! JSON::Fast (0.13) by 03TIMOTIMO
timotimo ^- welcome to fast-town 22:35
jnthn SmokeMachine: What's your use case btw? I may be able to suggest something
SmokeMachine I'm adding a experimental code on Red. 22:36
like this: github.com/FCO/Red/blob/master/lib/Red.pm6#L47
but I have 3 classes that does a role that has methods that if it .^can a method, it does the experimental feature, otherwise it does the original feature 22:38
jnthn: ^ 22:39
jnthn Ah, but there' you're adding a role to a class, not a method to a role?
SmokeMachine on the new feature I'm working on it is a method on a role... 22:40
timotimo i imagine you can put a ^parameterize method somewhere that might add an extra role with that experimental feature in it
SmokeMachine www.irccloud.com/pastebin/jFOdWv8s/jnthn%3A
jnthn Yes, but even if you add a method to the role, it's absolutely not gonig to be propagated to any class that has already composed the role 22:41
That's what I meant by roles being immutable. 22:42
SmokeMachine yes, I got it... 22:43
any suggestion of hoe doing that?
www.irccloud.com/pastebin/odKB22Rz...20is%2Fwas
jnthn I wish I had ideas in spades, but alas... 22:44
I guess the problem is about the scope of this too
Is `experimental` meant to make these effects global? 22:45
SmokeMachine yes
at least for now
another option I thought was: if its using experimental, uses one role, and use a different role otherwise 22:46
jnthn Dunno, do you know all the classes that do the role? If so just add it to each of them. I mean, experimental things either go away or become none-experimental, so maybe beauty doesn't matter
That or just have a package Red::Experimental and set $Red::Experimental::Feature = True; or some such and then check the variable
SmokeMachine that makes sense... 22:47
jnthn Not everything has to be done with types :)
SmokeMachine and I have a list of all types... I can grep which uses that role...
SmokeMachine jnthn: ended up with: github.com/FCO/Red/blob/master/lib/Red.pm6#L48 23:21
jnthn: thank you!
jnthn Maybe .^compose after adding the methods? 23:23
SmokeMachine sure!
(but seems to be working...) 23:24
jnthn sleep time for me; 'night o/
SmokeMachine I'm fixing that! Thank you jnthn 23:25
cpan-raku New module released to CPAN! Red (0.1.20) by 03FCO 23:51