Pyro 4.75:
- fixed distributed-mandelbrot example to actually run multiple concurrent calculations.
- CI build process now using more modern Python versions.
- missing API method doc added on NameServer.count()
This update was provided by Thomas E. Dickey in private email.
2018/03/06
+ update versioned-symbol list for reRegisterCDKObject (prompted by
Debian #892114, which adopted a different set of symbol versions
such as "5.0.20161120", cf: 2014/11/06).
+ updated configure macros, from lynx development: CF_CURSES_FUNCS,
CF_CURSES_LIBS, CF_MAKEFLAGS, CF_NCURSES_CONFIG, CF_SHARED_OPTS
+ update config.guess, config.sub
2017/12/09
+ updated ftp url in test-packages, etc.
+ updated configure macros CF_CC_ENV_FLAGS, CF_SHARED_OPTS
+ update config.guess, config.sub
2017/09/18
+ updated configure macros:
+ CF_ADD_CFLAGS improve formatting of generated lists using
CF_APPEND_TEXT
+ CF_CC_ENV_FLAGS - two changes
a) revise the expression generating $cf_flags to actually work when
there is more than one option.
b) correct the parameter passed to CF_ADD_CFLAGS, which was the
whole list rather than the current parameter.
+ CF_CURSES_LIBS reorganize to handle the case where initscr is a
macro.
+ CF_NCURSES_CONFIG add check for term.h when using pkg-config
+ CF_NCURSES_VERSION use prototype for main
+ CF_SHARED_OPTS workaround for PGI compiler
+ CF_WITH_LIBTOOL use SIGQUIT(3) rather than SIGTRAP(5) in trap
commands. Fix a few places in configure/build scripts where
DESTDIR and rpath were combined.
+ update config.guess, config.sub
2016/12/10
+ improve formatting of manpages, using bullets
+ add -C and -R options to matrix_ex.c to exercise the col/row spacing
features of matrix widget.
+ modify matrix widget to highlight the current cell for the cases
when col/row spacing are greater than zero.
2016/12/04
+ cleanup change for color pairs in 2016/11/20
+ modify initCDKScreen() to simplify initialization of curses by
calling initscr() in this function after initializing the locale.
That fixes a problem using PuTTY with CDK when built using ncurses
(report by Marc Smith).
2016/11/20
+ fix warnings from cppcheck 1.76.1
+ updated configure macros:
+ CF_CC_ENV_FLAGS don't limit the check to -I, -U and -D options,
since the added options can include various compiler options before
and after preprocessor options.
+ CF_GNU_SOURCE recent glibc (Debian 2.23-4 for example) has
misordered ifdef/checks for new symbol _DEFAULT_SOURCE, producing
warning messages when only _GNU_SOURCE is defined. Add a followup
check to define _DEFAULT_SOURCE.
+ CF_LD_RPATH_OPT change FreeBSD to use -Wl,-rpath rather than -rpath
option. According to FreeBSD #178732, either works since FreeBSD
4.x; however scons does not accept anything except the -Wl,-rpath
form.
+ CF_PROG_LINT add cpplint to programs to use; drop ad hoc tdlint and
alint.
+ CF_WITH_NCURSES_ETC add check for ncurses pthreads
+ CF_XOPEN_SOURCE add "uclinux" to list of Linux's and use
_GNU_SOURCE for cygwin headers, tested with cygwin 2.3, 2.5
+ CF__ADD_SHLIB_RULES improve scripting for ldconfig to avoid warning
messages if no permissions
+ update config.guess, config.sub
> patches by Aarian P. Aleahmad:
+ modify encodeAttribute() to allow up to 256 color pairs.
+ corrected assignment in scroller_SetPosition(), to show highlighted
member.
+ improve the way attributes are applied to Mentry widgets.
+ improve Entry widget by using newwin rather than subwin, as well
as passing arguments to callback function.
2016/11/19
+ add reRegisterCDKObject()
2016/01/31
+ fix a few of the lintian errors in package/debian
+ fix some too-wide tables in manpages, which caused Debian lintian
errors.
+ take lower-limit's formatted length into account in slider, etc.,
(patch by Guido Meusch).
+ make similar repainting-fixes for radio.c and marquee.c
+ fix repainting of Scroll widget when it has no box-outline
(patch by Manuel Schmitz).
+ add highlight and callbackData members to CDKBUTTON, as well as
macros for setting/getting the highlight value. Use the highlight to
override the default A_REVERSE used in CDK button (patch by Aarian P.
Aleahmad).
+ fix two bugs in template.c (patch by Aarian P. Aleahmad):
+ in cleanCDKTemplate, fill all of the info string with nulls
+ in setCDKTemplateValue, call cleanCDKTemplate whether or not
the pointer for newValue passed by the caller was a null.
+ updated configure macros:
+ CF_LIB_PREFIX, CF_WITH_LIBTOOL, and CF_XOPEN_SOURCE, build-fixes
for OS/2
+ CF_XOPEN_CURSES, improve check, making it define NCURSES_WIDECHAR
if we happen to be building on a platform (such as OSX) where we do
not define _XOPEN_SOURCE or _XOPEN_SOURCE_EXTENDED
+ CF_WITH_VERSIONED_SYMS, avoid ncurses build error on ppc64
architecture the nm tool is reporting _is_missing in Data section
for ppc64 (by comparison ppc64le is reporting it in Text section)
+ update config.guess, config.sub
2015/09/28
+ build ".deb" test-package with ncurses6, using versioned symbols.
+ updated configure macros:
+ modifications from ncurses/xterm to allow alternate to /bin/sh for
configure-shell, while dropping support for non-POSIX shell such
as Solaris.
+ updated/integrated changes for versioned symbols from ncurses6.
+ CF_DISABLE_LIBTOOL_VERSION when using -version-info (the native
libtool mode), get the ABI_VERSION value from $VERSION (which comes
from CF_VERSION_INFO)
+ CF_ADD_INCDIR fix an infinite loop when the include-directory to be
added does not exist (Debian #786436)
+ CF_WITH_NCURSES_ETC add --with-screen option
+ CF_SUBDIR_PATH change this to a loop, adding /usr/pkg (NetBSD) and
/opt/local (Mac OSX)
+ update config.guess, config.sub
2015/01/03
+ modify cdk-config.in to work with systems where libdir is /usr/lib64
(patch by Peter Hyman).
2014/11/06
+ alter limit-check in setCDKLabelMessage to use the actual window size
rather than the label-array's latest size (prompted by suggestion by
Stuart Friedberg).
+ reset label pointer to 0 after freeing it during resizing in
setCDKLabelMessage (report/analysis by Stuart Friedberg).
+ fix most Coverity warnings, aside from demos using getenv.
+ correct dependency of dpkg/mingw test packages; only "ncurses6" is
used rather than "libncurses6".
+ change test-packages to use --with-shared rather than cdkshlib hack.
+ add configure options to implement symbol versioning/hiding:
--with-versioned-syms=X markup versioned symbols using ld
--with-export-syms=XXX limit exported symbols using libtool
+ updated configure macros:
+ CF_ACVERSION_CHECK -
+ work around another gratuitous incompatibility introduced in 2.69
(reported by Ross Burton, openembedded.org)
+ CF_ADD_CFLAGS - workaround for ash-shell with Minix 3.2
+ CF_ADD_LIBS -
+ workaround in CF_X_TOOLKIT uses pkgconfig, whose files generally
are using incomplete dependencies - in turn introducing lots of
duplication. filter out the duplicates.
+ CF_CHECK_CFLAGS - workaround for ash-shell with Minix 3.2
+ CF_CURSES_FUNCS -
+ improve workaround for weak-linkage, seems to fix tests with
NetBSD 6.1
+ CF_GETOPT_HEADER -
+ add NEED_GETOPT_H definition, since that's the only interesting
special case
+ CF_INTEL_COMPILER -
+ cleanup the -no-gcc option which was leftover from testing - prcs
does not build with this option.
+ CF_LIB_SUFFIX -
+ it is not necessary or even a good idea to make AIX's shared-library suffixes ".a" -- make it ".so" like everyone else (including the system's shared libraries).
+ CF_MAKEFLAGS -
+ workaround for GNU make 4.0 incompatibility with previous
releases.
+ CF_X_ATHENA - add --with-Xaw3dxft option.
+ CF_XOPEN_SOURCE -
+ add case for UnixWare (report/discussion with Mark Ryan).
+ Minix3.2 ifdef's the POSIX.1-2001 functions inside
_NETBSD_SOURCE, even though it was released 2012-02-29 - appease
it. At the same time, turn on the verbose flag to show that most
platforms need platform-specific define's to get POSIX (sic).
+ for Solaris (tested with gcc/g++ 3.4.3 on Solaris 10 and gcc/g++
4.5.2 on Solaris 11), suppress the followup check for defining
_XOPEN_SOURCE because it is not needed, as well as because g++
4.7.3 (no package, used in Sage for Solaris 10) has some
unspecified header breakage which is triggered by the duplicate
definition.
+ CF_X_TOOLKIT -
+ add workaround for breakage in XQuartz upgrades.
+ add 3rd parameter to AC_DEFINE for autoheader.
+ modify spec-file to work with OpenSUSE's customization of
_defaultdocdir, which puts documentation for most packages in
/usr/share/doc/packages/
+ update config.guess, config.sub
2014/01/18
+ fix memory leak in allocListArrays() in scroll.c (patch by Alexander
Gozman).
+ amend changes for alphalist in 2012/03/23, to make its "list"
parameter read/write so that the caller's copy can be sorted as
before.
+ add man/man2html.ignore, used when generating
http://invisible-island.net/cdk/manpage/
2014/01/01
+ improve limit-checks in trimCDKWindow() (patch by Tyson Nottingham).
+ updated configure script (further improvments for shared libraries,
and clang).
+ update config.guess
2013/11/17
+ fix dependencies of Debian MinGW packages.
2013/11/07
+ add scripts for testing cross-compiles to MinGW.
+ add new scroller.h to CDKHDR variable in Makefile.in, so it will be
installed (report by Aitor Atuin).
+ updated configure script (further improvments for shared libraries,
and MinGW).
+ update config.guess, config.sub
2013/09/01
+ add a limit-check in drawCDKSwindowList() (patch by Wang Weber).
+ refactor scrolling support from radio.c, scroll.c, selection.c as new
file scroll.c, making functions from macros which were in cdk_int.h.
This change also modifies header files to move common fields to a new
SCROLLER_FIELDS macro - this is a source-compatible change, but not
binary-compatible (patch by Corentin Delorme).
+ add FreeBSD port-files, for test-builds.
+ add --enable-rpath and --disable-rpath-hack options to configure
script.
+ deprecate the cdkshlib makefile target; it is not available if either
--with-libtool or --with-shared is given.
+ corrected Makefile.in permissions of cdk5-config script, which was
not executable; this did not affect packages (cf: 2011/05/17).
+ enable the configure --disable-libtool-version option by defining
LIBTOOL_VERSION in Makefile.in, so that the soname can be set or left
to libtool to manage.
+ add configure options for manipulating linker rpath feature.
+ improve configure options for curses variants by reusing macro
from ncurses-examples
+ add lint rule to makefiles
+ fix warnings from clang
+ adapt configure --with-shared option from ncurses.
+ updated configure script (mostly minor changes for autoheader).
+ update config.guess, config.sub
2012/03/23
+ use gmtime instead of localtime in a few places so that calendar
results are not offset by the hour of the day (report/analysis by
Alex Charis).
+ add configure option --enable-const, which defines, like
NCURSES_CONST, the symbol CDK_CONST which can be used to address
improved const checking while preserving source-compatibility.
+ revise copyChtypeList to correspond with copyCharList
+ use const in cdk_util function prototypes, similar "string" uses
to improve writable-strings warnings. Arrays of strings are not
addressed due to compatibility.
+ change document directory to /usr/share/doc
+ add configure --enable-hdr-subdir to control whether cdk.h should
be in /usr/include/cdk for example, or in /usr/include. Make the
default the latter, standard layout.
+ simplify dpkg script, provide only one library using ncursesw
+ updated configure script macros, many changes for portability.
+ add cdk_test.h to installed headers (Debian #500161). Resolution
of that bug report by the way did not actually install the requested
header file.
+ update config.guess, config.sub
2012/03/18
+ provide shlibs file in dpkg scripts.
2011/05/17
+ modify calendar widget to allow applications to override the choice
of the first day of the week, by setting the "weekBase" member of
the widget. The calendar_ex example demonstrates this using the
"-w" option (request by Alex Karev).
+ modify marquee widget so that changing its box flag will cause the
widget to be resized, e.g., after 2006/05/07 changes which caused the
example program to not display properly.
+ corrected example for cdk_display.3 manpage (patch by Loïc
Pefferkorn).
+ modify install rules to allow package scripts to specify that
libcdkw's header files go into /usr/include/cdkw, and its *-config
file is named "cdkw-config".
+ autoconf'd the actual name for ctags and etags.
+ modify cdkshlib rule in makefile to eliminate warnings by
dpkg-shlibdeps.
+ correct algorithm for leap year in calendar.c (report by Olaf
Seibert).
+ minor formatting of changelog to simplify extraction of credits.
2011/05/14
+ add dpkg scripts, for test-builds.
2011/05/13
+ drop cdk.spec, adapt 2-package rules from a Fedora spec file in
the package subdirectory.
+ drop mkdirs.sh script, use "mkdir -p".
+ updated configure script macros, many changes for portability.
These changes add "--with-pkg-config" and "--disable-libtool-version"
options.
+ update config.guess, config.sub
2010/11/07
+ indent using cdk-indent, from
http://invisible-island.net/cindent/
2009/02/15
+ add KEY_ERROR case to each widget to make vERROR events handled by
each.
+ modify scroller_SetPosition() macro to improve scrolling behavior
(patch by Ricardo Cantu).
+ add vERROR event type to EExitType enumeration, using this in
setCdkExitType() and the selection widget to handle errors (patch by
Ricardo Cantu).
+ improve manpage descriptions for writeCharAttrib and
writeChtypeAttrib (report by Knut Schwichten).
+ add EXTRA_LDFLAGS symbol to makefile rule for creating library,
in case options are needed (prompted by patch by Timothy Redaelli).
+ modify matrix.c to allow defining empty column or row titles by
passing a null pointer in the newCDKMatrix() call. Fix repainting
of column titles by first erasing the cell (patch by Vincenzo Romano).
+ regenerate configure script with autoconf 2.52 (patched) to make this
work in non-POSIX locales (report by Mart Stöör).
+ updated configure script macros, e.g., to ensure that options are
appended to $CFLAGS rather than prepended.
+ update config.guess, config.sub
2008/11/05
+ modify matrix widget so that if title, row-title, column-title or
box-border are suppressed, the widget will shrink the matrix rather
than leave those parts blank (request by Vincenzo Romano).
+ modify matrix_ex example to allow turning off title, column- and
row-headers using -t, -c and -r options, and changing sense of -S
option to allow turning off shadows.
+ fix a limit-check in getcCDKObject(), found with valgrind in
buttonbox_ex.
+ apply same limit-check to radio.c as from selection.c
+ fix a limit-check in selection.c (report by Robin Lee Powell).
+ add -f/-h options to examples/selection_ex.c to test change to
label.c
+ fix a case where focus would be lost on a selection widget if there
was also a label on the screen, and both were repainted (report
by Robin Lee Powell).
+ make CDK build/work with MinGW (patch by Gregory Sharp).
+ correct setCDKTemplateValue() logic, which caused the source to
be repeated (report/patch by Christian Gaida).
+ use prefix makefile-variable in DOCUMENT_DIR expression to allow
override of prefix at build-time (patch by Saurabh Nix).
+ increase a buffer size in calendar.c (Debian #452401).
+ allow widgets to create empty lists, a feature assumed by Harry
Brueckner's cpm program (reports by Lars Strand, Harry Brueckner).
+ modify Makefile.in for consistent usage of DESTDIR.
+ add cdk5-config script to install
+ updated configure script, e.g., tests for curses libraries.
+ update config.guess, config.sub
2006/05/07
+ reduce the number of calls on touchwin(), which is used mainly for
cleanup after moving a window.
+ improve focus in alphalist.c and fselect.c to ensure that the
dependent scroll widget highlights data after losing focus to the
entry widget (report by Harry Brueckner).
+ add getCDKScrollCurrentItem(), setCDKScrollCurrentItem(),
getCDKScrollCurrentTop() and setCDKScrollCurrentTop().
+ add getCDKFselectCurrentItem(), setCDKFselectCurrentItem(), use these
in fselect_ex.c to illustrate how to modify list displayed by
the fselect widget.
+ add getCDKAlphalistCurrentItem(), setCDKAlphalistCurrentItem(), use
these in alphalist_ex.c to illustrate how to modify list displayed by
the alphalist widget.
+ add copyCharList(), copyChtypeList(), lenCharList(), lenChtypeList().
+ fix misformatted cdk_display manpage, which did not show vINT
and some other data properly (report by Dominik Douville-Belanger).
+ split-out cdk_display.c to eliminate repeated logic in entry.c,
matrix.c and mentry.c, and implement hidden fields for the matrix
widget.
+ correct box-height for marquee widget. The box parameter was
previously ignored; this correction will make some applications no
longer show a box (report by Michael White).
+ modify logic for KEY_DC and KEY_BACKSPACE so the former only deletes
the current character, and the latter only deletes the previous,
rather than equating them. This affects alphalist, entry, mentry,
template (request by Harry Brueckner).
+ suppress conversion of control characters in getcCDKObject() if the
character is bound to another. This was last changed in 2004/8/24
(report by Harry Brueckner).
+ add check in adjustAlphalistCB() in case the list is empty (report by
Harry Brueckner).
2006/02/20
+ correct makefile dependency so $(MAN_DIR) and $(INCLUDE_DIR) are
created before headers.sed and manpage.sed, since headers.sh
relies on the existence of the destination directory (reports
by Marek Lipovean, Marcelo Goes, also Gentoo #123374).
2005/12/30
+ add some redundant pointer checks, e.g., to entry.c, to avoid core
dump if one tries building Cdk with NetBSD curses (see lib/32417).
+ split up traverseCDKScreen() to allow customized flavors of that to
be written in a calling application using the pieces:
traverseCDKOnce(), setCDKFocusFirst() (request by Jorgen Lundman).
+ restore assignment of selectedItem in setCDKRadioCurrentItem() which
was dropped in 2005/04/24 (report by Fu Steve X).
+ modify refreshCDKScreen() to ensure that only one widget will have
focus, i.e., the first which currently has focus, or if none, then
the first visible one (report by Fu Steve X).
+ use cleanCDKTemplate() consistently in the template widget, ensuring
that the editing position is updated, and that the proper length is
used when clearing memory (report by Fu Steve X).
+ modify calendar, radio, scroll, selection widgets so the cursor is
shown at the beginning of the selected item's row for better
accessibility (report by Fu Steve X).
+ add null-pointer check in setCDKViewerInfo() in case caller gives
too-large value for list size (report by Jorgen Lundman).
+ improve traverseCDKScreen() by updating curobj from the
getCDKFocusCurrent() function (patch by Jorgen Lundman).
+ add setCDKFocusCurrent() (patch by Jorgen Lundman).
+ add configure script option allowing manpage section to be changed
from "3" to other values such as "3CDK", e.g., for Debian.
+ modify getCDKRadioItems(), getCDKScrollItems() and
getCDKSelectionItems() to return just the list-size if the list
pointer is null.
+ correct highlighting of selected line in CDKSelection window when
the window is scrolled left/right (patch by Jorgen Lundman).
+ various manpage fixes (report by Jorgen Lundman).
+ change manpages to use ".XX" macro to indicate aliases, to make
the manpage more readable.
+ eliminate duplication between cdk_util.3 and cdk_misc.3 manpages
(dialogs belong in the former, for instance).
+ modify alphalist, itemlist, radio, selection and swindow to allow
creating a widget with an empty list (request by Harry Brueckner).
+ modify mentry.c case for KEY_RIGHT so one can move the cursor past
the end of the string to add new text (report by Harry Brueckner).
+ modify cdk_params.c to use strtol() rather than atoi() to allow
command-line parameters such as -h 0xffff for the slider examples.
+ modify gen-slider.c to use sprintf/strlen to obtain length of
formatted integer types since intlen() does not give correct result
for maximum value of unsigned type. Modify increment/decrement logic
to take into account unsigned types (report by Keith J Outwater).
+ modify cli examples to exit with 255 when reporting an error rather
than a -1 which is generally not portable.
+ fix several memory leaks exposed by valgrind in the example programs.
+ add configure --disable-leaks option to look for ncurses' debug
function _nc_free_and_exit(), using that to help with memory leak
checking. This uses a new header <cdk_test.h> which will not be
installed, since it is used only for testing in the build tree.
> patches by Phuah Yee Keat:
+ add an IsVisibleObj attribute to all CDK objects so the caller can
set some object to be invisible, and calling refreshCDKScreen
after that won't display it again, it enables one to dynamically
show or hide a particular widget based on user actions.
Note: this changes alignments in many of the structs from 5.0,
requiring an ABI bump.
+ improve string length-computation in entry.c, allowing a 1-char
field, and also allowing movement past end of text with KEY_END.
+ add setCDKRadioSelectedItem() and getCDKRadioSelectedItem().
+ fix some memory leaks by adding cleanCDKObjBindings() into all of
the _destroyXXX() functions, modify cleanCDKObjBindings() to free
and null (obj)->bindingList.
+ fix makefile for installing manpages when building outside of the
source directory (patch by Mike Castle).
+ remove obsolete lsm file
+ review/correct some functions listed in manpages but not implemented,
and the reverse (report by Rajat Das).
+ add setCDKMatrixCB() (report by 'zam).
+ updated configure script (mostly fixes related to CF_XOPEN_SOURCE).
+ update config.guess, config.sub
2005/04/24 - T.E.Dickey <dickey@his.com>
+ bump major version to 5 (overdue).
+ add built-in bindings for '<' and '>' to KEY_HOME and KEY_END
for radio.c, scroll.c, selection.c, swindow.c and viewer.c
(patch by Thorsten Glaser).
+ add manpages for some of the non-widget utilities:
cdk_compat.3, cdk_objs.3, cdk_params.3 and cdk_util.3
+ correct drawCDKTitle, which did not account for border-size in
vertical position of titles.
+ change addCDKScrollPosition() to not set the current item to the
beginning of the list.
+ add insertCDKScrollPosition(), to allow insertions before the current
item.
+ add a check in scroll.c to prevent overflow if the list is empty.
+ modify deleteCDKScrollItem() to ensure the current item is on a
valid position after the deletion.
+ modify setCDKScrollPosition() to avoid scrolling if the target is
already on the screen.
+ make similar simplifications to radio.c and selection.c as in scroll.c
+ simplify and make consistent bookkeeping in scroll.c using new
utility functions. As a result, addCDKScrollItem() and
deleteCDKScrollItem() update the size of the scrollbar toggle (report
by Fu Steve X).
+ improve resequence function from 2005/03/23 by preserving attributes
in the target chtype array.
+ modify scroll_ex.c, binding 'a', 'i' and 'd' to add, insert and
delete lines respectively (adapted from example by Fu Steve X).
+ modify makefile so that cdk_config.h (which is generated by the
configure script) is not removed by "make clean".
+ modify makefile to work around limitation of Solaris make program
which was confused by a header dependency in a "::" line (report by
Fu Steve X).
+ modify makefile and scripts for configure --srcdir (adapted from
patch by Mike Castle).
2005/03/23 - T.E.Dickey <dickey@his.com>
+ modify deleteCDKScrollItem() to resequence numbers (request by Fu
Steve X).
+ cleanup memory allocation in scroll.c, make addCDKScrollItem
reallocate the scroll widget's arrays (report by Fu Steve X).
2005/03/08 - T.E.Dickey <dickey@his.com>
+ correct logic of deleteCDKScrollItem(), which did not preserve the
final null-pointer at the end of the list (report by Fu Steve X).
+ add isCDKOBjectBind() to simply check if the given object/key
combination is bound, rather than invoke the bound function.
+ modify binding.c so that all of the functions share the same logic
for mapping the given object to the bindable object, e.g., the entry
widget for alphalist and fselect composite widgets. In particular,
checkCDKObjectBind() and getcCDKObject() did not use the same binding
data.
+ correct initialization of traverseCDKScreen(), which required two
tab keypresses to make the first traversal (report by Fu Steve X).
+ updated configure script checks for _XOPEN_SOURCE, etc.
+ update config.guess and config.sub
+ correct prototype shown in manpage for setCDKScroll() (report by
Stefan Heimann).
+ correct equivalent expressions in setCDKRadioItems() and
setCDKSelectionItems().
+ correct expression in setCDKScrollItems() which caused the updated
window to shrink by 2 lines (report by Stefan Heimann).
2004/12/24 - T.E.Dickey <dickey@his.com>
========================================
+ correct expression in CDKCalendarField from 2004/08/31 changes, which
caused it to show only 6 days/week, broken by a fix for
demos/appointment (reports/patches by Ryan Flannery, Greg Martin).
2004/11/07 - T.E.Dickey <dickey@his.com>
========================================
+ correct top-level Makefile.in to remove libtool's auxiliary files
in the "make clean" rule.
+ amend simplification of writeCharAttrib(), ensuring that attributes
passed in the chtype-string are not ignored (report by Benoit
Bidoggia).
2004/10/04 - T.E.Dickey <dickey@his.com>
========================================
+ correct logic of writeBlanks(), which did not check for malloc
failure and made an unnecessary call to freeChar().
+ simplify draw.c a little by using writeCharAttrib() and
writeChtypeAttrib() to implement writeChar() and writeChtype().
+ revert 2002/07/27 change that used waddchnstr() in writeChtype(),
since it does not render control characters (report by Mike Leib).
+ fix an infinite loop in viewer.c when displaying control characters
such as form-feed.
2004/08/31 - T.E.Dickey <dickey@his.com>
========================================
+ add a simple compatibility header (cdk_compat.h), which can be
put in an application's include-path when compiling old applications
against new/old Cdk.
+ updated libtool ABI to 2.0.0 since several items are added to CDKOBJS,
as well as cleanup of slider- and scale-header templates.
+ add check for ANSI compiler, needed for example with HPUX 10.20.
+ ifdef'd out nonfunctional saveData and refreshData methods of entry
and itemlist widgets.
+ moved functions for setting background color or attribute into
CDKOBJS.
+ moved pre- and post-processing data into CDKOBJS, changing the
functions that set those per-widget into macros using cdk_objs.c
+ modify scale and slider widgets to allow the user to directly modify
the value by typing over it (request by Keith Outwater).
+ add slider widgets for types float, unsigned.
+ add scale widgets for types double, unsigned.
+ add script gen-scale.sh, and templates (e.g., gen-scale.c,
gen-scale.h) to allow easy generation of scale and slider widgets of
various types. Use this to replace the existing CDKSCALE, CDKFSCALE,
CDKSLIDER widgets (discussion with Keith Outwater).
+ adapt fix from dialog for porting getmaxx(), etc., to systems such
as HPUX which do not provide these legacy definitions.
+ remove duplicate vinstall.c from examples directory.
+ modify install scripting to translate generated names in cdk_config.h
to add "CDK_" prefix to most, reducing name-pollution. These names
are used to allow applications to compile against the Cdk header
files, but are otherwise of no general interest. In particular,
"PACKAGE" is no longer conflicting (report by Phuah Yee Keat).
+ add earlyExit member to CDKOBJS, using this to implement a method
for applications to specify whether the widget's exitType should
be modified after calling checkCDKObjectBind(), and what value
(discussion with Bernhard Walle, comparing with NetBSD variation).
+ correct logic in calendar widget for decrementing day- and
month-values.
+ modify treatment of exitType field so it is only set to vESCAPE_HIT
if an escape character was received. Hide most of the internal
details of exitType, making it available as an object value (but
retaining the widget field to ease upgrading old applications).
+ implement shadow option for newCDKMarquee().
+ rewrite activateCDKMarquee(), eliminating an infinite-loop bug
found in traverse_ex.c, as well as making it work properly with and
without box-outline.
+ modify deleteCursesWindow() to call eraseCursesWindow(), so that
deleting an object will also erase it, following the various manpages
comment about removing the object from the screen (report by
Mukovoz I.S.).
+ correct positionCDKObject() for CDKSCREEN's which do not happen to
be the same size/shape as stdscr.
+ change layout of menus to account for parent window's origin
since subwin() since uses absolute screen position (report by "Anna"
w/o a return address).
+ correct off-by-one in positionCDKObject() which prevented user from
reaching the right- and bottom-margins.
+ fix a few limits on sprintf's involving strings.
+ eliminate fixed array limit MAX_OBJECT in CDKSCREEN.
+ use CTRL() macro consistently in preference to CONTROL().
+ remove delwin(stdscr) from example programs since it is both unneeded
and nonportable.
+ use EXIT_SUCCESS and EXIT_FAILURE consistently in example programs.
+ remove all KEY_xxx symbols which are in X/Open curses from curdefs.h
+ remove all ACS_xxx symbols from curdefs.h
+ remove all A_xxx symbols from curdefs.h
+ add/use isChar() and CharOf() macros to get rid of A_CHARTEXT usage.
+ fix menus to allow them to scroll if there are too many entries to
fit on the screen.
+ collect most uses of touchwin/refresh into new function
refreshCDKWindow().
+ clear background of menu windows, in case they are drawn over another
widget.
+ correct length of title in menu if more than one is placed on the
right side of the screen.
+ add getcCDKBind() function, to which keys can be bound for simple
translation of the inputs via getcCDKObject(). Use this in
examples/traverse_ex.c to bind F1 to menu.
+ eliminate mapChtype() function, since it could conflict with curses'
definitions. Use the given key value instead, since it is always
positive.
+ use KEY_MAX in preference to MAX_BINDINGS symbol.
+ eliminate internal use of literal backspace, DEL, tab, newline and
carriage-return constants, etc., by mapping them to KEY_BACKSPACE,
KEY_DC, KEY_ENTER, etc., in getcCDKObject().
+ modify examples and demos to read input using getcCDKObject(), to
solve problems with stdscr refresh overwriting the widgets.
+ modify matrix.c and menu.c to read input using getcCDKObject(), like
all of the other widgets.
+ rewrote examples/traverse_ex.c to use menus to select the left,
center and right widgets used for demonstrating traversal.
+ modify traversal to update object focus properly if a menu action
removes or moves the object associated with the focus.
+ cleanup menu in traverse.c if escape character is used to cancel it.
+ move curs_set() calls out of focus/unfocus functions, into traverse.c
+ remove the SIGBUS/SIGSEGV handler, since it is redundant.
+ updated configure script, e.g,. macros CF_ADD_CFLAGS,
CF_CHECK_CACHE, CF_GCC_WARNINGS, CF_NCURSES_LIBS, CF_PROG_EXT,
CF_WITH_DBMALLOC, CF_WITH_DMALLOC, CF_WITH_LIBTOOL, CF_WITH_WARNINGS,
CF_X_ATHENA, CF_X_TOOLKIT.
+ update config.guess, config.sub
> fixes for fselect.c by ewigg (Ed Wigg):
+ add a range check to ensure that filename completion at the end of
the list does not reference past the end of the list.
+ correct the value returned from filename completion (fixes in
2002/07/27 mistook an assignment that removed the last character
of the result - it is actually used to trim the "/", "@" or similar
character from the displayed filename).
+ remove an unnecessary if statement.
> patches by Phuah Yee Keat:
+ enable focus in mentry.c, radio.c
+ implement unfocus in entry.c
+ implement focus/unfocus in mentry.c, template.c
+ add setCDKRadioCurrentItem() and getCDKRadioCurrentItem().
+ improve entry.c: When the user types until the last character, do
not shift the cursor to one character beyond the end of the maximum
value allowed in the field, that will create an extra '.' that will
give the user an impression that he can still enter more characters,
when he actually can't.
+ fix two core dumps with Solaris curses in scroll.c:
+ On solaris curses, just pressing the "down" key on a scroll list
will coredump, on certain sizes of the scroll list. On my
fullscreen test, it will coredump on any number of items unless if
the number of items is a multiple of 5. I assume that it's because
that under certain conditions, the togglePos actually exceeds the
boundary at the end of the scroll bar. Does not happen in ncurses.
+ On solaris curses, press 'G' will coredump.
Does not happen in ncurses.
+ make wording in COPYING consistent with other fixes from 1999/05/15
(report by Ahmad Attia).
2003/12/10 - T.E.Dickey <dickey@his.com>
========================================
+ bump version to 4.9.11 (corresponding source from Mike Glover added
install.sh to tarball; no other source changes were made).
+ rename "install.sh" to "install-sh" to work around bugs in certain
make-programs.
+ allocate marker[] array in calendar dynamically. Reduce
corresponding array limits to reasonable values.
+ add getCDKCalendarMarker()
+ correct seconds in calendar's return value.
+ eliminate fixed array limits from dialog widget.
+ eliminate fixed array limits from label widget.
+ eliminate fixed array limits from selection widget.
+ eliminate fixed array limits from viewer widget.
+ eliminate fixed array limits from buttonbox widget.
+ eliminate fixed array limits from matrix widget. Passing around
1000x1000 arrays was inefficient, and caused core dumps in the Perl
binding for this widget.
+ correct one of the attrbox() calls in drawCDKMatrixCell(), which used
a left-tee where a right-tee was needed (report by William L Davis).
+ add setCDKMatrixCells(), redefining setCDKMatrix() as a macro to
call it.
+ add cleanCDKMatrixCell().
+ correct position for right-aligned menus, which was off by one from
2003/11/30 changes (report/patch by William L Davis).
2003/12/01 - T.E.Dickey <dickey@his.com>
========================================
+ correct logic in char2Chtype() for <#UL>, <#UR> and <#LR>, broken in
1999/06/05 (report by William L Davis).
2003/11/30 - T.E.Dickey <dickey@his.com>
========================================
+ remove borderSize parameter from alignxy().
+ modify all widgets to account for borderSize consistently, allowing
one to display a widget that uses the full screen size (report by
Phuah Yee Keat <yk.phuah@nestac.com>).
+ add cdk_params.c, use this to simplify cli programs and add getopt
processing systematically to the demos and examples.
+ correct an off-by-one in baseName() that would return the slash
character in the result.
+ add setCDKCalendarMonthsNames() and setCDKCalendarDaysNames (patch
by Stanislaw Bierowka <staszek@pecet.com.pl>).
+ split-out several files from draw.c since they are wrappers for
widgets rather than drawing functions. Doing this reduces the
executable size: get_index.c, get_string.c, popup_dialog.c,
popup_label.c, select_file.c, view_file.c and view_info.c
+ eliminate static MAX_LINES limit from graph-widget values.
+ eliminate static MAX_LINES limit from widget titles.
+ updated configure script, improved checks for curses functions.
+ update config.guess, config.sub
2003/11/24 - T.E.Dickey <dickey@his.com>
========================================
+ display a "processing..." message in setCDKViewerInfo while building
the internal data structures (request by Mike Leib).
+ modify viewer widget to compute the total number of lines to display,
making it independent of the listSize parameter.
+ modify viewer widget to accept a negative listSize parameter,
making it count the length of list[], ending with a null.
+ modify viewer_ex, adding -f, -i and -l options. The -f option
bypasses the fselect widget, specifying the filename directly.
The -i option tells whether to interpret embedded markup, and
the -l option tells viewer_ex to load the file using an embedded
link.
2003/11/19 - T.E.Dickey <dickey@his.com>
========================================
+ modify searches in viewer widget to allow for overlapping partial
matches, e.g., if the pattern is "00A", it will find the match in
a line consisting of "000A". Also corrected logic to matches can
extend to the end of a line.
+ add 'N' to viewer to implement reverse search.
+ modify ':' command in viewer to start with current line number
rather than 0. Also adjust the size of the scale widget to allow
for very large line numbers, e.g., more than 5 digits.
+ remove an obsolete limit-check in viewer widget that limited view
to 4996 lines, fix a few off-by-one indices.
2003/11/18 - T.E.Dickey <dickey@his.com>
========================================
+ correct viewer widget, making it interpret tabs and non-printing
characters for the non-interpreted file viewer case. The curses
library cannot display control characters in chtype's.
+ add cleanCDKViewer().
+ rename a few .itemCount members to .listSize for consistency.
+ eliminate static list-size limit MAX_LINES from swindow, viewer
widgets. Renamed .info, .infoPos, .infoLen to .list, .listPos and
.listLen members to be consistent with other widgets.
2003/11/16 - T.E.Dickey <dickey@his.com>
========================================
+ suppress "." from fselect listing, since it was not useful.
+ eliminate static list-size limit MAX_ITEMS from alphalist, fselect
itemlist, radio, scroll and selection widgets (request by Mike Leib).
+ change functions that set line-drawing characters to macros, mapping
those to method calls in CDKOBJS.
+ add setCDKEntryBox().
+ add setCDKMarqueeBox() and getCDKMarqueeBox().
+ add setCDKMatrixBox() and getCDKMatrixBox().
+ adjust some title lines to be offset by the borderSize rather than
a hardcoded "1" (report by Max Mikhanosha).
+ strip trailing newlines from text read via pipe in execCDKSwindow(),
lost in original cleanup (report by Max Mikhanosha
<max@openchat.com>).
2003/04/18 - T.E.Dickey <dickey@herndon4.his.com>
=================================================
+ for variants built with ncursesw and pdcurses, name the libraries
"-lcdkw" and "-lcdkX" respectively.
+ add a missing assignment to store the result in _injectCDKFScale()
(report by Barry Davis <bdavis@eurologic.com>).
+ fix missing definition of mvwhline(), mvwvline() in pdcurses.
+ add a .c.i rule in top-level makefile
+ fix uninstall rule, was missing a line-continuation.
+ fix several prototypes in manpages which did not match header files
(reported by Lucas Gonze <lucas@gonze.com>).
+ fix a few compiler warnings, e.g., by parentheses in
drawCDKEntryField() and drawCDKMatrixCell().
+ updates to configure script macros
+ add --with-ncursesw option.
+ add --with-XawPlus option.
+ add --with-curses-dir option.
+ modify CF_DISABLE_ECHO to make libtool quiet also.
+ use AC_PROG_PATH to find libtool; show the version which is found.
+ change sed delimiter to '%' to accommodate AFS.
+ improve/correct CF_HEADER_PATH, CF_LIBRARY_PATH to cover special
cases of ncurses/ncursesw configurations.
+ change ordering of options in CF_ADD_CFLAGS, CF_ADD_CPPFLAGS,
CF_INCLUDE_DIRS.
+ workaround gcc 3.x defects in CF_ADD_INCDIR.
2002/08/09 - T.E.Dickey <dickey@herndon4.his.com>
=================================================
+ fix entry, matrix, template, viewer widgets to display 8-bit input
characters (reported by Bernhard Walle <bernhard@bwalle.de>).
+ modify manpage install to create links for each function name listed
in the NAME section.
+ correct cursor location in dialog's radio-box, which was left on the
separator line (reported by Peter Farley <pjfarley3@yahoo.com>)
2002/07/27 - T.E.Dickey <dickey@herndon4.his.com>
=================================================
+ several changes to make destroyCDKScreenObjects() and
destroyCDKScreen() actually work (needed for perlcdk):
+ record all objects and screens created/destroyed, in cdkscreen.c
+ reimplement destroyCDKObject() by a function _destroyCDKObject(),
which first does an erase for the given object, then calls the
destroy method, and finally frees the object.
+ add a check in each erase-method to ensure that the object is still
valid.
+ add check in setCDKGraphValues() to ensure that X and Y scales are
nonzero, since they are used as denominators. This makes perlcdk's
graph example work.
+ add configure check for curses feature which would allow one to move
a subwindow, or (in the case of NetBSD curses) at least compile.
+ add configure check and fallback for addchnstr() to accommodate
NetBSD's partial implementation of curses.
+ move version information to VERSION file.
+ add --with-libtool configure option
+ make most wgetch() calls use the object's inputWindow via the
getcCDKObject() function.
+ improve type-checking and array-limits in cdkscreen.c
+ remove cdktype member from CDKSCREEN since it is redundant.
+ eliminate several fixed-buffers with new function writeBlanks().
+ interpret home/end keys in entry widget.
+ warn about special keys such as insert which are not recognized in
alphalist, entry, matrix, mentry, template (it was using the low 8
bits of those, inserting that).
+ rewrote/simplified dirName().
+ rewrote/simplified baseName().
+ eliminate fixed-size buffers in fselect.c
+ correct a couple of places where fselect.c freed constant memory.
+ correct an unterminated string in fselect.c tilde-expansion, and use
$HOME if no account name is given.
+ simplified several functions using mvhline(), mvvline() and
mvaddchnstr().
+ add vFSCALE as a valid object type in cdkscreen.c
+ modify moveCursesWindow(), which did not work with ncurses after
2000/9/15 changes to use mvwin() in preference to directly modifying
the _begx/_begy members of WINDOW. That made position_ex not work.
The change was originally for NetBSD's curses implementation which
does not move derived windows properly anyway.
+ simplify calls to moveCursesWindow() by moving null-pointer check
inside that function.
+ change tab-expansion in char2Chtype() to expand based on the current
length of the string rather than always to 8 columns.
+ correct limit-checks in stripWhiteSpace()
+ interpret back-tab in buttonbox.c and dialog.c inject-methods for
symmetry with tab.
+ corrected return-values of button, matrix, scale widgets to match
documentation as well as to conform with other widgets.
+ reorganized inject methods (which may return data of different types)
to return the actual data in an area of the widget, and defined macros
to preserve source-compatibility.
+ rewrote initCDKColor() to check if color is available before trying
to initialize it, and to use the terminal's actual number of colors
in making color pairs.
+ use 2-digit fields in bind_ex.c for time, date.
+ modify matrix.c to add borderSize before the column titles, to
match the change to box layout.
+ modify matrix_ex.c to consistently center row-titles. Some were
centered, some were right- and some left-justified. The change to
justifyString() produced an odd effect.
+ add functions
CDKVersion()
chtype2String().
> patches by Tim Moloney:
+ added a setCDKxxxBackgroundAttrib() function to all the widgets.
This function takes a chtype. The setCDKxxxBackgroundColor() still
exists and converts from a character string to a chtype, but it now
calls the new function to eliminate duplicate code.
+ fix minor bugs in marquee_ex and radio1_ex.
+ fix an off-by-one error in the dialog widget when it is not drawing
its box. The buttons were displayed one line too high.
+ add object type to each widget.
+ correct _drawCDKEntry(), which did not account for whether a box was
used when computing layout.
+ change moveCDKButton() from a function to a macro using
moveCDKObject().
+ add functions
popupLabelAttrib()
setCDKButtonboxButtonAttrib()
setCDKEntryHighlight()
> integrated/adapted changes by Grant Edwards:
+ make the destroy function in each widget a method in CDKOBJS.
+ make the inject function in each widget a method in CDKOBJS.
(this was incomplete, and did not provide for different return-types)
+ add focus, unfocus, refreshData, saveData methods and supporting
data to CDKOBJS (not all widgets implement these methods). See
entry.c, itemlist.c, selection.c for example.
+ store a borderSize value in CDKOBJS for each widget, which is used to
reserve space for a box/border around each widget if the Box
parameter is true when creating the widget. Several related changes
also made, including modifying the alignxy() interface to add
a borderSize parameter.
+ modify justifyString() to not subtract 1 on each side, since that
is generally assumed to be done to compensate for boxes drawn around
the text.
+ change drawCDKItemlistField() to add a highlight parameter.
+ change the label window to a subwin() in entry.c
+ hide cursor while in popupLabel() function.
+ simplified scroll.c, a little.
+ add files
button.c
examples/radio1_ex.c
examples/traverse_ex.c
+ added functions:
destroyCDKScreenObjects()
getCDKSelectionCurrent()
setCDKSelectionCurrent()
getCDKScrollCurrent()
setCDKScrollCurrent()
destroyCDKScreenObjects()
cmpStrChstr()
chstrncpy()
+ removed these functions:
setCDKEntryBox()
2002/04/30 - T.E.Dickey <dickey@herndon4.his.com>
=================================================
+ correct parsing of <I=xx> in char2Chtype() where "xx" contains digits
(patch by Robert R Landon <rl180001@exchange.DAYTONOH.NCR.com>).
+ updated cdk.spec for RPM (patch by Vladimir Kondratiev
<vladimir.kondratiev@intel.com>).
+ introduce CDKINCLUDES ifdef's so that any of the header files may
be included separately. Previously only <cdk.h> could be included
due to interdependencies among the headers.
+ add some #undef's to cdk.h in case curses.h includes term.h producing
a symbol conflict (reported by Kenneth Pronovici
<pronovic@skyjammer.com>).
+ miscellaneous updates to configure script, including workarounds for
incompatibilies in autoconf 2.5x.
2002/02/25 - T.E.Dickey <dickey@herndon4.his.com>
=================================================
+ add cdk_process manpage.
+ remove redundant description of bindCDKObject() from several manpages.
+ add rcs identifiers to header files.
+ add ifdef's in each header file for C++, to make the C externs link
properly without requiring the application to declare them (reported
in comp.unix.programmer newsgroup by <bigslick_2k@hotmail.com>).
+ correct typo in template.c introduced in 2000/01/16 substitutions
to use macro isPlateChar() which made templates not work with
interspersed punctuation (reported by jiny <jiny@ynmail.com>).
2001/12/30 - T.E.Dickey <dickey@herndon4.his.com>
=================================================
+ remove some redundant wrefresh() calls in various widgets.
+ correct an uninitialized pointer in cli/cdkalphalist.c
+ modify cli/samples/alphalist.sh to check for non-empty return from
the selection rather than hang attempting to find that account.
+ remove -B option from cli/samples/alphalist.sh since it should have a
value, but does not.
+ corrected some display-limits in writeChtype() and
writeChtypeAttrib().
+ modify CDKreadFile() to trim newlines from file as read, making it
more like the original readFile(). This is needed to prevent the
trailing newlines loaded into label widgets from clearing the rest
of the line when they are drawn.
+ add floatized-scale widget (Lutz Mueller <urc8@rz.uni-karlsruhe.de>).
+ modify headers.sh script to remove gzip'd versions of the manpages
just in case some were previously installed that way, i.e., by
hand. The gzip'd version would be found instead of the new install.
(prompted by a report by Ron Poulton <thok@technologist.com>).
+ correct typo in uninstall rule for manpages which made
"make installCDKHeaderFiles" remove the manpages after installing.
2001/04/21 - T.E.Dickey <dickey@herndon4.his.com>
=================================================
+ add an uninstall rule.
+ move the installed documentation to /usr/local/doc/cdk (it does not
belong in /usr/local/include/cdk).
+ modify install rules so that references to header files such as cdk.h
are transformed to <cdk/cdk.h>, which matches the actual install
location (reports by Pawel Gajda <pawelg@obop.com.pl>, Carlos Alberto
Pereira Gomes <capgomes@usa.net> and Ron Poulton
<thok@technologist.com>, who found that Cdk's menu.h conflicts with
ncurses' menu.h when building the Perl interface).
+ correct cli examples' callbacks, which did not return a value.
+ update config.guess and config.sub
+ modify CF_CURSES_LIBS to allow build with SunOS 4.x 5lib curses.
+ split out CF_CURSES_CPPFLAGS from CF_CURSES_LIBS to allow an interim
check if the curses implementation is really ncurses.
+ modify some configure script macros to work when the curses header
file is not <curses.h>, e.g., <ncurses.h>.
+ modify configure script macros to avoid using changequote(), which
is broken in the current autoconf alpha versions, e.g., 2.49d.
+ change configure script macros to use $CPPFLAGS consistently for
preprocessor options, and $CFLAG for other compiler flags.
+ modify several configure script macros which checked for $GCC, to
ensure it is not actually the compiler name versus an existence
check.
2001/01/06 - T.E.Dickey <dickey@herndon4.his.com>
=================================================
+ reverted part of 1999/6/5 change, allowing callback functions to
return a value. Note that this makes PROCESSFN and BINDFN use
the same prototype (report by Ian Eure <ieure@insynq.com>).
+ SCO OpenServer does not define S_IFSOCK
2000/09/23 - T.E.Dickey <dickey@herndon4.his.com>
=================================================
+ change literal 48's in calendar.c to '0'.
+ eliminate nonprinting/nonspace characters using macro CTRL().
+ integrated new examples into makefiles.
+ use raiseCDKObject_ex.c and lowerCDKObject_ex.c to debug/fix the
raiseCDKObject() and lowerCDKObject() functions which shared the same
defect in 4.9.9 (the code did not properly update two objects, but
modified screenIndex of one twice).
+ modified cli programs to work with CDKreadFile(), CDKsplitString()
and CDKcountStrings() since readFile() and splitString() are not
provided in this version.
> reviewed/integrated changes from Mike Glover's 4.9.10 (August 2000):
+ add examples/raiseCDKObject_ex.c, examples/lowerCDKObject_ex.c
+ add cli subdirectory
+ modify itemlist.c to make labels one cell wider.
+ did not use changes to cdkscreen.c (see 1999/5/15).
+ did not use casts to unsigned char, since those are incorrect
(they are casting chtype's which are wider than a char).
2000/09/15 - T.E.Dickey <dickey@herndon4.his.com>
=================================================
+ add/use configure check for some curses functions/macros which use
internals of the WINDOW struct, which is opaque on NetBSD (patch by
Simon Burge <simonb@wasabisystems.com>).
+ update autoconf scripts (config.guess, config.sub, macros
CF_CURSES_LIBS, CF_UPPER, CF_X_ATHENA) to my 20000819 autoconf patch.
+ revised man-pages: reorder so that functions are listed
alphabetically within the NAME, SYNOPSIS, DESCRIPTION sections, the
prototypes shown only in the SYNOPSIS section (and formatted for
readability), remove excess wording and convert as needed to use tbl.
2000/08/28 - T.E.Dickey <dickey@herndon4.his.com>
=================================================
+ add cdk_position.3 man page.
+ rename cdk_cdk.3 to cdk.3
2000/08/20 - T.E.Dickey <dickey@herndon4.his.com>
=================================================
+ remove obsolete comments from manpages telling users to define
NCURSES for that library. The configure script creates cdk_config.h,
which has settings as needed.
2000/08/20 - T.E.Dickey <dickey@herndon4.his.com>
=================================================
+ fix some array-overruns in viewer.c if it happens to load a binary
file.
+ fix symbol conflict with newkey in waitCDKLabel(), as well as keycode
truncation in that function.
2000/06/28 - T.E.Dickey <dickey@herndon4.his.com>
=================================================
+ add RPM spec-file (patch by Wai-Sun Chia <waisun.chia@msa.dec.com>).
+ add Linux-specific makefile rule for generating a shared library
(patch by Pawel Gajda <pawelg@obop.com.pl>).
+ eliminate fixed-length lists assumed in getDirectoryContents() using
new function CDKgetDirectoryContents().
+ eliminate fixed-length lists assumed in readFile() using new function
CDKreadFile().
+ remove unused substring().
+ use qsort-wrapper sortList() instead of quickSort().
+ change configure.in to avoid having configure script check for X
libraries as a side-effect of adding tests for PDCurses.
+ updates to configure script macros:
CF_CURSES_FUNCS, CF_FIND_LIBRARY, CF_HEADER_PATH, CF_LIBRARY_PATH,
CF_NCURSES_LIBS and CF_XOPEN_CURSES
+ update config.guess, config.sub
2000/04/09 - T.E.Dickey <dickey@clark.net>
==========================================
+ modify newwin() call in subwindow_ex.c to account for actual screen
size rather than assuming 25 lines (reported by Gary Funck
<gary@Intrepid.Com>).
+ add CF_X_ATHENA and CF_X_TOOLKIT configure macros for --with-pdcurses
option, needed if the Xcurses or dependent libraries are static
rather than shared.
+ correct typo in configure check for HPUX 11.x (reported by Bjorn
Helgaas <helgaas@rsn.hp.com>).
2000/02/18 - T.E.Dickey <dickey@clark.net>
==========================================
+ add case for HPUX 11.x use of cur_colr library (reported by
Bjorn Helgaas <helgaas@rsn.hp.com>).
+ add configure option --with-pdcurses, to link with the X11 version
of PDCurses.
+ eliminate quoted includes, in favor of bracketed form.
+ ifdef'd limits.h, moving that into cdk.h with a fallback definition
for INT_MIN and INT_MAX.
+ minor fixes for building with SunOS 5lib version: configure check
for getopt variables, correction to demos/Makefile.in
2000/01/17 - T.E.Dickey <dickey@clark.net>
==========================================
+ add lib-prefix and executable suffix checks to configure script for
port to OS/2 EMX.
+ add configure check for lstat().
2000/01/16 - T.E.Dickey <dickey@clark.net>
==========================================
+ drop dependency on usleep(), using napms() which is standard with
SVr4 curses.
+ rewrote mode2Char(), making it table-driven and splitting out
mode2Filetype() to make porting simpler, by putting ifdef's for
S_ISSOCK in one place only.
+ use new freeCharList() to reduce clutter.
+ eliminate casts of NULL, to reduce clutter.
+ change several uses of control characters in source to use CONTROL()
macro.
+ correct format of date shown in bind_ex.c
+ correct nonstandard getcwd() usage in fselect.c
+ change demo and example makefiles to not strip executables.
+ modify demo/Makefile.in to work around Solaris' make program which
does not process ".c" rule as desired.
2000/01/08 - T.E.Dickey <dickey@clark.net>
==========================================
+ fix compiler warnings with Solaris cc.
1999/12/19 - T.E.Dickey <dickey@clark.net>
==========================================
+ updated email and url for Mike Glover based on 4.9.9 version dated
1999/7/29.
19.0.3:
Bug Fixes
- Fix an IndexError crash when a legacy build of a wheel fails.
- Fix a regression introduced in 19.0.2 where the filename in a RECORD file
of an installed file would not be updated when installing a wheel.
2.0.9:
Bug fixes:
- Fixed Application.run_system_command on Windows.
- Fixed bug in ANSI text formatting: correctly handle 256/true color sequences.
- Fixed bug in WordCompleter. Provide completions when there's a space before
the cursor.
Also upgrade the various rust crates according to new requirements.
Sadly, no change log available upstream that I can find...
(The old version uses an old libc crate, which hasn't been adapted
for NetBSD/aarch64.)
Changelog:
mdds 1.4.3
* documentation
* added details on how to use two type of iterators with
flat_segment_tree.
* added new section to describe how to use mtv::collection to iterate
through multiple multi_type_vector instances as a single collection
in the direction orthogonal to the direction of the individual
vectors.
* added new page for R-tree.
* flat_segment_tree
* fixed invalid memory access issue related to the swap() method which
previously did not swap the non-leaf node pool store. The invalid
memory access may occur after the contents of two instances get
swapped, one instance get destroyed then the caller calls
search_tree() on the other instance still alive.
mdds 1.4.2
* all
* fixed CXXFLAGS incorrectly being overwritten.
* addressed a number of Coverity issues.
mdds 1.4.1
* all
* fixed all warnings on shadowed variables.
* multi_type_matrix
* all of its walk() methods now return either a copied or moved
instance of the function object passed in as an input argument.
Previously these methods had no return values.
mdds 1.4.0
* rtree (new)
* new data structure designed for optimal storage and query
performance on multi-dimensional spatial data. The structure allows
storage of both point and extent-based boundaries as keys associated
with values.
* multi_type_vector
* mtv::elemnt_block now has the following methods: data(), cbegin(),
cend(), crbegin() and crend().
* multi_type_vector now has cbegin(), cend(), crbegin(), and crend()
methods.
* some unnecessary user-provided special members have been removed to
avoid warnings with -Wdeprecated-copy with GCC 9.
* multi_type_matrix
* all of its walk() methods now allow in-line lambdas to be used, by
not taking a reference of the function object parameters.
mdds 1.3.1
* flat_segment_tree
* fixed a bug that caused an assertion error when inserting a
out-of-bound segment whose start value equals the max key value.
mdds 1.3.0
* multi_type_vector
* changed the primary block array storage to remove additional
indirection, for improved memory locality.
mdds 1.2.3
* all
* changed the configure script to use --docdir unmodified.
* flat_segment_tree
* added a segment iterator whose node value consists of the start
and end keys and the value associated with each segment. its
start and end positions can be retrieved via begin_segment() and
end_segment() methods.
mdds 1.2.2
* flat_segment_tree
* fixed a bug that would cause segmentation faults with the insert()
method with out-of-bound segment value pair.
mdds 1.2.1
* multi_type_vector
* added size() method to the element block type, which returns the
actual size of the element block, instead of the cached size value
stored in the parent structure that stores the element block.
* fixed a double-deletion bug in the swap() method which would
triggered when used with a managed element block.
* mtv::collection
* fixed collection iterator's get() method to properly return values
from the boolean element block.
mdds 1.2.0
* packed_trie_map
* added begin() and end() methods that return read-only iterators.
* find() method now returns a const_iterator instance.
* prefix_search() method now returns a search_results instance that
can be iterated.
* null value no longer needs to be passed to the constructor.
* find() and prefix_search() now have a variant that can take a key
value that is of key_type directly.
* trie_map
* added begin() and end() methods that return read-only iterators.
* find() method now returns a const_iterator instance.
* prefix_search() method now returns a search_results instance that
can be iterated.
* null value no longer needs to be passed to the constructor.
* find(), insert, and prefix_search() now have a variant that can
take a key value that is of key_type directly.
* sorted_string_map
* fix build failure with _GLIBCXX_DEBUG defined.
* multi_type_vector
* remove compiler warning about shadowed variable.
* added a supplemental class mdds::mtv::collection which allows
multiple multi_type_vector instances of the same length to be
grouped together in order to iterate through their elements
sideways.
* a variant of advance_position() static method that takes
const_position_type has been added.
* const_position_type advance_position(const const_position_type& pos, int steps)
* multi_type_matrix
* matrix_position() is now a const method.
* the sub-matrix variant of walk() method now throws size_error
exception when invalid start and end positions are passed.
* slight performance improvement with the sub-matrix variant of
walk() method that involves multiple column traversal.
* added 2 new variants of walk() methods that allow parallel walking
with another matrix instance.
* template<typename _Func>
void walk(_Func& func, const multi_type_matrix& right) const
* template<typename _Func>
void walk(_Func& func, const multi_type_matrix& right, const size_pair_type& start, const size_pair_type& end) const
* improved performance of copy() and resize() methods.
* added a variant of copy() that takes an array of values.
* template<typename _T>
void copy(size_type rows, size_type cols, const _T& it_begin, const _T& it_end)
* integer type has been added to the list of types the matrix can
store. In conjunction with this change, what was formerly known
as the string trait structure is now known as the matrix trait,
which specifies the actual integer type the matrix stores.
* point_quad_tree
* search_result has been renamed to search_results.
IPython 7.3.0
IPython 7.3.0 bring several bug fixes and small improvements that you will
described bellow.
The biggest change to this release is the implementation of the %conda and
%pip magics, that will attempt to install packages in the **current
environment**. You may still need to restart your interpreter or kernel for the
change to be taken into account, but it should simplify installation of packages
into remote environment. Installing using pip/conda from the command line is
still the prefer method.
The %pip magic was already present, but was only printing a warning; now it
will actually forward commands to pip.
Misc bug fixes and improvements:
- Compatibility with Python 3.8.
- Do not expand shell variable in execution magics, and added the
no_var_expand decorator for magic requiring a similar functionality
- Add %pip and %conda magic
- Re-initialize posix aliases after a %reset
- Allow the IPython command line to run *.ipynb files
pytest 4.3.0:
Deprecations
* pytest.warns() now emits a warning when it receives unknown keyword arguments.
This will be changed into an error in the future.
Features
* Usage errors from argparse are mapped to pytest’s UsageError.
* Add the --ignore-glob parameter to exclude test-modules with Unix shell-style wildcards. Add the collect_ignore_glob for conftest.py to exclude test-modules with Unix shell-style wildcards.
* The warning about Python 2.7 and 3.4 not being supported in pytest 5.0 has been removed.
In the end it was considered to be more of a nuisance than actual utility and users of those Python versions shouldn’t have problems as pip will not install pytest 5.0 on those interpreters.
* With the help of new set_log_path() method there is a way to set log_file paths from hooks.
Bug Fixes
* --help and --version are handled with UsageError.
* Fix AssertionError with collection of broken symlinks with packages.
upstream changes:
* CVEs fixed in or before version 1.9: CVE-2018-20430, CVE-2018-20431, CVE-2017-15922, CVE-2017-17440
* upstream ChangeLog:
Sun 10 Feb 2019 05:05:22 PM CET
Added Danish translation.
Releasing GNU libextractor 1.9. -CG
Thu Dec 20 22:48:47 CET 2018
Fix#5493: possible out-of-bounds read in libextractor_common
in case of iconv() failure.
Fix#5494: NULL dereference in OLE2 extractor (for malformed input). -CG
Sun Dec 2 12:05:33 CET 2018
Fix#5488: do not export non-public functions from API. -CG
3.4.0:
Many changes have been made in the support for logging configurations:
- The log handler section types defined by the
ZConfig.components.logger package support additional, optional
parameters:
style
Used to configure alternate format styles as found in the Python 3
standard library. Four style values are supported:
classic (the default), format (equivalent to style='{'
in Python 3), template (equivalent to style='$'), and
safe-template (similar to template, but using the
string.Template method safe_substitute method). A
best-effort implementation is provided for Python 2.
arbitrary-fields
A Boolean defauting to False for backward compatibility,
allows arbitrary replacement field names to be accepted in the
format string (regardless of the style setting). This
supports applications where log records are known to be generated
with additional string or numeric fields, at least for some
loggers. (An exception is still raised at format time if the
additional fields are not provided, unless the style value
safe-template is used.)
- The logfile section type defined by the ZConfig.components.logger
package supports the optional delay and encoding parameters.
These can only be used for regular files, not the special STDOUT
and STDERR streams.
- More validation on the parameters to the logfile and
email-notifier sections is performed early (at the construction of
the factory, rather than at creation of the logging handler).
This allows more checking of parameter combinations before any log
files are opened.
- The ZConfig.components.logger.handlers.log_format data type
function now supports formats that include numeric formatting for
levelno, and accept funcName as a valid log record field
(added in Python 2.6 and 3.1).
0.19.11:
IMPROVEMENTS
* Use fullname from gecos field, if available.
* Support GIT_AUTHOR_NAME / GIT_AUTHOR_EMAIL.
* Add support for short ids in parse_commit.
* Add support for prune and prune_tags arguments
to porcelain.fetch.
BUG FIXES
* Fix handling of race conditions when new packs appear.
Version 3.5.7:
This is a mostly a bug-fix release.
Fixes
* Regression: pathlib did not get patched in the presence of pathlib2
* fixed errors if running the PyCharm debugger under Python 2
Infrastructure
* do not run real file system tests by default
* make tests run if running python setup.py test under Python 2
Version 3.5.6:
Changes
* import external pathlib2 and scandir packages first if present
Version 3.5.5:
Fixes
* removed shebang from test files to avoid packaging warnings
Version 3.5.4:
New Features
* added context manager class Pause for pause/resume
Fixes
* fixed AttributeError shown while displaying fs in a failing pytest
in Python 2
* fixed permission handling for root user
* avoid AttributeError triggered by modules without __module__ attribute
Version 3.5.3:
This is a minor release to have a version with passing tests for OpenSUSE
packaging.
New Features
* automatically patch file system methods imported as another name like
from os.path import exists as my_exists, including builtin open
and io.open
Fixes
* make tests for access time less strict to account for file systems that
do not change it immediately
Version 3.5.2:
This is mostly a bug-fix release.
New Features
* added support for pause/resume of patching the file system modules
* allow to set current group ID, set current user ID and group ID as
st_uid and st_gid in new files
Fixes
* fixed using modules_to_patch
* fixed recursion error on unpickling the fake file system
* allow trailing path in add_real_directory
Version 3.5:
Changes
* This version of pyfakefs does not support Python 3.3. Python 3.3 users
must keep using pyfakefs 3.4.3, or upgrade to a newer Python version.
* The deprecation warnings for the old API are now switched on by default.
To switch them off for legacy code, use:
python
from pyfakefs.deprecator import Deprecator
Deprecator.show_warnings = False
New Features
* Improved automatic patching:
* automatically patch methods of a patched file system module imported like
from os.path import exists
* a module imported as another name (import os as _os) is now correctly
patched without the need of additional parameters
* automatically patch Path if imported like from pathlib import Path
* parameter patch_path has been removed from UnitTest and Patcher,
the correct patching of path imports is now done automatically
* UnitTest /Patcher arguments can now also be set in setUpPyfakefs()
* added possibility to set user ID
* added side_effect option to fake files
* added some support for extended filesystem attributes under Linux
* handle contents=None in create_file() as empty contents if size not
set
* added pathlib2 support
* added support for null device
* improved error message for "Bad file descriptor in fake filesystem"
v1.12.1
CPython 3 on Windows: we again no longer compile with Py_LIMITED_API by default because such modules still cannot be used with virtualenv. The problem is that it doesn’t work in CPython <= 3.4, and for technical reason we can’t enable this flag automatically based on the version of Python.
Like before, Issue 350 mentions a workaround if you still want the Py_LIMITED_API flag and either you are not concerned about virtualenv or you are sure your module will not be used on CPython <= 3.4: pass define_macros=[("Py_LIMITED_API", None)] to the ffibuilder.set_source() call.
v1.12
Direct support for pkg-config.
ffi.from_buffer() takes a new optional first argument that gives the array type of the result. It also takes an optional keyword argument require_writable to refuse read-only Python buffers.
ffi.new(), ffi.gc() or ffi.from_buffer() cdata objects can now be released at known times, either by using the with keyword or by calling the new ffi.release().
Windows, CPython 3.x: cffi modules are linked with python3.dll again. This makes them independant on the exact CPython version, like they are on other platforms. It requires virtualenv 16.0.0.
Accept an expression like ffi.new("int[4]", p) if p is itself another cdata int[4].
CPython 2.x: ffi.dlopen() failed with non-ascii file names on Posix
CPython: if a thread is started from C and then runs Python code (with callbacks or with the embedding solution), then previous versions of cffi would contain possible crashes and/or memory leaks. Hopefully, this has been fixed.
Support for ffi.cdef(..., pack=N) where N is a power of two. Means to emulate #pragma pack(N) on MSVC. Also, the default on Windows is now pack=8, like on MSVC. This might make a difference in corner cases, although I can’t think of one in the context of CFFI. The old way ffi.cdef(..., packed=True) remains and is equivalent to pack=1 (saying e.g. that fields like int should be aligned to 1 byte instead of 4).
4.5.11:
This release fixes :issue:1813, a bug introduced in :ref:3.59.1 <v3.59.1>, which caused :py:meth:~hypothesis.strategies.random_module to no longer affect the body of the test: Although Hypothesis would claim to be seeding the random module in fact tests would always run with a seed of zero.
4.5.10:
This patch fixes an off-by-one error in the maximum length of :func:~hypothesis.strategies.emails. Thanks to Krzysztof Jurewicz for :pull:1812.
4.5.9:
This patch removes some unused code from the shrinker. There is no user-visible change.
4.5.8:
This release fixes an internal IndexError in Hypothesis that could sometimes be triggered during shrinking.
4.5.7:
This release modifies the shrinker to interleave different types of reduction operations, e.g. switching between deleting data and lowering scalar values rather than trying entirely deletions then entirely lowering.
This may slow things down somewhat in the typical case, but has the major advantage that many previously difficult to shrink examples should become much faster, because the shrinker will no longer tend to stall when trying some ineffective changes to the shrink target but will instead interleave it with other more effective operations.
4.5.6:
This release makes a number of internal changes to the implementation of :func:hypothesis.extra.lark.from_lark. These are primarily intended as a refactoring, but you may see some minor improvements to performance when generating large strings, and possibly to shrink quality.
4.5.5:
This patch prints an explanatory note when :issue:1798 is triggered, because the error message from Numpy is too terse to locate the problem.
4.5.4:
In Python 2, long integers are not allowed in the shape argument to :func:~hypothesis.extra.numpy.arrays. Thanks to Ryan Turner for fixing this.
4.5.3:
This release makes a small internal refactoring to clarify how Hypothesis instructs tests to stop running when appropriate. There is no user-visible change.
4.5.2:
This release standardises all of the shrinker's internal operations on running in a random order.
The main effect you will see from this that it should now be much less common for the shrinker to stall for a long time before making further progress. In some cases this will correspond to shrinking more slowly, but on average it should result in faster shrinking.
4.5.1:
This patch updates some docstrings, but has no runtime changes.
4.5.0:
This release adds exclude_min and exclude_max arguments to :func:~hypothesis.strategies.floats, so that you can easily generate values from open or half-open intervals
2018.12
6model:
* [6788cab6] Fix repossessions that cause object size "changes"
Core:
* [987269ea] Get readnum op working, try for 32-bit num support
* [30088ed4] Fix memory leak of MVMFrameExtra
* [1343702c] Fix segfault on {read,write}{uint,int} on a type object
* [a8e63d2f] Sign extend values when reading less than 64 bit in readint
* [8e078a2f] Improve handling of failure to join a thread, throw instead of
handling and provide exception text instead of just the error code
* [437d5b01] Fix big endian (read|write)u?int of < qword on big endian
systems
* [35ea9581] Fix bytestream ops from always converting to big endian if a
switch is necessary
* [1c3b0c93] Fix possibility of label id clash in bytecode compiler
IO:
* [a50a9d0e] Use uv_os_gethostname instead of gethostname to ensure winsock
is initialized on Windows
* [a994f88d] Use larger buffer for gethostname when available
* [1dc540f5] Reimplement async socket introspection
* [05384f21] Add a cancel handler for filewatch tasks to prevent leaking
filehandles
* [7c5d93ef] STAT is already used by AIX, so rename to STAT_t. Fixes AIX
compilation issues
JIT:
* [b8ba4707] Support endian switching in read{uint,int}
* [73b079c3,b8ba4707 437d5b01 35ea9581 c32000ba 652b2f4a] Support endian
switching in write{uint,int} and read{uint,int}, fix big endian
{read,write}{uint,int} of < qword on big endian systems, use read_buf also
when switching endianness
* [c2952f9e] JIT compile coerce_sI op
Platform:
* [6455d1f6] Fix double free in platform/sys.c
Spesh:
* [7d353030] Set callsite in frame for JIT spesh plugin resolve. Otherwise,
we won't properly mark the args buffer which can lead to us processing
outdated args
* [0d5f389c] Don't dump "Facts" in "Before" part of spesh log
* [c2640e1d] Discover type Facts of coerce_sI op
Strings:
* [4a7da329] Fix a case where the UTF-16 decoder would have a corrupted final
codepoint
* [fc495427] Use sys/machine.h on AIX systems in csiphash.h to fix
compilation on AIX
Tooling/Build:
* [caf10703] Bring trace spesh optimizer GDB script up to date
* [ef9e65ca] Make sure libatomicops build file is removed with make realclean
* [7eb00c0b] Add missing libuv file to Makefile.in for AIX
* [474b5264] Enable detection of 32 bit AIX systems in Configure.pl. This
allows the compiled program to use a large memory space
2018.11
Other:
* Rework the way bytecode is generated. Eliminate most of the MAST classes
and allow us to compile bytecode without having to have everything in
memory at the same time. The new compiler can walk the QAST tree and turn
what used to be multile MAST objects into a single buffer. Now the QAST is
turned into bytecode as directly as possible. This greatly decreases the
maximum memory used for this operation.
* [d590f25b] Ensure make realclean removes minilua binary
* [9ef725d5] Always rebuild minilua to work around issue #999
* [d721125d] Fix MVM_operand_type_mask in lib/MAST. The old mask was not
extended when unsigned types were added.
6model:
* [7ba02259] Correct named argument type tuple index calc. Fixes an
out-of-bounds memory access. Resolves issue #996
* [9f19fffa] Add new write_buf repr function to speed up write* ops
Core:
* [dcb1dce9] JIT compile param_rp_u
* [65db5b4d] Implement writeuint op
* [f6fb4646] Make bytecode dumper more resilient against invalid bytecode
Docs:
* [43c5cd4a] Add mul exprjit op to documentation
JIT:
* [7a110b71] Add hllboolfor exprjit template
* [9b2ab169] Add radix_I exprjit template
* [0accc8ce] Add coerce_* exprjit templates
* [5167d102] Add extend_{u,i}* exprjit templates
* [0c2b13a2] Add exprjit integer multiplication op: mul_i
* [d40bac9f] Use arithmetic right shift in JIT of brshift_i to ensure new
bits are shifted to match the initial sign bit
* [9468b7f7] Fix trunc to casting upwards
* [e7a1330b] JIT compile coerce_us
* [cfd6c966] Expr JIT template for sp_findmeth
* [d6ad3117] Expr JIT compile serializetobuf
* [40a4e375] Expr JIT compile unbox_u
* [fbdb36d7] JIT compile unbox_u
* [efff300c] JIT compile remaining extend and trunc ops: extend_{i8,u8,u32}
and trunc_{i8,u8}
* [39ded5fe] JIT compile decodertakeallchars
* [64b44ea0] JIT compile writeint and writeuint
* [2c4967d1] Teach the lego JIT about coerce_(iu|ui), extend_[ui]16, trunc_u
(16|32)
Ops:
* [6dfa5043] Implement readint, readuint and readnum ops
* [231cd1a1] New serializetobuf op for assisting bytecode assembly in NQP
* [07464ae3] Add a writedouble op
* [311e2683] Add the buffertocu op
Profiler:
* [6ff60a3b] Fix "pointer cast size mismatch" warnings on 32-bit arch's to
resolve issue #444
* [7aa9500e] Keep track of nativecallcast invokes
* [cd4f98af] Split "cleared bytes" into managed/unmanaged to prevent
underflow
* [add43502] Log parent thread id on thread creation
* [acb5000b] call node's first entry time should be relative
* [543f53aa,3eadf765 acb5000b] Expose first entry and start time in profiler
data
Spesh:
* [c933b516] Free spesh log entries after consuming them. Reduces memory
usage
* [6236eb5d] Fix a segfault that could occur due to missing Facts
* [25e7fa48] Teach spesh about known values for PHI nodes
* [a74af558] output known type's debugname in spesh log
* [950fb0e1] Unblock optimizing the box_* into a fastbox. Allow box_i to go
through int cache.
* [d8065362] decont on nativeref shall become decont_* + box_* to more easily
get rid of a native ref taking instruction.
Tooling/Build:
* [c0799ec1] Include system library paths in Configure.pl if configured to
use them to fix issue #1000
* [c130b7cd] Add a --nodelay flag to jit-bisect.pl
2018.10
6model:
* [8501e2e8] Fix off-by-one in multi cache spesh lookup, fixing an issue
resolving multi's with named arguments
* [d66206d0] [ConcBlockingQueue] Implement unshift, enabling queue users to
'jump the line'
* [a7fa9e6b] save 16 bytes in MVMStaticFrameBody by rearranging struct order
* [c3527467] Lower unbox of P6[int|num|str]
* [429139ed,c3527467] Box lowering for P6[int|num|str] to improve NQP
performance
* [0c7483b3] Lower box_[ns] with P6opaque removing C call, indirections and
checks
Core:
* [5e1b2554] Optimize bool_I to sp_bool_I
* [49f1c7bd] Lower add_I, sub_I, and mul_I where possible
* [663fa2ca] Mark [sp_]speshresolve as :invokish
Docs:
* [fcceaabf] Update JIT docs to include new ops
GC:
* [9e90cdd6] Don't set ref'd from gen2 flag during GC
* [2b09f6ec] Immediately promote objects ref'd from gen2 to speed up the
usage of large or long lived data structures
IO:
* [e1eb9af3] Implement async socket introspection functions
* [a5dd7652] Remove per-thread libuv loop object, which was being used but
unneeded
JIT:
* [32a47383] Fix bug causing sleep op to receive bogus values. Was visible in
Rakudo when ThreadPoolSchedular was in use, causing high cpu usage even
when doing nothing
* [95d22798] Update jit-bisect.pl work in the new Spesh log
* [58e5161e] Fix legacy JIT of strfromname
* [8c2dd3ad] Be more silent about internal failures
* [adef0806] Remove MVM_JIT_BYTECODE_DIR and add MVM_JIT_DUMP_BYTECODE which
dumps bytecode to /tmp/
* [80b18871] Remove JIT log file and log to the Spesh log instead
* [9a1cc175,8c2dd3ad] Make DynASM link errors and JIT unable to get rx pages
print to STDERR when Spesh log turned on
* [0554add8] Implement a perf map file on Linux with new environment variable
MVM_JIT_PERF_MAP
Math:
* [8f6b2ac8] Make big Int stringification 1.58x as fast for Ints larger than
2⁶⁰ (base 10)
* [ad3a80cb] Fix coredump with mul_I -> div_I ops
Ops:
* [abb5c69b] Implement fork op
Spesh:
* [4666ff43] Make heap snapshot profiler functional again
* [597ccb09] Pass on type tuple when inlining unspecialized
* [1500090a] Optimize ifnonnull branches out if we can determine which way
they branch
* [5103e9f8] Simplify/improve optimization of decont
* [196fa224] Optimize eqaddr into a constant if possible
* [b2d27cbe] Tear down spesh worker in full_cleanup
* [8aaf696a] Fix SSA handling of inlinees with multiple return
* [7ae914b6] Fix and tidy up hllbool specializations
* [ab2d58eb] Add MVM_spesh_graph_add_comment() allowing to insert arbitrary
strings into spesh log
* [50c76e21] Subtract nested inlinees when checking inline size
* [6147e0e5] Clear up and start improving box optimization
* [7f0d5327] Fix spesh dump for when inline entirely vanishes
* [a4b4d837] Optimize "hot" wval lookup into spesh slot access
Strings:
* [95d7e63c] Update Unicode Collation data to UCA 11.0
* [41425c81] Update Unicode data to version 11.0, update grapheme break rules
for 11.0 changes
2018.09
Core:
* [6edaac44] Add true_value and false_value to HLL config for future hllbool
op
Documentation:
* [156b5bc3] Clarify a few things in bytecode specification
* [e17a53b8] Update the release guide a bit
GC:
* [ccf3dd37] Fix alignment of nursery allocations. Fixes segfaults on armhf
IO:
* [51f2db57] Add support in write_fhb op for writing 16 bit VM arrays to a
filehandle
JIT:
* [848f74e3] Add exprjit macros for register type constants
* [18cb687c] Add ^zero/^one exprjit macros for 0 and 1 integers
* [398f073b] Add param_sp and hasunipropc exprjit templates
* [9e0237ed] Add binddynlex exprjit template
* [3c10d230] Add getarg_* exprjit templates
* [af6353d3] Add bindlex_n* exprjit templates
* [9ed59041] Add reprname exprjit template
* [f43ab19e] Add objprim{bits,unsigned} exprjit templates
* [722f0939] Add down-cast operations to cast_unsigned_load_addr
* [891d5c02] Implement truncation via unsigned cast for expr JIT
* [ef474331] Teach the lego JIT to compile hllbool
* [c1c2b7e3,c1c2b7e3] JIT compile hllboolfor, hllboolfor
* [756a97d1] JIT compile hllbool
* [37a2cd36] Increase array size of args on MVMJitTile struct
* [9bef425a] Add objprimspec exprjit template
* [9590c483] Implement cast_load_addr tile for exprjit
* [6556de6d] Make minor JIT doc changes
* [17365037] Add a macro for decoder_ensure_decoder and templates for decoder
<addbytes takebytes takeline empty>
* [f71f55cf] JIT decoder(empty|takebytes)
* [c1b7b549] Add paramnamesused exprjit template
* [f5928803] Add getpid and hintfor exprjit templates
* [8a70d24d] Add ctx exprjit template
* [14f6956c] Add existspos exprjit template
* [77d75210][14f6956c][8a70d24d][f5928803][c1b7b549][9bef425a][f43ab19e]
[9ed59041][af6353d3][3c10d230][9e0237ed][398f073b] Add unshift_*,
existspos, ctx, getpid, hintfor, paramnamesused, objprimspec, objprim
{bits,unsigned}, reprname, bindlex_n*, getarg_*, binddynlex, param_sp and
hasunipropc exprjit templates
* [1d4bd3ec] Bind 'let:' declarations eagerly in expr JIT compiler
* [dc1cc51b] Tighten scope rules for expr JIT compiler
* [e4542ee1] New template compiler, Single-pass compilation, Better type and
format checking, a few syntax changes
* [7567696e] Pass MVMRegister to lexical-binding function for exprjit. This
accommodates the exprjit templates and allows us to the pass the value
instead of a pointer.
Libraries:
* [73e2f53d] Update libuv to 1.23.0
Ops:
* [954bdf88] New hllbool and hllboolfor ops
Platform:
* [3abd2888] Throw error on failure in decodelocaltime
* [a8dfd479] Fix on decodelocaltime on Windows
Profiler:
* [bcbe9b20] Pass an array with information on types to profiler
Spesh:
* [24860d4c] Let spesh discover the type of hllbool[for]
* [7c5740fb] Teach spesh to replace hllboolfor by the result for known values
* [ee0004bf] Teach spesh to replace hllbool by the result for known values
* [2fb3265a] Fix segfault of native subs with more than 8 arguments
* [c49fc88a] Fix rw args of JITed calls to JITed native calls
* [96b88eba] Leak fixes in Spash
* [b217a115] Destroy inlinee after inlining
Strings:
* [3e94a68f] Pass through BOM with utf16le and utf16be
* [ff750504] Make sure MVM_string_utf16le/be_decodestream are predeclared
* [ad12d8e4] Fix some bugs with utf16* decodestream get_chars, and retain
state
* [792cdd58,ad12d8e4 ff750504 3e94a68f] Add support for utf16le and utf16be
to decodestream. utf16le and utf16be do not expect a byte order marker and
will pass them through as Zero Width Non-Break Space per UTF16 spec
* [ddde0950] Add encode support for utf16le and utf16be
* [b162c7c4] Add utf16le and utf16be encoding types and implement for buffer
decode
* [578c2f76] Add support for utf-16 to decodestream
* [f06c695a] Make Unicode Block name lookup work for unassigned cp's
Misc:
* [652056de] Fix use-after-free in cleanup
2018.08
6model:
* [d4d8ff41] Mark functions used in Perl 6 extops MVM_PUBLIC
* [4199a956] Enable gc_free of MVMContext
* [e1df3411] Speedup VMArray zero_slots by using memset instead of a loop
* [46c08a0e] Fix memory leak in CArray given P6 Str's
* [ac3d3c76] Fix alignment/mem issue of inlined CArrays
* [919e78ab] Fix race in setting the type debug name
Core:
* [a24033eb] Make coerce_is/us 2x faster by not using snprintf and using
dedicated integer to string code
Docs:
* [73d646c6,210d27ff] Remove outdated mentions of Parrot
* [411f73fd] [Docs] Add JIT documentation describing how to add a tile
* [9647c1c4] ExprJIT: Document the conditional dependency check
Documentation:
* [8a7da04a] Update garbage collection documentation
GC:
* [e766345d] Speed up hash garbage collection by optimizing its gc_mark();
add new macros
* [8ac13c29] Optimize VMArray_gc_mark to be a bit faster
* [7bf4c429] Optimize SCRef_gc_mark by using faster MVM_gc_worklist_add calls
* [3e91dc62] Fix MVM_GC_DEBUG worklist check for NULL STable
* [2f36e266] Add branch hint macros to nursery allocation
* [62a99bcf] Fix segfaults caused by sharing of jitcode in nativeCall repr
General:
* [4fa8c855,940c02be,df6271af,b2c8d3ff,2194358c,50262e3c,3da1e5fb] Refactor
context traversal to better support inlining
IO:
* [febffaa2] Expose file descriptors of IO::Socket::INET instances
* [2e946881] Expose listening host and port in asyncsocket_listen
JIT:
* [2249d688] Move lexprimspec to proper emitter getrusage, threadlockcount
* [9b2008a0] Add exprjit macro to retrieve fields from instance
* [bc9627ba] Add exprjit macro to determine if vmnull
* [70624742,33c5840c] Re-add getlexstatic_o and getlex_no exprjit templates
with minor changes
* [c3ef58e1] Change ^getf to load in getlexstatic_o template so it only uses
a single load instruction
* [0b7f26ce,1ab3b189] JIT-compile sp_speshresolve, JIT neg_I and abs_I
* [1fe14d3c,bd8361e2] Define ARG5 and ARG6 on Windows since it only has 4
arguments to functions in general purpose registers
* [ef41080c] Use '^addrf' macro for setf, getf
* [8b522291] Remove 'unsafe' templates already in core_templates, these
templates have working exprjit versions
* [e242dc8f] Fix unicmp_s expr jit args
* [7bcef24f] Move label assignment to tiler
* [922befb2] Move exprjit oplist parser into a module
* [9b44d481] JIT strfromname in the legacy JIT
* [30781708] Fix JIT compiled getarg_* reading the wrong register
* [d19c6608] Unbreak build on architectures where we don't support JIT
compilation
* [14bdaea4] Use reference counting for maintaining multiple code copies
* [various] Add expr templates for eqatic_s, eqatim_s, ordbaseat, uc, lc, tc,
split, join, getcp_s, indexcp_s, index_s, graphs_s, codes_s, substr_s,
ordat, chr, getenvhash, backendconfig coerce_si, equaticim_s, unicmp_s,
indexicim_s, getstrfromname, indexic_s, isinvokable, getlexreldyn,
objprimunsigned, scgethandle, scobjcount, setobjsc, getcodename,
captureposarg_i, captureposarg_n, captureposarg_s, knowhow, unbox_s,
getuniname, ordfirst, repeat_s, haveat_s, getcpbyname, unipropcode,
unipvalcode, hasuniprop, getuniprop_{int,bool,str}, nativecallbuild,
nativecallinvoke, nativecallrefresh, threadrun, threadid, threadyield,
currentthread, lock, unlock, timer, matchuniprop, iscont_i, iscont_n,
iscont_s, flip, rindexfrom, atpos_n, atpos_s, atkey_i/n/s/u coerce_iu/ui
decont_u, rand_i, setwho, boot*, iscont, chars, escape, getcodeobj,
iscoderef, setbuffersize_fh, iscclass, findcclass, findnotcclass,
nfafromstatelist, nfarunproto, nfarunalt, radix, encode, decode, istrue_s,
isfalse_s, hlllist, hllhash, settypehll*, hllizefor, exception, newtype
composetype, bindex*, getex*, backtracestrings, capture, multicache
setdispatcher, sha1, sc, iscompunit, isnonnull, cancel, signal, watchfile,
execname, isinvokable, isrwcont, async, asynclisten, getlex_n{i,n,s},
ctxcallerskipthunks, add_I, fc, encoderep, istty_fh, getport_sk,
encode*conf, decode*conf, getppid, setdispatcherfor, param_rp_i,
{add,sub,mul,div,mod}I, {cmp,eq,ne,lt,le,gt,ge}I, {pow,gcd,lcm}I, isprimeI,
rand_I, expmod_I, bor_I, bxor_I, band_I, bnot_I, blshift_I, brshift_I,
{isbig,bool,base}I, get*hllsym, print, nullptr, findmeth, cans, connect_sk,
socket, bind_sk, accept_sk, tell_fh, stat, lstat, getlex{outer,caller}, bit
{and,or,xor}_s,
Math:
* [353940a8,e9b1b73b] Get rid of many unneeded of mallocs in coerce_sI and
MVM_bigint_to_str()
Ops:
* [f1256790,02bddce8] Add a negated object literal spesh plugin guard and JIT
the object non-match guard
* [1ed8c64c] Add sp_speshresolve op
* [ec4c63e0] Mark speshresolve as :noinline
* [9d4681af] Rename getstrfromname to strfromname
Other:
* [e783f567] Unbreak update-changelog.p6 and use new Git::Log module
Profiler:
* [69e2a388] Add a few missing allocating ops to profiler
Spesh:
* [a75090c6] Lessen the number of spesh threshold levels
* [b3ce4f6d] Eliminate object non-match guard in many cases
* [20d44791] Fix guard evaluator attribute handling
* [9745f921] Add facts to attributes in spesh plugin guards
* [af455397] Refactor inline logging and detect missed inlines
* [fa471f1d] Have fact discovery determine usage counts
* [f59335ea] Attempt inlining so-far unspecialized callees
* [24d3b5bf,155f1dfb] Fix dump of inlined spesh line/file annotations, update
deopt logging
* [5ef61a76] When inlining unspecialized, set arg type facts
* [4373eecd] Store deopt usage separate from normal usage
* [caef82f1] Correctly update OSR deopt index upon inlining
* [26a91852] Mark deopt use of the write of a deopt instruction
* [3df2ff91] Switch usage handling to new use chain model
* [f8c4648f] Allow hllboxtype_* across hll in inlines by not using :useshll
for the ops
* [3727d18b] Implement box/unbox elimination
* [13718793] Delete void return instruction when inlining
* [6e7b215e] Update all of the guard insertion to use the new SSA versioned
guards
* [1a22aaa4] Copy facts when splitting SSA versions
* [1347a94d] Output name and cuuid in spesh slots for code object in Spesh
dump
* [37b7c7b7] Discover facts about a bunch of sp_guard ops
* [0daf99bc] Fix inlining of things with multiple return's
* [da9123a7] Only mark stolen_deopt_ann_used if it is, to prevent a potential
crash
Strings:
* [3ea8f68d] Use Fibonacci hashing to determine which bucket's to put hash
value's into
* [9f005086] Used fixed size allocator for hashes. Nice speedup for table
expansion
* [6646038f] Factor out our hashing function and speed up hashing for flat
strings
* [0eb25300] Make parse_simple_number impossible to reach end without
returning
* [3ef2acf0] Hash: randomize insertion order and bucket iteration order
* [0e110820] Make a faster HASH_ITER macro and make other hash optimizations
* [e94d3dfd] Remove previous hash handle pointers in hash implementation
* [d9a3270a] Implement SipHash, use as our hashing function w/ 64bit hashvals
* [39a2e71b] Optimize uthash ptr delete code
* [c5686559] Check if bucket is correct in HASH_FSCK
* [e3e1d0d0] Use sized types for uthash (instead of using unsigned
everywhere)
* [448e75bd] Get the number of bytes to be processed from the current buffer
and not from the header in MVM_string_utf8_c8_decodestream()
* [4ec15fc5] Increase the result buffer size for
MVM_string_utf8_c8_decodestream()
* [829b8ee7] Fix a regression with grapheme segmentation when multiple
regional indicators are in the same string
Tooling/Build:
* [abf7d0c2] Use clang with OpenBSD since their ancient gcc creates a moar
which can't generate NQP anymore.
* [821cfd52] Fix tools/compare-oplist-interp-order.sh on *BSD
* [888e1cf0] Add script to generate html documentation from docs
* [33363d32] Make tools/ scripts executable and add shebangs
* [ecff5b47] Fix NetBSD build failure by adding a missing .h suffix in build/
Makefile.in
* [3bf120a1] Fix Configure.pl version detection in some instances
* [9601ac45] Don't store owner or group in our release's tar archive
* [5bfad12b] Make update-changelog.p6 interactive
Run applications under pseudo-terminal (PTY) sessions and replace
TCL/Expect with a simple tool under your favorite shell (sh, bash,
csh, tcsh, ksh, zsh, etc.).
Packaged by David Weller-Fahy in PR pkg/53955.
Provided by Thomas Dickey in private email.
2018/05/25 (4.7o)
- correct logic in CF_YACC_ERROR macro for clang.
2018/05/24 (4.7n)
- add check_errors rule to show error messages from test-cases
- correct logic in YACC_HAS_YYTOKS case for isascii().
- updated/improved test-packages.
- updated configure macros
- update config.guess
0.33.0:
Added the --build-number option to the wheel pack command
Fixed bad shebangs sneaking into wheels
Fixed documentation issue with wheel pack erroneously being called wheel repack
Fixed filenames with "bad" characters (like commas) not being quoted in RECORD
4.4
* Detect condition where declarative config will cause
errors and emit a UserWarning with guidance on necessary
actions.
4.3.1
* Re-release of 4.2 to supersede the 4.3 release which
proved to be backward-incompatible in that it requires
setuptools 30.4 or possibly later (to install). In the future, a
backward-incompatible release will re-release these changes.
For projects including pytest-runner, particularly as
setup_requires, if support for older setuptools is required,
please pin to pytest-runner < 5.
1. Security Fixes
It was possible to use symlinks and subrepositories to defeat
Mercurial's path-checking logic and write files outside a repository.
This has been fixed. Users on older versions can either disable
subrepositories with
[subrepos] allowed = false
in their configuration or by ensuring any cloned repositories don't
contain malicious symlinks.
2. New Features
'hg histedit' will now present a curses UI if curses is available
and 'ui.interface' or 'ui.interface.histedit' is set to 'curses'.
The 'sparse-revlog' delta strategy is enabled by default for
new repositories.
See hg help config.format.sparse-revlog for details.
3. Other Notable Features
New rewrite.update-timestamp=True option to update the commit
timestamp on history editing (e.g. amend.)
New ui.message-output=stderr option for scripting, which prevents
status messages from interleaved.
New rootglob: filename pattern for a glob that is rooted at
the root of the repository. See hg help patterns and hg help
hgignore for details. Some more reimplementation of ancestry
algorithms in Rust for better performance.
4. Backwards Compatibility Changes
Boolean options passed to the logtoprocess extension are now
formatted as "0" or "1" instead of "None", "False", or "True".
The logtoprocess extension no longer supports invalid "ui.log()"
arguments. A log message is always formatted and passed in to
the "$MSG1" environment variable.
5. Internal API Changes
Status messages may be sent to a dedicated stream depending on
configuration. Don't use "ui.status()", etc. as a shorthand
for conditional writes. Use "ui.write()" for data output. Add
'exthelper' class to simplify extension writing by allowing
functions, commands, and configitems to be registered via
annotations. The previous APIs are still available for use.
The extension hook "extsetup" without a 'ui' argument has been
deprecated, and will be removed in the next version. Add a 'ui'
argument to avoid the deprecation warning.
4.3.2:
Accepted a patch from Sylvain Marie (https://github.com/smarie): now the
decorator module can decorate generator functions by preserving their
being generator functions. Set `python_requires='>=2.6, !=3.0.*, !=3.1.*'`
in setup.py, as suggested by https://github.com/hugovk.
4.3.1:
Added a section "For the impatient" to the README, addressing an issue
raised by Amir Malekpour. Added support for Python 3.7. Now
the path to the decorator module appears in the tracebacks, as suggested
by an user at EuroPython 2018.
0.13.2:
Add a non-regression test, reporting that cloudpickle versions between 0.5.4 and 0.7 introduced a bug where global variables changes in a parent process between two calls to joblib.Parallel would not be propagated into the workers
0.13.1:
Memory now accepts pathlib.Path objects as location parameter. Also, a warning is raised if the returned backend is None while location is not None.
Make Parallel raise an informative RuntimeError when the active parallel backend has zero worker.
Make the DaskDistributedBackend wait for workers before trying to schedule work. This is useful in particular when the workers are provisionned dynamically but provisionning is not immediate (for instance using Kubernetes, Yarn or an HPC job queue).
This is a terse description of the new features added to readline-8.0 since
the release of readline-7.0.
New Features in Readline
a. Non-incremental vi-mode search (`N', `n') can search for a shell pattern, as
Posix specifies (uses fnmatch(3) if available).
b. There are new `next-screen-line' and `previous-screen-line' bindable
commands, which move the cursor to the same column in the next, or previous,
physical line, respectively.
c. There are default key bindings for control-arrow-key key combinations.
d. A negative argument (-N) to `quoted-insert' means to insert the next N
characters using quoted-insert.
e. New public function: rl_check_signals(), which allows applications to
respond to signals that readline catches while waiting for input using
a custom read function.
f. There is new support for conditionally testing the readline version in an
inputrc file, with a full set of arithmetic comparison operators available.
g. There is a simple variable comparison facility available for use within an
inputrc file. Allowable operators are equality and inequality; string
variables may be compared to a value; boolean variables must be compared to
either `on' or `off'; variable names are separated from the operator by
whitespace.
h. The history expansion library now understands command and process
substitution and extended globbing and allows them to appear anywhere in a
word.
i. The history library has a new variable that allows applications to set the
initial quoting state, so quoting state can be inherited from a previous
line.
j. Readline now allows application-defined keymap names; there is a new public
function, rl_set_keymap_name(), to do that.
k. The "Insert" keypad key, if available, now puts readline into overwrite
mode.
== [8.0.2] 2018-12-23 ==
* Abort with appropriate message if executable pages cannot be allocated
* Add initial testing of GC_enable/disable, MALLOC[_ATOMIC]_IGNORE_OFF_PAGE
* Add paths to filenames mentioned in the copyright section in README
* Add test using disclaim notifiers to implement a weak map
* Adjust #error messages format
* Allow to force executable pages allocation in gctest
* Avoid potential 'macro redefinition' errors for config.h macros
* Call real pthread_sigmask instead of its wrapper in start_mark_threads
* Check result of pthread_mutex_unlock in specific.c
* Default to a single-threaded build for Nintendo, Orbis, Sony PSP targets
* Default to non-executable memory allocation across all make scripts
* Define GC_ATOMIC_UNCOLLECTABLE and JAVA_FINALIZATION in all make scripts
* Do not prevent GC from looking at environment variables (BCC_MAKEFILE)
* Do not use 'ifndef AO_CLEAR' in mark, pthread_support and gctest
* Do not use spin locks if AO test-and-set is emulated (pthreads)
* Document HANDLE_FORK macro optional usage in Makefile.direct
* Document assertion in the setters that used to return old value
* Eliminate 'assigned value never used' compiler warning in test_cpp WinMain
* Eliminate 'casting signed to bigger unsigned int' CSA warning
* Eliminate 'different const qualifiers' MS VC warnings in cordbscs
* Eliminate 'function is never used' cppcheck warning for calloc/realloc
* Eliminate 'non-virtual destructor for class with inheritors' CSA warning
* Eliminate 'pointer targets differ in signedness' compiler warning (Win32)
* Eliminate 'struct member is never used' cppcheck warnings in os_dep
* Eliminate 'uninitialized var' cppcheck false positive in mach_dep, os_dep
* Eliminate 'unreferenced formal parameter' compiler warning in msvc_dbg
* Eliminate redundant check in backwards_height
* Fix 'USE_MUNMAP macro redefinition' error for NaCl
* Fix 'collecting from unknown thread' abort in leak-finding mode for Win32
* Fix 'mprotect remapping failed' abort on NetBSD with PaX enabled
* Fix 'too wide non-owner permissions are set for resource' code defect
* Fix GC_VSNPRINTF in cordprnt for DJGPP and MS VC for WinCE
* Fix GC_register_disclaim_proc for leak-finding mode
* Fix a deadlock in write_fault_handler if AO_or is emulated
* Fix comment typo in CMakeLists.txt
* Fix concurrent bitmap update in GC_dirty
* Fix deadlocks in write and suspend handlers if AO test-and-set is emulated
* Fix executable memory allocation in GC_unix_get_mem
* Fix hbp overflow in GC_install_counts
* Fix linkage with a system libatomic_ops shared library
* Fix lock assertion violation in get_index if GC_ALWAYS_MULTITHREADED
* Fix marking of finalizer closure object
* Fix marks and hb_n_marks consistency when disclaim returns true
* Fix memory allocation on GCF (Linux/x64)
* Fix missing curses.h in cord/de when compiling manually (MS VC, MinGW)
* Fix test_cpp assertion violation in find-leak mode
* Fix tests linkage with internal atomic_ops.o
* Fix unneeded end_stubborn_change/ptr_store_and_dirty in disclaim_test
* Guard against potential buffer overflow in CORD_next and CORD_pos_fetch
* New macro to suppress printing of leaked objects
* Pass -Wall -Wextra -Wpedantic to g++ if supported (configure)
* Prefix internal durango_get_mem symbol with 'GC_'
* Prevent double inclusion of javaxfc.h and private/specific.h
* Print relevant message in tests not appropriate for leak detection mode
* Reduce scope of local variables in GC_remove_all_threads_but_me
* Refine HIDE_POINTER documentation for the case of the leak-finding mode
* Refine documentation in gc_disclaim.h
* Remove extra USE_MMAP definition for Interix
* Remove redundant header double-inclusion checks in the private headers
* Remove strlen calls with a constant string argument in msvc_dbg
* Specify register_disclaim_proc and finalized_malloc argument as non-null
* Support UWP/arm64 target
* Test marking of finalizer closure object in disclaim_test
* Turn off leak detection mode explicitly in cord/de
* Turn off parallel marker, thread-local allocation if used AO ops emulated
* Turn on gcj functionality in BCC, DMC, NT, OS/2, WCC makefiles
* Turn on memory unmapping in BCC/DMC/NT/WCC makefiles and Makefile.direct
* Update NO_EXECUTE_PERMISSION documentation
* Update documentation about arm64 ABI in gcconfig.h
* Use AO_or in async_set_pht_entry_from_index if available
* Use GC_WORD_MAX macro across all C source files
* Use macro to operate on a flag residing in GC_stop_count
* Use standalone private macro to guard against ptr_t redefinition
* Workaround '#error' cppcheck messages in backgraph and private headers
* Workaround 'AST broken' syntax error reported by cppcheck in GC_mark_some
* Workaround 'GC_dump function is never used' cppcheck warning
* Workaround 'local address assignment to a global variable' CSA warning
* Workaround 'local variable end shadows outer symbol' cppcheck warnings
* Workaround 'local variable obj_displ shadows outer symbol' cppcheck warning
* Workaround 'nonlocal var will use ptr to local var' cppcheck false positive
* Workaround 'pointer addition with NULL pointer' cppcheck error in msvc_dbg
* Workaround 'potential non-terminated string' false positive in cordbscs
* Workaround 'value of _MAX_PATH is unknown' cppcheck warning
* Workaround cppcheck warnings regarding CLOCKS_PER_SEC, REDIRECT_REALLOC
* Noteworthy changes in release 3.2.4 (2018-12-24) [stable]
** Bug fixes
Fix the move constructor of symbol_type.
Always provide a copy constructor for symbol_type, even in modern C++.
* Noteworthy changes in release 3.2.3 (2018-12-18) [stable]
** Bug fixes
Properly support token constructors in C++ with types that include commas
(e.g., std::pair<int, int>). A regression introduced in Bison 3.2.
* Noteworthy changes in release 3.2.2 (2018-11-21) [stable]
** Bug fixes
C++ portability issues.
* Noteworthy changes in release 3.2.1 (2018-11-09) [stable]
** Bug fixes
Several portability issues have been fixed in the build system, in the
test suite, and in the generated parsers in C++.
* Noteworthy changes in release 3.2 (2018-10-29) [stable]
** Backward incompatible changes
Support for DJGPP, which have been unmaintained and untested for years, is
obsolete. Unless there is activity to revive it, it will be removed.
** Changes
%printers should use yyo rather than yyoutput to denote the output stream.
Variant-based symbols in C++ should use emplace() rather than build().
In C++ parsers, parser::operator() is now a synonym for the parser::parse.
** Documentation
A new section, "A Simple C++ Example", is a tutorial for parsers in C++.
A comment in the generated code now emphasizes that users should not
depend upon non-documented implementation details, such as macros starting
with YY_.
** New features
*** C++: Support for move semantics (lalr1.cc)
The lalr1.cc skeleton now fully supports C++ move semantics, while
maintaining compatibility with C++98. You may now store move-only types
when using Bison's variants. For instance:
%code {
#include <memory>
#include <vector>
}
%skeleton "lalr1.cc"
%define api.value.type variant
%%
%token <int> INT "int";
%type <std::unique_ptr<int>> int;
%type <std::vector<std::unique_ptr<int>>> list;
list:
%empty {}
| list int { $$ = std::move($1); $$.emplace_back(std::move($2)); }
int: "int" { $$ = std::make_unique<int>($1); }
*** C++: Implicit move of right-hand side values (lalr1.cc)
In modern C++ (C++11 and later), you should always use 'std::move' with
the values of the right-hand side symbols ($1, $2, etc.), as they will be
popped from the stack anyway. Using 'std::move' is mandatory for
move-only types such as unique_ptr, and it provides a significant speedup
for large types such as std::string, or std::vector, etc.
If '%define api.value.automove' is set, every occurrence '$n' is replaced
by 'std::move ($n)'. The second rule in the previous grammar can be
simplified to:
list: list int { $$ = $1; $$.emplace_back($2); }
With automove enabled, the semantic values are no longer lvalues, so do
not use the swap idiom:
list: list int { std::swap($$, $1); $$.emplace_back($2); }
This idiom is anyway obsolete: it is preferable to move than to swap.
A warning is issued when automove is enabled, and a value is used several
times.
input.yy:16.31-32: warning: multiple occurrences of $2 with api.value.automove enabled [-Wother]
exp: "twice" exp { $$ = $2 + $2; }
^^
Enabling api.value.automove does not require support for modern C++. The
generated code is valid C++98/03, but will use copies instead of moves.
The new examples/c++/variant-11.yy shows these features in action.
*** C++: The implicit default semantic action is always run
When variants are enabled, the default action was not run, so
exp: "number"
was equivalent to
exp: "number" {}
It now behaves like in all the other cases, as
exp: "number" { $$ = $1; }
possibly using std::move if automove is enabled.
We do not expect backward compatibility issues. However, beware of
forward compatibility issues: if you rely on default actions with
variants, be sure to '%require "3.2"' to avoid older versions of Bison to
generate incorrect parsers.
*** C++: Renaming location.hh
When both %defines and %locations are enabled, Bison generates a
location.hh file. If you don't use locations outside of the parser, you
may avoid its creation with:
%define api.location.file none
However this file is useful if, for instance, your parser builds an AST
decorated with locations: you may use Bison's location independently of
Bison's parser. You can now give it another name, for instance:
%define api.location.file "my-location.hh"
This name can have directory components, and even be absolute. The name
under which the location file is included is controlled by
api.location.include.
This way it is possible to have several parsers share the same location
file.
For instance, in src/foo/parser.hh, generate the include/ast/loc.hh file:
%locations
%define api.namespace {foo}
%define api.location.file "include/ast/loc.hh"
%define api.location.include {<ast/loc.hh>}
and use it in src/bar/parser.hh:
%locations
%define api.namespace {bar}
%code requires {#include <ast/loc.hh>}
%define api.location.type {bar::location}
Absolute file names are supported, so in your Makefile, passing the flag
-Dapi.location.file='"$(top_srcdir)/include/ast/location.hh"' to bison is
safe.
*** C++: stack.hh and position.hh are deprecated
When asked to generate a header file (%defines), the lalr1.cc skeleton
generates a stack.hh file. This file had no interest for users; it is now
made useless: its content is included in the parser definition. It is
still generated for backward compatibility.
When in addition to %defines, location support is requested (%locations),
the file position.hh is also generated. It is now also useless: its
content is now included in location.hh.
These files are no longer generated when your grammar file requires at
least Bison 3.2 (%require "3.2").
** Bug fixes
Portability issues on MinGW and VS2015.
Portability issues in the test suite.
Portability/warning issues with Flex.
* Noteworthy changes in release 3.1 (2018-08-27) [stable]
** Backward incompatible changes
Compiling Bison now requires a C99 compiler---as announced during the
release of Bison 3.0, five years ago. Generated parsers do not require a
C99 compiler.
Support for DJGPP, which have been unmaintained and untested for years, is
obsolete. Unless there is activity to revive it, the next release of Bison
will have it removed.
** New features
*** Typed midrule actions
Because their type is unknown to Bison, the values of midrule actions are
not treated like the others: they don't have %printer and %destructor
support. It also prevents C++ (Bison) variants to handle them properly.
Typed midrule actions address these issues. Instead of:
exp: { $<ival>$ = 1; } { $<ival>$ = 2; } { $$ = $<ival>1 + $<ival>2; }
write:
exp: <ival>{ $$ = 1; } <ival>{ $$ = 2; } { $$ = $1 + $2; }
*** Reports include the type of the symbols
The sections about terminal and nonterminal symbols of the '*.output' file
now specify their declared type. For instance, for:
%token <ival> NUM
the report now shows '<ival>':
Terminals, with rules where they appear
NUM <ival> (258) 5
*** Diagnostics about useless rules
In the following grammar, the 'exp' nonterminal is trivially useless. So,
of course, its rules are useless too.
%%
input: '0' | exp
exp: exp '+' exp | exp '-' exp | '(' exp ')'
Previously all the useless rules were reported, including those whose
left-hand side is the 'exp' nonterminal:
warning: 1 nonterminal useless in grammar [-Wother]
warning: 4 rules useless in grammar [-Wother]
2.14-16: warning: nonterminal useless in grammar: exp [-Wother]
input: '0' | exp
^^^
2.14-16: warning: rule useless in grammar [-Wother]
input: '0' | exp
^^^
3.6-16: warning: rule useless in grammar [-Wother]
exp: exp '+' exp | exp '-' exp | '(' exp ')'
^^^^^^^^^^^
3.20-30: warning: rule useless in grammar [-Wother]
exp: exp '+' exp | exp '-' exp | '(' exp ')'
^^^^^^^^^^^
3.34-44: warning: rule useless in grammar [-Wother]
exp: exp '+' exp | exp '-' exp | '(' exp ')'
^^^^^^^^^^^
Now, rules whose left-hand side symbol is useless are no longer reported
as useless. The locations of the errors have also been adjusted to point
to the first use of the nonterminal as a left-hand side of a rule:
warning: 1 nonterminal useless in grammar [-Wother]
warning: 4 rules useless in grammar [-Wother]
3.1-3: warning: nonterminal useless in grammar: exp [-Wother]
exp: exp '+' exp | exp '-' exp | '(' exp ')'
^^^
2.14-16: warning: rule useless in grammar [-Wother]
input: '0' | exp
^^^
*** C++: Generated parsers can be compiled with -fno-exceptions (lalr1.cc)
When compiled with exceptions disabled, the generated parsers no longer
uses try/catch clauses.
Currently only GCC and Clang are supported.
** Documentation
*** A demonstration of variants
A new example was added (installed in .../share/doc/bison/examples),
'variant.yy', which shows how to use (Bison) variants in C++.
The other examples were made nicer to read.
*** Some features are no longer 'experimental'
The following features, mature enough, are no longer flagged as
experimental in the documentation: push parsers, default %printer and
%destructor (typed: <*> and untyped: <>), %define api.value.type union and
variant, Java parsers, XML output, LR family (lr, ielr, lalr), and
semantic predicates (%?).
** Bug fixes
*** GLR: Predicates support broken by #line directives
Predicates (%?) in GLR such as
widget:
%? {new_syntax} 'w' id new_args
| %?{!new_syntax} 'w' id old_args
were issued with #lines in the middle of C code.
*** Printer and destructor with broken #line directives
The #line directives were not properly escaped when emitting the code for
%printer/%destructor, which resulted in compiler errors if there are
backslashes or double-quotes in the grammar file name.
*** Portability on ICC
The Intel compiler claims compatibility with GCC, yet rejects its _Pragma.
Generated parsers now work around this.
*** Various
There were several small fixes in the test suite and in the build system,
many warnings in bison and in the generated parsers were eliminated. The
documentation also received its share of minor improvements.
Useless code was removed from C++ parsers, and some of the generated
constructors are more 'natural'.
2019-01-06 meld 3.20.0
======================
Fixes:
* Add Enter as a Compare accelerator in folder comparisons (Kai Willadsen)
* Change entry and drag-n-drop file changes to confirm discarding modified
files instead of offering to save, for simplicity (Kai Willadsen)
* Fix menu sensitivity in folder comparisons (Kai Willadsen)
* Avoid dconf writes of no-op window size allocations (Kai Willadsen)
* Issues fixed: 247, 262
Translations:
* Emin Tufan Çetin (tr)
* Milo Casagrande (it)
* Rafael Fontenelle (pt_BR)
pytest 4.2.1:
Bug Fixes
- The pytest_report_collectionfinish hook now is also called with --collect-only.
- Do not raise UsageError when an imported package has a pytest_plugins.py child module.
- Fix output capturing when using pdb++ with recursive debugging.
- Fix handling of collect_ignore via parent conftest.py.
- Fix regression where setUpClass would always be called in subclasses even if all tests
were skipped by a unittest.skip() decorator applied in the subclass.
- Fix parametrize(... ids=<function>) when the function returns non-strings.
- Fix/improve collection of args when passing in __init__.py and a test file.
- more_itertools is now constrained to <6.0.0 when required for Python 2.7 compatibility.
- Fix "ValueError: Plugin already registered" exceptions when running in build directories that symlink to actual source.
Improved Documentation
- Add note to plugins.rst that pytest_plugins should not be used as a name for a user module containing plugins.
- Document how to use raises and does_not_raise to write parametrized tests with conditional raises.
- Document how to customize test failure messages when using
pytest.warns.
Trivial/Internal Changes
- Some verbosity related attributes of the TerminalReporter plugin are now
read only properties.