On Wednesday, July 24, 2024 at 01:50:16 AM GMT+3, brian m. carlson <sandals@xxxxxxxxxxxxxxxxxxxx> wrote: > We explicitly allow `local` in our coding guidelines. Yeah. I missed the guidelines initially, but I got to the same conclusion with git-prompt.sh - to allow only "local" exception. > As a side note, > Debian requires it of all shells that can be used as `/bin/sh`. I wasn't aware of that, but it does makes sense to me. > ksh93u+m is planning on adding local in a future revision. That's nice. I did try to check whether it's planned, and request if it wasn't, but I didn't find the future plans (but also didn't try too hard). Though I think they're still doing bug fixes for the forseeable future, which is also great. Looking forward to it. However, while they do have typeset (in non-posix 'function foo()...), it has syntactic scope and not dynamic like with "local", so it wouldn't be a trivial mapping to an existing functionality. "local" is so useful, and with minimal application restrictions it's already effectively portable with very few exceptions, but ksh93[u+m] is indeed one of the notable ones. I think was a missed opportinity that POSIX 2024 didn't include "local" (I know it was discussed). It is possible to implement the functionality compliantly and even with reasonable syntax, no tricks, and very good performance, but it's not the same as being officially supported.