Python REPL에서 창 크기 바꾸면 화면이 깨질 때: CPython의 ‘리사이즈 이벤트’ 처리 방식이 바뀐 이유 meta_description: CPython PR #146459(gh-146458)는 Windows에서 콘솔 창 리사이즈 시 REPL의 높이/너비 추적이 틀어지는 문제를 수정했다. 핵심은 SIGWINCH 핸들러에서 즉시 크기를 갱신하던 방식을 바꾸고, refresh 단계에서 getheightwidth()로 화면 크기를 다시 계산하도록 만든 것이다. 이 글은 왜 이벤트 핸들러에서 상태를 미리 바꾸면 문제가 생기는지, pyrepl 기반 REPL에서 “resize” 이벤트가 어떻게 흘러가는지, 그리고 터미널 UI/CLI 도구를 만드는 개발자가 적용할 수 있는 실전 체크리스트를 정리한다. meta_keywords: python,repl,pyrepl,console,windows,resize,sigwinch,event queue,terminal ui,tty,refresh,rendering,bugfix,regression,test,mock,height,width meta_robots: index,follow REPL이나 터미널 기반 CLI를 만들다 보면, 은근히 사람을 미치게 하는 버그가 있다. 창 크기 바꾸면 화면이 깨짐 커서 위치가 튐 줄바꿈이 꼬여서 입력이 보이지 않음 특히 Windows 콘솔은 환경이 다양해서(기본 콘솔/Windows Terminal 등), “내 컴퓨터에서는 되는데” 가 자주 나온다. 최근 CPython에 들어간 PR #146459(gh-146458)는 딱 그 지점을 고쳤다. 콘솔 리사이즈에서 REPL의 height/width 추적이 틀어지는 문제 이번 글은 단순 ‘버그 픽스’ 소개가 아니라, 왜 이런 버그가 생기는지 터미널 UI를 만드는 입장에서 어떤 패턴이 안전한지 를 실무적으로 정리한다. 1) PR #146459가 바꾼 핵심: “리사이즈 이벤트...
CPython AArch64 JIT 패치 노트 읽는 법: ‘관측되지 않은’ 버그라도 운영팀이 신경 써야 하는 이유 meta_description: CPython PR #148198(GH-146128)은 AArch64에서 JIT 코드의 상수 값이 부분적으로 손상될 수 있는 이론적 버그를 수정하기 위해, 문제 소지가 있던 “33rx” 릴로케이션 최적화(폴딩)를 제거했다. 관측 사례가 없어도 이런 패치가 중요한 이유(무증상 데이터 오염 가능성), 어떤 환경에서 의미가 커지는지(AArch64 + JIT 사용), 그리고 서비스 운영자가 지금 바로 할 수 있는 점검/롤백/테스트 체크리스트를 실무 관점에서 정리한다. meta_keywords: python,cpython,jit,aarch64,arm64,relocation,constant corruption,patch,stencil,optimizer,performance,stability,regression testing,release engineering,build,production,observability,risk meta_robots: index,follow 파이썬 릴리즈 노트나 PR을 보면 가끔 이런 문장이 나온다. “이 이슈는 theoretical이며, unmodified Python 인터프리터에서는 관측되지 않았다.” 대부분의 개발자는 여기서 스크롤을 내린다. “그럼 우리랑 상관 없겠네.” 근데 운영 관점에서는 오히려 반대로 읽는 게 맞다. 관측되지 않았다는 건, 관측이 어려운 종류 일 수도 있다 특히 이번 PR #148198(GH-146128)은 표현이 꽤 무섭다. AArch64 JIT 코드에서 상수 값이 “부분적으로 손상(partially corrupted)”될 수 있음 크래시가 아니라, 값이 조용히 틀어지는 유형은 재현이 어렵고 로그가 남기 힘들고 버그 티켓이 “가끔 결과가 이상함”으로 올라온다 그래서 이 글은 코어 구현 해설이 ...