Skip to content
View HPCguy's full-sized avatar
Block or Report

Block or report HPCguy

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Please don't include any personal information such as legal names or email addresses. Maximum 100 characters, markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
HPCguy/README.md

Curated collection of tiny C compilers, all written in C:

  • MarcFeeleyTinyc -- ( 284 SLOC )
    • lex -> parse to ast -> compile ast to bytecode -> execute on VM
  • rswier/c4 -- ( 499 SLOC )
    • Can interpret itself.
  • EarlGray/c4 -- (550) SLOC
    • Github won't let me fork this repo since its derived from c4, but it is a tiny x86 JIT compiler
  • jserv/amacc -- ( 2366 SLOC )
    • Generates and executes ARM assembly by JIT compile or creating ELF executable. Can compile itself. This is the base compiler forked for Squint.
  • HPCguy/Squint -- (3250 SLOC compiler, 3750 SLOC optimizer)
    • JIT + ELF + shared object optimizer. Near gcc -O1 performance, and surprisingly close to -O3 for some problems. Barely even started optimizing, so this could get interesting.

A Python to Linux x86 compiler (that can call libc functions), used as an example, not to support all of Python:

  • HPCguy/pyast64
    • forked from BenHoyt/pyast64 and extended for C language support.

General:

  • 👀 I’m interested in High Peformance Computing. I sat on several physics application teams in my 20 year career and I'm an expert at parallel efficiency. (See https://docs.google.com/viewer?a=v&pid=sites&srcid=bGJsLmdvdnxwYWRhbC13b3Jrc2hvcHxneDo2NWNiM2Y2MDg5ZTZiZTcy )
  • 🌱 I’m currently learning to write a compiler. I know what features are missing in HPC languages and compilers, but have no experience writing a compiler.
  • 💞️ I’m looking to collaborate on a new language for HPC efficiency. Almost every parallel language has been written by academics, not HPC app developers. This has been a mistake. I know how to write a language with parallel semantics but with a sequential look and feel. I was one of the two original co-developers of the RAJA framework used by the Department of Energy, but due to limitations in the C language, that framework and any other like it will never be efficient. Converting everything to pointers before applying optimizations is a mistake that can only be corrected at the language level by jettisoning the system programming semantics found in the C language definition.

Popular repositories

  1. Squint Squint Public

    Squint: A peephole optimizer for stack VM compilers

    C 20

  2. MarcFeeleyTinyc MarcFeeleyTinyc Public

    A file I found that Marc Feeley does not have a repo for on github

    C 7 1

  3. TaxTorcher TaxTorcher Public

    Rough estimate of USA income tax across states to trade off relocation and retirement income

    HTML 2

  4. TinyBASIC TinyBASIC Public

    I grabbed this code from gist.github.com/pmachapman/661f0fff9814231fde48 and improved

    C 1

  5. HPCguy HPCguy Public

    Config files for my GitHub profile.

  6. amacc amacc Public

    Forked from jserv/amacc

    Small C Compiler generating ELF executable Arm architecture, supporting JIT execution

    C