🦋 Welcome to the former MAIN() IRC channel of the Raku Programming Language (raku.org). This channel has moved to Libera (irc.libera.chat #raku)
Set by lizmat on 23 May 2021.
00:05 reportable6 left 00:08 reportable6 joined 00:10 rbt left 01:01 lucs left 01:03 xelxebar joined 01:17 [Sno] joined, kvw_5_ joined 01:30 rbt joined, rbt left 01:31 lucasb left 02:46 rbt joined 02:56 rbt left, rbt joined 02:59 freenodecom joined, freenodecom sets mode: +o freenodecom
freenodecom This channel has been reopened with respect to the communities and new users. The topic is in violation of freenode policy: freenode.net/policies 02:59
02:59 freenodecom sets mode: -v samebchase, freenodecom sets mode: -v literal, freenodecom sets mode: -v benaiah, freenodecom sets mode: -v Mithaldu, freenodecom sets mode: -v KotH, freenodecom sets mode: -v perry, freenodecom sets mode: -v riatre, freenodecom sets mode: -v SmokeMachine, freenodecom sets mode: -v a3f, freenodecom sets mode: -v mojca, freenodecom sets mode: -v pnu__, freenodecom sets mode: -v charsbar, freenodecom sets mode: -v tyil, freenodecom sets mode: -v pierrot, freenodecom sets mode: -v Util, freenodecom sets mode: -v xi, freenodecom sets mode: -v UukGoblin, freenodecom sets mode: -v ambs, freenodecom sets mode: -v vaskozl, freenodecom sets mode: -v bdju, freenodecom sets mode: -v sjn, freenodecom sets mode: -v Grrrr, freenodecom sets mode: -v ecocode, freenodecom sets mode: -v nicholatian, freenodecom sets mode: -v silug, freenodecom sets mode: -v __jrjsmrtn__, freenodecom sets mode: -v sivoais, freenodecom sets mode: -v defaultxr, freenodecom sets mode: -v japhb, freenodecom sets mode: -v agentzh, freenodecom sets mode: -v kst, freenodecom sets mode: -v mrsolo, freenodecom sets mode: -v PotatoGim, freenodecom sets mode: -v bonz060, freenodecom sets mode: -v vrurg, freenodecom sets mode: -v rypervenche, freenodecom sets mode: -v maggotbrain, freenodecom sets mode: -v broquaint, freenodecom sets mode: -v brass, freenodecom sets mode: -v spycrab0, freenodecom sets mode: -v peteretep, freenodecom sets mode: -v Voldenet, freenodecom sets mode: -v jhill, freenodecom sets mode: -v robinsmidsrod, freenodecom sets mode: -v BuildTheRobots, freenodecom sets mode: -v stux|RC-only, freenodecom sets mode: -v nine, freenodecom sets mode: -v xinming, freenodecom sets mode: -v solitario3, freenodecom sets mode: -v gordonfish, freenodecom sets mode: -v jcallen, freenodecom sets mode: -v Grauwolf, freenodecom sets mode: -v jdv79, freenodecom sets mode: -v Ulti, freenodecom sets mode: -v klapperl, freenodecom sets mode: -v Manifest0, freenodecom sets mode: -v cooper, freenodecom sets mode: -v sena_kun, freenodecom sets mode: -v krunen, freenodecom sets mode: -v Benett, freenodecom sets mode: -v Maylay, freenodecom sets mode: -v Henry151, freenodecom sets mode: -v rba, freenodecom sets mode: -v esh, freenodecom sets mode: -v albino, freenodecom sets mode: -v camelia, freenodecom sets mode: -v zostay, freenodecom sets mode: -v solitario, freenodecom sets mode: -v cpage, freenodecom sets mode: -v xkr47, freenodecom sets mode: -v elcaro, freenodecom sets mode: -v lizmat, freenodecom sets mode: -v eater, freenodecom sets mode: -v karupanerura, freenodecom sets mode: -v tadzik, freenodecom sets mode: -v lnx, freenodecom sets mode: -v cxreg, freenodecom sets mode: -v BinGOs, freenodecom sets mode: -v hvxgr, freenodecom sets mode: -v m6locks, freenodecom sets mode: -v ingy, freenodecom sets mode: -v brown121407, freenodecom sets mode: -v pel, freenodecom sets mode: -v timotimo, freenodecom sets mode: -v Sir_Ragna, OperServ sets mode: +o freenodecom, ChanServ sets mode: +impscf ##raku, ChanServ sets mode: -bb mst!*@* *!*5c9a5b04@*.w92-154.abo.wanadoo.fr
freenodecom The new channel is ##raku 02:59
02:59 freenodecom left 03:11 rbt left, rbt joined
frost the raku channel on freenode has got hijacked? 03:11
03:11 rbt left
moon-child frost: that seems to have happened to a few channels 03:24
mika.l3ib.org/tmp/zsh-takeover.log e.g. 03:26
04:07 rbt joined 04:17 rbt left, rbt joined
simcop2387 frost: staff on freenode closed many many channels 04:19
00:15:31 [freenode] -rasengan(~rasengan@freenode/staff/rasengan)- [Global Notice] In the recent policy enforcement, some channels were erroneously included. We greatly apologize for the inconvenience. Please contact us in #freenode-services or contact-us@freenode.net. Thanks for your patience and choosing freenode! 04:20
04:31 japhb left 04:32 rbt left, rbt joined 04:33 rbt left, rbt joined, rbt left, rbt joined 04:36 ggoebel_ left
guifa Phew. That took more time than I expected, but finally figured out a way to track the code-order of subpackages 04:37
japhb Thanks for mentioning something here. I looked back at the channels I had on Freenode, and in most of them I'd been -o -v'ed. All the ones that mentioned libera.chat, strangely enough. *rolls eyes* 04:45
04:49 guifa left 04:50 guifa joined
simcop2387 japhb: yep, they closed a couple hundred channels by my estimation. many of them with <20-30 members 04:53
literally anything that had "libera.chat" in the /topic it seems, as a perceived policy violation 04:54
they changed the freenode.net homepage to talk about it all
moon-child 'this channel will never move to libera.chat' shut down. Seems like a good strategy :P
japhb Brilliant! 05:08
japhb just finished pushing changes to the MUGS repos to repoint IRC contacts to this network, sigh. 05:09
... and resent MUGS org request to Libera.Chat, now that they have a ticketing system apparently. 05:20
05:23 rbt left 05:34 rbt joined 06:05 reportable6 left, reportable6 joined 06:18 holyghost joined, holyghost left 06:34 b4283 left 06:40 frost left, frost joined 06:44 rbt left, rbt joined, rbt left, stoned75 joined, rbt joined, rbt left 06:50 guifa left 06:55 rbt joined 07:00 rbt left, rbt joined 07:15 rbt left 07:30 renormalist left, renormalist joined 07:31 renormalist left, renormalist joined 07:32 renormalist left 07:37 renormalist joined 07:40 dakkar joined
tyil our channel on Freenode has been nuked 07:57
07:58 patrickb joined 08:00 Sgeo left 08:06 rbt joined 08:08 Woodi_ is now known as Woodi 08:14 hankache joined
lizmat www.reddit.com/r/rakulang/comments..._channels/ 08:24
Altreus kind of making it a moot question eh 08:25
lizmat yes, indeed.. and sore losers they are indeed
it does make clear that current Freenode management thinks you're the product
hankache What exactly did the channels violate? 08:26
Lol
Altreus I have this image of Lee wringing his hands and cackling that he's finally king of the whole freenode, and then his squires bring him word that everyone's on boats 08:27
hankache: rule number 1 of freenode club is you do not talk about libera club
raydiak our channels and about 700 others. did we expect otherwise? changing the topic to indicate the move basically said "libera is better than this". BDFLs notwithstanding, dictators tend to take a dim view of such things... 08:28
Altreus is this new, or the same as it ever was? freenode.net/policies 08:29
hankache I think it's just a stunt to say that they kicked the communities instead of saying they left
Altreus dictatorship only works when you cannot prevent the subjugated from leaving
08:29 GreaseMonkey joined
nine At least this finally triggered me dropping my nick registration 08:30
Altreus oh ... that would require me reconnecting 08:31
maybe I can do it from webchat :D
GreaseMonkey it appears i have finally gotten to this language on my programming language todo list and i'm looking forward to it 08:35
Altreus welcome
GreaseMonkey i'm a big fan of static typing
and thanks
Altreus I am looking forward to being equally stumped by your questions
GreaseMonkey yeah that's how it goes 08:36
Altreus I do like raku but there are bits I wish it didn't have 08:37
coming from perl5 anyway
where do you come from, GreaseMonkey?
If you have a todo list I suppose you have tried many
GreaseMonkey quite a few things but the things that are sticking out the most here are Python and Common Lisp
and i use copious buckets of mypy when coding in Python 08:38
and copious buckets of (declare (type ...)) when coding in CL
moon-child raku is basically common lisp but with syntax
Altreus Common Lisp! How scandalous! 08:39
moon-child (and just as extensible, if not more so, wrt syntax as cl is wrt semantics)
GreaseMonkey ...considering that there's something called the metaobject protocol here, i have to concur
Altreus We only take hoi polloi lisps here
dpk as a Lisper, i'm inclined to agree
Altreus Dave Lisper?
I have never used a lisp, unless you count Perl and Raku 08:40
People have described perl as a lisp
dpk Raku is the most successful attempt since Dylan to create a language with the power of Lisp with non-S-expression notation
Altreus It's definitely an impediment hohoho
dpk Perl 5 is most definitely not a Lisp, hah
moon-child dpk: didn't julia have some of that
haven't used it. But I hear it at least has dynamic dispatch
GreaseMonkey wait, how did people call Perl a Lisp
dpk oh, yeah, or Julia in the same category
indeed, i think i'd probably recommend people to learn Raku over Common Lisp these days
GreaseMonkey i do like dynamic dispatch
Altreus I didn't understand the comment so I can only repeat it after this many years
dpk because Common Lisp is old and nobody is developing the language further
but that's maybe my Scheme bias showing 😏 08:41
Altreus The only feature of Lisps that I really have any handle on is them requiring me to think backwards
Which was also an issue when I tried Haskell
moon-child dpk: common lisp has a much better ecosystem, and in particular development environment
dpk that's true
but other languages are catching up in general. is there an LSP server for Raku yet?
GreaseMonkey Scheme has the advantage that it's easy to implement, and the disadvantage that it's about a third of a language 08:42
dpk GreaseMonkey: wait until R7RS Large is finished ;-)
out of curiosity, i know Raku has macros, but are they hygienic?
GreaseMonkey yeah R7RS Large will probably end up quite practical
until then i have CHICKEN
dakkar dpk: raku's macros are… not quite there yet
moon-child lsp server...I think the main thing an lsp server does is autocomplete, which I can take or leave
dpk LSP should also offer meta-point and all the cool stuff SLIME and friends offer, no? 08:43
moon-child scheme in practice isn't a third of a language; instead it's fragmented because everybody implements the other two thirds differently. Case in point: my poison of choice is s7, not chicken
08:43 summer joined
dpk again, we're trying to clean that up in R7RS Large 08:43
Altreus hygienic? 08:44
dpk (well, they tried to clean it up in R6RS, but they imposed so many requirements on implementations that no existing Schemes moved over)
Altreus as in do you have to wash your hands afterwards?
moon-child isn't chez scheme based on r6?
GreaseMonkey i will say it's nice to see this lang has a JIT
dpk yes, that's the exception, but it doesn't really count as the author of Chez was also the chair of the R6RS committee 08:45
moon-child don't get too excited about performance :P
nine dpk: RakuAST (end of the year) will bring hygienic macros
dpk the Michael Kay approach to programming language standardization
Altreus: as in, avoiding accidental variable capture is happened automatically, and referential transparency is preserved in macro definition and expansion
moon-child fair fair
Altreus dpk: those sound like the exact sort of challenges that would explain why it's not ready yet :)
dpk so if i use a temporary variable in the expansion of my macro, its name won't collide with any variable names used in the place where the macro is invoked
Altreus not to be taken as an authoritative statement 08:46
GreaseMonkey AST macros are a woefully underimplemented feature a lot of programming languages could do with
Altreus I like the word hygienic to describe this
dpk and if i refer to a procedure, variable, or other macro that i know of in the place where i defined the macro, it will work even if those procedures/variables etc aren't defined in the place where the macro is invoked, or if the names refer to something else at that spot
Altreus hermetic macros
dpk Altreus: well, Scheme has had this solved since the early 1990s ;-) 08:47
Altreus at this point I wonder why they are semantically different from not-macros
nine Once you've implemented your first proper compiler, everything below AST level seems dirty
dpk but you're correct that this sort of thing is only just coming into non-Lisps today
moon-child dpk: I hear oleg implemented define-macro atop hygienic macros
iow: beware!
dakkar in other words, names in macros should behave like names in normal subs (i.e. lexically) and not like names in C preprocessor "macros" (i.e. as text)
dpk yes, if your name is Oleg Kiselyov, automatic hygiene is more of a suggestion than a rule 08:48
dakkar Altreus: jnthn.net/papers/2020-gpw-realizing...macros.pdf is a good presentation with examples of what macros can do (and subs can't) 08:49
Altreus This has been an informative few minutes in the raku channel!
and a new person with actual communication skills has arrived 08:50
2021 is looking up
dpk Altreus: same as with non-hygienic macros: i can define operations on the arguments my macro is called with before those arguments are evaluated
Altreus parsing ...
moon-child is looking forward to imlementing adts and destructuring pattern-matching once macros arrive
dpk so i can implement a 'swap the values of these two variables' operation, for example, which needs to know the *names* of the variables involved and not their values
Altreus ah, and in fact you can completely avoid evaluating them at all if you want to 08:51
and with Raku involved you can probably work on their metaobjects without ever actually invoking the values themselves
dpk or a let/variable-binding construct, which again, needs to know the names of the variables it wants to bind. knowing their values is useless, as presumably there aren't any …
nine dpk: just a note. Since containers (variables) are first class citizens in Raku, you can actually swap two variables without knowing their name. 08:52
moon-child I _just_ realised that 'RakuAST' can be abbreviated 'RAST'. Where 'R' follows 'Q'
that is super cute
Altreus It must be earliy because all I see there is QRST
definitely early because I keep putting an i in early 08:53
dpk i believe the minimal set of syntactic forms a Scheme actually needs is something like lambda, begin, set!, and quote, and the rest can be done with macros and procedures
dakkar eerily early
nine m: my $a = 1; my $b = 2; sub swap($one is rw, $other is rw) { my $temp = $one; $one = $other; $other = $temp }; swap($a, $b); say "$a $b";
camelia 2 1
Altreus oh QAST is a thing
dakkar Altreus: yes, it's the current internal representation of the parse tree 08:54
oh, which reminds me…
is NQP part of Raku, or just Rakudo?
nine It's an implementation detail of RAkudo 08:55
dakkar ok, so ecosystem modules should try not to use it, right?
nine exactly
dakkar otherwise we end up with the same problems that XS causes in CPAN
nine Well, not as bad, but still bad 08:56
dakkar (there is 1 `use nqp` in roast…)
(2, actually) 08:57
Altreus NQR I suppose 08:58
dakkar eh…
dpk picking one LSP server at random github.com/clojure-lsp/clojure-lsp 09:00
with that one you do get meta-point and reverse meta-point and error tracing and all the good stuff that you get from SLIME 09:01
my main experience with LSP so far was installing lsp-mode in Emacs to see if it offered better HTML editing than any of the built-in HTML modes, discovering that the HTML server's response to my use of implicit close tags for <p> was to construct a parse tree that looked like html > body > p > p > p > p > p > p > p etc, giving up, and disabling it 09:02
09:02 patrickb left
moon-child the main thing I want is debugging, restarts, and interactively redefining stuff 09:05
I don't care a tonne about static introspection
(though I recognize that other people do) 09:06
09:07 tadzik joined 09:13 abraxxa joined
Altreus implicit close tags are one of those conveniences I wish we didn't have 09:14
lizmat abraxxa: welcome! 09:15
Altreus abraxas is a really good kitchenware shop from around here 09:16
just so you know
09:16 rbt left
abraxxa test 09:17
I had bookmarked both the old and the new channel and it seems I've deleted the wrong one. The freenode one gives this error since today. 09:18
lizmat++ # thanks for the quick help!
Altreus: and a bar in the town my brother lives ;)
Altreus it's a cool name so it's probably ancient greek, right? 09:19
lizmat yeah, current Freenode staff decided that mentioning libera.chat is a violation of terms
Altreus > Macros receive an AST # ohhhhhhh 09:20
I wonder if I can shoehorn a Macross Frontier joke in at this point 09:21
hankache Well the way they are behaving it looks like freenode will kill freenode
Altreus It's very much a hoist by one's own petard sort of situation 09:22
hankache Some people were still logged there and they decided to kill their channels. 09:23
El_Che hi
so, freenode #raku was taken over?
tadzik seems like it 09:24
it used Bad Words
Altreus only newspeak is allowed
hankache Should have updated the motd to say: join us on the network that shall not be named 09:26
Altreus set up a redirect to libera :D 09:29
buy freenode.chat and redirect it to libera.chat
eh they'll cotton on quick
and that feels like fighting dirty
09:32 rbt joined
El_Che www.gentoo.org/news/2021/05/26/gen...acked.html 09:42
maybe raku could post an statement as well? <= PSC
09:44 KotH joined
El_Che www.reddit.com/r/haskell/comments/...r_haskell/ 09:46
09:47 nige joined 09:49 nige left, nige joined
El_Che lol: "Fitting his fake princehood, he will soon be left with a fake IRC kingdom- nothing but bots and trolls." 09:49
lizmat I've posted: www.reddit.com/r/rakulang/comments..._channels/ 09:53
El_Che matrix integration isn't far off I heard 09:55
few days
nige just wondering if there is a url to visit for the web log of the channel? 10:07
10:09 cog is now known as cognominal 10:11 nige left, nige joined
tyil El_Che: nice 10:12
the sooner the better
I dont trust the current freenode staff one bit after they purged shit everywhere 10:13
lizmat nige: logs.liz.nl for now, am working on getting the libera.chat logs in there as well 10:15
nige nice! thanks lizmat++
lizmat should be more or less live in a few days
10:16 nige left, nige joined 10:18 moctezuma joined 10:20 cognominal left 10:21 nige left, nige joined 10:24 cognominal joined, cognominal_ joined
lizmat nige: logs.liz.nl should now be up-to-date on everything that has been on Freenode 10:24
10:26 nige left, nige joined 10:29 stoned75 left
lizmat nige: logs.liz.nl should now be up-to-date on everything that has been on Freenode 10:29
10:31 goblin joined
El_Che "cheapie has coined the name "Leenode" for this abomination. Let's start using it!" :) 10:46
10:50 m_athias joined, lichtkind joined 10:55 ggoebel_ joined 11:04 hankache left 11:05 lichtkind left, lichtkind joined
lichtkind would it be allright if i talk again about math::Matrix and compare it to libGSL too? 11:06
raydiak bed time for me, g'night all. in parting, I'd like to dedicate this Metallica song chock full of almost eerily apropos lines to Andrew Lee: www.youtube.com/watch?v=6gSb2A4mXtg 11:18
lizmat raydiak: :-) 11:21
lichtkind: as a presentation at Raku conf?
lichtkind lizmat: yes 11:23
lizmat *I* see no reason why not, but then I don't have much to do with the organization :-) 11:24
11:25 Doc_Holliwood joined
Doc_Holliwood well. that was painless 11:26
hello libera
goblin o/
lizmat Doc_Holliwood o/
Doc_Holliwood m: "test".say
camelia test
11:27 morayj joined
morayj camelia: say 'hello' 11:29
11:29 jercos joined 11:32 rbt left, rbt joined
lizmat morayj: camelia listens to "m: " 11:35
morayj lizmat: Ah, thank you. Just testing the new libera water 11:36
11:36 nige left
morayj m: say "hello" 11:36
11:36 nige joined
camelia hello 11:36
lichtkind lizmat: it woul be a way for me to drop a lot of nmeric knowledge i just learn 11:37
11:38 hankache joined
lizmat sure... knowledge spreading is good 11:38
11:39 lizmat left 11:40 lizmat joined 11:41 lizmat left 11:45 lizmat joined, LizBot joined 11:59 xkr47 left 12:00 xkr47 joined 12:07 morayj left, morayj joined 12:16 nige left, nige joined 12:17 moctezuma left 12:19 hank38 joined 12:26 nige left, nige joined
Geth doc/master: 4 commits pushed by (JJ Merelo)++ 12:27
12:31 hank38 left 12:32 moritz_ is now known as moritz 12:34 kaskal_ left 12:37 morayj left 12:38 rbt left 12:40 jercos left 12:42 jercos joined 12:49 ecocode_ left 12:53 Manifest0 joined, ecocode_ joined, kawaii_ left 12:56 kawaii_ joined 13:20 m6502 joined, b2gills left 13:23 m6502 left
kybr reading jnthn's slides linked earlier.. excited about macros and rakuast. question: are macros already worked out at the language level? is the work on implementation only or is the syntax TBD? 13:32
13:39 Doc_Holliwood left 13:48 synthmeat left 13:49 synthmeat joined
simcop2387 ooo neat, raku is getting macros? I gotta check that out, it's one of the things i regularly lament about perl5 not having 14:01
14:04 rbt joined
Altreus why are they called macros? 14:06
moritz that's what you call such things usually :D 14:08
Altreus yeah, why 14:10
are they somehow bigger than other code?
14:12 morayj joined
jercos that is in fact, the literal etymology. 14:14
Altreus oh, interesting
jercos "bigger" is perhaps in a different sense though, more like "outside", or "meta"
Altreus a macro view in the sense of not concerned with details 14:15
jercos perhaps, yeah. like macrobiology isn't concerned with smaller life... it just depends entirely on it :-) 14:16
14:16 Doc_Holliwood joined
lichtkind lizmat: hugs man not seen long time 14:17
14:20 Od1n joined
Od1n hello people 14:20
i try to figure out the easiest way to get a int32 matrix from a file. my current attempt is to try to read a Buf[int32] and .Capture it 14:24
(actually i try to read data produced by a numpy script)
codesect` re: 'macro' etymology: here's how the Wikipedia article puts it: "they are called "macros" because a "big" block of code can be expanded from a "small" sequence of characters." 14:25
(imo, that's most literally true for assembly macros. Which is where the name got started, right?) 14:27
Altreus sure thing 14:28
I'm not one to complain about words not staying true to their original meaning
... any more 14:29
14:31 nige left, nige joined 14:36 nige left, nige joined 14:41 Sgeo joined 14:43 b2gills joined 14:59 rbt left, rbt joined 15:03 jmerelo joined
jmerelo Well, this works 15:03
Hey!
15:05 peteretep joined 15:07 peteretep left, peteretep joined
tadzik o/ 15:11
jmerelo So this is the new IRC... 15:13
jercos meet the new IRC, same as the old IRC
15:16 Od1n left
daimon pretty much just the server_name changed ;p 15:19
15:26 nige left 15:30 morayj left
Altreus hello 15:30
jmerelo No changes === good 15:37
15:40 Doc_Holliwood left
codesect` ^^^^ as the functional programmers have been telling us all for decades! 15:40
Altreus we replaced freenode with a mutated copy of freenode 15:42
jercos somewhere out in the aether, a monad takes a "Maybe IRCNet" and happens to produce a result equal to "Just Libera" 15:56
15:57 timo joined
jercos good to know the side-effects of the move are safely contained :p 15:57
tonyo he says from atop the Box
16:06 cognominal_ left
summer just wish there was cloaking by default, going into a channel to request cloak was embarrassing, I felt naked 16:08
16:18 dolmen joined 16:24 dolmen left 16:25 dolmen joined 16:26 dolmen left, dolmen joined 16:32 bdju joined 16:39 dakkar left 16:40 nine left, nine joined 16:42 synthmeat left 16:43 synthmeat joined 16:48 dolmen left 16:51 dolmen joined
lizmat logs.liz.nl/raku/index.html now contains merged Freenode / Libera logs for the period 19-25 May 16:57
hankache Lizmat++ 17:12
17:15 guest123 joined 17:17 Altai-man_ left 17:18 guest123 left 17:19 just_lurking joined 17:21 Altai-man joined 17:22 just_lurking left 17:25 scriplit_ joined 17:26 scriplit_ left 17:27 scriplit_ joined, scriplit_ left 17:30 Altai-man left 17:31 scriplit joined 17:45 patrickb joined 17:54 guifa joined 17:59 feb joined 18:14 corwin is now known as CNN 18:17 annuges joined 18:19 CNN is now known as corwin 18:20 annuges left 18:21 dolmen left, corwin is now known as CNN 18:24 RaycatWhoDat joined
RaycatWhoDat Ah, here we are 18:24
18:25 rbt left, rbt joined 18:26 CNN is now known as corwin
RaycatWhoDat When do people reach for grammars here? 18:26
18:26 Doc_Holliwood joined
RaycatWhoDat That is to say, when is a grammar the obvious answer to the problem? 18:26
lizmat when a simple regex doesn't cut it? 18:28
fsvo "simple" :-)
18:28 jmerelo left
RaycatWhoDat Fair. So, let's say I wanted to parse the CSV and collect a number of matches into a variable and output them later. Grammar is probably the answer here but I would wonder how many lines that would be. 18:30
lizmat Ah, for CSV we have Text::CSV :-)
raku.land/github:Tux/Text::CSV 18:31
RaycatWhoDat Is the no-library approach too verbose?
Realistically, yes, I would use the library. But I'm trying to see if the base language has what I need. 18:33
guifa a lot of tiems I switch to a grammar when the regex starts getting unwieldy
for example, CSV *theoretically* could just be $text.split("\n")>>.split(",") 18:34
RaycatWhoDat What a perfect world that would be
18:35 feb left
guifa when you regex it, you get / [ … %% \n] %% \n ] / 18:35
well, probs with parentheses, but you get the idea, where … is the definition of a value
there's a certain elegance to / ( <value> %% \n] %% \n ) /, and the definition of <value> is the more complex bit 18:36
18:37 stoned75 joined
RaycatWhoDat Oh, does the regex understand multiple instances of a named thing? 18:37
guifa yup!
RaycatWhoDat Like, when this is all said and done, is there something akin to `@values = <list of Match objects>`? 18:38
Oh, neat
guifa Where the grammars are really useful is you can also attach actions to them
18:38 stoned75 left 18:39 stoned75 joined
guifa Because while you can match a quoted CSV value fairly easily, you're still going to have to go back later and take out the quotes, and figure out the internal quotes 18:39
When you use a grammar, you can have write actions to handle that automatically, when you do CSV.parse($file), you get an array of arrays of pure/correctly parsed text, in an easily maintainable format 18:40
put another way, think about JSON. Can you do it in a regex? I mean, maybe. 18:41
But look at how elegant (elegant == easy to read and maintainable) this is
modules.raku.org/dist/JSON::Tiny:c...Grammar.pm
RaycatWhoDat That is elegant 18:42
guifa The actions are here
modules.raku.org/dist/JSON::Tiny:c...Actions.pm
They convert the matches into Raku structures (take note, for instance, on the str_escape one)
codesect` (Though it's worth noting that the elegance can come at a price, which may not be worth paying if the code in question is performance-critical, as JSON parsing sometimes is. Hence, JSON::Fast) 18:43
guifa ^^ grammars can be a bit slower, 'tis true. But no need for premature optimization, and more importantly, it's easier to verify correctness 18:44
codesect` Agreed
guifa codesect`: I've made lots of progress on the GTK + declarators btw
codesect` Cool :) 18:45
RaycatWhoDat Hmm. 18:46
So, I have a choice between using Raku and making elegant but longer code or using this other thing but not having any sort of maintainability 18:47
codesect` what is the "this other thing" ^^^? 18:48
RaycatWhoDat TXR
Looks like this for what I'm doing: github.com/RayMPerry/kitchen-sink/...-parse.txr 18:49
I have to check if it handles internal quotes, though
18:50 ilogger2 joined
guifa codesect`: gist.github.com/alabamenhu/0b02c93...44729765a9 18:51
creates
imgur.com/a/ZDK3ths
codesect` snazzy! 18:53
guifa AFAICT it should be possible to even allow a 'use Foo::Bar::CalculatorKeys' and allow for more external definitions
codesect` Do you have state or actions/events yet or just static GUI output?
guifa I've got clicks working 18:54
But trying to figure out the best way to handle referencing other elements
codesect` How does that work? I notice `text` is a constant … doesn't it need to change? 18:55
guifa codesect`: yeah, that's one of those I'm also trying to figure out. there that's the just the default, probs should rename it "default-text"
The catch is, all of these items are technically packages, and so I run into the issue of some of them not being defined yet. I'm thinking about maybe making a function for all gui elements that searches at increasing levels for the nearest named element 18:56
so if you did Dot.find('One'), it'd search inside of Dot (nothing), then look at Other, and it recursively (nothing), then RowE and search recursively through it, finding Calculator::Container::RowD::One 18:57
codesect` Hmmm, that's basically re-implementing lexical scope, isn't it? 18:58
18:59 swagg_boi left
codesect` (Many of the changes I've ended up making to épée have been because I implemented something cool, and then realized I was reimplementing something Raku has built in and that I'd be better of using the real thing) 19:00
guifa That's one way of putting it. I'm still toying around with things, but the inability to forward reference without an avalanche of stubs has been the main stumbling block.
I mean, you could always use ::('Application::Container::RowD::One') and it would work anywhere, since it's doing it at a runtime. But that's also a lot of typing, so I figure doing a JS-esque "elementById" would be nice, just not requiring it to be unique and going up the chain as well. 19:02
19:02 swaggboi joined
codesect` This may be my own biases (current experience) talking, but my inclination would be to make everything a function. I.e., `button Seven { … }` desugaring to `sub Seven is button { … }` 19:03
and then you can use lexical lookup
19:03 rypervenche joined
codesect` (but maybe that doesn't work with GTK, idk) 19:03
guifa everything desugars in the background to pretty procedural native code calls, so there's lots of options 19:05
19:05 rypervenche left, rypervenche joined
guifa what would Seven.CALL-ME be though? 19:05
19:06 scriplit left 19:09 rypervenche left, rypervenche joined 19:10 rbt left, rbt joined
codesect` Hmm, well, again I'm coming at this from a web perspective, so my instinct is to say it'd be { '<button>7</button>' }, but I don't know whether that translates to a less declarative setting than HTML 19:10
19:13 rypervenche left 19:18 rypervenche joined 19:20 rypervenche left, rypervenche joined 19:28 ilogger2 left 19:29 ilogger2 joined 19:39 stoned75 left
GreaseMonkey remind me when i get home in, say, 8.4 hours, i think i'll have to have a go at parsing React-ish stuff for my first hopefully-small project 19:49
wait i meant 7.8ish, whatever
[Coke] Has anyone reviewed Text::CSV lately to see if there's speedups to be gained (or certain idioms to avoid)? I know it's the canary for core performance, but was just wondering. 19:59
MasterDuke i think lizmat has relatively recently, but i also know Tux is of the opinion that optimizing flow control (e.g., next, last) are where the next big gain will come from rakudo 20:03
[Coke] (y) 20:09
👍 , I mean. 20:10
(so many people at $DAYJOB use (y) because it was some old shorthand)
20:11 lichtkind left 20:12 m6502 joined 20:13 m6502 left
guifa was about to ask haha . o O ( I think it was MS Messenger's shortcut, they did things between parentheses iirc ) 20:13
pc.net/emoticons/shortcuts/live <--- yup
20:36 patrickb left 20:38 summer left 20:51 bd3i joined 20:52 tejr left, tejr joined 20:55 rbt left, rbt joined
japhb guifa: Worked on Google Hangouts, too. Or at least, Hangouts Classic, I dunno about Hangouts Chat. 21:05
I still do it habitually
21:09 hankache left 21:11 hankache joined 21:16 hankache left
codesect` guifa: ping / are you still around? 21:16
21:17 hankache joined 21:45 AlexDaniel joined 21:51 rbt left
juanfra the reddit sidebard still has links to freenode 21:54
21:56 rbt joined, committable6 left, bloatable6 left, reportable6 left, sourceable6 left, linkable6 left, quotable6 left, releasable6 left, coverable6 left, nativecallable6 left, notable6 left 21:57 notable6 joined, committable6 joined 21:58 nativecallable6 joined, sourceable6 joined 21:59 releasable6 joined, linkable6 joined, bloatable6 joined, coverable6 joined, quotable6 joined, reportable6 joined
codesect` juanfra: Thanks. Does anyone have a good idea for where that link should point now? There doesn't seem to be a webchat.libera.chat set up like there was for freenode 22:01
guifa codesect`: yup 22:02
22:02 greppable6 joined, squashable6 joined
MasterDuke kiwiirc.com/nextclient/ but you have to enter the information manually 22:03
codesect` guifa: here's a version of the same calculator, but with épée: gist.github.com/codesections/b4104...64add0743b
22:03 evalable6 joined
codesect` output: gist.github.com/codesections/b4104...64add0743b 22:03
guifa codesect`: yeah, a grid makes things much nicer (I haven't quite yet coded that one for GTK ha). How do you connect a click action to épee? 22:04
juanfra codesect`: you have the links to kiwiirc at the bottom of raku.org 22:05
codesect` ok, thanks, I'll update the subreddit 22:06
22:06 bisectable6 joined, statisfiable6 joined, bd3i left
japhb codesect`: I think both those gist links were the same (the code) 22:06
22:07 benchable6 joined 22:08 unicodable6 joined
codesect` (guifa: all of this is still preliminary, which is why I haven't released anything) you add a click event like (div :évent{:click("some js")}) or (div :évent{#`(some raku block)}) 22:08
guifa ah okay 22:09
codesect` with the string version being executed on the client, and the raku one on the server (not that that would really make sense for a click event in most setups)
fosstodon.b-cdn.net/media_attachme...ad620c.png 22:10
the second link was supposed to be ^^^ sory
japhb Looks like a pretty good conversion. :-) 22:11
codesect` Ok, I updated the reddit #raku link. I didn't change the link for the logs yet though, but don't see any reason not to 22:13
guifa codesect`: ah interesting. With GTK, everything is user-side. I figure not many people will want a GUI but even for small processing scripts it could be nice to have an easy interface for choosing files, displaying progress, etc. 22:15
22:16 benchable6 left, squashable6 left, shareable6 joined
codesect` yeah, that makes sense 22:16
22:16 rbt left, rbt joined 22:17 benchable6 joined, tejr left, squashable6 joined, ggoebel_ left 22:18 tellable6 joined 22:20 tejr joined
MasterDuke codesect`: AlexDaniel pointed out that colabti started logging libera today, so no need to change any links to the logs 22:20
codesect` oh, ok, sounds good 22:26
guifa codesect`: eventually I'd like to also create a hook for GtkBuilder XML files. THen folks can use something like Glade to build the UI 22:27
22:29 dogbert11 joined 22:31 dogbert12 joined, dogbert12 left 22:33 dogbert12 joined, dogbert17 left 22:34 dogbert11 left
lizmat [Coke] I could optimize Text::CSV significantly, by using nqp, but agreed with [Tux] only "standard" language should be used 22:39
maybe one day, I'll make a Text::CSV::Fast :-) 22:40
[Coke] Yes, I would agree it shouldn't be in NQP if we're looking to it for core speed indicators.
moon-child maybe there should be a portable implementation of nqp::* that can be used by non-rakudo implementations? 22:41
lizmat [Coke] in a little while, I'm going to see if Text::CSV compiles under RakuAST 22:42
probably not, as it requires Slang::Tuxic... but yeah.... 22:43
22:45 dogbert17 joined
[Coke] wonder if the slang is slowing it down. (I know we can't have the module without the slang) 22:47
22:49 dogbert12 left
lizmat no, the slang wouldn't be slowing it down 22:50
but support for slangs in RakuAST may be a long way off :-)
22:53 hankache left 23:01 bd3i joined 23:07 rbt left, rbt joined
lizmat meh: modules.raku.org still has a "Chat with us" link that isn't updated yet 23:12
23:17 rbt left, rbt joined 23:18 ecocode_ left