🦋 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:02 llfourn` joined 00:15 Xliff joined
Xliff o/ 00:26
m: sub a (@a (Num, Int, Str) ) { say "works!" }; a( (1.0, 1, 'Hi') ) 00:27
camelia Type check failed in binding to parameter '<anon>'; expected Num but got Rat (1.0)
in sub a at <tmp> line 1
in block <unit> at <tmp> line 1
Xliff m: sub a (@a (Num, Int, Str) ) { say "works!" }; a( (1e0, 1, 'Hi') )
camelia works!
Xliff m: sub a (@a (Num, Int, Str) ) { say "works!" }; a( ('a', 1, 'Hi') )
camelia Type check failed in binding to parameter '<anon>'; expected Num but got Str ("a")
in sub a at <tmp> line 1
in block <unit> at <tmp> line 1
Xliff m: sub a (@a (Num(), Int(), Str()) ) { say "works!" }; a( ('a', 1, 'Hi') ) 00:28
camelia works!
Xliff m: 'a'.Int.say 00:29
camelia Cannot convert string to number: base-10 number must begin with valid digits or '.' in '3⏏5a' (indicated by ⏏)
in block <unit> at <tmp> line 1
Xliff m: 'z'.Num.say
camelia Cannot convert string to number: base-10 number must begin with valid digits or '.' in '3⏏5z' (indicated by ⏏)
in block <unit> at <tmp> line 1
00:39 epony left 00:44 tobs left 00:55 lucasb left 01:03 tobs joined 01:18 xinming left 01:19 xinming joined 01:53 wamba left 01:56 llfourn` left 01:57 llfourn` joined 02:02 xinming left 02:03 xinming joined 02:06 elcaro left 02:13 elcaro joined 02:14 wildtrees left 02:32 epony joined 03:32 shareable6 left, bloatable6 left, committable6 left, benchable6 left, quotable6 left, sourceable6 left, bisectable6 left, squashable6 left, statisfiable6 left, coverable6 left, unicodable6 left, notable6 left, reportable6 left, releasable6 left 03:33 committable6 joined, shareable6 joined, sourceable6 joined, squashable6 joined 03:34 unicodable6 joined, coverable6 joined, bloatable6 joined, bisectable6 joined, reportable6 joined 03:35 notable6 joined, benchable6 joined, releasable6 joined 03:36 quotable6 joined, statisfiable6 joined 03:40 epony left 03:53 Xliff left 04:07 llfourn` left 04:19 epony joined 04:29 llfourn` joined 04:39 holyghost left 04:57 sena_kun joined 05:13 holyghost joined 05:15 guifa left, guifa joined 05:24 sena_kun left 06:08 wamba joined
xkr47 how do I best check if a number $n is in a fixed set of numbers? In my case the set is 2, 4, 16 06:12
I can of course do $n == 2 || $n == 4 || $n == 16, but is there a more perl6 way? :) 06:13
moritz_ xkr47: $n == 2|4|16
06:14 jmerelo joined
xkr47 cool.. I tried `(set 2, 4, 16).EXISTS-KEY($base)` :) 06:14
thanks moritz_ 06:15
moritz_ m: say 2 (in) set(2, 4, 16) 06:16
camelia 5===SORRY!5=== Error while compiling <tmp>
Two terms in a row
at <tmp>:1
------> 3say 27⏏5 (in) set(2, 4, 16)
expecting any of:
infix stopper
statement end
moritz_ m: say 2 (el) set(2, 4, 16)
camelia 5===SORRY!5=== Error while compiling <tmp>
Two terms in a row
at <tmp>:1
------> 3say 27⏏5 (el) set(2, 4, 16)
expecting any of:
infix stopper
statement end
moritz_ forgot how it works
xkr47 :)
m: say 2 (>) set(2,4,16) 06:17
camelia False
jmerelo Hey
xkr47 lol
Geth advent: 80c9f38796 | (Juan Julián Merelo Guervós)++ (committed using GitHub Web editor) | raku-advent-2019/schedule
Updates schedule
06:27 llfourn` left 06:32 squashable6 left 06:35 squashable6 joined 07:00 llfourn` joined 07:04 mid_home left
Geth doc: 051d9d73a3 | (JJ Merelo)++ | doc/Language/modules.pod6
Required symbols no longer transitively exposed, refs #2632
07:18 llfourn` left 07:25 lgtaube left 07:30 wamba left 07:31 stoned75 left
tobs m: say 2 (elem) set(2,4,16) 07:32
camelia True
tobs m: say 2 ∈ set(2,4,16) # xkr47: or if you can type it, this is easier to memorize 07:33
camelia True
07:41 lgtaube joined 07:42 jmerelo left 07:49 llfourn` joined 07:54 llfourn` left 08:03 kensanata joined, rindolf joined 08:06 wamba joined 08:13 wamba left 08:28 wamba joined 08:36 xinming_ joined 08:38 wamba left 08:39 xinming left, kensanata left 08:47 wamba joined 08:49 xinming_ left 08:50 xinming_ joined 08:57 wamba left
xkr47 tobs, cool.. how does this compare performance-wise to 2 == 2|4|16 ? 09:35
I think it's about time languages start using unicode.. not for writability, but for readability :)
lizmat m: say 2 (elem) (2,4,16) 09:38
camelia True
lizmat xkr47 tobs you don't have to make it a Set, you just have to use set operators 09:39
the operator will coerce to a Set when needed
xkr47 oh
lizmat in the above example, it even doesn't do that, it just applies set semantics
xkr47 so is it like a Cool think, that lists can behave as Sets ?
cpan-raku New module released to CPAN! Sys::Utmp (0.0.13) by 03JSTOWE 09:40
xkr47 checking a list for elems might potentially be slower than checking a Set, which might use hash lookups?
lizmat xkr47: true, but building a set is rather expensive *and* you need to process all elements of the list always 09:41
whereas just looking at the list, you can short-circuit as soon as you have a match
as it only needs to return a Bool
xkr47 how about 2|4|16, what does it create? 09:43
lizmat a junction
m: dd 2 | 4 | 16
camelia any(2, 4, 16)
xkr47 also, can't the compiler precompile those fixed-content sets so they don't need to be created but once?
lizmat I think it does, actually 09:44
09:45 rindolf left
lizmat m: my @a = 1,2,3; for ^100000 { my $a := 1 (elem) @a }; say now - INIT now 09:47
camelia 0.1676969
lizmat m: my @a = 1,2,3; for ^100000 { my $a := 1 (elem) set(@a) }; say now - INIT now
camelia 1.9227366
lizmat m: for ^100000 { my $a := 1 (elem) set(1,2,3) }; say now - INIT now
camelia 0.0097738
lizmat m: for ^100000 { Nil }; say now - INIT now 09:48
camelia 0.013725
lizmat m: for ^100000 { }; say now - INIT now
camelia 0.0225478
lizmat m: my @a = 1,2,3; for ^100000 { my $a := 4 (elem) @a }; say now - INIT now
camelia 0.23006689
lizmat m: my @a = 1,2,3; for ^100000 { my $a := 4 (elem) set(@a) }; say now - INIT now
camelia 1.8064751
lizmat so, even if the element is not in the list, the list outperforms the set case 09:49
lizmat needs to be afk for a few hours&
09:50 llfourn` joined 09:51 benjif joined 09:53 rindolf joined, wamba joined
cpan-raku New module released to CPAN! Sys::Lastlog (0.0.11) by 03JSTOWE 09:55
09:55 llfourn` left 10:30 pilne left 10:35 sena_kun joined 10:36 chloekek joined
chloekek p6: Blob.new(0xFF).decode(‘utf8-c8’).perl.put 10:38
camelia "􏿽xFF"
chloekek Is it possible to get a replacement character instead of the NFG synthetic?
p6: my $str := Blob.new(0xFF).decode(‘utf8-c8’); S:g/\x[10FFFD]x<xdigit>**2/�/.perl.put given $str; 10:44
camelia "􏿽xFF"
chloekek mumble grumble
jnthn m: Blob.new(0xFF).decode("utf8-c8").subst(/<:Co>/, "?", :g).put 10:48
camelia ?
chloekek p6: my $str := Blob.new(0xFF).decode(‘utf8-c8’); S:g/.<?{$/.ord == 0x10FFFD}>/�/.perl.put given $str; 10:49
camelia "�"
jnthn Unless you expect there to be other private use plane things that you don't want to touch, <:Co> is probably the most efficient way
chloekek jnthn: hmm, that would match all private use code points though.
jnthn Really utf8-c8 is designed to be used in places where you'll encode back to utf8-c8 again. 10:52
e.g. when what's desired is preserving the bytes
10:54 squashable6 left 10:55 sena_kun left 10:57 squashable6 joined
cpan-raku New module released to CPAN! Linux::Fuser (0.0.12) by 03JSTOWE 10:58
11:07 wamba left 11:10 sena_kun joined
chloekek Yeah, it also appears not to apply normalization. 11:12
It’s not the thing I want to use.
And iconv can only skip invalid sequences, not introduce replacement characters. 11:13
jnthn It uses synthetics for anything not in NFC also, yes, otherwise we again fail to round-trip 11:14
It's designed quite precisely to let you pretend things are strings that aren't really strings but that everyone wants to pretend are anyway :)
chloekek Maybe I could use Inline::Perl5 and use decode from Encoding. 11:17
p6: use Inline::Perl5; 11:18
camelia ===SORRY!===
Could not find Inline::Perl5 at line 1 in:
11:19 cpan-raku left 11:21 cpan-raku joined, cpan-raku left, cpan-raku joined
cpan-raku New module released to CPAN! Linux::Cpuinfo (0.0.10) by 03JSTOWE 11:22
11:22 wamba joined
SmokeMachine the cpan-raku bot could show a link to the module... 11:36
chloekek Actually it would be nice to have this in Rakudo. I’ll look into how much work it would be to add. 11:38
Wait, Encoding::Decoder::Builtin.new takes a replacement argument. 11:41
tyil SmokeMachine: to the module tarball, to a page on raku.modules.org, to the repository (if any), ...? 11:42
SmokeMachine I think to the place where raku.modules.org sends you when you click on the module...
tyil ok, and what if a module doesn't appear there yet? 11:43
modules.raku.org doesn't update as frequently as the bot polls cpan 11:44
SmokeMachine I mean, to modules.raku.org/dist/Bla:cpan:Author if it’s on cpan or to the repo if it’s anywhere else...
tyil if you're willing to make that feature, I'm willing to run it, but it sounds like it's getting harder every sentence 11:45
SmokeMachine maybe it should only show after it’s apearing on modules.raku.org?
tyil so we only update all modules every 8 hours or so, and then spam the channel 11:46
chloekek p6: Blob.new(0xFF).decode(‘utf8’, replacement => ‘�’).perl.say
camelia Malformed UTF-8 at line 1 col 1
in block <unit> at <tmp> line 1
tyil that sounds highly inconvenient to anyone using the channel whenever the lists gets updated
SmokeMachine tyil: I just just think it would be more useful that way (at least for me…) every time I see a module here I’d like to read about, I have to go to that page and usualy it’s not there yet... 11:47
tyil that's why I'm OK with someone adding such a feature if they can come up with a way that's not going to cause other issues 11:48
chloekek p6: Blob.new(0xFF).decode(‘utf8’, replacement => “\x[fffd]”).perl.say
camelia Malformed UTF-8 at line 1 col 1
in block <unit> at <tmp> line 1
SmokeMachine tyil: usualy I see that and try to remember a few hours later to got to modules.raku.org and take a look at it… but most of the time I just forgot...
11:49 kensanata joined
tyil I don't have the time to make a feature that comes with a dozen exceptions, nor feel like crippling the bot for everyone just so a couple people can have more information 11:49
if you can find a solution that everyone likes, I'm more than open to review and merge it into the bot, though
chloekek What is the replacement kwarg for in decode? 11:50
11:50 llfourn` joined
SmokeMachine tyil: but what’s the intent of the bot? just anounce new modules or make it easier to people take a look at it? (I’m not trying to badmouth the bot or something like that… I’m just saying I’d like that feature...) 11:51
tyil just announce 11:52
SmokeMachine tyil: ok, thank you 11:53
tyil SmokeMachine: fwiw, I have been planning on my own interface that updates at the same pace as raku-cpan, but as I said before, there's a scarcity of time :(
if there's an interface that updates at the same pace, adding a link to such an interface would be easy to implement and an improvement to the bot 11:54
11:54 llfourn` left 11:55 llfourn` joined
chloekek MoarVM seems to understand the replacement character but for some reason it still croaks: github.com/MoarVM/MoarVM/blob/eb3d...tf8.c#L597 11:57
Oh, that’s for encoding, not for decoding.
p6: use Encoding:from<Perl5>; 12:01
camelia ===SORRY!===
Please install Inline::Perl5 for Perl 5 support.
12:01 wamba left 12:05 wamba joined, vrurg_ joined, vrurg left 12:08 llfourn` left, abraxxa left, abraxxa joined 12:13 mscha joined
mscha m: class Coord { has Int $.x; has Int $.y }; say Coord.new(:1x, :2y) === Coord.new(:1x, :2y); 12:13
camelia False
mscha Is there an easy way to make a Class a value type?
12:13 vrurg_ left 12:14 vrurg joined
mscha I.e., so that Coord.new(:1x, :2y) === Coord.new(:1x, :2y); 12:14
chloekek p6: class Coord { has Int $.x; has Int $.y }; say Coord.new(:1x, :2y).WHICH 12:15
camelia Coord|67159120
chloekek p6: class Coord { has Int $.x; has Int $.y; method WHICH { “Coord|$!x|$!y” } }; say Coord.new(:1x, :2y) === Coord.new(:1x, :2y); 12:16
camelia True
mscha Thanks, chloekek! 12:17
chloekek p6: (1, 2, 3).WHICH.say 12:19
camelia List|68308608
chloekek p6: "foo".WHICH.say
camelia Str|foo
chloekek p6: (foo => 'bar').WHICH.say
camelia Pair|693DF260743BCDECC1EB82467F8ACD44E60587FB
chloekek Interesting.
mscha Lists and pairs are not value types.
m: (1,2,3) === (1,2,3) 12:20
camelia WARNINGS for <tmp>:
Useless use of "===" in expression "(1,2,3) === (1,2,3)" in sink context (line 1)
mscha m: say (1,2,3) === (1,2,3)
camelia False
chloekek mscha: I think WHICH should really return ObjAt, not Str
In particular docs.perl6.org/type/ValueObjAt for “value types”
mscha m: dd 123.WHICH
camelia ValueObjAt.new("Int|123")
chloekek There was an ambiguity with some type of container in the past. 12:21
mscha m: class Coord { has Int $.x; has Int $.y; method WHICH { ValueObjAt.new("Coord|$!x|$!y") } }; say Coord.new(:1x, :2y) === Coord.new(:1x, :2y); 12:22
camelia True
chloekek Pair.WHICH seems to take the hash these days.
mscha So that seems to do the trick.
12:22 llfourn joined
chloekek p6: Str.WHICH.say 12:23
camelia Str|U58553888
mscha p6: dd Str.WHICH.say
camelia Str|U48429872
chloekek p6: say Str === "U58553888" 12:24
camelia False
chloekek p6: say "U58553888".WHICH
camelia Str|U58553888
mscha p6: dd Str.WHICH
camelia ValueObjAt.new("Str|U58533552")
chloekek p6: dd "U58533552".WHICH
camelia ValueObjAt.new("Str|U58533552")
chloekek Maybe === overloads on :U and :D
12:30 vrurg left, vrurg joined
cpan-raku New module released to CPAN! GDBM (0.0.5) by 03JSTOWE 12:33
12:35 vrurg left 12:36 llfourn left
chloekek p6: say &infix:<===> 12:36
camelia &infix:<===>
chloekek p6: say &infix:<===>.perl
camelia proto sub infix:<===> ($?, $?, *%) {*}
12:36 vrurg joined
chloekek p6: say &infix:<===>.candidates 12:37
camelia (Sub+{Callable[Bool]}.new Sub+{Callable[Bool:D]}.new &infix:<===> &infix:<===> &infix:<===> &infix:<===> &infix:<===> &infix:<===> &infix:<===> &infix:<===> &infix:<===> &infix:<===> &infix:<===> &infix:<===> &infix:<===>)
chloekek lol
p6: say &infix:<===>.candidates.perl
camelia (Sub+{Callable[Bool]}.new, Sub+{Callable[Bool:D]}.new, multi sub infix:<===> (Enumeration:D \a, Enumeration:D \b) { #`(Sub|49933392) ... }, multi sub infix:<===> (Int:D $a, Int:D $b --> Bool) { #`(Sub+{Callable[Bool:D]}|49934152) ... }, multi sub infi…
chloekek Probably special cases a bunch of types for performance reasons.
p6: class C { method WHICH { ValueObjAt.new("C") } }; say C === C.new 12:38
camelia True
12:45 Kaiepi joined 12:46 vrurg left 12:47 vrurg joined 12:53 mid_laptop joined 12:54 sena_kun left
lizmat chloekek: if you create your own method WHICH, you should probably make it a multi, and only accept instantiated invocants 12:55
the Mu::WHICH will take care of the uninstantiated one for you 12:56
13:01 daxim left 13:04 llfourn joined 13:05 abraxxa left
mscha m: class Coord { has Int $.x; has Int $.y; multi method WHICH(Coord:D) { ValueObjAt.new("Coord|$!x|$!y") } }; say Coord.new(:1x, :2y) === Coord.new(:1x, :2y); 13:05
camelia False
13:05 abraxxa joined
mscha m: class Coord { has Int $.x; has Int $.y; method WHICH { ValueObjAt.new("Coord|$!x|$!y") } }; say Coord.new(:1x, :2y) === Coord.new(:1x, :2y); 13:06
camelia True
13:06 vrurg_ joined
mscha lizmat: that doesn't seem to work here... 13:06
13:06 vrurg left
chloekek mscha: you must write Coord:D:, not Coord:D, to set the type of the receiver. 13:07
13:07 daxim joined
mscha Ah, of course, typo. :-( 13:07
m: class Coord { has Int $.x; has Int $.y; multi method WHICH(Coord:D:) { ValueObjAt.new("Coord|$!x|$!y") } }; say Coord.new(:1x, :2y) === Coord.new(:1x, :2y);
camelia True
lizmat m: class A { multi method WHICH(A:D:) { "foo" } }; dd A.WHICH
camelia ValueObjAt.new("A|U60682432") 13:08
lizmat m: class A { multi method WHICH(A:D:) { "foo" } }; dd A.new.WHICH
camelia "foo"
13:08 sena_kun joined
lizmat Sadly I must be afk again, this time for ±9 hours of Star Wars goodness :-) 13:09
13:13 lucasb joined 13:18 mid_laptop left
cpan-raku New module released to CPAN! Linux::Fuser (0.0.13) by 03JSTOWE 13:20
13:21 llfourn left 13:23 BlackChaosNL[m] left, AlexDaniel` left, tyil[m] left, CIAvash left, Demos[m] left, Nasrudin left, rba[m] left, uzl[m] left, matiaslina left, MitarashiDango[m left 13:29 vrurg_ left, vrurg joined 13:31 holyghost left 13:32 holyghost joined 13:34 mid_laptop joined 13:39 vrurg left 13:41 vrurg joined 13:42 vrurg left 13:43 vrurg joined 13:45 vrurg left 13:46 vrurg joined 13:49 vrurg_ joined 13:51 vrurg left, llfourn joined 13:57 llfourn left 14:02 wamba left 14:06 abraxxa left, abraxxa joined 14:18 kensanata left
xkr47 m: -16.msb 14:28
camelia WARNINGS for <tmp>:
Useless use of "-" in expression "-16.msb" in sink context (line 1)
xkr47 ?-) 14:29
m: (-16).msb
camelia ( no output )
xkr47 m: say (-16).msb
camelia 4
14:33 xinming_ left 14:35 xinming_ joined
xkr47 is there a shorthand for e.g. `Int.^lookup("Range")` ? 14:42
m: 4.^lookup("Range")(Int) 14:43
camelia ( no output )
xkr47 m: say 4.^lookup("Range")(Int)
camelia -Inf^..^Inf
14:44 gabiruh joined
vrurg_ xkr47: what are you trying to achieve? 14:45
14:45 vrurg_ is now known as vrurg
chloekek p6: say -∞ .. ∞ 14:46
camelia -Inf..Inf
chloekek p6: say -∞^..^∞
camelia -Inf^..^Inf
14:50 wamba joined 14:52 kensanata joined 14:53 BlackChaosNL[m] joined, sena_kun left 15:01 [Coke] left 15:03 [Coke] joined, [Coke] left, [Coke] joined 15:11 sena_kun joined
[Coke] . 15:22
Grinnz tyil: there's another possibility and that's what the bot does in perl: include a URL which will eventually work, and leave it up to the target of the URL to resolve that (maybe with some intermediate service) 15:33
in #perl *
15:34 MitarashiDango[m joined, unclechu joined, AlexDaniel` joined, Nasrudin joined, Demos[m] joined, tyil[m] joined, rba[m] joined, matiaslina joined, uzl[m] joined, CIAvash joined
tyil hmm 15:35
chloekek p6: my $proc := run(«perl -MEncode -CO -ne ‘print decode('utf-8', $_)’», :in, :bin); $proc.in.write: Blob.new(0x41, 0xFF, 0x42); 15:45
camelia ( no output )
15:46 uzl[m] left, tyil[m] left, Demos[m] left, MitarashiDango[m left, rba[m] left, BlackChaosNL[m] left, Nasrudin left, AlexDaniel` left, matiaslina left, unclechu left, CIAvash left
chloekek p6: my $proc := run(«perl -MEncode -CO -ne ‘print decode('utf-8', $_)’», :in, :bin); $proc.in.write: Blob.new(0x41, 0xFF, 0x42); sleep 1 15:46
camelia A�B
chloekek jnthn: found a solution :þ
15:50 kensanata left 15:53 llfourn joined 15:57 BlackChaosNL[m] joined 15:58 llfourn left
chloekek p6: my $proc := run(«perl -MEncode -CIO -pe ‘’», :in, :bin); $proc.in.write: Blob.new(0x41, 0xFF, 0x42); sleep 1 15:59
camelia Malformed UTF-8 character (unexpected end of string) in print, <> line 1.
Grinnz tbrowder: you seem to be uploading raku dists into the root of your cpan dir 16:03
tbrowder Grinnz: thnx, I don't know why, the Perl 6 thing is in sight, and I haven't done anything different, although I think I noticed something weird a few days ago. I'll investigate further. 16:05
tellable6 2019-12-17T07:05:05Z #raku <jmerelo> tbrowder I finally got tomorrow's article ready, so we can push your article back another day
2019-12-17T17:34:50Z #whateverable <jmerelo> tbrowder correct.
tbrowder Ah, I see, the upload dir is set to '.' and the 'Perl6' has to be explicitly selected--my eyes are getting weak, or I'm not paying close enough attention (or both!!). Thanks for pointing that out--I have several others to fix, too! 16:09
cpan-raku New module released to CPAN! Text::Utils (2.0.1) by 03TBROWDER 16:16
16:29 chloekek left 16:36 huf_ is now known as huf
tbrowder Grinnz: i think i have it right now, it takes a while to delete files, but upload is quick. thanks again for pointing that out! 16:42
Grinnz np
16:52 japhb left 16:55 sena_kun left 17:00 MitarashiDango[m joined, unclechu joined, AlexDaniel` joined, Demos[m] joined, tyil[m] joined, rba[m] joined, matiaslina joined, Nasrudin joined, CIAvash joined, uzl[m] joined 17:05 wamba left, japhb joined 17:10 sena_kun joined 17:13 jmerelo joined
guifa SmokeMachine: I’m apparently suffering from post-vacation blindness. Where in Red is the code that defines the `model` declarator? 17:18
SmokeMachine guifa: github.com/FCO/Red/blob/master/lib.../Model.pm6 17:19
guifa: and here it’s exported: github.com/FCO/Red/blob/master/lib/Red.pm6#L39 17:20
guifa AHA! That’s second one was the link that I was missing 17:21
I’m probably going to end up biting off more than I can chew, but for one of my projects I’m going to need to create a custom regex/grammar-like thing, and wanted it to feel like working with any old grammar 17:22
Probably will do a grammar-binary (parsing blobs) first as a proof of concept (plus it’s been a complaint that the current grammars don’t handle binary very well) 17:24
17:54 llfourn joined 17:59 llfourn left, cognominal joined 18:00 cognomin_ left 18:03 wamba joined 18:08 chloekek joined 18:33 wamba left 18:34 wamba joined 18:38 wildtrees joined 18:41 mid_laptop left 18:54 sena_kun left
xkr47 vrurg, enlightenment :) 19:02
19:09 sauvin left, sena_kun joined
cpan-raku New module released to CPAN! CSS::Selector::To::XPath (0.0.5) by 03WARRINGD 19:11
19:12 MasterDuke joined
MasterDuke huh. i assumed perl would be competitive python in this micro-benchmark ( news.ycombinator.com/item?id=21825222 ) and raku wouldn't, but for 100_000 python takes 0.4s, perl takes 5.4s, and raku gives `===SORRY!===Annotation segment overflows end of stream` after 78s 19:15
19:20 mscha left 19:21 sauvin joined, xinming_ left 19:22 xinming_ joined
jmerelo releasable6: status 19:45
releasable6 jmerelo, Next release in ≈2 days and ≈23 hours. 1 blocker. 0 out of 271 commits logged
tellable6 2019-12-18T16:18:28Z #raku-dev <tbrowder> jmerelo are you going to change the publish date of my article?
releasable6 jmerelo, Details: gist.github.com/ff57bcd56f43a31a03...9e5a30239a
jmerelo .tell tbrowder not any more, I guess. It'll stay for the 20th.
tellable6 jmerelo, I'll pass your message to tbrowder
tbrowder jmerelo: ok, i see it's for the right date--date changes making me woozy! 19:48
Grinnz MasterDuke: that benchmark isn't presented very well, the shown benchmark command is to both parse and execute the script
jmerelo tbrowder: sorry about that, I had so many last-minute shows and no-shows that I kept moving it around
19:49 jmerelo left
tbrowder what about [Coke]'s emergency post? seems like an emergency to me! 19:49
19:50 stoned75 joined
MasterDuke Grinnz: sure, but i think most people wouldn't expect that to take very long to execute 19:51
Grinnz sure, that's a different concern, but considering it doesn't accomplish anything, it would be hard to benchmark what it usefully does
different languages will of course decide very differently what to do when a variable is assigned something and then nothing else is done 19:52
MasterDuke perl -c takes just about the same amount of time
Grinnz some may optimize for that operation, some may optimize for future operations
MasterDuke raku's parse stage takes 52s 19:54
19:54 llfourn joined
MasterDuke so 0.5s for python to parse and execute (though execute could be getting optimized away), 5s for perl to syntax check (i don't know a better way to just time perl's parsing), and 52s for raku to parse 19:56
Grinnz perl -c runs the parsing phase yes 19:57
did you use "my" declarations? i bet it would be faster without
MasterDuke i did, i'll try without 19:58
sena_kun isn't cpython parser is a _fast_ chunk of C code, giving python syntax is not as diverse as raku one, and raku parser is in raku, which is not blazingly fast (hopefully, yet)? 19:59
MasterDuke 1s for perl -c without 'my's
i wasn't terribly surprised by the raku results, but i was by perl
19:59 ufobat_ joined
Grinnz the 'my' introduces extra work in the parse/compile phase to set up those lexicals 19:59
sena_kun ah, ok 20:00
Grinnz without it will just shove the assignments in global variables, nothing needs to be declared
20:00 llfourn left
Grinnz this is of course a bad idea in real code :P 20:00
MasterDuke 1s is obviously much better than 5s, but i still would have expected perl to be faster than python 20:01
Grinnz *shrug*
they are doing so very different things and it's not a real world use case so i'm not sure i'm surprised or care :P 20:02
MasterDuke not really criticizing perl, and yeah, not totally representative
20:03 ufobat left
MasterDuke but people were commenting about how generated code tends to be longer than hand-written, so i could imagine something compiling to perl that looked a little more like that 20:03
20:05 MitarashiDango[m left 20:12 daxim left, llfourn joined 20:16 jjatria left, jjatria joined, MasterDuke left 20:18 daxim joined 20:22 sjm_uk joined 20:32 MasterDuke joined 20:45 sjm_uk left 20:49 tyil[m] left
chloekek MasterDuke: for me it takes Python .77s and Perl .13s 20:50
20:51 rindolf left
chloekek And it takes Raku 3.16s 20:53
MasterDuke: In the Perl and Raku versions, did you add \n to the print statement? Maybe it’s slow due to line buffering requiring lots of allocations.
MasterDuke chloekek: are you timing printing out the statements? or running the resulting file? 20:54
my times were for running the resulting file
chloekek Oh I see.
20:55 sena_kun left
chloekek lol yeah that’s probably not going to end well 20:55
cpan-raku New module released to CPAN! RedX::HashedPassword (0.0.3) by 03JSTOWE 20:58
21:01 mid_home joined
Juerd I registered the domain useraku.org but have no plans for it. Does anyone here want it? 21:02
21:13 sena_kun joined 21:16 llfourn left
chloekek Could be a redirect to marketing.raku.org/ 21:16
21:19 llfourn joined, mid_home left
xkr47 oh man lovely material at chloekek 21:27
.. 's link
chloekek I’m gonna give another go at installing Raku packages with Nix 21:28
I want to get Inline::Perl5 working.
21:39 Xliff joined
Xliff o/ 21:39
guifa \o
Xliff When the move to Raku is complete, will we be changing the "use v6" pragmas?
Kaiepi .tell jmerelo, my draft for the 24th's article will be ready tomorrow 21:40
tellable6 Kaiepi, I'll pass your message to jmerelo
21:52 llfourn left 21:55 Kaeipi joined, wamba left, Kaiepi left
chloekek Ugh, running into the NativeCall issue again. 21:58
But I can’t find the IRC logs with the solution I found last time.
It can’t find NativeCall when installing with install-dist.p6. 22:00
22:03 pilne joined, cpan-raku left 22:04 Merfont joined, Kaeipi left, pi123 joined
chloekek Ah yeah, I have to include the repository I’m installing into in PERL6LIB when installing with install-dist.p6. 22:05
Like this: PERL6LIB=inst\#foobar install-dist.p6 --from=src --to=inst\#foobar
22:07 johnjay left 22:10 pi123 left 22:14 cpan-raku joined, cpan-raku left, cpan-raku joined 22:17 llfourn joined 22:23 llfourn left
chloekek Oh wow, I got it working with Inline::Perl5. 22:32
lizmat Juerd: please contact rba 22:40
Juerd rba: ^ (tl;dr: I have useraku.org and can transfer it) 22:42
I decided to get rid of the account it's under. Originally I was going to keep it for a year but they don't do domain expiry, only automatic renewal :(
22:44 Merfont left, Merfont joined
chloekek Inline::Perl5 is really neat, nine++ 22:44
22:50 llfourn joined 22:54 sena_kun left, stoned75 left 22:56 llfourn left
chloekek Is the dependency on LibraryMake needed though? I got it working just fine without LibraryMake. 22:56
23:01 llfourn joined 23:09 sena_kun joined 23:12 Merfont left 23:16 Kaiepi joined 23:37 chloekek left 23:54 MasterDuke left