2010-11-15 10 views
7

Czy ktoś wie, czy co najmniej D runtime i Phobos dla D 2 będzie wstępnie zbudowany jako DLL lub przynajmniej gotowy do kompilacji w taki sposób? Obecnie, jak rozumiem, będzie wymagało oznaczenia wszystkich odpowiednich funkcji i/lub klas jako eksportu. Nie można znaleźć niczego podobnego w obecnych źródłach DMD. Dzięki.D runtime jako DLL

Odpowiedz

6

Obecnie Phobos jest dostępny jako wstępnie zbudowany plik LIB, który jest statycznie połączony z plikiem wykonywalnym podczas kompilacji.

To ma pewne zalety dla DLL:

  • Deployment - można mieć zawsze pewność, że plik wykonywalny mieć odpowiednie środowisko wykonawcze/GC/Phobos dostępny - ten, który jest przetestowany z aplikacją. Co miesiąc jest nowa wersja Phobos i D runtime, używanie bibliotek DLL w tym przypadku może powodować problemy z wersjami.

Wady

  • wykonywalny rozmiar jest nieco większe (100s KB)
  • Każdego "unit" exe/dll ma własną śmieciarza.

Dlaczego szukasz możliwości korzystania z biblioteki DLL dla Phobos? Jakie niedociągnięcia występują w korzystaniu z LIB?

+0

1. To bardziej naturalne dla Win mieć takie rzeczy w DLL 2. pojedynczej instancji środowiska wykonawczego i GC dla całej aplikacji 3. Żadne pliki binarne powielania –

+5

@ target-san nie martw się o D's starcie dla nielicznych więcej lat. Gdy będzie stabilny przez około rok, zaczną wysyłać pliki DLL. Do tego czasu szybko zmieniająca się biblioteka stwarza więcej problemów niż jest warta. –

+4

Szczerze mówiąc, chyba że rozmiar binarny * naprawdę * staje się problemem, nie martwię się o biblioteki DLL. Są bardziej kłopotliwe, niż są warte. –