🦋 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 6 September 2022.
aruniecrisps quick update on Moneys I added today: I changed the underlying amount type to FatRat so as to not lose any precision whatsoever 00:42
[Coke] github.com/coke/raku-cal/blob/mast...6.json#L23 did not make app::cal show up when searching for calendar 01:47
librasteve arun: interesting selection of FatRat for Money ... that's OK in that it will work in raku-land, but I wonder if that is enough - in the main you will want to interact with decimal storage in (eg.) accounting database systems www.ibm.com/docs/en/informix-serve...-data-type ... soo perhaps it would be better to go something like 11:41
subset Decimal of Rat where *.denominator == (1,2,5,10).any 11:42
and then 11:44
subset Money of Decimal where *.places == 2
btw this is just speculation, I think that FatRat is a good choice for now 11:46
(would also need a dedicated Money type to do some kind of bankers rounding) 11:49
lizmat librasteve or you could use Rats and make sure they upgrade to FatRats when they run out of precision 12:42
librasteve I think what I am saying (I am not an expert in FIN) that the expectation of the data type Money in the wide world is that it is a fixed place decimal (with limited range) and that maybe, depending on the use cases the raku Money type should meet this expectation and have well defined "bankers" rounding. That's because a math operation on a FatRat may result in a different result than the same operation on a fixed point decimal since 13:10
the decimal rounding will be less precise and less accurate. -- This is not a critique or request that Arun change their mind ... just me waffling on.
lizmat I guess then we would need an Int type that actually contains the value * 100 ? 13:15
El_Che lizmat: I think that non-strict constructors are an error. Probably a left-over from the Perl hash-workaround days 15:11
of course, changing default behaviour is breaking 15:12
antononcube @Coke I think you should put more tags to "App::Cal". For some reason the tag "calendar" is not included in raku.land page tags. 15:34
librasteve I am in class Physics::Unit::Definitions::en_SI {} but when I go ::?CLASS I get en_SI 15:35
how can I introspect the FQN? ie Physics::Unit::Definitions::en_SI?? please
tbrowder__ maybe Raku should have a fixed decimal type 16:25
[Coke] antononcube - don't want to randomly add tags. Need a list of tags that are respected or ignored. 16:32
[Coke] thinks to open a bug report on raku.land 16:35
[Coke] opens gitlab.com/raku-land/raku-land/-/issues/58 16:41
.seen jraspass
tellable6 [Coke], I saw jraspass 2023-10-05T20:31:25Z in #raku-dev: <JRaspass> [Coke]: I've whipped up a small change to show the distribution of licenses on raku.land - raku.land/stats
SmokeMachine antononcube: did you have chance to take a look at that example? 17:21
antononcube @SmokeMachine Yes, I looked at code. Still thinking about what and why... 17:57
librasteve errr, I found it say self.^name; 17:59
SmokeMachine antononcube: Configuration does not make sense in your opinion? I’ve made that thinking at something like a service, or something like that that would have many different parameters to configure itself and could reconfigure itself when the file changes… my first project using it is my “cron” (github.com/FCO/RakuCron) where the rules for where to run what uses Configuration 18:14
librasteve hi SmokeMachine - I had a look at Configuration yesterday and I am still trying to grok what it does and how it can help me ... my second impression is that this is a great way to handle configuration that may change dynamically (eg to restart a web server on a new port) and to push that around with a Supply - this makes me a bit in awe of what you can do with raku (a bit like comparing Cro to Rails) and also worried about how my 18:19
application architecture would need to be deeply async to use this (and I do not really have any good examples of when I would use this .... maybe to feed a table of live exchange rates to the Moneys module??)
my third impression is that this is not really what I need in the main since the 99% majority of my config is static over time, and while I can see that I need somehow to couple a rakumod file and a handful of yaml files to load and then expose the config to the mechanical parts of my code ... the example I have in mind right now is Physics::Unit which is a 1192 lines files with 446 lines of config (each line of which makes a Unit 18:25
object when loaded) ... so my focus at the moment is how to externalise and incrementally bring in config in groups that honours the dependencies (since each unit is defined in terms of other units up the tree) ... so my default option right now is to package Unit groups as separate raku modules under zef dependency management (to handle the deps and versioning and to allow others to add their own definitions)
photos.app.goo.gl/Bhtv2skVmDBZPsfV7 18:31
^^ that's a screen grab from my Comma right now
my first impression is that I don't really know what is going on ... so as Anton says, I think bringning some simple use case examples to the README and maybe reducing the length of the first page intro doc by 70% would be easier (I prefer human to AI) 18:33
SmokeMachine librasteve: it also has functions to just return the configuration. And the application doesn’t really need to be that asynchronous… it can ignore the supply and just get the current configuration. It can also only react to specific values on the configuration. I got the idea for writing it when I saw some examples of applications configured on the same language it was written on (for example emacs, xmonad, stumpwm, etc…) 18:35
librasteve please do not take this as a negative ... I think I am slowly cottoning on ... could you maybe steer me as whether Configure would be a better option to handle config in dependent groups? 18:38
SmokeMachine What do you mean by dependent groups? 18:40
librasteve take a look here github.com/librasteve/raku-Physics...it.rakumod 18:42
(please)
line 762 defines 'Angle' => ['radian',],
line 766 defines ['sr', 'steradian'], 'radian^2', 18:43
762 is in the group BaseUnit
766 is in the group DerivedUnit
this is what I mean (its a slightly contrived example since I would probably load all the SI stuff together) 18:45
SmokeMachine librasteve: in that case, I don’t see that as configuration, but as something like constants… I’m currently on my phone… I’ll try to see if Configuration could help that somehow and write that for you when I’m back home ands with my computer 18:52
librasteve yeah sure - this unit stuff is quite a special use case ... and something zef install Physics::Unit::Avoirdupois<auth:FCO> is not yet within grasp!!! 18:54
en.wikipedia.org/wiki/Avoirdupois 18:55
anyway my wip code is here github.com/librasteve/raku-Physics...e/version2 18:56
if you want to poke around
tbrowder__ .ask ugexe any simple way to get all the installed modules upgraded by, say, 'auth<zef:tbrowder>'? 19:48
tellable6 tbrowder__, I'll pass your message to ugexe
tbrowder__ maybe a shell go 19:58
one liner
[Coke] does it need to be portable or is bash OK? 20:48
corwin [Coke]: are you in channel via IRC bridge or directly on IRC? 20:49
jdv what is irc bridge? 20:50
corwin s/IRC bridge/IRC <-> discord bridge/; # my IRC bias shows here, obvs
[Coke] if I was in the bridge, You'd see discord-raku-bot 20:51
tbrowder__: something like zef list --installed | grep ':auth<zef:japhb>'
except the auth you want.
corwin IIUC, discord-raku-bot creates a bridge between this channel on IRC (where I am joined) and this channel on a discord server I'm probably joined to if I could find the guild in my list.
[Coke]: I'm testing out a plugin that hides that from me, so I might not if that's working..
tbrowder__ [Coke]: thnx! 20:52
ugexe that won't quite work, because it is going to list the current versions 20:54
tellable6 2024-02-09T19:48:58Z #raku <tbrowder__> ugexe any simple way to get all the installed modules upgraded by, say, 'auth<zef:tbrowder>'?
ugexe zef install --debug $(raku -e 'my $auth = "github:ugexe"; .say for $*REPO.repo-chain.map({ $_.?installed.Slip }).grep(*.so).grep({.meta<auth> eq $auth}).map({ "{.meta<name>}:auth<{.meta<auth>}>" })') 20:55
well, assuming that you're asking to attempt to upgrade all modules with :auth<zef:tbrowder> 20:56
`zef install $(zef list --installed | grep ':auth<zef:tbrowder>')` wouldn't quite work because each line will contain the :ver<...> part, which prevents the install from trying to get a newer version 20:57
corwin0365 Oh, discord works and I even found the raku guild, and maybe even the right channel here! 21:17
corwin it works, this plugin: bru.st/i/emacs_ujoFOUvk1n.png 21:18
jdv a plugin shoulnt be needed in the first place 21:22
corwin I'm not sure I understand. Does your IRC client hide the existence of the bridge bot according to it's defaults, somehow? 21:23
jdv it does not. the bridge nick should be shorter. 21:24
corwin I think that might a different problem, preference.
librasteve if you can work out the discord <-> irc picture, then raku may be the language for you 21:53
tbrowder__ um, no, just mine, but that’s ok 22:28