🦋 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:03 reportable6 joined
Nemokosch LOL 00:16
just finished my comment on GH
which also reaches to the conclusion that I think most problems come from Cool / its application 00:17
which is two problems, really
a) what makes a type conceptually eligible to be Cool b) what should Cool even actually provide 00:20
because yeah, providing trigonometric functions for an IO::Path object seems... more strange than consistent
to not just ramble but bring some development into the topic... doesn't the COERCION protocol mostly solve what this Cool-ism was for? 00:23
hm, maybe not yet... but I have this feeling that something like that describes the idea itself better. Auto-coercing methods provided between certain types. 00:25
01:18 linkable6 left, evalable6 left 01:19 evalable6 joined, linkable6 joined
oh one more 01:20
> Other collection types (e.g. Set) aren't Cool simply because the historical reasons didn't apply to them, and they do fine without it.
It really makes me feel comfortable (sic!) that I didn't even know this, honestly 01:21
because this means in practice that I never wanted to do anything with Sets where it would have come naturally 01:22
releasable6 Next release in ≈1 day and ≈15 hours. There are no known blockers. Please log your changes in the ChangeLog: github.com/rakudo/rakudo/wiki/ChangeLog-Draft 03:00
04:23 linkable6 left, evalable6 left 04:24 evalable6 joined 04:25 linkable6 joined 06:00 reportable6 left 06:02 reportable6 joined
nine ab5tract: The Cool type is derived from Any, and contains all the methods that are "cool" (as in, "I'm cool with an argument of that type."). More specifically, these are the methods that are culturally universal, insofar as the typical user will expect the name of the method to imply conversion to a particular built-in type that understands the method in question. For instance, $x.abs implies conversion 06:59
tellable6 nine, I'll pass your message to ab5tract
nine to an appropriate numeric type if $x is "cool" but doesn't already support a method of that name. Conversely, $x.substr implies conversion to a string or buffer type.
Err...that was not meant for ab6tract specifically
ab5tract: "simple" lexicals will be auto generated for you. By default they are considered is-simple-lexical-declaration if they are is-lexical, i.e. if their scope is my or has. Both conditions are overridable. In that case your IMPL-QAST-DECL will be called by the scope's IMPL-QAST-DECLS. If you need more complicated logic, you need to actively call add-generated-lexical-declaration on the scope at an 07:11
tellable6 nine, I'll pass your message to ab5tract
nine appropriate time (e.g. BEGIN)
07:52 ab5tract joined 09:08 sena_kun joined 09:22 sena_kun left 09:23 sena_kun joined 09:59 sena_kun left 10:00 sena_kun joined
Geth rakudo/main: ccbf9a098e | (Elizabeth Mattijsen)++ | IN-MEMORIAM.md
Add In Memoriam for Ben Davies
Nemokosch it's still hard to believe that people can just go away like that... 😔 10:55
11:07 raschip joined 12:00 reportable6 left
Geth Data-Record/main: 0406199fa8 | (Elizabeth Mattijsen)++ (committed using GitHub Web editor) | README.md
Update wiki link
12:01 reportable6 joined
Geth Net-LibIDN: 34cd8392c6 | (Elizabeth Mattijsen)++ (committed using GitHub Web editor) | README.md
s/Perl 6/Raku
Net-LibIDN2: 54fb5f6092 | (Elizabeth Mattijsen)++ (committed using GitHub Web editor) | README.md
s/Perl 6/Raku
Trait-Traced/main: a3146f6bb7 | (Elizabeth Mattijsen)++ (committed using GitHub Web editor) | README.md
Update wiki link
Type-EnumHOW: 9a994f8b5f | (Elizabeth Mattijsen)++ (committed using GitHub Web editor) | README.md
Update documentation link and remove Travis badge
lizmat ok, that concludes my work on moving / updating stuff for now
13:22 RakuIRCLogger left, Geth left 13:24 RakuIRCLogger joined 13:26 Geth joined
ab5tract is there an easy way to resolve a name to it's "full" name (ie, inlcuding all enclosing packages)? 13:53
tellable6 hey ab5tract, you have a message: gist.github.com/609b4aa20f7a598286...00bcdc9807 13:54
hey ab5tract, you have a message: gist.github.com/16fbcc3863c02e1e56...235389e07d
nine ab5tract: what is it that you're after? 13:56
14:05 epony joined 14:10 nine left, camelia left, nine joined
ab5tract IMPL-EXPR-QAST should return a WVal with the fully qualified name. At least according to what Actions/World used to do (and the qast output of base). 14:13
Honestly I'd sort of expect this to happen somewhere "upstream" but if I do `module M { module N { subset O where /o/; } } }`, there should be a WVal of `M::N::O` 14:14
and the WVal is generated from a call to SubsetHOW.new_type. The name I provide to that class should be fully qualified 14:15
I know it's probably silly to get into scoping before I get it actually working at its most basic, but it bothers me. 14:16
world has a `fully_qualified_with` method that I think I'm looking for an equivalent of 14:17
14:17 camelia joined
ab5tract Also, how does one conjure a type object from a RakuAST::Type 14:24
same use case, to provide the correct argument to SubsetHOW.new_type 14:25
Right now I'm just passing a `RakuAST::Declaration::External::Constant` and it doesn't seem to explode. Not that it's working, of course 14:46
nine "WVal with the fully qualified name" does not make sense 14:55
WVal is used for objects, not names.
If this is about telling the SubsetHOW it's fully qualified name, have a look at src/Raku/ast/package.rakumod's PERFORM_BEGIN. 15:00
ab5tract It's the SubsetHOW's name, yes. The WVal is derived from that. It holds the type object, yes? That type object has the full name in base. 15:27
(In this case, it holds the type object)
15:39 ab5tract left
nine Yes, for this you want to qualify the name with the current package's name. 15:42
Note that as a general design principle, keep in mind that the parser is not the only thing that is able to create an AST. A completely artificially created AST (e.g. Raku code creating a Type::Subset node and attaching it indirectly to a Package node) should still be able to determine the full name. 15:43
15:48 ab5tract joined 17:19 ab5tract left 17:25 codesections joined 18:00 reportable6 left, ab5tract joined, reportable6 joined 18:01 ab5tract left 19:54 raschip left 20:00 sena_kun left 20:01 sena_kun joined
Geth rakudo/main: 3d2f8bd9db | (Elizabeth Mattijsen)++ | IN-MEMORIAM.md
Add Ben Davies' Twitter handle
21:25 sena_kun left 21:44 ab5tract joined
Geth XML/main: fdf73f2690 | (Polgár Márton)++ | 2 files
Rakudoc generation fix
releasable6 Next release in ≈19 hours. There are no known blockers. Please log your changes in the ChangeLog: github.com/rakudo/rakudo/wiki/ChangeLog-Draft 23:00
23:15 ab5tract left