The LLVMContext gains a new runtime check (see LLVMContext::discardValueNames()) that can be set to discard Value names (other than GlobalValue). This is intended to be used in release builds by clients that are interested in saving CPU/memory as much as possible.
There is no longer a “global context” available in LLVM, except for the C API.
The autoconf build system has been removed in favor of CMake. LLVM 3.9 requires CMake 3.4.3 or later to build. For information about using CMake please see the documentation on Building LLVM with CMake. For information about the CMake language there is also a CMake Primer document available.
C API functions LLVMParseBitcode, LLVMParseBitcodeInContext, LLVMGetBitcodeModuleInContext and LLVMGetBitcodeModule having been removed. LLVMGetTargetMachineData has been removed (use LLVMGetDataLayout instead).
The C API function LLVMLinkModules has been removed.
The C API function LLVMAddTargetData has been removed.
The C API function LLVMGetDataLayout is deprecated in favor of LLVMGetDataLayoutStr.
The C API enum LLVMAttribute and associated API is deprecated in favor of the new LLVMAttributeRef API. The deprecated functions are LLVMAddFunctionAttr, LLVMAddTargetDependentFunctionAttr, LLVMRemoveFunctionAttr, LLVMGetFunctionAttr, LLVMAddAttribute, LLVMRemoveAttribute, LLVMGetAttribute, LLVMAddInstrAttribute, LLVMRemoveInstrAttribute and LLVMSetInstrParamAlignment.
TargetFrameLowering::eliminateCallFramePseudoInstr now returns an iterator to the next instruction instead of void. Targets that previously did MBB.erase(I); return; now probably want return MBB.erase(I);.
SelectionDAGISel::Select now returns void. Out-of-tree targets will need to be updated to replace the argument node and remove any dead nodes in cases where they currently return an SDNode * from this interface.
Added the MemorySSA analysis, which hopes to replace MemoryDependenceAnalysis. It should provide higher-quality results than MemDep, and be algorithmically faster than MemDep. Currently, GVNHoist (which is off by default) makes use of MemorySSA.
The minimum density for lowering switches with jump tables has been reduced from 40% to 10% for functions which are not marked optsize (that is, compiled with -Os).
Continuous Testing is a concept and tool to re-run software tests as
soon as the developer saves the source code.
"Test::Continuous" is a tool based on App::Prove that implements this
concept for Perl.
See <http://groups.csail.mit.edu/pag/continuoustesting/> for the
original implementation of Continuous Testing as an Eclipse plugin. See
also Zentest <http://www.zenspider.com/ZSS/Products/ZenTest/> for the
same concept implemented in Ruby's world.
------------------------------
* Noteworthy changes in release 3.5 (2016-08-20) [stable]
** Bug fixes
diff3 no longer malfunctions due to use-after-free
[bug introduced in 3.4]
diff --color no longer colorizes when TERM=dumb
* A fix for the aarch64/ppc64 linker issue that has been plaguing us
for a while (https://github.com/buytenh/ivykis/issues/6). I don't
have access to a ppc box, but I reproduced the problem in an aarch64
(qemu-system-aarch64) virtual machine and fixed it there.
* libivykis.so now no longer pulls in libpthread.so, and linking
against libpthread.so is now fully optional. If libpthread isn't
linked in, ivykis can perform various optimizations, such as
skipping pthread mutex calls, and iv_event can skip creating an
eventfd when running in single-threaded mode.
* iv_signal now lets you register a thread-specific signal interest,
indicated by the IV_SIGNAL_FLAG_THIS_THREAD flag, for which the
handler will be called when that signal is delivered to the thread
the interest was registered in (and will not trigger if the signal
is delivered to another thread in the process).
WINDOW structure.
Include <term.h> when needed and rename lines and columns vars to avoid
conflicts.
Builds and works with NetBSD-8 curses, so use mk/curses.buildlink3.mk
and test for getsyx(3) in curses rather than indescriminately linking
to ncurses.
Uses 9% fewer CPU cycles. (See the CPU performance measurement report for details on how the this performance increase was computed.)
Added experimental support for PRAGMA functions.
Added the SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE option to sqlite3_db_config().
Enhance the date and time functions so that the 'unixepoch' modifier works for the full span of supported dates.
Changed the default configuration of the lookaside memory allocator from 500 slots of 128 bytes each into 125 slots of 512 bytes each.
Enhanced "WHERE x NOT NULL" partial indexes so that they are usable if the "x" column appears in a LIKE or GLOB operator.
Enhanced sqlite3_interrupt() so that it interrupts checkpoint operations that are in process.
Enhanced the LIKE and GLOB matching algorithm to be faster for cases when the pattern contains multiple wildcards.
Added the SQLITE_FCNTL_WIN32_GET_HANDLE file control opcode.
Added ".mode quote" to the command-line shell.
Added ".lint fkey-indexes" to the command-line shell.
Added the .imposter dot-command to the command-line shell.
Added the remember(V,PTR) SQL function as a loadable extension.
Rename the SQLITE_OMIT_BUILTIN_TEST compile-time option to SQLITE_UNTESTABLE to better reflect the implications of using it.
Bug Fixes:
Fix a long-standing bug in the query planner that caused incorrect results on a LEFT JOIN where the left-hand table is a subquery and the join constraint is a bare column name coming from the left-hand subquery. Ticket 2df0107b.
Correctly handle the integer literal -0x8000000000000000 in the query planner.
Upstream changes:
1.23 2016-11-16
- add %Preload rules for List::SomeUtils and Pod::Simple::Transcode
- get rid of Module::Install, use ExtUtils::MakeMaker
Upstream changes:
2.071 30 Dec 2016
* #119580 (inflate.c: One (last?) compilation warning)
Identical issue reeported in upstream zlib
https://github.com/madler/zlib/issues/111
Fix checked into zlib dev codeline via
2edb94a302
2.070 28 Dec 2016
* #107642: compilation warning from inflate.c
* #119007: [PATCH] Wrong FLAG_APPEND logic analog to Bzip2
--------------------------
Version 0.16 (2016-01-21)
---------------------------
- Fixed bug #127 "code generation error with wide chars and bitmaps (omitted 'goto' statement)"
- Added DFA minimization and option '--dfa-minimization <table | moore>'
- Fixed bug #128 "very slow DFA construction (resulting in a very large DFA)"
- Fixed bug #132 "test failure on big endian archs with 0.15.3"
Upstream changes:
3.0.0 2016-12-13
- New version to get round dubious decisions in Perl toolchain
2.12.2 2016-12-08
- Fixing the idiocy in the previous version
2.12.1 2016-12-08
- Packaging changes
Upstream changes:
2.1807 2016-12-22
[BUG FIXES]
- The definition context (package, file, & line) for attributes on
Class::MOP and Moose metaclasses was wrong in all cases.
- Slight tweaks to the syntax used for hashes in a few tests, that were
broken by a recent Test::More release that started using a new namespace
that clashes with a (bareword) type name in these tests. (PR#141,
D.Maestro)
- Reverted libbg-cli back to static linkage (for now) to fix problem
with cli-generate generated code.
- Fixed header include path in cli-generate.
- Rewrote iobuf and str number formatting using fmt.
- Added missing selftest.c file to the dist tarball (oops).
- Fixed uint##.h headers.
- Flattened out the installed headers and libraries.
NOTE: This means this package is not backwards compatible.
- Added dns library (modified from public domain djbdns-1.05)
- Added wildcard handling and substitution to bg-installer.
- Added reversed IPv4 formatting functions (from Jorge Valdes).
- Added str_end* and str_case_end* functions, parallel to str_start* and
str_case_start* but for suffixes.
- Added the ability to use arbitrary format functions in fmt_multi.
- Added support for enumerate and itemize in cli-generate.
- Added surfrand_uniform function, protected against bias.
Upstream changes:
1.126 2016-12-27
- no changes since v1.125_001
1.125_001 2016-12-27
- if objects in the "expected" structured have an as_test_deep_cmp
method, it will be called and its return (which should be a
Test::Deep::Cmp object) will be used as the test for that location in
the structure
- internal undocumented class_base routine has been replaced
with a different, clearly private routine
- the LeafWrapper is also used for objects with an unknown reftype
(like LVALUE or other weird ones)
3.6.1 - 2016-12-20
This release fixes a dependency problem and makes some small behind
the scenes improvements.
The fake-factory dependency was renamed to faker. If you were
depending on it through hypothesis[django] or hypothesis[fake-factory]
without pinning it yourself then it would have failed to install
properly. This release changes it so that hypothesis[fakefactory]
(which can now also be installed as hypothesis[faker]) will
install the renamed faker package instead.
This release also removed the dependency of hypothesis[django]
on hypothesis[fakefactory] - it was only being used for emails.
These now use a custom strategy that isnât from fakefactory.
As a result you should also see performance improvements of
tests which generated User objects or other things with email
fields, as well as better shrinking of email addresses.
The distribution of code using nested calls to one_of or the
| operator for combining strategies has been improved, as
branches are now flattened to give a more uniform distribution.
Examples using composite or flatmap should now shrink better.
In particular this will affect things which work by first
generating a length and then generating that many items, which
have historically not shrunk very well.
Atomic:
* Added the static constant atomic<T>::is_always_lock_free for conformance with C++17. The constant indicates that the given specialization always provides lock-free implementation of atomic operations.
* Improved support of Oracle Studio on x86 targets.
Container:
* Fixed bugs
Context:
* 11687 Xcode (Apple clang) and thread_local
* 12114 context does not preserve fpu context on ios arm64 devices (fixed for other architecturs too)
* 12411 fpu registers not preserved with O2 optimizations in Visual Studio (fixed for other architecturs too)
* 12551 building boost on arm64 causes error: unknown directive
* reduced signatur for ontop-functions
* unit-test for private fcontext-API
* performance-test for ucontext and fcontext fixed
Fiber:
* unbounded_channel and bounded_channel marked as deprecated
* new classes buffered_channel and unbuffered_channel
* performance improved
Fusion:
* Fixed fusion::vector buggy constructors (Thanks to Lee Clagett).
* BOOST_FUSION_ADAPT* and BOOST_FUSION_DEFINE* now allow empty structures. (6592)
* BOOST_FUSION_DEFINE* allows move constructor and assignment. (10099)
* Adaptor for std::array (Thanks to Mateusz Łoskot). (8241)
* Fixed returning temporary variable warnings on MSVC.
Geometry:
* Intersection: take care that output is valid (work in progres, not yet finished - but more is valid)
* 12289 Avoid warning/compilation error for std::cout
* 12412 Invalid result of covered_by() with geographic Points and Boxes
* 12413 rtree::remove() not working properly with geographic Points
Hash:
* Fixed some warnings.
Interprocess:
* Fixed bugs
Intrusive:
* Fixed bugs
Lexical Cast:
* Fixed issue found by -fsanitize=undefined 21
Log:
* Removed the previously deprecated type_info_wrapper.
* Added a way to access the current file name from the text file sink backend. The file name can be obtained with the get_current_file_name method.
* Bug fixes
Metaparse:
* Improved the implementation of BOOST_METAPARSE_STRING
Move:
* Improved experimental adaptive sort algorithm performance
* Activate BOOST_MOVE_FORCEINLINE
Optional:
* Added two new in-place constructors. They work similarly to emplace() functions: they initialize the contained value by perfect-forwarding the obtained arguments. One constructor always initializes the contained value, the other based on a boolean condition.
* Syntax o = {} now correctly un-initializes an optional, just like in std::optional.
* Fixed optional<optional<T>&> initialization. (12203)
* Optional constructors are sfinae-friendly. This fixes interaction with std::tuple. (12563)
Phoenix:
* Most of modules now support C++11 variadic templates.
* Fixed type deduction failure with result type.
* Suppress unused warnings.
* Fixed too few arguments error on binary math functions.
* Added workarounds for older compiler.
Python:
* Added (basic) support for C++11 (std::shared_ptr, std::unique_ptr)
* Incorporated an extension API to wrap NumPy
* Removed obsolete bits and pieces
Test:
* Boost.test v3.4 see the Change log section for more details.
* New feature: per_element and lexicographic modifiers of BOOST_TEST can also be applied to string comparison
* Breaking change: colons that appear in test case names are replaced with underscores
* Bug fixes
TypeIndex:
* Added runtime_cast to the library as an emulation of dynamic_cast. Thanks to Chris Glover for the implementation. See runtime_cast reference for more info.
* Internals of the CTTI were made more platform independant, due to change of the std::size_t type to unsigned int.
Units:
* Fix inspection warnings
* updated physico-chemical constants to CODATA 2014 values
* define biot correctly as 10 Ampere
Unordered:
* Fix an exception safety issue in assignment.
* Use std::allocator_traits where available, and support modern style rebind (12459).
* Add some allocator aware constructors.
* Use the hint iterator in emplace_hint.
* Fixed some warnings.