* x86: Update asm-differ and fix some incorrect objdump output by using mingw instead of msdosdjgpp.
* Fix spelling mistake
* Fix oversight in diff_wrapper
* Support binary `target_obj` in scratch creation
Also support `--disassemble=` in `diff_flags`,
so the scratch can be limited to a single function
within the object.
Resolves https://github.com/decompme/decomp.me/issues/215
* Test fixes
* Validate uploaded file size & magic
Remove `-D` from `skip_flags_with_args`,
we want to keep defines.
* Add MS-DOS platform and Watcom compilers.
* Remove --reloc from i686 disasm
The --reloc option seems to generate a lot of noise for the i686
objdump.
* Add credit for MS-DOS icon.
* Fixes more black formatting issues.
* Fix black & string appendage issue
---------
Co-authored-by: Ethan Roseman <ethteck@gmail.com>
* Switch to subprocess.run for timeouts
* [experiment] Set CI TIMEOUT_SCALE_FACTOR to 1
* supress parameterized.expand error in event of no compilers, change TIMEOUT_SCALE_FACTOR in CI to 2
* Exempt dummy compilers from nsjail bind mounts, disable nsjail time limits
* Don't run timeout test on windows
* Decouple test_compiler_timeout's timeout from global timeout settings, reset TIMEOUT_SCALE_FACTOR to 10
* Have DummyLongRunningCompiler subclass DummyCompiler
* Have a timeout of zero disable timeouts entirely
* Skip test_zero_timeout on windows
* black
Co-authored-by: ConorBobbleHat <c.github@firstpartners.net>
* Force exception_on_timeout to use spawn to make gunicorn happy
* black
* Have test_fpr_reg_names_output and test_giant_compilation test for success as opposed to a lack of output
* Refactor timeouts for:
- compiling
- decompiling
- assembling
- disassembling
* Move m2c timeout wrapper to prevent interfering with StringIO
* Increase default timeouts by an order of magnitude to investigate failing CI tests
* Add timeout scale factor, have CI timeouts be 10x default
Co-authored-by: ConorBobbleHat <c.github@firstpartners.net>
Adds a new checkbox for disabling pseudo instructions on MIPS scratches
by passing the `-Mno-aliases` flag to `objdump`. This is disabled by
default.

### Why is this useful?
Because GAS likes using the same pseudo instruction for multiple
instructions, which sometimes leads to confusion of "why this doesn't
match if it is the same instruction". Complains about this usually
happen with the `li` pseudo instruction.
Example ("both are `li`s, why it doesn't match?!?!?"):

Disabling pseudos ("oh, they actually are different instructions"):

### Disadvantages
Some pseudos are clearer as pseudos than their actual raw instruction;
like for example the `nop`, which gets disassembled as `sll, zero, zero,
0x0`. `move` is also an example of this (even if the underlying
instruction changes depending on the assembler).
There doesn't seem to be any option in `objdump` to only allow some
pseudos.
`asm-differ` seems to have custom logic for handling `nop`s which gets
lost when disabling them, this can be seen in this screenshot:

A workaround for this could be made in the `asm-differ` repo.
### Other
I also allowed passing the other objdump flags to PS1 and PS2.