🦋 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.
07:01 sena_kun joined
Geth rakudo/main: 52 commits pushed by (Jonathan Worthington)++, (Stefan Seifert)++
review: github.com/rakudo/rakudo/compare/a...3c85e7818a
08:03
nine So, back on fixing spectests :) 08:04
Btw. I did a bit of benchmarking compilation of NativeCall. rakuast-phase-cleanup brings RakuAST compilation time back down to that of the old frontend with the optimizer disabled albeit with about 5 % lower memory usage than the old one. 08:05
lizmat that's really nice! 08:06
nine I'd say that this is a good position to be in, considering that with RakuAST we do things during the actual compile phase that the old frontend leaves to the optimizer and that so far I have not cared about compilation performance at all. 08:07
lizmat right! 08:13
on optimizations: 09:16
m: say Q|foo()|.AST
camelia ===SORRY!=== Error while compiling EVAL_0
Undeclared routine:
foo used at line 1
lizmat I feel that that error is too early: surely one should be able to build synthetic ASTs this way without that error ? 09:17
nine: aka , that check should go in later, do you agree?
nine That error is thrown at CHECK time which is quite appropriate for...well checks 09:35
lizmat sure, but we do allow this: 09:37
m: my &foo; foo()
camelia No such method 'CALL-ME' for invocant of type 'Callable'
in block <unit> at <tmp> line 1
lizmat anyways, it's an annoyance 09:38
perhaps we need to have a way to call .AST and tell it not do CHECKs 09:39
Geth rakudo/main: 87065a329d | (Stefan Seifert)++ | src/Raku/ast/expressions.rakumod
RakuAST: fix inadvertent cyrring of Whatevers when it should only be WhateverCode
10:07
lizmat ooh... I missed the merge! 10:08
t/12-rakuast/highlight.rakutest fails for me, is that correct ? 10:26
ah only first time: suspect some precomp issue 10:27
1068! :-) 10:38
MasterDuke nine++ 15:26
ab5tract m: Q|my &foo; foo()|.AST.say 16:55
camelia RakuAST::StatementList.new(
RakuAST::Statement::Expression.new(
expression => RakuAST::VarDeclaration::Simple.new(
sigil => "\&",
desigilname => RakuAST::Name.from-identifier("foo")
)
),
RakuAST::Statement…
ab5tract lizmat: I must be missing something, because it seems fine to me 16:56
Surely it shouldn’t be possible to call a routine before it’s been declared? 16:57
If it’s about generating the ast of the call to use synthetically, one should still expect to be required to obey the rules of the language when doing so? 16:58
m: my &foo; Q|foo()|.AST.say 16:59
camelia RakuAST::StatementList.new(
RakuAST::Statement::Expression.new(
expression => RakuAST::Call::Name.new(
name => RakuAST::Name.from-identifier("foo")
)
)
)
ab5tract Important to consider as well, as has been discussed previously, there’s not even a guarantee that .AST survives into general release 17:01
lizmat well, whatever .AST will be replaced with 17:12
because as a developer, it's really helpful 17:13
nine I bet there will be something to get an AST out of a string, probably with replacements/quasis. But all of that is macro land. We'll think about it when we get there 17:34
19:06 rypervenche left, rypervenche joined
Geth rakudo/fix-precomp-build: 6f0201a6c8 | (Patrick Böker)++ | azure-pipelines.yml
Fix precomp build

  mirrorlist.centos.org is discontinued.
  serverfault.com/a/1161847
20:46
rakudo/fix-precomp-build: ba0a144a6b | (Patrick Böker)++ | azure-pipelines.yml
Fix precomp build

  mirrorlist.centos.org is discontinued.
  serverfault.com/a/1161847
20:55
rakudo/fix-precomp-build: 410e54eaeb | (Patrick Böker)++ | azure-pipelines.yml
Fix precomp build

  mirrorlist.centos.org is discontinued.
  serverfault.com/a/1161847
20:58
21:20 sena_kun left
Geth rakudo/fix-precomp-build: 47e8ff8480 | (Patrick Böker)++ | 2 files
Fix precomp build

  mirrorlist.centos.org is discontinued.
  serverfault.com/a/1161847
21:25
rakudo/fix-precomp-build: 0b21441d4f | (Patrick Böker)++ | 2 files
Fix precomp build

  mirrorlist.centos.org is discontinued.
  serverfault.com/a/1161847
21:28
rakudo: patrickbkr++ created pull request #5614:
Fix precomp build
21:35
patrickb I've finally managed to do the precomp builds. The files are currently uploading. 22:02
ab5tract m: my %h; %h<array>.push: %( i => "d", a => %( b => "c" ), d => %( e => "f" )); say from-json(to-json(%h))<array>[0]; say %h ~~ %( array => [ %( i => "d", a => %( b => "c" ), d => %( e => "f" ))] ) # why? 22:49
camelia {a => {b => c}, d => {e => f}, i => d}
False
ab5tract m: my %h; %h<array>.push: %( i => "d", a => %( b => "c" ), d => %( e => "f" )); say from-json(to-json(%h))<array>[0]; say %h ~~ %( array => [ %( i => "d", a => %( b => "c" ), d => %( e => "f" ))] ); %h<array>[0] ~~ %( array => [ %( i => "d", a => %( b => "c" ), d => %( e => "f" ))] )<array>[0] 22:50
camelia {a => {b => c}, d => {e => f}, i => d}
False
ab5tract m: my %h; %h<array>.push: %( i => "d", a => %( b => "c" ), d => %( e => "f" )); say from-json(to-json(%h))<array>[0]; say %h ~~ %( array => [ %( i => "d", a => %( b => "c" ), d => %( e => "f" ))] ); say %h<array>[0] ~~ my $piece = %( array => [ %( i => "d", a => %( b => "c" ), d => %( e => "f" ))] )<array>[0]; dd :$piece
camelia {a => {b => c}, d => {e => f}, i => d}
:piece(:d(${:e("f")}))
False
True
ab5tract see #raku for the JSON-ification problematics 22:51
Encountering issues like these while trying to prepare a showcase for Raku amongst colleagues is disheartening, I cannot lie 22:53
I guess it’s just a Thing That Is, but I find having a Significant Trailing Comma to be as annoying or more so than when trailing commas are grammatically illegal 23:20
m: my %h; %h<array>.push: %( i => "d", a => %( b => "c" ), d => %( e => "f" )); say from-json(to-json(%h))<array>[0];  say %h ~~ %( array => [ %( i => "d", a => %( b => "c" ), d => %( e => "f" )),] ); say %h<array> ~~ my $piece = %( array => [ %( i => "d", a => %( b => "c" ), d => %( e => "f" ))] )<array>; dd :$piece
camelia {a => {b => c}, d => {e => f}, i => d}
:piece($[:a(${:b("c")}), :d(${:e("f")}), :i("d")])
True
False
ab5tract Argg, paste error
m: my %h; %h<array>.push: %( i => "d", a => %( b => "c" ), d => %( e => "f" )); say from-json(to-json(%h))<array>[0];  say %h ~~ %( array => [ %( i => "d", a => %( b => "c" ), d => %( e => "f" )),] ); say %h<array> ~~ my $piece = %( array => [ %( i => "d", a => %( b => "c" ), d => %( e => "f" )),] )<array>; dd :$piece
camelia {a => {b => c}, d => {e => f}, i => d}
:piece($[{:a(${:b("c")}), :d(${:e("f")}), :i("d")},])
True
True
ab5tract Still unclear to me why this would result in the JSON parser pretending like there isn’t a hash declared as an element of the array.. maybe that will be more clear by morning 23:22
It’s probably slipping when it “shouldn’t” (maybe there is a good reason that I’ll understand later) 23:30