Progress: - On holiday all week, at ACCU conference. I've put some highlights at the end of the message. - Did some more investigation into TCWG-466 ADRL support in integrated assembler during breaks. -- Not looking good, to do this properly bumps up against a lot of design decisions and restrictions made by the LLVM assembler (designed as compiler target, not to be user friendly). -- There are ways it could be implemented with restrictions, but it is debateable whether it is worth doing at all. -- On the plus side I've got a much better idea of how the assembler works and what restrictions exist on each stage of the journey from a line in the .s file to emission in the object. Will add some comments to the LDR r0, =expr TCWG as well. -- On the negative side the :upper16: and :lower16: operators for MOVT and MOVW don't look to be correct in the presence of addends. Will need to investigate further to see what the scope of the problem is.
Plan: - Dump results of TCWG-466 investigation into Jira. - Take a look at and post a comment on Adhemerval's revised TLS patch, even if it is just looks fine in the hope of pushing it forward a bit more. - Catch up with Renato's scripts and documents for LLVM sub-group. - Work out what to do with TCWG-466, if the answer is put it down, find something else to look at.
ACCU Highlights/Report:
Tough stuff in modern C++ A deep dive into some of the newer areas of C++ such as: - rvalue references and forwarding (universal) references - How to use SFINAE (mostly std::enable_if) to select algorithms optimised for particular template instantiations - Variadic templates. Including all sorts of strange ways to (ab)use expansion of parameter packs.
C++ WG21 SG14 Gaming and low-latency study group - A new study group aiming to represent the gaming (primarily), but also embedded and high frequency trading concerns. - Motto seemed to be make sure "Don't pay for what you don't use" is enforced. Most interested in: -- No exceptions configurations -- No RTTI -- More performance out of the STL (see EA STL https://github.com/electronicarts/EASTL) -- Add ring buffers and support for unitialised memory, fixed point numbers, flat-map, standardised simd vector types
Using sentinels - An example of how using two sentinels in an implementation of std::partion speeds up the algorithm by saving comparisons. Can speed up quicksort by a few percent
Constexpr in C++14 - Example showing how you could build a string to enum map, operating entirely at compile time, and its subsequent negative effects on compile time!
Concepts Lite - Concepts missed the C++17 standard, this presentation went into the current Technical Standard (optional) and how concepts would likely be implemented in C++(20?) - Not surprising to see that concepts still missed C++17 as there is only one implementation and one non-trivial use case (ranges) and there are still unresolved questions to be answered.
Introduction to Julia - Really a comparison of Julia to the author's favoured language of common lisp. - Was impressed at how "lispy" Julia was whilst retaining high performance. - Liked the mathematical syntax - Didn't like the python like parts that seemed to be added to try and get people to migrate from python, but were non "lispy".
linaro-toolchain@lists.linaro.org