All Projects → azarashi2931 → azcc

azarashi2931 / azcc

Licence: MIT license
A toy C compiler, developed at seccamp2020.

Programming Languages

c
50402 projects - #5 most used programming language
Makefile
30231 projects
shell
77523 projects

Projects that are alternatives of or similar to azcc

gotify-broadcast
A plugin which brings broadcasts to gotify.
Stars: ✭ 30 (+57.89%)
Mutual labels:  self-hosted
Small-C
Small-C Compiler, Assembler, Linker, and Library for 16-bit MS-DOS. Includes "YLink", an object file linker for MS-DOS executables.
Stars: ✭ 35 (+84.21%)
Mutual labels:  c-compiler
onionjuggler
Manage your Onion Services via CLI or TUI on Unix-like operating system with a POSIX compliant shell.
Stars: ✭ 31 (+63.16%)
Mutual labels:  self-hosted
self-hosted
Deploy Revolt using Docker.
Stars: ✭ 490 (+2478.95%)
Mutual labels:  self-hosted
newsdash
A news dashboard inspired by iGoogle and Netvibes
Stars: ✭ 44 (+131.58%)
Mutual labels:  self-hosted
RSS-to-Telegram-Bot
A Telegram RSS bot that cares about your reading experience
Stars: ✭ 482 (+2436.84%)
Mutual labels:  self-hosted
nextcloud docker
Docker setup to run Nextcloud
Stars: ✭ 35 (+84.21%)
Mutual labels:  self-hosted
bin
highly opinionated, minimal pastebin
Stars: ✭ 97 (+410.53%)
Mutual labels:  self-hosted
dyndnsd
A small, lightweight and extensible DynDNS server written with Ruby and Rack.
Stars: ✭ 69 (+263.16%)
Mutual labels:  self-hosted
simply-nzedb
The simplest way to get nZEDb up and running with docker
Stars: ✭ 67 (+252.63%)
Mutual labels:  self-hosted
Self-Hosted-Asp.Net-WebHooks
Self hosted custom webhook receiver and sender
Stars: ✭ 50 (+163.16%)
Mutual labels:  self-hosted
koillection
Koillection is a self-hosted service allowing users to manage any kind of collections.
Stars: ✭ 259 (+1263.16%)
Mutual labels:  self-hosted
nanoblog
Open source microblog with buffering and Twitter crossposting
Stars: ✭ 23 (+21.05%)
Mutual labels:  self-hosted
.oh-my-comma
The idea of a 'workbench for developers' - Shell utilities, tooling, and dotfiles for comma.ai's open-source self-driving car technology stack
Stars: ✭ 110 (+478.95%)
Mutual labels:  self-hosted
trusted-cgi
Lightweight runner for lambda functions/apps in CGI like mode
Stars: ✭ 150 (+689.47%)
Mutual labels:  self-hosted
orb
Orb is a dynamic network observability platform
Stars: ✭ 437 (+2200%)
Mutual labels:  self-hosted
finance
💰 Free open-source personal finance tracking web application.
Stars: ✭ 156 (+721.05%)
Mutual labels:  self-hosted
uptime-kuma
A fancy self-hosted monitoring tool
Stars: ✭ 27,425 (+144242.11%)
Mutual labels:  self-hosted
SaorTech-cloud-services
A range of scripts to provision and configure open source cloud services.
Stars: ✭ 23 (+21.05%)
Mutual labels:  self-hosted
notesnook
A fully open source & end-to-end encrypted note taking alternative to Evernote.
Stars: ✭ 5,098 (+26731.58%)
Mutual labels:  self-hosted

azcc: Azarashi2931's C Compiler

x64 Linux CI x64 Cygwin CI license

This is a toy C compiler, developed at seccamp2020.

Enviroment

  • Linux on x86_64 CPU
  • Cygwin on x86_64 CPU

Requirement

  • GNU C Compiler
    • For pre-processing, assembling, linking and running some tests.
  • GNU Make
    • For building and running tests.
  • POSIX like shell
    • For running some test shell scripts.

How to Build and Test

  • make: build 1st generation azcc.
  • make test1: build and run tests for 1st generation azcc, which is built by gcc, clang, or such other C Compiler.
  • make test2: build and run tests for 2nd generation azcc, which is built by 1st generation azcc.
  • make test3: build and run tests for 3rd generation azcc, which is built by 2nd generation azcc.
  • make test-all: build and run tests for all generation azccs.
  • make clean: remove binaries.
  • make all: run make clean and make test-all.

Usage

Basic

Makefile outputs bin/genX/azcc(X is the generation of azcc).
After running make command, you can do the following:

$ cpp source.c > source.i
$ bin/genX/azcc source.i > source.s
$ gcc -o source.out source.s

or

$ cpp source.c | bin/gen1/azcc - | gcc -xassembly -o source.out -

Advanced

You can cross-compile by adding target option.
For example, when you want to compile Cygwin binary on Linux, like the following:

$ cpp source.c > source.i
$ bin/genX/azcc source.i --targt=amd64-w64-windows-gnu > source.s
$ gcc -o source.out source.s

For a complete list of current supported platform, see Enviroment.

Thanks

  • Rui Ueyama, instructor at seccamp2020
  • hikalium, instructor at seccamp2020
  • hsjoihs, tutor at seccamp2020, contributor of this project
  • sksat, tutor at seccamp2020, contributor of this project
  • Takana-Norimasa, classmate at seccamp2020
  • yanorei32, contributor of this project
  • and more classmates at seccamp2020

Reference

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].