🦋 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: ... | Log inspection is getting closer to beta. If you're a beginner, you can also check out the #raku-beginner channel!
Set by lizmat on 25 August 2021.
00:02 reportable6 left 00:05 reportable6 joined 00:58 Gwyn joined, Gwyn left 01:58 greppable6 left, evalable6 left, linkable6 left 01:59 greppable6 joined, evalable6 joined 02:01 nine left, nine joined 03:01 quotable6 left, squashable6 left, evalable6 left, tellable6 left, committable6 left, benchable6 left, greppable6 left, nativecallable6 left, coverable6 left, sourceable6 left, reportable6 left, bisectable6 left, shareable6 left, unicodable6 left, bloatable6 left, notable6 left, statisfiable6 left, releasable6 left 03:02 squashable6 joined, statisfiable6 joined, tellable6 joined, nativecallable6 joined 03:03 coverable6 joined, sourceable6 joined, unicodable6 joined 03:04 reportable6 joined, greppable6 joined, releasable6 joined 04:02 benchable6 joined, evalable6 joined, bisectable6 joined 04:04 shareable6 joined 04:12 neshpion left 04:56 tejr left 05:03 committable6 joined 05:06 Util joined, tejr joined
Geth doc: k3ut0i++ created pull request #3943:
update util/missing-types due to module name change for TypeGraph
05:21 keutoi joined 05:58 keutoi left 05:59 linkable6 joined 06:02 reportable6 left 06:03 quotable6 joined 06:05 keutoi joined 06:29 abraxxa joined 06:30 abraxxa left 06:32 abraxxa joined 06:37 abraxxa left 06:38 abraxxa joined 06:50 Sgeo left 07:02 bloatable6 joined 07:03 reportable6 joined 07:15 frost joined
Geth doc/master: 5 commits pushed by (Tom Browder)++, (Daniel Sockwell)++ 07:29
07:47 MasterDuke joined 07:49 MoC joined 08:03 notable6 joined 08:16 aolko[m] left 08:18 jjido joined 08:22 Altai-man left 08:28 Altai-man joined 09:14 lichtkind joined 09:16 jjido left 09:18 TempIRCLogger left, TempIRCLogger joined 09:26 TempIRCLogger left, TempIRCLogger joined 09:33 TempIRCLogger left, TempIRCLogger joined 09:38 TempIRCLogger left, TempIRCLogger joined 09:45 jjido joined 09:52 jjido left 10:52 evalable6 left, linkable6 left, evalable6 joined 10:54 linkable6 joined 10:56 MoC left 11:05 jjido joined 12:03 reportable6 left 12:17 jjido left 12:56 jjido joined 13:08 MoC joined 13:16 keutoi left 13:18 fmarais joined, keutoi joined 13:19 fmarais left 13:33 jjido left 13:51 b2gills left 14:00 frost left 14:05 reportable6 joined 14:11 b2gills joined 14:18 Sgeo joined 14:39 MoC left
Altreus Academic interest: how can one represent the concept of, e.g., 6pm, abstracted from any particular day? 14:49
For example, maybe I hold a 6pm object and wish to apply it to an arbitrary calendar date
ugexe 6pm might not exist on a given day 14:51
Altreus right
ugexe more familiar, 6am or some such might not during DST
Altreus That shouldn't forbid me from trying 14:52
The mechanism would of course take into account the fact some days have no 2am and some days have two
ugexe take a date object and add the appropriate number of hours. if that number of hours falls during the hour time loss of DST then it would likely error (similar to how perl DateTime would) 14:53
Altreus One would quite reasonably wish, for example, to separate the time of a meeting from the day, so it could be "every day at 6pm"
ugexe unless date is tied too close to particular day
Altreus so what would one do in order to represent an event that is "every day at 6pm"?
andinus should reference to freenode on learnxinyminutes/raku be changed to libera? 14:55
Altreus I suppose the UI would have to handle the problem when that time can't be represented for a given day
lizmat andinus: yes 15:01
Altreus lizmat: I watched your sigils video and I might actually have learned something 15:03
andinus lizmat: created a PR github.com/adambard/learnxinyminut.../pull/4224 with some other fixes 15:04
japhb Altreus: I would think that standard calendar invite formats would need to support that kind of thing, and even more detail like "Every 3rd Wednesday at 9 AM in America/Los_Angeles TZ" ... maybe look at iCal (or whatever the current equivalent is)? 15:17
Juerd Altreus: 6pm can be abstracted as an increase of 18 hours past the day boundary, which can be stored as a pair, my $offset = :18hours; my $today18pm = Date.today.DateTime.later(|$offset)
s/18pm/6pm/ # am/pm sucks. 15:18
japhb Juerd: "3rd bell"? :-)
Juerd ?
ugexe 6pm cant be represented as X hours past a day boundry for DST reasons. if e.g. 3am is skipped for DST then 3 hours past the day would be 4am 15:19
Juerd ugexe: Ah, right
Altreus Juerd: not on DST change days
japhb Juerd: Some cultures would have town or church bells ring at certain times of day, so you might say you were meeting someone at "third bell".
Altreus right
Juerd 24-18 hours before the next day boundary, at least until dst change time moves ;) 15:20
Altreus luckily that's 2am on purpose 15:21
at least here
Juerd Now, 2am itself is much harder to represent :)
Or, 2:01. There might be two of those, or none.
japhb The annoying thing is when you have a regular meeting with someone in a different TZ with different DST rules. Then your meetings will shift around 4 times a year (shifting on and off DST, in 2 different zones). Heavens help you if you have to deal with 3 zones. At my previous company, we just started setting all those meetings in UTC, and letting people do their local calculations. 15:22
Altreus that is what ugexe meant for the general case, yes
a given time may not exist every day
japhb Of course, then you had UTC and non-UTC meetings conflicting at DST changes ....
Altreus imagine if a meeting were at 2am in the UK because it's at a sensible time in the US or somewhere like that
Juerd 2am is an okay time for a party to end 15:23
ugexe that is generally how it works lol
Altreus And then it happened to be on that Sunday morning when we change to GMT
so it's either at 1am or at 1am
ugexe ive never worked somewhere where they catered meetings to outside of US besides an occasional second meeting at different hours
japhb Altreus: Working with a team literally on the opposite side of the earth (so ~12 hours apart) or spaced around the world (6-8 hours apart, 3-4 different zones) is *really* hard. 15:24
Altreus how on earth would you tell the UK resident when it is
ugexe their calander software translate it for them
Altreus It's not at 2am because that's 2 hours after 1am... and also 1 hour after 1am
presumably the calendar itself just shows 1am twice
never thought of that... hang on
nope 15:25
ugexe sorry, you only worked 7 hours today 15:26
japhb I guarantee you every joke we've made so far about getting time handling wrong has been done umpteen times in real business software
ugexe sure, hell ive seen most of these personally 15:27
Altreus Looks like Google's calendar just keeps showing me GMT+1 times even when I look at GMT+0 days 15:31
japhb I'm mildly surprised gcal is getting it wrong, simply from sheer number of people who have been using it for a long time 15:32
Altreus ipad calendar also has 24 sequential hours 15:35
hah I just realised my birthday is on the shortest day but my anniversary is on the longest day, by different metrics 15:36
I suppose BST end is not the same date every year :( 15:37
15:38 neshpion joined
Altreus > Time zones are handled as Integers in seconds offset from UTC, not by time zone name. 15:45
Is there a thing that uses zoneinfo to choose the right timezone for the given DateTime?
japhb Altreus: There's this module: raku.land/github:raku-community-mo...::TimeZone 15:47
Altreus ta
hmmmmmmmm 15:48
takes a while to test:/ 15:50
takes a while to install ... weird 15:58
ugexe well it contains hundreds of modules, all of which have to be precompiled 15:59
gfldex they all look like this: github.com/raku-community-modules/...Turkey.pm6 16:00
Altreus I ^C'd it to try again with --verbose and now it thinks it's installed :D
I guess I'll force a reinstall
lizmat github.com/raku-community-modules/.../Accra.pm6 # more complicated ones 16:01
although it looks like these could also be represented by JSON files, and thus skip the precomp penalty?
ugexe RAKU_LOG_PRECOMP=1 will show each file being precompiled during the install phase 16:02
Altreus aha
isn't there a C library that could be exposed?
gfldex it uses require to load the module for a specific timezone when needed and I can't spot any caching 16:04
is require doing the caching here?
Altreus iana provide timezone data as TSV 16:05
in a badly-behaved tarbomb
I guess it's more of a tar pellet
ugexe installation precompiles everything
Altreus > tz-offset 'Europe/London' 16:06
If this isn't how one is supposed to provide the timezone that should definitely be documented, because this is how the database does it
It says it's an invalid string 16:07
oh, it wanted '-0800' or something 16:08
gfldex the TSV can be found in github.com/raku-community-modules/...ols/tzdata 16:09
so it might be outdated already 16:10
japhb Altreus: I think you're supposed to use &timezone if you want to use the string form
Altreus ah I reaed "only tz-offset is supported" as "only tz-offset is implemented" 16:11
the other ones are doing stuff, some of which is erroring, but it's not supported, so that's OK :D
gfldex The module provides 2019a. IANA calles 2021a latest.
Altreus Difficult to decouple these things sadly 16:12
You can't really have an "update tz data but not the module"
gfldex Is there any OS that doesn't provide TZ data? 16:13
Altreus that was my next question, or my previous question, depending on how you feel about "isn't there a C library that could be exposed?" 16:15
All this was me trying to figure out what Raku does if I ask for 2am on October 31st 16:16
But currently there's nothing that can get to the point where it moans about it
anyway, I feel like there's a gap, because that day is 25 hours long, so there must be a time I can't get to 16:17
I think I'm describing a solved problem that I've only just realised exists :D 16:18
16:36 keutoi left 16:56 vodkra_ is now known as vodkra 17:10 andinus left 17:11 andinus joined 17:14 MoC joined 17:15 andinus left 17:21 MoC left
Geth doc: andinus++ created pull request #3944:
Update irc.libera.chat webclient url
doc: 4ca35f709f | Andinus++ | 7 files
Update irc.libera.chat webclient url

Updated to web.libera.chat/
doc: d29bcbb520 | (Elizabeth Mattijsen)++ (committed using GitHub Web editor) | 7 files
Merge pull request #3944 from andinus/master

Update irc.libera.chat webclient url
lizmat andinus++
17:42 abraxxa left 17:45 xinming joined 17:50 andinus joined
andinus m: put <ping> 17:51
camelia ping
17:54 jjido joined 18:02 reportable6 left 18:03 reportable6 joined 18:16 lichtkind left 18:41 rakugest joined 18:44 silug joined, melezhik joined
melezhik . 18:44
18:45 discord-raku-bot left 18:46 discord-raku-bot joined 19:00 melezhik left 19:25 lichtkind joined 19:51 Xliff left 20:02 jjido left 20:11 jjido joined 20:54 xkr47 left 20:58 xkr47 joined 21:00 Summer_ joined 21:01 casaca left, Summer left, Summer_ is now known as Summer 21:02 casaca joined 21:14 jjido left 21:17 melezhik joined
melezhik I someone need to work with k8s resources using Raku - let me know, I have some sparrow plugins that cover this - www.reddit.com/r/rakulang/comments...ccess_k8s/ 21:18
moon-child how come now is a term, not a sub? 21:51
this tripped me up
m: say "current time is &now()"
camelia 5===SORRY!5=== Error while compiling <tmp>
Undeclared routine:
now used at line 1. Did you mean 'HOW', 'not'?
21:52 melezhik left 21:56 swaggboi left
lizmat moon-child: not sure... but looks like {now} is the only way to interpolate 21:56
m: say "current time is {now}" 21:57
camelia current time is Instant:1630015066.513166827
moon-child yeah. Was just curious
lizmat m: say "current time is {DateTime.now}"
camelia current time is 2021-08-26T23:57:47.913467+02:00
lizmat looks better :-)
moon-child m: { sub f($x) { sleep 1 }; <1 2 3>.race(:1batch).map(&f); say now - ENTER now }; { multi f($x) { sleep 1 }; <1 2 3>.race(:1batch).map(&f); say now - ENTER now } 22:00
ugexe its a term like time 22:01
camelia 1.02635695
moon-child subs are raced, multis are not
ugexe seems like it 22:05
22:34 lichtkind left
tbrowder m: say DateTime.now.UTC 22:42
camelia No such method 'UTC' for invocant of type 'DateTime'. Did you mean
in block <unit> at <tmp> line 1
tbrowder m: say DateTime.now.utc 22:43
camelia 2021-08-26T22:43:24.031593Z
tbrowder i think you will not find DateTime knowing directly about a day without 24 hours 22:45
if i were dealing with multiple timezones i woud specify times as UTC, same as aviators and seamen 22:55
23:01 swaggboi joined 23:03 rakugest left
Geth doc: a5b0423ccb | Coke++ | doc/Language/quoting.pod6
doc: 2cbf8b853f | Coke++ | xt/pws/code.pws
new word
linkable6 Link: docs.raku.org/language/quoting