AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Fehlende Compiler-Warnungen?

Ein Thema von himitsu · begonnen am 19. Okt 2020 · letzter Beitrag vom 20. Okt 2020
Antwort Antwort
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.976 Beiträge
 
Delphi 12 Athens
 
#1

AW: Fehlende Compiler-Warnungen?

  Alt 20. Okt 2020, 11:32
Ein echt gutes Feature für den Delphicompiler wäre, wenn man als Debugkonfiguration auch zusätzliche Assertions für eine automatische Typprüfung aktivieren könnte. Der Compiler kennt ja den Typ der Variablen und könnte dementsprechende Prüfungen zur Laufzeit einbauen. Nicht für alles, aber für einen Teil schon...

Ja ja, man wird ja noch träumen dürfen...

In unseren eigenen Quelltexten sind dank Generics aber ohnehin kaum noch Casts drin.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.045 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#2

AW: Fehlende Compiler-Warnungen?

  Alt 20. Okt 2020, 12:37
In unseren eigenen Quelltexten sind dank Generics aber ohnehin kaum noch Casts drin.
Dafür vermutlich zigfach duplizierter Binärcode
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.391 Beiträge
 
Delphi 12 Athens
 
#3

AW: Fehlende Compiler-Warnungen?

  Alt 20. Okt 2020, 14:12
Zu unsinnigen/gefährlichen Hardcasts allerdings sagt der Compiler nix, kann und soll er auch nicht.
Warum sollte er nicht?

Gerade da sollte er zumindestens eine (abschaltbare) Warnung bringen, wäre zumindestens meine Meinung, wenn ich sehe was da so Mancher versucht, siehe anderer Thread.
Wer wirklich absichtlich sowas machen will, der darf ja weiterhin gern über einen untypisierten Pointer gehen, oder schaltet vorübergehend die Warnung ab.

Dafür vermutlich zigfach duplizierter Binärcode
Ach, das bissl fällt nu och nimmer auf.

800 kB: FinalBuilder mit XE kompiliert, wo Eurekalogs ECC an den Parametern rumgepfuscht
3-4 MB im DelphiXE kompiliert (DLLs und Packages muß ich vorher einmal dort kompilieren, um sie "komplett" debuggen zu können und dabei auch Parameter und Variablen sehen zu können
10 MB im 10.4 kompiliert (auch inkl. Debuginfos)
... für über 80 BPL/DLL/EXE ergibt das schon ganz schön Mehrwert
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.045 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#4

AW: Fehlende Compiler-Warnungen?

  Alt 20. Okt 2020, 15:20
Zu unsinnigen/gefährlichen Hardcasts allerdings sagt der Compiler nix, kann und soll er auch nicht.
Warum sollte er nicht?
Hardcasts sind nunmal hardcasts - wenn man die verwendet, dann sollte man schon wissen, was man macht. Dass nun Anfänger ggf Fehler machen und es ihnen die Sprache erlaubt ist dann nunmal so. Dafür gibts Lehrmaterial.

800 kB: FinalBuilder mit XE kompiliert, wo Eurekalogs ECC an den Parametern rumgepfuscht
3-4 MB im DelphiXE kompiliert (DLLs und Packages muß ich vorher einmal dort kompilieren, um sie "komplett" debuggen zu können und dabei auch Parameter und Variablen sehen zu können
10 MB im 10.4 kompiliert (auch inkl. Debuginfos)
... für über 80 BPL/DLL/EXE ergibt das schon ganz schön Mehrwert
Fun fact: der meiste Zuwachs gerade in den letzten Jahren kommt eben genau dadurch: dass auch die RTL/VCL/FMX/Drittanbieter mit Generics durchsetzt sind und somit aufgeblasen werden.
Mach mal ne Button/Edit/ListBox-Anwendung in FireMonkey und schau wieviel des Binärcodes nur von TList kommt.

Spoiler: In der ca 9MB großen Exe, die ich hier mit nem 10.4 herausbekomme, sind über 2.5MB nur Binärcode und RTTI aus diversen TList<T> etc.

Und dazu kommen dann noch so dämliche Benutzungen von Generics wie in TStyledControl.FindStyleResource<T: TFmxObject> - gerade FMX ist durchsetzt von dümmlicher Benutzung von Generics - TStyledPresentationProxy<T: TStyledPresentation, constructor> ist auch so ein Beispiel und es gibt zahlreiche davon.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight

Geändert von Stevie (20. Okt 2020 um 15:32 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:49 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz