bug-ncurses
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [bug-ncurses] ncurses 6.0 and cur_term function


From: Thomas Dickey
Subject: Re: [bug-ncurses] ncurses 6.0 and cur_term function
Date: Sun, 27 Sep 2015 20:08:54 -0400
User-agent: Mutt/1.5.21 (2010-09-15)

On Mon, Sep 21, 2015 at 12:12:04PM +0200, Dr. Werner Fink wrote:
> On Mon, Sep 21, 2015 at 05:09:40AM -0400, Thomas Dickey wrote:
> > On Mon, Sep 21, 2015 at 10:47:54AM +0200, Dr. Werner Fink wrote:
> > > 
> > > Does this mean I should switch over to use several tinfo libraries, one
> > > for threaded and one for wide+threaded?
> > 
> > As I said, there are pros/cons:
> > 
> > pro:
> > a) making one tinfo library is doable, and (mostly) reduces the number of
> >    libraries.
> > b) functions are bound to the same external symbols.  Global variables are
> >    not -- they are renamed and wrapped in a macro so that I could enforce
> >    readonly access to help with mutexes.
> > c) most applications calling the terminfo level use only the functions.
> > 
> > con:
> > a) the renaming of global variables isn't (can't be) binary-compatible with
> >    applications compiled on another platform.
> > b) applications which attempt to declare those variables for themselves are
> >    broken either way, but break noticeably when linked with the renamed
> >    variables.
> > c) there are a few useful configuration choices (wide/normal, 
> > thread/nonthread)
> >    with variations.  I made it possible (by overriding the choice of 
> > map-file)
> >    to switch between the choices (or even generating a new set of map-files 
> > --
> >    I'm slow -- too many things in progress -- but do intend documenting the
> >    scripts...).
> > 
> > > On OpenSUSE the libncurses6 is threaded as well as libncursesw6.  IMHO
> > > it makes no sence to use a third library which is none threaded as this
> > > will make users more disoriented.
> > > 
> > > And what does `bent the rules' mean here? AFAICS and AFAIK the libtinfo
> > > for both libncurses6 (which is threaded) as wel las libncursesw6 are
> > > binary comptible.
> > 
> > more/less along the lines of surprising the developer by putting libncursest
> > in a file that says libncurses
> 
> Just my two cents worth I had the thought that starting with ABI 6 it would
> make a lot of sense to provide noadays the ABI 6 in a threaded version only.
> This because a lot of modern programs are required to use thread safe 
> libraries.

Some are, but almost all of the ones that I notice (and reply to) have
trouble using threads in C.  I don't recall more than 1-2 who have built
ncursest/ncursestw (since few packages provide it) and written something
useful.

The purpose of ABI 6 was the colors/mouse extensions.  The thread-support
is (like normal/wide characters) mostly independent of the ABI 5/6.  But
unlike normal/wide, while it's arguably API-compatible, it's not
ABI-compatible.
 
> I had tried also a lot of version and one was the matrix
> 
>        without t and without w
>        with t and without w
>        without t and with w
>        with t and with t
> 
> for ABI 6 and similar for ABI 5 causing a lot of libraries together with
> a lot of runtime configurations and a huge number of bug reports which
> indeed had been done because users had lost overview (which user does
> read manuals and/or guides) and/or had mixed the several versions out of
> the matrix and sometime between the two ABI versions.

users don't read FAQs either (not much I can do about that...)

-- 
Thomas E. Dickey <address@hidden>
http://invisible-island.net
ftp://invisible-island.net

Attachment: signature.asc
Description: Digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]