🦋 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:43 jpn joined 00:48 jpn left 00:49 eseyman left 00:57 kst left 01:01 eseyman joined 01:09 hulk joined, kylese left 01:25 jpn joined, kst joined 01:30 jpn left 02:15 hulk left, kylese joined 02:22 jpn joined 02:26 jpn left 03:04 jpn joined 03:23 soverysour joined, soverysour left, soverysour joined 03:28 soverysour left 03:57 Chanakan left 03:59 Chanakan joined 05:30 Sgeo left 06:15 lizmat_ joined 06:19 lizmat left 06:36 jpn left
ab5tract Currently: $nodes.EVAL 06:37
07:47 lizmat_ left, lizmat joined 08:04 melezhik joined
melezhik . 08:05
08:05 wayland76 joined
melezhik Sparky 0.2.4 has just released with some cool goodies - raku.land/zef:melezhik/Sparky/changes?v=0.2.4 08:05
08:09 dakkar joined 08:18 thaewrapt left 08:29 thaewrapt joined 08:35 thaewrapt left 08:38 sena_kun joined 08:47 thaewrapt joined 08:52 thaewrapt left 08:53 melezhik left 09:04 thaewrapt joined 09:17 thaewrapt left 09:29 thaewrapt joined 09:34 thaewrapt left 09:46 thaewrapt joined 10:04 thaewrapt left 10:09 thaewrapt joined 10:16 thaewrapt left 10:28 thaewrapt joined 10:35 jpn joined 10:36 raiph joined 10:40 jpn left
raiph m: glot.io/snippets/gwnd0zkhjg 10:44
camelia ===SORRY!=== Error while compiling <tmp>
Confused
at <tmp>:1
------> https:⏏//glot.io/snippets/gwnd0zkhjg
expecting any of:
colon pair
raiph m: HEAD glot.io/snippets/gwnd0zkhjg 10:45
camelia ===SORRY!=== Error while compiling <tmp>
Confused
at <tmp>:1
------> HEAD https:⏏//glot.io/snippets/gwnd0zkhjg
expecting any of:
colon pair
raiph c: HEAD glot.io/snippets/gwnd0zkhjg
committable6 raiph, It looks like a URL, but mime type is ‘text/html; charset=utf-8’ while I was expecting something with ‘text/plain’ or ‘perl’ in it. I can only understand raw links, sorry.
10:49 thaewrapt left 11:01 thaewrapt joined 11:07 soverysour joined, soverysour left, soverysour joined
raiph Can I run an evalbot against a multi file program? 11:09
(I'm trying to test a `use` statement.)
lizmat I wouldn't know
raiph (So I've got _two_ file program, each with 3 lines.) 11:10
lizmat I guess the closest thing would be to create a gist with two files and the output your get and post that here ?
raiph Well I've got a glot.io link so folk can run the program: 11:11
glot.io/snippets/gwnd0zkhjg
But that's running a 2022 Rakudo.
11:11 soverysour left
lizmat raiph: do you want to export the lexical sub "show" ? 11:13
if so, then: Map.new: '&show' => &show
and get rid of the "is export" on the sub 11:14
as it's not needed
raiph lizmat: thx, and you're right, but that's not what I'm working on
lizmat: the glot program works fine
11:15 thaewrapt left
raiph lizmat: it gets the desired result 11:15
11:15 thaewrapt joined
raiph lizmat: but I don't trust it's good code (even with your fixes) 11:15
lizmat: and you are precisely the person I'm doing prep work for 11:16
lizmat: i wanted to clarify some things before approaching you
lizmat fwiw, code looks ok to me... |named-args first runs named-args(), which returns a Hash, and then flattens that as named arguments 11:17
raiph lizmat: yes, that's the desired evaluation 11:18
lizmat I just wouldn't call the helper sub EXPORT2
raiph lizmat: fair enough, but that's not what my concern is
lizmat: it's mostly about Rakudo and RakuAST 11:19
lizmat you worry whether that would stop working in RakuAST ? 11:20
I don't see why it wouldn't
raiph lizmat: Rakudo's non-RakuAST processing of `use` statement args appears to be a bit of a mess
lizmat ah, yes, it most definitely is, from an implementation point of view
"use" is very overloaded
raiph lizmat: but i'm hopeful you are taking the opportunity of the RakuAST work to simplify 11:21
lizmat I hope that at some time, we'll have a "pragma" directive
raiph lizmat: so I stumbled on to something that worked with a `use`
lizmat: but i don't trust it's wise to rely on it
m: use Test -> { :foo } 11:22
camelia ===SORRY!=== Error while compiling <tmp>
Error while importing from 'Test':
no EXPORT sub, but you provided positional argument in the 'use' statement
at <tmp>:1
------> use Test -> { :foo }⏏<EOL>
expecting any of:
lizmat i'm afraid we will have to support "use" with its current semantics into the far future
raiph m: use Test sub { :foo }
camelia ===SORRY!=== Error while compiling <tmp>
Error while importing from 'Test':
no EXPORT sub, but you provided positional argument in the 'use' statement
at <tmp>:1
------> use Test sub { :foo }⏏<EOL>
expecting any of:
raiph huh. that seems different from 2022 11:23
lizmat bisectable6: old=2022.02 use Test -> { :foo } 11:25
bisectable6 lizmat, Bisecting by output (old=2022.02 new=851aa49) because on both starting points the exit code is 1
raiph lizmat: i'm wrong
bisectable6 lizmat, bisect log: gist.github.com/425504c114ff03efbe...c327fea8e9 11:26
lizmat, (2024-01-10) github.com/rakudo/rakudo/commit/47...06d4e37e83
raiph lizmat: i confused myself (don't know how)
lizmat: also, to be clear, i view the "mess" as great in an important sense 11:27
lizmat the difference is a deprecation message for PERL6LIB
raiph lizmat: re "mess". my guess is it's related to trying extra hard to evaluate things at compile time, and catch signs of pairs, to err on the side of treating them as tags, and failing at comp time if things get too complicated 11:31
lizmat personally I still wonder whether using stashes as collections of things to export, was a wise choice 11:33
raiph lizmat: re "mess". and i could easily believe that's driven by thinking about P5 compatibility, and that's AOK. sometimes _works_ or bails is far more important than elegance.
lizmat agree
raiph lizmat: re stashes. interesting. why not? 11:34
lizmat: re stashes. and presumably you accept it's too late to revisit, right?
lizmat before 6.e most definitely 11:35
raiph lizmat: ah, wow. :)
lizmat: what's wrong with them? 11:36
lizmat: when u say "before 6.e" do you mean maybe change that aspect in 6.e.PREVIEW?
lizmat yes 11:38
raiph lizmat: 100% fearless, free thinking, committed, inspirational. thx. 11:44
lizmat: i'm going to go off and use what i learned from our exchange about `use` 11:47
lizmat safe travels! :-)
raiph lizmat: but i'm still curious to hear (another time/day) what's wrong with stashes for export!
lizmat: thx. <3 11:48
lizmat well, why not have $?EXPORT be a multi-level Map?
with tags at the first level
and things to export in there? 11:49
raiph lizmat: heh. i came back cuz i immediately realized i had more questions
lizmat possibly %?EXPORT
raiph lizmat: and then found u had more to teach me :) 11:50
lizmat: presumably ur last comments are about improvements over stashes 11:52
lizmat yes
raiph lizmat: so the issue is that returning a _single level_ map from `EXPORT` ( stash ) is inadequate
lizmat: yeah, that makes immediate sense to me 11:53
lizmat: but do you mean that the multi level map would then be flattened into stashes by the compiler? 11:54
lizmat well, no actually... I would like to see a more procedural interface actually, one that would also handle phasers and pragma
raiph lizmat: ahhh
lizmat I don't see why we need stashes to be able to import / export stuiff
*stuff
raiph lizmat: ok, that resonates something that came up for me from a different direction 11:55
in this SO stackoverflow.com/questions/785202...g-a-module
lizmat right, and that's how gfldex came up with their smuggling scheme 11:56
raiph lizmat: right. which is what i was working on reacting to. :) 11:57
in a footnote of my SO I wrote (long):
An EXPORT sub is the most powerful of the standard mechanisms for controlling "exporting and selective importing". It may be a surprise I'm guiding you to use an _export_ tool, especially a heavy weight one. What you want doesn't seem to be about exporting -- you've already got an is export. Shouldn't that be enough? Nor does what you want seem to 11:58
be about selective importing. You just want to import what the module had available for export, like normal, albeit declaring a parameter default for one of the exported subs. Can't be that difficult, right? Suffice to say, sub EXPORT is the mechanism via which one can do the fanciest things that can be done _during_ export/import, and, as I
currently understand things, what you want to do requires sufficiently fancy footwork that indeed a sub EXPORT is required.
lizmat yeah... :-) 11:59
tbrowder hi, any way to execute a prog without allowing access to existing .precomp
lizmat raiph: it just feels to me that Raku has taken too much inspiration from its predecessor in that respect
tbrowder i guess use a bash script to delete it first would work ok 12:00
lizmat tbrowder: no precompilation ?
tbrowder no, for some special introspection
still fooling with DISTRIBUTION... 12:01
existing .precomp is used and has old data
lizmat ah, yes, nuke .precomp :-)
tbrowder bash it tis 12:02
raiph tbrowder: couldn't u use `raku -!Mprecomp` or whatever the right incantation is?
tbrowder hm, i'll try that, tanks!
lizmat raiph: not sure what you're getting at? 12:03
raiph lizmat: i was thinking there's a `no precomp;` pragma 12:04
lizmat no precompilation: docs.raku.org/syntax/precompilation
but that forces source to always be compiled 12:05
what tbrowder wanted was a way to have a module ignore what's currently in .precomp, but precomp again
no precompilation won't precomp at all 12:06
raiph lizmat: ahh, ok 12:08
lizmat: also i've not figured out how one does a `no` use of a pragma using `-M`
lizmat one cannot at the moment, afaik
raiph tbrowder: ^^^ 12:09
lizmat: +1 free thinking re modules/pragmas/phasers/export/import/use 12:18
lizmat: and not leaning too heavily on perl for inspiration 12:20
lizmat: instead leaning into ergonomics of foreign module use 12:23
lizmat: hmm. i recall i returned here because I had questions...
tbrowder btw, @skaji just released new ver of mi6 to ease working with PRs of other repo owners 12:46
and nuking .precomp is easy with xt/ dir tests. that should solve my immediate problem and not affect installation 12:47
lizmat: see App::Mi6 new version 12:48
13:03 raiph left 13:14 Chanakan left 14:21 soverysour joined 14:24 Guest28 joined 14:30 Guest28 left
antononcube I mentioned yesterday that "Algorithm::KdTree" produces wrong (incomplete) results. It is based on a C implementation of the KD-Tree algorithm. I want to have a pure Raku (and correct) implementation. What is the best name that pure-Raku package/module? 14:35
I am using for now "Algorithm::KDTree". I was considering "ML::Nearest" and "ML::GeometricNearestNeighbors", but the spatial search of nearest points is not a Machine Learning (ML) use case (and related algorithms.) 14:37
Should I just submit "Algorithm::KDTree" with relevant confusion warnings in the README? 14:38
15:12 vrurg_ left 15:24 vrurg joined
tbrowder antononcube: how about plain "KD-Tree" 15:58
and rossetacode.org is a good place to search for algo prog names 16:01
antononcube 🤔 Sure. Although, I still think some parent namespace like "Math", "Geometry", or "Algorithm" is better. 16:02
Yeah, RosettaCode refers to it as "k-d tree" -- kind of misnamed. The Raku implementation is translation from Python's. (Works but awakward.) 16:03
tbrowder maybe, i floated that idea a long time ago but got shot down. he who picks name first wins! i used "AVL-Tree" for mine
it started that way in perl/CPAN but diverter rapidly. i do like Algo+ though 16:05
or Math
antononcube ok 16:12
I am considering using the full name of the algorithm: "Algorithm::KDimensionalTree" . 16:13
tbrowder sounds fine to me 16:14
lizmat +1 16:26
16:34 dakkar left
antononcube Thanks for your feedback! 17:06
17:23 soverysour left, soverysour joined 17:25 teatwo left 17:49 wayland joined 17:53 wayland76 left 17:55 Sgeo joined 18:13 soverysour left 18:34 jpn joined 18:38 jpn left 18:46 Maylay left 18:54 Maylay joined 19:06 tjr left, thatpicture joined
thatpicture hello 19:07
gfldex m: say „Hello thatpicture!“; 19:11
camelia Hello thatpicture!
19:13 soverysour joined 19:18 thatpicture left 19:26 raiph joined 19:27 swaggboi joined
[Coke] anyone know who thatpicture is? They pinged in privmsg but are gone. 19:34
jdv its always _that_ picture... 19:37
20:00 jpn joined 20:05 jpn left
antononcube @jdv 👍 20:15
20:16 swaggboi left 20:20 swaggboi joined 20:21 jpn joined 20:26 tjr joined 20:30 Manifest0 joined 20:39 wayland76 joined 20:40 wayland left 20:45 soverysour left 20:55 soverysour joined 21:02 soverysour left
Geth docker: m-dango++ created pull request #66:
Bump to 2024.05
21:07
21:17 jpn left 22:02 Sgeo_ joined 22:06 Sgeo left 22:23 sena_kun left
[Coke] jdv: is there a template for the release announcement or do you copy the previous month's to star? 22:29
(I have a PR to sub mit if the former) 22:30
(if thge latter, can I setup a preview version for the next announcement? 22:34
jdv i don't do star 22:38
it might be anton oks but idk
the release announcement i handle is gen'd by github.com/rakudo/rakudo/blob/main...ement.raku 22:39
[Coke] jdv++ PR incoming, since I'm stuck in this airport for several more hours than planned. 22:44
22:44 wayland76 left
jdv sounds like a party 22:46
22:47 jpn joined
[Coke] it was delayed, *early*, back on time, delayed multiple times, over 3 gates (over the entire length of c terminal) 22:47
22:52 jpn left 23:43 jpn joined 23:48 jpn left