Upgrade to Pro — share decks privately, control downloads, hide ads and more …

RustPython Contributon 2020

Sponsored · SiteGround - Reliable hosting with speed, security, and support you can count on.
Avatar for Basix Basix
September 26, 2020

RustPython Contributon 2020

2020 컨트리뷰톤 성과 발표에서 RustPython 팀의 발표 자료입니다.

Avatar for Basix

Basix

September 26, 2020
Tweet

Other Decks in Programming

Transcript

  1. 목차 • 프로젝트 소개 • 구성원 소개 • 프로젝트 활동

    내용 분야별 성과 준비과정 커뮤니케이션 • 후기
  2. RustPython • 언어 차원에서 비용 없는 메모리 안전성을 보장하는 Rust로

    만드는 Python 3 • 파서부터 JIT 컴파일러까지 만드는 풀스펙 인터프리터
  3. RustPython • 언어 차원에서 비용 없는 메모리 안전성을 보장하는 Rust로

    만드는 Python 3 • 파서부터 JIT 컴파일러까지 만드는 풀스펙 인터프리터 • 만들면 뭐가 좋은데요?
  4. RustPython - 기술적으로 • 현재 • CPython에서 빈발하는 RC 버그

    원천 방지 • Rust 스레드 동기화 기술로 안전하게 GIL 없는 멀티스레드 지원 • JIT 등 최신 인터프리터 기술 도입 • 파이썬 인터프리터가 늘어나면 파이썬 생태계도 CPython에 덜 집중되어서 안정되는 효과 • 미래 • Rust 언어 특성 상 C보다 공격적인 최적화가 가능 • CPython과 호환성은 그대로 유지
  5. RustPython - 사용자에게 • Rust가 적극적으로 지원하는 WebAssembly로 웹 브라우저에서

    실행 • Rust에서 파이썬 코드 실행, 파이썬 코드에서 Rust 코드 실행 양쪽 모 두 지원
  6. 구성원 소개 정윤원 전성(BasixKOR) 한동철(hyperbora) 김도연(clemado1) 허민호(minoring) 이영찬(edwardycl) 신민준(ohgree) 이현준(tobark)

    김유경(ugaemi) 서대원(qodot) 김성민(hatee- hatee-hatee-ho) 고등학생부터 직장인까지 골고루 모인 10명의 참가자! 마라샹궈와 꿔바로우로 행복해진 발표자
  7. 분야별 주요 성과 대표 기여: nonlocal 버그 수정 - 파이썬3

    문법 구현이 미비한 점이 있었는데, 조금씩 수정되어 오다 컨트리뷰톤에서 완벽하게 수정 - 문법 호환성 이슈로 CPython 테스트 추가를 막고 있었으나 해소되어 크게 기여 언어 기능 3건 RustPython 내부 7건 대표 기여: struct_sequence __repr__ 구현 개선 - struct sequence의 __repr__ 구현이 누락되어 있었으나 매크로 수정으로 일괄 추가 - RustPython의 복잡한 반자동 클래스 생성 방법을 정확히 파악해 매크로 수정만으로 해결한 날카로운 기여 내장 함수/타입 15건 대표 기여: dict/set iterator 개선 및 추가 - dict 반복자에서 비교 연산이 추가되고 set 반복자가 구현되었음 - 파이썬 반복자 무효화 등의 까다로운 동작을 전역 락 없이 러스트의 원자성 지원을 이용해 구현
  8. 분야별 주요 성과 대표 기여: os 모듈의 윈도우 함수 다수

    구현 - 다른 OS와 달리 윈도우에는 빠진 플랫폼 지원 기능이 많았으나 컨트리뷰톤으로 상당한 진전 - 단순히 OS 지원 확대일 뿐만 아니라 그동안 Windows에서만 돌지 않던 CI를 설정하는데 크게 기여하여 새로운 버그를 다수 발견하고 버그 재발을 방지 시스템/플랫폼 라이브러리 12건 기타 표준 라이브러리 8건 대표 기여: array, itertools, socket 모듈에 빠진 기능 추가하고 버그 수정 - socket 모듈은 다른 모듈에 비해 상대적으로 그동안 구현도가 많이 낮은 편에 속했는데 많은 진전 - itertools는 얼핏 잘 동작하는것처럼 보이는 까다로운 버그들이 있었으나 수정에 성공 테스트 이식 6건 대표 기여: test_os 테스트 포팅 - 플랫폼별 차이 등으로 수동 테스트가 어려운 os 모듈 테스트 추가 - 잦은 os 모듈 변경 등 큰 요구에도 불구하고 번거로운 작업이어서 추가되지 못하다가 컨트리뷰톤 참가자의 집중적 작업으로 도입 성공
  9. 유형별 기여 수치 기능 추가 및 구현 28 버그 수정

    22 테스트 추가 7 리팩토링 3 기타(문서, CI) 2
  10. 어디부터 시작해야 할까? Rust는 처음인데 잘 할 수 있을까? PR은

    처음인데 괜찮을까? 실력 없는 내가 기여해도 될까? 사용만 하던 프로그래밍 언어를 대체 어떻게 만들지?
  11. • 메인테이너들의 활동이 활발한 프로젝트 • PR을 올리면 멘토님을 포함한

    메 인테이너들이 꼼꼼히 코드를 리 뷰해 주신다 219 건의 코드 리뷰 코멘트
  12. 오프라인 모임 • 토즈, 오픈업에서 3회의 오프라인 모임 • 직접

    멘토님에게 도움을 받을 수 있었음 • 맛있는 저녁 • 매주 하기로 되어 있었는데... 아시죠? 8월 2일 8월 15일 COVID-19 8월 9일 8월 22일 9월 5일 8월 29일 9월 12일
  13. 온라인 모임 • 오프라인 모임이 불가능해져 온라인 모임으로 전환 •

    온라인으로 만나 활발하게 기여! • 마지막에는 (각자 집에서) 맛있는 저녁과 함께 회식 9월 12일 9월 19일 COVID-19 8월 2일 8월 15일 8월 9일
  14. 후기 직접 짠 코드를 공개적으로 올리는 게 아직 은 어렵고

    부담스럽긴 하지만 약 두 달간 경 험을 통해 앞으로도 도전할 수 있는 자신감 을 얻었어요. 기회가 된다면 계속해서 RustPython에 참여하고 싶습니다. 김도연 실력이 좋아야 할 수 있는 줄 알았는데 쉽게 기여할 부분도 많았습니다. 제가 올린 PR이 master branch에 merge 되었을 때는 보람 찼습니다. 앞으로는 다양한 오픈소스에 기여 해보려고 합니다. 한동철 프로그래밍 언어를 만들어보고 싶다는 막연 한 생각은 가져본 적이 있었는데, 직접 해 볼 엄두를 내 보지 못했으나 이번 컨트리뷰톤 을 통해 좋은 경험을 만들게 되었습니다. 이 후에도 기여하던 부분을 마저 작업하여 완 성해보고 싶습니다. 전성 한 프로젝트에 집중하여 기여를 해 본 경험 은 없었는데, 많은 도움으로 함께 개발할 수 있어서 즐거웠고 Rust도 많이 배울 수 있었 네요. 컨트리뷰톤은 끝났지만 지금도 PR 하 나를 준비하고 있어요. 이영찬 RustPython 프로젝트에 관심을 가진 분들 을 만나 함께 수다 떨며 오픈소스에 기여할 수 있어서 무척 즐거웠습니다! 이현준
  15. 후기 직접 짠 코드를 공개적으로 올리는 게 아직 은 어렵고

    부담스럽긴 하지만 약 두 달간 경 험을 통해 앞으로도 도전할 수 있는 자신감 을 얻었어요. 기회가 된다면 계속해서 RustPython에 참여하고 싶습니다. 김도연 실력이 좋아야 할 수 있는 줄 알았는데 쉽게 기여할 부분도 많았습니다. 제가 올린 PR이 master branch에 merge 되었을 때는 보람 찼습니다. 앞으로는 다양한 오픈소스에 기여 해보려고 합니다. 한동철 프로그래밍 언어를 만들어보고 싶다는 막연 한 생각은 가져본 적이 있었는데, 직접 해 볼 엄두를 내 보지 못했으나 이번 컨트리뷰톤 을 통해 좋은 경험을 만들게 되었습니다. 이 후에도 기여하던 부분을 마저 작업하여 완 성해보고 싶습니다. 전성 한 프로젝트에 집중하여 기여를 해 본 경험 은 없었는데, 많은 도움으로 함께 개발할 수 있어서 즐거웠고 Rust도 많이 배울 수 있었 네요. 컨트리뷰톤은 끝났지만 지금도 PR 하 나를 준비하고 있어요. 이영찬 RustPython 프로젝트에 관심을 가진 분들 을 만나 함께 수다 떨며 오픈소스에 기여할 수 있어서 무척 즐거웠습니다! 이현준
  16. 후기 직접 짠 코드를 공개적으로 올리는 게 아직 은 어렵고

    부담스럽긴 하지만 약 두 달간 경 험을 통해 앞으로도 도전할 수 있는 자신감 을 얻었어요. 기회가 된다면 계속해서 RustPython에 참여하고 싶습니다. 김도연 실력이 좋아야 할 수 있는 줄 알았는데 쉽게 기여할 부분도 많았습니다. 제가 올린 PR이 master branch에 merge 되었을 때는 보람 찼습니다. 앞으로는 다양한 오픈소스에 기여 해보려고 합니다. 한동철 프로그래밍 언어를 만들어보고 싶다는 막연 한 생각은 가져본 적이 있었는데, 직접 해 볼 엄두를 내 보지 못했으나 이번 컨트리뷰톤 을 통해 좋은 경험을 만들게 되었습니다. 이 후에도 기여하던 부분을 마저 작업하여 완 성해보고 싶습니다. 전성 한 프로젝트에 집중하여 기여를 해 본 경험 은 없었는데, 많은 도움으로 함께 개발할 수 있어서 즐거웠고 Rust도 많이 배울 수 있었 네요. 컨트리뷰톤은 끝났지만 지금도 PR 하 나를 준비하고 있어요. 이영찬 RustPython 프로젝트에 관심을 가진 분들 을 만나 함께 수다 떨며 오픈소스에 기여할 수 있어서 무척 즐거웠습니다! 이현준