All Projects → ethanhs → Cce

ethanhs / Cce

Licence: mit
commandline compiler explorer - use https://godbolt.org from your terminal!

Programming Languages

rust
11053 projects
assembly
5116 projects

Labels

Projects that are alternatives of or similar to Cce

Autoinject
Android 通用的组件自动注册、自动初始化解决方案
Stars: ✭ 40 (-71.22%)
Mutual labels:  asm
Androidanimationexercise
Android 动画各种实现,包括帧动画、补间动画和属性动画的总结分享
Stars: ✭ 1,254 (+802.16%)
Mutual labels:  asm
Jaop
jaop is a gradle plugin base on javassist&asm for android aop
Stars: ✭ 115 (-17.27%)
Mutual labels:  asm
Sjasmplus
SJAsmPlus: Z80 cross-assembler
Stars: ✭ 51 (-63.31%)
Mutual labels:  asm
Asm Module
✈️ ASM 4 教程中的示例代码,用于 ASM 学习,介绍了 ASM 中基本的使用说明。
Stars: ✭ 65 (-53.24%)
Mutual labels:  asm
Hlslexplorer
See how hardware understands your HLSL
Stars: ✭ 91 (-34.53%)
Mutual labels:  asm
Wxinlineplayer
🤟Super fast H.264/H.265 FLV player
Stars: ✭ 873 (+528.06%)
Mutual labels:  asm
Bytex
ByteX is a bytecode plugin platform based on Android Gradle Transform API and ASM. 字节码插件开发平台
Stars: ✭ 2,140 (+1439.57%)
Mutual labels:  asm
Toledo Atomchess
Toledo Atomchess is the world's smallest chess program in x86 assembly code
Stars: ✭ 69 (-50.36%)
Mutual labels:  asm
Ass Js
Assembler.js — X86_64 and Ethereum
Stars: ✭ 115 (-17.27%)
Mutual labels:  asm
C2goasm
C to Go Assembly
Stars: ✭ 1,072 (+671.22%)
Mutual labels:  asm
Simplify Core
Simplify 为简化重复的JAVA代码而生,基于JDK8,无其它jar包依赖,提供序列化,json parse/generator,日期处理,asm && jdkproxy 实现动态代理功能 等常见操作。
Stars: ✭ 65 (-53.24%)
Mutual labels:  asm
Tools
Security and Hacking Tools, Exploits, Proof of Concepts, Shellcodes, Scripts.
Stars: ✭ 1,343 (+866.19%)
Mutual labels:  asm
Kanela
The Kamon Instrumentation Agent
Stars: ✭ 45 (-67.63%)
Mutual labels:  asm
Insn
Functional JVM bytecode generation for Clojure.
Stars: ✭ 124 (-10.79%)
Mutual labels:  asm
Hunter
A fast, incremental, concurrent framework to develop compile plugin for android project to manipulate bytecode
Stars: ✭ 999 (+618.71%)
Mutual labels:  asm
Methodtraceman
用于快速找到高耗时方法,定位解决Android App卡顿问题。通过gradle plugin+ASM实现可配置范围的方法插桩来统计所有方法的耗时,并提供友好的界面展示,支持耗时筛选、线程筛选、方法名筛选等。(A Tool for Discovering High Time-consuming Methods for Android App)
Stars: ✭ 1,258 (+805.04%)
Mutual labels:  asm
Asm Cli Rust
interative assembly shell written in rust
Stars: ✭ 133 (-4.32%)
Mutual labels:  asm
Scott
Never debug a test again: Detailed failure reports and hassle free assertions for Java tests - Power Asserts for Java
Stars: ✭ 125 (-10.07%)
Mutual labels:  asm
Koala
从 Java 字节码到 ASM 实践
Stars: ✭ 103 (-25.9%)
Mutual labels:  asm

cce - command line compiler explorer

Travis | Appveyor

Do you love Compiler Explorer? Do you like the command line? Well this is the tool for you!

asciicast

Installing cce

With a valid rust toolchain (I like rustup.rs) you can just

cargo install cce

And you will have a globally available cce binary available.

Building cce

With a valid rust toolchain (I like rustup.rs) you can just

cargo build --release

And the binary should be located at ./target/release/cce

Using cce

cce has 3 main operations:

Listing languages

~> cce list langs
c++
cppx
assembly
cuda
llvm
d
ispc
analysis
c
rust
go
pascal
haskell
swift

Listing compilers

~> cce list compilers
Name: ARM MSVC 2017 RTW, Id: cl19_arm
Name: ARM gcc 4.5.4 (linux), Id: armg454
Name: ARM gcc 4.6.4 (linux), Id: armg464
Name: ARM gcc 5.4 (linux), Id: armhfg54
Name: ARM gcc 5.4.1 (none), Id: arm541
Name: ARM gcc 6.3.0 (linux), Id: armg630
Name: ARM gcc 7.2.1 (none), Id: arm710
Name: ARM64 gcc 5.4 (linux), Id: aarchg54
Name: ARM64 gcc 6.3.0 (linux), Id: arm64g630
Name: AVR gcc 4.5.4, Id: avrg454
Name: AVR gcc 4.6.4, Id: avrg464
Name: Latest trunk, Id: cppx_trunk
Name: MIPS gcc 5.4, Id: mips5
Name: MIPS gcc 5.4 (el), Id: mips5el
Name: MIPS64 gcc 5.4, Id: mips564
...

You can also pass a language as a filter to listing compilers:

~> cce list compilers -l rust
Name: rustc 1.0.0, Id: r100
Name: rustc 1.1.0, Id: r110
Name: rustc 1.10.0, Id: r1100
Name: rustc 1.11.0, Id: r1110
Name: rustc 1.12.0, Id: r1120
Name: rustc 1.13.0, Id: r1130
Name: rustc 1.14.0, Id: r1140
Name: rustc 1.15.1, Id: r1151
Name: rustc 1.16.0, Id: r1160
Name: rustc 1.17.0, Id: r1170
Name: rustc 1.18.0, Id: r1180
Name: rustc 1.19.0, Id: r1190
Name: rustc 1.2.0, Id: r120
Name: rustc 1.20.0, Id: r1200
Name: rustc 1.21.0, Id: r1210
Name: rustc 1.22.0, Id: r1220
Name: rustc 1.23.0, Id: r1230
Name: rustc 1.24.0, Id: r1240
Name: rustc 1.25.0, Id: r1250
Name: rustc 1.26.0, Id: r1260
Name: rustc 1.3.0, Id: r130
Name: rustc 1.4.0, Id: r140
Name: rustc 1.5.0, Id: r150
Name: rustc 1.6.0, Id: r160
Name: rustc 1.7.0, Id: r170
Name: rustc 1.8.0, Id: r180
Name: rustc 1.9.0, Id: r190
Name: rustc beta, Id: beta
Name: rustc nightly, Id: nightly

Compiling!

Finally, once you know the compiler id you would like to use, you can compile, passing arguments after --:

~> cce compile arm64g630 -- -O3
<opens an editor set via $VISUAL or $EDITOR>
Compiling with arm64g630 compiler outputs:

main:
        mov     w0, 1
        ret

You can also pass a file after the compiler ID:

~> cce compile g81 test.c
Compiling with g81 compiler outputs:

main:
        mov     eax, 1
        ret

And you can also get an URL for the compilation job:

~> cce compile --url g81 test.c
URL: https://godbolt.org/#%7B%22content%22%3A%5B%7B%22content%22%3A%5B%7B%22componentName%22%3A%22codeEditor%22%2C%22componentState%22%3A%7B%22id%22%3A1%2C%22options%22%3A%7B%22colouriseAsm%22%3Atrue%2C%22compileOnChange%22%3Atrue%7D%2C%22source%22%3A%22int%20main%28%29%20%7B%5Cr%5Cn%5Ctreturn%201%3B%5Cr%5Cn%7D%5Cr%5Cn%22%7D%2C%22type%22%3A%22component%22%7D%2C%7B%22componentName%22%3A%22compiler%22%2C%22componentState%22%3A%7B%22compiler%22%3A%22g81%22%2C%22filters%22%3A%7B%22commentOnly%22%3Atrue%2C%22directives%22%3Atrue%2C%22intel%22%3Atrue%2C%22labels%22%3Atrue%2C%22trim%22%3Atrue%7D%2C%22options%22%3A%22%22%2C%22source%22%3A1%7D%2C%22type%22%3A%22component%22%7D%5D%2C%22type%22%3A%22row%22%7D%5D%2C%22version%22%3A4%7D

The full help listing:

cce - a command line interface to compiler explorer 0.1.0
Ethan Smith
Input C++, C, Rust, Haskell, Swift, etc, get assembly
USAGE:
    cce [OPTIONS] <SUBCOMMAND>
FLAGS:
    -h, --help       Prints help information
    -V, --version    Prints version information
OPTIONS:
        --host <host>     specify the Compiler Explorer host [default: https://godbolt.org]
SUBCOMMANDS:
    compile    Compile a snippet on compiler explorer
    help       Prints this message or the help of the given subcommand(s)
    list       List the compilers and languages available on compiler explorer

License

This project is under the MIT license. By contributing, you agree to license your work under the MIT license. See LICENSE for more.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].