* formats and warning fixes
* use nightly in rustrover
* some more checks cleanup
* fix lifetime checks
* apply clippy's suggestions
* reformat again (thanks a lot clippy)
* is clippy happy now?
* ignore unmaintained hopefully
* i hate rust, rust sucks
It was discovered that certain extab actions contain
uninitalized data from the compiler. This provides
a way to zero out uninitialized data in DOL or object
files. Usage: `dtk extab clean input.dol output.dol`
A `clean_extab` setting was added to config.yml, so
projects can link the cleaned objects and target the
cleaned DOL hash.
* add shiftjis as possible data type for symbols
* usage of anyhow:bail! -> bail!
* revise output of sjis strings
* rename shiftjis internally, symbols now uses sjis instead of shiftjis
* remove sjis decoding error check as the output is a comment
* run cargo fmt
A few issues were causing linker errors:
- Auto-splits could contain symbols that have a
higher alignment than the split itself. Detect
this and create a new auto-split at these symbols.
- The analyzer can miss objects in between other
objects if there are no direct relocations to them.
In these cases, non-zero data could just get totally
lost. Detect and create symbols for these.
When a link order is unresolvable, decomp-toolkit
now prints out all of the TUs in a cycle, easing
debugging.
Example:
```
Cyclic dependency encountered while resolving link order: Dolphin/os/__start.c -> Dolphin/os/__ppc_eabi_init.cpp -> Dolphin/pad/PadClamp.c -> Dolphin/pad/pad.c
```
Thanks @simonlindholm for the toposort impl.