🦋 Welcome to the MAIN() IRC channel of the Raku Programming Language (raku.org). This channel is logged for the purpose of keeping a history about its development | evalbot usage: 'm: say 3;' or /msg camelia m: ... | Logs can be inspected at colabti.org/irclogger/irclogger_log/raku
Set by lizmat on 1 May 2021.
00:02 reportable6 left 00:04 reportable6 joined 00:05 Juerd joined 00:08 aborazmeh left 00:31 canbenshanlo joined
moon-child irc is older than unicode and utf-8 00:32
leont And http 00:33
moon-child how come there's no utility function to pipe a string to a command get its output and code? It's only like 4 lines, but would be really convenient to not have to write every time 00:34
canbenshanlo general noob question: why is EVAL in raku so much slower than in ruby, for example? seeing something like 35s vs 12ms for the same task in both languages while evaling thousands of individual expressions. Is raku fireing off a huge machinery behind the scenes for each and every EVAL? 00:35
tellable6 2021-05-15T02:50:47Z #raku <tonyo> canbenshanlo you're likely hitting an issuer with the scheduler filling the pool and blocking the main loop, look at $*SCHEDULER.max_threads and don't hit that limit, see if that fixes your issue.
canbenshanlo oh, good to know. $*SCHEDULER.max_threads is 64, way below my requirements. reimplemented it in ruby and their new ractors, no issue so far 00:36
leont In general, compilation is Raku's performance weak spot 00:40
And EVAL is obviously doing lots of compilation
ugexe RAKUDO_MAX_THREADS env var can change the max threads 00:41
japhb canbenshanlo: Rakudo uses a thread pool model. max_threads is how man *operating system* threads it will max out at (and that number is configurable), but it can have an arbitrary number of tasks waiting for those threads.
*how many
"its output and code"? You mean return code? 00:43
moon-child yeah
japhb Ah. If you want to have something super convenient, write your utility function, and throw it in a module. You can even have a personal module e.g. Moon-Child::Utils, and load that at the top of your programs. 00:44
raydiak raku has an extremely broad dynamic range, lots and lots of syntax. additionally, the syntax is extensible. because of these things, the parser has to be fairly hefty, and can make far fewer assumptions than most languages. on top of that, the raku parser is written in raku (vs ruby which is entirely implemented in C from what I understand). we usually get around the slowness by precompiling to bytecode, but of 00:45
moon-child one line is still more than zero! :)
raydiak course there is no persistent precomp cache for EVALd strings
b2gills The RakuAST should make it possible to make EVAL faster as it might not have to fully compile the code before running it 00:46
canbenshanlo thanks, everyone, for the explanations! will keep reading the weekly and hoping for more news on the perf front. 00:49
raydiak of course! I am curious, what is your use case for evaling thousands of expressions? other than as a synthetic benchmark, that sounds...concerning :) 00:54
canbenshanlo raydiak: "the syntax is extensible" -- how so? is that similar to common lisp's reader macros where i can overwrite the evaluation of tokens while compiling?
oh, i'm just doing advent of code in raku; my way of learning a new language
raydiak oh, cool
canbenshanlo input has a bunch of these expressions feeding a small register machine: "k inc 303 if k > -8" 00:56
a bit of gsub/trans and you are good to go to EVAL the whole damn thing
raydiak I'm not familiar enough with lisp to compare, but you can define your own terms and operators, for example. with a slang you can do more than that, I believe it hooks directly into the main grammar so you can add or redefine grammar rules 00:57
canbenshanlo ah, just found this, sounds interesting: perl6advent.wordpress.com/2013/12/...16-slangs/ 01:00
will read more into it later
thanks!
raydiak you're welcome :)
01:04 lucasb left 01:06 frost-lab joined
raydiak m: sub postfix:<!>(Int:D $n where * > 0) { [*] 1..$n }; say 4! # simple example of a user-defined factorial syntax, just for fun 01:08
camelia 24
01:10 |Sno| joined 01:11 [Sno] left
canbenshanlo yeah, familar with that, but way more intrigued about the slang grammer redefinitions. will get into it tomorrow when i have some downtime 01:23
01:24 kvw_5 joined 01:27 kvw_5_ left 01:33 ggoebel left
raydiak I mean it more as just one small example of extensibility in answer to your question about slowness. think about what that kind of thing requires in terms of parser complexity. much of the core syntax is implemented the same way. where a usual parser can just look for a static set of symbols in certain positions and infer a certain semanic, raku's parser has to do substantially more dynamic magic. it doesn't 01:35
know that syntax until after it parses and compiles the definition (which in this example is even in the same compilation unit as where it's being used)
raydiak looks back at his advent article and cringes 01:59
canbenshanlo while ruby has no syntax altering capabilities like that, it still has its fair share of dynamic magic. guess time will tell how people will wield all this additional hundred-year-language power that brings more complexity to the table. reader macros weren't really used all that much in the glory common lisp days
then again, racket peeps have the time of their lives with the lang support 02:00
raydiak
.oO( shoulda just called that article "how to abuse classes and alienate professionals" )
yeah honestly I don't know very much about ruby either, I can't give you a good comparison of their respective strengths and weaknesses 02:01
I recall ruby having perl-like sigils and everything is an object. that's most of what I know about it besides skimming the wikipedia article 02:03
so far, slangs haven't seen a lot of use that I'm aware of. most of modules.raku.org/search/?q=slang look like toys/experiments more than being meant for serious use. the Slang::SQL being one obvious exception. the potential is there to do some really cool stuff, though 02:09
canbenshanlo ruby has @class-instance, @@class-static, $global and &block sigils and such, but it's mainly plain old identifier. oh, and don't forget smart-matching. some of these ruby-to-raku translation basicially means adding a few raku sigils here and there and rename some methods. other times i'm struggling more when i'm seeing surprising console output and can't, for the love of me, identify the problem, because raku behaves "wierdly" 02:10
skimming over the slang-sql examples, that looks similar to what some racket peeps are cooking up with their custom language support. will get into that tomorrow, brain is fried today 02:14
raydiak I imagine translating between similar-looking languages with different semantics being rather confusing at times 02:15
canbenshanlo sure, in a major project perhaps, but i'm just toying around with small scripts, no problem here. and ruby is surprisingly perl-like in some aspects, easing the transition 02:17
02:18 rindolf joined
raydiak makes sense. I read somewhere that perl was one of the larger influences/inspirations of ruby 02:26
japhb moon-child: It's only one new line the very first time you use something in it. Then it becomes "free" to add to it, because it's just your personal util collection.
canbenshanlo and by "weirdly" i mean stuff like this, that catches me off-guard every now and then while translating a solution over to raku 02:33
ruby: a = (1..5).to_a; b = {}; b[a] = true; puts b; #=> {[1, 2, 3, 4, 5]=>true} 02:34
m: my @a = (1..5); my %b; %b{@a} = True; say %b
camelia {1 => True, 2 => (Any), 3 => (Any), 4 => (Any), 5 => (Any)}
raydiak ah...yes our hashes are keyed by strings by default 02:37
m: my @a = (1..5); my %b{Any}; %b{$@a} = True; say %b 02:38
camelia {[1 2 3 4 5] => True}
raydiak and the subscript is a list context, for slicing. so you have to itemize if you don't meant to taking a slice 02:39
02:39 simcop2387 joined
raydiak slicing is a really nice feature, though 02:40
m: my @a = (1..5); my %b; %b{@a} = "a"..*; say %b 02:41
camelia {1 => a, 2 => b, 3 => c, 4 => d, 5 => e}
guifa2 raydiak: indeed, slangs are going ot be very cool. I have a pretty crazy slang I've been working on, but I'm waiting until RakuAST to finish off my work because I don't want to have to duplicate a lot of stuff 02:42
raydiak really nice that is, except when that's not what you meant to do :)
guifa2 Anyone have any idea what "Frame has no lexical with name '$_'" might mean as a runtime error? 02:43
What triggers it is adding a method to a class via a trait 02:44
raydiak guifa2: I look forward to seeing this very cool thing. last I heard we were *hoping* rakuast might be merged Q4 this year 02:45
guifa2 raydiak: it's a binary and object (two separate slangs, really) regex
raydiak oh, neat. I can see that being useful in several places 02:46
can you pastebin your problem? I have no idea off the top of my head, but I'd poke at it if you have a small example of the failure
disclaimer: I'm being told it's almost dinner time 02:55
canbenshanlo raydiak: there's no sexy slicing like that in ruby, instead you would do the following to achieve the same: a = (1..5).to_a; b = {}; b.merge a.zip('a'..).to_h 02:57
alright, enough for today; bed time 02:58
thanks for your time!
03:05 canbenshanlo left 04:05 shareable6 left, reportable6 left, bloatable6 left, squashable6 left, releasable6 left, benchable6 left, linkable6 left, evalable6 left, committable6 left, nativecallable6 left, coverable6 left, tellable6 left, notable6 left, unicodable6 left, sourceable6 left, quotable6 left, greppable6 left, statisfiable6 left, bisectable6 left, nativecallable6 joined, sourceable6 joined, coverable6 joined 04:06 committable6 joined, notable6 joined, greppable6 joined, releasable6 joined, tellable6 joined, evalable6 joined, unicodable6 joined 04:07 bloatable6 joined, reportable6 joined, quotable6 joined, benchable6 joined, linkable6 joined 04:08 statisfiable6 joined, bisectable6 joined, shareable6 joined, squashable6 joined 04:37 solitario joined 05:37 statisfiable6 left, notable6 left, coverable6 left, greppable6 left, nativecallable6 left, bloatable6 left, shareable6 left, benchable6 left, releasable6 left, committable6 left, linkable6 left, unicodable6 left, sourceable6 left, bisectable6 left, quotable6 left, tellable6 left, evalable6 left, reportable6 left, squashable6 left 05:38 shareable6 joined, committable6 joined, evalable6 joined 05:39 unicodable6 joined, statisfiable6 joined, notable6 joined, nativecallable6 joined, releasable6 joined, linkable6 joined, greppable6 joined, quotable6 joined, tellable6 joined 05:40 bisectable6 joined, reportable6 joined, squashable6 joined, wamba joined, sourceable6 joined, bloatable6 joined, benchable6 joined, coverable6 joined 05:49 domidumont joined 05:58 aborazmeh joined 06:02 reportable6 left 06:04 reportable6 joined 06:12 ufobat__ joined 06:41 squashable6 left
tyil raydiak: re: Libera, the Perl mods are more politically involved in the move, so they're putting more hurry on it, however, there's no Matrix bridge (yet) for instance, which is something we probably want since some people in our community only use Matrix, and I don't want to shut them out over some petty staff politics 06:44
06:44 squashable6 joined 06:51 jmerelo joined 06:54 Sgeo left
tyil moon-child: a Proc contains both the output and exitcode as attributes, what more do you need? 06:56
moon-child my $x = run 'foo', :in, :out; $x.in.spurt: 'whatever', :close; ($x.out.slurp, $x.exitcode) 07:02
$(foo <<< 'whatever'); $?
I know which one I'd rather write
raydiak fair enough. not having used matrix personally, I had assumed that was a simple matter of switching some config on our end to point to libera instead of freenode. reading up on it now, I see that I was mistaken 07:03
tadzik it's a bit more involved since the config is on on our end ;) 07:04
tyil the 2nd one is also in a language made for exactly the purpose of running other programs 07:05
(also note that it's not portable across shells)
raydiak that's what I gathered from github.com/matrix-org/matrix-appse...ssues/1324 among other things I'm skimming. thanks for the clarification 07:06
tyil the Libera and Matrix folk are working on it, but there's no schedule yet since it's a little hectic there
raydiak I can only imagine 07:07
moon-child sure. It's not a big deal, I'm just saying it would be slightly convenient to have a builtin way of running programs that's not 4 times as verbose as the equivalent shell 07:08
tyil one of the goals of Raku was to no longer use "cryptic" variables like $?, which you can find in Perl 07:10
and as japhb said, you can make your own modules for these kinds of optimizations, which I think are quite rare to use in full-fledged programs 07:11
fwiw, you can even make it into a slang
moon-child ah, is that what $_ and $/ and $! are for? :)
tyil $/ is rarely used (I hope, at least, since you can use $<name> instead), $_ is a topic variable, which isn't needed as much either 07:12
I don't think I've used $! yet
you can nitpick all you want, ofcourse 07:13
but the fact stays that Raku is not a shell language, and trying to make it one will come with sacrifices elsewhere
you can obviously still make a module to tweak it in whatever way you need
07:26 brtastic joined 07:33 brtastic left 07:43 pecastro joined 07:50 ufobat__ left
raydiak I agree that we don't want shell syntax for it, but a convenience function in core doesn't seem like such a terrible idea. simply take the command and optional input string as arguments (maybe some other optional args borrowed from run, with sane defaults), and return an object with out and err as strings and the exit code. no pile of adverbs and spurting and slurping and multiple statements. it's an extremely 07:51
common use case that does feel more complicated than it ought to be
08:07 sena_kun left 08:10 [Coke]_ joined 08:11 sena_kun joined 08:13 [Coke] left 08:15 Ekho left 08:16 aborazmeh left 08:18 Ekho joined, ecocode left, ecocode joined 08:21 hankache joined 08:38 PotatoGim joined 08:40 mowcat joined 08:53 xinming_ left 08:57 Voldenet_ joined 08:58 Voldenet left 09:00 Garland_g[m] left 09:06 aborazmeh joined 09:09 wamba left 09:10 Voldenet_ is now known as Voldenet, Voldenet left, Voldenet joined 09:16 nige joined 09:24 wamba joined 09:25 nige left, nige joined 09:30 nige left, nige joined 09:31 mowcat left 09:48 wamba left, wamba joined 09:49 nige joined 09:50 nige left, nige joined 09:54 aborazmeh left 09:55 nige left, nige joined
El_Che "petty staff politics"? weird phrasing for the taking over of a network 10:08
10:15 ggoebel joined 10:23 nige left, handicraftsman joined, ggoebel left, nige left 10:24 handicraftsman left
Voldenet seems like petty staff politics tho freenode.net/news/freenode-is-foss 10:28
El_Che yeah, that's the guy who did the hostile takeover 10:32
10:33 ggoebel joined
Voldenet since I can't do anything, I'll just treat it as natural disaster 10:36
10:40 |Sno| left, hankache left, hankache joined 10:42 hankache left, hankache joined 10:46 hankache left
El_Che that's the thing. People moved to libra and oftc 10:50
10:59 |Sno| joined, hankache left 11:05 Bucciarati left 11:10 broquaint left 11:11 broquaint joined
nine raydiak: my personal take on this was like: use Native::Command; sub ls($dir?, :$l, :$help) is command { * }; ls('lib', :l).out.lines 11:15
And of course those command helpers could be put into modules and shared 11:16
11:18 broquain1 joined, broquain1 left 11:40 avar left 11:41 avar joined, avar left, avar joined, avar left 11:42 avar joined, avar left, avar joined, avar left 11:43 avar joined, avar left, avar joined 11:57 hankache joined 12:02 reportable6 left 12:04 reportable6 joined 12:25 jmerelo left, hankache left 12:59 asymptotically joined 13:06 |Sno| left 13:14 canbenshanlo joined
leont That is kind of cute, yet 13:30
*yes
13:58 realdonutking123 joined 14:00 realdonutking123 left 14:11 gugod joined 14:22 abraxxa left 14:27 domidumont left 14:29 domidumont joined
canbenshanlo what's the reason behind this not working the same as the following two? 14:36
m: .say for <abc def xy yz>.categorize(*.chars).max.value
camelia [abc def]
canbenshanlo m: <abc def xy yz>.categorize(*.chars).max.value.map(*.say)
camelia abc
def
canbenshanlo m: .say for <abc def xy yz>.categorize(*.chars).max.value.List 14:37
camelia abc
def
canbenshanlo why isn't for iterating over the individual array values when it does so with @foo?
14:41 thundergnat joined
thundergnat canbenshanlo: The first is returning a single item (an Array), the second explicitly iterates over the returned array and the third is returning an already flattened List. 14:42
m:.say for flat <abc def xy yz>.categorize(*.chars).max.value 14:43
evalable6 abc
def
thundergnat ^^^ if you flatten the Array it iterates over it
14:44 wamba left
canbenshanlo hm, so Arrays and @arr are different then. guess i have to go over the docs again. thanks! 14:45
14:46 frost-lab left
thundergnat You may also be getting confused by the single argument rule 14:46
m: my @foo = <a b c>; my @bar = <D E F>; .say for @foo; .say for @foo, @bar; 14:47
camelia a
b
c
[a b c]
[D E F]
14:48 lucasb joined
thundergnat When you feed a single collective argument, it treats it as a collection and iterates over it, but when you feed multiple collective arguments, it treats each as a single "element" unless explicitly flattened. 14:49
It's a little confusing but it allows for syntax that was heavily ingrained in the Perl installed base. 14:50
Without it, something like this wouldn't work as expected: 14:52
canbenshanlo erm, stupid questions: why is the above arrary (single item, as you said) not treated as a iterable then?
thundergnat m: my @foo = <a b c>; my @bar = @foo; .say for @bar;
camelia a
b
c
thundergnat m: my @foo = <a b c>; my @baz = <D E F>; my @bar = @foo, @baz; .say for @bar; 14:53
camelia [a b c]
[D E F]
14:54 |Sno| joined
canbenshanlo hm, guess i get it. still strange coming from ruby where the above "just works". thanks! 14:56
thundergnat In that above case, the .say method has explicit candidates for both scalar (single) values and for Arrays. categorize returns an array. (In this case it only holds one item)
Single argument rule is sometimes confusing, but it makes other things "just work" 14:57
Opps, cut my thought short. categorize returns an array of arrays 14:58
vrurg categorize returns a Hash. Not an array. 15:00
m: say <abc def xy yz>.categorize(*.chars)
camelia {2 => [xy yz], 3 => [abc def]}
vrurg Apparently, Hash and Array behave differently when iterated over. 15:01
lizmat Hash produces pairs when iterated over
vrurg canbenshanlo: when you get into such kind of situation, try unwinding the method call chain back up to the common point of two chains. And then introspect the data you get. .WHAT/.WHICH/etc. 15:02
canbenshanlo well, what's returned is an array 15:04
m: say <abc def xy yz>.categorize(*.chars).max.value.WHAT
camelia (Array)
canbenshanlo that's why i am confused
not the intermediate steps
vrurg m: say <abc def xy yz>.categorize(*.chars).max.value.raku 15:05
camelia $["abc", "def"]
thundergnat actually .max returns a pair whose value is an array
vrurg is absolutely correct and I was wrong (should have reviewed the docs before speaking) .categorize returns a hash 15:06
15:06 Sgeo joined
vrurg canbenshanlo: Also, notice the $ before [. It means you array is itemized. I.e. for considers it a single element. 15:07
say <abc def xy yz>.categorize(*.chars).max.value.VAR.^name
evalable6 Scalar
vrurg say <abc def xy yz>.categorize(*.chars).max.value<>.VAR.^name
evalable6 Array
vrurg canbenshanlo: See the differnce. And then:
m: .say for <abc def xy yz>.categorize(*.chars).max.value<> 15:08
camelia abc
def
vrurg Or, another way, though somewhat slower:
m: .say for <abc def xy yz>.categorize(*.chars).max.value.List
camelia abc
def
15:08 brtastic joined
vrurg is afk& 15:08
canbenshanlo yeah, that's what i gathered from the exchange with thundergnat. but good to know about this representation: $["abc", "def"] 15:11
thanks!
15:15 thundergnat left 15:42 nevore joined, frost joined
frost Is there a log for this channel now? 15:44
raydiak I haven't seen one yet; wouldn't be surprised if we waited until the move is official rather than logging both in parallel 15:52
nine: I think that's a really cool thing, though a bit sideways from what I was hoping for. having to predeclare a command or use a module kinda ignores the whole "there is no concise way in core to do this common thing" aspect, and overlooks the input part of moon-child's original point
my original suggestion forgot about passing args because it was late, but I was thinking something like command('cat', 'hello world').out or command('cat', '-n', :in<hello world>).out
note the .out is a string
ugexe i think something with potentially a lot of edge cases doesn't always make a great thing for a core 15:53
not to speak to this case specifically, but perl seems to have many ways of spawning a process each with their own warts 15:54
raydiak I could totally be oversimplifying things in my head. would you mind illustrating some failing edge cases in my proposal? 15:57
ugexe let me put it another way 15:58
why dont we have IO::Capture in the core?
which also solves this problem but just not having to use .out at all? 15:59
s/but/by/ 16:00
as far as edge cases i would initially explore aspects of a) it being based on proc::async and b) pipe buffers 16:01
well, buffers in general rather 16:02
personally a third way to spawn processes in the core is not of interest to me 16:04
raydiak io::capture::simple (I don't see an io::capture on modules.raku.org) doesn't seem to be documented. can you get the output and exit code from one calling statement? 16:05
ugexe what happens if you have to use two statements?
raydiak wrt piping, I'm not really trying to cover that, just provide a shorthand for the common use of "call a thing and get it's output but also be able to check the return code"
ugexe thats a rhetorical question btw, im just pointing out i dont find that a good argument 16:06
my $exitcode; my $output = Capure { $exitcode = run("ls").exitcode }; # it would look something like this i imagie 16:07
16:08 mowcat joined
ugexe dont let me stop you from exploring this though 16:09
andinus m: my $x=2; my $y=1; my $z = $y = $x + 9; say "x $x y $y z $z" 16:11
camelia x 2 y 11 z 11
andinus how does this work? 16:12
raydiak apparently there is some io::capture (not ::simple) that isn't listed on the modules website? anyway, I am seeing a lot of resistance to putting something like this in core, and am already running a bit late, so I'm going to let this boulder roll back down the hill and leave it there for now :) could see it becoming a small easy module though
tobs assignment is right-associative. It is executed as $z = ($y = $x + 9). The assignment to $y modifies $y and returns the assigned value. 16:13
ugexe sorry its been so long since ive used it but it was IO::Capture or IO::Capture::something originally by sergot
andinus m: (my $y = 1)
camelia ( no output )
andinus then shouldn't this throw an error? because assignment returns the assigned value? 16:14
raydiak I can't find it, will look more later. really do have to run for now, but I appreciate your input!
tobs you just ignore the value, that's not an error
andinus m: my $x = 1; $x;
camelia WARNINGS for <tmp>:
Useless use of $x in sink context (line 1)
andinus ^ this eror, useless use ?
tobs that's a warning, not an error, but presumably declaring the variable with `my` prevents it 16:15
m: say my $y = 1 # it still returns the value, though 16:16
camelia 1
16:20 aluaces left
ugexe github.com/JJ/raku-io-capture-simp...t/stdout.t 16:20
andinus i see
16:32 DarthGandalf left, DarthGandalf joined 16:37 DarthGandalf left, Some-body_ joined, domidumont left 16:39 Some-body_ is now known as DarthGandalf 16:46 nevore left, frost left 17:01 stigo left 17:02 stigo joined 17:05 perigrin left, perigrin joined 17:08 cog left 17:09 cog joined 17:11 [Coke] joined
nine raydiak: about RSC discussions vs. the minutes I can honestly say that you're not missing out on anything. Of course the minutes don't cover every spoken word, but those words are simply highly redundant. 17:14
It's a bunch of people discussing the matters stated in the minutes. So most of it is just people trying to find the right words to get the intended meaning across. And we catch the meaning into the minutes 17:15
17:16 aluaces joined
lizmat frost: I'm keeoing a private log that will make it somewhere eventually 17:16
*keeping
17:19 ggoebel left 17:20 aborazmeh joined, [Coke]_ left
japhb raydiak: Not so much a deep resistance to core, but more wanting to vet that it's really the use case we want to aim for, and broadly applicable. Just last week, I wanted something similar, but then I realized I also wanted to display the command I was about to run (for debugging purposes), and I wanted to exit the main program with errors if I got the wrong exit code, so it turned into needing a bespoke 17:22
helper function anyway.
17:38 timlegge_ left 17:41 aborazmeh left 18:02 reportable6 left, reportable6 joined 18:03 stigo left, stigo joined 18:06 brass left 18:08 brass joined 18:16 Altreus left 18:21 hobbs left 18:26 Altreus joined 18:31 brtastic left 18:37 Black_Ribbon joined 18:38 aborazmeh joined
Altreus kawaii_: :v 18:42
why your nick broke
kawaii_ got sniped by squatter
sent mst a message about it earlier
Altreus squatted 18:44
you should get a real nick like me
18:51 MasterDuke joined 18:55 sftp joined
[Coke] Or you can adopt the []s, as I was forced to 18:56
Altreus if you use {} we can make an embrace joke 19:11
it would put you in a whole different bracket
kawaii_ absolute heresy 19:12
19:14 linkable6 left, linkable6 joined 19:15 linkable6 left, tellable6 left, evalable6 left, shareable6 left 19:16 tellable6 joined, evalable6 joined 19:17 linkable6 joined 19:18 shareable6 joined, linkable6 left 19:21 linkable6 joined 19:25 mowcat left 19:27 shareable6 left, nativecallable6 left, evalable6 left, linkable6 left, greppable6 left, bisectable6 left, unicodable6 left, reportable6 left, squashable6 left, benchable6 left, statisfiable6 left, committable6 left, sourceable6 left, bloatable6 left, releasable6 left, coverable6 left, quotable6 left, tellable6 left, notable6 left 19:30 [Coke] is now known as {Coke}, b4283 left, {Coke} is now known as [Coke] 19:41 Altreus left
codesect` . 19:47
19:47 nativecallable6 joined 19:48 bisectable6 joined, codesect` left, notable6 joined, sourceable6 joined, releasable6 joined, codesections joined 19:49 squashable6 joined, Altreus_ joined, coverable6 joined, evalable6 joined, tellable6 joined, greppable6 joined, committable6 joined, shareable6 joined, quotable6 joined 19:50 reportable6 joined, b4283 joined, benchable6 joined, bloatable6 joined, unicodable6 joined, linkable6 joined, statisfiable6 joined 20:00 Ekho- joined
raydiak nine: I'll keep that in mind, though I still don't see a reason not to make the logs available. it's literally just a minute or two of effort for someone to copy their log and toss it up on github (stipulating the hopefully very rare need to hand-redact a sensitive issue). I still feel that this is a distinct lack of transparency no matter how we spin it. I doubt it's any more confused than the rest of our more 20:01
public discussions; why is this regarded so differently?
20:01 ltl_ joined
ltl_ /))))))))) 20:01
//) __ __\
C==/_o|^|o_\ /!\ IRC.LIBERA.CHAT IS THE BEST IRC NETWORK /!\
| _\ ) /!\ THE JEWS HAVE TAKEN OVER FREENODE, CHATS HAVE MOVED TO IRC.LIBERA.CHAT /!\
\ .--- / /!\ THIS CHANNEL HAS MOVED TO IRC.LIBERA.CHAT #LIBERIA /!\
_/`-. __.'_ /!\ JOIN #LIBERIA TODAY. THIS CHANNEL HAS MOVED TO IRC.LIBERA.CHAT #LIBERIA /!\
/` \`'-,._./|\
/ \ /`\_/\/ \
20:01 ltl_ left
kybr ummm. 20:02
sienet_ja_LSD[m] oh noes
Grinnz just spammers trying to piss off both networks, carry on
kybr is that what they call a false flag operation?
sienet_ja_LSD[m] you can expect that spam action in the new network 20:03
20:03 ecocode_ joined
El_Che the dropped the child pornography part it seems 20:03
ugexe ya know they could have went to the effort to say this channel moved to the same channel name its in 20:04
kybr yes. crumby execution
was the slow posting to get past some sort of anti-pasting filter? 20:05
raydiak japhb: I think it is quite broadly applicable. you wanted to do something before and after the sub I'm suggesting, sure. but with it, that all would have collapsed to three lines (this one sub nicely nestled between a dd and a die if). I don't see how wanting to do stuff *with* the input and output before and after makes it any less applicable
in other words I remain quite convinced that this would be a good idea, but I'm happy to move on with life regardless, as nobody besides moon-child and myself seems to see it that way 20:06
Grinnz rate limiting to avoid being klined automatically, probably 20:07
20:07 ecocode left, Ekho left, ecocode_ is now known as ecocode 20:13 MasterDuke left, MasterDuke joined
raydiak I mean the only thing anybody could tell me it doesn't address far more concisely than we can now, is pipes. if you want to be chaining pipes or doing anything more complex than it's intended for, *then* you use the long form we already have. if someone can poke a bunch of holes in the idea and demonstrate why it doesn't handle a majority of *common* uses, then I'd think it was a bad idea. but I haven't seen 20:14
that yet, so I am not persuaded
20:16 demsh9 joined
demsh9 /))))))))) 20:16
//) __ __\
C==/_o|^|o_\ /!\ IRC.LIBERA.CHAT IS THE BEST IRC NETWORK /!\
| _\ ) /!\ THE JEWS HAVE TAKEN OVER FREENODE, CHATS HAVE MOVED TO IRC.LIBERA.CHAT /!\
\ .--- / /!\ THIS CHANNEL HAS MOVED TO IRC.LIBERA.CHAT #LIBERIA /!\
_/`-. __.'_ /!\ JOIN #LIBERIA TODAY. THIS CHANNEL HAS MOVED TO IRC.LIBERA.CHAT #LIBERIA /!\
/` \`'-,._./|\
/ \ /`\_/\/ \
sienet_ja_LSD[m] :< 20:17
20:17 demsh9 left, canbenshanlo left 20:19 PotatoGim left 20:22 Ekho- is now known as Ekho
[Coke] if I want to make a "use Foo::Bar"; statement work, what's the minimum code I can use (in the same file) to stub that? 20:23
ugexe not quite following 20:24
[Coke] m: use Foo::Bar;
camelia ===SORRY!=== Error while compiling <tmp>
Could not find Foo::Bar in:
inst#/home/camelia/.raku
inst#/home/camelia/rakudo-m-inst-1/share/perl6/site
inst#/home/camelia/rakudo-m-inst-1/share/perl6/vendor
inst#/home/camelia/…
[Coke] Just trying to avoid that error in some sample code in the docs. 20:25
20:25 PotatoGim joined
[Coke] m: module Foo::Bar {...}; use Foo::Bar; 20:25
camelia ===SORRY!=== Error while compiling <tmp>
Could not find Foo::Bar in:
inst#/home/camelia/.raku
inst#/home/camelia/rakudo-m-inst-1/share/perl6/site
inst#/home/camelia/rakudo-m-inst-1/share/perl6/vendor
inst#/home/camelia/…
[Coke] Not sure there's a way to stub it out in the same file or if this example is doomed to not be compilable. 20:26
docs have a sneaky way to add code to the example that isn't visible to the doc renderer, so you can pre-declare a varible if you need to, if the variable declaration isn't key to the thing you're doc'ing.
Do we have a libera contact regarding this sort of thing, or do we have to self-police? 20:28
20:28 Altreus_ left
[Coke] oops. I see I meant freenode. (ETOOMANYIRCS) 20:28
raydiak m: module Foo::Bar {}; use Foo::Bar; # like this?
camelia ===SORRY!=== Error while compiling <tmp>
Could not find Foo::Bar in:
inst#/home/camelia/.raku
inst#/home/camelia/rakudo-m-inst-1/share/perl6/site
inst#/home/camelia/rakudo-m-inst-1/share/perl6/vendor
inst#/home/camelia/…
20:28 Altreus joined
raydiak huh 20:28
20:28 El_Che__ joined
ugexe you want a `use Foo::Bar;` to not try to load Foo::Bar, but use some mocked package? 20:28
20:28 El_Che left
leont The entire freenode staff resigned, so probably not 20:29
[Coke] what sad, pathetic people.
... bad timing, I mean the spammers, not the staff!
Grinnz :)
leont I bet there's some replacement, but I can't imagine them being well-staffed and well-trained enough to handle this 20:30
tbrowder agree, 'bout the spammers
probably still in parents' basement
raydiak how is this handled when the offender is switching nicks, IPs, and providers? 20:32
20:33 brtastic joined
ugexe i dont think there is an easy way to do that. off the top of my head you either need to create a CUR to handle ignoring a specific module (kinda like CompUnit::Repository::Mask) or to augment CURFS/CURI method need to ignore a specific module 20:33
20:35 brtastic left 20:37 abraxxa-home joined
[Coke] I'm all for leaving IRC and using a different chat system, btw. 20:38
Easier to just not test this snippet for now. 20:39
ugexe++
20:40 sgo joined
ugexe maybe just have something comment out lines with use statements before running the code 20:40
[Coke] no, still want to test use in general.
20:41 stigo left
[Coke] it's fine, we can skip the occasional snippet and not test it. 20:41
20:42 abraxxa-home left 20:43 abraxxa-home joined 20:44 dgonyeo4 joined
dgonyeo4 /))))))))) 20:44
//) __ __\
C==/_o|^|o_\ /!\ IRC.LIBERA.CHAT IS THE BEST IRC NETWORK /!\
| _\ ) /!\ THE JEWS HAVE TAKEN OVER FREENODE, CHATS HAVE MOVED TO IRC.LIBERA.CHAT /!\
\ .--- / /!\ THIS CHANNEL HAS MOVED TO IRC.LIBERA.CHAT #LIBERIA /!\
_/`-. __.'_ /!\ JOIN #LIBERIA TODAY. THIS CHANNEL HAS MOVED TO IRC.LIBERA.CHAT #LIBERIA /!\
/` \`'-,._./|\
/ \ /`\_/\/ \
20:44 dgonyeo4 left
Geth doc: 574dc4a0ec | Coke++ | xt/pws/words.pws
new irc network name
20:45
doc: de51563d16 | Coke++ | doc/Language/operators.pod6
can't test this snippet
linkable6 Link: docs.raku.org/language/operators
20:48 akraut25 joined
akraut25 /))))))))) 20:48
//) __ __\
C==/_o|^|o_\ /!\ IRC.LIBERA.CHAT IS THE BEST IRC NETWORK /!\
| _\ ) /!\ THE JEWS HAVE TAKEN OVER FREENODE, CHATS HAVE MOVED TO IRC.LIBERA.CHAT /!\
\ .--- / /!\ THIS CHANNEL HAS MOVED TO IRC.LIBERA.CHAT #LIBERIA /!\
_/`-. __.'_ /!\ JOIN #LIBERIA TODAY. THIS CHANNEL HAS MOVED TO IRC.LIBERA.CHAT #LIBERIA /!\
/` \`'-,._./|\
20:48 akraut25 left
[Coke] :( 20:52
20:52 [Coke] left
[Coke] ok, freenode chat feels overrun 20:56
20:58 Platypuschan5 joined
Platypuschan5 /!\ THIS CHANNEL HAS MOVED TO IRC.LIBERA.CHAT #LIBERIA /!\ 20:58
/!\ THE JEWS HAVE TAKEN OVER FREENODE, CHATS HAVE MOVED TO IRC.LIBERA.CHAT /!\
/!\ JOIN #LIBERIA TODAY. THIS CHANNEL HAS MOVED TO IRC.LIBERA.CHAT #LIBERIA /!\
20:58 Platypuschan5 left
[Coke] IRC-- 20:59
raydiak can't even spell "libera"... 21:00
Altreus it is. I left.
I now only have 6 windows, and one of them is the server window
21:11 abraxxa-home left 21:12 abraxxa-home joined 21:13 b2gills left 21:15 b2gills joined, asymptotically left, asymptotically joined 21:20 gabiruh left, gabiruh joined 21:22 eb0t joined
eb0t /!\ THIS CHANNEL HAS MOVED TO IRC.LIBERA.CHAT #LIBERIA /!\ 21:22
/!\ THE JEWS HAVE TAKEN OVER FREENODE, CHATS HAVE MOVED TO IRC.LIBERA.CHAT /!\
/!\ JOIN #LIBERIA TODAY. THIS CHANNEL HAS MOVED TO IRC.LIBERA.CHAT #LIBERIA /!\
THIS OFFICIALLY ENDORSED MESSAGE WAS BROUGHT TO YOU BY LIBERA.CHAT STAFF 21:23
21:23 eb0t left 21:24 aborazmeh left 21:27 leont left 21:33 asymptotically left 21:35 xelxebar left, xelxebar joined 21:36 Hien12 joined
Hien12 /!\ THIS CHANNEL HAS MOVED TO IRC.LIBERA.CHAT #LIBERIA /!\ 21:36
/!\ THE JEWS HAVE TAKEN OVER FREENODE, CHATS HAVE MOVED TO IRC.LIBERA.CHAT /!\
/!\ JOIN #LIBERIA TODAY. THIS CHANNEL HAS MOVED TO IRC.LIBERA.CHAT #LIBERIA /!\
THIS OFFICIALLY ENDORSED MESSAGE WAS BROUGHT TO YOU BY LIBERA.CHAT STAFF
21:36 aborazmeh joined, Hien12 left 21:42 likivik-M16 joined
likivik-M16 /!\ THIS CHANNEL HAS MOVED TO IRC.LIBERA.CHAT #LIBERIA /!\ 21:42
/!\ THE JEWS HAVE TAKEN OVER FREENODE, CHATS HAVE MOVED TO IRC.LIBERA.CHAT /!\
/!\ JOIN #LIBERIA TODAY. THIS CHANNEL HAS MOVED TO IRC.LIBERA.CHAT #LIBERIA /!\
THIS OFFICIALLY ENDORSED MESSAGE WAS BROUGHT TO YOU BY LIBERA.CHAT STAFF
21:42 likivik-M16 left
Nasrudin I'd like to take this time to mention matrix.org :) 21:43
21:52 zostay left 21:53 spycrab0 left, kawaii_ left, lucasb left, wamba joined 21:54 kawaii left 21:55 peteretep left 21:57 Grinnz left 21:58 AlexDaniel joined 21:59 kawaii joined, kawaii_ joined, lucasb joined, zostay joined, spycrab0 joined, Grinnz joined, peteretep joined 22:00 Nasrudin left 22:02 ggoebel joined
AlexDaniel` hehe :) 22:04
Dave: not that it matters, but I do agree (right, speaking from Matrix right now), but I don't know how well matrix.org servers themselves can handle 22:06
in the past they used to be slow
like, really slow. Type your message, wait a few seconds before others see it
freenode bridge is through the matrix.org servers too, so oops… 22:07
22:07 GNU\colossus20 joined
GNU\colossus20 /!\ THIS CHANNEL HAS MOVED TO IRC.LIBERA.CHAT #LIBERIA /!\ 22:07
/!\ THE JEWS HAVE TAKEN OVER FREENODE, CHATS HAVE MOVED TO IRC.LIBERA.CHAT /!\
/!\ JOIN #LIBERIA TODAY. THIS CHANNEL HAS MOVED TO IRC.LIBERA.CHAT #LIBERIA /!\
THIS OFFICIALLY ENDORSED MESSAGE WAS BROUGHT TO YOU BY LIBERA.CHAT STAFF
22:07 GNU\colossus20 left
El_Che spammers are annouing and so obviously false :) 22:07
22:08 ChanServ sets mode: +o AlexDaniel
AlexDaniel OK let's see if this time I'll be a bit quicker… 22:08
macro ready 22:09
22:17 asok joined, asok left 22:18 Pyrus20 joined
Pyrus20 /!\ THIS CHANNEL HAS MOVED TO IRC.LIBERA.CHAT #LIBERIA /!\ 22:18
/!\ THE JEWS HAVE TAKEN OVER FREENODE, CHATS HAVE MOVED TO IRC.LIBERA.CHAT /!\
/!\ JOIN #LIBERIA TODAY. THIS CHANNEL HAS MOVED TO IRC.LIBERA.CHAT #LIBERIA /!\
THIS OFFICIALLY ENDORSED MESSAGE WAS BROUGHT TO YOU BY LIBERA.CHAT STAFF
22:18 Pyrus20 left 22:19 aborazmeh left 22:25 wamba left 22:34 abhixec joined
abhixec /!\ THIS CHANNEL HAS MOVED TO IRC.LIBERA.CHAT #LIBERIA /!\ 22:34
22:34 abhixec was kicked by AlexDaniel (Kicked by AlexDaniel))
AlexDaniel hmm 22:34
ok maybe it's time to bring back the bot 22:35
22:40 HarmtH left 22:55 maedox18 joined
maedox18 /!\ THIS CHANNEL HAS MOVED TO IRC.LIBERA.CHAT #LIBERIA /!\ 22:55
22:55 maedox18 was kicked by AlexDaniel (Kicked by AlexDaniel))
sienet_ja_LSD[m] yes 23:03
AlexDaniel` haa, more matrix users 🤗
sienet_ja_LSD[m] I was kind of resisting at first but now I see its point 23:04
AlexDaniel` I've been using it as my main means of communication for years now
at first it was absolutely horrible 🤐
sienet_ja_LSD[m] hehe
AlexDaniel` nowadays it's absolutely alright 23:05
I don't do group calls so can't comment on that
1-to-1 calls are fine when my own turnserver is not acting weird… 23:06
oh, and yeah, I do run my own homeserver, and that is probably part of my positive experience
sienet_ja_LSD[m] yea setting up a server of my own would be something to look at
23:07 vrurg joined
AlexDaniel` this year I tried to get someone to try matrix… they made an account on matrix.org (which was easy), and then matrix.org immediately had issues 23:08
don't know if it was planned maintenance or what, but we couldn't message each other for a few minutes
🤦‍♂️
sienet_ja_LSD[m] aye seems like it's been growing a lot
23:09 blueness6 joined
blueness6 /!\ JOIN #LIBERIA TODAY. THIS CHANNEL HAS MOVED TO IRC.LIBERA.CHAT #LIBERIA /!\ 23:09
THIS OFFICIALLY ENDORSED MESSAGE WAS BROUGHT TO YOU BY LIBERA.CHAT STAFF
/!\ THIS CHANNEL HAS MOVED TO IRC.LIBERA.CHAT #LIBERIA /!\