Coder Social home page Coder Social logo

marcelammerlaan / luxcc Goto Github PK

View Code? Open in Web Editor NEW

This project forked from moneytech/luxcc

0.0 2.0 0.0 3.19 MB

C compiler and toolchain.

Makefile 0.57% Shell 0.79% C 97.26% C++ 0.25% Assembly 0.49% CMake 0.02% Brainfuck 0.03% Roff 0.45% Limbo 0.06% Objective-C 0.04% Batchfile 0.03%

luxcc's Introduction

LuxCC

LuxCC is a small compiler for a subset of the C programming language. This subset is basically C89 (without floating-point numbers and some obsolete or uncommon features) plus a few C99 features.

The compiler comes along with other tools that complete the development toolchain (assemblers, linkers, and VMs).

LuxCC is able to compile itself and also other non-trivial programs (see the tests for examples).

Currently supported targets are:

  • i386
  • x86_64
  • LuxVM (32 & 64 bits)
  • MIPS32
  • ARM

Quickstart

Build everything

make

Install (this is optional)

make install

Do a quick test (run execution tests for the LuxVM target only)

make test

Do all tests for the host architecture (assumed to be i386 or x86_64)

make fulltest1

Test everything (run all tests for all supported architectures)

make fulltest2

Note that in order to run tests for an architecture different than the host one, you will need to install QEMU user mode and also get a dynamic linker (aka loader) for the corresponding architecture (see the documentation for details).

Source roadmap

Directory/File Contents
src/*.(c/h) Core compiler
src/luxld x86-(32/64), MIPS, and ARM linker
src/luxx86 x86-(32/64) assembler
src/luxmips MIPS assembler
src/luxarm ARM assembler
src/luxvm Lux VM and assembler and linker for it
src/luxdvr Compiler driver and .conf files
src/*_cgen Code generators
src/tools Testing tool
src/lib The standard C library
src/tests Test programs
src/util Utility functions

Documentation

See doc/index.html for in-depth information on usage, internals, and more.

License

BSD license.

luxcc's People

Contributors

lucianognz avatar

Watchers

James Cloos avatar Marcel Ammerlaan avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.