Skip to content

v1.0.0 Generics

Latest
Compare
Choose a tag to compare
@github-actions github-actions released this 11 May 13:08

DDP v1.0.0: Generics

DDP ist endlich auf Version 1.0.0! Dieser Release wird dominiert von dem neuen Feature Generics, womit generische Funktionen und Datentypen definiert werden können. Für die meisten DDP Programmierer ist das wahrscheinlich an sich nicht sehr Spannend, allerdings ermöglicht es unglaublich viel im Duden, unter anderem eine generische HashTabelle und zahlreiche generische Funktionen um mit Listen zu arbeiten. Ein Beispiel:

Die öffentliche generische Funktion Liste_Spiegeln mit dem Parameter liste vom Typ T Liste, gibt eine T Liste zurück, macht:
	Die T Liste neu ist die Länge von liste Mal der Standardwert von einem T.
	Für jede Zahl i von 1 bis die Länge von liste, speichere liste an der Stelle i in neu an der Stelle (die Länge von liste minus i plus 1).
	Gib neu zurück.
Und kann so benutzt werden:
	"<liste> gespiegelt"
	
Binde "Duden/HashTabelle" ein.

Die Zahl-Text-HashTabelle ziffern ist der Standardwert von einer Zahl-Text-HashTabelle.
Für jede Zahl i von 0 bis 9, Setze den Wert von i in ziffern auf (i als Text).
Der Text t ist ziffern an der Stelle 1. [ "1" ]

Neben Generics gibt es jetzt auch einen neuen Datentyp. Ein Byte ist beim Programmieren einfach universell nötig und wird jetzt auch von DDP unterstützt.
Zudem ist es mit dem neuen Module Duden/Netzwerk jetzt mit TCP und UDP Sockets zu arbeiten:

Binde "Duden/Netzwerk" ein.
Binde "Duden/Fehlerbehandlung" ein.
Binde "Duden/Texte" ein.
Binde "Duden/Ausgabe" ein.

Schreibe ab jetzt alle Fehler.
Der Socket sock ist ein TCP Socket.

Setze sock auf "localhost" 8080.
Lass sock auf maximal 1 Verbindung warten.

Der Socket verbindung ist die nächste Verbindung auf sock.
Schreibe "Verbindung erhalten" auf eine Zeile.

Schließe sock.

Solange es dabei keinen Fehler gab, mache:
    Der Text daten ist der nächste maximal 1024 Bytes lange Text aus verbindung.
    Schreibe daten.
    Wenn daten leer ist, dann:
        Schreibe "Verbindung geschlossen" auf eine Zeile.
        Verlasse die Schleife.
    Sende daten über verbindung.

Schließe verbindung.

Changelog

  • [Fix] Duden/Uri parset nun absolute Uris der Form /pfad?query korrekt
  • [Neu] Duden/Netzwerk stellt Typen und Funktionen für (low-level) TCP und UDP Kommunikation zur Verfügung.
  • [Fix] Konstanten können nun nicht mehr in Zuweisungen oder als Referenzen verwendet werden
  • [Neu] Numerische Datentypen werden in Zuweisungen jetzt automatisch in einander umgewandelt
  • [Neu] Es gibt jetzt den Byte Datentyp, der eine natürliche Zahl im Bereich 0 bis einschließlich 255 darstellt
  • [Neu] Typanpassende Ausdrücke können nun als Referenzen übergeben werden, solange sie nur Typaliase bzw. Typdefinitionen behandeln
  • [Fix] Bug im Kompilierer, bei dem VTables für primitive Typen falsch generiert wurden
  • [Fix] Bug in Duden/Listen -> Elementweise_Quotient_Kommazahl wurde in der generischen Implementation behoben
  • [Breaking] Duden/Sortierung, Duden/HashTabelle und Duden/Listen verwenden nun generische Funktionen und Kombinationen
  • [Neu] Externe generische Funktionen können in C mit generischen Listen und generischen Referenz Parametern arbeiten
  • [Neu] Generische Kombinationen, die Felder beliebigen Typs besitzen können
  • [Neu] Generische Funktionen, die mit Parametern beliebigen Typs arbeiten können
  • [Neu] Die Aliase für Kombinationen sind jetzt optional
  • [Neu] Bei Feldern von Kombinationen kann der explizite Standardwert jetzt weggelassen werden

Update

Wenn du kddp schon installiert hast kannst du ganz einfach mit dem Befehl kddp update auf diese Version updaten.
Mehr dazu hier.

Installation

  • Das entsprechende Archiv herunterladen und entpacken (wenn auf Windows Mingw64 bereits installiert ist, die -no-mingw Version nehmen)
  • Den entstandenen Ordner dorthin verschieben wo er final bleiben soll und eventuell umbenennen (DDP-v1.0.0... -> DDP)
  • Das Programm ddp-setup im entstandenen Ordner ausführen (auf Windows ddp-setup.exe)
  • ddp-setup wird dich durch die Installation führen (wenn du nicht immer 'ja' antworten willst, führe stattdessen ddp-setup --force aus)

Eine ausführlicherere Installations Anleitung gibt es hier.

Beispiel Linux:

wget https://github.com/DDP-Projekt/Kompilierer/releases/latest/download/DDP-v1.0.0-linux-amd64.tar.gz
tar -xzf ./DDP-v1.0.0-linux-amd64.tar.gz
mv ./DDP-v1.0.0-linux-amd64 ~/DDP
cd ~/DDP
./ddp-setup

Nützliche Links