Lobsters

Balloting has completed for C++26. Unfortunately it was Disapproved

C++26 표결 완료, 부결됐습니다

C++26 국제 표준안이 회원국 표결에서 부결됐습니다. 찬성률은 정회원 투표 기준에 못 미쳤고 반대표 비율은 허용치를 넘었습니다. Lobsters 댓글에서는 계약(contracts) 기능을 둘러싼 이견이 원인으로 거론되지만, 이후 절차는 불확실하다는 의견이 나옵니다.

에디터 노트

이번 부결은 두 투표 기준을 모두 충족하지 못한 결과입니다. P-member 찬성률은 요구치보다 6.66%포인트 낮았고, 회원국 반대표 비율은 허용치보다 16%포인트 높았습니다. 원문은 표결 수치만 제시하며 부결 원인을 밝히지 않습니다. 댓글에서 계약 기능 논란을 원인으로 지목하지만, 그 설명은 참여자들의 이해와 추측으로 구분해야 합니다. 댓글은 계약을 포함한 표준의 기술적 문제와 표결 절차의 비례성을 함께 문제 삼습니다. ODR과 계약의 선택적 활성화가 쟁점이라는 설명이 나오지만, 이 자료만으로 각 주장의 타당성이나 실제 후속 절차를 확인할 수는 없습니다. 특히 계약을 제외한 뒤 재투표하는 방안은 댓글에서도 추측으로 제시됩니다.

AI 요약

C++26 표준안에 대한 회원국 투표가 부결로 끝났습니다. P-member 투표에서는 찬성 20표 중 12표로 60%를 얻었습니다. 기권표는 이 계산에서 제외하며, 가결 기준은 66.66% 이상입니다. 회원국 투표에서는 22개국 중 9개국이 반대해 반대표 비율이 41%였습니다. 기준은 25% 이하입니다. Robert Seacord는 이를 C++ 커뮤니티에 슬픈 소식이라고 표현하며 생산적으로 갈등을 풀고 나아가기를 바란다고 썼습니다.

Lobsters 반응

  • @refi64 — 찾아본 바로는 계약(contracts)을 둘러싼 논란이 원인인 듯합니다. 표준화 단체와 WG21 중 누구를 탓하느냐를 두고 정치적 분열처럼 보이는데, 양쪽 이유가 모두 모호합니다. 이미 어느 한쪽 편을 들 만큼 깊이 관여하지 않은 사람에게 이견의 배경을 듣고 싶습니다. 수정: 계약에 반대하는 P4334r0, 부결을 촉구하는 현재는 보관 처리된 청원, 그리고 P4334r0과 청원이 틀렸다고 주장하는 P4433r0이 있네요. 역사가 길군요.
    • @mond — 제가 이해하기로는 Bjarne이 계약이 표준에 들어가는 것을 막으려 하고 있습니다. 이 사안에서는 그가 옳다고 생각하지만, 국가 회원단체 표결로 표준을 막는 일이 그만큼 가치가 있는지, 비례적인 조치인지 판단하기 어렵습니다. 다음에 무슨 일이 생길지는 모르겠습니다. 가장 바람직한 시나리오는 계약을 제외하고 재투표해 표준이 통과되는 것이라고 생각합니다. 그 과정이 빨리 진행되면 좋겠습니다. 최악의 경우 C++26이 아예 나오지 않을 수도 있습니다.
    • @david_chisnall — 다음에 무슨 일이 생길지는 모르겠습니다. 복잡하고 저도 완전히 이해하지 못합니다. 개별 회원단체가 비준하고 발행할 수 있다고 들었는데, ANSI가 비준하고 ISO가 비준하지 않으면 어떻게 될까요? ISO 표준은 아니지만 C++26이 있는 상황이 되겠네요. ISO 비준 표준이 없으면 현재 초안이 작업 초안으로 남고, 다음 ISO 표준은 그 초안을 바탕으로 만들어집니다. 계약을 뺀 표준을 채택하는 절차는 없습니다. 저도 계약에 강하게 반대하고 언어에 재앙이라고 보지만, 좋은 결과를 낼 수 있는 절차라는 믿음을 잃어 논의 참여를 그만뒀습니다. 국가 단체 표결에도 참여하지 않았습니다. 지금은 포인터 동작을 합리적으로 정의하는 일에만 제한적으로 참여합니다.
    • @mond — 복잡하고 저도 완전히 이해하지 못합니다. 개별 회원단체가 비준하고 발행할 수 있다고 들었는데, ANSI가 비준하고 ISO가 비준하지 않으면 어떻게 될까요? ISO 표준은 아니지만 C++26이 있는 상황이 되겠네요. ISO 비준 표준이 없으면 현재 초안이 작업 초안으로 남고, 다음 ISO 표준은 그 초안을 바탕으로 만들어집니다. 계약을 뺀 표준을 채택하는 절차는 없습니다. 제 추측일 뿐이지만 초안이 WG21로 돌아가 수정 기회를 얻고, 계약을 빼거나 유지한 뒤 국가 회원단체가 다시 표결할 수도 있겠습니다. 그럴 가능성이 있다고 보시나요? 포인터 동작 논의는 이 사안과 무관할 수 있지만, 무엇을 연구하시는지 궁금합니다. 포인터 출처(provenance) 문제인가요? CHERI 호환성을 보장하는 문제인가요? C++ 포인터 동작에 공개 논의가 있는 줄 몰랐습니다. 대부분 이미 확정됐다고 생각했습니다.
    • @refi64 — Bjarne이 계약이 들어가는 것을 막으려 한다고 이해했습니다. 이 사안에서는 그가 옳다고 생각하지만, 국가 표준화 단체를 동원해 표준을 막는 일이 비례적인 조치인지는 판단하기 어렵습니다. 관련 문서를 더 보니 불만 중 일부는 이해됩니다. 계약을 UB 검사에 쓰면서 비활성화도 허용하면 혼란이 생길 수 있습니다. 하지만 문서 일부는 계약이 전적으로 해롭다는 식으로 쓰여 있습니다. 표준 위원회가 오래전부터 기능을 제대로 설계하지 못한 경우가 있었고 나중에 고친 적도 있습니다. 국제 표준화 단체를 움직이는 일이 비례적인지는 모르겠습니다. Stroustrup이 반대 운동을 이끈다면 정치적 다툼처럼 보이기도 합니다. 일부 반대자는 어떤 사안에서도 자신들의 의견이 무시되는 것을 원치 않을 수 있고, 찬성자 중에도 반대 방향으로 같은 태도를 보이는 사람이 있을 수 있습니다.
    • @mond — 계약이 왜 나쁜지 설명하는 문서와 발표가 여러 개 있습니다. 참고 자료를 찾으려면 검색해 보세요. 일단 단일 정의 규칙(ODR)과 계약을 선택적으로 켜고 끄는 방법 등에 관한 문제가 있다고 알고 있습니다. 다만 표준화 단체들 사이에는 계약을 넣자는 강한 합의가 있었다고 들었습니다. 현재 초안의 기술적 상태를 모두 따라가지는 못했지만, Bjarne이 적극적으로 관여하며 반대한다는 점은 확인된 것으로 알고 있습니다.
    • @mort — 계약에 반대하는 발표를 보고 싶습니다. 제목이나 발표자, 학회 등 찾을 단서가 기억나시나요?
  • @aw1621107 — 관련된 /r/cpp 게시물의 댓글도 읽어볼 만합니다. 위원회 구성원의 추가 설명과 맥락, 의견이 있을 수 있습니다.