C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
분야별 포럼
C++빌더
델파이
파이어몽키
C/C++
프리파스칼
파이어버드
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

자유게시판
세상 살아가는 이야기들을 나누는 사랑방입니다.
[28510] Re: 엉망진창 입니다.
빌더(TWx) [builder] 4169 읽음    2019-07-23 01:01
테스트 님이 쓰신 글 :
: 파스칼 인라인 변수를 오류로 처리하는 것은 여전하고
:
: C++ code insight 기능도 동작하기는 하나
: 인덱싱 속도가 매우 느려서 구문파싱이 완료될 때 까지
: 한참 기다려야 동작한다는 것이 문제네요.
:
: 동작 안될 때는 소스파일을 강제로 저장하고
: 일단 컴파일을 한번 해줘야 비로소 동작.
: 너무 엉터리로 만들어 놓은 느낌이 다분 합니다.
:
: IDE의 안정성과 정교함은 비쥬얼 스튜디오 따라 갈려면 요원해 보입니다.
: 컴파일러와 IDE 만드는 기술력은 MS에 비하면 기술력이 한참 떨어지는 듯.
:
:
: 그리고 사용하다보면 IDE 에서 예외도 자주 발생하네요.




답변:


1. 델파이

Pascal Inline Variable 신텍스를 오류로 표시하는 건
파스칼 랭귀지 서버 프로토콜이 구현되어 컴파일러 레벨에서의 파싱코드가 지원되지 않으면...
지금과 같이 단순하게 Lex 코드 베이스로 구현되어 있는 방식으로는 처리할 수 없을 거고.
델파이는 Language Server Protocol을 이용하는 구조가 아닌, 기존의 code insight legacy 구조에 머물러 있음.



2. C++ Builder

Code insight 방식은 Code completion 기능을 지원하기 위해 IDE 내부에서 파싱처리 했던 기존의 방식인데...
파싱 처리시 로드가 크게 걸릴 경우, IDE를 얼려 버리는 문제를 갖고 있었기 때문에
기존 방식을 버리고 Language Server Protocol 을 구현한 별개의 외부 프로세스(엠바 툴의 경우 오픈소스인
cquery.exe 베껴서 배포하고 있음)를 이용하는 방식을 사용하고 있는데...

기존의 code insight 방식과 LSP(Language Server Protocol)방식은 구조가 완전이 다릅니다.


현재 10.3.2 도... IDE의 LSP 클라이언트 코드가 잘못 구현되어 있어요.
강제로 소스코드에 스페이스 문자 삽입 등... 변경을 가하지 않으면 IDE 내부 클라이언트 코드에서 LSP 서버로(cquery.exe)
json rpc 요구패킷을 파이프라인으로 보내지 않고 있습니다. 어떤 애들이 작업하고 있는지는 몰라도 C++ LSP 구조를 잘모르고
있는 파스칼 프로그래머 몇몇으로 구성된 인원이 대충 만들고 있나 봅니다.


소스코드에 변경이 가해졌을 경우... LSP 에서 파싱을 수행할 때도... precompiled 방식을 이용해서 불필요한 파싱을 최소화
하도록 구현해서 응답을 빠르게 해야 하는데 이마저도 이루어지고 있지 않은 것 같고요. 한마디로 엉망 이죠.



C++ 디버깅도 문제가 있는데요...

32비트 코드 디버깅시 브레이크는 걸리나... 변수 값이 죄다 ???? 로 나옵니다.



변수 값을 볼려면... legacy 컴파일러를 사용하거나 64비트로 컴파일 해야 해요.
32비트 legacy 컴파일러 사용시... C++17 기능은 사용하지 못함.


제품을 이따위로 개판으로 만들어 놓고...
생산성이 좋아졌네... 큰소리 치면서 릴리즈 하는 뻔뻔함은 도대체 어디서 나오는 건지.


김시환 [godson2]   2019-07-23 10:34 X
당장 다음 프로젝트부터 울며 겨자먹기로 구매한 리오버젼 사용하려고 하는데 이래가지고서야 사용할 수 있을지 모르겠습니다.
요즘은 외부에서 누굴 만나서 당당하게 엠바툴 쓰세요라고 말을 못하고 있습니다. 아니 안하고 있습니다. 괜히 욕먹을 거 같아서요..
양병규 [bkyang]   2019-07-25 12:51 X
그 때 현장에 계셨던 분들 혹시 기억하실지 모르겠는데
아주 오래 전에 미국 볼랜드에서 사람이 와서 행사가 있었을 때
저한테 발언 기회가 와서 이렇게 말한 적이 있었죠.

"당신들은 내가 영어 못하는 걸 감사해야 한다.
내가 영어만 잘 했으면 당장 미국으로 쫓아가서 엎어버렸을텐데.."

그랬더니 다들 ㅋㅋㅋ대고 웃더라구요.

그 때 제 속마음은

'웃어? 웃음이 나오냐?'였는데 말이죠.

이제라도 가서 엎어버리면 좋겠지만
여전히 영어도 안 되고
이젠 흥미도 없고
날씨는 덥고 (아이구 오늘 왤케 찌죠?)
뽀뽀중 [kissjung]   2019-07-26 15:07 X
10.3.2의 개선사항중 400개가 넘는 버그를 수정 했다고 하니
이제는 사용하는데 문제가 없겠네 라고 생각을 했습니다.

이 글을 보니 새로운 버그를 만드는(?) 것 같기도 하고... 서브스크립션 비용 받으려 고의로 버그를 만드는 것 아닌지 의심이 듭니다.

처음에 윈도우 프로그램 만들때 VS C++ 보다 편해 보여서 공부를 했는데, 이제는 후회가 됩니다.
중탱이 [joongtang]   2019-07-27 23:24 X
버그라고 하네요~ 조만간 핫픽스가 나올꺼 같아요~
매번 릴리즈마다 충분한 테스트가 안된듯한 느낌이 들어 좀 아쉽습니다~
빌더(TWx) [builder]   2019-07-29 12:46 X
다소 아쉬운 정도가 아닙니다.

빈 폼 하나 생성해서 기본적인 작업 할 때는... 그런대로 동작하는 듯 보이나
복잡하게 많은 헤더파일 들이 dependeny 관계를 갖고있는 라이브러리 소스코드 같은 것을
올려서 같이 작업하다 보면... 그냥 IDE가 죽어 버립니다. 어떤 메세지도 없이 스르르 사라지는 안개처럼.
C++17 기능 포기하면서 까지 legacy 컴파일러로 돌아 갈 수도 없고.

단순 패치로 눈가리고 아웅하듯이 만들어서 배포한다고 해서 해결 될 일은 아닌 것 같고...
엉망으로 만들어져 있는 IDE 내부의 LSP 클라이언트 코드를 대대적으로 손보지 않는 이상 사실상 사용할 수 없는 수준.

+ -

관련 글 리스트
28509 rad studio 10.3.2 가 나오기는 했지만 테스트 3971 2019/07/19
28510     Re: 엉망진창 입니다. 빌더(TWx) 4169 2019/07/23
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.