[RustPython] traceback.tb_next mutable 하게 만들기
[RustPython] traceback.tb_next mutable 하게 만들기 Update traceback.tb_next to be writable RustPython에서 먼저, 생성자에서도 그리고, 추가로, 그 외의 마지막으로, 관련된 실패 테스트 코드들을 테스트한 후 주석을 제거해 마무리한다. Merged PR
개요
traceback은 tb_next라는 속성을 갖고 있다.
tb_next 속성은 read 하는 것만 가능했고, 이를 writable 하게 만든 내용이다. 과정
분석
tracback을 구현하는 Rust 구조체는 PyTraceback이다. PyTraceback은 tb_next 메소드를 갖고 있는데, 이는 tb_next 속성을 호출할 때 사용된다. tb_next 메소드를 호출하게 되면 PyTraceback 갖고있는 Option<PyTracebackRef> 타입의 next 값을 반환한다. 이렇게, tb_next 속성을 호출해 값을 get 하는 구현이 있지만, tb_next 속성에 값을 set 하는 구현은 없다. 수정
PyTraceback 구조체가 갖고 있는 next 변수를 mutable하게 만들기 위해 PyMutex로 감싼다. 
PyMutex를 이용해 아래와 같이 바꿔준다. 
tb_next 속성을 호출하는 함수를 수정하고, setter 함수를 만들어 준다. 
traceback의 next 변수를 사용해서 영향받는 코드들을 고쳐 준다. PyMutex는 Rust의 Mutex를 감싸는 타입이며, Mutex가 갖고 있는 값을 얻기 위해선 기본적으로 아래처럼 .lock() 을 호출해야 한다. 

