Nim/tests/destructor
Andreas Rumpf c3344862b0
--exception:goto switch for deterministic exception handling (#12977)
This implements "deterministic" exception handling for Nim based on goto instead of setjmp. This means raising an exception is much cheaper than in C++'s table based implementations. Supports hard realtime systems. Default for --gc:arc and the C target because it's generally a good idea and arc is all about deterministic behavior.

Note: This implies that fatal runtime traps are not catchable anymore! This needs to be documented.
2020-01-01 10:01:49 +01:00
..
const_smart_ptr.nim fixes #12766 2019-11-29 19:46:21 +01:00
helper.nim destructors: first step towards fixing #9617 (#10341) 2019-01-18 08:51:22 +01:00
objFile.nim Fix destructor injections for global variables (#11230) 2019-05-13 08:28:33 +02:00
smart_ptr.nim Size ptr tuple (#10846) 2019-03-18 11:37:09 +01:00
t7346.nim make megatest green again 2019-03-05 08:17:30 +01:00
t12037.nim fixes #12989 (#12992) 2019-12-31 21:13:26 +01:00
tarc.nim ARC: yet another bugfix (#12871) 2019-12-10 16:44:54 +01:00
tarc2.nim ARC: cycle detector (#12823) 2019-12-17 17:37:50 +01:00
tarctypesections.nim ARC: cycle detector (#12823) 2019-12-17 17:37:50 +01:00
tarray_indexing.nim fixes #12669 2019-11-29 19:46:21 +01:00
tasync_prototype.nim ARC: fixes cycle detection and move the .cursor attribute into closures (#12872) 2019-12-11 06:57:00 +01:00
tasync_prototype_cyclic.nim ARC: cycle detector (#12823) 2019-12-17 17:37:50 +01:00
tatomicptrs.nim fixes #12882 (#12889) 2019-12-13 11:24:05 +00:00
tbintree2.nim ARC: cycle detector (#12823) 2019-12-17 17:37:50 +01:00
tcaseobj_transitions.nim fixes #12821 (#12822) 2019-12-06 09:56:54 +01:00
tcast.nim make tests green again 2019-03-04 22:44:23 +01:00
tcomplexobjconstr.nim fixes #12826 2019-12-24 17:33:27 +01:00
tconst_smart_ptr.nim fixes #12766 2019-11-29 19:46:21 +01:00
tconsume_twice.nim fixes #11257 2019-05-24 00:44:49 +02:00
tcustomseqs.nim make megatest green again 2019-03-05 08:17:30 +01:00
tcustomstrings.nim make megatest green again 2019-03-05 08:17:30 +01:00
tcycle1.nim ARC: cycle detector (#12823) 2019-12-17 17:37:50 +01:00
tcycle2.nim ARC: cycle detector (#12823) 2019-12-17 17:37:50 +01:00
tcycle3.nim ARC: cycle detector (#12823) 2019-12-17 17:37:50 +01:00
tdangingref_simple.nim fixes #11350 2019-07-07 17:17:14 +02:00
tdestructor.nim make twidgets example green (#11135) 2019-04-28 13:28:18 +02:00
tdestructor3.nim Fixes #12883 (#12894) 2019-12-13 13:30:27 +00:00
tdestructor_too_late.nim fixes #12092 2019-08-31 09:49:47 +01:00
tdont_return_unowned_from_owned.nim fix tests 2019-07-08 15:24:20 -07:00
terror_module.nim destructors: first step towards fixing #9617 (#10341) 2019-01-18 08:51:22 +01:00
texceptions.nim ARC related bugfixes and refactorings (#12781) 2019-12-05 16:59:06 +01:00
texplicit_move.nim Fix destructor injections for global variables (#11230) 2019-05-13 08:28:33 +02:00
tgcdestructors.nim ARC: cycle detector (#12823) 2019-12-17 17:37:50 +01:00
tgcleak4.nim ARC related bugfixes and refactorings (#12781) 2019-12-05 16:59:06 +01:00
tglobaldestructor.nim Fix destructor injections for global variables (#11230) 2019-05-13 08:28:33 +02:00
tgotoexceptions.nim --exception:goto switch for deterministic exception handling (#12977) 2020-01-01 10:01:49 +01:00
tgotoexceptions2.nim --exception:goto switch for deterministic exception handling (#12977) 2020-01-01 10:01:49 +01:00
tgotoexceptions3.nim --exception:goto switch for deterministic exception handling (#12977) 2020-01-01 10:01:49 +01:00
tinvalid_rebind.nim more destructor based changes (#10885) 2019-03-23 00:12:05 +01:00
tmatrix.nim dfa.nim: track object/tuple field accesses more precisely; sink(o.x); sink(o.y) needs to compile; activate the tuple unpacking transf.nim bugfix 2019-04-16 10:35:43 +02:00
tmisc_destructors.nim fixes #12989 (#12992) 2019-12-31 21:13:26 +01:00
tmove_objconstr.nim ARC: solves phase ordering problems (#12654) 2019-11-14 23:19:18 +01:00
tnewruntime_misc.nim ARC: cycle detector (#12823) 2019-12-17 17:37:50 +01:00
tnewruntime_strutils.nim fixes #12965 (#12991) 2019-12-31 09:42:18 +01:00
tobjfield_analysis.nim fixes #11095 (#11104) 2019-04-25 07:59:34 +02:00
topt.nim make tests green again 2019-05-27 21:29:02 +02:00
topttree.nim more destructor based changes (#10885) 2019-03-23 00:12:05 +01:00
towned_binary_tree.nim fixes #11053 2019-04-19 18:02:43 +02:00
tprevent_assign.nim don't require an implementation for procs marked with .error; activate the move optimizer for destructors 2018-09-29 16:54:59 +02:00
tprevent_assign2.nim Change the order of compilation passes, transformation is made lazy at code gen (#8489) 2018-10-18 20:21:25 +02:00
tprevent_assign3.nim Change the order of compilation passes, transformation is made lazy at code gen (#8489) 2018-10-18 20:21:25 +02:00
trecursive.nim Size ptr tuple (#10846) 2019-03-18 11:37:09 +01:00
tselect.nim ARC: cycle detector (#12823) 2019-12-17 17:37:50 +01:00
tsimpleclosure.nim ARC: cycle detector (#12823) 2019-12-17 17:37:50 +01:00
ttuple.nim fixes destructor tuple regression #10940 (#10941) 2019-04-04 20:46:02 +01:00
turn_destroy_into_finalizer.nim testament: joinable is now an explicit concept of a test spec 2018-12-11 21:23:24 +01:00
tuse_ownedref_after_move.nim ARC: cycle detector (#12823) 2019-12-17 17:37:50 +01:00
tuse_result_prevents_sinks.nim make tests green again 2019-03-05 20:05:47 +01:00
tv2_cast.nim fixes #11833 (#12018) 2019-08-24 06:25:47 +02:00
tv2_raise.nim ARC: cycle detector (#12823) 2019-12-17 17:37:50 +01:00
twidgets.nim ARC: cycle detector (#12823) 2019-12-17 17:37:50 +01:00
twidgets_unown.nim ARC: cycle detector (#12823) 2019-12-17 17:37:50 +01:00