Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: Test failures in --disable-multibyte

dana wrote on Tue, Dec 31, 2019 at 14:23:47 -0600:
> On 31 Dec 2019, at 12:39, Daniel Shahaf <d.s@xxxxxxxxxxxxxxxxxx> wrote:
> > given that so many
> > tests fail — and failed in 5.7.1 too — I wonder whether anyone actually builds
> > zsh with --disable-multibyte.
> See workers/44272. Some people apparently do test with it at least.

Thanks; I'd forgotten about it.

In Gentoo, USE flags can be set globally (like /etc/make.conf in FreeBSD), so
it's not even clear that someone was specifically interested in a Unicode-less
zsh; for all I know, someone was just doing a QA run, building all packages
under various configurations.

> Re: systems without wide-character support, i'm not very familiar, but the zsh
> in Optware (package system for embedded devices) seems to use the defaults,
> fwiw

Thanks, that's a useful data point.

Peter Stephenson wrote on Tue, Dec 31, 2019 at 19:46:23 +0000:
> On Tue, 2019-12-31 at 18:39 +0000, Daniel Shahaf wrote:
> > In the circumstances, I wonder if we should just make those functions a hard
> > dependency and remove the --disable-multibyte (#ifndef MULTIBYTE_SUPPORT)
> > codepaths entirely.
> It's not generally expected you'll want to disable multibyte explicitly,
> but it tests the case you get if you have a system which doesn't have
> the required multibyte support.  It's not clear if zsh gets compiled on
> such systems now --- they won't be very common but there might be some
> deliberately reduced systems for low-level use.  These only need testing
> in a similarly limited fashion.

This state of affairs doesn't sound quite right.  If those codepaths need
testing, the test suite should be made to pass in that configuration, so that
bugfixes would be able to be tested for unintended side effects.  With no
working test suite and no known users, it sounds like --disable-multibyte is
_de facto_ unsupported, but we are not ready to officially pull the plug on it
due to the possibility of it being used on a C99-less embedded system
somewhere.  So, how about having NEWS in 5.8 say that unless someone asks us to
continue supporting --disable-multibyte, it will become unsupported and may be

(For what it's worth, even on embedded systems it should be trivial to implement
the requisite standard library functions¹ for the ASCII-only subset of inputs
in terms of the C89 standard library, which we already require.)



¹ configure.ac requires the following functions to be available:

  iswalnum iswcntrl iswdigit iswgraph iswlower iswprint iswpunct iswspace iswupper iswxdigit
  mbrtowc wcrtomb
  towupper towlower
  wcschr wcscpy wcslen wcsncmp wcsncpy
  wmemchr wmemcmp wmemcpy wmemmove wmemset

Messages sorted by: Reverse Date, Date, Thread, Author