이제 GCC는 C++로 구현됩니다.

klara의 이미지

GCC now uses C++ as its implementation language [2012-08-14]

The cxx-conversion branch has been merged into trunk.
This switches GCC's implementation language from C to C++.
Additionally, some data structures have been re-implemented in C++ (more details in the merge announcement).
This work was contributed by Lawrence Crowl and Diego Novillo of Google.

출처: http://gcc.gnu.org/

GCC의 구현언어가 C에서 C++로 변경되었습니다.
직접 GCC를 개발하는 사람이 아니라면 별로 상관없는 이야기일듯 하지만, C++사용자로서 C++이 이용된다고 하니 기쁘네요.

이전 배경이나 변경점등에 대한 자세한 내용은 다음 페이지를 참고해주세요.
http://gcc.gnu.org/wiki/cxx-conversion

ifree의 이미지

문제는 GCC 코드가 7백30만 줄이나 된다는...
llvm/clang 이 옳은 방향이 아닐지.

oosap의 이미지

C 로는 C++ 의 장점을 따라갈 수 없었던 걸까요?

놀라운 뉴스입니다.

Thanks for being one of those who care for people and mankind.
I'd like to be one of those as well.

pogusm의 이미지

730만줄의 C로 작성된 소스코드를
몽땅 C++로 재작성 한다는 건가요?

그렇다면 빡셀듯.

klara의 이미지

C로 작성된 코드를 몽땅 바꿀 필요는 없지요.
암묵적인 선언이나 형변환등을 제외하고는 대부분 C++은 C와 소스코드가 호환되니까요.
작업내용을 봐도 우선은 C++로 컴파일되게 하고서 C++로 바꾸는게 좋아보이는 곳들을 바꿔가는 거 같습니다.
그리고 이미 C++ branch는 trunk로 통합된 상태이기 때문에 지금부터 C++로 바꿔간다기보다는 이미 C++로의 이전자체는 완료된 상태라고 할 수 있을 듯합니다.
이후에도 C++-style로 재작성되는 부분은 계속해서 나오겠지만요.

pogusm의 이미지

그렇군요.
좋은 정보 고맙습니다.

bellows의 이미지

만줄짜리 코드도 작성본 적이 없는 듯 한데...
730만줄이라니.....

아직은 갈 길이 멀다

태훈의 이미지

컴파일 시간이 오래 걸리는 대규모 프로젝트에서는 컴파일 시간이 중요한 의미를 가집니다.

C++로 바뀌면서 느려지지 않을까 걱정이네요. 물론, GCC 개발자 분들이 이런 것도 감안하고 내린 결정이겠지만요.

저도 컴파일러의 미래는 LLVM이라고 생각합니다. (근데, 솔직히 네이밍은 맘에 들지 않습니다.)

Just do it!

김정균의 이미지

동감.. 이젠 gcc 컴파일을 시도하지 말아야 겠어요 :-)

익명_사용자의 이미지

http://en.wikipedia.org/wiki/LLVM wrote:
LLVM (formerly Low Level Virtual Machine) is compiler infrastructure written in C++

컴파일러의 미래는 LLVM이라고 말씀하시면서, GCC가 C++로 바꾼것이 걱정이라 하시니, 아이러니하네요 :D

태훈의 이미지

GCC는 오랜 기간 C로 개발되어 왔기에 C++로 변경되면서 기존 컴파일 시간보다 느려질것을 걱정한 것이며,
LLVM이 컴파일러의 미래라고 한 것은 구현 언어(C++)와 상관 없이 구조적인 측면에서 말씀드린 것입니다.

Just do it!

winner의 이미지

아무래도 많은 개발자가 작업하기 용이하고, 구조적 측면을 개선하는데에는 C 보다 C++ 가 낫다고 판단했는지도 모르지요.
제가 알기로는 지금의 상황이 C++ 와 호환되지 않는 C 기술의 제거를 완료한 상태인 것 같은데요. C++ 기술을 남용한 상황이 아닌 이상 C++ compiler 로 GCC 를 build 한다고 크게 느려지지는 않을 것 같습니다.
C++ 기술을 도입할 때에도 build 시간이 너무 늘지 않도록 조율하겠죠.

태훈의 이미지

성능이 중요한 어플리케이션 개발에 있어서 생산성이나 확장성등의 다양한 요소를 감안했을때 C++이 가장 좋은 대안이라는 것에는 이견이 없습니다.
다만, gcc는 오랜 기간 C로 개발되어 왔으므로 C에 특화된 프로젝트일텐데 C++로 전환되면서 생길만한 문제점을 추측해 본것 뿐입니다.

너무 큰 의미를 두지 말아주세요.

말씀하신것처럼 구조적인 측면을 개선하기 위해서는 C++이 좋은 대안이라고 생각합니다. 좀 더 멋진 구조를 가진 LLVM 이라는 신생 컴파일러가 치고
올라오니 gcc 개발자분들이 위기감을 느꼈을지도 모르죠.

C++로 전환하면서 빌드 타임이 느려지는 부분이 있으면 그 루틴은 C로 작성하던가 하는 대안이 있겠죠. 아마도 많은 연산이 필요한 최적화 루틴이
그러지 않을까 생각됩니다.

ps. 제가 하는 프로젝트에 잠시 llvm/clang 도입을 검토 해 보았습니다만, 다른건 둘째치고 gcc 확장때문에 다른 컴파일러로 전환하는건 어렵더군요.

Just do it!