🦋 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: ... | Log inspection is getting closer to beta. If you're a beginner, you can also check out the #raku-beginner channel!
Set by lizmat on 25 August 2021.
00:07 reportable6 left 00:09 reportable6 joined
ugexe would make a good default linter rule 00:12
Nemokosch "don't use junctions" xD 00:15
also, I think this whole grammar (in the natural linguistics sense) trickery is unproductive because it's naturally (haha, no pun) informal 00:16
when I look at any(0,4) != 0, I definitely don't even know instantly what I should expect 00:17
however, to the counterpart all(0,4) != 0, I instantly know what I expect: I expect False
the same thing that makes any(0,4) != 0 False, makes all(0,4) != 0 True, they aren't connected by natural language use but the de Morgan equivalence 00:18
I don't want to sound too egoistic but to be honest, I feel I could make at least 5 completely different points against the current "specced" behavior 00:23
from interpreting != x as "different from x" and drawing the comparison of <= and > to == and != to speaking up against designing a supposedly open and inclusive language with very specifically anglo-centric mindset 00:24
Sometimes I feel Raku could be the most elegant language that can possibly fit into the mainstream - and there are some random design decisions that just don't belong to it, as if some intruder came and sabotaged 00:26
leont Frankly I consider combining negated operators and junctions a code smell. While I do think the current behavior is the better one, both options are problematic 01:05
Just use none instead of any and all ambiguity disappears
01:09 evalable6 left, linkable6 left 01:11 evalable6 joined 01:45 bd3i left, bd3i joined 02:09 linkable6 joined 02:14 frost joined 02:18 frost left 02:28 vrurg left 02:58 eseyman left 03:00 eseyman joined 03:57 frost joined 04:24 euandreh left
Voldenet junctions are cool, but `(0,4).grep(* != 0).Bool` is way more obvious 04:25
or ` (0,4).grep(* != 0).so` 04:26
04:26 euandreh joined 05:05 childlikempress joined 05:06 moon-child left 05:19 childlikempress is now known as moon-child 05:24 gabiruh_ joined 05:25 gabiruh left 05:34 mexen joined 05:48 squashable6 left 06:07 reportable6 left 06:09 reportable6 joined 06:22 squashable6 joined 06:55 discord-raku-bot left, discord-raku-bot joined 07:17 abraxxa joined 07:19 abraxxa1 joined 07:21 abraxxa left 07:32 nebuchadnezzar joined 07:44 floppy_disk joined 08:05 jjido joined 08:11 Sgeo left
Nemokosch Junctions exist to allow auto-threading, though 08:16
So not only are they more expressive, they can be more performant
leont: the question still arises why you see != as a negated operator and <= not a negated operator 08:18
Especially talking about numbers. It's a mere technicality whether this operator is like "not equal" or like "either less or more" 08:19
I even tried the Pascal-ish <> in case that exists as a proper operator - of course it doesn't 08:20
Also, I would like to hear why it would be problematic to let != act upon junction values directly in this case. What would be semantically unclear? 08:22
moon-child != is an alias for !==. x !== y is !(x == y). And ! collapses junctions 08:23
Nemokosch Yes, so much we figured several times 08:27
moon-child That is why the current behaviour is considered more consistent than the alternative 08:28
it is acknowledged that both behaviours lead to inconsistencies
Nemokosch This behavior can be altered, though
moon-child it can. The question is whether new behaviour would be more consistent. I posit that it would not 08:29
Nemokosch Neither does != have to be an alias for !==, nor does the ! Meta-operator go outside of the junction 08:30
I would like to know why either of these solutions would be less consistent
When they would give a semantically valid result instead of a useless one 08:31
moon-child != as different from !== I do not like. They look too similar. What I think would make the most sense is that regular ! should not collapse junctions; e.g. !any(True, False) should be any(False, True); and there should be a single designated junction-collapser 08:33
Nemokosch I think outsiders would expect != to be a proper operator - in fact, they will rarely use the negation meta-operator. 08:37
Putting that aside, !(blah == foo) could still be understood on distinct values of a junction and frankly this "over-lifting" seems to be the least defensible
On a different note: I think the most knowledgeable part of the community is too "satisfied" (perhaps this isn't the best word) with knowing how something works and why, while paying little to no attention to the abstractions and reasonings supposed users come with. 08:43
moon-child fwiw I also think != is a serious problem 08:44
but again: I don't think a solution has yet been proposed which effects more good than ill
Nemokosch An example. Of course I'm happy to know why (@a, @b) = (@b, @a) works the way it does - but the thing is, that knowledge doesn't stop me from thinking it's a massive design flaw and in my mind it just _doesn't belong to Raku_ 08:49
08:50 jjido left 08:54 Darkcoal joined 09:12 dakkar joined 09:47 Darkcoal left 09:48 Darkcoal joined 09:55 Darkcoal left 09:57 Darkcoal joined
Geth docker: sorairolake++ created pull request #48:
Update base images
10:36 Xliff left
floppy_disk how do you properly do a test run of a module/project? 10:49
lizmat personally, I let App::Mi6 set up things for me, and then run 'mi6 test' :-) 10:53
gfldex `zef test .` works too 10:54
lizmat there's also "zef test" in a properly set up module distribution
El_Che hi lizmat
gfldex, floppy_disk
lizmat El_Che o/
gfldex i'm oldschool and use make and a fancy script: gfldex.wordpress.com/2020/08/01/dr...placement/ 10:55
11:04 jjido joined
floppy_disk thanks a lot 11:09
11:09 floppy_disk left 11:33 dogbert17 joined 11:38 TempIRCLogger left, TempIRCLogger joined 11:42 TempIRCLogger left 11:43 TempIRCLogger joined 11:47 razetime joined 11:48 Geth left 11:49 Geth joined 11:52 TempIRCLogger left, TempIRCLogger joined, TempIRCLogger left 11:53 TempIRCLogger joined 12:07 reportable6 left 12:09 reportable6 joined 13:03 vrurg joined 13:06 vrurg left 13:08 vrurg joined 13:42 frost left 13:47 jjido left 13:51 Sgeo joined 14:20 dogbert17 left 14:21 dogbert17 joined 14:54 discord-raku-bot left 14:55 discord-raku-bot joined
lizmat clickbaits rakudoweekly.blog/2022/03/14/2022-011-tau-2/ 15:04
[Coke] .seen ryn1x 15:22
tellable6 [Coke], I saw ryn1x 2019-07-06T06:48:04Z in #perl6: <ryn1x> huh... not only do you need to add the & when calling the sub with the if statement modifier, but you also have to add the parens.... without the parens there is no error, but the sub does not do anything....
[Coke] I like Terminal::Spinners, but would like a way to pin it to the bottom of the output window while other output scrolls past (or something similar) 15:34
15:35 jjido joined
ugexe i wrote a blog post explaining how to do that long ago -- deathbyperl6.com/create-a-perl6-te...gress-bar/ -- it probably doesn't work anymore! lol 15:42
[Coke] ugexe++ 15:43
15:47 jjido left
[Coke] wow, lifted your script there: it ran once, and now it keeps dying with a "no exception handler located for warn" on something in core.c :) 15:50
ugexe the code in github.com/ugexe/zef/blob/7a431869...m6#L86-L97 might still work 15:52
(not just the highlighted code, but that entire module)
[Coke] to be clear, no longer at zef master, right? 15:57
(can't use use your hidden module) 15:58
ugexe right 15:59
gist.github.com/ugexe/b9ff851d15f4...f9012c6de3 16:00
that is a slightly different variant i found. it worked twice in a row
16:47 linkable6 left, evalable6 left 16:48 evalable6 joined 16:49 discord-raku-bot left, discord-raku-bot joined 17:01 razetime left 17:15 abraxxa1 left 17:16 abraxxa joined 17:29 mexen left 17:41 djerius left 17:43 djerius joined, dakkar left 17:48 linkable6 joined 17:58 Nick53 joined
Nick53 hi 17:58
18:00 Nick53 left 18:07 reportable6 left 18:10 reportable6 joined 19:01 gcd joined 19:04 gcd left 19:35 jjido joined 19:42 Darkcoal left
[Coke] ugexe: ugh. I made a stripped down version of that that just does a very simple class replacement... bitten by the bug that \r doesn't work on windows. 19:52
19:53 p6steve left 20:00 jrjsmrtn_ left
ugexe yeah thats probably half the reason i removed it from zef 20:02
20:02 jrjsmrtn joined 20:03 morte_ joined 20:12 abraxxa left
Geth App-Rakubrew: 81d9950637 | (Patrick Böker)++ | release-stuff/README.md
Add upload info to release guide
20:21 jrjsmrtn left
[Coke] I found something that makes me thing something more complicated with \b might work. 20:22
20:25 jrjsmrtn joined
[Coke] checks his spam folder and finds a lot of cpan phishing sends. 20:29
ugexe well yeah \b works 20:31
thats what the comments in that code say
but that is way slower than \r
20:33 jrjsmrtn left
ugexe ah sorry, the zef example uses \b but my second example doesnt 20:36
20:38 jrjsmrtn joined
japhb Could also use ANSI/VT sequences to move around ... 21:22
(Stuff like "go to start of line" and "delete rest of line" are primitives)
21:35 p6steve joined 21:39 elves-upstate joined 21:40 elves-upstate left 22:36 djerius left 22:39 djerius joined 22:45 jjido left 23:45 benchable6 left, squashable6 left, unicodable6 left, committable6 left, bloatable6 left, tellable6 left, sourceable6 left, bisectable6 left, linkable6 left, reportable6 left, evalable6 left, coverable6 left, nativecallable6 left, statisfiable6 left, greppable6 left, notable6 left, quotable6 left, shareable6 left, releasable6 left 23:47 benchable6 joined, unicodable6 joined, evalable6 joined, notable6 joined, bloatable6 joined 23:48 reportable6 joined, squashable6 joined, tellable6 joined, quotable6 joined 23:49 linkable6 joined 23:54 morte_ left