🦋 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, reportable6 joined 00:16 maettu left 00:18 maettu joined 00:48 maettu left 01:04 maettu joined 01:08 maettu left 01:15 maettu joined 01:26 maettu left 01:38 maettu joined 06:00 reportable6 left 06:02 reportable6 joined 07:40 RakuIRCLogger left 07:58 sena_kun joined 08:22 Xliff left 08:42 Xliff joined 08:45 Xliff left
releasable6 Next release in ≈3 days and ≈7 hours. 1 blocker. Please log your changes in the ChangeLog: github.com/rakudo/rakudo/wiki/ChangeLog-Draft 11:00
12:00 reportable6 left, reportable6 joined
lizmat TIL that pod parsing creates a Match object for *every* grapheme for the pod 12:06
I guess that explains why pod parsing is relatively slow 12:07
nine Wait, what?! 12:16
lizmat yes 12:27
token pod_string_character 12:29
nine That at least looks somewhat easy to fix 12:38
lizmat fwiw, I'm looking beyond some easy fixes 12:42
m: say "foo" ~~ / o / 13:08
camelia 「o」
lizmat m: say "foo" ~~ / o**1 /
camelia 「o」
lizmat why would anybody do **1 ??
[Coke] I can only think of something like wanting to match an existing **x elsewhere, but yes, only contrived reasons. 13:12
lizmat luckily it appears the **1 is getting optimized away 13:13
m: "foo" ~~ / o**1 / for ^100000; say now - ENTER now 13:14
camelia 0.212199812
lizmat m: "foo" ~~ / o / for ^100000; say now - ENTER now
camelia 0.217277934
lizmat m: "foo" ~~ / o / for ^100000; say now - ENTER now
camelia 0.214076211
lizmat m: "foo" ~~ / oo / for ^100000; say now - ENTER now
camelia 0.216316567
lizmat m: "foo" ~~ / o**2 / for ^100000; say now - ENTER now
camelia 0.221127665
Nemokosch is there a simple and straightforward reason why use v(oldest) isn't the default for compunits? 13:15
[Coke] be happy if you can speed up POD procesing; we do some caching in raku/doc and it has always seemed a little slow.
Nemokosch with all the stability concerns
[Coke] *I would be happy if...
lizmat [Coke]: understood
lizmat is working on a prototype Rakudoc slang grammar 13:16
13:28 nebuchadnezzar joined
guifa lizmat: isn't it already implemented as a slang? or do you mean just updating the grammar for RakuAST? 13:52
lizmat it isn't. There *is* a slang officially, but it is empty
grammar Perl6::PodGrammar is Perl6::Grammar does STD does MatchPackageNibbler { } 13:53
guifa oh, wow.
lizmat with this as a comment: # place holder for a new slang for Pod
[Coke] is the html entity exposed? (could I search through it for App::Uni) ? 14:00
entity *list*
lizmat [Coke] it was my proposal to expose it, but that appears to have run against a lot of pushback :-( 14:18
github.com/rakudo/rakudo/commit/d9...1258663638 14:19
[Coke] If it's part of pod, it's part of pod - maybe something behind a core lib would be appropriate. 14:57
lizmat "behind a core lib" could you elaborate? 15:09
I thought it would make sense that since we have: 15:11
m: say "FULL STOP".uniparse
camelia .
lizmat and:
m: dd '2023-04-18'.Date 15:12
camelia Date.new(2023,4,18)
lizmat we could also have a:
m: say 'comma'.html-entity-parse
camelia No such method 'html-entity-parse' for invocant of type 'Str'
in block <unit> at <tmp> line 1
lizmat instead we now have: 15:13
m: use v6.*; say RakuAST::HTML::Entities.parse("comma")
camelia ,
lizmat meh
[Coke] for me, I'd want the list to be exposed, not to (only) be able to look up specific phrases. 15:28
e.g. how can I know 'comma' is one of the options
I feel like since it's already already part of pod, adding it to the str isn't bad. I might call it pod-entity-parse, though 15:29
Is there a PR to comment on? 15:30
lizmat there are several commits to comment on 15:46
fwiw I wouldn't call it pod-entity-parse as Pod is just one of the places it would be used 15:47
they are HTML entities, hence the name "html-entity-parse"
[Coke] my question there is are we guaranteeing as part of the spec that it's html entities, or did we happen to use that as our entity list and now it's separate. 16:05
lizmat the code mentions the then standard location of HTML5 entities as the source 16:09
my version uses the current standard location of HTML entities as source
so yes, it's HTML entities only
now: E<> also accepts any numeric representation 16:10
E<65> would be A
[Coke] notes that E<0x6b> also works, nifty 16:15
japhb Related: Cannot even tell you how nice it is that we use val() on arguments to MAIN too, BTW. Constantly using hex arguments to my option flags. 16:19
[Coke] lizmat: code ain't spec. 16:21
but that definitely seems to declare the intent, anyway
[Coke] didn't realize that trick worked on MAIN, nifty 16:32
lizmat well, val will give you an allomorph 16:41
m: dd val "42"
camelia IntStr.new(42, "42")
lizmat but yeah... it's pretty useful
18:00 reportable6 left 18:03 reportable6 joined
nine The things you find when re-implementing something: 18:21
m: { my package A::B::C { }; say MY::.keys } 18:22
camelia (A $_)
nine But:
m: { my $A::B::C; say MY::.keys }
camelia ($A::B::C $_)
nine So for lexical multi-part-named variables, we install lexicals that you cannot even access, as $A::B::C will be compiled to code that traverses the stashes starting at GLOBAL. 18:23
For that package we start traversing at that lexical A
[Coke] can you simplify it in the rewrite, or do you have to do the same? 18:37
18:42 Guest10 joined
nine Not sure I'm smart enough to actually simplify it. 18:45
[Coke] :) 18:58
19:14 Guest10 left
vrurg When I first read somewhere that `require` installs lexically – I was happy about. Then I was disappointed to find out that it is not actually true... 21:05
Geth rakudo/main: 31fb2b9e96 | (Stefan Seifert)++ | src/Raku/ast/name.rakumod
RakuAST: fix double sigil on some indirect name lookups

INDIRECT_NAME_LOOKUP will add the sigil to the last name part, so we don't have to do that and in fact must not if we want to avoid a double sigil.
rakudo/main: 027e37ccc9 | (Stefan Seifert)++ | 5 files
RakuAST: fix declaration of variables with multi part names $A::B
nine A few RakuAST tests need followup. Will do that tomorrow 21:14
21:38 Xliff joined 21:55 Xliff left
Geth nqp/fix-alias-backref: 04d3a3ab1e | (Jonathan Worthington)++ | src/QRegex/Cursor.nqp
Fix back-references when there are aliases

Aliases are named-mangled on the capture name into a string of the form
  `foo=bar`. This is handled in the match object construction, but was not
handled in the back-reference code.
nqp: jnthn++ created pull request #802:
Fix back-references when there are aliases
22:48 nebuchadnezzar left 23:56 squashable6 left, bloatable6 left, sourceable6 left, unicodable6 left, committable6 left, statisfiable6 left, benchable6 left, tellable6 left, bisectable6 left, nativecallable6 left, linkable6 left, shareable6 left, notable6 left, quotable6 left, coverable6 left, releasable6 left, greppable6 left, evalable6 left, reportable6 left, reportable6 joined, evalable6 joined, bloatable6 joined 23:57 quotable6 joined, bisectable6 joined, coverable6 joined, unicodable6 joined, sourceable6 joined 23:58 greppable6 joined, squashable6 joined, linkable6 joined, releasable6 joined, tellable6 joined, notable6 joined, statisfiable6 joined, committable6 joined 23:59 nativecallable6 joined, benchable6 joined, shareable6 joined