Merged requested to merge merge_raise_add_warning into dev
This MR brings several demanded modifications on the Trace module :
- The warnings handlers as been packed with the errors handlers -> function raising error and warnings only need to have the parameter
~raiseand not add_warning anymore
- The function inside raise has been split into two records: raise and catch. -> This adds encapsulation making "raiser functions" not able to access triggers errors or warnings, and "handler functions" not able to raise any error or warning
- collect have been added. This is a function that takes a list of raisers and returns the list of values if all success or the list of all raised error if any failed
- Using collect, Front-end and middle-end passes can raise several errors at the same time ( at most one per declaration).
With extra work, it is possible to have tracers for warnings and to specialise them for every passes (As we do for errors).
The compiler is now able to report all errors corresponding to the same step of compilation at the same time