»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or /msg camelia p6: ... | irclog: irc.perl6.org or colabti.org/irclogger/irclogger_log/perl6 | UTF-8 is our friend! 🦋
Set by Zoffix on 25 July 2018.
Kaiepi i'm going to release the Failable type i wrote to the ecosystem as-is 02:25
i was originally going to write a generic sum type module but i figure this is a useful enough feature on its own to merit being a separate module
Geth ecosystem: 211201fac7 | (Ben Davies)++ (committed using GitHub Web editor) | META.list
Remove Kaiepi's modules from META.list

They're already on CPAN
03:18
Geth ecosystem: b6c82b2bef | (Ben Davies)++ (committed using GitHub Web editor) | META.list
Temporarily add Kaiepi's Failable module to META.list

I uploaded a buggy release of Failable to CPAN and am stuck waiting a few days since I don't want to version bump so I can reupload sooner
03:46
antoniogamiz morning o/ 08:19
ugexe: you told me subtest 'message' => {
ugexe: but you use subtest {}, 'message' 08:20
is there a reason for this?
moritz thinks message first reads better 08:22
it tells the reader what the subtest block is about upfront
antoniogamiz I think the same!
but I was asking because the second way is used in zef and I wanted to know if there was any particular reason 08:23
sena_kun 08:30
El_Che I am writing someone small in Perl 6 at work. I must say it survives Marie Kondo as it brings me joy :) 09:11
sena_kun s/someone/something/? 09:18
El_Che it's a complete autonomous AI
or maybe a short script :)
need coffee
:)
El_Che I have been writing Go lately for some small projects, mostly because of available libs 09:19
it's fun to write perl 6 and use it 09:20
sena_kun: hopefully with your work, perl 6 will be the lang-to-go for ldap code :) 09:21
sena_kun: hopefully your talk will be recorded 09:22
sena_kun El_Che, lang-to-go is maybe an exaggeration, I mean, you can't really invent something new there, just a useful utility. (high hopes scare me) 09:25
El_Che well, you need a lang with good libs for simple stuff
so when someone says LDAP code, you know what stack to use :) 09:26
lizmat antoniogamiz: the message => { } was added relatively recently (that's the reason) 09:27
antoniogamiz lizmat: oh I see, thanks! :D 09:28
Kaiepi there are two ways to do subtests? 09:43
i always did it subtest 'test-name' -> { }
sena_kun subtest {}, 'test-name'? 09:44
Kaiepi or something like that, i'd have to check
nope, none of the above 09:45
subtest 'test-name', { }
antoniogamiz I know these two: subtest "" => { 09:48
}
and subtest {}, "";
Kaiepi m: use Test; plan 1; subtest 'foo', { plan 1; pass 'ok'; } 09:54
camelia 1..1
1..1
ok 1 - ok
ok 1 - foo
antoniogamiz what is the fastest way to check if two hashes objects are equal? 10:21
or the "shortest" way in perl6
jnthn %h1 eqv %h2 10:28
yoleaux 00:20Z <AlexDaniel> jnthn: what do you think about this commit? The same test is in 6.c-errata (so it needs a change also). github.com/perl6/roast/commit/d60f...0250243809
01:06Z <vrurg> jnthn: I think I have R#3040 finalized and ready for merge. Would you please have another look at it?
synopsebot R#3040 [open]: github.com/rakudo/rakudo/pull/3040 Implement support for defining new symbols in CORE.e.setting
antoniogamiz jnthn: ty 10:53
ugexe antoniogamiz: like 5 years ago subtests could only be written that way 11:08
ugexe Kaiepi: fat comma can be used in place of comma usually 11:11
Kaiepi fat comma? 11:12
ugexe en.m.wikipedia.org/wiki/Fat_comma 11:13
=>
El_Che jnthn: giving Comma a test run. The redish-orange colour for variables and subs feels problematic as it looks to closed to a detected error. I know I can change Intellij colours, but thinking about sensible defaults here. 12:48
.tell sena_kun giving Comma a test run. The redish-orange colour for variables and subs feels problematic as it looks to closed to a detected error. I know I can change Intellij colours, but thinking about sensible defaults here.
yoleaux El_Che: I'll pass your message to sena_kun.
jnthn Errors are displayed consistently as underlines 12:50
I wonder if we can make it a little more orange, though 12:51
jnthn was never quite so happy with the colors in the light theme compared to the dark theme
El_Che jnthn: yes, it's clearly not an error, but it instinctly feels like that. 12:52
jnthn Oh, curious, on my display it looks very much orange and not at all red. 12:53
El_Che because other languages don't use redish colours for vars and subs 12:53
jnthn We don't use it for vars, I don't think, only subs/methods 12:54
Unless I've got some custom configuration here that I forgot about...
El_Che sorry, indeed
El_Che let me screen shot, it's orange all right, but in the redish realm 12:54
jnthn I suspect we're seeing the same, and it's either a difference of display or color perception :) 12:55
(My eyes are weird in more than one way, so... :))
El_Che claudio.ulyssis.be/var/tmp/comma.png 12:56
I think it's a perception thing
jnthn Yeah, I think so too :)
El_Che I know it's not read, but my brain yells: ERROR! ERROR!
jnthn That looks the same to me
(same as mine)
El_Che that's good thing :) 12:57
jnthn Curious: does the darker red for infix operators not bother you?
e.g. is the problem "it's bright and somewhere close to red"?
El_Che yes, redish tones have the error connotation
looking at other code
jnthn Much of the trouble is picking which things to assign distinct colors to. I remember going through the dozens of syntax elements we can assign colors to and trying to group them in some sensible way. :) 12:59
El_Che ok, for go intellij uses dark blue for keywords, green for strings, light purple for constants and default colour for vars and subs 13:00
light blue for ints
jnthn Loads of questions come up if you do that. Like "should prefix and infix operators get different colors 'cus folks sometimes confuse them", etc. :)
El_Che the perl 6 plugin uses a lighter variant of orange 13:00
jnthn: p6 is a difficult case as it's more concentrated and more expressive 13:01
lizmat_ weekly: www.linkedin.com/pulse/perl-future...s-rehsack/
jnthn Default color for vars/subs is...failing to highlight one of the most important program elements.
jnthn El_Che: Yeah, it's difficult alright :) 13:01
El_Che I would love that colours match for p5, p6, go and java :)
but that's utopia
:) 13:02
jnthn Well, it *is* entirely configurable, but yeah, that orange could certainly be tweaked so it's less likely to be perceived as an error.
El_Che jnthn: anyway, just an opinion, maybe I am the only one wired like that. I just believe default matter 13:03
defaults
jnthn They do, though as noted, if I'm putting effort into Comma defaults, the first one is "default to the dark theme" :) 13:03
El_Che jnthn: and to think I used to like you 13:03
:P
jnthn But of course for those who prefer the light one, we can tweak it. 13:04
Heh, well, I wear glasses that darken automatically when I go out, and further so in the sun, and the light theme makes me want to put my glasses on :) 13:05
jnthn As noted, my eyes are weird in more ways than one :) 13:05
jnthn El_Che: I've opened an issue to suggest looking at making us not use such a red-y orange there, anyways 13:06
jnthn Maybe there's another more appropriate color/ 13:06
El_Che jnthn: maybe I am the only one left using light themes :) 13:15
jnthn Well, if it's the default, you won't be the only one... :) 13:16
lizmat_ fwiw, I would be using light themes 13:19
lizmat on my new MBP, the colour temperature is automatically changed in an artificial light environment 13:21
it's quite amazing :-)
El_Che lizmat: I disable that, it drives me crazy 13:22
(although I program on Linux most of the time)
lizmat I love it...
.oO( diff'rent strokes :-)
El_Che we both like Wendy, so that's something 13:23
lizmat but I like her more :-) 13:24
El_Che lizmat: you don't know that :)
El_Che ducks
lizmat I know where you live :-) 13:25
woolfy Hey hey, I guess I am the only one who dislikes Wendy the most! She is not a nice person when you really get to know her. So please stop that nonse, you two! 13:58
Xliff \o 14:02
What does it mean when I can "use A::B::C" just fine, but when I do this -=> "my $c := try require ::("A::B::C")" and $c turns out to be Nil? 14:03
jnthn If you remove the `try`, what error do you get? 14:27
(or note $/ after it) 14:28
nine AlexDaniel: that commit includes an NQP bump. Did you bisect NQP, too? 14:35
nine Oh, it's only one new commit anyway 14:36
nine So, how would one create a NativeRef (StrLexRef) in the first place? 14:45
timotimo have a sub that takes a "str $foo is rw" 14:47
though it's not guaranteed to get a LexRef, since the optimizer could have turned your lexical into a local for optimization reasons 14:48
nine woolfy: What about this: sub foo ($foo is rw) { ... }; my str $f = "foo"; foo($f)
Err....timotimo ^^^ 14:49
lizmat yeah, that would be a strange question for woolfy
nine woolfy: I don't think anybody's going to get to know you well enough to dislike you ;)
timotimo that'll quite likely get a StrLocalRef, is that's actually a thing
try to get a scope in there that prevents the lex-to-local optimization 14:50
nine Ok, the string it trips over is "symbol" 15:04
timotimo that seems like a very ordinary string 15:05
(i missed all of the context)
lizmat somehow this reminds me of a mini-computer system of way back when that had "SYSTEM" as its master password
antoniogamiz ugexe: can I use * when specifying a ifle in the resources entry of META6.json?
nine My theory is that somewhere a StrLexRef gets used as the name of a method added through the MOP. Cro::LDAP (which I broke) uses ASN::META which...uses the MOP 15:07
nine Alas I can't find the place that'd do this and all mitigations I've tried so far fail 15:33
timotimo nine: that sounds like all that would have to be done is put a decont_s or unbox_s or whatever in the right spot 15:34
you're on ryzen, right? that'd mean no support for rr :(
nine yep
nine Oooooh! decont_s does the trick! 15:36
timotimo :) :)
nine timotimo++ 15:37
timotimo stand back, i know nqp
Kaiepi wait there are typed decont ops? 15:40
timotimo yup
Kaiepi does that mean no more having to type nqp::unbox_s(nqp::decont($str)) and the like? 15:43
timotimo hm, it might only work for native refs, not entirely sure 15:43
Kaiepi looks like it only works with native refs and... proxies i think? looking at how it's implemented in moarvm 15:45
timotimo so containers in general i suppose 15:46
which makes sense, since it's a decont op
Kaiepi m: use nqp; my Str $s = 'ayy lmao'; say nqp::decont_s($s) 15:47
camelia ayy lmao
Kaiepi oh i was misreading the code
timotimo can't know how much boxing/unboxing it puts in there
Kaiepi it works on containers in general, but it also works on any repr that stores a string 15:48
on moarvm at least
antoniogamiz is there a way to know the path of the perl6 file that is in execution? 15:58
timotimo there's a few different variables that give you that 16:00
like $?FILE or $?PROGRAM or something
m: say $?FILE; say $?PROGRAM
camelia 5===SORRY!5=== Error while compiling <tmp>
Variable '$?PROGRAM' is not declared
at <tmp>:1
------> 3say $?FILE; say 7⏏5$?PROGRAM
timotimo m: say $?FILE
camelia <tmp>
timotimo m: say $?EXECUTABLE
camelia 5===SORRY!5=== Error while compiling <tmp>
Variable '$?EXECUTABLE' is not declared
at <tmp>:1
------> 3say 7⏏5$?EXECUTABLE
timotimo m: say $?EXECUTEABLE
camelia 5===SORRY!5=== Error while compiling <tmp>
Variable '$?EXECUTEABLE' is not declared
at <tmp>:1
------> 3say 7⏏5$?EXECUTEABLE
antoniogamiz mmmm 16:01
lucasb m: say $*PROGRAM
camelia "<tmp>".IO
antoniogamiz is using *
timotimo ah
antoniogamiz ty! :D
Geth ¦ problem-solving: AlexDaniel assigned to jnthn Issue Running some scripts without any input sometimes leads users to believe that the program is hanging github.com/perl6/problem-solving/issues/60 16:53
TreyHarris what's the right way to do the moral equivalent of `$obj.method // $default` when $obj may not implement .method? 17:06
jnthn $obj.?method // $default 17:07
TreyHarris whoah, I totally missed that methodop existed
wait, how can it be a methodop? nqp magic?
TreyHarris Ah, thank you docs: "Technically, not a real operator; it's syntax special-cased in the compiler." 17:10
Damn, though; I got excited there for a minute thinking about the possibilities
Geth ¦ problem-solving: AlexDaniel assigned to jnthn Issue Ambiguity in pseudo-package and package reaction on missing symbols. github.com/perl6/problem-solving/issues/58 17:14
Kaiepi m: none(Int, Str) ^ Num 17:45
camelia WARNINGS for <tmp>:
Useless use of "^" in expression "none(Int, Str) ^ Num" in sink context (line 1)
Kaiepi m: say (none(Int, Str) ^ Num) ~~ Num
camelia False
Kaiepi shouldn't this be True?
ohh wait nvm 17:46
Num also matches none(Int, Str)
m: say (none(Int, Str) ^ Int) ~~ Int
camelia True
sena_kun 18:18
yoleaux 12:48Z <El_Che> sena_kun: giving Comma a test run. The redish-orange colour for variables and subs feels problematic as it looks to closed to a detected error. I know I can change Intellij colours, but thinking about sensible defaults here.
Kaiepi so there's ^ for one junctions, | for any, & for all, but why is there nothing for none? 18:27
i may be getting them mixed up but i know there's no operator for none junctions
moritz none is just negated any 18:31
and we ran out of ASCII chars for infix operators
nepugia have to use nonprintable ones eh? ;) 18:37
Geth doc: AlexDaniel assigned to JJ Issue Create a "How to blog about Perl 6" page here. github.com/perl6/doc/issues/2898
AlexDaniel self-unassigned Create a "How to blog about Perl 6" page here. github.com/perl6/doc/issues/2898

alanrocker++ created pull request #2899: Update syntax.pod6
18:43
Xliff jnthn: If I remove the try, it won't compile. 18:48
"Undeclared routinew: require used at line 1"
timotimo m: require("foo") 18:49
camelia Could not find foo in:
inst#/home/camelia/.perl6
inst#/home/camelia/rakudo-m-inst-2/share/perl6/site
inst#/home/camelia/rakudo-m-inst-2/share/perl6/vendor
inst#/home/camelia/rakudo-m-inst-2/share/perl6/core
ap#
nqp#…
timotimo ah, not like that then
Xliff What does it mean when I can "use A::B::C" just fine, but when I do this -=> "my $c := try require ::("A::B::C")" and $c turns out to be Nil?
^^
timotimo it's very weird it'd fail the syntax there 18:50
Xliff I know.
timotimo the "undeclared routine require"
Xliff I'm on 3.1.664 18:51
Think another brew is in order?
ugexe m: BEGIN my $c := try require ::("Test"); say $c 18:53
camelia (Mu)
ugexe m: my $c := try require ::("Test"); say $c
camelia (Test)
Xliff ugexe: Yeah. jnthn was asking what would happen without the try. 18:54
ugexe: So I can use "A::B::C" just fine, but when I do my $c := try require ::("A::B::C") I get Any. How can I find out what went wrong? 18:55
ugexe try 18:56
my $c := (try require ::($ = "Test"));
i dunno why it would work. i just do that alot so i assume there is a reason
Xliff OK. Now Any has turned into Nil 18:57
What's the latest version of rakudo? 18:58
Trying to figure if I should brew and see if I can get anything more out of this code.
timotimo 2019.03.1-680-g82fc4e570 - but i'm not totally at the newest version i think 18:59
wildtrees whats a good url fetching module for perl6? Net::HTTP seems to not want to get the same url more than once
tadzik what about HTTP::UserAgent?
Xliff *shrug*.. OK. 19:00
Nothing seems to get this working. I am at a loss.
Xliff timotimo: 2019.03.1-685-gf13ac2c03 19:08
Xliff Ah... now my module gives me this when I try and "use" it: "Use of uninitialized value $repo-id of type Any in string context." 19:14
ugexe Net::HTTP gets the same url more than once for me 19:16
wildtrees I tried it from a repl, ugexe 19:21
Xliff timotimo: 2019.03.1-685-gf13ac2c03 19:24
^^ Latest
nine m: my $c := try require ::("A::B::C"); dd $c; say $! 19:46
camelia Nil
Could not find A::B::C at line 0 in:
inst#/home/camelia/.perl6
inst#/home/camelia/rakudo-m-inst-2/share/perl6/site
inst#/home/camelia/rakudo-m-inst-2/share/perl6/vendor
inst#/home/camelia/rakudo-m-inst-2/share/perl6/core…
nine m: my $c := try require ::("Test"); dd $c; say $!
camelia Test
(Any)
TreyHarris m: multi order(Cool:D(Numeric) $num --> Int) { return log10($num).round(1) }; say order(3000); 19:52
camelia Ambiguous call to 'order(Int)'; these signatures all match:
:(Cool:D(Numeric):D $num --> Int)
:(Cool:D(Numeric):D $num --> Int)
in block <unit> at <tmp> line 1
TreyHarris What am I doing wrong there?
SmokeMachine Hi! is there a way to require a path? 19:55
I mean, something like: ```require "./my_code.pm6"``` 19:56
nine m: multi order(Cool(Numeric) $num --> Int) { return log10($num).round(1) }; say order(3000) 20:01
camelia 3
nine SmokeMachine: yes 20:03
SmokeMachine nine, how?
TreyHarris nine: I did notice that, but I don't understand. Cool(Numeric:D) works, too 20:06
m: multi order(Cool(Numeric:D) $num --> Int) { return log10($num).round(1) }; say order(3000); say order(Int); 20:07
camelia 3
Type check failed in binding to parameter '$num'; expected Numeric:D but got Int (Int)
in sub order at <tmp> line 1
in block <unit> at <tmp> line 1
TreyHarris m: multi order(Cool(Numeric) $num --> Int) { return log10($num).round(1) }; say order(3000); say order(Int);
camelia 3
Cannot resolve caller log(Int:U: Num:D); none of these signatures match:
(Real:D: *%_)
(Real:D: Real $base, *%_)
(Numeric:D: Cool $base, *%_)
(Numeric:D: Numeric $base, *%_)
in sub order at <tmp> line 1
in block <un…
nine m: use lib "/home/camelia/rakudo-m-2"; require Test:file<lib/Test.pm6>; # SmokeMachine
camelia ( no output )
SmokeMachine nine: thank you! 20:08
TreyHarris So `Cool(Numeric:D)` appears best from an error-reporting standpoint at least. But why is `Cool:D(Numeric)` no good?
nine TreyHarris: no idea. The implementation of concrete types is a bit odd at times. They appeared rather late and I guess that still shows 20:10
timotimo huh, why does wakelift.de not show up when google-searching for "perl 6 programming"? 20:16
ah crap
it says "a perl programming language blog"
that'd do it
timotimo ok, fixed that 20:17
fwiw, on my try it still gave less than 5k results 20:19
nine TIOBIzation of blogs? 20:27
wildtrees ugexe, hmm yea Net::HTTP::GET works fine multiple times from a script, though not at the repl 20:29
timotimo i mean i already put "a perl programming language blog" in there for tiobe 20:36
Xliff tiobe? 20:37
Oh. The index. 20:38
Geth doc: f45282d8da | alanrocker++ (committed using GitHub Web editor) | doc/Language/syntax.pod6
Update syntax.pod6

Explicitly specify legal bounding characters for multi-line comment blocks.
20:52
synopsebot Link: doc.perl6.org/language/syntax
Geth doc: b157bd5bbd | (Juan Julián Merelo Guervós)++ (committed using GitHub Web editor) | doc/Language/syntax.pod6
Merge pull request #2899 from alanrocker/patch-1

Update syntax.pod6
Xliff Is ::?CLASS the only way to get a class object out of a class definition? 20:54
self.^name might work for my purposes, too. 20:55
Xliff Weird. I was able to get one object back from the whole "my $c := try require ::("A::B::C") # $c === Nil" thing by changing the name and commenting a lot of code until it loaded. 20:58
Then uncommenting the code in stages until there were no comments.
WAT?!?!
Kaiepi m: class Foo { say OUR.^name } 20:59
camelia Foo
Xliff Kaiepi++
Seance[m] Hey Folks, got a question on perl6 hashes that seems really basic 21:39
Xliff ((1…100).rotor(1 => 1).flat.rotor(2 => 1).flat)
m: ((1…100).rotor(1 => 1).flat.rotor(2 => 1).flat)
camelia ( no output )
Xliff m: ((1…100).rotor(1 => 1).flat.rotor(2 => 1).flat).say
camelia (1 3 7 9 13 15 19 21 25 27 31 33 37 39 43 45 49 51 55 57 61 63 67 69 73 75 79 81 85 87 91 93 97 99)
Seance[m] given 'my %hashname = 'A' => 0;'
why does print %hashname['A'] throw an error
timotimo because you use [] for positional access, i.e. numbers
you want {} for key access 21:40
Seance[m] ' cannot convert string to number'
Xliff m: ((1…100).rotor(1 => 1).say
camelia 5===SORRY!5=== Error while compiling <tmp>
Unable to parse expression in parenthesized expression; couldn't find final ')' (corresponding starter was at line 1)
at <tmp>:1
------> 3((1…100).rotor(1 => 1).say7⏏5<EOL>
expecting a…
timotimo if your keys are literals in the code, you can use < > for that purpose (unless they have spaces in them, which < > will split into multiple)
Xliff m: (1…100).rotor(1 => 1).say
camelia ((1) (3) (5) (7) (9) (11) (13) (15) (17) (19) (21) (23) (25) (27) (29) (31) (33) (35) (37) (39) (41) (43) (45) (47) (49) (51) (53) (55) (57) (59) (61) (63) (65) (67) (69) (71) (73) (75) (77) (79) (81) (83) (85) (87) (89) (91) (93) (95) (97) (99))
Seance[m] oof, ruby biting me again
thanks
timotimo :)
Xliff m: (1…100).rotor(3 => 1).flat.say
camelia (1 2 3 5 6 7 9 10 11 13 14 15 17 18 19 21 22 23 25 26 27 29 30 31 33 34 35 37 38 39 41 42 43 45 46 47 49 50 51 53 54 55 57 58 59 61 62 63 65 66 67 69 70 71 73 74 75 77 78 79 81 82 83 85 86 87 89 90 91 93 94 95 97 98 99) 21:41
Xliff m: (1…100).rotor(2 => 1).flat.say
camelia (1 2 4 5 7 8 10 11 13 14 16 17 19 20 22 23 25 26 28 29 31 32 34 35 37 38 40 41 43 44 46 47 49 50 52 53 55 56 58 59 61 62 64 65 67 68 70 71 73 74 76 77 79 80 82 83 85 86 88 89 91 92 94 95 97 98)
Xliff m: (1…100).rotor(1 => 1).flat.say
camelia (1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59 61 63 65 67 69 71 73 75 77 79 81 83 85 87 89 91 93 95 97 99)
Xliff m: (1…100).rotor(1 => 3).flat.say
camelia (1 5 9 13 17 21 25 29 33 37 41 45 49 53 57 61 65 69 73 77 81 85 89 93 97)
Xliff m: (1…100).rotor(1 => 2).flat.say
camelia (1 4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49 52 55 58 61 64 67 70 73 76 79 82 85 88 91 94 97 100)
Xliff m: (1…100).rotor(1 => 3).flat.rotor(1 => 1).flat.say 21:42
camelia (1 9 17 25 33 41 49 57 65 73 81 89 97)
Xliff m: (1…100).rotor(1 => 2).flat.rotor(1 => 1).flat.say 21:43
camelia (1 7 13 19 25 31 37 43 49 55 61 67 73 79 85 91 97)
Xliff I missed the sequences squashie. :( 21:44
These are fun.
MasterDuke Xliff: still a bunch of sequences un-implemented... 21:45
Xliff Yeah. I can see.
Xliff What do Cro::WebApp templates render into? 22:06
rather.. compile into.
jnthn Xliff: They're compiled into Perl 6 (in memory, on first use, and then the compilation cached) 22:07
timotimo github.com/croservices/cro-webapp/...te/AST.pm6 - this spits out the code 22:08
jnthn You can ask that the whole lot is compiled up-front at startup if you'd rather pay the hit then rather than incrementally on first request
(Though for development you probably would prefer fast startup :)) 22:09
Xliff jnthn: Yah. Would rather pay the piper at startup.
jnthn: Have you done any benchmarking? 22:10
jnthn Then :compile-all when you specify the template location (it's documented :))
No
Xliff ah.
jnthn Well, aside from "I've been running it in production for a year" :P
("and nothing bad happened" :))
Xliff LOL!
jnthn: What about a Repository subclass that would use a database? 22:11
lizmat weekly: yakshavingcream.blogspot.com/2019/...o-run.html 22:12
notable6 lizmat, Noted!
vrurg jnthn: What is the sense of line 'EVAL $code, context => CALLER::CALLER::CALLER::CALLER::CALLER::;' in Test.pm? Besides of this chain of CALLERs getting outside of all scopes... 22:14
ugexe lol
jnthn Xliff: To cache the compilations?
vrurg: Hope that somebody realizes string forms of eval-dies-ok and friends are just not worth it? :) 22:15
Xliff jnthn: To store the templates and cache the compilations. 22:16
vrurg jnthn: Well, I just realized that it causes tests to fail randomly because of Failure returned... ;)
Xliff Actually, want to store the templates in a database and use memcached to store the compilations
vrurg Just trying to figure out what to do about it. 22:17
jnthn Xliff: I think that's something for a separate module, but I'm happy to accept any changes in Cro::WebApp::Template that ease using a different repository.
Xliff jnthn: OK! I will put that on my growing bucket list.
jnthn++: Cro::WebApp looks interesting! Thanks for the hard work! 22:18
jnthn :)
I needed it for a $dayjob thing, and observed that some folks seemed to want something "built-in" for templating rather than just taking a templating engine and using it...hopefully it at least helps resolve that barrier to entry :) 22:20
wildtrees anyone use perl6 with nixos? if so how do I get zef to find .so's for c libraries? 23:20
timotimo may have to do the equivalent of installing the -dev package, which usually comes with a symlink named blahblah.so -> blahblah.so.9.3.2.1.5 23:24
patrickz AlexDaniel: Where would I put documentation/files for building executable release packages? rakudo/tools/releasable? 23:26
AlexDaniel patrickz: is it too big for github.com/rakudo/rakudo/blob/mast..._guide.pod ? 23:28
patrickz I have separate README.md files. Also separate for Linux and Windows 23:28
and some scripts to be put into the windows release 23:29
AlexDaniel maybe create your own directory in tools/?
AlexDaniel tools/releasable is a bit special (read shitty) because it creates a bunch of files in the in that same directory and then cleans them… 23:29
patrickz ah ok. How would you name such a directory? I feel like I miss the the one snappy word. "binary release", "executable release" both don't hit it... 23:30
Kaiepi wildtrees, do you know anything about how library versioning works on nixos? is it like openbsd where it's practically meaningless? 23:33
AlexDaniel tools/build/binaries ?
wildtrees Kaiepi, I don't know about how the versioning work, I know most things go into a nix/store/crypto-hash-here-libname-versionname and then they are symlinked 23:36
Kaiepi rakudo's VM class might need some changes to work with nixos libraries 23:38
uzl Hello, everyone! How do you normalize a Unicode string in P6 as stated in this Python-related SO question? Is there a similar module in the ecosystem? 23:42
AlexDaniel uzl: which question? Strings are normalized by default 23:43
uzl AlexDaniel: I should've been more clear ;-). I mean, given a certain Unicode string how do I get the simplest Unicode entity for it? 23:46
timotimo oh, there's .NFG, .NFC, .NKFC, .NKFD methods on strings iirc 23:47
m: say "ä".NFD
camelia NFD:0x<0061 0308>
timotimo m: say "ä".NFC
camelia NFC:0x<00e4>
uzl timotimo: Oh, god! It seems I was looking too hard at only this page: docs.perl6.org/language/unicode I should've looked around more :-)! 23:49
Thanks!
AlexDaniel uzl: still, what do you mean by simplest unicode entity
strings are normalized by default, you'd always get a normalized string no matter what you do 23:50
timotimo arguably, NKFC gives you that :P
m: say "①".NKFD.Str
camelia No such method 'NKFD' for invocant of type 'Str'. Did you mean any of these?
NFC
NFD
NFKD

in block <unit> at <tmp> line 1
timotimo m: say "①".NFKD 23:50
camelia NFKD:0x<0031>
timotimo m: say "①".NFKD.Str
camelia 1
timotimo m: say "☺".NFKD.Str
camelia
timotimo huh, that's not fun! :P 23:50
uzl AlexDaniel: Thanks for the clarification! 23:51
AlexDaniel a better question is how *not* to get that :)
because sometimes you do need to roundtrip stuff with as few modifications as possible
wildtrees now if my .so's are in a weird place, is there a way to specify that to zef install? do I need to specify it to perl6 as well? if tests fail with zef install does it fail to totally install the package? 23:52
timotimo you can force it to skip tests
i'm not sure if LD_LIBRARY_PATH is taken into account at all
uzl AlexDaniel: Totally! That'd be a good SO question. 23:53
AlexDaniel uzl: well, there's no good answer though 23:54
as regexes and other stringy functions are not implemented for Bufs
timotimo utf8-c8
AlexDaniel oooh actually, yeah…
yeah :)