🦋 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:02 reportable6 joined 00:29 epony left 02:38 epony joined 05:04 [Coke]_ joined, [Coke] left 05:44 Kaiepi left 06:00 reportable6 left 06:03 reportable6 joined 07:03 greppable6 left, evalable6 left, bloatable6 left, coverable6 left, committable6 left, statisfiable6 left, releasable6 left, bisectable6 left, benchable6 left, unicodable6 left, notable6 left, sourceable6 left, squashable6 left, quotable6 left, nativecallable6 left, reportable6 left, tellable6 left, linkable6 left, shareable6 left, bloatable6 joined, statisfiable6 joined 07:04 committable6 joined, tellable6 joined, evalable6 joined, releasable6 joined, greppable6 joined, linkable6 joined, shareable6 joined 07:05 notable6 joined, quotable6 joined, reportable6 joined, nativecallable6 joined, benchable6 joined, coverable6 joined, squashable6 joined 07:06 sourceable6 joined, bisectable6 joined, unicodable6 joined 09:26 sena_kun joined 10:05 sena_kun left 10:10 sena_kun joined, sena_kun left 10:44 Kaiepi joined 11:09 sena_kun joined 12:00 reportable6 left
Geth rakudo/main: 683648cd51 | (Elizabeth Mattijsen)++ | src/core.c/RakuAST/Deparse.pm6
Fix some deparsing issues

  - add support for Signature.returns
  - don't parenthesize calls to: say, note, return, emit as these
   are generally put in code without parentheses
  - add a subclassable 'dont-parenthesize' method, which is expected
   to return an Associative with the names of the subs to not put
   () around their args
  - make sure a trailing } is not parenthesized with an end-of-line
   inbetween
12:01
rakudo/main: 468bdb2836 | (Elizabeth Mattijsen)++ | t/12-rakuast/code.rakutest
Add deparsing tests for code
12:02 reportable6 joined
nine "don't parenthesize calls to: say, note, return, emit as these" I think that's a pointless complication of the code. The point of deparse is _not_ to reproduce the input. 12:04
"don't parenthesize calls to: say, note, return, emit as these" I think that's a pointless complication of the code. The point of deparse is _not_ to reproduce the input. 12:05
lizmat nine: how do you see things like Raku::Tidy evolve then ? 12:07
nine That will want to overwrite many of the standard deparsing functions anyway to cater to different preferences. 12:13
lizmat well, which subs to not parenthesize, is now configurable by subclass 12:14
It's going to be hard enough to make a Raku::Tidy, so why make it more difficult? 12:15
I mean, the deparsing already made decisions on deparsing with indents of 4 spaces, instead of a tab 12:16
(which is also customizable already, mind you)
and having a space after a comma in a list
etc. 12:17
nine What is the job of deparse in the setting? 12:19
lizmat Good question, it appears we have different ideas about it 12:20
1. provide a round-trippable version of an AST
2. provide a representation of an AST for debugging / module developers wanting to use RakuAST 12:21
3. provide a customizable interface for ASTs for code tidying 12:22
that would be my list of goals there
you seem to have added: 4. provide source representation of regexes
inside the setting, as a regex apparently carries around its source representation
nine m: Q/say(1,2),3/.AST.DEPARSE.say 12:25
camelia say 1, 2, 3
nine And it's wrong
lizmat ok, fair point 12:31
will remove the dont-parenthesize feature
although the example is... a bit artificial :-) 12:32
nine Well, deparse doesn't have to do many things, but create correct code is definitely one of them. 12:34
lizmat true 12:35
Nemokosch well the parens could be put differently, for what it's worth 😛 12:41
and regarding syntax, that's actually more descriptive. Lisp masterrace
Geth nqp/main: aa7fbea48c | (Elizabeth Mattijsen)++ | tools/templates/MOAR_REVISION
Bump MoarVM to get Unicode 15.0 support

Kudos to thundergnat++
12:42
Nemokosch is it okay for implementation-details to leak into core? 12:49
is it okay for implementation-details to leak into core? 12:50
like SignedBlob and UnsignedBlob in this particular case
lizmat i'd say, yes?
they're marked "implementation-detail", right ?
Nemokosch yes
lizmat that basically means that there was no way to hide these from you, and that's why they're marked as such 12:51
Nemokosch is there something (other than the source) that tells a user user this, should they come across it for whatever reason? 12:52
nine I'm not even sure if these two should be marked implementation-detail. Doing that was basically avoiding to make that decision.
Nemokosch I was about to say they should be documented when I noticed that they are marked implementation-detail 12:53
lizmat I would be fine with documenting them, as nine said: they were marked as implementation-detail as a sort of soft "experimental" 12:57
and apart from documenting, they would also need spectests then 12:58
12:59 guifa left 13:00 guifa joined
Geth rakudo/main: 42823691eb | (Elizabeth Mattijsen)++ | tools/templates/NQP_REVISION
Bump NQP to get support for Unicode 15.0 on MoarVM

Kudos to thundergnat++
13:00
nine Unless of course someone has a better idea on how to support signedness in blobs and bufs. I just went with what worked for me. I didn't think about language design or other lofty goals.
Nemokosch Could the gist method give you that kind of hint that you are dealing with an implementation-detail? 13:02
Geth tap-harness6/master: 8 commits pushed by (Leon Timmermans)++ 13:51
rakudo/main: 37826798b4 | thundergnat++ (committed by Elizabeth Mattijsen) | 4 files
Upgrade Rakudo tests to Unicode 15.0

This is a manual merge of github.com/rakudo/rakudo/pull/5150 which was sadly based on the master branch.
13:58
roast: d413f43e9e | thundergnat++ (committed using GitHub Web editor) | 61 files
Update to Unicode 15.0
13:59
rakudo/main: 47ec76bdec | (Elizabeth Mattijsen)++ | t/09-moar/UnipropCheck.rakumod
Adapt new boundary values
14:10
lizmat and that should conclude Rakudo's upgrade to Unicode 15 14:12
14:12 epony left
lizmat supporting 5327 new codepoints, 7 new scripts, 57 new emojis and 4193 (Chinese, Japanase, Korean) new ideographs 14:15
unicode.org/versions/Unicode14.0.0/ and unicode.org/versions/Unicode15.0.0/
14:22 epony joined
Geth rakudo/main: 6a04f8f59a | (Elizabeth Mattijsen)++ | 2 files
Remove dont-parenthesize feature from deparsing

Omitting parentheses should be done at a higher abstraction level: this approach was too simple and could cause unparseable code.
14:44
rakudo/main: 43298c90e0 | (Elizabeth Mattijsen)++ | t/12-rakuast/contextualizer.rakutest
Add deparsing tests for contextualizers
14:50
15:25 Kaiepi left 15:32 Kaiepi joined
Geth rakudo/main: 90df8d8164 | (Elizabeth Mattijsen)++ | t/12-rakuast/regex.rakutest
Add deparse tests for regexes
15:35
16:05 melezhik joined 16:15 melezhik left 16:21 epony left 16:22 epony joined 16:27 sena_kun left
Geth rakudo/main: 0b0d4ecbc9 | (Elizabeth Mattijsen)++ | 2 files
Added tests for RakuAST::StatementModifier::When

Also removed RakuAST::StatementModifier::Condition and RakuAST::StatementModifier::Loop from the TODO list, as these don't exist on their own, being a base class and all
16:37
17:08 epony left 17:10 epony joined 17:12 sena_kun joined 18:00 reportable6 left 18:03 reportable6 joined
Geth rakudo/main: 08f3995e04 | (Elizabeth Mattijsen)++ | src/core.c/RakuAST/Deparse.pm6
Make sure that statements deparse with any attached labels

Sadly, actual runtime support for labels appears to not work yet
19:21
rakudo/main: 83fb251848 | (Elizabeth Mattijsen)++ | 2 files
Add tests for RakuAST::Statement::Empty

Also remove RakuAST::StatementModifier::For::Thunk from the TODO list, as this appears to be some flag that appears only in .AST output, but does not appear to be necessary otherwise in manually built ASTs
rakudo/main: 1adc2ab1e5 | (Elizabeth Mattijsen)++ | src/Raku/ast/base.rakumod
Make IMPL-UNWRAP-LIST handle non-Listy things

By dropping them into a nqp::list. This should make manual specification of RakuAST nodes a bit more user-friendly, you wouldn't need to wrap them into a [foo] or (foo,) if you only have a single thing to add
Please revert if this is considered to be a bad idea.
19:48
rakudo/main: 16cc1702eb | (Elizabeth Mattijsen)++ | src/Raku/ast/statements.rakumod
Normalise RakuAST class specifications

In the sense that all roles are mentioned *under* the class specification, each on their own line. This at least makes reading these a lot easier for *me*.
No functional changes. Please revert if you think it's a bad idea.
20:30
rakudo/main: a6ee8bce9e | (Elizabeth Mattijsen)++ | src/Raku/ast/statements.rakumod
RakuAST::Statement::Use can also take labels
21:00
rakudo/main: 86c0f401d0 | (Elizabeth Mattijsen)++ | t/12-rakuast/label.rakutest
Add extensive RakuAST::Label tests

Make sure that deparsing works as expected. Sadly, only the RakuAST::Statement::Loop classes produce executable code. All of the other ones cause an issue in MAST production:
   Object of type Label in QAST::Var value, but not in SC
These tests have been disabled in the meantime
rakudo/main: 3439c9adfb | (Elizabeth Mattijsen)++ | 3 files
Normalize TAP output to use Str instead of DEPARSE

As the EVAL is using Str in that case, not an AST node
21:02
rakudo/main: 54984602c0 | (Elizabeth Mattijsen)++ | 2 files
Implement deparse support for RakuAST::FunctionInfix

Also remove some other classes from the TODO that are deemed to be untestable by themselves
21:24
rakudo/main: 436e0d876e | (Elizabeth Mattijsen)++ | t/12-rakuast/operators.rakutest
Add basic test for RakuAST::FunctionInfix
lizmat and that concludes my hacking for today& 21:28
22:11 discord-raku-bot left, discord-raku-bot joined 22:29 discord-raku-bot left 22:30 discord-raku-bot joined 22:53 discord-raku-bot left, discord-raku-bot joined 23:35 vrurg_ is now known as vrurg 23:37 sena_kun left 23:49 hythm left