Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Team project repositories published #29

Open
strikef opened this issue Apr 18, 2024 · 2 comments
Open

Team project repositories published #29

strikef opened this issue Apr 18, 2024 · 2 comments
Labels
notice Important! Please read! project Related to term project

Comments

@strikef
Copy link
Contributor

strikef commented Apr 18, 2024

팀 프로젝트 진행을 위해 필요한 리포지토리와 파일을 공개합니다!

베이스 컴파일러 리포

  • 여러분이 남은 학기 동안 프로젝트를 진행할 기반 코드가 올라와 있습니다.
  • 이 리포는 template repository로, 직접 clone해 사용하는 용도가 아닙니다. README에 나온 대로 팀원 중 1명이 템플릿을 이용해 private 팀 리포지토리를 생성한 뒤, 팀원들을 invite해주세요. 이후 다른 팀원들은 해당 리포를 fork해서 개발하시면 됩니다.
  • 팀 리포지토리 이름은 swpp202401-compiler-teamN 으로 지어주세요
  • 팀 리포지토리를 생성한 뒤에는 반드시 조교 3명을 collaborator로 초대해주세요. 조교의 GitHub username은 본 리포지토리 README에 적혀 있습니다.

인터프리터 리포

  • 컴파일러에서 나온 어셈블리를 실행하고 실행 비용을 자동으로 계산해주는 인터프리터 소스 코드가 올라와 있습니다.

벤치마크 (테스트 프로그램) 리포

  • 컴파일러가 정상 작동하는지 확인하기 위한 테스트 프로그램과 예시 input/output이 올라와 있습니다.

CI 이미지 리포 (경고: DockerHub로 이동합니다)

  • CI 및 개발 환경 통일을 위한 Docker image입니다.
  • Ubuntu 22.04 이미지를 베이스로 했으며 x86-64 환경에서 구동됩니다
  • LLVM은 /opt/llvm-18.1.0 디렉토리에, Alive2 구동을 위한 Z3은 /opt/z3-4.13.0 디렉토리에 설치돼 있습니다. 그 외에 필요한 의존 요소들도 대부분 설치되어 있습니다.
  • Container 기반 가상화에서는 유저 기본값이 root입니다. 모든 명령어에 기본적으로 sudo가 적용된 것과 같으며 sudo 명령어를 실행하면 오류가 발생하니 유의 바랍니다.

Alive2 패치 파일

  • Alive2에서 팀 프로젝트에서만 쓰이는 인트린식을 검증할 수 있도록 소스를 수정해주는 패치입니다.
  • 패치를 적용하는 방법은 같은 디렉토리의 applying-patch.md를 참조해주세요.

We hereby open the repositories for the team project to the public!

Base Compiler Repo

  • This is the skeleton code to be used throughout the project.
  • It is a template repository: you're not supposed to directly clone it. Instead, as stated on the README, one of your the members should create a private team repository using this template, and invite all your teammates. Then the other team members will fork the team repository and start working on the project.
  • Your team repository name should be swpp202401-compiler-teamN
  • Please invite all 3 TAs as collaborator to the team repo. You can find TAs' GitHub username on the README of the class repo.

Interpreter Repo

  • The interpreter runs the assembly program and automatically calculates the execution cost.

Benchmarks (Test Programs) Repo

  • You can use the test programs and example input-output pairs to check whether your compiler yields correct code.

CI Image Repo (Warning: this link will take you to DockerHub)

  • You may use this Docker Image for CI and/or uniform development environment.
  • It is based on Ubuntu 22.04 image, and runs on x86-64 architecture.
  • LLVM is installed in /opt/llvm-18.1.0, and Z3 (for Alive2) is installed in /opt/z3-4.13.0. Other dependencies should have been installed as well.
  • In Container-based virtualization the default user is root. All commands are implicitly 'sudo', and note that explicitly using sudo will result in error.

Alive2 patch

  • Since Alive2 cannot verify the project-specific intrinsics, this patch adds rules for verifying such programs.
  • applying-patch.md explains how to apply the patch
@strikef strikef added notice Important! Please read! project Related to term project labels Apr 18, 2024
@VioletXF
Copy link

private 팀 리포지토리를 생성한 뒤, 팀원들을 invite해주세요. 이후 다른 팀원들은 해당 리포를 fork해서 개발하시면 됩니다.

fork는 필수인가요? 하나의 팀 repository에서 branch를 나누어 작업하는 것도 허용되는지 궁금합니다.

@strikef
Copy link
Contributor Author

strikef commented Apr 23, 2024

Fork하지 않고 branch만 만들어 작업했을 때 예상되는 치명적인 문제점은 없지만, 그래도 가급적 각 팀원마다 리포지토리를 fork하여 작업하시기 바랍니다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
notice Important! Please read! project Related to term project
Projects
None yet
Development

No branches or pull requests

2 participants