Beast 0.11.0 and Rapicorn 17.0.0

Beast 0.11.0 and Rapicorn 17.0.0 are out.

Beast is a Music Synthesizer and Composer,
Rapicorn is an SVG-based toolkit for declarative UI construction.

After the positive feedback from rc1 in the last week it's time for a proper
release, so here are the final tarballs:

Fixes since last week's rc1 include i18n, namespace issues in the BSE header
files, some PD licensing clarifications and avoiding assert or aborting error
functions in library code.

Overall, the Beast 0.11 release brings a truckload of new stuff like soundfont
support thanks to Stefan Westerfeld, true multi threading for the DSP module
calculations, faster startup times and a number of bug fixes.
We are also starting to install/package the experimental ebeast code, but
that's not yet fully working and has major changes in the queue for upcoming
The long non-functional Scheme scripting backend has been removed, the plan is
to support more former-script functionality in the UI and in the distant future
possibly allowing scripts again that also have access to UI components.
Building distributions now uses git archive which avoids a lot of tedious
autotools updates before releases.

Notably the packaging scheme has been changed so that Beast is now installed
under $prefix/lib/beast-VERSION and optionally supports --with-pkgroot which
allows to build Beast as /opt/beast-VERSION. Symlinks are provided from /usr
or $prefix subdirs like bin/ and mime-info/ into the Beast package dir as
needed. This enables binary package builds under /opt/beast-0-11 with symlinks
installed in /usr, like e.g. google-chrome-stable*.deb does it.
The binary package for this release is here:

Numerous additions also went into the new Rapicorn release, but pace will be
slowing down here to put more focus on Beast in the future. A binary build of
the Rapicorn tarball is integrated into the Beast binary package, as Beast is
the only known user of Rapicorn atm.

The release NEWS for the tarballs can be found online:

The shortlogs are appended.

Yours sincerely,
Tim Janik
Free software author.

Stefan Westerfeld (67):
      Use creative commons publicdomain URL instead of LICENSE-AS-IS.
      BST: fix translation questions, patch by Stefan Westerfeld
      BSE: more Bse:: namespace for uint8, uint32 and uint64 in bse includes
      BSE: add proper Bse:: namespace to uint8 and uint64 in bse includes
      TOOLS: bsefextract: don't segfault if input file is empty
      BSE: fix midi import problems related to Bse::Song API updates
      TOOLS: fix average energy output for completely silent samples
      BSE: SF2: disable unimportant fluid messages
      BEAST: fix compilation problem (__unused undefined)
      TESTS: testresampler: fix signedness related bug in FFT windowing
      BSE: SF2: fix make check by using sample path to locate soundfonts
      BSE: SF2: move remaining data members from SoundFontRepo to Impl
      BSE: SF2: move more fluid* data members to SoundFontRepoImpl
      BSE: SF2: move sound_fonts GList to SoundFontRepoImpl and use std::vector
      BSE: SF2: move preset vector to SoundFontImpl object
      BSE: SF2: store sound font presets in std::vector instead of GList
      TESTS: add required sf2 files to EXTRA_DIST
      BSE: SF2: move more data members from BseSoundFont to Bse::SoundFontImpl
      BSE: SF2: fix extremely rare temp file name collions; use better prefix
      BSE: SF2: store tmp files under $XDG_CACHE_HOME/libbse or ~/.cache/libbse
      TESTS: audio: add soundfont-test, which tests basic sound font replay
      BSE: SF2: BseStorage::Blob: replace C style API with C++ style API
      BSE: SF2: use std::shared_ptr for blob reference counting
      BSE: SF2: use std::vector for BseStorage blobs instead of g_renew
      BSE: SF2: replace lock/unlock based repo locking with std::lock_guard code
      BSE: SF2: replace std::list with std::vector in midi receiver code
      BSE: SF2: move mutex to C++ soundfont repo c++ impl class
      BSE: SF2: use std::vector for oscs|channel_map instead of manual allocation
      BSE: SF2: replace manually allocated repo arrays with std::vector
      BSE: SF2: remove extern "C" from header
      BEAST: SF2: remove G_BEGIN_DECLS|G_END_DECLS from headers
      BSE: SF2: remove G_BEGIN_DECLS|G_END_DECLS from headers
      BSE: SF2: Fix a few signedness warnings in sound font code
      BSE: SF2: remove generated file which should not have been checked in
      BSE: SF2: set fluid synth gain to 1.0 (default is 0.2)
      BSE: SF2: move sound-font-snet from zintern to res; fixes sf2 playback
      BSE: SF2: replace g_object_new() with bse_object_new()
      BSE: SF2: add documentation how the fluidsynth engine is used in sound font osc modules
      BSE: SF2: use mixfreq to compute number of silent samples required for done output
      BEAST: SF2: adapt code to c++ified beast codebase
      BSE: SF2: adapt code to c++ified beast codebase
      BEAST: fix crash: assigning NULL to std::string is an error
      BEAST: link beast against python libraries, fixes build on KUbuntu 16.04
      BUILD: update glib-gettext.m4 to latest version from glib git repo
      BEAST-GTK: remove sound font related debugging code
      BUILD: include the right sound font header file into beast_headers
      BEAST-GTK: Added necessary gui support for browsing sound fonts
      BEAST-GTK: added new sound font view radget
      BEAST-GTK: added sound font view as widget
      BEAST-GTK: implemented browsing and selection of available sound fonts
      BEAST-GTK: added code for sound font repository super class
      BEAST-GTK: added file dialog support for loading sound fonts
      BUILD: added beast-gtk files for sound font support
      BSE: implemented BseSoundFontOsc, which wraps fluid synth computations.
      BSE: added sound font support for bse projects wrapping fluid synths structures.
      BSE: added zintern snet for sound font preset replay
      BSE: allow sound font presets as instruments for a track.
      BSE: implemented new concept: BseStorageBlob
      BSE: fixed typo in bse server
      BSE: fixed typo in bse source
      BSE: added global sound font repository to each project
      BSE: added code which allows modules to get midi events from receiver
      BSE: fixed typos
      BSE: added BseSoundFont* typedefs
      BSE: removed unnecessary code in constant module
      BUILD: added new files for sound font support
      BUILD: added configure check for libfluidsynth, required for SoundFonts

Tim Janik (401):
      BUILD: release version 0.11.0
      NEWS: updates for the next release
      PO: updates for make dist
      SFI: small BSE_ISLIKELY and BSE_UNLIKELY optimization
      TESTS: use Bse::warning() for runtime warnings
      TOOLS: use Bse::warning() for runtime warnings
      BST: use assert_return and Bse::warning() for runtime warnings
      GXK: use Bse::warning() for runtime warnings
      PLUGINS: use assert_return_unreached() instead of g_error
      BSE: use assert_return() and Bse::warning() for runtime warnings
      SFI: add (disabled) helper code to deprecate GLib utility macros
      GXK: glewidgets.c: silence compiler
      SFI: define and use app_error() for sfidl
      SFI: use Bse::warning() for runtime warnings
      SFI: remove obsolete sfi_warning, sfi_info, sfi_diag
      TOOLS: use Bse::info() for runtime messages
      BST: use Bse::info() for runtime messages
      DRIVERS: use Bse::info() for runtime messages
      BSE: use Bse::info() for runtime messages
      SFI: use Bse::info() for runtime messages
      TOOLS: remove unused file
      TESTS: use test_error() for failing tests
      BST: use Bse::warning() for runtime warnings
      SFI: remove sfi_error() which shouldn't be called by a library
      BSE: tests: use test_error() for failing tests
      SFI: provide test_error() for failing tests
      TOOLS: exit with our own app_error() for bsewavetool errors
      BSE: avoid sfi_error in library code
      BSE: avoid g_error in library code
      SFI: avoid g_error in library code
      TESTS: only use Bse::assert_return{_unreached} and apply small fixes
      TOOLS: only use Bse::assert_return{_unreached}
      BST: only use Bse::assert_return{_unreached} and Bse::warning everywhere
      GXK: only use Bse::assert_return{_unreached}
      PLUGINS: only use Bse::assert_return{_unreached}
      SFI: main: abort if an assertion is triggered
      BSE: tests/ stop program execution on filter assertion failure
      SFI: provide brakpoint()
      BSE: only use Bse::assert_return{_unreached} and Bse::warning everywhere
      SFI: provide return_unless() and assertion_failed_hook()
      V8BSE: build v8bse module with BSE_CONVENIENCE
      DOCS: build docs with BSE_CONVENIENCE
      SFI: use only assert_return and assert_return_unreached instead of assert
      SFI: provide assert_return and assert_return_unreached for BSE_CONVENIENCE
      MISC: fix version extraction for -rcX releases
      ALL: Actually label "Public Domain Dedication" licenses as "Public Domain"
      PLUGINS: compile with BSE_PLUGIN_COMPILATION to pick up Bse i18n macros
      PLUGINS: compile with BSE_PLUGIN_COMPILATION to pick up Bse i18n macros
      BSE: provide i18n macros for BSE_COMPILATION and BSE_PLUGIN_COMPILATION
      BEAST: make use of gettext from glib-extra.hh
      BSE: leave gettext to glib-extra.hh, provide _ and N_ only for BSE_COMPILATION
      SFI: provide Bse::bse_gettext_domain() and Bse::_() in glib-extra.hh
      DRIVERS: compile with BSE_COMPILATION to pick up Bse convenience definitions
      PLUGINS: compile with BSE_COMPILATION to pick up Bse convenience definitions
      MISC: remove FASTZIP options which were used as development aid version increment to 0.11.0~rc2
      BUILD: bump ABI and version to 0.11.0~rc1
      NEWS: add updates for 0.11.0~rc1
      TRAVIS: remove ubuntu:wily tests, it's nodejs version is too old
      PO: update po files after scm script removal mention the 'npm' dependency, remove 'guile' dependency
      BUILD: fix build rules to not require guile anymore
      DOCS: adjust to lack of guile
      BUILD: Makefile.decl: cleanup 'report' rule
      BUILD: Makefile.decl: print extra-gitdist enter/leave directory for V=1
      BUILD: Makefile.decl: simplify GITSTAMP by using git reflog entries
      BUILD: Makefile.decl: provide QSTDOUT
      BUILD: add autotools files to MAINTAINERCLEANFILES
      BSE: remove obsolete scripting interface
      DATA: remove references to bsescm
      DOCS: remove doc references to bsescm
      LIBRARY: remove unused scheme scripts
      TESTS: latency: disable test, since bsescm is gone
      SHELL: remove subdir and guile dependency
      BUILD: fix some automake warnings
      BUILD: Makefile.decl: remove unused distfile-list rule
      BUILD: remove left over rule
      BUILD: introduce 'dist: all' dependency to ensure packaged files are uptodate
      BUILD: fix uninstall_filter_files to handle lib/beast-<version> prefix
      DOCS: build revisions.lst when git is present and ship it in tarballs
      BUILD: rename distgit to 'make dist' and support EXTRA_DIST
      TESTS: filecheck: trim bsefiles.list and build unconditionally
      BUILD: prevent autoconf, autoheader, automake, etc from using stale caches
      TESTS: filecheck: use git ls-tree to find BSE files to check
      BUILD: remove EXTRA_DIST everywhere, since we package all git tracked files
      TESTS: filecheck: throw an error if the file checklist is empty
      PLUGINS: fix doc_sources, now that DIST_* variables aren't provided anymore
      BUILD: roll our own distuninstallcheck, now we use no-dist autotools
      MISC: use 'make distgit'
      BUILD: cleanup git archive export files
      BUILD: use 'git archive' in rule 'distgit' to create distribution tarballs
      BUILD: minor ChangeLog rule fixes
      BUILD: exempt mimeinfo.cache from distuninstallcheck
      DATA: ship debian/copyright so it can be installed from tarballs
      DATA: adjust description
      DATA: fix $beastdatadir references
      MISC: minor changelog adaptions
      MISC: provide /usr/share/doc/<packagename>
      MISC: install copyright in beast-<version>/doc
      DEBIAN: copyright: document misc/ licensing
      MISC: add missing license headers
      MISC: build deb with /opt/beast-<version> and links in /usr
      BUILD: allow DESTDIR overrides for pkg-config
      DATA: install links into standard filesystem hierarchy, update desktop database
      LAUNCHERS: use prominent warning suid setting failed and sleep shorter
      BUILD: build/install data/ last, so it can symlink other installed files
      BUILD: support --with-pkgroot for /opt/beast-<version>/ builds
      BUILD: preserve $datarootdir while installing files in Beast <package> /share
      BUILD: preserve $datadir while installing data files in the Beast <package> dir
      BUILD: preserve $localedir while installing message catalogs in the Beast <package> dir
      PO: show full pathnames on make install V=1
      BUILD: preserve $docdir while installing documentation in the Beast <package> dir
      BUILD: preserve $bindir while installing executables in the Beast <package> dir
      BUILD: preserve $libdir while moving libbse into the Beast <package> dir
      MISC: package usr/bin and usr/share symlinks
      PO: ignore tmp* when looking for untranslated files
      MISC: move copyright and changelog.Debian.gz into Beast <package> dir
      MISC: integrate Rapicorn 17.0.0~rc1 into Beast <package> dir
      BUILD: move application and mime registry files into Beast <package>/share
      EBEAST: move ebeast bundle into Beast <package> dir
      BUILD: move library and data files into Beast <package> dir
      MISC: adjust the DEBIAN/postinst binary path to include versioning
      MISC: find $BEASTDIR
      BUILD: move binaries and locale files into Beast <package> dir
      BUILD: move includes, libraries, data and docs into Beast <package> dir
      BUILD: add $beastdir / INSTALLPATH_BEASTDIR for /opt/<package> installation
      MISC: move the final package into CWD
      MISC: create an /opt binary deb from librapicorn and Beast
      MISC: adapt versioning to use 0.10.1~rc1+<commitcount>.g<commithash>
      DATA: remove category GTK
      DATA: document origin of ancient .keys and .mime files
      DATA: fix ancient Gnome mime handler in .applications file
      DATA: document and simplify .bse and .bsewave mime registration
      TRAVIS: allow_failures for wily and jessie which have broken npm/node deps
      MISC: disable check-update-po during docker distcheck
      MISC: do ci build against newest Rapicorn from source
      TRAVIS: stop deb package builds and uploads
      BSE: disable SCM loading, the loading is broken and occasionally hangs
      BSE: use installpath_override() when invoked uninstalled
      BSE: immediately load all plugins and scripts with Bse.server.load_assets()
      SFI: use program_alias() for error messages
      SFI: support BSE_DEBUG=all
      SFI: fix missing NULL check
      SFI: load plugins from objdir if installpath_override() is used
      BUILD: provide CONFIGURE_INSTALLPATH_OBJDIR to handle .libs/ subdirs
      EBEAST: bundle and install ebeast-<VERSION> under libexec/
      BUILD: disable npm based Beast package builds if ebeast/ is not present
      EBEAST: ensure node_modules are installed before running lessc
      V8BSE: use electron/package.json to detect electron version without DISPLAY
      EBEAST: export ELECTRON_ENABLE_LOGGING to catch build error resons
      MISC: install nodejs and npm for building ebeast
      EBEAST: conditionalize ebeat app build on finding npm
      V8BSE: fix printerr usage outside of Bse namespace
      EBEAST: create default BseProject for App and update document.title
      EBEAST: add StatusBar and a ToolBar with PlayControls
      EBEAST: parse command line, handle --version, --help and pass files to App
      EBEAST: widgets: provide ButtonBox styling and IconButton
      EBEAST: provide @button-active-lg and @button-radius settings in app.less
      EBEAST: integrate font-awesome 4.7.0.
      EBEAST: pick BrowserWindow defaults from a BrowserWindowDefaults CSS rule
      EBEAST: move application logic into app.js
      EBEAST: provide single-letter shortcuts for menubar submenu navigation
      EBEAST: show About dialog on Help ยป About...
      EBEAST: menus.js: define main application menus
      EBEAST: grab focus asynchronously to work around Mithril 1.0.1 m.redraw
      EBEAST: add closeonescape to ModalDialog
      EBEAST: widgets.js: provide helpers for AnimationFrame callbacks
      EBEAST: widgets.js: export symbolic key codes for non-character keys
      EBEAST: use a non-serif font for monospace
      EBEAST: move version information into a modal About dialog
      EBEAST: add css classes to utilize flexbox layouts
      EBEAST: move background fallback definitions into .gradient-01-bg
      EBEAST: integrate jQuery 3.1.1.
      EBEAST: move <button/> styles into assets/widgets.less
      EBEAST: integrate mithril 1.0.1
      EBEAST: generate panel-background as non-banding linear gradient image
      EBEAST: adjust webkit-scrollbar to match dark theme
      EBEAST: build objects/app.css from app.less and use it in index.html
      EBEAST: use eslint 3.16.1 for linting of *.js files and JS snippets in *.html
      EBEAST: use xmllint to lint HTML files
      EBEAST: pick a dark Gtk+-2 theme if possible
      EBEAST: rename ebeast/index.html
      BUILD: ensure MOSTLYCLEANFILES can be used with +=
      V8BSE: cache JS wrappers for RemoteHandles to preserve object identity in JS
      V8BSE: derive fundamental IDL types from Aida::RemoteHandle to allow generic wrappers
      V8BSE: wrap Aida::RemoteMember like Aida::RemoteHandle
      V8BSE: allow pointer results from aida_remote_handle_unwrap_native()
      V8BSE: wrap vector derived Sequence types by v8:Array copy
      EBEAST: display an 'about:' window containing version information
      EBEAST: generate package.json and auto-update npm packages
      EBEAST: check for 'make npm' and ./node_modules/ before 'make run'
      EBEAST: use LD_PRELOAD to pick up -lbse from $(builddir) for 'make run'
      V8BSE: build v8bse.node against external/v8pp
      V8BSE: link v8bse.node against, use -rpath to search install path
      V8BSE: generate binding.gyp, needed to build v8bse.node with node-gyp
      EBEAST: move app, run, npm, npmclean rules here
      EBEAST: describe experimental make rules
      EBEAST: add
      V8BSE: specialise v8pp::convert<> for all Aida::RemoteHandle derived types
      V8BSE: generate class inheritance statements
      V8BSE: generate class methods
      V8BSE: add inactive debugging aid
      V8BSE: export bse.server object
      V8BSE: hook up v8bse with the GLib or libuv event loops
      V8BSE: generate classes with properties into V8stub
      V8BSE: build v8bse.node from and include V8stub
      V8BSE: describe experimental make rules
      V8BSE: fixup ignores
      V8BSE: add skeleton for language binding generation
      V8BSE: add basic rules to build v8bse.node module
      V8BSE: add rules to fetch node-gyp and electron via npm
      V8BSE: add ebeast/v8bse/
      Squash 'external/v8pp' content from commit f221bc9d099b
      PO: update po files for distcheck
      BSE: fix String and string_format references outside of Bse namespace
      MISC: install libfluidsynth-dev for building beast
      BSE: avoid conditional indentation of switch() statement
      BSE: normalize indentation and whitespaces for merging
      BSE: allow midi-events and midi-voice change dumps
      BSE: assert there's only one VoiceInput per voice at maximum
      BSE: fix detection of polyphony voice underruns
      BSE: fix missing memory fence
      TESTS: increase n-voices in audio tests to work around sequencer timings
      BSE: bsesequencer: allow sequencer-events dumps
      BSE: synchronize PcmWriter output with song start
      SFI: remove deprecated bse_debug_enabled
      SFI: make use of Bse::debug()
      DRIVERS: make use of Bse::debug()
      BSE: make use of Bse::debug()
      TESTS: use Bse diagnostics and BSE_CONVENIENCE
      TOOLS: use Bse diagnostics and BSE_CONVENIENCE
      BEAST: use Bse diagnostics and BSE_CONVENIENCE
      GXK: use gxk diagnostics and BSE_CONVENIENCE
      SHELL: use Bse diagnostics and BSE_CONVENIENCE
      DRIVERS: use Bse diagnostics and BSE_CONVENIENCE
      PLUGINS: use Bse diagnostics and BSE_CONVENIENCE
      BSE: use Bse diagnostics and BSE_CONVENIENCE
      SFI: bcore.hh: provide diagnostics and basic macro utilities in the Bse namespace
      DOCS: avoid creation of doc_sources.lst files during make clean or uninstall
      DOCS: remove unused imports/
      DOCS: build and install sfidl.1 (+ .html) from
      DOCS: convert imports/sfidl.1 to markdown
      DOCS: build and install bsescm.1 (+ .html) from
      DOCS: convert imports/bsescm.1 to markdown
      DOCS: fix TOC indentation for html man pages
      DOCS: install all html man pages under doc/beast/html/man/
      DOCS: build and install bsewavetool.1 (+ .html) from
      DOCS: convert imports/bsewavetool.1 to markdown
      DOCS: build and install bse.5 (+ .html) from
      DOCS: convert imports/bse.5 to markdown
      DOCS: build and install beast.1.html from
      DOCS: build and install beast.1 from
      DOCS: build (and ship) revisions.lst to generate revisioned markdown files
      DOCS: convert imports/beast.1 to markdown
      DOCS: fix distcheck paths
      DOCS: imports: remove unused tagfile import rules
      PO: ignore docs/doxy/ when searching for translatable files
      DOCS: include tools/ docs
      TOOLS: generate doc_sources.lst
      DOCS: majorly simplify and speed up doxygen documentation generation
      DOCS: add nicer CSS for doxygen
      DOCS: add sample references.bib
      PLUGINS: generate doc_sources.lst
      DOCS: move tagfile-susv4.xml.bz2 and tagfile-rapicorn.xml.bz2 here
      DOCS: update the cppreference tagfile to the archive version from 20151129
      BEAST: generate doc_sources.lst
      GXK: generate doc_sources.lst
      BSE: generate doc_sources.lst
      SFI: generate doc_sources.lst
      DEBIAN: beast.install: install HACKING, COPYING, NEWS, README
      TOOLS: avoid shipping generated ../
      BEAST: avoid shipping generated ../
      BSE: avoid shipping generated PNGs
      BSE: avoid shipping generated bsegentypes.h
      BSE: avoid shipping generated bseclientapi.hh
      BSE: avoid shipping generated bsehack.idl
      BSE: avoid shipping generated bseserverapi.hh
      BSE: avoid redundant printf arguments
      BSE: avoid shipping generated
      BUILD: remove unused GENERATED_EXTRA_DIST
      BSE: avoid shipping generated enum sources
      GXK: avoid shipping generated enum sources
      BSE: avoid shipping files generated from .proc
      BUILD: detect GCC when invoked with an alias
      BUILD: test 'make clean' after build as part of distcheck
      BUILD: distcheck: support parallel builds, distuninstallcheck and $(DESTDIR) checks
      BUILD: add 'distcheck' to try builds out of tree and with srcdir==builddir
      PO: check-unlisted: use pipefail and 'readlink -ve' to catch errors in pipelines
      TRAVIS: minor tweak to easily spot distcheck builds on
      PO: update po files for distcheck
      TRAVIS: test builds on ubuntu:zesty, debian:unstable and debian:stretch
      MISC: explicitely require gccbuild intent
      MISC: support --no-cache to be passed on to docker build
      TOOLS: work around maintainer-clean removing included dependency file too early
      BUILD: speed up by some +40% by avoiding autoreconf
      DEBIAN: patches: adjust file paths in patches to account for -p1
      BSE: turn Item::icon into a read-wrtie property
      BSE: add Bse::icon_sanitize() to ensure consistency of icon fields
      BSE: derive ObjectImpl from DataListContainer for type save data extensions
      BSE: slave: ensure proper locking around changes to thread alive condition
      BSE: slave: recheck thread alive condition before entering conditions waits
      BSE: use ProjectImpl.create_song() instead of an old purged procedure
      SFI: tests: fix testsfidl linkage missing sfi_init()
      BEAST: remove duplicate definition of __unused (provided by Rapicorn)
      BSE: adjust number of slave DSP threads to the number of available CPU cores
      BSE: start 3 additional DSP slave threads to process modules concurrently
      BSE: make bse_engine_const_values thread safe and simplify implementation
      BSE: _engine_pop_unprocessed_node: avoid race condition for node lock
      BSE: remove code for non-threaded engine (unused for many years)
      BSE: bsestorage: use Rapicorn::string_format() for bse_storage_printf()
      BSE: bsestorage: whitespace fixes
      BSE: bsestorage: replace g_strdup_printf with g_strdup_format()
      BSE: SF2: upgrade sound-font-snet.bse to version 0.8.1
      BSE: SF2: use C++ inheritance for GObject struct derivation
      BSE: SF2: port storage blob to Rapicorn Mutex
      BSE: SF2: use Bse::TickStamp instead of old gsl API
      BSE: SF2: fix missing bse_sound_font_repo_finalize and use Rapicorn Mutex
      BSE: remove largely unused BSE_*_VERSION defines
      LAUNCHERS: remove unused bseshstart.c
      BSE: match and load all plugins, identified by extension ".so" or ".dll"
      PLUGINS: avoid building explicit non-SIMD version of plugins
      DEBIAN: adapt 10-skip-update-mime.patch to changes
      BUILD: use only config/config.h for autoconf results
      BUILD: fix a bogus clang++ warning
      BUILD: combine dependencies into one LIBBSE pkg-config check
      BUILD: support clang++ options and various sanitizers for --enable-debug
      TOOLS: fix automake warning
      BUILD: move 'subdir-objects' option, to apply to all Makefiles
      BUILD: avoid calling ./configure if $NOCONFIGURE is set
      BUILD: acbeast.m4: provide MC_ASSERT_VERSION
      BUILD: move autotools files to config/ and require srcdir==builddir
      BSE: remove extern "C" from plugin export symbols
      BEAST: use Bse::objects_debug_leaks()
      BEAST: use BseServer.tick_stamp_from_systime()
      BSE: provide Bse::objects_debug_leaks()
      BSE: provide tick_stamp_from_systime()
      BSE: export only C++ symbols
      BSE: use bseengine.hh symbols instead of duplicating header bits
      SHELL: remove 'extern "C"' from all API
      BEAST: remove 'extern "C"' from all API
      DRIVERS: remove 'extern "C"' from all API
      PLUGINS: remove 'extern "C"' from all API
      TOOLS: remove 'extern "C"' from all API
      BSE: remove 'extern "C"' from all API
      SFI: remove 'extern "C"' from all API
      BSE: use noexcept instead of dynamic exception specifications
      BEAST: fix signed shifts
      BEAST: fix passing std::string through varargs
      MISC: leave the build files around for inspection
      MISC: support multiple intent values next to clangbuild
      MISC: just issue a warning if the final test installation fails
      TRAVIS: unset 'language', use clang++ for distcheck
      TRAVIS: leave package handling to Dockerfile
      MISC: shift bintray package upload into Dockerfile
      MISC: add script for package uploads to
      BEAST: compile and use Internal::buildid()
      BUILD: generate
      BSE: replace all birnet_* symbols
      BUILD: qualify version as 0.10.1~wip to indicate development of pre-0.10.1 code
      MISC: add script to substitute @ENVIRONMENTVARIABLE@ in input file
      MISC: mive here
      MISC: add script to generate build id
      BEAST: use project methods
      BSE: migrate all Project methods into bseapi.idl
      BSE: minor cleanups to Song methods
      BSE: use UI-friendly Synth/Song/Midi-Synth as default object names
      PO: POTSCAN: purge old file entries
      PO: POTSCAN: fix sorting
      PO: fix message about untranslated files
      PO: POTSCAN: remove unused file entries
      BSE: add SuperSeq and migrate Project.get_supers() into bseapi.idl
      BSE: migrate enum ProjectState and signal state_changed into bseapi.idl
      BEAST: use Song methods from bseapi.idl
      BSE: move all Song methods into bseapi.idl
      SFI: define SfiProxy as ssize_t to avoid useless signedness casts
      BSE: fix accidental ENGINE_JOB_ICONNECT rename
      BEAST: use Bse:: Category, CategorySeq and Icon from bseapi.idl everywhere
      BSE: move Category and CategorySeq into bseapi.idl and switch to Icon
      BEAST: use Wave methods from bseapi.idl
      BSE: move BseWave methods into bseapi.idl
      SFI: fix sfi_error() so it warns but doesn't abort the program
      BEAST: use WaveRepoImpl.list_children() and remove_wave() from bseapi.idl
      BSE: move WaveRepoImpl.list_children() and remove_wave() into bseapi.idl
      BEAST: use Container.list_children() from bseapi.idl
      BSE: move Container.list_children() into bseapi.idl
      BEAST: use Container.get_item() from bseapi.idl
      BSE: move Container.get_item() into bseapi.idl
      BSE: add missing libs
      BEAST: add LIBZ_LIBS where needed
      PLUGINS: remove unused macro
      BUILD: detect LIBZ_LIBS and configure CXX to use C++11
      TRAVIS: use different bintray repositories for stable vs devel packages
      BUILD: throw a warning for shallow git repositories
      TRAVIS: distinguish INTENT=package and INTENT=distcheck
      DEBIAN: control: depend on Rapicorn 16.0.1~git5374, consolidate versions
      BUILD: depend on Rapicorn 16.0.1 revision increment to 0.10.1

Milk Miruku (4):
      UI: update ui/ to specify unistd.h include for unlink
      RCORE: update rcore/tests/ with std::
      RCORE: update rcore/tests/ with std::
      RCORE: update rcore/ with std::

Stefan Westerfeld (1):
      RCORE: compile fixes for KUbuntu 16.04/gcc 5.3.1-14ubuntu2

Tim Janik (613):
      BUILD: release version 17.0.0
      NEWS: updates for the next release
      TESTS: adjust to Aida assertion handling
      RCORE: testutils: make use of Aida::assertion_failed{_hook}
      RCORE: always use AIDA_ASSERT_RETURN{_UNREACHED} and never abort
      AIDACC: always use AIDA_ASSERT_RETURN() in generated code
      MISC: fix version extraction for -rcX releases version increment to 17.0.0~rc2
      BUILD: bump ABI and version to 17.0.0~rc1
      NEWS: updates for the next release
      MISC: use 'make dist'
      TOOLS: disambiguate Internal namespace for clang++
      BUILD: Makefile.decl: remove unused distfile-list rule
      BUILD: rename distgit to 'make dist' and support EXTRA_DIST
      BUILD: add 'extra-gitdist', a recursive rule to help with 'make dist'
      BUILD: remove EXTRA_DIST everywhere, since we package all git tracked files
      BUILD: roll our own distuninstallcheck, now we use no-dist autotools
      MISC: use 'make distgit'
      BUILD: move ChangeLog generation rule
      BUILD: cleanup git archive export files
      BUILD: use 'git archive' in rule 'distgit' to create distribution tarballs
      BUILD: fix ChangeLog dependency on last git commit
      BUILD: speed up by some +40% by avoiding autoreconf
      MISC: treat git repos too shallow for git-describe as tarballs
      MISC: adapt versioning to use 16.0.1~rc1+<commitcount>.g<commithash>
      BUILD: fix URL everywhere
      BUILD: provide tarball link
      TRAVIS: stop deb package builds and uploads
      TRAVIS: remove ubuntu:yakkety test builds which fail mysteriously
      AIDACC: support setting AIDACC_DESTDIR to run aidacc within DESTDIR
      RCORE: allow explicit program_alias() specification
      RCORE: aida: add ClientConnection::notify_callback()
      BUILD: detect GCC when invoked with an alias
      RCORE: fix errors on initialization with argv=NULL and argcp=NULL
      UI: use String to return errors from ContainerImpl::try_add
      UI: WidgetImpl: add toplevel() convenience method
      RCORE: provide __HERE__, a shorthand for __FILE__ ":" __LINE__
      TRAVIS: test builds on ubuntu:zesty and debian:unstable
      MISC: explicitely require gccbuild intent
      MISC: support --no-cache to be passed on to docker build
      MISC: work around Debian #809219 on xenial
      RCORE: backtrace: use .text segment address to filter out no-PIE mappings
      RCORE: use PRIORITY_HIGH for timers to avoid lags due to other events
      UI: WidgetImpl.exec_*_repeater() use default timeout priority
      RCORE: loop: rename MainLoop::create_sub_loop()
      TESTS: t201: check starvation among loops
      RCORE: loop: allow isolated priorities between loops
      RCORE: fix unterminated readlink() result
      RCORE: allow "backtrace-warnings=<depth>" to specify the depth of warning traces
      RCORE: utilities: publically export pretty_backtrace_symbols()
      RCORE: accept negative 'nptrs' for pretty_backtrace() to deal with backtrace() errors
      RCORE: use "LC_ALL=C addr2line" for backtraces
      RCORE: add RAPICORN_DEBUG=backtrace-warnings
      UI: x11_error: use RAPICORN_BACKTRACE_STRING()
      RCORE: clean up backtrace generation for fatal messages
      TESTS: test backtrace generation
      RCORE: use addr2line to generate proper backtraces, add RAPICORN_BACKTRACE()
      RCORE: provide ASSERT() if RAPICORN_CONVENIENCE is defined
      RCORE: debug_config_*: assume debug options without explicit value are set to "true"
      RCORE: remove some unreachable code
      UI: WindowImpl: properly chain from dispose()
      UI: hierarchy_changed: improve type safety and pass old_toplevel as WindowImpl*
      UI: ViewportImpl: inline small event dispatcher functions
      UI: ViewportImpl: cosmetic edits
      UI: WindowImpl: move command dispatching and event synthesis here
      UI: move event loop from viewport to window
      UI: WidgetImpl: move widget_difference() here
      UI: simplify by introducing WidgetImpl::get_loop()
      UI: remove WindowImpl::WidgetImplFriend, use Internal()
      UI: use has_display_window() where possible
      UI: cosmetics
      UI: move allmost all Window API into Viewport
      UI: rename window.{hh|cc} to viewport.{hh|cc}
      UI: remove and viewport.hh
      UI: merge expose region handling from ViewportImpl into WindowImpl
      RCORE: introduce Internal type to flag internal methods
      UI: WindowImpl: fix event delivery, especially with active grabs
      UI: WindowImpl: fix delivery of button-cancel events in capture phase
      UI: interface Window: provide unset_focus()
      UI: Window: emit changed ("get_entered") after new children are entered
      UI: interface Window: provide get_focus() and get_entered()
      UI: revert inadvertent renames from "UI: adapt to scoped C++ enum values"
      UI: tidy up comments and whitespace
      MISC: keep the resfiles.list timestamp newer than the resources
      UI: ElementPainter: support explicit state element attributes
      UI: make WidgetImpl::invalidate_all() public
      RES: Default.svg: provide LIGHT, DARK, LIGHT_CLINCH, DARK_CLINCH colors
      UI: paint widget frames with LIGHT, DARK, LIGHT_CLINCH, DARK_CLINCH
      BUILD: fix a bogus clang++ warning
      BUILD: provide FAST_MATH_FLAGS compiler flags
      BUILD: use slightly more generic wording
      TRAVIS: testbuild with clang++ on ubuntu:yakkety to get new compiler warnings
      BUILD: remove unused ld-symbolic.m4
      DOCS: generate documentation sections for all members and trim lists
      UI: re-enable documentation generation from IDL files
      RCORE: remove unused threadlib code
      RCORE: remove unused do_once alias
      TESTS: t203: use C++11 exclusive local static variable for run-once test
      TESTS: t401: rely on C++11 exclusive local static variable initialization
      RCORE: utilities: rely on C++11 exclusive local static variable initialization
      RCORE: inout: rely on C++11 exclusive local static variable initialization
      UI: clientglue: rely on C++11 exclusive local static variable initialization
      UI: displaywindow-x11: rely on C++11 exclusive local static variable initialization
      UI: factory: rely on C++11 exclusive local static variable initialization
      RCORE: provide RAPICORN_UNUSED, RAPICORN_USED, __unused and __used
      AIDACC: avoid class/struct type mismatches
      MISC: leave the build files around for inspection
      BUILD: test 'make clean' after build as part of distcheck
      MISC: just issue a warning if the final test installation fails
      TRAVIS: use clang++ for distcheck and assume it's not failing
      MISC: support multiple intent values next to clangbuild
      TESTS: disable AsyncRingBuffer tests (not needed)
      RCORE: ThreadInfo: use std::atomic for members with concurrent access
      TESTS: use noexcept instead of dynamic exception specifications
      UI: use noexcept instead of dynamic exception specifications
      RCORE: aida: remove alignment specifications that aren't honoured
      UI: sinfex: align double stores and loads to 8 byte boundaries
      RCORE: fix alignment of KeccakRng when constructed with placement new
      UI: rely on the C++11 compiler to initialize static objects with a lock guard
      RCORE: rely on the C++11 compiler to initialize static objects with a lock guard
      RCORE: cxxaux.hh: provide AlignedPOD<>
      RCORE: quicktimer.hh: avoid tautological comparison
      UI: replace lrand48 with random_int64()
      BUILD: include from GNUmakefiles in all subdirs
      MISC: include helper to forward make invocations to topdir
      MISC: ignore GNUmakefile as resource files
      UI: remove unused std::nothrow_t dothrow; constant
      UI: InterfaceMatcher: avoid nothrow_t any support matching for pointers only
      UI: Widget: avoid nothrow_t any support interface matching for pointers only
      TESTS: use WindowImpl* _pointer_ for interface matching
      UI: SliderTroughImpl: avoid event handling if there's no SliderAreaImpl ancestor
      MISC: label non-release tarball buildids n.n.n-tarball
      RCORE: move '' to generated sources
      BUILD: explicitely support --enable-debug for asan/tsan/lsan/ubsan
      BUILD: cleanup i18n requirements
      BUILD: separate python build requirements
      BUILD: remove unused docdir fiddling
      BUILD: minor fix to the -lz check
      BUILD: merge header checks into AC_CHECK_HEADERS_ONCE
      UI: replace RAPICORN_ARCH_NAME with cpu_arch()
      BUILD: provide conditional RAPICORN_UNIX_PATHS or RAPICORN_DOS_PATHS macro
      BUILD:, rcore/ cleanup and remove unused checks
      BUILD: to preserve CFLAGS, check CC/CXX before TRY_RUN etc
      BUILD: configure: support --enable-debug=[no/min/yes/addr/threads] and activate sanitizers
      TRAVIS: unset 'language' since we build exclusively inside docker
      TRAVIS: leave package handling to Dockerfile
      MISC: shift bintray package upload into Dockerfile
      TOOLS: compile directly
      RCORE: compile directly
      CONFIG: update .gitignore
      RCORE: move installed configuration macros into rcore/sys-config.h
      BUILD: remove unused checks for nanosleep and sched_yield
      BUILD: move findings to config/config.h
      BUILD: clean files at 'mostlyclean' except for expensive documentation builds
      DOCS: rename 'clean-docs' rule
      TRAVIS: allow xenial build errors and test yakkety builds
      UI: use __sync_*() extensions with int only
      UI: pixmap: avoid deprecated libpng API
      BUILD: use libpng.pc to pick up libpng12 or libpng16
      MISC: install dirmngr so gnupg can download remote keys
      MISC: fix use of pattern substitution in /bin/sh
      BUILD: remove now unused
      TRAVIS: use and for travis-ci builds
      MISC: add script to automate builds inside docker
      MISC: add script for package uploads to
      MISC: add script to substitute @ENVIRONMENTVARIABLE@ in input file
      MISC: fix directory for dpkg-scanpackages
      DEBIAN: librapicorn-doc.install: remove unused 'tutorial' path
      BUILD: (re-)generate ChangeLog as needed by Debian and GNU
      DEBIAN: rules: remove outdated symlink cleanup
      MISC: use tarball and to determine versions
      MISC: remove unused enable-devel-mode args
      MISC: clone repository from tmp-mirror.git
      MISC: move here
      TRAVIS: provide xmllint for docker builds
      BUILD: distcheck: support parallel builds, distuninstallcheck and $(DESTDIR) checks
      UI: move here
      CYTHON: fix librapicorn header dependency
      BUILD: add missing EXTRA_DIST files
      UI: avoid shipping generated files and add missing EXTRA_DIST files
      RCORE: avoid shipping generated files
      TOOLS: avoid shipping generated files
      CYTHON: add missing EXTRA_DIST files
      RES: add missing EXTRA_DIST files
      DOCS: add missing EXTRA_DIST files
      DOCS: ensure the installation directory exists before installing docs
      AIDACC: avoid shipping generated files
      TESTS: add missing EXTRA_DIST files
      BUILD: distcheck: check that no CLEANFILES end up in dist tarballs
      BUILD: add to EXTRA_DIST
      RES: ship and resfiles.list via EXTRA_DIST
      BUILD: add 'distcheck' to try builds out of tree and with srcdir==builddir
      UI: make sure to distribute interfaces.idl
      BUILD: update requirements in rapicorn.pc and avoid overlinking
      BUILD: use just LIBZ_LIBS, LIBRAPICORN_{CFLAGS|LIBS} for package dependencies
      BUILD: add 'pkg-config-call-info' rule
      BUILD: move -D__FILE_DIR__ into
      RCORE: merge poll value checks into one RAPICORN_SYSVAL_POLLINIT configure test
      BUILD: remove unused bits and tidy up some checks
      BUILD: avoid calling ./configure if $NOCONFIGURE is set
      BUILD: throw error message for unsupported srcdir != builddir
      BUILD: remove 'devel-mode' setting, infer development aids from ~wip versions
      BUILD: add -fdevirtualize-speculatively and suggest new warnings
      BUILD: upgrade g++ dependency to 4.9.2
      BUILD: upgrade clang++ dependency to 3.5.0
      BUILD: store autotool macros and auxillary files in config/
      BUILD: spell out the autoreconf arguments for clarity
      BUILD: prevent autoconf, aclocal, etc from using stale values
      BUILD: simplify finding system utilities and their version checks
      BUILD: assert gcc and clang compiler versions
      BUILD: acrapicorn.m4: provide MC_ASSERT_VERSION()
      BUILD: pick compiler & linker flags based on clang and gcc
      UI: displaywindow-x11: avoid use-after-free
      UI: uithread: avoid data race during thread initialization
      RCORE: aida: properly handle receiving NULL objects from remote end
      DOCS: avoid rm/mkdir race when installing docs with -j
      BUILD: add autotools files to MAINTAINERCLEANFILES
      CYTHON: add missing CLEANFILES
      DOCS: add missing CLEANFILES
      AIDACC: add missing CLEANFILES
      TOOLS: add missing CLEANFILES
      BUILD: fix .gitignore in various places
      MISC: move here
      BUILD: Makefile.decl: remove unused TAPTESTS and X11TESTS
      BUILD: Makefile.decl: remove unused TEST_PROGS, check_parallel and slowcheck rules
      MISC: allow output file specification
      MISC: move here
      DOCS: add examples to documentation and fix all example references
      BUILD: fix html man page back links
      EXAMPLES: remove unused testpic* files
      TESTS: rename 't390-installcheck-aidacc'
      TESTS: fix t190-installcheck-api-use not to use CXXFLAGS
      DOCS: avoid documentation rebuilds after commits if NODOC was set
      BUILD: let all sources depend on rapicorn.hh
      UI: remove unused docs/rapicorn16.png
      DOCS: remove unused examples/
      EXAMPLES: move sample-dialog.xml here and verify it with rapidrun
      DOCS: remove unused tutorial/
      BUILD: avoid touching unless buildid really changed
      EXAMPLES: move here and ensure it executes
      DOCS: remove unused changelog and makefiles
      DOCS: remove unused imports/ contents
      DOCS: update the cppreference tagfile to the archive version from 20151129
      DOCS: move tagfile-cppreference-14 and tagfile-susv4.xml here
      BUILD: toplevel gitignore cleanups
      DOCS: mans: remove unused
      TOOLS: build and install rapidrun.1 and rapidrun.1.html from markdown
      TOOLS: move rapidres here
      CYTHON: add PYTHON_LIBS to link against python 2.7.12 on xenial
      BUILD: always use 'git rev-parse --git-dir' to reliably detect a git repository
      TOOLS: build and install rapidrun.1 and rapidrun.1.html
      BUILD: add rules to build man1_MANS and man1_HTMLS from markdown
      DOCS: add HTML manual pages to html/ output dir
      BUILD: introduce $(revisioned_files) for files that need @FILE_REVISION@ substitution
      TOOLS: move here
      AIDACC: remove unused
      CYTHON: remove unused
      BUILD: provide 'python-call-info' target which shows PYTHONPATH settings
      TESTS: add and run t590-cython-installcheck-test as part of installcheck
      TESTS: add and run
      TESTS: renumber tests/ and tests/
      TOOLS: remove unused
      TESTS: remove unused
      RCORE: remove unused
      UI: remove unused
      UI: tests: remove unused
      EXAMPLES: remove unused
      AIDACC: tests: remove and unused typecodetests.idl
      RES: add .xml resource files to make_check_xml_files
      BUILD: define target rules after includes
      TESTS: add and run t390-installcheck-aidacc as part of installcheck
      TESTS: add tests/t190-installcheck-api-use and run during installcheck
      BUILD: build and install rapicorn-@MAJOR@.pc with rapicorn.pc symlink
      BUILD: install rapicorn-core.hh rapicorn-test.hh rapicorn.hh
      TESTS: make use of make_check_targets
      TESTS: reject dynamic_cast of reference types
      BUILD: add make_check_targets as a shorthand for phony check-local targets
      TESTS: describe test category numbers
      TESTS: add and run t305-testpass-compile-test
      TESTS: add and run t304-testpass-cxx-test
      AIDACC: add missing dependencies
      AIDACC: use unique symbols for method registration
      AIDACC: add macro guards to prevent multiple definitions
      AIDACC: add macro guards against double includes
      AIDACC: properly install aidacc
      TESTS: add and run t302-testfail-idl-test
      TESTS: add and run t301-testpass-idl-test
      TESTS: move t203 files to tests/t203/
      TESTS: move t201 files to tests/t201/
      TESTS: add and run t403-sinfex-expression-test
      TESTS: build and run t402-clienttests
      TESTS: build and run t401-servertests
      EXAMPLES: build hello, scroller, texttest, graphics, fileview, tour, run tour-test
      BUILD: define and use $(TAPTOOL)
      BUILD: use $(topdir) where appropriate
      TESTS: build and run t902-bench-aida
      TESTS: add and run
      TESTS: add and run t702-text-ocr test if gocr(1) is present
      TESTS: add and run t701-alignment-layout test
      BUILD: minor cleanups
      TESTS: add and run t700-png-image test
      TOOLS: build tools/imgcheck (moved from ui/tests)
      TESTS: add and run t602-factory-dump test
      TESTS: add and run t601-arrow-sizing test
      BUILD: move check-python-tests to toplevel
      TESTS: use rapidrun to check t600-xmlui-eval.xml
      BUILD: add make_check_xml_files list for linting during regular builds
      TESTS: t901: use comparable n_runs and block_size for rngs, seeding and hashing
      RCORE: adapt test timer benchmark runs to approximate payload more smoothly
      TESTS: execute all t5* python-tests in parallel
      BUILD: define project tools and paths in a single makefile place
      TOOLS: fix missing dependency on ui/clientapi.hh
      BUILD: preserve directory of test output files
      TESTS: build and run t303-mini-server
      TESTS: add and run t206-naive-entropy
      TESTS: build and run t901-bench-rcore
      TESTS: add and run t205-debug-output
      TESTS: add critical() unit test
      TESTS: add and run t204-assertions-test
      TESTS: remove unused
      TESTS: build and run t203-more-basics
      TESTS: build and run t201-rcore-basics-test and t202-randomized-hashing-test
      RCORE: add minor _WIN64 comment
      BUILD: provide __TOPDIR__
      TOOLS: build and install and test rapidrun
      DOCS: build and install minimal html documentation
      CYTHON: properly install versioned python module and fix unversioned symlink
      RCORE: strip '.*/res/' prefix from embedded resources
      RCORE: silence compiler warnings
      AIDACC: allow inferring generation type from output filename
      UI: compile pango label renderer unconditionally
      RCORE: rapidres: add -s PREFIX to strip prefixes from resource names
      CYTHON: build and install
      UI: build librapicorn from all source files
      AIDACC: build aidacc-intern and aidacc
      RCORE: build rapidres and rcore_librapicorn_sources
      RCORE: improve rapidres error message
      BUILD: generate buildid of the form: MAJOR.MINOR.NEXTMICRO~wipCOMMITCOUNT-gGITHASH
      BUILD: qualify version as 16.0.1~wip to indicate development of pre-16.0.1 code
      BUILD: provide topbuildid make variable and 'buildid' rule
      BUILD: provide and preserve stamp if possible
      RES: provide res_resfiles_list
      BUILD: remove unused data/
      BUILD: start migrating to a non-recursive make build
      BUILD: fix SYMLINK_LATEST to work with directories
      TESTS: t902-bench-aida: rename simple 2way remote call benchmark
      BUILD: remove empty rcore/tests/ dir from build
      TESTS: t206-naive-entropy: rename and move naive entropy gathering tests
      TESTS: t901-bench-rcore: rename and move time consuming throughput benchmark
      TESTS: t205-debug-output: rename and move warning and debugging message tests
      TESTS: t204-assertions-test: rename and move assertion and fatal aborting tests
      TESTS: t203-more-basics: rename and move signal, threading, svg, etc tests
      TESTS: t202-randomized-hashing: move randomized hashing test which needs t201
      TESTS: t201-rcore-basics-test: rename and move rcore basic functionality tests
      TESTS: t303-mini-server: rename and move IDL mini component test
      BUILD: remove empty pytests/ dir from build
      TESTS: add missing ${objdir}
      TESTS: t800-binding-example: fix example and add test execution
      TESTS: t800-binding-example: rename and move binding example
      TESTS: t505-property-binding: rename and move property binding test
      TESTS: t504-size-groups: rename and move simple h/v size group test
      TESTS: t503-garbage-collector: rename and move remote garbage collector test
      TESTS: t502-property-basics: rename and move basic property accessors test
      TESTS: t501-simple-click: rename and move simple button click test
      TESTS: t500-main-loop: rename and move simple main loop test
      TESTS: t602-factory-dump: rename factory debug dump test
      TESTS: t601-arrow-sizing: rename arrow width-for-height sizing test
      TESTS: t600-xmlui-eval: rename XML UI '@eval' test
      TESTS: t702-text-ocr: rename text recognition test
      TESTS: t701-alignment-layout: rename Alignment layout test
      TESTS: t700-png-image: minor cleanups
      TESTS: t700-png-image: rename image loading test
      EXAMPLES: move fileview here
      CYTHON: provide Application.process_events() to synchronize with a Window's event loop
      UI: add query_idle() and notify_idle() signal to Window
      BUILD: .gitignore: updates
      DOCS: fixup navtree.css fonts only if the file is present
      DOCS: make enum descriptions easier on the eye
      DOCS: make function lists and descriptions easier on the eye
      BUILD: fix error message about wrong ABI_MICRO increments
      BUILD: document how ABI versioning affects the SONAME
      UI: displaywindow-x11: use CAIRO_CHECK_STATUS()
      RCORE: remove unused entries
      UI: remove unused 'changed' flag for size_allocate()
      UI: add likelyness hinting to WindowImpl.check_widget_requisition()
      UI: remove WidgetImpl.test_flag()
      UI: expose_unclipped: clip expose region to ancestry
      UI: SliderTroughImpl::reallocate_child: preserve double precision during calculation
      UI: WidgetImpl: rename child_allocation_ member
      UI: fix reallocation exposes and remove clipped_allocation()
      UI: use invalidate_content() instead of expose when rerendering is needed
      UI: move_focus: translate all coordinates to viewport to measure distances
      UI: fix coordinates in ScrollPortImpl::scroll_to_descendant()
      UI: translate expose regions to viewport
      UI: translate widget points to and from viewport
      UI: account for parent offset during compose_into()
      UI: use parent-relative coordinates for allocations
      UI: remove explitic clip area handling from Widget API
      UI: cache one pre-rendered surface per widget
      UI: WidgetImpl.render: remove largely unused rectangle argument
      UI: Region: speed up IRect conversions and listings
      UI: provide IRect.intersection()
      UI: DrawableImpl: use invalidate_content() to avoid missing exposes
      UI: DrawableImpl: avoid flicker by reshaowing the last drawing
      UI: widget_invalidate: ensure newly invaliated widgets always get exposed
      UI: avoid widget re-allocation if its size remains
      UI: implement fine grained per-widget size negotiation
      UI: invalidate_allocation once scrolled
      UI: avoid unneccessary offset rounding
      UI: WidgetImpl::set_allocation: remove double value clamping
      UI: introduce WidgetImpl::change_invalidation() to allow fine grained invalidation
      UI: avoid double invocation of miValidRegion()
      UI: use fine grained invalidation, separating invalid requisition, allocation, content
      UI: remove sig_invalidate which was effectively unused
      RCORE: use fistpll on __i386__ *and* __amd64__
      UI: move WidgetGroupVector into PackInfo
      UI: PackInfo: use float32 and int16 for field, merge with override width/height
      UI: provide PackInfo pointer inside WidgetImpl
      UI: convert Allocation to int32 rectangle
      UI: provide full featured int32 rectangle implementation with IRect
      UI: rename DRect so it is obvious that it contains doubles
      UI: use 'int' for widget spacings to avoid explicit 'unsigned' conversions
      UI: use int32 for requisition width and height
      UI: derive ScrollPortImpl from ResizeContainerImpl
      UI: fix missing widget state notifications
      UI: provide publice Widget API for widget state properties
      UI: add SelectableItemImpl::button to configure the mouse button for item selections
      UI: rename Factory::factory_context_id
      UI: access widget ID via id() methods
      UI: use <Element id="some-identifier"/> for widget IDs in XML UI
      UI: use <Element declare="new-element"/> to define new XML UI element types
      RES: Default.svg: add checkmark
      RES: Default.svg: add colors to color table
      TESTS: fileview.xml: use size groups to keep column contents aligned
      TESTS: fileview.xml: use 'panel' as list background
      TESTS: fileview.xml: support horizontal list expansion
      TESTS: fileview.xml: allow scrolling list contents offscreen
      TESTS: fileview.xml: test SelectableItem
      TESTS: add test code to produce scrollable list rows
      RES: define RapicornRadioButton
      UI: add Rapicorn::RadioButton
      UI: ElementPainter: fix h/v spreading flags
      UI: factory: fix an error message
      UI: add ButtonArea.label to autoconstruct button labels
      UI: call WidgetImpl.fabricated() on all widgets after creation via Factory
      RCORE: declare RapicornInternal::ImplementationHelper for internal uses
      UI: factory: restrict builder public methods to bare minimum
      UI: add write-only Label.text convenience property that auto-detects markup
      RCORE: tests: add simple regex test to match markup end tags
      TRAVIS: expect Xenial builds to succeed, but not Debian:testing
      UI: add ShapePainterImpl that can render circle, diamond, square and star
      UI: provide Widget.toggled and Widget.retained properties that reflect widget state
      UI: add StyleColor::MARK for theming of the check/radio mark colors
      UI: add .can_toggle and .toggle properties to ButtonArea
      UI: Window: provide is_grabbing() and make grab removal easier
      UI: allow button clicks regardless of on_click settings
      UI: ElementPainter: use 'element' and 'filler' properties to render contents from SVG
      UI: fix an assertion
      UI: always notify about state propagation but avoid spurious propagations
      UI: Style: provide (svg) file io accessors, load local files if RAPICORN_FLIPPER=file-io is set
      UI: add ImagePainter::reset()
      UI: style: reject all misleading state indicators
      RCORE: SVG: rename measure_ink()
      UI: use Svg ink rectangle to measure and paint elements
      RCORE: Svg: calculate ink and bounding box
      RCORE: Svg: rename IBox and provide int only coordinates
      RCORE: svg: rename ink box members
      RCORE: Svg: report element bbox without cutting width/height short
      RCORE: introduce Svg::ElementImpl::ibox() to query the ink rectangle
      RES: Default.svg: adjust color table
      TESTS: avoid failing of the OCR test due to insensitive text rendering
      UI: fetch insensitive_ink colors from SVG
      UI: merge FOCUS_FG and FOCUS_BG into FOCUS_COLOR
      UI: style: extract color values from SVG
      UI: ImagePainter: handle SVG fragments without preceeding '#'
      RCORE: Aida::enum_value_to_string(): handle flag enums with a value joiner
      BUILD: TSTOCR: give feedback on OCR result for make V=1
      UI: WidgetImpl: improve debug_name() formatting and add const
      UI: factory_context_source: provide location of widget use, not definition
      UI: split WidgetState and WidgetFlag, propagate all WidgetState values
      UI: use up to 16 bits for WidgetState and add WidgetState::STASHED
      UI: avoid WidgetImpl::set_flag default arguments
      AIDACC: add Enum->Enum arithmetic operations to scoped enum flag values
      RCORE: Svg::FileImpl::lookup: handle missing '#' element prefix
      RES: Default.xml: provide themes/Default.svg as factory-svg for all widgets
      RES: standard.xml: provide themes/Default.svg as factory-svg for all widgets
      RES: foundation.xml: provide themes/Default.svg as factory-svg for all widgets
      UI: StyleImpl::fragment_color: fetch color from SVG elements
      RCORE: StringFormatter: explicitely cast enum class value arguments to integer
      UI: remove largely unused ColorScheme type
      UI: rename and merge ColorType into StyleColor
      UI: move resolve_color() and insensitive_ink() to StyleIface, remove heritage.*
      UI: style: remove unused methods
      RCORE: remove Svg::FileImpl::list() prefix argument wihch is unsupported
      UI: provide StyleIface::pick_fragment() to find SVG elements for widget states
      UI: widget: use style to resolve dark/light/focus colors
      UI: rename StyleIface::state_color() and provide enum class StyleColor
      UI: remove ThemeInfo code, StyleIfaceP takes over
      UI: remove $RAPICORN_THEME interpretation
      UI: add WidgetImpl::style(), loaded from <interfaces factory-svg="..."/>
      UI: merge SVG loading into StyleImpl and expose StyleIfaceP
      UI: simplify ThemeInfo virtual methods that aren't really overridden
      UI: remove ClassDoctor, use friend declarations instead
      UI: WidgetImpl: some method reordering
      UI: provide AncestryCache exactly while anchored()
      UI: listarea: remove unused adjustment code
      UI: listarea: fix typo
      UI: listarea: use size_request_child()
      UI: listarea: don't interfere with size-request and size-allocate
      UI: SelectableItemImpl: capture button press to toggle selection
      UI: WidgetList: emit selection_changed() signal once children are (de-)selected
      UI: listarea: introduce SelectableItem
      UI: WidgetList: provide proper size requisition
      TESTS: remove bogus test code
      UI: add create_row() and support arbitrary widgets as list rows
      UI: WidgetListImpl: remove overly sophisticated caching and scrolling logic
      UI: introduce WidgetListRow.bind_model()
      UI: some comment fixups
      UI: WindowImpl: improve debugging output
      UI: store clip_area_ within WidgetImpl
      UI: get rid of per-widget affines and coordinate translations
      UI: move sig_scrolled from ViewportImpl to ScrollPortImpl
      UI: WindowImpl: ensure event coordinates are interpreted within correct allocations
      UI: deduplicate some lines
      UI: consider (mostly) onscreen widgets for directional focus movements
      UI: only consider logical positions for logical focus movements
      UI: only consider visible and properly allocated children for focus movements
      UI: provide and test Rect::mapped_onto()
      UI: allocate scrolled widgets with Window relative coordinates
      UI: ViewportImpl: remove unused child_viewport()
      UI: fix typo
      UI: avoid repainintg while we're waiting for a WIN_SIZE event
      UI: avoid re-requesting the same size from window managers once we got a response
      UI: avoid scroll adjustment jumps during size negotiation
      UI: check RAPICORN_FLIPPER=subtree-resizing before executing autonomous ResizeContainerImpl resizes
      UI: ScrollPortImpl: properly layout child, honouring spacing, expansion, etc.
      UI: allow spreading widgets to shrink
      UI: scrollwidgets: fix typo
      UI: move_focus(): consider only visible areas for focus movement
      UI: move_focus(): translate and use the same coordinate system to compare widgets
      UI: ResizeContainerImpl: prevent size invlidation from propagating up
      UI: scrollwidgets: preserve scroll position across size negotiations
      UI: catch and handle resizes directly on ResizeContainer objects
      UI: Window: improve resize debug messages
      UI: ResizeContainerImpl::idle_sizing: avoid unnecessary resizes
      TESTS: arrowsize-test.xml: test width-from-height and height-from-width arrows
      UI: layout_child: properly constrain child layout in case of overflow
      UI: Alignment: properly take PackInfo into account
      UI: merge size_request_child() and measure_child()
      UI: make WidgetImpl.invalidate() virtual
      UI: introduce capture phase for event propagation of button press events
      UI: add ContainerImpl::flag_descendant()
      UI: notify SELECTED changes via ContainerImpl.selectable_child_changed()
      UI: add Config::get() to retrieve values from .ini configuration files
      RCORE: Path: add config_dirs(), data_dirs() and config_names()
      RCORE: Path: add searchpath_contains()
      RCORE: Path: add searchpath_list() and searchpath_multiply()
      RCORE: Path: add data_home(), config_home(), cache_home(), runtime_dir() to get XDG directories
      RCORE: Path: add expand_tilde() and user_home()
      UI: container: improve DEBUG_RESIZE()
      UI: provide WidgetImpl.debug_name()
      UI: Window: fix resize handler priority
      UI: WidgetImpl::set_allocation: take parent clip area into account to hide overflow contents
      UI: minor ClassDoctor simplification
      UI: avoid async callbacks for text block creation
      UI: avoid unneccessary async callbacks
      UI: heritage: fix ColorScheme::INHERIT not picking color scheme from parent
      UI: widget_cross_link: avoid exceptions
      UI: add measure_child() to calculate requisition with spacing
      UI: fix Table child top vs bottom spacing calculation
      UI: fix Container child top vs bottom spacing calculation
      UI: fix Alignment top vs bottom padding calculation
      UI: sort out MultiContainerImpl public methods
      UI: remove_child(): speed up removal of last child
      UI: ElementPainterImpl::size_request: stick to SVG size if no child is present
      UI: ElementPainterImpl::state_element: issue error message for unknown SVG elements
      UI: fix a comment
      RCORE: Svg::Element::stretch: scale SVG elements if interpolation is not needed
      RCORE: add Span::to_string()
      RCORE: add MainLoop::set_g_main_context() to integrate with GMainContext
      RCORE: add QuickArray methods capacity() and resize()
      UI: catch calling exit() from within the uithread because it cannot join itself
      UI: ignore bad_weak_ptr exceptions when casts may return NULL
      UI: ContainerImpl::uncross: allow NULL guards during destruction phase
      UI: widget::set_parent: guard widget against destruction
      RCORE: shared_ptr_cast: narrow catching of std::bad_weak_ptr exceptions
      UI: fix main_loop NULL check
      TESTS: properly initialize benchaida
      TRAVIS: add 'clangbuild' to build matrix to test building with clang++
      RCORE: tests: fix typo in test comparison
      AIDACC: fix missing 'override' specifiers
      UI: use 'noexcept' instead of deprecated old throw() syntax
      UI: clang requires tedious initializer lists instead of cloning for array ctors
      UI: for clang, use typename instead of class variable to access LoopState enum values
      RCORE: string_from_pretty_function_name: ignore anonymous namespace prefixes
      RCORE: fix missing 'typename'
      RCORE: provide and use RAPICORN_DECLARE_VLA() to work around clang's VLA complaints
      RCORE: synchronize struct/class prototypes and decls for clang
      BUILD: MC_CC_TRY_OPTION: fail for options that compilers (clang) warn about
      RCORE: add missing 'override', found by clang++-3.6
      RCORE: fix class/struct prototype declarations, required by clang++-3.6
      RCORE: add extra prototype required by clang++-3.6
      RCORE: cxxaux: use std::declval in decltype check to avoid depending on ctor of incomplete type
      RCORE: avoid template argument shadowing enum value name
      TRAVIS: use different bintray repositories for stable vs devel packages
      BUILD: throw a warning for shallow git repositories
      TRAVIS: distinguish INTENT=package and INTENT=distcheck revision increment to 16.0.1

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