🦋 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.
elcaro I added some comments. Trying not to blog post too hard in a PR comment 🤐 01:14
nemokosch well, I don't hold back, it multiplies 01:58
on a positive note, it's MUCH faster to read it than to write it 02:01
:d
_elcaro_ I think I hit most the points I wanted to... So I won't add more (yet?) I just wanted to offer a semi-opposing viewpoint. You are clearly passionate about Raku, and quite vocal, so more opinions are needed to gauge community sentiment. 02:11
nemokosch I'm rolling out this many arguments and elaborate them in the hope that this is a universal language that won't just get wiped away. Counter-arguments and showing evidence that disproves an argument is more than welcome but I really hope it won't be cast as "just an opinion"... 09:15
nine lizmat: what do you need the bare WVal for? If I have a value that should be referenced by the AST I use RakuAST::Declaration::External::Constant 09:51
lizmat Slang::Roman Slang::Date 09:52
in the legacy grammar, they return a QAST::WVal 09:54
well, Slang::Date does, Slang::Roman a QAST::IVal 09:55
anyways, RakuAST::Constant allows an easy interface now that also makes it easy to provide custom deparsing logic 09:56
nine Yes, sounds like constants or literals
lizmat so that 0rXXXXII will deparse as 0rXXXXII instead of 42
ab5tract m: Q| dd my class { has $.z is default(42) where * == 42 }.new.z | .AST.EVAL 12:01
camelia ===SORRY!=== Error while compiling
Confused
------> dd my class { has $.z is default(42)⏏ where * == 42 }.new.z
lizmat is default not working on attributes yet ? 12:02
ab5tract or is it choking on the presence of the where clause?
ab5tract m: Q| dd BEGIN (* == 42)(42) | .AST.EVAL 12:03
camelia ===SORRY!===
Unknown compilation input 'qast'
lizmat m: Q| class { has $.z is default(42); }|.AST
camelia ( no output )
lizmat m: Q| class { has $.z is default(42) where * == 42; }|.AST
camelia ===SORRY!=== Error while compiling
Confused
------> class { has $.z is default(42)⏏ where * == 42; }
lizmat looks like the where clause not being anticipated yet ? 12:04
ab5tract looks like it..
nine: I don't know if this is a good use case for figuring out the begin time stuff, but currently we can't WhateverCode at BEGIN time 12:08
Geth nqp/main: 6d03c11077 | (Patrick Böker)++ | azure-pipelines.yml
Bump MacOS and Linux Images

Replicates
  github.com/rakudo/rakudo/commit/ff...4e33acb6e2
and
  github.com/rakudo/rakudo/commit/09...d207be9afa
12:26
rakudo/main: 75c615c4c6 | (Elizabeth Mattijsen)++ | src/Raku/Grammar.nqp
RakuAST: add vetPerlForSyntax rule

To make it easier on slang builders (specifically Slang::Otherwise) and to improve readability of the statement:sym<for> rule.
12:41
ugexe github.com/rakudo/rakudo/blob/75c6...od#L28-L34 14:39
is it a good idea to have a public method that when called changes the underlying type of an attribute that is used elsewhere? 14:40
it seems kind of racey 14:42
lizmat it does
ugexe what im particularly interested in at the moment is if its racey in a way that could result in having an undefined value at some point (even if only briefly) when it should have a value 14:44
i'm thinking probably not, since the problem i'm looking at also shows up for auth-matcher but that method isn't racey in this way 14:45
use Zef:ver($?DISTRIBUTION.meta<version>):api($?DISTRIBUTION.meta<api>):auth($?DISTRIBUTION.meta<auth>); 14:47
use Zef::Client:ver(Zef.^ver):api(Zef.^api):auth(Zef.^auth);
it could also be something related to how i do imports
but --ll-exception doesn't give any additional information about where its happening :(
oh i think i understand now 14:52
the problem is indeed related to that !stringify method
gah nevermind. i thought with using -Ilib (which uses Distribution::Hash) that maybe we were setting the ver and auth fields to '', but we only do that for auth. in that sense !stringify is busted for auth. however, i also see this error happening with version 14:55
oh, maybe because i'm doing `use Zef:ver($?DISTRIBUTION.meta<version>`, and Distribution::Hash / -Ilib doesn't have a version key (just ver in this case) 14:57
so auth is broken because of !stringify, and version is broken because one of the Distribution objects doesn't normalize all the same fields as some of the other distribution objects
its a bit unfortunate that in a META6.json the name 'version' is better than 'ver', but we use 'ver' in code i.e. `use Foo:ver<1>`, `MyFoo.^ver`, etc 15:01
ugexe doh, `raku -e 'my $cr = CompUnit::Repository::FileSystem.new(prefix => $*CWD.add("lib")); say $cr.distribution.meta<ver>'` shows "*" (for the zef repo) which means that we do normalize version/ver, so back to the drawing board 15:12
looks like there is still leftover lock::soft or whatever code in the CURs github.com/rakudo/rakudo/blob/75c6...d#L94-L108 15:32
Geth rakudo: ab5tract++ created pull request #5392:
RakuAST: Fix more WhateverCode combinations
21:01
ab5tract that should be +1 spectest from that PR 21:44