D Shared Software System

Allgemeine Informationen

Wie mittels des Tutorials zur Installation und Konfiguration der DMD Compilertools beschrieben können wir jetzt in D geschriebene Programmquelltexte compilieren, linken und danach ausführen. Das Linken geschah aufgrund einiger Voraussetzungen noch automatisch.
Linken bedeutet hierbei, dass mehrere Module eines Programms miteinander korrekt „verbunden“ (gelinkt) werden, damit daraus das fertige Programm gefertigt werden kann.
Das linken geschieht auf Quelltextebene mit dem import Befehl. Doch so leicht ist das dann doch nicht. Man muss dem Compiler/Linker jedes Modul irgendwie bekannt machen, sprich, wo es der Compiler/Linker auf dem Computer findet und was er damit machen soll (z.B. daraus eine Laufzeitbibliothek basteln).

Dies kann bei großen Programmen seeeehr aufwendig werden. In den 80. / 90. Jahren des letzten Jahrhunderts war es vielleicht noch chic das ganze per Makefile (FIXME Glossarlink) zu organisieren. Die Makefiles enthielten hunderte Module und Anweisungen. Auch nicht gerade leicht solche Makefiles zu warten.

In der heutigen Zeit empfiehlt es sich deshalb ein Buildtool (FIXME Glossarlink) (Bauwerkzeug) zu verwenden, welches diese organisatorischen und zeitraubenden Sachen übernimmt. Solche Tools sind oft leicht zu konfigurieren und suchen sich, z.B. aufgrund der strengen Package-Module Ordnung bei D und den Importverweisen im Quelltext (also welches Modul welches andere unbedingt braucht), die Dateien selbstständig zusammen. Eine enorme Erleichterung.

Hier wird nun ein Buildtool für D vorgestellt, welches schon sehr gut funktioniert und auch weiterentwickelt wird (was zur Zeit aber etwas stagniert - so wie es eben bei Projekten von freiwilligen Programmierern der Fall sein kann). Das Buildtool heißt DSSS was für D Shared Software System steht und auch gleich noch einen großen Vorteil des Tools benennt, ein ver- bzw. geteiltes System, bei dem viele Bibliotheken direkt aus dem DSSS Online Repository (FIXME Glossarlink) mit einfachen Befehlen nachinstalliert werden können. So lässt sich sogar die ganze Compiler-Installation / -Konfiguration des ersten Tutorials überspringen und von DSSS erledigen lassen - na ja, wieder fast: Wenn man die aktuellsten Versionen des Compilertools haben will muss man doch noch selber Hand anlegen ( FIXME Link zum entsprechenden Abschnitt!).

Das kompilieren der Quelltexte zu einem Programm geschieht dann auch fast automatisch mittels eines einfachen Befehls ( FIXME Link zum entsprechenden Abschnitt!).

In diesem Tutorials wird all dies und noch mehr erklärt.
Viel Spaß beim lesen!

Download und Installation

DSSS lädt man über die Projektseite http://www.dsource.org/projects/dsss runter.
Der direkte Downloadlink für die DSSS-Windows-Version 0.78 lautet: http://svn.dsource.org/projects/dsss/downloads/0.78/dsss-0.78-x86-windows.zip

Nach dem Download entpackt man DSSS. Wie bei den DMD Compilertools am Besten nicht zu tief in der Ordner-Hierarchie und ohne Leer- und Sonderzeichen im Pfad (C:\Compiler\DSSS ist z.B. ein guter Pfad).
Die Ordner des frisch entpackten DSSS sind dann:

Ordner des frisch entpackten DSSS

Im bin-Ordner liegt die dsss.exe, welche das Herz des Systems ist.

Jetzt muss man, genauso wie die DMD Compilertools, den Pfad zur dsss.exe Datei in die Umgebungsvariablen eintragen, so dass man mit dem Befehl dsss in der Kommandozeile egal von welchem Ordner DSSS ausführen kann - sinnigerweise vom Quelltextordner des eigenen Programmes, welches man compilieren möchte.

Die folgende Vorgehensweise wurde auf einem Windows 7 System vollzogen, ist aber auch unter Windows Vista und Windows XP weitestgehend identisch.

Um die Pfadvariable bequem anzupassen ruft man die Systemsteuerung z.B. so Start (Taskleiste) → Systemsteuerung → System auf und sucht nach den Erweiterten Systemeinstellungen (Bei Windows 7 oben links).

Dort angelangt drückt man auf Systemumgbungsvariablen:

Systemeigenschaten Dialog

Dann auf Neu um eine neue Systemvariable zu erstellen:

Systemvariablen Dialog

Jetzt gibt man im Feld Varialben Name z.B. DSSS und im Feld Varialben Wert den Pfad zum bin Ordner des D Shared Software Systems ein:

Neue Systemvariable erstellen

Nach einem klick auf OK erscheint nun eine neue Systemvarialbe DSSS in der Liste der Systemvariablen.
Aus genau dieser Liste sucht man nun die Variable mit der Bezeichnung Path und klicken auf den Edit -Knopf:

 Path Variable finden und edit drücken

Es erscheint ein ähnliches Fenster wie beim Erstellen der neuen Systemvariable, doch diesmal erstellt man keine, sondern erweitern die bereits vorhandene Path-Varialbe.
Im Feld Variablenwert bewegen wir den Eingabezeiger ans Ende der Zeile und ergänzen diese mit ;DSSS wobei das Semikolon nicht vergessen werden darf. Es trennt die einzelnen Werte voneinander. Wenn man hinter die DSSS-Variable weitere Einträge anfügen möchte, muss man wiederum ein Semikolon nutzen:

Path-Varialbe ergänzen

Nun ein klick auf Ok und wir sind fertig!

Jetzt kann man in der Kommandozeile mit dem Befehl dsss von jedem beliebigen Ordner aus die Buildtools starten (achtet drauf, dass ihr nach dem Ändern der Varialben ein neues Kommandozeilenfenster öffnet, damit es mit den aktualisieren Varialben arbeitet - Windows XP Nutzer müssen u.U. einen Neustart machen!):

dsss per CMD starten

Konfiguration

Nachdem man DSSS entpackt und das bin-Verzeichnis dem System bekannt gemacht hat, sind die Tools bereit.
Allerdings enthält das Paket nur das Buildtool, welches noch auf einen Compiler, Linker und eine (oder mehrere) Bibliotheken angewiesen ist.

Im Artikel über die DMD Compilertools wurde ja über die manuelle Einrichtung des Compilers geschrieben. Jetzt gilt es beide Welten zusammen zu bringen.
DSSS ist dazu jedoch nicht direkt auf eine manuelle Installation der Tools angewiesen - das Tutorial darüber war somit nur der Vollständigkeit wegen geschrieben worden.

DSSS kann auf ein Online-Repository(FIXME Glossar) zurückgreifen, in welchem brauchbare Bestandteile der D-Welt abgelegt sind und von DSSS aus installiert werden.

Für den Zugriff auf das Online-Repository bekommt man mit:

dsss net

Man muss eine Online-Quelle auswählen 1) und bestätigen:

 DSSS Net Befehl

Wie man an der letzten Zeile sieht, braucht der net Befehl einen weiteren Parameter.
Eine Liste aller „zuladbaren“ Pakete erhält man mit:

dsss net list

Will man nun ein Paket aus dem Online-Repository installieren, so nutzt man den Befehl:

dsss net install

In der Liste entdecken wir den Eintrag dmd, also die Digital Mars D Compilertools.
Die Installation erfolgt mittels:

dsss net install dmd

DSSS lädt, entpackt und konfiguriert alles selbstständig; nur etwas Geduld wäre von Vorteil.

Welche Pakete DSSS bereits installiert hat kann man mittels des folgenden Befehls in Erfahrung bringen:

dsss installed

Zum jetzigen Zeitpunkt ist die Liste installierter Pakete noch recht kurz:

DSSS Paketübersicht mittels installed-Befehl

Wir haben nun ein voll funktionstüchtiges Buildtool, welches mittels der DMD Compilertools und Phobos seine Dienste verrichten kann.
Hat man vor den DSSS-Tools die DMD Compiler installiert gehabt, kann man sie nun entfernen (Das löschen der DMD-Systemvariable nicht vergessen um das System schlank zu halten).

Sind die Digital Mars D Compilertools nicht mehr separat installiert 2), so kann man mittels

dmd

Befehl trotzdem darauf zugreifen, weil sich die eben installierten DMD-Tools bzw. die dmd.exe nun im dsss-bin Ordner befindet:

 DMD Aufruf

Wie in der zweiten Zeile des Screenshots in diesem weiß markiert sieht man, welche Versionsnummer die DMD Compilertools aus dem Online-Repository besitzen: Nicht gerade die aktuellste!

DMD in DSSS aktualisieren

Leider gibt es keine mir bekannte Möglichkeit die DMD Compilertools automatisch zu aktualisieren, solange sie nicht im Online-Repository aktualisiert sind.
Doch es gibt eine manuelle Methode die DMD Compilertools zu aktualisieren:

Um die DMD Compilertools in DSSS zu aktualisieren benötigt es nicht viel.
Im Grunde besteht das manuelle Aktualisieren aus diesen 5 Schritten:

  1. Runterladen der aktuellen DMD Compilertool-Version
  2. Entpacken der DMD Compilertools in einen neuen Ordner
  3. Sichern der sc.ini Datei im DSSS-bin-Ordner
  4. Verschieben der verschiedenen Ordner der DMD Compilertools in das DSSS-Verzeichnis, wobei man alle dort vorhandenen Dateien der alten DMD Compilertools überschreibt.
  5. Die neue sc.ini Datei im DSSS-bin-Ordner mit der in Schritt 3 gesicherten Version überschreiben.

Und fertig!

Hier nochmal ausführlich:

  1. Die aktuelle Version der DMD Compilertools 3) für Windows von der DMD Downloadseite runterladen
  2. Den gesamten Inhalt des DMD Compilertools-Pakets in einen neuen Ordner entpacken und am besten den DSSS Ordner in unmittelbarer Drag&Drop Nähe haben.
  3. Nun navigiert man nach dsss-Installationsordnerbin und sucht die sc.ini Datei, welche man dann sichert (kopie anlegen, oder in ein Archiv packen)
  4. Nun kopiert man aus dem DMD-Ordner die kompletten Ordner html, man, samples und src in den DSSS-Ordner und überschreibt / ersetzt die alten Dateien. Als nächstes wechselt ihr nach DMD-Ordnerwindows und kopiert die Ordner bin und lib in den DSSS-Ordner, wobei ihr wieder alles überschreibt / ersetzt.
  5. Zu guter Letzt wechselt man zu DSSS-Ordnerbin und ersetzt die sc.ini Datei mit der vorhin gesicherten.

Wenn man nun per dmd-Befehl aus der Kommandozeile die DMD Compilertools aufruft sieht man, dass die neue Version ausgeführt wird.
Die sc.ini Datei beinhaltet die Ordnerstruktur der DMD Compilertools, also die relativen Pfade zur Standardbibliothek und dem Linker. Da DMD eine etwas andere Ordnerstruktur hat als DSSS, kann man die sc.ini entweder per Hand anpassen, oder einfach mit der von DSSS erstellten überschreiben.

Anwendungsbeispiele

Um mit den Buildtools nun zu arbeiten, nehmen wir wieder das Hallo Welt! Programm hier

module HalloWelt;

import std.stdio;

void main(){
	writefln("Hallo Welt!\n");
}

Den Quellcode kopieren wir in eine leere Textdatei und speichern sie mit der Dateiendung *d* am Besten im utf-8 Format ab, z.B. halloWelt.d.

Nun brauchen wir, anders als beim Arbeiten mit dem reinen DMD Compiler eine weitere Datei, die dsss.conf heißt (immer!) und auch eine reine Textdatei im utf-8 Zeichenformat ist. Diese speichern wir in den gleichen Ordner wie unsere HalloWelt.d Quellcodedatei

In diese Datei schreiben wir:

[HalloWelt.d]

Das war es auch schon! Für den Anfang brauchen wir nicht mehr.

Nun stoßen wir den build-Vorgang an, indem wir den Befehl dsss build aus dem Verzeichnis, in dem unsere HalloWelt.de, sowie unsere dsss.conf Datei liegen, in der Kommandozeile ausführen:

HalloWelt.d Datei mittels dsss build Befehl compilieren

Erscheint nun keine weitere Nachricht, außer einer weiteren Promt-Zeile ist alles glatt durchgelaufen.

Nun können wir die neu erstellte HalloWelt.exe Datei wie gewohnt 4) ausführen.

Der Aufwand die Buildtools zu installieren, zu konfigurieren und eine dsss.conf Datei anzulegen mag zu diesem Zeitpunkt etwas übertrieben erscheinen, doch spätestens wenn das eigene Programm sich über mehrere Quelltextdateien erstreckt, wird man die Tools zu schätzen wissen. Dazu später mehr…

dsss.conf Datei im Deteil

FIXME Inhalt Inhalt Inhalt

Interessante Quellen

FIXME Quellen eintragen

1) ich bevorzuge die 1, welche ich als deutlich schneller empfinde
2) oder die DMD-Systemvariable ist ganz zum Schluss in der Path-Systemvariable eingetragen - Windows durchläuft die Pathvariable von links nach rechts und stoppt beim ersten Fund
3) momentan wird offiziell nur die DMD 1.X Version von DSSS unterstützt. Es soll aber Mittel und Wege geben auch die Version 2.X damit zu nutzen
4) über Kommandozeile
beginner/tools/dsss.txt · Zuletzt geändert: 2009/05/04 11:48 von 3-s-e
Nach oben
CC Attribution-Noncommercial-Share Alike 3.0 Unported chimeric.de = chi`s home Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0