Lua 커뮤니티는 과거 버전을 떠나보내는 법을 배워야 함

6 days ago 12

지원 종료된 버전까지 호환하는 관행 탓에 Lua 라이브러리 유지보수자들이 20년 넘은 레거시를 계속 떠안고 있음 Lua/LuaJIT가 5.2 무렵 갈라진 뒤 양쪽을 지원하기 위해 Lua 5.1을 공통 기준으로 삼았고, 새 버전이 나와도 이 5.1 기준점에서 벗어나지 못함 현재 라이브러리들은 Lua 5.1~5.5와 LuaJIT 2.1·3.0, 때로는 OpenResty 변형까지 테스트하지만, PUC-Rio Lua 5.3 이하와 일부 LuaJIT 버전은 이미 지원 종료(EOL) 상태임 특정 Lua 버전을 내장한 애플리케이션의 플러그인 호환성은 해당 생태계가 관리하고, 일반적인 인터프리터·라이브러리 생태계는 최신 PUC-Rio Lua와 LuaJIT 중심으로 점진적으로 전환해야 함 Teal은 같은 코드로 Lua 5.1~5.5 대상을 생성해 버전 차이를 연결하며, 구형 Lua가 필요한 사용자는 최신 라이브러리에 호환성 부담을 넘기지 말고 당시 생태계 버전을 함께 사용해야 함 장기 호환성이 키운 유지보수 부담 Mike Pall은 LuaJIT 업스트림 GitHub 저장소에서 일부 구버전 태그를 삭제했으며, 업그레이드를 강제하는 이 조치는 일반적인 FOSS 환경에서 비우호적으로 보일 수 있음 여러 프로젝트가 오랫동안 luajit-2.1.0-beta3 같은 태그에 머물면서, 10여 년 전에 수정된 버그가 다시 보고되기도 함 LuaRocks 역시 배포판이 갱신하지 않은 2012년판 LuaRocks 2.0.8의 버그 보고를 계속 받고 있음 배포판 유지보수에도 큰 부담이 따르므로 특정 주체의 잘못이라기보다, 소프트웨어 유지보수와 사용자 업그레이드 자체가 어려운 문제임 Lua/LuaJIT가 약 15년 전 Lua 5.2 무렵 갈라진 뒤 라이브러리들은 다음 환경을 폭넓게 시험해 왔음 Lua 5.1, 5.2, 5.3, 5.4, 5.5 LuaJIT 2.1과 3.0 경우에 따라 OpenResty 변형 애플리케이션이 Lua 5.2 같은 특정 버전을 내장하고 플러그인 생태계를 구축했다면, 장기 호환성은 해당 애플리케이션 생태계가 관리해야 함 확장형 언어로 쓰이는 Lua의 인터프리터·라이브러리 조합은 다른 동적·스크립트 언어처럼 최신 PUC-Rio Lua와 최신 LuaJIT 중심으로 이동할 필요가 있음 Lua 5.1 기준점에서 벗어나는 방법 분열 당시 Lua와 LuaJIT를 함께 지원하려면 Lua 5.1 대상 개발이 효과적이었지만, Lua 5.2와 ...

Read Entire Article