프로젝트에서 소스파일 하나 수정하고 저장하면, 다른 소스파일 수정할 동안 백그라운드에서 수정된 곳 까지만 컴파일하는 거임.
어차피 일하는 시간의 90%는 CPU가 놀잖아?
궁극적으로는 소스 수정 다 하고 build하면 링킹만 하면 되게끔 말이지
하다못해 의존성만이라도 미리 컴파일 해둔다거나...
가능?
프로젝트에서 소스파일 하나 수정하고 저장하면, 다른 소스파일 수정할 동안 백그라운드에서 수정된 곳 까지만 컴파일하는 거임.
어차피 일하는 시간의 90%는 CPU가 놀잖아?
궁극적으로는 소스 수정 다 하고 build하면 링킹만 하면 되게끔 말이지
하다못해 의존성만이라도 미리 컴파일 해둔다거나...
가능?
https://en.wikipedia.org/wiki/Incremental_compiler
있긴 있네
의존성만 컴파일하는건 유니티 보면 가능한데 증분컴파일은 svn 보면 글쎄
소스 한글자라도 수정하는순간 build하면 무조건 컴파일 다시하고 링킹해야하는데 의존성관리는 make에 이미 있는거고. 글이 무슨말을 하는지 잘모르겠음
소스 수정하고 저장하면 make하지 않더라도 데몬이 inotify로 감지하고 수정된 소스파일만 .o 파일로 컴파일 해둔다거나 빌드가 문제없이 되면 아예 target까지 생성해둔다거나.. 그런거
그런기능은 컴파일러보다 ide나 build tool의 도움을 받아야 되지 않을까? 찾아보면 있음직한도 한데 본적은없음
음.. 러스트에 그런 거 있었으면 좋겠네
네이티브 빌드쪽까지는 모르겠고 단순 incremental의 경우는 typescript 컴파일러가 그런기능이 있었던걸로 기억함 - dc App
ts 좋긴 좋네 ㄳㄳ
tsc watch
러스트 증분컴파일함
cargo 데몬도 있음? 소스 수정하고 저장하면 자동으로 빌드하는...
cargo watch
ㄳㄳ
cargo watch랑 ra/rls랑 같이 쓰면 느려지는군.. 그래서 별로 안쓰나보네
어떤 언어들은 함수 단위 컴파일마저 가능
C/C++ 말하는 거면 이미 헤더 의존성 규칙만 지정해주면 알아서 변경된 소스, 변경에 의존하는 소스만 새로 빌드하고 나머지는 오브젝트 그대로 씀 다시 말해서 헤더 디펜던시 기록하고 그거 활용하게 make 만 잘 짜주면 make 에서 알아서 증분빌드로 동작함 다만 소스파일 변경 감시같은 건 별도로 뭔가를 구축해야함
에러, 워닝, 테스트 같은 거 로깅하려면거 프로젝트별로 구축한다는 게 가능함? 컴파일러 수트에 포함되어 있어야 하지 않음?
컴파일러 수트에 포함돼야 한다는게 뭔 말인지 모르겠네 윈도우 관점의 솔루션을 얘기하는건가 리눅스에서는 일단 빌드 스크립트는 그렇게 프로젝트에 꽉 묶인 개념이 아님 그냥 스크립트임
내 말은 *.c 파일의 inotify를 받아서 make 스크립트대로 cc나 ld를 호출해야하는 데, 그게 make로 가능하냐는 거지
CC LD 를 왜 일일이 호출하냐니까 Makefile 에서 필요한 부분만 빌드하면 그게 증분빌드지 그냥 단순히 make 만 호출하면 알아서 재컴파일 필요한 것만 때려 넣어주는데 그리고 inotify 는 API 로써 제공되는 기능 아니었냐?
의심스러워서 검색해보니 맞네 inotify 는 그냥 커널쪽에서 API 레벨로 제공해 주는 거지 사용자가 바로 명령어로 타이핑하거나 서비스로써 제공되는게 아냐 뭘 잘못 알고 있네 그리고 CMake 쓴다면 Makefile 로 일일이 증분빌드 세팅 안해도 알아서 증분빌드 하는데
아씨... make 안 쳐도 되는 방법을 찾고 있다니까
증분이 무슨말이지 인디언들이 훈제로 컴파일하는 건가
incremental