🦋 Welcome to the MAIN() IRC channel of the Raku Programming Language (raku.org). Log available at irclogs.raku.org/raku/live.html . If you're a beginner, you can also check out the #raku-beginner channel!
Set by lizmat on 6 September 2022.
00:00 reportable6 left 00:02 reportable6 joined 00:03 simcop2387 joined 00:05 perlbot joined 00:17 jpn joined 00:30 jpn left 00:35 jpn joined 00:40 jpn left 00:47 jpn joined
rf Hmm, what's the most supported template engine for Raku right now? (I can't use Mustache sadly) 00:47
Nemokosch Well, the Template Toolkit kind of system (Template6 it is called iirc) needs further care, I can say that first-hand 00:51
(although I wouldn't mind a "customer" because I want to change the raku.org templating system to that :D)
rf I would really like to use Handlebars or something like erb
Hmm there is a Mojo template port maybe I'll check that out 00:52
Nemokosch be warned that any tadzik module in 2023 is the polar opposite of supported. If it works - excellent. If it doesn't, well, then you're screwed, or at least invited to shamelessly adopt it 00:54
Template6 works now, as far as I'm concerned. It just can't do nearly as many things as I'd wish... 00:55
there is also RakuClosures or how Richard named it - that one is really like, "let's run functions where the symbols are registered", perhaps you know already 00:56
01:01 jgaz joined 01:03 xinming left 01:06 xinming joined
rf Looks like Template::Classic does some nice stuff 01:06
01:15 jgaz left
rf Wow signature type is weird.... 01:24
shmup i found this that is 3 years old but still may prove relevant, rf. has a summary of benchmarks at the bottom too gist.github.com/pheix/2632f286368e...9d07b3f4b6 01:35
rf Hah, I was just reading this 01:36
I think I settled on Template6. 01:37
Anton Antonov Any suggestions for "more mature" alternatives of "HTML::Escape"? (@Nemokosch suggested "HTML::Entity::Fast", but that was producing certain mis-alignments in the HTML code.) 01:39
01:50 squashable6 left, jpn left 01:51 razetime joined, squashable6 joined 01:53 jpn joined 01:58 jpn left
rf So is CALL-ME inherently exported? 01:59
02:02 jpn joined
Anton Antonov Well, I removed the dependency on "HTML::Escape" from "Markdown::Grammar" -- I will upload the new version in the next few hours. 02:06
02:06 jpn left 02:19 jpn joined 02:30 jpn left
rf m: my %foo; %foo<bar>.push: 123; %foo.say; 02:32
camelia {bar => [123]}
02:45 Maylay joined
guifa dang I could have sworn that we had actually implemented different rounding modes in core 02:51
seems like it got left in the air
03:01 discord-raku-bot left, discord-raku-bot joined, jgaz joined, Oshawott joined 03:02 jgaz left 03:04 archenoth left
leont A templating system could benefit greatly (performance-wise) from a RakuAST based implementation 03:08
03:14 jpn joined 03:20 jpn left 03:27 razetime left
rf Hmm, I wonder how much work it would be to make a DSL similar to Clojure's Hiccup or OCaml's TyXML 03:39
Voldenet that doesn't sound complicated 03:52
m: sub el(*%attrs, *@children) { %attrs, @children }; sub div(|c) { el :element<div>, |c }; sub a(|c) { el :element<a>, |c }; say a :href("x"), [div []]
camelia ({element => a, href => x} [{element => div} []])
Voldenet why would one make a DSL with it
03:52 razetime joined 03:53 xinming left, xinming joined
Voldenet using methods is probably better for type checking too 03:56
rf I think there is something very nice and elegant about html dsl's plus I think it would be faster than templating engines 03:58
You can also do some typing and try to ensure valid HTML 03:59
Voldenet but templates' language can be considered a dsl as well, and they can be compiled in to the same form at some point 04:01
though proper dsl are going to be faster to parse by design, I guess 04:02
rf Yeah, and they don't rely on ugly conditional logic
You can write your logic in Raku which is always nice. 04:03
04:08 jpn joined
rf Goodnight folks 04:09
04:09 rf left 04:13 freeside joined 04:14 mykhal left 04:18 jpn left 04:19 razetime left 04:32 codesections left 04:58 razetime joined 05:03 jpn joined 05:09 jpn left 05:53 razetime left, razetime1 joined 05:56 razetime1 is now known as razetime 05:57 jpn joined 06:00 reportable6 left, reportable6 joined 06:02 jpn left 06:03 razetime left 06:12 razetime joined 06:18 razetime1 joined, razetime left, razetime1 is now known as razetime 06:20 jpn joined 06:31 jpn left 06:37 simcop2387 left 06:38 perlbot left 06:43 jpn joined 06:51 jpn left 07:01 jpn joined 07:11 jpn left
Nemokosch Re RakuAST and templating - sprintf itself is such a thing in 6.e iirc 07:43
07:46 jpn joined 07:51 jpn left 08:03 frost joined 08:05 frost left 08:06 razetime left 08:08 Sgeo left 08:17 perlbot joined 08:21 simcop2387 joined, razetime joined 08:32 squashable6 left, squashable6 joined 08:47 perlbot left, simcop2387 left 09:05 dakkar joined 09:31 sena_kun joined 09:44 xinming left 09:46 xinming joined 10:20 jpn joined 10:28 jpn left 10:52 jpn joined 10:54 pingu joined 11:08 SmokeMac` joined 11:10 ab5tract joined 11:13 razetime left, SmokeMac` is now known as SmokeMachine_erc 11:19 SmokeMac` joined 11:23 SmokeMac` is now known as SmokeMachineERC 11:29 SmokeMachineERC left, SmokeMachine_erc left 11:30 SmokeMachineERB joined, SmokeMachineERB left 11:31 SmokeMachineERC joined 11:59 perlbot joined, simcop2387 joined 12:00 reportable6 left 12:01 reportable6 joined 12:51 ab5tract left 12:55 jpn left 13:07 perlbot left, simcop2387 left 13:08 simcop2387 joined 13:10 perlbot joined 13:18 theesm joined, jpn joined 13:23 jpn left 13:24 rf joined
rf Good morning folks 13:25
SmokeMachineERC Morning! 13:36
13:37 jpn joined 13:49 QhpAptyj9hj0RQwM joined 13:50 QhpAptyj9hj0RQwM left, jpn left 13:54 jgaz joined 14:05 SmokeMachineERC left, hythm joined 14:15 rf left 14:18 jpn joined 14:19 rf joined 14:26 TieUpYourCamel left 15:08 razetime joined, hythm left 15:11 hythm joined 15:15 ab5tract joined
Nemokosch I have an interesting case where the same private distro (with a CLI) works with recent Rakudo versions but with 2022.02 it just gives the usage back without any particular remarks 15:22
I'm using Getopt::Long for what it's worth 15:23
15:24 simcop2387 left, perlbot left
rf Not sure what you mean Nemo' 15:25
shmup little nemo
Nemokosch that the CLI fails with a one year old Rakudo without really giving any hints why 15:26
rf Which CLI
Nemokosch the CLI of the particular tool I've built for work
rf Hmm, that is odd, is it just 2022.02 or does older work lol? 15:27
Nemokosch I didn't try - the only reason I'm bringing up this particular version is that the guy who took over said "hm, it doesn't work on the test server" 15:28
and that one had this version so I quickly set it up for myself and indeed it doesn't
rf Any way to upgrade version on server without big pain?
Nemokosch I hope so 15:29
truth be told, I wrote that script in a quite bleeding-edge way, so the sole fact that it might fail with fairly new versions even, wouldn't be surprising
the bothersome thing is the way the error happens - the CLI just gives the usage back, without giving any hints what might have failed
rf Maybe it is due for refactoring then. 15:30
Nemokosch sadly it's quite intrinsic for the whole CLI parsing that it gives you no idea what went wrong... 15:34
15:37 ab5tract left
[Coke] using Text::CSV, trying to switch from using a hardcoded relative path to a relative path constructed with $*PROGRAM.parent....child... and it's just hanging. weird. I can read in the file manually and emit the first line, but csv() just hangs. 15:45
[Coke] finds github.com/Tux/CSV/issues/21 15:57
shmup Well, this is still here. Guess will have to fix it. 15:58
quoting, and reassiging the quote to [Coke] :P 15:59
El_Che shmup: feature request had tab support for nick completion for the discord nicks :) 16:00
shmup it works! they just have to appear in your history first 16:01
that's just standard irssi stuff afaik haha
i can tab complete Nemokosch for example
El_Che: tell me more though, like, any annoyances, and i will def chew on it. lmk what you're experiencing rn with tab completion :P
El_Che mmm 16:03
now it works
N+tab gives Nemokosch
shmup hmmm, lmk if it's weird again heh
[Coke] that doesn't work here, fwiw. 16:04
"nemo<tab>" gives me nothing on irssi
shmup github.com/shmup/irssi-scripts/blo...renamer.pl
it will if you use that and give it a bit of time for Nemokosch to say something again :P
El_Che my machine was rebooted by the hoster
so a new irssi session
shmup word
El_Che that's the only difference between testing when you posted and now 16:05
16:08 razetime left
shmup test 16:11
shmup just pushed a lil change but it isn't important to point out hehe 16:12
ugexe [Coke]: I don't think it understand IO::Path values 16:16
when you passed a hard coded relative path, was it a string or IO::Path?
when it encounters an :$in argument type it doesn't have a case for (like IO::Path) it just waits for input on $*IN -- github.com/Tux/CSV/blob/fc7a1e3d48...1753-L1755 16:17
i imagine github.com/Tux/CSV/blob/fc7a1e3d48...1661-L1663 could be changed to `when Str|IO::Path`
[Coke] Strings worked. I had issues with just ~$dir-obj, but $dir-obj.relative works OK 16:22
ugexe .relative returns a string
[Coke] Yes.
ugexe although so would ~$dir-obj
hmm 16:23
[Coke] those strings are different on windows in git bash
one has mixed /'s and \'s, but .relative is uniform.
ugexe you mentioned earlier using $*PROGRAM.child.whatever which likely was returning IO::Path
[Coke] Yes.
ugexe odd, i don't think the slashes should matter 16:24
[Coke] I'm fixing up a bunch of $dayjob stuff that really needed you to run everything from folder <x>, which doesn't work great in general.
(and I don't want to make this stuff installable, which would also fix that issue)
ugexe the only difference was the mixed slashes vs uniform slashes? 16:25
like in what worked and what didnt work 16:26
[Coke] yup
(I only tried it with git bash, didn't also try cmd) 16:27
ugexe ah, that'd be interesting to try. i'm not sure how exactly things would work in git bash 16:33
why use git bash though instead of just bash?
[Coke] ... because I'm on windows?
ugexe doesn't windows come with bash now?
i.e. wsl
[Coke] and I got git bash for "free" when I installed the git tools.
Sure, probably, but I'm not using WSL.
I tend to use git bash for misc. scripting (usually with raku), powershell for snippets I absolutely must have working for other non-developer users, and the VS cmd prompt just for building & debugging raku 16:34
16:35 simcop2387 joined 16:37 perlbot joined
ugexe what is `say $*VM.osname` under git bash? 16:38
or `say $*SPEC` 16:40
[Coke] Win32 16:42
mswin32 16:43
er, spec is first in that list. same results on git bash and CMD (it's the same raku, built in CMD using VS command line tools) 16:44
ugexe i wonder if git bash needs the same treatment as github.com/rakudo/rakudo/blob/main...Cygwin.pm6 where it basically does s{\\}{/}g all over the place 16:46
16:49 simcop2387 left 16:50 perlbot left
[Coke] Maybe, but that shouldn't impact that given/when in Text::CSV 16:51
if I have time, I'll see if I can run a local version of CSV that I can step through and see why it's confused.
17:00 jpn left 17:02 Sgeo joined 17:04 pingu left
[Coke] I got a github email for a release on moarvm 2023.02 , but not nqp or raku 17:12
now if only these scripts I were running didn't take 30+ minutes! 17:21
shmup that's fuel for attention deficits 17:23
17:24 simcop2387 joined 17:25 perlbot joined 17:26 hythm left 17:28 cfa joined
cfa o/ 17:29
[Coke] any way to get the diff of two IO Paths? I have "foo\bar\baz\frob" and "foo\bar" and want to get "baz\frob"
I can do it the hard way but am wondering if there's a method I missed.
17:30 dakkar left
cfa looks like i can't build Inline::Perl5 with 2023.02 17:31
jdv is cfa cfedde?
cfa no?
jdv bulit during release testing:|
cfa hmm
anyone else having trouble building with 2023.02? 17:33
if not i'll dig in further here
jdv is the only change the rakudo version? 17:34
cfa yeah i just switched with rakubrew and tried to reinstall
it's installed with 2022.12
shmup is rakubrew a fairly defacto/standard technique all y'all working on rakudo are using?
Nemokosch I don't know if it is standard but I can vouch for it 17:35
cfa i'm not working on rakudo but i find it convenient to track releases yeah
and quickly install zef atop a new installation
shmup: i'm using that irssi script of yours btw
it's working great here
jdv i dont use it cause its been wonky in the past
Nemokosch and especially if you need to check against multiple versions quickly
shmup cfa cool bc i def was terrible and pushed up something that wont work, glad you arent caught up cfa :) 17:36
jdv but i imagine it *should* work:)
cfa i guess it'd be nice if tellable6 were smart enough to recognise directed speech to a discord user
shmup: hmm?
shmup nothing, keep using the older, working version :P
i will fix this thing that clearly broke something for me. i tried refactoring and goofed 17:37
cfa i only just loaded whatever was in the most recent commit
shmup like, how long ago?
cfa when i connected
shmup oh ok
cfa is something about to catch fire?
[Coke] I use rakubrew. 17:38
works great, even if you want to include a raku you built from scratch on the side.
cfa or if you just want to build HEAD quickly
shmup nah cfa ur good heh. nothing will catch fire!
just got my main branch to the working one. i'll be goofing now in another branch :P 17:39
jdv [Coke]: can you do I::P5 on the last release?
cfa shmup: okay (just let me know if/when i should unload, pull, reload)
fwiw i've never used irssi scripts before
but this seemed very handy
shmup haha. word. i like to put scripts in .irssi/scripts and symlink the script to .irssi/scripts/autorun, which may be convenient for you 17:40
or just put it in autorun :P tomato tomato
jdv ive been using irssi for 15y i think and ive not delved into scripting 17:41
cfa shmup: thanks for the info. i just loaded this manually per the isntructions on scripts.irssi.org/ 17:42
which of course i had to look up
jdv is lazy, as a good perl/raku peep might be
cfa :) 17:43
i'll update to 2023.02 on my work box and try installing Inline::Perl5 there
er, i suppose i should install it there under 2022.12 first 17:44
but first... to build perl with -Duseshrplib 17:46
it's turtles all the way down
shmup 🐢 🐢 🐢 i need to test but stay relevant 17:47
[Coke] jdv: I don't use I:P5 17:50
so I could try but it would not be trivial.
cfa i'm testing on a different box here, so hopefully not necessary 17:51
just waiting on perl 5.36 to build
jdv ok
shmup i was wondering, since there is work w/r/t perl and cosmopolitan libc, if anyone has even _thought_ about raku. i'd be curious anyway
18:00 reportable6 left 18:01 reportable6 joined
cfa okay, Inline::Perl5 builds cleanly with 2022.12 on that box; now to try 2023.02 18:11
installed 18:14
so it looks like my issue is limited to macos (the work box is debian) 18:15
jdv if you can golf the issue, assuming its real, nine might be able to help
cfa yeah 18:16
is anyone else here on mac at the moment? if so, anyone able to see whether they can install on 2023.02?
jdv i only have debian myself
cfa it seems to be Distribution::Builder::MakeFromJSON that's failing 18:21
rf jdv: I installed it on a M2 Mac about 15 mins ago 18:25
cfa: ^ 18:26
cfa hmm
i5 with ventura here
rf Hmm, I can't seem to build it on my M1 using 2023 18:27
Very odd.
cfa building with -v shows the following logged command just before failure (but nothing else) 18:30
[Inline::Perl5] Command: …/rakudo -MMONKEY-SEE-NO-EVAL -e exit((require ::(q|Distribution::Builder::MakeFromJSON|)).new(:meta(EVAL($*IN.slurp(:close)))).build(q|…/.zef/Inline%3A%3APerl5%3Aver%3C0.60%3E%3Aauth%3Ccpan%3ANINE%3E.tar.gz/Inline-Perl5-0.60|)??0!!1)
i replaced the tmp path (and path to rakudo) with … there
rf It's that time again folks, I'm looking for some code review on a new Humming-Bird feature. Don't be scared to leave comments, questions, etc! github.com/rawleyfowler/Humming-Bird/pull/35 18:31
cfa: Definetley make an issue on it. I think Nine will help 18:32
cfa sg 18:42
i should probably try installing afresh in 2022.12 first
ugexe is the perl you build with useshrplib visible to Inline::Perl5? 18:44
i.e. Inline::Perl5 isn't seeing like your system perl is it?
you could also try running that command, but pipe the META6.json to stdin of it 18:45
cfa ugexe: will try in a sec 18:53
and yes, my perl is from perlbrew, built with -Duseshrplib
i'm using Inline::Perl5 in 2022.12
i think the install fails much earlier if you haven't built a shared lib
18:56 sena_kun left
cfa hmm, stdin is being EVAL'd and passed to Distribution::Builder::MakeFromJSON's constructor 19:00
ugexe yeah, a hash 19:01
cfa so i'll need to dump out a hash from the json first, no?
ugexe honestly im not sure lol
github.com/ugexe/zef/blob/5345b918...kumod#L108 19:02
cfa okay, piping in the hash worked 19:04
and yeah, exited with 1 19:05
let me try constructing from a repl
ugexe what happens if you cd to the inline::perl5 directory somewhere under ~/.zef/store and run `make`
i think `zef look Inline::Perl5` will take you to the correct dir (note it'll put you into a new shell though) 19:06
cfa yeah make succeeds but the install step fails
i tried that earlier
Distribution::Builder::MakeFromJSON.new(meta => 'META6.json'.IO.slurp.&from-json.hash).build(q|⋯/Inline%3A%3APerl5%3Aver%3C0.60%3E%3Aauth%3Ccpan%3ANINE%3E.tar.gz/Inline-Perl5-0.60|).so 19:07
that's True
as for make install, 19:08
Cannot assign to an immutable value
in sub install at configure.pl6 line 50
in sub MAIN at configure.pl6 line 7
in block <unit> at configure.pl6 line 2
cfa scratches his head 19:09
can't spend much longer on this now
19:11 jpn joined
ugexe im not sure if MakeFromJSON runs make install fwiw 19:11
cfa the install error seems to be from this: 19:15
$dist.meta<files> = (
|$dist.meta<files>.grep(* ne $p5helper.Str),
{'resources/libraries/p5helper' => $p5helper},
19:15 jpn left
cfa 🤷 19:17
19:21 sena_kun joined 20:21 benchable6 left, squashable6 left, linkable6 left, reportable6 left, releasable6 left, tellable6 left, committable6 left, quotable6 left, unicodable6 left, statisfiable6 left, shareable6 left, notable6 left, sourceable6 left, notable6 joined 20:22 unicodable6 joined, sourceable6 joined, quotable6 joined, benchable6 joined, committable6 joined, shareable6 joined, reportable6 joined 20:23 squashable6 joined, tellable6 joined, statisfiable6 joined, releasable6 joined, linkable6 joined 20:35 codesections joined
ugexe is there an error message? 20:41
oh you showed the error message earlier 20:43
er, well zef doesn't run configure.pl6 20:44
so it might even be two different errors
my $d = Distribution::Path.new($*CWD); say $d.meta<files> = (1 => 1,); 20:47
need to bisect that
bisectable6: my $d = Distribution::Path.new($*CWD); say $d.meta<files> = (1 => 1,); 20:48
bisectable6 ugexe, Will bisect the whole range automagically because no endpoints were provided, hang tight
ugexe, Output on all releases: gist.github.com/b9a43e753661e3df8f...8558cd231a
ugexe, Bisecting by exit code (old=2022.03 new=2022.04). Old exit code: 0
ugexe, bisect log: gist.github.com/bd315141cd5da37c9a...8ce996cd4d 20:49
ugexe, (2022-03-24) github.com/rakudo/rakudo/commit/f6...6de49f5be1
ugexe, Bisecting by exit code (old=2016.06 new=2016.07.1). Old exit code: 1
ugexe, bisect log: gist.github.com/a6e3182869f2bc8682...29360b5e91
ugexe, (2016-06-29) github.com/rakudo/rakudo/commit/4c...cd8b9cd5ca
ugexe looks like github.com/rakudo/rakudo/commit/f6...6de49f5be1 regressed it
bisectable6 ugexe, ⚠ New output detected, please review the results manually
ugexe, Output on all releases and bisected commits: gist.github.com/2b2d26821e11c886f5...afc5a53111
ugexe github.com/rakudo/rakudo/commit/f6...1519407R18 specifically 20:51
shmup what's going on when you use bisect like. it's performing a git bisect and at each iteration, it's running your supplied snippet of code against raku? 20:59
[Coke] prebuilt rakus, yes. 21:01
jdv maybe google "git bisect" and/or "github raku bisectable" 21:02
[Coke] rakudo.org/news has a non-link for the latest release (2022.12 seems fine) 21:17
rf tonyo: Does Slang::SQL work with Postgres? 21:19
shmup googling "git bisect" would not help with my question heh. thanks [Coke] 21:20
21:35 evalable6 left, linkable6 left 21:36 linkable6 joined 21:37 evalable6 joined 22:08 codesections left
cfa ugexe: thanks 22:09
though i'm not sure what the next steps are 22:11
(or why i'm encountering failure on mac but not linux) 22:12
rf How can i tell zef to just pull depends 22:20
cfa pull them, or install them?
rf I just want to install depends but not the module
cfa $ zef install --deps-only . 22:21
rf I should read haha yeah --deps-only
cfa okay, i fudged the installation for now: checking the before/after for $dist.meta<files> -- it turns out that $dist.meta<files> was {resources/libraries/p5helper => resources/libraries/libp5helper.dylib}, and we were attempting to set it to {resources/libraries/p5helper => "resources/libraries/libp5helper.dylib".IO} 22:23
so i commented out that assignment and reran make install 22:24
(er, pretend that wasn't so repetitively phrased) 22:26
22:31 jpn joined 22:36 jpn left
rf Hmm i'm failing to build OpenSSL on the rakudo-star docker container 22:47
22:47 perlbot left, simcop2387 left
rf zef install OpenSSL results in a test failure 22:48
cfa what's the failure? 22:55
rf Not sure, doing some troubleshooting 22:56
Its failing on a specific test
Geth doc/Unicode_V15: b1e4d99509 | thundergnat++ (committed using GitHub Web editor) | doc/Language/unicode.pod6
Change supported Unicode version

It's kind-of dependent on the VM it's running on though.
doc: thundergnat++ created pull request #4210:
Change supported Unicode version
guifa is there any way to divide a number and get the quotient + remainder? 23:32
23:34 simcop2387 joined
Nemokosch well, polymod in some sense 23:34
guifa yeah, that's just a bit inefficient 23:37
23:37 perlbot joined
guifa I've had a few subs I've written lately where I need to do a division and then use both numbers 23:37
AIUI, this can be optimized sometimes because to calculate one you generally already have the other at the ready 23:38
cfa what the 23:43
m: say 42.base("camel")
rf Got OpenSSL to build, just needed to install the shared library, weird the test failed and the META6 requirement didn't catch it.
camelia 🐫🐪🐫🐪🐫🐪 23:44
guifa cfa: it's just a little easter egg
cfa m: say 21.base("beer")
camelia 🍻🍺🍻🍺🍻
cfa guifa: yeah, i encountered the definition first
'eggify' amused me 23:45
perryprog WHOA WHOA WHOA
we can't have easter eggs in our Serious Programming Language
this better be removed asap
cfa criminally, though, there's no 🥚 multi
clearly we need 23:47
m: use MONKEY-TYPING; augment class Int { multi method base(Int:D: "egg" --> Str:D) { self!eggify: "🥚🥚" } }; say 42.base("egg")
camelia 🥚🥚🥚🥚🥚🥚
perryprog next thing you know we'll have an HTTP library that has HTTP code 418 as some "teapot" response 23:48
cfa hee 23:51
perryprog wow not even part of the spec github.com/Raku/roast/blob/master/...num/base.t 23:54
guifa It's a Rakudo easter egg, not a Raku easter egg
Since "beer" and "camel" aren't valid bases, it doesn't hurt anyone 23:55
cfa the comment was in jest
perryprog I never jest (it was indeed jest)
In fact, I was about to go even further and poke lizmat who added it in github.com/rakudo/rakudo/commit/672c5d4 but then I looked at the comments on the commit and got sad :( 23:56
see also: save418.com 23:57