🦋 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
|
|||
releasable6_ | Next release in ≈1 day and ≈15 hours. GitHub is down. There are no known blockers. Please log your changes in the ChangeLog: github.com/rakudo/rakudo/wiki/ChangeLog-Draft | 03:00 | |
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 | ||
06:00
reportable6 left
06:01
reportable6 joined
|
|||
Geth | nqp/r5486: e88e23a227 | ab5tract++ | src/QRegex/Cursor.nqp Add lookup for translating General_Category longnames Also fix broken shortnames "L", "M", "N", "P", "S", "Z", and "C". This fixes R#5486 and R#5372. |
07:51 | |
linkable6 | R#5486 [open]: github.com/rakudo/rakudo/issues/5486 [Unicode] Test for Unicode `General_Category` does not work with `L` | ||
R#5372 [open]: github.com/rakudo/rakudo/issues/5372 Test for Unicode `General_Category` does not work with long forms. | |||
Geth | nqp: ab5tract++ created pull request #820: Add lookup for translating General_Category longnames |
07:52 | |
07:52
linkable6_ left
|
|||
Geth | nqp/r5486: cb4c8d3466 | ab5tract++ | src/QRegex/Cursor.nqp Add lookup for translating General_Category longnames Also fix broken shortnames "L", "M", "N", "P", "S", "Z", and "C". This fixes R#5486 and R#5372. |
07:54 | |
linkable6 | R#5486 [open]: github.com/rakudo/rakudo/issues/5486 [Unicode] Test for Unicode `General_Category` does not work with `L` | ||
R#5372 [open]: github.com/rakudo/rakudo/issues/5372 Test for Unicode `General_Category` does not work with long forms. | |||
07:55
linkable6_ joined
|
|||
ab5tract | Feedback welcome. The use of lookup hashes is hopefully mitigated by having them be `my` scoped in the Cursor class.. I am under the impression that this means that we only pay the memory penalty once, and not for every cursor | 07:56 | |
08:46
sena_kun joined
|
|||
Geth | nqp/r5486: 07a7a103f9 | ab5tract++ | src/QRegex/Cursor.nqp Add lookup for translating General_Category longnames Also fix broken shortnames "L", "M", "N", "P", "S", "Z", and "C". This fixes R#5486 and R#5372. |
08:46 | |
linkable6 | R#5486 [open]: github.com/rakudo/rakudo/issues/5486 [Unicode] Test for Unicode `General_Category` does not work with `L` | 08:47 | |
R#5372 [open]: github.com/rakudo/rakudo/issues/5372 Test for Unicode `General_Category` does not work with long forms. | |||
08:47
linkable6_ left
08:48
linkable6_ joined
|
|||
Geth | rakudo/main: 604663a3c4 | (Stefan Seifert)++ | src/Raku/ast/scoping.rakumod RakuAST: report line number of call to unknown routine |
09:16 | |
rakudo/main: c118661d0f | (Stefan Seifert)++ | src/Raku/ast/expressions.rakumod RakuAST: fix compilation errors when using meta-ops So far we did well with simple meta-ops like X+ but failed when multiple meta-ops were stacked like ZX+. Fix by pushing in a layer of abstraction so we can deal with infixes and meta-infixes. |
|||
rakudo/main: b899592bd4 | (Stefan Seifert)++ | 3 files RakuAST: support calling meta-ops as functions without &-prefix infix:<X+>((1,), (2,)) is just as valid as &infix:<X+>((1,), (2,)) but parses totally differently. Add the same handling to this other code path. |
|||
nine | 1057 | ||
09:16
sena_kun left
|
|||
lizmat | confirmed :-) | 09:28 | |
ab5tract | do I remember correctly that t/spec/S32-io/IO-Socket-Async.t is known to be problematic (at least on macOS)? | 10:34 | |
lizmat | not for a while afaik, at least not on Apple silicon | 10:53 | |
ab5tract | hmm.. I thought it was a flapper for some reason. it's failing here for some reason, but can't really see how it could be connected to the General_Category work | 11:13 | |
lizmat | what's the flap rate you're seeing? | 11:15 | |
ab5tract | gist.github.com/ab5tract/bf578c070...209b44260f | 11:21 | |
it's self-explanatory in that the address is likely already in use because test 2 didn't break the promise as expected | 11:22 | ||
lizmat | This is not the web page you are looking for ? | 11:23 | |
ab5tract | weird, try again? | 11:41 | |
lizmat | now it works :-) | 11:43 | |
doesn't look familiar to me, that error message | 11:44 | ||
ab5tract | hmm | 11:45 | |
thanks for checking :) | |||
lizmat | added the output that I see | ||
12:00
reportable6 left,
reportable6 joined
|
|||
Geth | roast: 8fe5a2f2a8 | (Stefan Seifert)++ | S03-metaops/cross.t Fix unrelated error in error checking test A better compiler will not only detect the invalid X. meta operator but also that the "foo" routine is not defined. Thus we would get an X::Comp::Group exception containing exceptions for both errors and the test would incorrectly fail. |
12:05 | |
rakudo/main: eb1069aca0 | (Stefan Seifert)++ | src/Raku/ast/expressions.rakumod RakuAST: fix unknown method errors in some meta-op related situations |
12:12 | ||
rakudo/main: 7de8258573 | (Stefan Seifert)++ | src/Raku/ast/expressions.rakumod RakuAST: fix CannotMeta checks looking at the wrong operator The properties of the to-be-metad infix are deciding while we looked at the meta-operator instead. |
|||
ab5tract | interesting.. so t/spec/S32-io/IO-Socket-Async.t fails for me with current HEAD | 13:24 | |
happy it's not related to my uniprop fix, and if it has been failing for a while it would explain why I was under the impression that it is supposed to.. | 13:25 | ||
not so happy to have a headscratcher :) | |||
nine | lizmat: 16:18 -!- Irssi: lizmat has closed the connection to you | 14:18 | |
14:18
lizmat left
14:19
lizmat joined
|
|||
lizmat | nine: weird, on my end all seemed ok | 14:19 | |
nine: could it be that your end is forcing OTR ? | 14:20 | ||
Geth | rakudo/r5486: 57efd00287 | ab5tract++ | 3 files Add several symbols to hllsym lookup These are used by QRegex::Cursor in order to disambiguate between the variety of inputs that it receives. Part of addressing R#5486 and R#5372, which relate to uses of General_Category in regexes like: '$' ~~ /<:General_Category<Currency_Symbol>>/ 'a' ~~ /<:General_Category("Lowercase_Letter")>/ '9' ~~ /<:General_Category("Number")>/ |
16:14 | |
linkable6 | R#5486 [open]: github.com/rakudo/rakudo/issues/5486 [Unicode] Test for Unicode `General_Category` does not work with `L` | ||
linkable6 | R#5372 [open]: github.com/rakudo/rakudo/issues/5372 Test for Unicode `General_Category` does not work with long forms. | ||
16:15
linkable6_ left
16:17
linkable6_ joined
|
|||
Geth | nqp/r5486: 8d1a480a32 | ab5tract++ | src/QRegex/Cursor.nqp Add lookup for translating General_Category longnames Also fix broken shortnames "L", "M", "N", "P", "S", "Z", and "C". This fixes R#5486 and R#5372. The problem this addresses is three-fold: ... (26 more lines) |
16:17 | |
linkable6 | R#5486 [open]: github.com/rakudo/rakudo/issues/5486 [Unicode] Test for Unicode `General_Category` does not work with `L` | ||
linkable6 | R#5372 [open]: github.com/rakudo/rakudo/issues/5372 Test for Unicode `General_Category` does not work with long forms. | ||
16:18
linkable6_ left
|
|||
ab5tract | lizmat: regarding not fixing bugs in Rakudo because NQP might one day be used somewhere else ... | 16:19 | |
16:20
linkable6_ joined
|
|||
ab5tract | I don't really know how to express my reaction to this at the moment, so I'll just leave it at: I strongly disagree | 16:23 | |
besides, if it can't find those symbols, it will just fall back to the behavior it already had | 16:24 | ||
s/will/can be made to/ | 16:25 | ||
lizmat | heh.. well, the only raku strings I can find in NQP are on the JS backend, and for handling ED phasers | 16:26 | |
*END | |||
to me it feels a bit like home squatting | 16:27 | ||
ab5tract | to me it feels like making perfect the enemy of good | 16:28 | |
and it's extremely demotivating | |||
but I'm also a fair bit upset by it, so I will go afk for a while to cool down | |||
lizmat | sorry, didn't mean to de-motivate: I'm definitely in favour of fixing issues, and they don't have to be perfect | 16:34 | |
nine | ab5tract: it's not so much about NQP being used by something else. That would be the Parrot trap all over again. It's more about proper layering and lower layers not knowing intimate details of higher layers. Sometimes it cannot be avoided, but we should keep the number of these holes at a practical minimum. | 16:35 | |
So the question is always: is this one of those rare cases where it's the only sensible option? | |||
What is that check for explicit type Str for? I have not understood that yet | 16:39 | ||
ab5tract | that's to account for other ACCEPTS-y `$obj` such as numbers and ranges. it's mostly a performance optimization to avoid those having to fall through the additional lookups and makes those checks safe to use `iseq_s` | 16:44 | |
lizmat: regarding the JVM concerns -- `Unicode property pairs NYI on jvm backend` | 16:46 | ||
lizmat | ab5tract: ok, so you're saying it would never pass there on the JVM backend | 16:47 | |
then the "unguarded" nqp::istype is ok | |||
it's just that I've borked the JVM backend too may times that way | |||
as MasterDuke17 can attest to | 16:48 | ||
nine | What is self for a type in that code? Is it a QRegex::Cursor or is it a Match or even some Raku class? | ||
Geth | nqp/r5486: 7b84b2c10a | ab5tract++ | src/QRegex/Cursor.nqp Add lookup for translating General_Category longnames Also fix broken shortnames "L", "M", "N", "P", "S", "Z", and "C". This fixes R#5486 and R#5372. The problem this addresses is three-fold: ... (26 more lines) |
16:49 | |
linkable6 | R#5486 [open]: github.com/rakudo/rakudo/issues/5486 [Unicode] Test for Unicode `General_Category` does not work with `L` | ||
linkable6 | R#5372 [open]: github.com/rakudo/rakudo/issues/5372 Test for Unicode `General_Category` does not work with long forms. | ||
16:50
linkable6_ left
|
|||
ab5tract | just pushed changes to account for the JVM eventuality but also to address keeping the code workable without the Raku hllsyms | 16:50 | |
16:51
linkable6_ joined
|
|||
ab5tract | nine: that's a good question.. | 16:51 | |
this code is in NQPMatchRole, but checking what that might actually be mixed into | 16:54 | ||
`we are WHAT: Match` | 16:56 | ||
hmm... does that mean a Raku `Match`? the debug statement is `say("we are WHAT: " ~ self.WHAT.raku)` | 16:57 | ||
lizmat | you can override NQPMatchRole methods in the Match class in Raku | 16:58 | |
ab5tract | yeah, I could see where you were pointing :) | 17:00 | |
I wasn't sure if this `Match` meant a Raku `Match` but I guess that's answered by it responding to Raku | 17:01 | ||
;) | 17:02 | ||
s/Raku/.raku/ # though the sentence parses the same either way | 17:03 | ||
lizmat++ nine++ | |||
next time I'm in the guts of an NQPRole I'll be sure to print out some details about what `self` actually is! | 17:04 | ||
does it make sense to keep the lookups as NQP hashes in the Raku implementation? (for size or speed considerations?) | 17:05 | ||
lizmat | yes | 17:09 | |
nqp::atkey is at least one magnitude faster than .AT-KEY | |||
ab5tract | ack | 17:12 | |
17:17
squashable6 left
17:20
squashable6 joined
17:41
sena_kun joined
17:45
squashable6 left
17:47
squashable6 joined
|
|||
ab5tract | weird, the overidden `Match!DELEGATE_ACCEPTS` doesn't get called :( | 17:52 | |
[Coke] | ab5tract++ btw. | 17:58 | |
18:00
reportable6 left
18:01
reportable6 joined
|
|||
ab5tract | thanks [Coke] :) | 18:22 | |
findings: 1) Defining `method !DELEGATE_ACCEPTS($obj, $arg) {...}` in Match.rakumod does not override that method in NQPMatchRole | 19:14 | ||
2) naming it Match!DELEGATE-ACCEPTS and calling `self."!DELEGATE-ACCEPTS"($obj, $arg)` from NQPMatchRole doesn't work (`No such method '!DELEGATE-ACCEPTS' for invocant of type 'Match'`) ... neither does using nqp::callmethod | 19:17 | ||
3) Defining `!DELEGATE_ACCEPTS` for Match in BOOTSTRAP.nqp doesn't override (and naming it `!DELEGATE-ACCEPTS` doesn't make it callable) | 19:19 | ||
nine | What about a non-private method? | 19:20 | |
ab5tract | 4) non-private works :) | 19:24 | |
sorry, forgot to mention that | 19:25 | ||
so would a regular method marked with `is implementation-detail` be the way to go then? | 19:27 | ||
nine | I think so | 19:30 | |
ab5tract | any known and relevant performance difference between nqp::findmethod($?CLASS, 'foo') vs nqp::findmethod(self, 'foo')? | 19:39 | |
if all things are equal, I'll go with `$?CLASS` since it has no dependency on an instance | 19:48 | ||
lizmat | yup, that sounds ok | 19:52 | |
ab5tract: private methods in NQP don't exist as such, they're normal methods of which the name starts with ! | |||
in Raku however, private methods are a different beast altogether | 19:53 | ||
they're kept separate from normal methods | |||
and are more akin to subs, except that they always have at least one positional arg, and that's "self" | |||
ab5tract | that explains why the overriding doesn't work :) | 19:56 | |
lizmat | you could make it work with .add_method("!DELEGATE_ACCEPTS", ... ) | ||
probably :-) | 19:57 | ||
Geth | rakudo/r5486: 026b6e3c96 | ab5tract++ | src/core.c/Match.rakumod Add lookup for translating General_Category longnames Also fix broken shortnames "L", "M", "N", "P", "S", "Z", and "C". This fixes R#5486 and R#5372. The problem this addresses is three-fold: ... (26 more lines) |
||
linkable6 | R#5486 [open]: github.com/rakudo/rakudo/issues/5486 [Unicode] Test for Unicode `General_Category` does not work with `L` | ||
linkable6 | R#5372 [open]: github.com/rakudo/rakudo/issues/5372 Test for Unicode `General_Category` does not work with long forms. | ||
19:58
linkable6_ left
20:00
linkable6_ joined
|
|||
[Coke] | in commit messages, #id is preferred over R#id (they get auto-linked by github then) | 20:04 | |
Nifty commit! | |||
(and it links the commit to the ticket) | 20:05 | ||
Geth | nqp/r5486: ad84f4ceb6 | ab5tract++ | src/QRegex/Cursor.nqp Add dispatching logic for an HLL override NQPMatchRole's `!DELEGATE_ACCEPTS` is not robust enough to handle the complexity of inputs that Raku gives it. So, offer the opportunity to override the behavior via a `DELEGATE-ACCEPTS` method defined in a consuming class/role. This is part of addressing Rakudo Issues #5486 and #5372 |
20:07 | |
rakudo/r5486: ba98824a8e | ab5tract++ | src/core.c/Match.rakumod Add lookup for translating General_Category longnames Also fix broken shortnames "L", "M", "N", "P", "S", "Z", and "C". This fixes #5486 and #5372. The problem this addresses is three-fold: ... (26 more lines) |
|||
ab5tract | [Coke] made me do it :) | ||
re: "you could make it work with .add_method("!DELEGATE_ACCEPTS", ... )" ... not sure about that, it wasn't working when I tried it in BOOTSTRAP.nqp but I may have been holding something wrong | 20:09 | ||
Geth | rakudo: ab5tract++ created pull request #5555: Add lookup for translating General_Category longnames |
20:10 | |
rakudo/r5486: c0ca6caa2f | ab5tract++ | src/core.c/Match.rakumod Add lookup for translating General_Category longnames Also fix broken shortnames "L", "M", "N", "P", "S", "Z", and "C". This fixes #5486 and #5372. The problem this addresses is three-fold: ... (23 more lines) |
20:11 | ||
ab5tract | ooo, #5555! and at $day-job I pulled MR #555 on a project today too | 20:12 | |
lizmat | :-) | 20:13 | |
nine | This looks much nicer now :) | 20:24 | |
ab5tract | Agreed! thank you both for your help and guidance | 20:26 | |
22:25
kjp left
22:47
sena_kun left
|
|||
releasable6_ | Next release in ≈19 hours. GitHub is down. There are no known blockers. Please log your changes in the ChangeLog: github.com/rakudo/rakudo/wiki/ChangeLog-Draft | 23:00 | |
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 |