🦋 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.
00:12 xelxebar left, xelxebar_ joined 00:28 sena_kun left, sena_kun joined 00:29 Sgeo joined 00:32 Sgeo left 00:35 swaggboi joined 00:36 frost-lab joined 00:42 raydiak joined, Sgeo joined 00:57 _jrjsmrtn joined 00:58 __jrjsmrtn__ left 01:03 Doc_Holliwood left 01:31 kvw_5 joined 01:34 kvw_5_ left 01:41 mowcat left 02:11 ambs_ left 02:18 ambs joined 02:52 frost-lab left 02:54 frost-lab joined 03:16 sxmx joined 03:17 monkey__ joined 03:36 Kaiepi left, Kaiepi joined 03:41 berber44 left 03:57 abraxxa left 03:59 abraxxa joined 04:01 wamba joined 04:03 Kaeipi joined, Kaiepi left 04:08 aborazmeh joined 04:12 monkey__ left 04:51 kurahaupo left 04:53 gordonfish left 05:04 monkey__ joined, aborazmeh left 05:18 jmcgnh left 05:21 kurahaupo joined 05:23 defaultxr left 05:32 monkey__ left, wamba left 05:34 parabolize left 05:35 wamba joined 05:36 wamba left 05:38 wamba joined, wamba left 05:39 wamba joined 05:41 wamba left, wamba joined 05:42 jmcgnh joined 05:43 wamba left 05:44 wamba joined 05:52 defaultxr joined 05:58 xinming_ left 06:28 havenwood joined
summerisle codesections: if you're interested i'm exploring a custom syntax-propertize-function as a way to deal with smart heredoc indentation 06:35
in emacs
06:38 domidumont joined 06:40 nebuchad` is now known as nebuchadnezzar 06:45 neshpion left 07:02 Sgeo left 07:04 xinming_ joined 07:05 guifa2 left 07:27 pecastro joined 07:32 jmerelo joined 08:12 bobv joined, Doc_Holliwood joined 08:14 abraxxa left 08:15 abraxxa joined
lizmat realizes she forgot to clickbait rakudoweekly.blog/2021/03/29/2021-13-games-pop/ yesterday 08:41
sjn yay! 08:43
08:43 Geth left 08:44 Geth joined 09:18 wamba left 09:25 abraxxa left 09:27 abraxxa joined 09:43 grumble left 09:45 grumble joined 09:50 pat_js joined 10:06 Black_Ribbon left 10:15 wamba joined 10:18 kanliot joined, kanliot left, kanliot joined
kanliot welp 10:18
my debian install of raku broke
i guess you switched servers
and i can't read this page cloudsmith.io/~nxadm-pkgs/repos/ra...ormats-deb 10:19
no idea what that's trying to tell me to do
easier just to apt-get remove raku*
lizmat El_Che ^^
kanliot so just complaining a bit
k
lizmat kanliot so what broke? /me has apt-getted raku without any issue from 2021.02 onwards 10:20
kanliot yeah that's when it broke i think
E: The repository 'dl.bintray.com/nxadm/rakudo-pkg-debs buster Release' does not have a Release file. 10:21
jmerelo m: my $foo = 3 but "bar"; say $foo ~~ Int; say $foo ~~ Str 10:22
camelia True
False
jmerelo m: my $foo = 3 but "bar"; say $foo.raku
camelia bar
jmerelo m: my $foo = 3 but "bar"; say $foo.^name
camelia Int+{<anon|1>}
jmerelo m: my $foo = 3 but my Str $bar = "bar"; say $foo ~~ Int; say $foo ~~ Str 10:23
camelia True
False
10:23 kanliot left
jmerelo m: my $foo = 3 but my Str $bar = "bar"; say $foo.^name 10:23
camelia Int+{<anon|1>}
jmerelo m: my $foo = 3 but Str; say $foo.^name 10:25
camelia Cannot mix in non-composable type Str into object of type Int
in block <unit> at <tmp> line 1
jmerelo m: my $foo = 3 but Stringy; say $foo.^name
camelia Int+{Stringy}
jmerelo m: my $foo = 3 but Stringy; say $foo.^name ~~ /\+/ 10:28
camelia 「+」
10:30 abraxxa left 10:31 abraxxa joined 10:40 Xliff joined
Xliff \o 10:40
Hi all. Over the last few weeks, I've been working on Raku bindings for libical. See github.com/Xliff/p6-ICal 10:42
This is a departure from my normal work (sort of) from p6-GLib
It's not part of GLib, but uses many of the same methods used to write it.
So I am at a decent stopping (and release) point for it.
Since I haven't done this in a while, would appreciate help on getting this released and in the ecosystem.
Can someone help? 10:43
lizmat Xliff: do you have a PAUSE account ?
Xliff lizmat: Don't think I do
lizmat ok, then App::Mi6 would not be your thing
perhaps ugexe / tonyo can help you set up with fez 10:44
I'm more the old fashioned one, having had a PAUSE account for almost 20 years now :-)
Xliff pause.perl.org/pause/query?ACTION=..._06history
?
jmerelo Xliff: you can release it to the ecosystem, no problem at all.
Xliff: but you're probably looking for other kind of help, right? Coding and stuff 10:45
Xliff jmerelo: Yes, but what are decent steps to take BEFORE that?
jmerelo: Well... more like release prep
jmerelo Xliff: make sure metadata in META6.json is right; the tests have a decent coverage, and some documentation
Xliff Once the coding is done, what steps should be taken up to and including the release.
test coverage will have to be WIP, seeing as the source material is similarly lacking. 10:46
jmerelo Xliff: Essentially META6.json (you can also add a check with Test::Meta) and tests. Documentation will also help, of course.
Xliff Same with documentation.
I'm a one man show, here. Both of those take... more. 10:47
jmerelo Can try to have a look and help
Xliff jmerelo: Please do!
Create issues for things you see lacking. It will give me a scaffold from which to work. 10:48
jmerelo Yep, the README.md need some work... OK, I'll raise some issues and try and address them
Xliff Thanks!
README needs documentation to refer to, which isn't there.
I think to have effective docs, I'd need more content than the original project. 10:49
And it's documentation isn't nearly as good as I would expect to write for anything I'd call 1.0
jmerelo Well, I'd say 99% of any ecosystem is not anywhere close to 1.0
Closer to 0.0.1, I'd say
Xliff I'd be happy to get even there. 10:50
jmerelo OK, let's see what we can do today...
Xliff That would mean breakdowns of all compunits with class definitions.
jmerelo: Thank you so much!
lizmat: HAH! So I do have a PAUSE account. 10:53
CBWOOD
lizmat well, if you still have the credentials 10:54
personally I use App::Mi6
write the pod, then "mi6 release" produces the README from the pod, and uploads to PAUSE and the ecosystem 10:55
couldn't be much simpler than that
it also makes you take care of the Changelog
10:57 wamba left, lizmat_ joined 10:58 wamba joined
Xliff (zef speedup for finding dependencies)++ -- When did this land? 10:58
jmerelo Xliff: you've got whole dependency resolving script here, isn't it? github.com/Xliff/p6-GtkPlus/blob/m...s/build.sh 11:00
Shouldn't it probably go how that zef is faster?
11:00 lizmat left
Xliff jmerelo: Yes. 11:01
Those are scripts that I'd like to separate out into their own thing.
Currently intrinsic to p6-GLib based projects.
jmerelo Xliff: that, too... So that you don't have to inter-link between your repos or copy
Xliff p6-ICal doesn't use p6-GLib. First I've written that doesn't 11:02
jmerelo Xliff: so maybe all "p6" stuff should go. Will open an issue
Xliff jmerelo: Yes. scripts/ I plan to break away into its own thing. 11:03
For release, I may just zero the links and create a script to recreate them if a developer wants.
jmerelo Xliff: but what is it they do? Can't you put them into a Build.pm6 file so that `zef build` covers them? 11:05
Xliff No.
They do a variety of things. To document them would take me a month if I started now. 11:06
They are very useful for developing NativeCall-based projects quickly.
jmerelo Xliff: probably better to release independently, then? With cursory documentation that can be improved with time? 11:07
Xliff I should amend that. I don't know how 'zef build' works, so I don't know whether I can leverage Build.pm6 to handle things.
jmerelo: That's the plan.
jmerelo Xliff: you probably can. And it's probably much better if you stick to standards so that people will know what to do without looking up the documentation
Xliff jmerelo: When I started doing this stuff 3 years ago... there were no standards. Believe me. I asked. 11:08
I then submerged myself into work. Now that I've resurfaced...lo: standards!
So I guess starting points on learning those would be appreciated.
Particularly in p6-ICal's case, since I need to build a C-based helper to smooth the use of Raku with libical.so 11:09
jmerelo Xliff: I believe you. 11:10
Xliff: I've created a few issues; let me know if I can be of help in some other way. 11:15
Xliff jmerelo: Thanks! 11:16
11:17 _jrjsmrtn left, Doc_Holliwood left 11:19 __jrjsmrtn__ joined 11:20 afresh1 joined 11:21 lizmat_ is now known as lizmat 11:30 abraxxa left 11:32 abraxxa joined
Geth doc: tbrowder++ created pull request #3847:
Reformat and better define 'daycount' and its relation to MJD
11:33
doc: 8c6159f119 | (Tom Browder)++ (committed by Juan Julián Merelo Guervós) | doc/Type/Dateish.pod6
Reformat and better define 'daycount' and its relation to MJD
11:36
linkable6 Link: docs.raku.org/type/Dateish
11:38 Xliff left 11:39 Doc_Holliwood joined
jmerelo m: my $foo = 3 but "bar"; say $foo.Int; say $foo.Num 11:40
camelia bar
3
lizmat yeah, that seems right ? 11:44
jmerelo lizmat: can you explain? I'm raising an issue, would be saved the trouble...
lizmat say calls .gist on the Int, and that falls back to Str
tbrowder \o/ good TZ-CDT all 11:45
jmerelo tbrowder: hey, Tom! 11:46
tbrowder lizmat i'm leaning toward something like an 'Instant.from-mjd' for the juliandatish situation 11:47
hi jj!
jmerelo lizmat: it calls .gist on the container that was initially an Int
tbrowder: when I read MJD I think about Mark-Jason Dominus 11:48
m: say $*COMPILER 11:49
camelia Dynamic variable $*COMPILER not found
in block <unit> at <tmp> line 1
tbrowder well, it could be 'Instant.from-modified-juliandate'
jmerelo m: say $*RAKU
camelia Raku (6.d)
jmerelo m: say $*RAKU.compiler
camelia rakudo (2021.02.25.g.726.a.75.e.24)
tbrowder jmerelo: now i see yr ref to mjd, very nice! 11:51
btw, yesterday i checked w/ no. 1 son and it looks like trip to spain is off 11:52
but did i see on net that spain situation is improving? 11:53
jmerelo tbrowder: too bad... Well, right now looks like the 4th wave is surging 11:56
It's improving on the long term (more people get vaccinated) but on the short term, more restrictions and an increase in the number of cases. 11:57
tbrowder erg, stay safe
jmerelo You too :-) And everyone else, of course.
tbrowder wife & i got vaccinations, and now both our children 11:58
jmerelo At home, only my daughter who's working now in the health system. University professors are not on the agenda for the time being. 12:00
lizmat you could ask your GP to be put on the "backlist": at the end of a day of shooting vaccines, frequently they have doses leftover, and no people to stick them into 12:02
you'd be on-call
jmerelo It _is_ improving in the US, right?
lizmat worked for woolfy :-)
jmerelo lizmat: in Spain it's not done at the GP level, it's done in special places, and in hospitals.
lizmat: glad to hear that. 12:03
lizmat well, NL also has that, but GP's also deliver vaccines to people 12:05
12:06 Woodi joined
jmerelo m: my $foo = "bar" but 42; say $foo.Num; say $foo.Int; say $foo.Stringy 12:07
camelia Cannot convert string to number: base-10 number must begin with valid digits or '.' in '3⏏5bar' (indicated by ⏏)
in block <unit> at <tmp> line 1
12:08
jmerelo m: my $foo = "bar" but 42; say $foo
camelia bar
jmerelo m: my $foo = "bar" but 42; say $foo.Int
camelia 42
jmerelo m: my $foo = "bar" but 42; say $foo.Str
camelia bar
jmerelo m: my $foo = "bar" but 42; say $foo.^roles
camelia ((<anon|1>) (Stringy))
jmerelo m: my List.^roles 12:09
camelia 5===SORRY!5=== Error while compiling <tmp>
Malformed my
at <tmp>:1
------> 3my List7⏏5.^roles
jmerelo m: my (2,).^roles
camelia ( no output )
jmerelo m: my @list (2,); say @list.^roles
camelia 5===SORRY!5=== Error while compiling <tmp>
Signatures as constraints on variables not yet implemented. Sorry.
at <tmp>:1
------> 3my @list (2,)7⏏5; say @list.^roles
jmerelo m: my @list = (2,); say @list.^roles
camelia ((Positional) (Iterable))
jmerelo m: my @list = (2,) but "bar"; say @list.List
camelia (2)
jmerelo m: my @list = (2,) but "bar"; say @list.Positional 12:10
camelia No such method 'Positional' for invocant of type 'Array'
in block <unit> at <tmp> line 1
jmerelo m: my @list = (2,) but "bar"; say @list.Str
camelia 2
jmerelo m: my @list = (2,) but "bar"; say @list.Stringy
camelia 2
jmerelo m: my @list = (2,) but "bar"; orubt @list.Stringy
camelia 5===SORRY!5=== Error while compiling <tmp>
Undeclared routine:
orubt used at line 1
jmerelo m: my @list = (2,) but "bar"; print @list.Stringy
camelia 2
jmerelo m: my @list = (2,) but "bar"; print @list.Str
camelia 2
jmerelo m: my @list = (2,) but "bar"; pput @list.Str 12:11
camelia 5===SORRY!5=== Error while compiling <tmp>
Undeclared routine:
pput used at line 1. Did you mean 'put'?
jmerelo m: my @list = (2,) but "bar"; put @list.Str
camelia 2
jmerelo m: my @list = (2,3) but "bar"; put @list.Str 12:14
camelia 2 3
jmerelo m: my @list = (2,3) but Set(2,3); put @list.Set
camelia 2 3
jmerelo m: my @list = (2,3) but Set(4,5); put @list.Set
camelia 3 2
Geth doc: 244abcae9b | (JJ Merelo)++ | 2 files
Working on signal

This refs #3844
Also, totally unrelated (although they are functionally related, working on improving Scheduler #refs 3845"
12:23
doc: e06de0bb98 | (JJ Merelo)++ | 2 files
Adds the definition of signal in the right place, refs #3844

Also improves the description of `.condition`, closes #2788, partially superseded also by #3844
12:24 linkable6 left, linkable6 joined
Geth doc: 7657a54be5 | (JJ Merelo)++ | type-graph.txt
Adds to typegraph.txt
12:26
12:29 havenwood left 12:35 seanrobert joined 12:37 Doc_Holliwood left
El_Che kanliot: yes, bintray is shutting down, so the repos were force to move: github.com/nxadm/rakudo-pkg/issues/77 12:39
tellable6 El_Che, I'll pass your message to kanliot
12:48 seanrobert left 12:54 Doc_Holliwood joined 13:31 glaceon joined 13:35 frost-lab left 13:43 glaceon left 13:56 ManifestO joined 13:58 Manifest0 left 14:22 zxcvz joined 14:32 gordonfish joined 14:33 Sgeo joined, wamba left 14:43 Doc_Holliwood left 14:48 wamba joined 14:58 parabolize joined 15:20 wamba left 15:24 rindolf joined 15:31 aindilis left
jmerelo m: say d('2013-12-30').earlier(week => 1, hour => 1 ) 15:33
camelia 5===SORRY!5=== Error while compiling <tmp>
Undeclared routine:
d used at line 1
jmerelo m: say Date.new('2013-12-30').earlier(week => 1, hour => 1 ) 15:34
camelia More than one time unit supplied. Please provide these as a List of
Pairs to indicate order of application if this is intended.
in block <unit> at <tmp> line 1
jmerelo m: say Date.new('2013-12-30').earlier( ( week => 1, hour => 1 ) )
camelia 2012-12-23
jmerelo m: say Date.new('2013-12-30').earlier( | week => 1, hour => 1 ) 15:41
camelia More than one time unit supplied. Please provide these as a List of
Pairs to indicate order of application if this is intended.
in block <unit> at <tmp> line 1
jmerelo m: say Date.new('2021-03-31').earlier( ( year => 3, month => 2, day => 8 ) ) 15:48
camelia 2018-01-23
16:04 PimDaniel joined
PimDaniel o/ 16:04
jmerelo Hey! 16:06
PimDaniel This is an algorithm problem: I made all the process to decompose a rectilinear polygon into a set of rectangle using hopfkorp and karp algo to optimize.
jmerelo m: my $d = DateTime.new(date => Date.new('2015-02-27')).later( (:1month, :2days) )
camelia ( no output )
16:06 aindilis joined
jmerelo PimDaniel: Algorithms with ks in their names are always cool 16:07
m: say DateTime.new(date => Date.new('2015-02-27')).later( (:1month, :2days) )
camelia 2015-03-29T00:00:00Z
PimDaniel Now i'v got the set of rectangle make by cuts of my orthogon but i stuggle produce the list of rectangles by parsing the polygon. 16:08
It's may be simple: but 1 : i'm stupid. 2 i'm a very bad programmer. 16:09
jmerelo : my name has an 's' but no 'k' hélas! 16:11
jmerelo PimDaniel: no algorithms for you, then. Maybe a theorem. 16:12
s i names make good theorems. Look at Gauss 16:13
PimDaniel Here's the subject on stackoverflow : stackoverflow.com/questions/591929...5#66890485 16:15
Geth doc/master: 4 commits pushed by (JJ Merelo)++ 16:16
PimDaniel jmerelo Yes it is probably only a theorem, i don't know how to start and a rectangle does not really exist programmatically speaking. My orthogon is represented by succession of points. 16:18
jmerelo PimDaniel: cool. I think I've done that with evolutionary algorithms...
PimDaniel: you need to extract rectangles from a list of vertices
PimDaniel: do you have an example for that? 16:19
PimDaniel: Also, I would really encourage you to submit questions to StackOverflow. We've had very few this month, and it helps increase visibility of the language (and also solutions)
PimDaniel jmerelo I've allready cut my orthogon in rectangles.
And made many tests with succeedeed. 16:20
This is the ultimate Step.
The question is now : how go i get the list of rectangles : i ca see the rectangle but cannot have his list. 16:21
jmerelo PimDaniel: please give all needed context so that we can try and help you. And I would really appreciate if you would do it in StackOverflow
PimDaniel jemerelo Ok thank's! Very kind! i'll try to put my forms on stackoverflows. This is console ascii chars so not sure to be able to. 16:24
jmerelo PimDaniel: don't think there will be a problem. 16:26
PimDaniel jmerelo it is a problem.
stackoverflow limits character size. 16:27
I've just try and it does NOT work.
The best way should be to publish my code so that you could use it.
jmerelo PimDaniel: that never hurts. You can insert a link to a gist, or a github repo 16:31
PimDaniel Welll the problem is rather simple : i've set of rectangle composed of remaining vertices, and cut axes and, borders. These are the minumum decomposition of the orthogon into rectangles. But now i struggle to produce the set of rectangles. I suppose turning around the Points of the polygon but i do not know how to do.
I'll have to publish the code anyway on GitHub. 16:33
16:37 mowcat joined, parabolize left
Geth doc: bf9480f04d | (JJ Merelo)++ | doc/Type/Lock.pod6
Some clarifications on Lock
16:37
linkable6 Link: docs.raku.org/type/Lock
16:41 domidumont left
PimDaniel jemerelo My code is pushing.... 16:55
16:57 abraxxa left 16:58 parabolize joined 16:59 abraxxa joined
jmerelo PimDaniel++ 17:00
Geth doc: 76e4a37be8 | (JJ Merelo)++ | doc/Type/Scheduler.pod6
Clarifies introduction.

Also adds a stub, following advice in #3209. Adds a missing method stub, refs #3321.
17:05
linkable6 Link: docs.raku.org/type/Scheduler
17:06 linkable6 left 17:07 linkable6 joined 17:10 sourceable6 joined 17:35 HarmtH_ left
PimDaniel Sorry if this is a bit long... 17:42
pat_js hi, haven't been here for a while (acutally have never been here, but I used to hang out in #perl6 way back when…), is there an ideom for reducing an array of hashes into a HoH? 17:49
i have [{key=>'foo', date=>Date.new('2020-03-31'), hours=>2}…] and want {'2020-03-31'=>{ foo => ⟨sum of hours⟩} 17:51
I would grab for .reduce, but am not sure if there's an operator chain that does it as well 17:56
18:01 wamba joined 18:05 zxcvz left 18:06 HarmtH joined
Geth doc: 77300b9e97 | (JJ Merelo)++ | doc/Type/Lock/ConditionVariable.pod6
Clarifies signal

Adding an example. This closes #3844; this is done. It can probably be improved, but please anyone open a new issue for that.
18:08
linkable6 Link: docs.raku.org/type/Lock::ConditionVariable
18:08 linkable6 left 18:09 linkable6 joined 18:12 PimDanie1 joined, neshpion joined
Geth ecosystem: 9e412765e8 | Altai-man++ (committed using GitHub Web editor) | META.list
Remove modules now indexed by fez

Actually a test to see how it behaves.
18:12
PimDanie1 jmerelo github.com/Pim-tech/Orthogon 18:13
jemerlo Please read the README.md your os must have an xterm terminal or so. 18:14
18:18 PimDaniel left, PimDanie1 left
jmerelo PimDanie1: OK, I'll check it out. Did you create also a StackOverflow question? Or an issue where we can see what's the problem? 18:18
tellable6 jmerelo, I'll pass your message to PimDanie1
18:23 Sgeo_ joined 18:24 Sgeo__ joined 18:25 PimDaniel joined 18:27 Sgeo left 18:28 Sgeo_ left
PimDaniel jemerelo Yes please look at my last link about stackoverflow. But the question is really simple: how to constituate the list of rectangles to fill them to make a rectangle whe need a common point an 2 lines rectices 90° or 2 points never mind but even with a completed polygon it's not so easy. 18:29
pat_js ah found the multi-level-classification part of the docs! neat (and sorry for the spam) 18:33
18:35 Doc_Holliwood joined, ggoebel joined
ggoebel is there an irc channel for the comma ide? 18:35
18:37 jmerelo left
lizmat not that I'm aware of, but most comma devs also hang out on #cro 18:37
PimDaniel ggoebel comma look good but i struggle to have informations too. 18:39
18:39 HarmtH left 18:40 Sgeo_ joined
PimDaniel lizmat Do you know if we may debug step by step with non paying version? 18:40
lizmat I don't know, I'm not a Comma user myself 18:41
deeply entrenched in the vi world :-)
18:42 HarmtH joined
PimDaniel lizmat Ok,Thank's! I tried and i gave up. I use vim with powerfull plugins too. 18:42
lizmat Do you know if there are interesting vim/neovim plugins for Raku? 18:43
lizmat none other than mentioned in the docs
18:43 Sgeo__ left
PimDaniel Ok For now i just find one the make syntax colorisation. 18:44
18:45 PimDaniel left
ggoebel was trying to figure out how to insert a unicode character in comma... but comma binds [ctrl]+[shift]+u to uppercase... so standard linux ibus support for inserting unicode doesn't work... 19:05
lizmat sena_kun ^^ 19:06
ggoebel wound up inserting the unicode character in the firefox browser url then cutting and pasting 19:07
sena_kun ggoebel, if you want operators and terms, you can enable automatic conversion in settings.
As for completely random characters I am not sure what can help other than removing the binding.
ggoebel I'm not a huge fan of automatic conversion... it usually winds up biting me as often as it helps... If it comes up again, I'll try removing the binding. 19:08
thx
codesections ggoebel: (a bit on an aside, but I hadn't heard of ctrl+shift+u as a Linux thing for Unicode. After a quick web search, it turns out to be a Gnome-binding. I've always thought of the compose key as the standard Linux approach to Unicode, but I guess TIMTOWTDI ) 19:11
s/on (an aside)/of $0/ 19:12
ggoebel codesections: fwiw I'm using it on arch linux w/ kde plasma... per wiki.archlinux.org/index.php/IBus 19:16
19:18 b2gills left
codesections ggoebel++ TIL 19:19
japhb ggoebel: I usually use a fast (Raku-based) search of the Unicode database, with easy to cut and paste output 19:24
I think [Coke]++ published a variant 19:25
19:26 Black_Ribbon joined
japhb Yeah, here's his: github.com/coke/raku-uni 19:26
ggoebel nice 19:27
japhb (Mine differs in outputting different information per character, but it looks like his is meant to be compatible with RJBS's Perl version) 19:28
19:32 retropikzel joined
japhb ggoebel: Here's mine: gist.github.com/japhb/7b8a68da1b4b...c1269b951a 19:32
19:40 retropikzel left 19:49 whatnext joined
whatnext hello all... I am the author of this question on perlmonks perlmonks.org/?node_id=11130506 - which now has an answer courtesy SmokeMachine - and I am v happy and grateful about that =D 19:51
lizmat :-) 19:52
whatnext but now I am also trying to figure out the best way to namespace the models
19:52 bobv left 19:53 retropikzel joined
whatnext I mean, if in my main code I want to e.g. refer to the models as `Schema::User`, `Schema::Vmail` etc. is there a way to achieve that? 19:53
I thought to have `unit module Schema` at the top of my `.rakumod` file, and that means I can refer to `Schema::User` in my script as I want; however then it seems the models can't see each other 19:55
japhb whatnext: Here's my hack for that sort of thing: github.com/Raku-MUGS/MUGS-Core/blo...akumod#L10
(Also note that there is a #red channel too, though I think it's welcome discussion here.) 19:56
MasterDuke whatnext: `unit *` means treat the entire file as that *, so you don't need to have everything indented
lizmat japhb: there is a #red channel? I don't see it in my channel list 19:59
ggoebel PimDaniel: yes it looks like you can set breakpoints and debug step by step in the community editions 20:00
tellable6 ggoebel, I'll pass your message to PimDaniel
20:00 guifa2 joined
japhb lizmat: Huh, that's the second time you've said you couldn't see a channel that I was actually in ... :-? 20:00
whatnext @MasterDuke yes I believe I understand that - I was thinking it would effectively namespace the classes to the `module` name 20:01
japhb whatnext: I think with Red there's the problem that Red is trying to manage things from *outside* the namespace of your schema. 20:02
whatnext @japhb thanks - that looks interesting. I might need a few mins to figure out what you did there! 20:03
japhb Egregious hax. ;-) 20:05
20:05 Geth left
whatnext @japhb maybe there is a "best practice" way to organise files/classes that avoids this? e.g. putting the classes in different files... although I was trying to avoid that 20:08
probably I'm thinking about it too much '=D
japhb Yeah, this definitely fell into my category of "There's a one-line workaround sub to just do the magic incantation. I'm going to abstract that, and move on with my life." 20:09
codesections ‘japhb and the Egregious Hax’ ... not a bad band name 20:10
japhb And frankly, aside from that bit of magic, the rest is fairly self-documenting, so :shrug:
codesections: :-D 20:11
20:13 abraxxa left, ggoebel left 20:15 abraxxa joined 20:16 ggoebel joined
whatnext haha no doubt you are right! I'll look into your black magic solution... thanks (y) 20:17
20:21 Doc_Holliwood left 20:27 Doc_Holliwood joined
whatnext ok wait... 20:38
now I get what you did there (sorry bit slow sometimes)
japhb Oh no worries, it's definitely one of those "sudden enlightenment" things. 20:39
Once it clicks, you go "OH! GOT IT!"
whatnext that's definitely an improvement in terms of saving on typing 20:40
haha yes
dpk i've probably asked this before, but are the semantics of :ignoremark formally defined anywhere?
whatnext but I still have the namespace issue though, right? 20:42
japhb whatnext: I exported them directly (as the bare model names), because that worked fine for me -- all my code that touches the DB is hidden in a module of its own which uses my schema module, so I don't leak out beyond the storage driver. But yeah, you may need a tweak for your main code if you want the models in a partial namespace. 20:46
My fix just cleans up the problem of being able to refer between the models without your eyes crossing and fingers getting sore.
:-)
20:47 rindolf left
whatnext japhb yep it's a cool fix - definitely going to incorporate it 20:47
japhb whatnext: You can see how I did the matching storage driver in github.com/Raku-MUGS/MUGS-Core/blo...te.rakumod (which implements roles saying what storage drivers must support). Nothing outside of that module is aware the DB even has a schema.
(And in fact, the "Fake" in-memory storage driver doesn't really.) 20:48
whatnext japhb ok thanks - I think this might be a bit beyond me at this stage however '=D 20:55
SmokeMachine One could also use schema to do that… 20:57
20:59 wamba left
guifa2 dpk: ignoremark does a comparison based on the first character only of decomposed characters. 20:59
so the formal definition would be in unicode itself
whatnext SmokeMachine how do you mean?
SmokeMachine One could export a schema, and when importing it, you could get the models from its methods
dpk guifa2: is is formally specified somewhere that that’s what ignoremark does, though? 21:01
because if what you said is accurate, it’ll be wrong and useless for e.g. Hangul 21:02
whatnext SmokeMachine do you have a link to an example of what you mean?
SmokeMachine whatnext: I’m searching… (sorry, on mobile) 21:03
dpk and for emoji regional indicators, to use a more trendy example
raku: say "🇩🇪" ~~ /:ignoremark 🇩🇰/ 21:05
evalable6 (exit code 1) 04===SORRY!04=== Er…
dpk, Full output: gist.github.com/3f8a6c0ed9f1154cb7...51b7ca28c0
guifa2 dpk: Hangul doesn't have combining characters. It either has precomposed characters or it uses the jamo which are composed at a font level, but are not actually combining characters
SmokeMachine whatnext: something like this: github.com/FCO/Red/blob/master/t/51-schema.t (sorry for not finding a good example)
guifa2 m: 🇩🇪.ords.say 21:06
camelia 5===SORRY!5=== Error while compiling <tmp>
Bogus statement
at <tmp>:1
------> 3<BOL>7⏏5🇩🇪.ords.say
expecting any of:
prefix
statement list
term
guifa2 m: "🇩🇪".ords.say
camelia (127465 127466)
guifa2 127465 and 127466 are both defined as base characters
dpk ... what definition of ‘character’ were you using jn your original definition?
i assumed codepoint
what’s a base character for Raku? 21:07
japhb Well, we can always try asking samemark
m: "🇩🇪".samemark(' ').say
camelia 🇩
japhb Of course, that could be a bug too, I dunno.
dpk raku: say "🇩🇪" ~~ /:ignoremark '🇩🇰'/
evalable6 「🇩🇪」
guifa2 m: "🇩🇪">>.samemark(' ').say
camelia (🇩)
guifa2 err 21:08
MasterDuke dpk: samcv is probably the right person to ask
dpk ‘Germany and Denmark “actually the same country”’ — Raku, 2021
guifa2 "🇩🇪".comb>>.samemark(' ').say
evalable6 (🇩)
whatnext @SmokeMachine ah ok I think i get the idea
guifa2 "🇩🇪".uniprops.say 21:09
evalable6 (So So)
guifa2 ^^ So = "Symbol, other"
dpk ‘We’re aware of the long-standing issue of the border with Schleswig-Holstein’, said guifa2, ‘and we thought it would just be easier to make them all one country.’ 21:10
guifa2 m: "q̃".uniprops.say
camelia (Ll Mn)
guifa2 ^^ LL = Letter, lowercase; Mn = Mark, nonspacing
whatnext yes I think I have an idea what I can do now... thanks
dpk it seems to me it’d be better if ignoremarks only ignored codepoints that are actually in character class M* 21:11
because the current behaviour, as shown, makes it think Germany and Denmark are the same country. and based on that, i assume my objection about Hangul stands
japhb dpk: Officially propose the change in an issue, citing relevant Unicode TRs, and showing what would need to change in roast. :-) 21:13
dpk i’ll get round to it
japhb hands dpk a Round Tuit
dpk thanks! 21:14
hmm, but it also shouldn’t ignore codepoints in category Mc, i think. otherwise it’d be wrong/surprising for Devanagari and some others 21:16
guifa2 dpk: perhaps the issue issue is more a confusion on characters vs glyphs. Consider the following sequence in Hangul: ᄼᆡᇫ 21:19
Unicode defines that as a single glyph
dpk (‘citing relevant Unicode TRs’ will be tricky, because except in a very few cases (specifically, converting everything to ASCII), ignoring and stripping diacritics etc is something which the Unicode people pretty clearly think should Not Be Done)
guifa2 (of course, I don't have the font for it so it shows up as three distinct characters — but mac OS X will not let me put the cursor in between them) 21:20
m: 'ᄼᆡᇫ'.chars.say
camelia 1
dpk guifa2: neither ‘character’ nor ‘glyph’ is a firmly-defined concept in Unicode. please be clearer.
guifa2 character = codepoint
glyph = composed unit
dpk it’s a single extended grapheme cluster, which Raku and Swift call a character but most languages don’t care about 21:21
it’s three codepoints, which are what most languages call a character
guifa2 Yes, I'm well aware of this :-)
dpk your font renderer may use any number of glyphs it pleases to show it to you, depending on how the font is constructed
but already, that’s the OpenType definition of glyph and not a Unicode one 21:22
japhb dpk: Having been recently in the normalization TRs and in the IETF PRECIS RFCs, there seems to be a carved out space around searching (case-ignoring or mark-ignoring search). As in, how to convert when you want to create an index to quickly search against.
21:25 Doc_Holliwood left, Doc_Holliwould joined
dpk japhb: i’ll take a closer look 21:26
21:28 dogbert11 joined
jjatria I've been getting this error sometimes recently, and I'm not sure I understand it 21:28
'Serialization Error: missing static code ref for closure '' (gen/moar/World.nqp:2597)'
Or, more like "I'm sure I don't understand it" 21:29
The odd thing is that sometimes it goes away, and then the exact same code continues to work fine 21:30
21:31 dogbert17 left
guifa2 But yes, it does appear that Raku is assuming that all clusters are made of combining marks. And thankfully we don't need to bother samcv because it seems it's handled all in Rakudo world based on the samemark method: github.com/rakudo/rakudo/blob/8668....pm6#L2553 21:31
21:32 dogbert17 joined 21:35 dogbert11 left
guifa2 and here's the main roast file, which doesn't consider anything beyond combining marks github.com/Raku/roast/blob/beeb2cb...noremark.t 21:39
japhb Yeah, underspecification is our friend on that one, because it means we can choose a more precise behavior without having to change existing tests. 21:42
Though it does specify some behavior around Cf codepoints
(Near the bottom) 21:43
guifa2 I'll write up an issue for it 21:59
22:00 benaiah left 22:45 benaiah joined 22:57 whatnext left 23:10 Doc_Holliwould left 23:11 pecastro left