컴파일러(beluga) 코드를 공개하였습니다

전웅의 이미지

안녕하세요?

SNS 에만 소식을 공유한 것 같아 이곳에도 글 남깁니다.
(오랜만에 글 쓰려니 글 작성 버튼이 보이지 않아 한참을 찾았네요.)

아직 부족한 부분이 있어 더 다듬어 공개하고 싶은 욕심이었지만,
신변 상의 변화가 생기게 되어 연말 들어서 바짝 달린 결과,
어느 정도 봐줄만한 수준이 되어 우선 코드를 공개하였습니다.

시간 상으로는 몇년 걸린 작업인데,
출퇴근 시간과 주말에 주로 작업하고,
도중에 여러번 수개월씩 쉬어가기도 해서
순수하게 투자한 시간이 얼마나 되는지 저도 궁금하네요.

처음에는 그냥 공부나 해보자는 생각으로 덤볐는데
어느 정도 상용에 근접한 결과물이 되어 신기할 따름입니다.

구현 코드(컴파일러, 전처리기, driver)가 합쳐서 3만 라인,
테스트 코드가 3만 라인입니다.

소스 위치는

- github: https://github.com/mycoboco/beluga
- 홈페이지: http://code.woong.org/beluga

입니다.

리눅스(x86/x64) 에 설치하여 동작 확인하였고
나중에 여유되면 Mac OS X 에도 설치해 볼 예정입니다.
(컴파일러 자체는 표준 C + POSIX 일부라서 포팅에 큰 문제가 없는데
시스템에 설치되어 있는 라이브러리와 연동하는 작업이 생각보다 번거롭네요.)

아직 C90 만 지원하고 gcc extension 이나 C99/C11 을 완전히 지원하지 못해
시스템 상 기본 컴파일러는 gcc 를 쓰고 있지만,
제가 C 로 작업하는 다른 프로젝트는 모두 beluga 를 사용할 수 있을 수준으로
구현되어 있습니다. (단, 오류가 나면 프로그램 버그인지 컴파일러 버그인지
모르겠는 건 함정이네요.)

또 다른 소식 생기면 공유 드리겠습니다.

연말 잘 보내시고 조금 이르지만 새해 복 많이 받으세요.

ifree의 이미지

존경합니다.

전웅의 이미지

으헉~! 존경까지야...
칭찬의 말씀 감사드립니다. ^^

날이 추워 그런지 기침이 멎질 않네요.
건강한 연말 보내시길 바랍니다.

--
Jun, Woong (woong at gmail.com)
http://www.woong.org

shint의 이미지


교육용으로는 사용해도 되나. 판매는 안된다고 하니. 이상하네요. ??

https://github.com/mycoboco/beluga/blob/master/LICENSE.lcc

이 소프트웨어의 저자 크리스토퍼 W. 프레이저하고 있습니다
데이비드 R. 핸슨.

저작권 (C) AT & T, 크리스토퍼 W. 프레이저으로 1991,1992,1993,1994,1995,
데이비드 R. 핸슨. 판권 소유.

권한 사용, 복사, 수정, 및이 소프트웨어를 배포하는
수수료없이 아래에 설명 된 규정에 따라 목적은,이다
이에이 전체 통지가 모두 포함되어 있는지 제공, 부여
또는 사본 또는 수정을 포함하는 소프트웨어의 사본
이 소프트웨어와 지원 문서의 모든 사본에
이러한 소프트웨어.

이 소프트웨어는 어떠한 명시도없이 "있는 그대로"제공 또는 묵시적되고있다
보증. 특히, 어느 것도 저자 NOR AT & T는 어떤 MAKE
상업성에 관한 어떠한 종류의 진술이나 보증
이 소프트웨어 또는 특정 목적에 대한 적합성의.

LCC는 공개 도메인 소프트웨어, 셰어웨어 아니며, 이는 보호되지
자유 소프트웨어의 코드와 같은 '카피 레프트'합의에 의하여
기초.

LCC는 개인 연구 및 교육 사용 가능합니다 무료
저작권법의 '공정한 사용'규정에 따라. 당신은 할 수있다,
그러나 제공 전부 또는 일부 LCC 재배포
소스를 인정하고이 저작권 파일을 포함한다.

당신은 인 LCC 또는 그것에서 파생 된 제품을 판매 할 수 없습니다
제품의 가치의 중요한 부분. LCC 전단을 사용하여
C 문법 검사기를 구축하는 것은 제품의이 종류의 예입니다.

당신은 당신이 단지 유료로 제품에 LCC의 일부를 사용할 수있다
전적으로 자신이고, 당신이 사용을 인정 해당 구성 요소
모든 제품 설명서 및 유통 매체에서 명확하게 LCC의. 당신
당신의 제품이 사용하거나 LCC의 부에 있는지 명확하게 명시해야한다
그 LCC는 무료로 사용할 수 있습니다. 당신은 또한 것을 요청해야합니다
제품에 버그 리포트 당신에게보고. LCC의 전면 사용
모토로라 88000 칩에 대한 충전 C 컴파일러를 구축하는 끝
단지 88,000 코드 생성기 배신이 예이다
제품 종류.

다른 제품에 LCC의 부품을 사용하는 것은 더 문제가된다. 예를 들면,
의 C ++ 컴파일러에서 LCC의 부품을 사용하는 것은 상당한 시간을 절약 할 수 있으며,
노력 때문에의 수익성에 크게 기여
제품. 사용의이 종류, 또는 다른 사람을 만들기 위해 서있는 사용
주로 우리의 일이 무엇인지부터 이익은 협상에 따라 달라질 수 있습니다.

크리스 프레이저 / cwf@research.att.com
데이비드 핸슨 / drh@cs.princeton.edu
금 6월 17일 동부 서머 타임 11시 57분 7초 1994

----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.

매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.

각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com

전웅의 이미지

번역기를 돌리셔서 내용이 이해하기 어려워졌는데
원문에 보시면 Copyleft 가 아니라고 명시되어 있습니다.

lcc 라이선스 자체가 상용 목적이 아니면 문제될 부분이 없고
상용 목적인 경우에도 일부를 허용하는 구조로 되어 있습니다.

위키피디아(https://en.wikipedia.org/wiki/LCC_%28compiler%29)를 보시면
대표적인 예로 Quake 3 나 Matlab 이 lcc 를 사용하고 있습니다.
lcc-win32 의 경우에는 Jacob 아저씨가 정식으로 라이선스를 구입한 경우이고
다른 컴파일러는 무료이고 lcc 에서 시작해 많은 부분이 변경되어 문제되지 않습니다.
(beluga 도 Pelles C 와 유사한 길을 걷고 있다고 보시면 됩니다 -
차이가 있다면 beluga 코드는 계속 공개할 예정입니다.)

또한, beluga 의 경우 lcc 와 무관한 부분은 MIT 라이선스에 준합니다.

감사합니다.

--
Jun, Woong (woong at gmail.com)
http://www.woong.org

shint의 이미지

어차피. 교육하면 상용으로 판매를 하게 됩니다.
근데. 교육용이 따로 있다는 말은. 말이 되지 않습니다.

마치. 내가 printf() 가르쳐 줄게.
대신. 이거 팔면 안되. 같이 보입니다.

제가 보기엔. 라이센스 있는건 다 사기꾼 같습니다.
좋은 사람들은 그런거 따지지 않았습니다.

- 따지고 싸우는것이 늘어나고.
- 합법적인 불법을 허용하게 되어. 양심에 가책과 죄책감. 논란이 만들어지는 문제와 어려움이 있습니다.

----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.

매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.

각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com

jeff_an의 이미지

어째서 교육은 상용이다라는 논리가 나오시는지요..
라이선스를 그렇게 해석하시다니 댓글을 읽는 저도 당황스럽네요..

shint의 이미지

.

----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.

매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.

각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com

jeff_an의 이미지

교육하면 상용으로 판다는 의미가, 교육에 제한은 없으나 배움을 통해 상용으로 판매하는 행위를 의미하시나요?
여기 라이선스는 교육이라는 행동에 대해 정의하는 것이지, 교육이 가져오는 부가적인 결과에 대해 의미하지는 않는 것 같네요.

그리고 라이선스에 대해 굉장히 부정적이신데, 소스코드에 대해 개발자가 지적재산권을 가지는 것이지, 라이선스가 상용을 의미하진 않습니다.
대부분의 오픈소스의 프로그램들이 라이선스 위에서 배포되고 있습니다.

shint님의 프로그램이 라이선스 '없이' 배포될 날을 기대하겠습니다.

shint의 이미지

대부분은 시키는대로 따르면. 조용하드라구요.

---------------------------------------------- 문제만 따지다 10년 지나갔습니다.
80년대는 전화번호부를 무료로 나눠줬습니다.
인터넷에서는 신상정보. 개인정보. 이메일. 전화번호의 공개와 거래가 불법이라고 합니다.
그런데. 교차로에서는 매일 전화번호가 공개되고 있습니다.
전 그렇게. 자기 권리나 내세우며. 각박하게. 사람. 자산. 지식. 관리나하며. 돈 벌기위해 살지 않을겁니다.

---------------------------------------------- 올바름을 실천하면. 문제가 없습니다.
위와 같은 문제보다. 다운로드. 설치. 제거. 게임. 업무. 인터넷. 검색. 오류수정. 등으로 인한 시간과 노력낭비. 저품질.을 줄여야 할겁니다.
정말 중요한 사람을 위한 노력을 먼저 생각해주시기 바랍니다.

엄마. 아빠는 라이센스 필요없습니다.

-----------------------------------------------
MS 는 선불 받고. 상업용. 무료 라이센스도 있고.
리눅스도 선불 받고. GPL 반독점 라이센스도 있고.
교육과 통신. 인터넷은 윈도우 서비스팩과 함께. 상업용으로 돌아서고.

BSD와 MIT. CPOL 은 별다른 제약이 없어보이고.
오갈데 없는 가난한 사람들은 갈데 없으니. 코드프로젝트. KLDP. 데브피아. PHPSCHOOL. 다음. 네이버. 구글로 모이고...

이런거 신경 쓰지 않아도. 프로그램만 만들어도 되는데. 잘못된 습관과 인식을 알려주는 기분입니다.

마치. 공산당은 나빠. 같습니다.
프로세스 킬. 쓰레드. 스트레스. 불량식품. 신용불량자. 장애인. 정신병자. - 뭔가 나쁘게 보입니다. 이것이 사회의 범퍼일까요. 누적된 문제일까요.

많은 사람들이. 대화하는게 사람이 아니라. 사람 마저도 단어'로 부릅니다. - 매니아. 게이머. 어돌트.

사람과 국어 먼저 알려 주셨으면 좋겠습니다.

--------------------------------------------
한글인데도. 남에 글이 잘 보이지가 않네요.

실어증 마냥. 헛소리만 하게 됩니다.

----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.

매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.

각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com

jeff_an의 이미지

.

HDNua의 이미지

저도 컴파일러를 좋아합니다. 공부하면서 검색하다가 전웅 님의 글도 몇 번 봤어요.
그때도 참 대단하다고 부러워했는데, 완성하셨다니 더 대단하게 느껴집니다.
완성하신 것 축하드립니다.

저는 이렇게 생각했습니다.

전웅의 이미지

축하의 말씀 감사드립니다.
날씨는 춥지만 마음은 따듯한 성탄 연휴 보내시기 바랍니다.

--
Jun, Woong (woong at gmail.com)
http://www.woong.org

nety2k의 이미지

대단히 고생 많으셨네요.

전웅의 이미지

ㅎㅎ 그러게요...

취미로 하는 거라 즐거울 때가 대부분 이었지만
어떤 때는 "무슨 부귀영화를 누리자고 이러고 있나"하는 후회가 들만큼
힘들 때도 있었습니다.

그래도 일단락 짓고 나니 뿌듯하네요. ^^

남은 연휴 즐겁게 마무리 하시길 바랍니다.

--
Jun, Woong (woong at gmail.com)
http://www.woong.org

emptynote의 이미지

공인된 자료구조 신(?)이 되심을 축하드립니다. 는 농담이구요.

능력자를 보게되면 마냥 부럽네요. ^^

전웅의 이미지

스스로 깨닫지는 못하고 있었는데
말씀 듣고 보니 만들면서 복잡한 자료구조에 많이 익숙해지긴 했네요.

아직 신의 경지에는 한참 모자라지만 축하의 말씀 감사드립니다.

남은 연휴 즐겁게 보내세요. ^^

--
Jun, Woong (woong at gmail.com)
http://www.woong.org

gilgil의 이미지

허걱... 대단하신 분이네요. (^^)b

전웅의 이미지

칭찬의 말씀 감사드립니다.

대단하다기 보단 그냥 긴 과정에서
순간순간 느껴지는 지겨움을 잘 견뎌낸 것 뿐입니다. ^^

즐거운 연휴 보내시길 바랍니다.

--
Jun, Woong (woong at gmail.com)
http://www.woong.org

onion의 이미지

정말 고생하셨습니다.. 몇년간 포기나 중단없이 프로젝트 꾸준히 한다는게 정말 쉽지 않은데 말이죠...

글 보니 gentoo 에서 테스트하셨다는 말이 왜이리 반가운지 ㅎㅎㅎ

다시한번.. 고생하셨고.. 새해 복 많이 받으세요..(꾸벅)

-----새벽녘의 흡혈양파-----

전웅의 이미지

오랜만에 다시 뵙는 아이디라 반갑습니다. ^^
축하의 말씀 감사드립니다.

젠투 정말 좋은 배포판이죠!
거의 10년 가까이 사용해오고 있는데,
제게 이만한 배포판은 없는 것 같습니다.

새해 복 많이 받으세요~!

--
Jun, Woong (woong at gmail.com)
http://www.woong.org

unipro의 이미지

와우~~~ 오랜만에 들른 KLDP에서 기쁜 소식 발견!!!
항상 응원합니다.
팬이예요. :-)

내 블로그: http://unipro.tistory.com

전웅의 이미지

오랜만에 뵙습니다!

팬을 자처해 주시고 응원의 말씀 주셔서 감사드립니다. ^^
다음번에도 좋은 소식으로 찾아오겠습니다.

새해 복 많이 받으세요~! ^^

--
Jun, Woong (woong at gmail.com)
http://www.woong.org

샘처럼의 이미지

축하드립니다. 오랜 기간 하나의 프로젝트를 이어서 하신 다는 것이 말처럼 쉬운 일이 아니겠지요.

오랜만에 들린 KLDP에서 오랫만에 KLDP다운 소식을 보게되어 무척이나 기쁩니다.

늦었지만 새해 복 많이 받으세요.

전웅의 이미지

제가 글 확인을 자주 못해 답글이 늦었습니다.

축하의 말씀 감사드립니다.
잉여의 힘을 잊지 않고 종종 KLDP 다운 소식 전할 수 있으면 좋겠네요.

샘처럼님도 새해 복 많이 받으시고, 추위에 건강 챙기시기 바랍니다.

--
Jun, Woong (woong at gmail.com)
http://www.woong.org

gilchris의 이미지

대단하시네요. ^^

짬내서 뭔가를 꾸준히 한다는 것이 정말 쉽지 않다는 거 알고 있습니다. 멋지십니다.


--------------------------------------------------------------------------------
새로운 세상으로...

전웅의 이미지

감사합니다.
처음엔 의지가 필요하더니 이젠 제법 관성이 붙어 할만한 것 같습니다. ^^

강추위가 지나가니 긴장이 풀린 탓인지 독감으로 고생이네요.
추운 겨울 건강히 보내시길 바랍니다.

--
Jun, Woong (woong at gmail.com)
http://www.woong.org