Diff 도구는 사용자가 의미하는 바를 알고 있습니다.
Jul 27, 2023
우리는 특별히 예술적이지 않다는 것을 인정하지만 미술 교사가 때로는 존재하는 것보다 존재하지 않는 것을 그리는 것이 더 낫다고 말한 것을 기억합니다. 이는 네거티브 공간이라고 알려진 개념입니다. [Wilfred]는 적절하게 difftastic이라고 불리는 그의 "환상적인 diff" 도구를 설명할 때 비슷한 점을 지적합니다. 그는 두 프로그램을 비교할 때 무엇이 변경되었는지 확인하는 것이 아니라 무엇이 동일하게 유지되었는지 확인하는 것이 목표라고 지적합니다. 동일한 것으로 더 많이 식별할수록 변경 사항으로 표시할 필요가 줄어듭니다.
이 도구는 적어도 이 목적에 충분할 만큼 이미 구문 분석된 다양한 언어가 있는 tree-sitter의 도움을 받아 스마트한 방식으로 소스 코드를 비교합니다. [Wilfred의] 게시물에 따르면 이 도구는 bash와 YAML, Verilog에서 VHDL, C++에서 Rust까지 44개의 다양한 언어를 지원합니다.
물론 도구 자체는 주목할 가치가 있습니다. 하지만 이 글의 진정한 보석은 최소한의 변경 사항을 해결하기 위한 트리 시터 및 알고리즘에 대한 명료한 설명(오토크롬에서 차용)과 같은 것입니다.
코드는 아직 개발 중이며 출력이 항상 원하는 만큼 명확하지는 않습니다. 그래도 꽤 좋은 도구이고 개발 과제에 대한 훌륭한 글입니다.
Verilog와 VHDL이 시작이지만 우리는 회로도에 대한 차이점을 정말로 원합니다. 아, 그리고 PCB 레이아웃도 잊지 마세요.