Subject: Re: [boost] Requesting formal review for (Boost) LEAF
From: Niall Douglas (s_sourceforge_at_[hidden])
Date: 2019-01-09 12:41:34
> The reason for the interest in TLS usage is that accessing any globals (TLS
> being a global in this sense), including ints and pointers, makes functions
> not refrentially transparent and inhibits optimizations such as common
> subexpression elimination.
> I guess this concern will be addressed when some benchmarking is performed.
> I acknowledge that this is not the only difference between the two
> libraries. I guess it is just my bias towards performance that makes me
> overlook other aspects.
It's definitely the case that thread_local storage is currently poorly
optimised on any major compiler. See https://godbolt.org/z/eDiIV0 for
just how badly (this should optimise down to 'puts("boo\n")').
But it *could* be the case that compilers wouldn't suck so bad in the
future. That said, Outcome was specifically designed for today's
compilers with all their failings. It was not designed for hypothetical
(In case anyone is wondering, Outcome is into the boost superproject for
the 1.70 release. I am currently writing the Python scripting to
replicate, perfectly, the commit history from Outcome into Boost.Outcome
for master and develop branches)