🦋 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:01 | |
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 | ||
gfldex++ | |||
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:19 | |
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
|