aboutsummaryrefslogtreecommitdiff
path: root/lib/compilers/_all.js
Commit message (Collapse)AuthorAge
* Tsify lib/compilers (#4609)gh-6026Jeremy Rifkin2023-01-29
|
* Add Julia (#4595)gh-5817Alex2023-01-14
|
* Add to start working on issue #4480Jonathan Reichelt Gjertsen2022-12-21
|
* Add support for clang-cl and llvm-undname (#4371)gh-5404Tobias Hieta2022-12-18
| | | | | * Added llvm demangler code * Added clang-cl compiler class
* separate llvmmos targets and nes emu (#4299)gh-4947Patrick Quist2022-11-18
|
* Add basic Racket support (#4098)gh-4407J. Ryan Stinnett2022-10-05
|
* Add basic support for Hook programming language (#4075)gh-4355Fábio de Souza Villaça Medeiros2022-09-25
| | | | * Add basic support for Hook programming language
* cppfront (#4069)gh-4247Matt Godbolt2022-09-16
|
* add compiler: skeleton for clspv (#4014)Romaric Jodin2022-09-12
|
* use openCL from icx install (#4015)gh-4088Robert Cohn2022-09-02
|
* Add z88dk (#3812)gh-4027Patrick Quist2022-08-25
|
* Add RGA compiler support to HLSL (#3961)gh-3951Jeremy Ong2022-08-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Add RGA compiler support to HLSL AMD's Radeon GPU Analyzer (RGA) tool is an indispensible tool for graphics programmers to inspect the instructions that will be compiled by the driver for a given shader and GPU. The integration of this compiler into CE is slightly unconventional for reasons to be explained here: When trying to compile HLSL directly to ISA, RGA requires a full pipeline state description (specified for graphics pipelines using a gpso file), and a root signature, since changes to either affect how resources and data within the shader are accessed or written to. Specifying both is difficult to the extent that it would add significant usage friction to the tool. An informal survey among other senior graphics programming practitioners suggested unanimous agreement to infer both pipeline state and root signature where possible, with the expectation that if more accurate ISA code was needed, RGA could be used directly offline. Fortunately, RGA supplies an alternative workflow, wherein SPIR-V code can be compiled directly to the approximate ISA, bypassing both the pipeline and root signature requirement. To use RGA, the following steps are performed: 1. Use the default DXC compiler to emit SPIR-V as text to a temporary file in the selected temp folder. 2. Compile the ISA using RGA, consuming the output of step 1 3. Rename the resulting file to the output file CE expects In addition, a non-standard argument --asic is added to the user options. This argument is filtered for DXC, but for RGA is forwarded as the selected ASIC to emit ISA for. These steps are performed by a single `rga.js` script, which is invoked as an executable. This chaining could have been added within CE library code directly, but being an atypical flow, felt more appropriate as a separate script (which has the benefit of faster iteration, due to being loaded on each compilation request). The paths to DXC and RGA are supplied as arguments through a simple CLI interface. NOTE: This commit also adds `-Zi` and `-Qembed_debug` flags to both DXC and RGA, which provides line association data for DXIL. Signed-off-by: Jeremy Ong <jeremycong@gmail.com> * Incorporate PR feedback (see commit body) This commit introduces several changes: - HLSL compiler is now Typescript - A new RGACompiler Typescript class is used to invoke RGA - The multi-phase compilation that was previously done using a Node script now leverages the existing sandboxed execution facilities - The DXC compiler is configurable as a property on the RGA configuration, and an example is provided in hlsl.defaults.properties As there are several steps needed to compile HLSL to AMD ISA as before, as steps are done asynchronously so the runtime can continue to service other requests during compilation (either DXC or RGA) or file I/O. Signed-off-by: Jeremy Ong <jeremycong@gmail.com> Signed-off-by: Jeremy Ong <jeremycong@gmail.com> Co-authored-by: Rubén Rincón Blanco <ruben@rinconblanco.es>
* JBOF: Just a Bunch of Fixes (#3957)gh-3912Rubén Rincón Blanco2022-08-13
| | | | | | | | | - Renames orphancompiler.py script to propscheck.py, the name fits better - Fixes Go props to make them easier to maintain - Alphabetically sorts some listings in the code - Adds tests to the props checker script (No idea how to integrate those so it's manual for now) - Adds 2 missing limit cases for Motd filtering
* Add preliminary HLSL support (#3932)gh-3870Jeremy Ong2022-08-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Add preliminary HLSL support - Adds a new language mode to monaco, extending the base C++ layer with HLSL intrinsics and types - Adds a new `HLSLCompiler` class - Adds a sample pixel shader The compiler used to test this locally is the [DirectX Shader Compiler](https://github.com/microsoft/DirectXShaderCompiler) (aka DXC), which needs to also be added to the [infra](https://github.com/compiler-explorer/infra) project. Some guidance is needed before this PR can be merged: 1. While DXC can run on Linux, there are no binaries available so this compiler must be built. Are there examples that show how we should do this as part of the infra CI/CD? Should we build and host it separately instead? The build process for DXC on Linux is relatively straightforward and documented [here](https://github.com/microsoft/DirectXShaderCompiler/blob/main/docs/DxcOnUnix.rst). 2. The example code doesn't compile unless the user also supplies additional compiler flags `-T ps_6_6 -E PSMain`. Is there a way to load these flags conditionally only if the sample is loaded? 3. Technically, DXC emits DXIL IR (based on LLVM IR) and I am wondering if it's possible to extend an existing LLVM backend. In addition, the `-spirv` compiler flag could be emitted to target the SPIR-V backend instead, so I'm curious if there is a good way to express the target backend. Signed-off-by: Jeremy Ong <jeremycong@gmail.com> * Fix copyright dates, remove unnecessary strict usage, and remove placeholder logo Signed-off-by: Jeremy Ong <jeremycong@gmail.com> * Rebase and remove unneeded HLSL logo Signed-off-by: Jeremy Ong <jeremycong@gmail.com> * Fix lint errors Signed-off-by: Jeremy Ong <jeremycong@gmail.com> * Simply HLSL sample and remove default config Signed-off-by: Jeremy Ong <jeremycong@gmail.com>
* Add basic CIRCT compiler support. (#3917)gh-3810Mike Urbach2022-07-28
| | | | | | | | | | | | * Add basic CIRCT compiler support. This adds basic support for CIRCT as requested in #3825. The addition is based on the similar additions for MLIR in #3733 and #3770. * Update path and rename compiler in circt.amazon.properties. * Update circt.amazon.properties Co-authored-by: Patrick Quist <partouf@gmail.com>
* Add support for Carbon (#3885)gh-3675Matt Godbolt2022-07-19
| | | Add support for the Carbon language prototype.
* Pony Lang Config (#3855)gh-3615Christopher Smyth2022-07-10
|
* Add the jakt programming language (#3845)gh-3605TrMen2022-07-09
|
* Cpp 6502 as compiler (#3678)gh-3486Patrick Quist2022-06-26
|
* Toit (#3809)gh-3462Patrick Quist2022-06-24
|
* NFC: Rename TypeScript to TypeScript Native on website (#3750)gh-3250Mats Larsen2022-06-06
|
* Create minimal support implementation for MLIR (#3733)gh-3215Mats Larsen2022-06-01
|
* First try at fixing flang (#3673)gh-3104Rubén Rincón Blanco2022-05-26
|
* Dosbox + Turbo C 2.01 support (#3627)gh-2886Patrick Quist2022-05-13
|
* Merge remote-tracking branch 'origin/main' into bbcmicrothingspartouf2022-05-11
|\
| * The Grand Reformat (#3643)gh-2830Matt Godbolt2022-05-09
| | | | | | | | | | | | | | | | | | | | * The Grand Reformat - everything made prettier...literally - some tweaks to include a few more files, including documentation - minor changes to format style - some tiny `// prettier-ignore` changes to keep a few things the way we like them - a couple of super minor tweaks to embedded document types to ensure they format correctly
| * Add support for Solidity (#3507)gh-2350Alexey Shekhirin2022-04-14
| | | | | | | | | | | | | | | | | | | | | | | | | | * feat(compilers): Solidity support MVP * don't concat userOptions in optionsForFilter * fixes after review * Update etc/config/solidity.defaults.properties Co-authored-by: Rubén Rincón Blanco <ruben@rinconblanco.es> Co-authored-by: Rubén Rincón Blanco <ruben@rinconblanco.es>
| * Added TypeScript Native compiler (#3448)gh-2193ODuzhar2022-03-21
| | | | | | | | | | | | | | * progress * added some config Co-authored-by: Alex D <duzhar@gmail.com>
| * Add Dart support (#3352)gh-1937Michael Debertol2022-02-11
| |
| * Add support for C#, F# and Visual Basic (#3168)gh-1763Steve2022-01-29
| |
* | add basic beebasm supportgh-5466gh-1408partouf2021-12-19
|/
* add support for erlang to beam bytecode (#3094)gh-1286Timothy Moores2021-11-21
| | | | | | | | | * add support for erlang to beam bytecode * changed call by 'this' to overridden functions * Update base-compiler.js Co-authored-by: Patrick Quist <partouf@gmail.com>
* Add support for generating SPIR-V assembly from OpenCL C and C++ for OpenCL ↵gh-1078Jason Zheng2021-10-04
| | | | | | | | | (#2940) * Add support for generating SPIR-V assembly from OpenCL C and C++ for OpenCL * Update cpp_for_opencl.amazon.properties * Update openclc.amazon.properties Co-authored-by: Patrick Quist <partouf@gmail.com>
* Add support for Microsoft Visual C++ 6 (#2907)Kevin Adler2021-09-01
| | | | | | | | | | | | | | | | | | | | | A new compiler type 'win32-vc6' has been added, which uses a slightly modified version of asm-parser-vc to handle assembly output differences from current Visual Studio output. In particular, MSVC6 does not output a comment line containing the function's compile flags prior to the function body. The win32-vc parser uses this to identify the start of a function and initialize currentFunction. Instead, we use the regex that identifies a function name to do this. Otherwise, a TypeError occurs trying to set currentFunction.name when currentFunction is null. In addition, MSVC6 only outputs a file comment once (presumably, until a function from a different file is output). So instead of initializing currentFunction.file to undefined, it is set to currentFile instead. This should get set on the first function found in the file, but if not it is initialized to undefined, so the behavior there would be the same. Finally, the _DATA and _TLS segments are handled as well as some additional miscellaneous directives.
* Add support for Ruby (#2816)Quinton Miller2021-07-30
|
* Add support for Circle (https://www.circle-lang.org/) (#2808)Michał Cichoń2021-07-25
| | | | | * Add support for circle-lang (closes #1845) * Add circle-128 version. * Support keywords starting with @ (thanks Matt!)
* Support cproc C11 compiler (#2787)Marc Poulhiès2021-07-19
| | | | | | Add support for cproc C11 compiler. cproc is a lightweight compiler using the QBE backend. Fixes #2755
* Add support for HIP compilation for AMD GPUs. (#2759)Artem Belevich2021-07-19
| | | | | | | | | | | | * Added support for HIP compilation for AMD GPUs. At the moment it only supports stand-alone compilation w/o ROCm SDK. * Enable barebones HIP compilation. Clang by itself is good enough to compile simple kernels that do not need ROCm SDK headers and bitcode libraries. Closes #2760
* Adding rustc-cg-gcc (#2746)Marc Poulhiès2021-07-12
| | | | | | | | | | | | | GCC backend for rustc is still in a very early state. It is in the process of being merged in main rustc source: https://github.com/rust-lang/compiler-team/issues/442 Currently reusing main rust compiler class and simply remove -Cllvm= argument if any (only for intel asm syntax). Disabling binary until the result is more friendly (currently binary are too big). refs #2683
* Add Crystal support (#2732)Quinton Miller2021-07-08
| | | | | | | | | | | | | | | | | | | * Add Crystal support * Fix copyright * Add ASM parser for Crystal * Add supportsLibraryCodeFilter * Update crystal-mode.js * use baseName * Force `square` call * Update default snippet Co-authored-by: Patrick Quist <partouf@gmail.com>
* Add initial scala support (#2737)Oleksandr2021-06-29
| | | | | | | * Add initial scala support * Fix scala 3 compiler flags * Use semver instead
* Added support for SASS disassembly for clang as a CUDA compiler. (#2728)Artem Belevich2021-06-21
| | | | | | | | * Added support for SASS disassembly for clang as a CUDA compiler. Clang `--cuda-device-only -c` produces the same kind of CUBIN output as `nvcc -cubin` and can use nvdisasm to disassemble it. * Enable SASS disassembly for clang as a CUDA compiler.
* Add Zig c++ (#2716)Rubén Rincón Blanco2021-06-16
| | | | | | As requested by #2707 It still has the same problems found in #2434, which that will get fixed in Zig 0.8.1
* Add Kotlin/JVM support (#2637)Daniel Below2021-06-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Add Kotlin/JVM support * Update CONTRIBUTORS.md * Use kotlinc-jvm instead of kotlinc * Fix alphabetical ordering * Filter kotlin compiler arguments Extract user options filtering for java into a separate function to handle filtering options with extra arguments. Filter kotlin compiler options: -d, -jdk-home, -kotlin-home, -script, -progressive * Filter -Xjavac user options Filter any option that starts with '-Xjavac', as it could be used to pass unwanted options through kotlinc to javac. * Fix year in copyright Co-authored-by: Rubén Rincón Blanco <ruben@rinconblanco.es> * Add kotlin.amazon.properties * Add JAVA_HOME to kotlin default exec options Query per-compiler property 'java_home' and set environment * Add java_home to kotlin properties Co-authored-by: Daniel Below <daniel.below@jetbrains.com> Co-authored-by: Rubén Rincón Blanco <ruben@rinconblanco.es>
* Initial support for mrustc (#2681)Marc Poulhiès2021-05-27
| | | | | | | | | | | | Add the needed base for new mrustc compiler. https://github.com/thepowersgang/mrustc mrustc is transpiling Rust to C and is mainly used for bootstraping rustc. This change treats the C output as the final product (as is assembly for GCC/clang). It is not easily possible to automatically plug this C to other C compilers to get assembly or executable. fixes #2643
* somewhat working delphi support (#2672)Patrick Quist2021-05-21
|
* Create GCCRSCompiler class from GCCCompiler (#2632)Marc Poulhiès2021-04-30
| | | Use default GCCCompiler values for GCCRS.
* Add Zig cc as a C compiler (#2434)Rubén Rincón Blanco2021-04-30
| | | | | | | | | | | | | | | | | | | * Add Zig cc as a C compiler This commit is currently untested - I have no way to do it locally (Even though installing Zig is awesomely simple!), so it might be pretty broken Releated issue: #2427 * Move cc to options field This way fstat works * attempt at fixing zigcc * force zig > 0.6 to compile to binary as workaround Co-authored-by: partouf <partouf@gmail.com>
* allow other nasm inputformat, add readelf to assembly (#2481)Patrick Quist2021-03-11
|
* TinyC support (#2365)Patrick Quist2021-01-02
| | | | | | | | | * minimal tinycc support * dont pass -g by default + don't use binary mode on -E * work around for trunk * add tinycc trunk