silicon icon indicating copy to clipboard operation
silicon copied to clipboard

SymbExLogger provides incorrect outputs

Open Jgorenburg opened this issue 4 years ago • 1 comments

Enabling SymbExLogger makes Silicon occasionally abort exceptionally. Additionally, the results of println(SymbExLogger.toSimpleTreeString) change every run. I think it has something to do with the distributed nature of Silicon because the results often have all the components I would expect, but in a random order, and because when I run a file with just 1 method, it appears to work properly.

Jgorenburg avatar Jul 27 '20 15:07 Jgorenburg

Thank you for reporting these two issues. It would be great if you replaced this single issue with two separate ones: one for the exception (ideally with a way of how to reproduce it), and a second one for the nondeterministic output.

Regarding the latter: the nondeterministic output is indeed undesirable, and most likely due to Silicon's internal parallelisation. Sorting the logger data according to verified member (predicate, function, method) might help. However, it is in general difficult to ensure deterministic output in the presence of parallel execution. It would help to know more about what your problems with the current output are and how ideal output would look.

mschwerhoff avatar Jul 31 '20 08:07 mschwerhoff