Message-Id: <201001031346.o03DkfBl030049@delorie.com> X-Recipient: archive-cygwin AT delorie DOT com X-SWARE-Spam-Status: No, hits=-3.8 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_00,DATE_IN_PAST_12_24,MISSING_MID X-Spam-Check-By: sourceware.org X-SWARE-Spam-Status: No, hits=-3.6 required=5.0 tests=AWL,BAYES_00,MISSING_MID,RCVD_IN_DNSWL_LOW,SPF_PASS From: Charles Wilson Date: Sat, 02 Jan 2010 15:58:15 -0500 Subject: [ANNOUNCEMENT] New: libncurses10-5.7-18; Updated: {ncurses/libncurses-devel/ncurses-demo}-5.7-18 To: cygwin AT cygwin DOT com Reply-To: cygwin AT cygwin DOT com Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com ncurses is a package that provides character and terminal handling libraries, including 'gui-like' panels and menus. It is often used instead of termcap. Like the (new) ncursesw packages, it is compiled with support for reentracy, and uses and uses the same ABI number ("10" on cygwin for historical reasons; "ABI 6" according to the upstream ncurses developers). ncurses is not compiled with full multi-thread support, as that slows operation drastically (see below). Note that this "reentrancy" support doesn't magically make your client programs/libraries re-entrant. Internal to libncurses, all calls carry a specific context variable. However, the POSIX curses interface still specifies calls that operate on the "current screen" -- an obvious re-entrancy violation. Clients must instead use the non-POSIX extensions provided by ncurses, to ensure that all curses operations are actually re-entrant. That is: POSIX: int addch(const chtype ch); REENTRANT: int waddch(WINDOW *win, const chtype ch); Naturally, if reentrancy is not a concern, the POSIX interface can continue to be used as always. See the man pages for more information. Clients can be made threadsafe, by universally using the reentrant interfaces, and managing mutexes on the WINDOW* variables manually. If ncurses were compiled with full thread support, the WINDOW object would itself contain a mutex, and all ncurses calls would use it to manage access. This slows ncurses to a crawl -- even in single-thread applications. Therefore, I believe the better choice is to compile ncurses with support for re-entrancy, so that multi-thread client apps that actually NEED thread safety can use it, and make intelligent decisions This is feature release, and an update to latest upstream. It is compiled with support for reentrancy, and so breaks the previous ABI. Therefore, the runtime package and DLLs have been renamed to reflect the new ABI. [[ compiled using gcc-4.3.4-3 ]] As expected now that cygwin-1.7.1 has been officially released, this ncurses package is available exclusively for cygwin-1.7. MAINTAINERS: You must now specify explicitly -I/usr/include/ncurses when compiling against ncurses. The package no longer provides in the top /usr/include directory symlinks to the header files in /usr/include/ncurses. This is for compatibility/interop with the wide ncurses library. cygwin-1.7 now supports UTF-8 encoding by default. It is expected that the "wide char" version of ncurses, ncursesw, will be of increasing utility for clients as time goes on. Maintainers, I recommend that you first attempt to rebuild your applications against libncursesw, and only use libncurses if it doesn't work, and you can't figure out how to fix it right away. See ncursesw.README for more information. CHANGES since 5.7-16 ======================== o Update to 20091227 patchset o compile with reentrancy and various other ABI-breaking changes (also don't use broken-linker). Now at ncurses API #6 (that is, cygwin ncurses ABI #10). o Fix hint files o Remove symlinks in /usr/include/ to /usr/include/ncurses/* o Because the API changes (upstream "ABI 5" vs "ABI 6") are handled transparently by macros, we assist clients that explicitly search for ncurses5-config by providing it as a symlink to ncurses6-config. (Suggestion by Yaakov Selkowitz) o Add symlinks in /usr/lib/ncurses/ to the import, static, and libtool libs in /usr/lib/. Also symlink pkgconfig. Charles Wilson volunteer ncurses[w] maintainer for cygwin ==================================================================== To update your installation, click on the "Install Cygwin now" link on the http://cygwin.com/ web page. This downloads setup.exe to your system. Then, run setup and answer all of the questions. *** CYGWIN-ANNOUNCE UNSUBSCRIBE INFO *** If you want to unsubscribe from the cygwin-announce mailing list, look at the "List-Unsubscribe: " tag in the email header of this message. Send email to the address specified there. It will be in the format: cygwin-announce-unsubscribe-you=yourdomain DOT com AT cygwin DOT com If you need more information on unsubscribing, start reading here: http://sourceware.org/lists.html#unsubscribe-simple Please read *all* of the information on unsubscribing that is available starting at this URL. -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple