On 2024-08-11 at 18:34:30 UTC-0400 (Sun, 11 Aug 2024 18:34:30 -0400)
Richard L. Hamilton <[email protected]>
is rumored to have said:

Semi-understandable. The default system action for SIGWINCH is to do nothing; i.e. only programs that catch it are even aware of it. That would usually be programs like text editors that do full-window text handling, and probably need to re-fetch the current size and redraw on window size change.

Right. It is clearly a bug.

Makes me wonder if they're using libncurses or something like it, but not using it properly.

The Apple build uses libedit. If I build the current version source with or without --enable-editline, I cannot reproduce the bug. Looks like an Apple-specific problem.


From sigaction(2) on Monterey, the signals that do nothing by default (although in the case of SIGCHLD at least, ignoring it is a bit different from the default):

SIGURG discard signal urgent condition present on socket
     SIGCONT         discard signal          continue after stop
     SIGCHLD         discard signal          child status has changed
SIGIO discard signal I/O is possible on a descriptor
     SIGWINCH        discard signal          Window size change
SIGINFO discard signal status request from keyboard

Right, but anything that does interactive command line editing like bc needs to handle SIGWINCH.

I'm not seeing the problem on Ventura, which uses the Gavin Howard bc (if perhaps not the same version as on Sonoma, which I don't have).

Firmly setting the bug in Apple's lap.



On Aug 11, 2024, at 10:37, Bill Cole <[email protected]> wrote:

On 2024-08-11 at 03:08:11 UTC-0400 (Sun, 11 Aug 2024 02:08:11 -0500)
Ryan Carsten Schmidt <[email protected] <mailto:[email protected]>>
is rumored to have said:

On Aug 11, 2024, at 00:03, Richard L. Hamilton wrote:

The MacPorts version uses MacPorts supplied libraries (other than libSystem). The macOS version uses macOS supplied libraries. (ultimately from the same open source projects, but potentially different versions and build options, so not identical code)

It's *not* the same software. MacPorts has GNU bc 1.07 which is licensed GPL-3. macOS used to have GNU bc 1.06 released back in 2000 under GPL-2. Apple has switched to someone else's bc implementation in recent macOS probably because as we know Apple is allergic to GPL-3.

The macOS bc is Gavin Howard's version which is also used in FreeBSD. It integrates both the GNU additions to the POSIX-standard bc and its own additions, some of which came from the original BSD bc. There has been a steady trickle of bug fixes since the version Apple ships on Sonoma, some of which reference macOS.

Looking at the man page, I'd bet that exiting when the terminal geometry changes is understandable, since making that change sends a WINCH signal and bc resets on signals for which it has no handler. That gap seems like a bug to me, but one to report to the author or Apple.


[email protected] <mailto:[email protected]> or [email protected] <mailto:[email protected]> (AKA @[email protected] <mailto:[email protected]> and many *@billmail.scconsult.com addresses)
   Not Currently Available For Hire


--
Bill Cole
[email protected] or [email protected]
(AKA @[email protected] and many *@billmail.scconsult.com addresses)
Not Currently Available For Hire

Reply via email to