한줄 요약: 그래서 AI 사무원이 필요합니다. ㅎㅎ
근거: 보셈
다음은 codex 의견.
────────────────────────────────────────────────────────────────────────────────
• 여기서 한 가지 수상한 불일치가 보입니다. 레이아웃 패키지는 함수형 API로 바뀌어
있는데, 생성 도구가 예전 상수 이름을 참조하는지 확인하겠습니다.
• Explored
└ Read gen_clair_config_h.adb
Search CONTEXT_SIZE|CONTEXT_ALIGNMENT|context_size|context_alignment|
CLAIR_EVENT_LOOP_SIZE|CLAIR_EVENT_LOOP_ALIGNMENT in .
• Ran git diff -- src/event_loop/clair-event_loop-layout.ads src/event_loop/
│ clair-event_loop-layout.adb tools/gen_clair_config_h.adb
└ (no output)
────────────────────────────────────────────────────────────────────────────────
• 문제점 발견해서 여기서 중단합니다.
tools/gen_clair_config_h.adb:25가 더 이상 존재하지 않는
Clair.Event_Loop.Layout.CONTEXT_SIZE / CONTEXT_ALIGNMENT 상수를 참조합니다.
현재 레이아웃 패키지는 함수 API입니다:
- src/event_loop/clair-event_loop-layout.ads:9: context_size
- src/event_loop/clair-event_loop-layout.ads:10: context_alignment
따라서 config 헤더 생성 도구는 현재 소스 기준으로 컴파일되지 않거나, 적어도 최
신 layout API와 불일치합니다.
수정 방향은 최소 변경이면 tools/gen_clair_config_h.adb에서:
Clair.Event_Loop.Layout.CONTEXT_SIZE'image
Clair.Event_Loop.Layout.CONTEXT_ALIGNMENT'image
를 각각 함수 호출 기반으로 바꾸는 것입니다.
─ Worked for 2m 46s ────────────────────────────────────────────────────────────
› 그런데 왜 컴파일할 때 에러가 안 났지?
• 빌드에서 이 생성 도구가 실제로 포함되는지 확인하겠습니다. 정상 빌드가 통과했다
면 대개 “그 파일을 빌드하지 않았다”거나 “이미 생성된 산출물을 재사용했다” 쪽입
니다.
• Explored
└ List rg --files -g '*.gpr' -g Rakefile -g '*.rb'
Search gen_clair_config_h|clair-config|config_h|CLAIR_EVENT_LOOP_SIZE|tools
in
Rakefile
• Ran git status --short
└ (no output)
────────────────────────────────────────────────────────────────────────────────
• Rakefile에는 tools 빌드 태스크가 따로 있습니다. 이제 build와 test가 그 태스크
를 의존하는지 확인해 보겠습니다.
• Explored
└ Read Rakefile, clair-host_tools.gpr, clair-tools.gpr
────────────────────────────────────────────────────────────────────────────────
• 컴파일 에러가 안 난 이유는 제 판단이 틀렸기 때문입니다. 이건 실제 문제가 아닙
니다.
Ada는 식별자가 대소문자를 구분하지 않습니다. 그래서
Clair.Event_Loop.Layout.CONTEXT_SIZE
는
Clair.Event_Loop.Layout.context_size
와 같은 이름입니다.
또 context_size는 인자가 없는 함수라서 Ada에서는 함수 호출을 이름만으로 쓸 수
있습니다. 따라서 CONTEXT_SIZE'image는 존재하지 않는 상수를 참조한 게 아니라,
context_size 함수 결과에 'Image를 적용한 형태로 컴파일됩니다.
정리하면 이전 보고는 철회합니다. 가독성 차원에서 lowercase로 바꿀 수는 있지만,
기능 버그나 컴파일 버그는 아닙니다.
────────────────────────────────────────────────────────────────────────────────
댓글 0