Hi! Bison uses mbswidth to track locations in grammar files. We recently strengthened the test suite on this regard. It is reported to work well on GNU/Linux and MacOS, but Kiyoshi reported a failure on Solaris with UTF-8 (http://lists.gnu.org/archive/html/bug-bison/2019-04/msg00020.html):
> 127. diagnostics.at:130: testing Tabulations and multibyte characters ... > ./diagnostics.at:130: perl -p -e 's{</?\w+>}{}g' <experr.orig >experr > ./diagnostics.at:130: LC_ALL=en_US.UTF-8 bison -fcaret -Wall input.y > --- experr 2019-04-30 07:15:36.726301382 +0000 > +++ /tmp/bison-3.3.90/tests/testsuite.dir/at-groups/127/stderr 2019-04-30 > 07:15:36.759788751 +0000 > @@ -10,9 +10,9 @@ > input.y:14.4-17: warning: empty rule without %empty [-Wempty-rule] > 14 | d: {éééééééééééé} > | ^~~~~~~~~~~~~~ > -input.y:15.4-17: warning: empty rule without %empty [-Wempty-rule] > +input.y:15.4-20: warning: empty rule without %empty [-Wempty-rule] > 15 | e: {∇⃗×𝐸⃗ = -∂𝐵⃗/∂t} > - | ^~~~~~~~~~~~~~ > + | ^~~~~~~~~~~~~~~~~ > input.y:16.4-17: warning: empty rule without %empty [-Wempty-rule] > 16 | f: { 42 } > | ^~~~~~~~~~~~~~ The error (three more columns than expected) seems to indicate something related to the combining arrow. Maybe I'm expecting in the test suite something which is not guaranteed to work universally? Kiyoshi reported what seems to be proper support of UTF-8, but maybe the problem is in the Unicode version supported by the platform? > $ LANG=en_US.UTF-8 > $ export LANG > $ LC_ALL=en_US.UTF-8 locale > LANG=en_US.UTF-8 > LC_CTYPE="en_US.UTF-8" > LC_NUMERIC="en_US.UTF-8" > LC_TIME="en_US.UTF-8" > LC_COLLATE="en_US.UTF-8" > LC_MONETARY="en_US.UTF-8" > LC_MESSAGES="en_US.UTF-8" > LC_ALL=en_US.UTF Thanks!