Rewrote runtime condenser (#16495)

* Rewrote runtime condenser

* Addressed 2/3 reviews

* fuck

* REMOVE .clone()

* Reduce unecessary allocations and hash map lookups.

Previously, when parsing the details of a runtime, every single details line needed the runtime to be looked up again in the hash map, and every runtime parsed needed at least one allocation to allow for the former. Both of this is has been optimized out by re-ordering the code completely.

* All the features

* Some untested work

* More work on supporting crap stack traces, still WiP

* Infinite loop and stack overflow traces work mostly.

* Add to travis

* Fix compiler warning

* Run cargo fmt

* Removed silly

* Removed more silly

* Verbose option

* rustfmt

* Sorted verbose output

* Stdout by default, stderr for errors

* rustfmt

* Don't panic on invalid UTF-8, static dispatch

* PARALLELISM

* Removed condenser from travis
This commit is contained in:
DamianX
2017-11-26 19:38:43 +01:00
committed by Pieter-Jan Briers
parent 9880b09f03
commit ada12cfc5c
10 changed files with 888 additions and 324 deletions

View File

@@ -16,7 +16,7 @@
global.total_runtimes++
var/erroruid = "[e.file][e.line]"
var/erroruid = "[e.file][e.line]:[e]"
var/last_seen = global.error_last_seen[erroruid]
var/cooldown = global.error_cooldown[erroruid] || 0
if (last_seen == null) // A new error!
@@ -59,7 +59,7 @@
var/skipcount = abs(global.error_cooldown[erroruid]) - 1
global.error_cooldown[erroruid] = 0
if (skipcount > 0)
world.log << "\[[time_stamp()]] Skipped [skipcount] runtimes in [e.file],[e.line]."
world.log << "\[[time_stamp()]] Skipped [skipcount] runtimes in [e.file],[e.line]: [e]"
error_cache.log_error(e, skip_count = skipcount)
global.error_last_seen[erroruid] = world.time