On 13 November 2015 at 18:45, Dan Olson via Digitalmars-d < digitalmars-d@puremagic.com> wrote:
> Johannes Pfau <nos...@example.com> writes: > > > Am Thu, 12 Nov 2015 09:59:14 -0800 > > schrieb Dan Olson <go...@comcast.net>: > > > >> Johannes Pfau <nos...@example.com> writes: > >> > To expand on this: I think we'd prefer one __d_personality_v0 which > >> > is implemented in upstream druntime and identical for all > >> > compilers. > >> > >> Speacking of upstream support. GDC support SjLj exceptions. In > >> 2.067, it became obvious that Fiber needed separate SjLj context > >> stacks which are normally thread specific. I have a change in my iOS > >> LDC fork which I suppose could go to upstream thread.d file so GDC > >> can pick it up to. > >> > >> > https://github.com/smolt/druntime/commit/5d32e9e68cc6bd8b13cacfdb18a4d91374bf6b3e > >> > >> See, I even included GNU_SjLj_Exceptions :-) > >> > >> Sound like a good idea? It is getting queued up soon as a PR to LDC > >> once we get an iOS version officially in the compiler frontend. > > > > Nice work. We certainly want that in GDC or even better in upstream. > > I guess we don't have a unittest yet which can detect this problem. Is > > it possible to add a unittest for this? > > I had 2.067 unittest failures without this change, I don't recall which. > I know it made me laugh becase exceptions were being thrown from Fiber A > but being caught by Fiber B. I can easily find out what fails by > rerunning without the change. I'll report back later. > There may be a few other holes between how Fibers and EH interact. https://github.com/D-Programming-Language/druntime/commit/f6633abb43ea1f2464d3a772b8f8fe78216ffd8e