* Subclass MWCCCompiler and add CompilerType instead of seperate bools
* Set the platform per platform specific compiler subclasses instead of per instance
* 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>
As this title suggests, this PR caps the runtime for all compiler / m2c
calls. Currently, the timeout is five seconds for both.
There may well be a better place to put the compile timeout; as ever,
happy to change :)
Co-authored-by: ConorBobbleHat <ConorBobbleHat>
* Add psyq4.0
* Add psyq4.3 -> gcc2.7.2-psyq migration
* re-adding changes I rebased away...
* fix typo
* Add -quiet to 2.6.3-mipsel and use simple cpp
* fixup PR comments
* ensure scratches with old psyq compilers use new compiler ids
* Appease black
* When mips2c fails, include its error message in the initial source
This changes `M2CWrapper` to throw an `M2CError` with the contents of
its error when it fails.
Also updated `logging` --> `logger` in `views.py`
* Refactor `source_code`/`default_source_code`
* git subrepo pull --force backend/mips_to_c
subrepo:
subdir: "backend/mips_to_c"
merged: "d4ec385"
upstream:
origin: "https://github.com/matt-kempster/mips_to_c"
branch: "master"
commit: "d4ec385"
git-subrepo:
version: "0.4.3"
origin: "https://github.com/ingydotnet/git-subrepo"
commit: "2f68596"
Co-authored-by: Ethan Roseman <ethteck@gmail.com>
* Backend changes to diff from label rather than 0, also possibly fix#109
* implement diff_label frontend & fix assemble_asm
* Log stack trace if asm-differ fails
* don't return { obj } from api
* slight change in stub func code
* GET /compilers returns arches for compilers
* GET /compilers returns arches for compilers
* keep compiler_ids
* Obtain ido from download script, add comment for permuter api support
* Clean m2c wrapper code, add left pointer style, add test
* fix 3 tests
* list arches from api
* fix cookies in DEBUG
SameSite=None is incompatible with Secure, and this causes some browsers
to ignore the cookie altogether.
* fix test
Regression due to changing API to not return { "user": User } but
rather just the User object itself.
* fix create scratch without glabel
This works around a backend bug
* add label select on scratch creation
* show compilers/presets for current arch only
- fixes#92
- fixes#132
* fix mypy issues
* arch on scratch
* use .env.local instead of local.env
* fix unset compiler not considering arch
* fix compiler opts not displaying on first load if compiler is not gcc 2.8.1
Co-authored-by: Ethan Roseman <ethteck@gmail.com>