LFortran, 포트란 패키지 매니저(fpm) 컴파일 성공

LFortran 개발팀은 2025년 4월부터 착수한 포트란 패키지 매니저(fpm) 컴파일 과제를 2026년 2월 7일에 최종 성공하며 베타 출시를 향한 9/10 단계에 도달했습니다. 이번 성과는 단순 계산 코드가 아닌 시스템 프로젝트인 fpm을 완벽히 지원하기 위해 클래스 상속 및 가상 함수 처리 로직을 Clang의 C++ 방식과 유사하게 전면 재설계한 결과입니다.

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에서 안정적으로 돌아감에 따라, 포트란 패키지 생태계의 빌드 및 배포 도구 체인이 더욱 견고해질 것으로 기대됩니다.
Share

댓글

이 소식에 대한 의견을 자유롭게 남겨주세요.

댓글 (0)

불러오는 중...