Wikifunctions:Project chat/Archive/2023/09

From Wikifunctions

Wikifunctions & Abstract Wikipedia Newsletter #125 is out: Wikimania digest, CoSMo language, GFpedia demo, CCKS keynote

There is a new update for Abstract Wikipedia and Wikifunctions. Please, come and read it!

In this issue, we recap what happened at our sessions at Wikimania 2023, we talk about some new updates regarding our Natural Language Generation special interest group (NLG SIG), and we briefly speak about Denny's most recent keynote speech.

Want to catch up with the previous updates? Check our archive!

Enjoy the reading! -- User:Sannita (WMF) (talk) 10:35, 1 September 2023 (UTC)

This section was archived on a request by: Sannita (WMF) (talk) 07:41, 26 September 2023 (UTC)

Wikifunctions & Abstract Wikipedia Newsletter #126 is out: Let's start building morphological paradigms!

There is a new update for Abstract Wikipedia and Wikifunctions. Please, come and read it!

In this issue, Denny proposes a call for action for creating morphological paradigms on Wikifunctions.

Want to catch up with the previous updates? Check our archive!

Enjoy the reading! -- User:Sannita (WMF) (talk) 19:25, 10 September 2023 (UTC)

This section was archived on a request by: Sannita (WMF) (talk) 07:41, 26 September 2023 (UTC)

Next Wikifunctions & Abstract Wikipedia Volunteer's Corner on Monday 18

Hello all, this is a brief reminder that the next Wikifunctions & Abstract Wikipedia Volunteers' Corner will be held on September 18 at 17:30 UTC.

If you have questions or ideas to discuss, or you want to get in touch with the dev team, please join us! We will also hold a live demo on how to create a function.

The meeting will be held, as usual, on Jitsi at the following address:

See you there! -- Sannita (WMF) (talk) 12:25, 15 September 2023 (UTC)

This section was archived on a request by: Sannita (WMF) (talk) 07:41, 26 September 2023 (UTC)

Help please

Tracked in Phabricator:
Task T346006

I was trying to implement a test for Z10601, and struggled with the current capabilities of the interface. One idea I had was "Wednesday" ends in "day" (Z11042), which I had to put in as a test of string ends with (Z10618), even though it's secretly also testing the random selector. But "Wednesday" ends in "day" (Z11042) won't even do that, as it says I still have to "select function". But if you open the dropdown for the call, then the dropdown for the text, you'll see that I have selected it. So I think there's a bug, but am also struggling with how to make tests for this kind of function. --99of9 (talk) 01:32, 8 September 2023 (UTC)

Oh yeah, that is weird. Can confirm it shows up when editing the function. -wd-Ryan (Talk/Edits) 15:02, 8 September 2023 (UTC)
I'm not sure why I missed this before, but I've now found a simple way to do the same test on the function I was trying to test. Z11088. Nevertheless, I still don't see anything wrong with "Wednesday" ends in "day" (Z11042), and the runtime error messages there confuse me. --99of9 (talk) 00:48, 12 September 2023 (UTC)
Reminder that Wikifunctions does not support randomness for now. We always expect all functions to return functional, deterministic results, only dependent on the input. This is in order to allow for aggressive caching. I would strongly recommend to delete all functions that return random results.
Note that this has nothing to do with the actual bugs being raised here, I think, and which are tracked in Phabricator. --DVrandecic (WMF) (talk) 21:28, 29 September 2023 (UTC)
This section was archived on a request by: It looks like Phabricator will now do its magic. --99of9 (talk) 02:01, 29 September 2023 (UTC)

Aliases of a function name

I've tried to enter aliases for a function name. After saving and then reopening, I couldn't see them anywhere, so this seems to be a missing feature. Have I missed something? Is this already tracked? --99of9 (talk) 06:30, 13 September 2023 (UTC)

@99of9: After entering one alias, make sure you still have that text box highlighted, and press enter. Repeat for the next alias and save the page.
I have made the same mistake embarrassingly often but it has a ticket on the bug tracker. /Autom (talk) 10:42, 13 September 2023 (UTC)
Thanks, I'll remember that! --99of9 (talk) 10:48, 13 September 2023 (UTC)
I thought I would too, but still have edit comments like this. /Autom (talk) 10:53, 13 September 2023 (UTC)
I don't blame you, it isn't clear at all that it isn't just comma-separated. -wd-Ryan (Talk/Edits) 13:40, 13 September 2023 (UTC)
Just wanted to say that, as you can see by the open Phabricator tasks, this remains an open task with the Codex team. Agreed that this isn't ideal right now. --DVrandecic (WMF) (talk) 21:02, 29 September 2023 (UTC)
This section was archived on a request by: 99of9 (talk) 02:02, 29 September 2023 (UTC)

Editing sandboxes

I see Wikifunctions:Sandbox is open to editing for all editors, but as of before getting functioneer, the sandboxes listed there (e.g. Sandbox-Function (Z10119), the function sandbox) did not allow editing unless you have the right user access group. Is this intended? Skarmory (talk) 05:48, 1 September 2023 (UTC)

I think it’s an issue where you can’t let everyone edit a function (yet), only functioneers. Zippybonzo (talk) 10:56, 3 September 2023 (UTC)

Creating types

Hi, I just created the function is leap year (Gregorian calendar) (Z10996), but even if the input type should be a "year" (specifically a Gregorian year), as currently I think it's not possible to create a new type (tried creating Z11002 but not really a type, and I have not permissions to create an actual type) so I used instead directly a String (because numbers are not allowed yet either...). Even if this works for now, I think that in the future it would be needed to modify the function to use a proper type instead (for example, annother function is needed if the year follows the Julian calendar instead of the Gregorian calendar). I assume that new Types cannot be created by everybody, but only by admins because need to be agreed by the community (like the Wikidata properties). In my opinions each function should be as precise as possible regarding the types expected and returned, so users known clearly what to expect from the functions and to simplify implementations. Can anybody confirm if types are expected to be created just by admins? In any case, I propose to create a dedicated template like template:new type to temporally annotate those functions that should use a different type not available yet. Opinions? Thanks —Suruena (talk) 09:29, 2 September 2023 (UTC)

As far as I know, at the moment, Wikifunctions only support passing strings and bools to functions. Eventually it will be possible to define and pass any type. Creating functions dealing with other types is not recommended now and such existing ones are marked usually with (!) at the beginning of its name.
Currently, only staff can create new types but according to mw:Help:Wikifunctions/User rights, the ability will be eventually given to all functioneers. Msz2001 (talk) 13:58, 2 September 2023 (UTC)
@Suruena Hey, sorry for replying this late to your message. I suggest you to use Wikifunctions:Suggest a function in cases like this, so that we can take note of what type we should be focusing on more when developing the new types. Sannita (WMF) (talk) 15:59, 5 September 2023 (UTC)

Function maintainer requirements

I am proposing the following local requirements for the Wikifunctions:Maintainers group:

I will provide any reasoning for my individual points upon request, but it's mostly to ensure only trusted and experienced users can have the right to ensure that nothing gets broken accidentally. Zippybonzo (talk) 10:38, 4 September 2023 (UTC)

I think it is a bit too early to be setting out maintainer requirements, considering that the maintainer group has yet to be utilized. Currently only WF Staff can give out the maintainer group and with WF still in limited roll out, we should not be restricting what the staff wish to do with such a role until the group is handed over to the community to manage. On another note, these requirements are currently higher than the requirements to get administrator so that isn't great either. Terasail[✉️] 10:49, 4 September 2023 (UTC)
I agree with Terasail that it might be too early to define these requirements --Ameisenigel (talk) 17:08, 4 September 2023 (UTC)
It'd still be worth keeping this in mind for when group assignments are handed over to the community. Deauthorized (talk) 07:07, 5 September 2023 (UTC)

Wikifunctions & Abstract Wikipedia Newsletter #127 is out: Renderers and parsers for types

There is a new update for Abstract Wikipedia and Wikifunctions. Please, come and read it!

In this issue, Denny introduces a discussion about how to represent integers on Wikifunctions and its related challenges.

Want to catch up with the previous updates? Check our archive!

Enjoy the reading! -- User:Sannita (WMF) (talk) 08:07, 22 September 2023 (UTC)

I really appreciate these updates. I learn something every time. --99of9 (talk) 01:59, 29 September 2023 (UTC)
@99of9 That's encouraging and very sweet, thank you very much for this note. :) -- Sannita (WMF) (talk) 15:32, 29 September 2023 (UTC)
This section was archived on a request by: Terasail[✉️] 23:45, 5 October 2023 (UTC)

Open request for adminship

I have started a request for adminship for myself at Wikifunctions:Requests for user groups#Terasail which is set to close at 11:01, 6 October 2023 and would appreciate any input.

Thanks, Terasail[✉️] 11:03, 29 September 2023 (UTC)

This section was archived on a request by: Terasail[✉️] 23:48, 5 October 2023 (UTC)

Search issues

I think we should make search search for functions instead of mainspace because the current search is really hard to use to the point where it is nearly impossible to use. Zippybonzo (talk) 15:39, 3 September 2023 (UTC)

There's currently a bug with the inline autocomplete search (not showing any results), but if you click [enter] or the "Search" button it should give full search results. See the similar thread #Function exists? above.
If I've misunderstood which issue you're describing, please clarify further. Thanks! Quiddity (WMF) (talk) 18:57, 8 September 2023 (UTC)

Blocking policy?

Hello all. I will like to propose to introduce a local blocking policy (link). The page is largely based of its common's counterpart. CU & OS subsections can be commented out as we're likely not gonna have any local CU/OS anytime soon. Comments? Minorax (talk) 08:08, 3 September 2023 (UTC)

Seems good, we might end up with CU and OS so just leave that section as draft I would say. Zippybonzo (talk) 10:55, 3 September 2023 (UTC)
Support Support with the removal of the CU/OS sections and explicit mentions, the policy makes sense however I strongly disagree that they should be left as drafts since this is likley to just add to confusion and will imply that CU/OS blocks are local since they are on the local policy page. There is nothing stopping such sections just being added through discussion in the future. Terasail[✉️] 11:36, 3 September 2023 (UTC)
👍 · מקף Hyphen · 12:11, 3 September 2023 (UTC)
I Support Support generally, but I think it should include how would we handle the situation of a global block that needs to be whitelisted locally and users who need the ipblock-exempt permission. Also, I suggest removing the part of CU/OS as well. Xnet1234 (talk) 19:29, 3 September 2023 (UTC)
It seems better to exclude CU/OS block. When it is necessary to introduce it, it can be introduced either through a separate RFC or by forming a consensus. I agree with the rest. --Sotiale (talk) 11:34, 4 September 2023 (UTC)
Support Support with removal of CU/OS --Ameisenigel (talk) 17:06, 4 September 2023 (UTC)
Support Support with removal of CU/OS for now. Koavf (talk) 06:24, 9 September 2023 (UTC)

Unable to edit Z868

Tried to edit String to codepoint list (Z868) but was unable to do so as it does not have a return type set (and I could not set it to be anything; it appears to return a list of code points). Can anyone help with this? ネイ (talk) 11:38, 2 September 2023 (UTC)

Also there seems to be a bug with the Discussion Tool. On Talk:Z868 the sentence generated by Discussion Tool reads as follows (the span tag is shown): "You can use this page to start a discussion with others about how to improve String to list (<span dir="ltr">Z868</span>)." ネイ (talk) 11:39, 2 September 2023 (UTC)
Thanks for reporting! The DiscussionTools bug is tracked at phab:T344491. Quiddity (WMF) (talk) 19:42, 8 September 2023 (UTC)
It's missing an Output type, because the appropriate List type isn't supported yet. This Object (and similar ones) will be fixed by the development team once the relevant types has been finalized. See more context at Wikifunctions:Status#Only String and Boolean types are supported. I hope that helps. Quiddity (WMF) (talk) 19:45, 8 September 2023 (UTC)
Thank you for the pointers! Will wait and see whether they get resolved. ネイ (talk) 08:38, 10 September 2023 (UTC)

Page on Wikidata about interoperation with Wikifunctions

Heads up that I created a barebones page at d:Wikidata:Wikifunctions, as all the other sister projects have similar such pages. It would be great if users here who are motivated to figure out how the two projects can work together would help flesh out that page. Thanks. ―Justin (koavf)TCM 08:28, 14 September 2023 (UTC)

@Koavf Thank you very much! Sannita (WMF) (talk) 12:22, 15 September 2023 (UTC)

Can categories be added to main namespace pages?

This project doesn't use categories at all in the main namespace. Consequently, special pages like Special:UncategorizedPages become useless because they are flooded by entries. Is it possible on a technical level to add something like Category:All functions to just make one category that all of these are in to clear out that special page into something that can be reasonably used? If that is not possible locally, is there at least consensus to make a ticket at phab: for this feature? ―Justin (koavf)TCM 06:04, 17 September 2023 (UTC)

I think it's better to configure Wikifunctions with the settings of Wikidata as the concept is the same. Minorax (talk) 06:52, 17 September 2023 (UTC)
The same problem exists on Wikidata. ―Justin (koavf)TCM 07:47, 17 September 2023 (UTC)
@Koavf: Unfortunately, the "categories" system in MediaWiki is a wikitext-exclusive feature. There has been discussion for over a decade about changing this (e.g. as part of T112999 and other broad topics), for which I've gently lobbied, but it'd cost a awful lot to change over to a proper system[1] for marginal use cases[2], so hasn't been seriously explored.
There's an existing, much simpler, feature request at T305363 to provide a way to hide non-wikitext pages from such listings, but I'd just recommend you not waste time looking at them.

  1. I'd roughly guesstimate a couple of years and a few million US$ in development cost, and maybe a tenth of that for new servers/etc. depending on desired feature set. Requested features like T5311 would become possible, but would also add to the cost, for example.
  2. To be clear, marginal use cases for Wikipedias, which dominates general MediaWiki development discussions; obviously here on Wikifunctions, or over on Wikidata, this would have immediate utility, plus also on Gadgets' pages etc..
  3. Jdforrester (WMF) (talk) 11:26, 18 September 2023 (UTC)
    Thanks, JD. That's a little disheartening, but good to know. Very thorough response. ―Justin (koavf)TCM 12:43, 18 September 2023 (UTC)

    Translation Administrator requirements

    There are currently no local or Meta-Wiki requirements for Translation Administrator and the guidelines currently listed at Wikifunctions:Translation administrators#Requirements are currently pulled from Administrator requrements in order to have a baseline for steward requests. This will be unique to Wikifuntions since all other projects rely on bureaucrats to decide when to grant TA. I am proposing that Wikifunctions replaces what is currently listed and adds the following requirements:

    • Create a new discussion section requesting the user group at Wikifunctions:Requests for user groups#Translation administrator.
    • Allow 1 week for any discussion.
    • The candidate must obtain at least 2/3 (two thirds) support.
    • Present a sample edit to demonstrate your practical experience with the translation syntax (Suggestion from Minorax)

    This should clear things up since the active guidelines were never considered by the community and just added by myself which shouldn't stand for a long period of time.

    Do you think this is a positive change and do you have any thoughts? Terasail[✉️] 11:57, 3 September 2023 (UTC)

    Seems fine. However, I'd like the requester to have an example of how they would use the tool if granted (similar to the requirements on meta). Minorax (talk) 13:36, 3 September 2023 (UTC)
    That is a good idea, I had not thoroughly read through the Meta-Wiki policy but "Present a sample edit to demonstrate your practical experience with the translation syntax" is a good idea. I will add it above, Thanks. Terasail[✉️] 16:15, 3 September 2023 (UTC)
    Looks good to me --Ameisenigel (talk) 17:06, 4 September 2023 (UTC)
    I have added these changes to Wikifunctions:Translation administrators Terasail[✉️] 16:02, 22 September 2023 (UTC)

    Will python or javascript functions be able to call other wikifunctions?

    I hope so. Can they already? --99of9 (talk) 03:45, 18 September 2023 (UTC)

    Eventually yes, but it's not a superurgent feature for us right now. -- DVrandecic (WMF) (talk) 00:17, 23 September 2023 (UTC)

    Wikifunctions & Abstract Wikipedia Newsletter #128 is out: Serializers and deserializers for types

    There is a new update for Abstract Wikipedia and Wikifunctions. Please, come and read it!

    In this issue, Denny introduces a discussion about how to make types easier to use, by discussing serializers and deserializers, and their role in Wikifunctions.

    Want to catch up with the previous updates? Check our archive!

    Enjoy the reading! -- User:Sannita (WMF) (talk) 16:47, 29 September 2023 (UTC)

    Also, a brief reminder/highlight that the next "Wikifunctions & Abstract Wikipedia Volunteers' Corner" will be held on October 2 at 13:30–14:00 UTC (earlier than the previous) in an open video call meeting (using Google Meet).
    If you have questions or ideas to discuss, or you want to get in touch with the dev team, please join us! We will also hold another live demo on how to create a function. Quiddity (WMF) (talk) 20:01, 29 September 2023 (UTC)
    This section was archived on a request by: Sannita (WMF) (talk) 16:35, 22 October 2023 (UTC)

    Versions of languages?

    What are the current versions of languages(Python and Javascript) which evaluators use? What happens when bumping the language? Would implementation be broken by the upgrade? Lens0021 (talk) 00:25, 28 September 2023 (UTC)

    We're currently running node v16.17.1 and python v3.9.2.
    One of our plans is to separate the runners into different versions of Python and Node, and let you write code against specific versions instead of the current generic "JavaScript" and "Python" tags. This adds flexibility (but also complexity!) to the on-wiki lifecycle. For instance, you'd write an implementation for Python 3.10 and tag it as such, and thus the system would only run it on Python 3.10 runners. At some point, Python 3.11 runners would be added, and a community member could check the code behaves as expected and update its tag to also run there (or not). As we upgraded production, eventually they'd be no Python 3.10 runners left, and so the implementation would be stranded, never to be run (and would show up on report pages as un-runnable implementations). However, none of this work has been done yet, so specifics may change! Jdforrester (WMF) (talk) 14:07, 28 September 2023 (UTC)

    Object annotations

    Hi, I think it would be very useful and powerful to "annotate" with extra information each kind of object, for example:

    • type: granularity, range, modulo, holes, physical units, measurement scale (nominal, ordinal, interval, ratio)...
    • function: pre-conditions, post-conditions...
    • implementation: computational complexity, space complexity, algorithm used...
    • test: nominal / robustness / boundary test, autocoded test...

    Of course these are just examples, and it can be argued whether each one should be available or not, but the general capability to add this "semantic information" that can be used by different tools (e.g. tools to check if every function is tested with both nominal, boundary, and robustness tests). Maybe "keys" can already be used to annotate objects with these different annotation, or otherwise we can use templates in the talk pages temporally until Wikifunctions support this concept. Do you think keys can be used for that? Which additional annotations do you think can be added? Thanks! —Suruena (talk) 09:11, 2 September 2023 (UTC)

    There's a similar request in Phabricator, T344038. I think that the idea is great, and would be very interesting to implement, but for now I would like to see it, as you suggest, implemented through talk pages and templates, so that we can see about its usefulness, and then partially implement with keys, when we find something particularly useful. Some of these things, such as the complexity class for a problem, I think really belongs on Wikidata (especially if these are theoretical results with their own paper, etc.) In the end, this can be tremendously useful - think of the way annotation on properties have developed on Wikidata - and I think using the talk pages in that way is a good way to kick this work off without waiting for resources from the development team. --DVrandecic (WMF) (talk) 21:18, 29 September 2023 (UTC)

    Running in a web browser

    I see that function calls are currently restricted to logged in users. Maybe a way to make it less resource intensive would be to be able to run functions in the browser? JavaScript is obviously feasible, and Pyodide makes Python feasible as well. PiperMcCorkle (talk) 21:37, 25 September 2023 (UTC)

    Yes, that is a good idea. We are currently working on putting our runtimes on top of WASM, and I am looking forward to explore pushing execution to the edge, i.e. to the user's browsers. I am not sure when the development team will get to this, but for now, if anyone wants to explore this further, this would be great. It might take a while until we get to it. -- Denny (talk) 22:04, 29 September 2023 (UTC)

    Circular compositions

    I just made a composition for remove at end (Z11170) using replace at end (Z11178), but then saw that there's already a composition for replace at end (Z11178) using remove at end (Z11170). Will these loops of compositions cause problems? I imagine it would be hard not to if they were the only implementations of both functions!? --99of9 (talk) 01:58, 29 September 2023 (UTC)

    They *shouldn't* (TM) cause an issue beyond failing if there is no other implementation. It shouldn't be the contributors job to worry about potential circular compositions (also, note, that we explicitly support recursive compositions). -- Denny (talk) 22:02, 29 September 2023 (UTC)

    It's technically not the exact test, but the alternative [two sets of double quotes, i.e. Compact JSON of "{ "x" : 2 }" should be "{"x":2}"] felt weird. Infernostars (talk) 16:13, 29 September 2023 (UTC)

    I assume you're talking about the label? I'd be tempted to remove the outer quotes on both of them, and leave " for the actual test. So it would be: Compact JSON of { "x" : 2 } should be {"x":2} . But I don't think it matters too much. --99of9 (talk) 22:59, 4 October 2023 (UTC)

    Gateway timeout. Is Wikifunctions overloaded already?

    I wrote a composition implementation of string is element of CSV (Z11094), and have noticed that the simple test cases often timeout. The composition requires quite a few sub-calls, but nothing is inherently computationally expensive. Since I'm currently the only editor in recent changes, I seem to be stressing WF on my own!? Is scalability going to be a big issue? --99of9 (talk) 01:33, 14 September 2023 (UTC)

    @99of9: Thanks much for calling attention to this. I see there was a flurry of RequestTimeoutException during August 24-28, then none of those until September 14, when some more of them occurred. We will continue to monitor this. One question: when you observed these timeouts, did the UI show you an explicit timeout error message? (If so, and if you see it again, please copy it to here.) Thanks! DMartin (WMF) (talk) 04:23, 15 September 2023 (UTC)
    @DMartin (WMF): Yes, I can still reproduce it. Go here, then if any of the top three tests fail with an X, click details. In my case I see the second test failing, then get the following details:

    composition of substring tests

    string split across two elements is not an element

    Error summary: [Z507/Error in evaluation] {"Z1K1":"Z7","Z7K1":{"Z1K1":"Z8","Z8K1":["Z17",{"Z1K1":"Z17","Z17K1":"Z6","Z17K2":"Z11094K1","Z17K3":{"Z1K1":"Z12","Z12K1":["Z11",{"Z1K1":"Z11","Z11K1":"Z1002","Z11K2":"string"}]}},{"Z1K1":"Z17","Z17K1":"Z6","Z17K2":"Z11094K2","Z17K3":{"Z1K1":"Z12","Z12K1":["Z11",{"Z1K1":"Z11","Z11K1":"Z1002","Z11K2":"comma-separated value series"}]}}],"Z8K2":"Z40","Z8K3":["Z20","Z11095","Z11097","Z11100","Z11106","Z11107","Z11108","Z11109","Z11110"],"Z8K4":["Z14","Z11099"],"Z8K5":"Z11094"},"Z11094K1":"day,Wed","Z11094K2":"Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday"} Validator error summary: [Z507/Error in evaluation] Expected result: {"Z1K1":"Z40","Z40K1":"Z42"} Actual result: {"Z1K1":"Z5","Z5K1":"Z507","Z5K2":{"Z1K1":{"Z1K1":"Z7","Z7K1":"Z885","Z885K1":"Z507"},"K1":"{\"Z1K1\":\"Z7\",\"Z7K1\":{\"Z1K1\":\"Z8\",\"Z8K1\":[\"Z17\",{\"Z1K1\":\"Z17\",\"Z17K1\":\"Z6\",\"Z17K2\":\"Z11094K1\",\"Z17K3\":{\"Z1K1\":\"Z12\",\"Z12K1\":[\"Z11\",{\"Z1K1\":\"Z11\",\"Z11K1\":\"Z1002\",\"Z11K2\":\"string\"}]}},{\"Z1K1\":\"Z17\",\"Z17K1\":\"Z6\",\"Z17K2\":\"Z11094K2\",\"Z17K3\":{\"Z1K1\":\"Z12\",\"Z12K1\":[\"Z11\",{\"Z1K1\":\"Z11\",\"Z11K1\":\"Z1002\",\"Z11K2\":\"comma-separated value series\"}]}}],\"Z8K2\":\"Z40\",\"Z8K3\":[\"Z20\",\"Z11095\",\"Z11097\",\"Z11100\",\"Z11106\",\"Z11107\",\"Z11108\",\"Z11109\",\"Z11110\"],\"Z8K4\":[\"Z14\",\"Z11099\"],\"Z8K5\":\"Z11094\"},\"Z11094K1\":\"day,Wed\",\"Z11094K2\":\"Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday\"}","K2":{"Z1K1":"Z5","Z5K1":"Z500","Z5K2":{"Z1K1":{"Z1K1":"Z7","Z7K1":"Z885","Z885K1":"Z500"},"K1":"Gateway Timeout"}}}}

    --99of9 (talk) 11:31, 17 September 2023 (UTC)

    @99of9:, thanks! Using your instructions, I saw the same error myself 2 or 3 times during the last couple days, but today it's not occurring for me, plus the tests seem to finish considerably faster. Afraid I can't explain the improvement, but will continue to monitor. In the meantime, your implementation page has brought to light a bad bug: after clicking on any of the Details links, the page freezes. I can't do anything else until I refresh the tab. I'm wondering if this is specific to my OS/browser combination. Have you also seen this behavior?
    DMartin (WMF) (talk) 05:28, 21 September 2023 (UTC)
    @DMartin (WMF): Yes, that happens to me too at the moment. I can't remember if it was different before. --99of9 (talk) 05:52, 21 September 2023 (UTC)
    The page-freezing issue has been addressed (T346972), and the fix should be deployed to production in a couple days. The gateway timeout issue, happily, is still not recurring. DMartin (WMF) (talk) 19:08, 2 October 2023 (UTC)
    @DMartin (WMF): I've now seen the Gateway timeout here: has and is lowercase composition (Z11386). --99of9 (talk) 01:22, 9 October 2023 (UTC)
    @DMartin (WMF): It's also popping up a lot in the compositions for this series of functions: discard from start of first substring (Z11410) discard from end of first substring (Z11412) discard until start of first substring (Z11418) discard until end of first substring (Z11420) discard from start of last substring (Z11414) discard from end of last substring (Z11416) discard until start of last substring (Z11422) discard until end of last substring (Z11424). --99of9 (talk) 23:50, 15 October 2023 (UTC)