Nice programing

DMD 대 GDC 대 LDC

nicepro 2021. 1. 8. 22:51
반응형

DMD 대 GDC 대 LDC


다른 D 컴파일러의 장단점은 무엇입니까? 성능 및 표준 준수 / D2 지원은 어떻습니까? 디버거는 얼마나 잘 지원됩니까? 오류 메시지와 IDE 통합은 얼마나 좋습니까? 64 비트 지원은 얼마나 좋습니까? 지금까지 내 생각 :

DMD

  • 성숙하고 잘 유지
  • 단 하나의 플랫폼, 64 비트 지원은 좋지 않습니다.
  • FOSS 아님

GDC

  • 다양한 플랫폼 지원
  • 매우 성숙한 최적화 기능이 있으므로 빠르나요?
  • 오래된 런타임?
  • GCC가 좋은 디버거 지원입니까?

LDC

  • 다양한 플랫폼 지원
  • LLVM이므로 JITing을 지원합니까?
  • 매우 성숙한 최적화 기능이 있으므로 빠르나요?
  • 잘 관리되지 않습니까?
  • 오래된 런타임?

죽은 / 작동하지 않음

  • sdc
  • MiniD-매우 훌륭하지만 D는 아닙니다.

ARM을 타깃팅하는 것에 대해 생각하고 있으며 GDC가 선택 도구라고 생각하지만 확실하지 않습니다.


DMD는 참조 구현입니다. 백엔드 만 독점적이며 프런트 엔드는 오픈 소스입니다.
코드 생성 품질은 그렇게 압도적이지 않습니다. x64 지원은 불과 몇 달 전입니다.

GDC와 LDC는 모두 DMD 프런트 엔드를 기반으로하므로 새 버전의 프런트 엔드가 병합 될 때까지 다소 시간이 걸릴 수 있습니다.
사용하는 백엔드가 매우 성숙하고 좋기 때문에 이러한 컴파일러의 품질은 주로 연결하는 글루 코드에 따라 달라집니다. 프런트 엔드 및 백엔드.

LDC와 GDC는 여전히 활발하게 개발되고 있지만 주로 소수의 사람들에 의해 개발되고 있습니다.
대체로 그들은 약간의 인력을 사용할 수 있습니다.


  1. DMD의 중요한 단점은 공유 라이브러리 부족입니다.
  2. 나는 개인적으로 GDC가 D2를 지원한다는 사실에 놀랐지 만 그들은 그렇게 말한다 .
    • D1 : 1.067
    • D2 : 2.053

  3. LDC는 확실히 유지 관리가 거의없는 것 같습니다. "D2는 x86-32 Linux에서만 작동합니다" . 나에게 그것은 굉장한 문제입니다.

  4. LDC를 검색하는 동안 컴파일러 (?!) : dil을 더 찾았습니다 . 아직 테스트하지는 않았지만 적어도 현재 유지되고 있습니다. 이 주제에 대해 최대한 빨리 조사하겠습니다. 편집 : 주석에서 지적했듯이 dil지금은 다소 완전한 상태에 가깝지 않습니다. 코드를 구문 분석하고 소스에서 문서를 생성 할 수만 있습니다.

2012 년 2 월 현재 LDC는 (적어도 데비안에서는) 실제로 사용할 수있는 옵션이 아닌 것 같습니다.

예를 들어 D 책 의 첫 번째 프로그램을 고려하십시오 .

import std.stdio;

void main(string[] args)
{
        writeln("Hello, world!");
}

내 시스템에서 LDC로 컴파일하지 못합니다.

hello.d(24): Error: module stdio cannot read file 'std/stdio.d'

The same is true of the first program at dlang.org:

import std.stdio;

void main() {
    ulong lines = 0;
    double sumLength = 0;
    foreach (line; stdin.byLine()) {
        ++lines;
        sumLength += line.length;
    }
    writeln("Average line length: ",
        lines ? sumLength / lines : 0);
}

This is because my LDC does not support Phobos--the current D runtime library. It looks like it is possible to build a D2 version of LDC, including Phobos, but that is not the way it ships on Debian at least.

GDC, and of course DMD, both compile the above just fine. It looks like GDC is quite up to date (DMD released 2.057 two months ago and GDC supports it now).

For me, GDC was the obvious choice because a simple 'apt-get -V install gdc' brought in both the compiler and the Phobos runtime with no problems (tested on Debian unstable).

ReferenceURL : https://stackoverflow.com/questions/6767065/dmd-vs-gdc-vs-ldc

반응형