On 31/05/2020 03:19, Emil Dotchevski wrote:
- At try_catch: a local tuple
is initialized, where E... is basically the argument types of all the error handlers, with duplicates removed. Each slot<E> zeroes an int, and a TLS pointer for each of E... is set to point the corresponding slot<E>... . When exiting the try_catch, this is undone.
Speaking of removing duplicates... how are nested errors intended to be managed? I don't see any mention of this in the docs (but have possibly overlooked it). With exceptions we now have nested_exception, but they both might wish to transport a filename, for example, and these may be different at each level. At a particular catch site it may need to inspect or report both filenames (but they have to remain as separate entities associated with each error context, not merged into an e_relevant_file_names or similar).