🦋 Welcome to the IRC channel of the core developers of the Raku Programming Language (raku.org #rakulang). This channel is logged for the purpose of history keeping about its development | evalbot usage: 'm: say 3;' or /msg camelia m: ... | Logs available at irclogs.raku.org/raku-dev/live.html | For MoarVM see #moarvm Set by lizmat on 8 June 2022. |
|||
00:00
reportable6 left
00:01
reportable6 joined
|
|||
leont | I spent a bunch of time on version ranges in Perl land recently, and took the liberty to port that to Raku as an alternative to #5310 | 00:27 | |
01:30
nine_ left
01:32
nine joined
06:00
reportable6 left
06:01
reportable6 joined
06:43
kjp left
06:45
kjp joined
06:55
RakuIRCLogger__ joined
06:56
Geth__ joined,
lizmat_ joined
06:57
RakuIRCLogger left,
Geth left
06:58
lizmat left
07:00
Geth__ left,
Geth joined
07:04
Geth left
07:05
Geth joined
07:32
sena_kun joined
08:02
RakuIRCLogger__ left,
RakuIRCLogger joined
|
|||
nemokosch | do you think it would be reasonably doable to eliminate the special behavior of "thunky" operators, going down the RakuAST route? | 09:41 | |
10:46
bloatable6 left,
bisectable6 left,
reportable6 left,
greppable6 left,
shareable6 left,
benchable6 left,
evalable6 left,
tellable6 left,
sourceable6 left,
unicodable6 left,
releasable6 left,
coverable6 left,
statisfiable6 left
10:47
bisectable6 joined,
statisfiable6 joined,
shareable6 joined,
unicodable6 joined,
reportable6 joined
10:48
coverable6 joined,
bloatable6 joined,
releasable6 joined,
tellable6 joined,
evalable6 joined
10:49
sourceable6 joined,
benchable6 joined,
greppable6 joined
|
|||
leont | Except it turns out Version objects are already sometimes not versions but version patterns? (but they still sort to not break it completely?) I don't understand where hacks like this keep coming from; it would be like saying "Nums can now also be complex values" and expect that to be fine. | 11:26 | |
11:45
sivoais_ left
12:00
reportable6 left,
reportable6 joined
12:09
sivoais joined
|
|||
vrurg | leont: I've probably missed the reset of the discussion. What worries you? | 13:28 | |
leont | A version object is not necessary a version. E.g. v1.* is not a version by any reasonable definition; you can't have a package whose version is v1.* | 13:32 | |
vrurg | This is clear, but it feels like there is context I don't know about. | 13:33 | |
leont | It's all a violation of the Single Responsibility Principle | 13:34 | |
vrurg | If there is nothing else, then at least I for myself know where ti comes from: the syntax. It would still depend on expectations of an individual, but v1.1 and v1.* producing objects of different types may break other expectations. | 13:37 | |
leont | If Version does Version::Matcher, then it would all work sensibly enough | 13:39 | |
vrurg | For example, to me things like ^v1.3 make little sense because I don't understand where v1.2.1 would fit into this sequence? It's like iterating over a Rat or Num. | 13:40 | |
leont | Yeah, iterating over version ranges makes no sense | ||
But comparing should be easy enough | 13:41 | ||
vrurg | What would Version::Matcher change from API point of view? For an end-user it would remain the same Version. | ||
leont | Invariants. The different classes can all guarantee their own invariants. | 13:42 | |
vrurg | I'm afraid, this is where examples would help me more. | 13:45 | |
leont | "Does this Version object have a value that I can use as a version of something" | 13:46 | |
Right now we kind of need an is-version method :-/ | 13:47 | ||
vrurg | Ah, you mean not `class Version does Version::Matcher` but Version::Matcher as a mixin? | 13:49 | |
If so, I barely see it ever changing because of too few gains over too many backward compatibility problems. | 13:50 | ||
leont | I think I meant the former, but I'm not entirely sure I understand what you meant with the latter. | 13:52 | |
Any v expression would generate a Version::Matcher, which may be a Version | |||
vrurg | Then forget the latter as irrelevant. I'm rather interested in getting your point. | 13:53 | |
From this point of view the approach would be akin to Stringy: Versionish role consumed by Version and Version::Matcher (though better name is needed then) classes. | 13:55 | ||
leont | Yeah something like that | ||
vrurg | I'd like it in general. But, again, it'd bee too much even for a language release bump. These kind of things are like the fundamental genes which do not change for many millions years. | 13:57 | |
leont | Yeah probably | 13:59 | |
vrurg wonders if Promise lacks of methods 'andthen' and 'orelse'... | 14:34 | ||
nemokosch | lol | 14:38 | |
I'm more wondering if "andthen" and "orelse" should whatever-curry or not | 14:39 | ||
for &&, || and ~~ it seems pretty obvious that they better should | |||
leont | What I really want is a then that automatically awaits the promise. It would save me a line on almost any then handler. That may or may not be what you mean with andthen | 14:46 | |
(my question is basically what does it do with a failed promise) | 14:47 | ||
vrurg | I'd rather expect a broken one to be bypassed down the stream. | 14:50 | |
I'd rather expect a broken one to be bypassed down the stream. | 14:51 | ||
The point is in preserving the original cause. | |||
leont | Yeah, makes sense | ||
14:51
evalable6 left,
linkable6 left,
evalable6 joined
14:53
linkable6 joined
16:14
evalable6 left,
linkable6 left
16:15
linkable6 joined
16:17
evalable6 joined
16:52
lizmat_ left
16:53
lizmat joined
17:53
unicodable6 left,
quotable6 left,
shareable6 left,
squashable6 left,
evalable6 left,
nativecallable6 left,
statisfiable6 left,
bisectable6 left,
releasable6 left,
bloatable6 left,
sourceable6 left,
benchable6 left,
greppable6 left,
tellable6 left,
committable6 left,
notable6 left,
reportable6 left,
coverable6 left,
linkable6 left,
sourceable6 joined,
tellable6 joined
17:54
releasable6 joined,
reportable6 joined,
bloatable6 joined,
nativecallable6 joined,
benchable6 joined
17:55
linkable6 joined,
shareable6 joined,
statisfiable6 joined,
bisectable6 joined,
quotable6 joined,
notable6 joined,
evalable6 joined,
squashable6 joined,
committable6 joined,
greppable6 joined,
unicodable6 joined
17:56
coverable6 joined
18:00
reportable6 left
18:02
reportable6 joined
19:02
quotable6 left,
greppable6 left,
evalable6 left,
statisfiable6 left,
benchable6 left,
tellable6 left,
unicodable6 left,
coverable6 left,
releasable6 left,
bisectable6 left,
reportable6 left,
notable6 left,
squashable6 left,
committable6 left,
sourceable6 left,
linkable6 left,
bloatable6 left,
nativecallable6 left,
shareable6 left
19:03
committable6 joined,
releasable6 joined,
bisectable6 joined,
statisfiable6 joined,
notable6 joined
19:04
shareable6 joined,
quotable6 joined,
bloatable6 joined,
unicodable6 joined,
benchable6 joined,
greppable6 joined,
squashable6 joined
19:05
coverable6 joined,
sourceable6 joined,
evalable6 joined,
tellable6 joined,
nativecallable6 joined,
linkable6 joined,
reportable6 joined
20:52
linkable6 left,
evalable6 left
20:53
evalable6 joined
20:54
guifa joined
20:55
linkable6 joined
21:55
linkable6 left,
evalable6 left
21:56
linkable6 joined
21:58
evalable6 joined
22:40
sena_kun left
22:59
ab5tract joined
23:59
ab5tract left
|