git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [Test Breakage 2.46.0-rc0] Test t0021.35 fails on NonStop

From
brian m. carlson <sandals@crustytoothpaste.net>
Date
Jul 14, 2024, 18:15 UTC
Message-ID
<ZpQVwyVQT8Wf5AeX@tapette.crustytoothpaste.net>
In-Reply-To
<xmqqttgr9aeb.fsf@gitster.g>
On 2024-07-14 at 17:00:12, Junio C Hamano wrote:
Show 29 quoted lines
> <rsbecker@nexbridge.com> writes:
> 
> > This looks like a different between ksh and bash. Under bash, the test
> > works. I can live with that but will have to force bash to be used as the
> > shebang #!/bin/sh defaults to ksh on this box.
> 
> It turns out that the version of ksh I used in my description does
> not seem to grok "local" at all. I vaguely recall that we've written
> off various hobbist reimplementation of ksh as unusable enough, but
> this one is ksh93 direct from AT&T Research.
> 
> I guess when we said "as long as we limit our use to a simple 'this
> variable has visibility limited to the function and its children'
> and nothing else, it is portable enough across practically everybody
> we care about", we have written off the real ksh, too.
> 
> In the meantime, we may want to document this in a more prominent
> way.  Perhaps like so:
> 
> -------- >8 --------------- >8 --------------- >8 --------
> Subject: doc: guide to use of "local" shell language construct
> 
> The scripted Porcelain commands do not allow use of "local" because
> it is not universally supported, but we use it liberally in our test
> scripts, which means some POSIX compliant shells (like "ksh93") can
> not be used to run our tests.
> 
> Document the status quo, and hint that we might want to change the
> situation in the fiture.

I don't think this is the right approach. Every version of ksh _except_ AT&T ksh works just fine here. pdksh, mksh, lksh, OpenBSD's ksh (which is also its /bin/sh) work fine, as do bash, dash, FreeBSD's sh (ash), Busybox's sh (also ash), and zsh (when run in sh mode with 5.9 or newer). AT&T ksh is considering adding local in a newer version for this reason.

Literally only AT&T ksh is not supported here, and so anyone can set SHELL_PATH to any suitable shell. I don't think it's useful to get rid of local when there are a variety of acceptable and portable options.

-- 
brian m. carlson (they/them or he/him)
Toronto, Ontario, CA
Previous: rsbecker@nexbridge.comNext: rsbecker@nexbridge.com
Message 6 of 18 in “[Test Breakage 2.46.0-rc0] Test t0021.35 fails on NonStop”
  1. rsbecker@nexbridge.comJul 13, 2024
  2. Junio C HamanoJul 14, 2024
  3. rsbecker@nexbridge.comJul 14, 2024
  4. Junio C HamanoJul 14, 2024
  5. rsbecker@nexbridge.comJul 14, 2024
  6. brian m. carlsonJul 14, 2024
  7. rsbecker@nexbridge.comJul 14, 2024
  8. brian m. carlsonJul 14, 2024
  9. rsbecker@nexbridge.comJul 14, 2024
  10. Junio C HamanoJul 15, 2024
  11. rsbecker@nexbridge.comJul 15, 2024
  12. Junio C HamanoJul 15, 2024
  13. rsbecker@nexbridge.comJul 15, 2024
  14. Junio C HamanoJul 15, 2024
  15. rsbecker@nexbridge.comJul 15, 2024
  16. Junio C HamanoJul 15, 2024
  17. Eric SunshineJul 14, 2024
  18. rsbecker@nexbridge.comJul 14, 2024

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.