aboutsummaryrefslogtreecommitdiff
path: root/lib/compilers/argument-parsers.ts
Commit message (Collapse)AuthorAge
* Fix #6301 (#6422)ramang-unity2024-05-03
|
* eslint root setting and fixes (#6307)gh-11409Patrick Quist2024-04-16
|
* Integrate zksolc (#4398)gh-11126Oleksandr Zarudnyi2024-03-29
|
* Add MadPascal (#6286)gh-11117Patrick Quist2024-03-29
|
* Replace the deprecated `substr` with `substring` (#6236)gh-10941Ofek2024-03-10
| | | Just some minor homekeeping.
* flang: Use -masm to enable Intel syntax (#6145)gh-10708David Spickett2024-02-19
| | | | | | | | | | Since https://github.com/llvm/llvm-project/commit/9ca1a1575a337931d0e49859f83a0d5b70916abd, flang supports the use of `-masm` without having to use `-mllvm`. flang converts this into `-mllvm...` so the result is the same. The check still looks for `-mllvm`, as this is the best way to tell flang and flang-to-external-fc apart. As `-masm` doesn't appear in the --help output of flang.
* flang: Enable the Intel asm syntax option (#6128)gh-10613David Spickett2024-02-12
| | | | | | | | | | | flang-new doesn't support `-masm=intel` (though it seems likely it eventually will), so this uses `-mllvm ...` to achieve the same thing. flang-to-external-fc is a wrapper script that will be removed once flang-new becomes flang, so it is not being updated and won't support -masm or -mllvm ever. (and you'll get the same output by choosing a gfortran compiler, since that's what the script uses for codegen)
* Add Elixir language support (#6081)gh-10510Andrea Tomasi2024-02-05
| | | | | | | | | | | | | | | | | | | | | Hi, I am adding support for the Elixir language (https://github.com/compiler-explorer/compiler-explorer/issues/3947) I have done this so far. It is not perfect but at least is something I can work with. In Elixir you can write several modules in the same file, so I show the different compile utins as a list. It works locally but I don't know how to add the Elixir language to [infra](https://github.com/compiler-explorer/infra/) Some notes: - I think Elixir's macro system may be a potential security issue because I can run code during compilation. - The decompiled code contains a reference to the file path on the system machine. ![elixir_compiler](https://github.com/compiler-explorer/compiler-explorer/assets/11353602/59e46c98-646d-4275-9c03-e4097a4977ef)
* flang: Enable llvm-ir viewer for flang-new (#6046)gh-10416David Spickett2024-02-03
| | | | | | | | | | | | | | | | | | | | | | | | | | flang supports the -emit-llvm option but the difference from clang is that while clang allows `-Xclang -emit-llvm`, flang does not allow `-Xflang -emit-llvm`. Instead we need to use `-emit-llvm` alone. This is a deliberate choice by the flang driver to make sure the user isn't asking the compiler to do 2 things at once. In this case assemble and emit llvm IR. The way compiler explorer calls clang, the IR ends up not in the `-o` file path but in a file named after the input file but with the extension `.ll`. For flang we will get the IR in the file specified by `-o`. To handle this I've copied code from ISPCCompiler which does the same thing. We could dedupe this, but I'm not sure whether it's worth it while we have only 2 compilers doing this. (clang supports `clang ... -emit-llvm` as well, so perhaps the flang style could become the majority mode eventually) Final note, flang-to-external-fc could support this with changes but users are better off just using flang-new, the result is the same (as flang-to-external-fc doesn't advertise -emit-llvm, it won't be selectable anyway).
* Add Racket optimisation pipeline (#5836)gh-9905J. Ryan Stinnett2023-12-11
| | | | | | | | | | | | | | | | | | | | | This adds a Racket optimisation pipeline view by reusing the existing LLVM-focused optimisation pipeline UI. A Racket-specific pass parser translates its output into passes for the UI to present. This new Racket optimisation pipeline view is currently only enabled for Racket nightly, as it depends on [recent changes](https://github.com/racket/racket/pull/4842) to Racket's compiler output to function. This also extends the opt pipeline view to allow customising the function selector label as well as the options and filters for each compiler where needed. ![image](https://github.com/compiler-explorer/compiler-explorer/assets/279572/f540b41e-fd55-4375-bb2d-a0bb977530b3) --------- Co-authored-by: Matt Godbolt <matt@godbolt.org>
* Rename opt pipeline without LLVM prefix (#5828)gh-9794J. Ryan Stinnett2023-12-03
| | | | | | | | | | | This prepares for future work that will reuse the opt pipeline view outside of the LLVM ecosystem by renaming related components to remove the LLVM prefix. The pass dumper keep its LLVM prefix, as it is assumed this part is likely to be customised for each compiler ecosystem. The historical component name has been preserved in the component list as an alias to keep old links working.
* Fix #5660 (#5794)gh-9716abhishekkaushik222023-11-27
| | | Closes #5660
* LLVM TableGen: Add actions to Overrides menu (#5699)gh-9391David Spickett2023-11-04
|
* Return null instead of undefined on failure to parseMatt Godbolt2023-07-22
|
* add Stack Usage Viewer (#5160)gh-7881Guo Ci2023-06-19
| | | | For #4834
* Turn on @typescript-eslint/await-thenable (#5131)gh-7683Jeremy Rifkin2023-06-11
|
* add support to query and parse c standard versions (#5082)gh-7518Patrick Quist2023-05-30
| | | Fixes #5071
* Add new "Debug intrinsics" filter. (#5045)gh-7478fodinabor2023-05-22
| | | | | | | | | | | | | | | | | | | | For now, this removes all `llvm.dbg.*` calls from LLVM IR. This is useful to keep coloring the line correspondence between source and IR, while not polluting the IR with the debug intrinsics. Admittedly, I don't have much of a clue of what's going on here, so I might be missing obvious adaptions (e.g. can we disable this for all non-LLVM compilers for now somehow?). Also, not really a Node.JS testing wizard either... 🤷🏼 Just wanted this really bad for a workshop that's coming up soon ^^ Only tested with my system's default `clang` for now. Fixes #5044 --------- Co-authored-by: Matt Godbolt <matt@godbolt.org>
* Compiler overrides (#5001)gh-7408Patrick Quist2023-05-16
|
* Transition to ECMAScript Modules (#4780)gh-6536Mats Jun Larsen2023-02-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Makes the Compiler Explorer app, and all the tooling ESM compatible. Things that have been done: 1. The package.json has `type: module` now 2. All relative imports have a .js ending 3. All directory imports are now directory/index.js to comply with ESM standards 4. Dependency node-graceful is now imported into tree, because the package is broken under esm 5. Dependency p-queue has been bumped to 7.x with ESM support 6. Dependency profanities has been bumped to 3.x with ESM support 7. Webpack config is now both ESM and CommonJS compatible 8. Non-ESM compatible imports have been rewritten 9. ESLint configuration has been tweaked to not fail on .js imports 10. Mocha is now hacked together and ran with ts-node-esm 11. Webpack is now hacked together and ran with ts-node-esm 12. Webpack config is now ESM compatible, so that it can be used in the dev server 13. Cypress code still runs commonjs, and has been excluded from the tsconfig 14. All sinon mock tests have been commented out, because sinon module mocks do not work with ESModules (because ESModules are immutable) A lot of tests are now giving warnings/errors to stdout, yet still pass. Docenizer codegenerator scripts have been updated, but I did not re-run them, and instead just changed their code. --------- Co-authored-by: Matt Godbolt <matt@godbolt.org>
* Fix trailing comma issue (#4775)gh-6504Jeremy Rifkin2023-02-26
| | | | | Make trailing commas more consistent throughout the project, fixes config conflict between eslint and prettier. Resolves an oversight in #4766.
* Turn some auto-fixable eslint rules back on (#4766)gh-6434Jeremy Rifkin2023-02-23
| | | | | | This PR turns comma-dangle and indent eslint rules on for lib/. These are rules inherited from the eslint config for static/, this PR just makes things more consistent. Also turned @typescript-eslint/no-var-requires back on while I was here.
* [Julia] show options from compiler wrapper not Julia runtime (#4716)gh-6268Valentin Churavy2023-02-12
| | | | | | https://github.com/compiler-explorer/compiler-explorer/pull/4674 wasn't quite finished. This goes the last mile, and shows the user the options from the compiler-wrapper.
* Add JuliaParser (#4674)gh-6214Valentin Churavy2023-02-10
| | | If I understand this right this should populate the list of options for the "compiler options" drop-down
* Converted argument-parsers to ts (#4389)gh-5240Jeremy Rifkin2022-12-02