AI 요약
현대적인 포트란 컴파일러를 목표로 하는 LFortran 프로젝트가 중대한 이정표를 달성했습니다. 2025년 4월부터 우선순위 과제로 설정했던 '포트란 패키지 매니저(fpm)'의 컴파일 및 실행에 성공하여 2026년 2월 7일 관련 이슈를 종료했습니다. fpm은 단순 수치 계산을 넘어 명령줄 인자 파싱, 환경 변수 읽기, 파일 입출력 등 시스템 전반을 제어하는 복잡한 프로젝트로, LFortran이 지금까지 빌드한 프로젝트 중 가장 난이도가 높았습니다. 이 과정에서 개발팀은 수십 개의 버그를 수정하고 클래스, 상속, 동적 할당과 같은 현대적 포트란 기능을 모두 구현했습니다. 특히 객체 지향 기능을 처리하기 위해 Clang의 C++ 처리 방식을 참고하여 내부 엔진을 전면 리팩토링했습니다. 현재 LFortran의 베타 버전 진행률은 9/10 수준이며, 향후 중간 규모 이상의 코드에서도 높은 안정성을 확보한 후 공식 베타를 선언할 계획입니다.
핵심 인사이트
- 주요 일정: 2025년 4월 fpm 컴파일을 우선순위로 설정한 후, 약 10개월만인 2026년 2월 7일 성공적으로 완료했습니다.
- 진행 단계: 베타 버전 출시를 위한 10단계 로드맵 중 9단계(9/10)에 도달했으며, fpm은 베타 전 가장 복잡한 테스트 케이스였습니다.
- 기술적 성과: fpm 작동에 필수적인 M_CLI2, toml-f, fortran-regex, fortran-shlex, Jonquil 등 5개의 핵심 의존성 라이브러리를 모두 지원합니다.
주요 디테일
- 복잡성 극복: fpm은 단순 계산 코드가 아니라 클래스(Classes), 상속(Inheritance), 동적 할당 컴포넌트, 가상 함수 등 현대 포트란의 고수준 기능을 대거 사용합니다.
- 엔진 재설계: 클래스와 가상 함수 처리를 위해 Clang이 C++를 처리하는 방식을 벤치마킹하여 LFortran의 내부 구현을 대대적으로 수정했습니다.
- 베타 정의: 개발팀이 정의하는 '베타 품질'은 10,000라인(N=10,000) 수준의 코드에서 약 90%의 컴파일 및 실행 성공률을 보이는 것입니다.
- 현재 성능: 현재는 500~1,000라인 수준의 코드에서는 안정적이나, 대규모 코드에서의 완벽한 동작을 위해 추가적인 버그 수정을 진행 중입니다.
- 검증 프로세스: CI(지속적 통합) 시스템에 fpm의 모든 테스트를 통합하여, 매 커밋마다 안정성을 확인하고 '플래키(Flaky)' 버그가 없는지 감시하고 있습니다.
향후 전망
- 최종 관문: LAPACK 컴파일 등의 남은 단계를 거쳐, 중간 규모 이상의 프로젝트에서 높은 확률로 성공할 수 있다는 확신이 들 때 공식 베타 버전을 발표할 예정입니다.
- 생태계 영향: fpm이 LFortran에서 안정적으로 돌아감에 따라, 포트란 패키지 생태계의 빌드 및 배포 도구 체인이 더욱 견고해질 것으로 기대됩니다.
출처:hackernews
