snu-sf-class / swpp202401

Principles and Practices of Software Development Main Repository
13 stars 4 forks source link

Development Server 실행 환경 관련 문의 #31

Open sbkim28 opened 5 months ago

sbkim28 commented 5 months ago

안녕하십니까, 프로젝트 진행하던 중 문의드릴 내용이 있습니다.

development server에서 cargo가 설치가 되어있지 않은 것 같습니다. 해서 development 서버에서 제공해주신 interpreter를 실행시키는 것이 어려워 보입니다. development 서버에서 제공해주신 interpreter를 실행시킬 수 있도록 환경을 설정해주실 수 있는지 여쭙습니다.

감사합니다.

strikef commented 5 months ago

rustup을 이용해서 cargo를 포함한 Rust 개발환경을 홈 디렉토리에 설치하실 수 있습니다 (sudo 등 관리자 권한이 따로 필요 없을 것입니다). 오히려 rustup의 경우 유저별로 별도로 설치할 것을 권장하고 system-wide로 제공하는 것을 권장하지 않아서 개발 서버에는 별도로 설치해두지 않은 상황입니다. 혹시 interpreter 리포에 설명된 대로 rustup을 설치해보실 수 있을까요?

sbkim28 commented 5 months ago

image

서버에서 curl 명령어가 실행이 되지 않아서 rustup 설치가 되지 않습니다. 다른 방법이 있을까요?

strikef commented 5 months ago

curl이 안 깔린 줄을 몰랐네요... 현재는 설치되어서 rustup까지 정상 설치 확인하였습니다

sbkim28 commented 5 months ago

rustup 정상 설치가 됨을 확인했습니다. 그러나 다른 문제가 생겨서 코멘트를 남깁니다. swpp202401-benchmarks 리포에서 build-irgen.sh 스크립트를 실행한 이후에, c-to-ll.sh 스크립트를 실행해서 c 소스 파일을 ll 파일로 변환하고자 하였습니다. 그런데, 퍼미션 관련하여 문제가 있는 것인지, 스크립트가 정상적으로 작동하지 않습니다.

image

strikef commented 5 months ago

해당 스크립트에서 /tmp 디렉토리에 임시 파일을 작성하게 돼 있었는데, 개인 PC에서의 사용을 상정하고 만든 스크립트여서 공용 서버에서 동작을 제대로 확인하지 못했습니다. 서버 환경에서도 스크립트가 정상 동작하도록 benchmark 리포지토리에 수정된 스크립트를 올려 두었습니다.

제보해 주셔서 감사합니다.

sbkim28 commented 5 months ago

안녕하세요, 퍼미션 관련하여 문제는 해결된 것 같습니다. 그러나 c-to-ll.sh 스크립트가 다른 문제로 인해서 정상적으로 작동하지 않는 것 같습니다. 아래 사진과 같은 에러 메시지가 발생하였습니다.

image

strikef commented 5 months ago

해당 건은 현재 서버 환경에서 문제가 있는 듯하여 확인 중입니다.

VioletXF commented 5 months ago

@strikef interpreter 구현은 특별한 이유가 없으면 변경되지 않을 것 같은데, 파이프라인 실행 시간을 단축하기 위해 미리 빌드된 interpreter binary를 repository에 포함해도 될까요?

strikef commented 5 months ago

interpreter 구현 또한 추후 버그픽스 등의 이유로 업데이트될 수 있습니다. 바이너리를 repository에 직접 추가하는 것보다는, checkout과 cache Action을 이용해 interpreter를 빌드 및 캐싱하는 workflow를 별도로 구성하는 것을 추천드립니다.

strikef commented 5 months ago

@sbkim28 현재 irgen이 AArch64용으로 빌드되는 IR을 제대로 처리하지 못하는데, emit된 IR 프로그램의 문제인지 irgen의 문제인지 확실하게 판단하기 어려운 상황입니다. 일단은 임시방편으로 benchmark 리포지토리를 업데이트해 x86에서 emit한 LLVM IR들을 같이 첨부하였습니다. 이 파일을 이용해 어셈블리 파일을 빌드해 작업하시면 되곘습니다.

strikef commented 4 months ago

68 을 참조해주세요.