Laraus V3 RC1 - Frage zu "+=" und "-="

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
PascalDragon
Beiträge: 834
Registriert: Mi 3. Jun 2020, 07:18
OS, Lazarus, FPC: L 2.0.8, FPC Trunk, OS Win/Linux
CPU-Target: Aarch64 bis Z80 ;)
Wohnort: München

Re: Laraus V3 RC1 - Frage zu "+=" und "-="

Beitrag von PascalDragon »

MmVisual hat geschrieben:
Do 14. Sep 2023, 19:44
Ganz einfach: Ich mag die schreibweise. Viele andere mögen diese auch, sogar welche aus dem FPC Team mögen diese Schreibweise, sonst wäre es ja nicht in das FPC mit rein gekommen.
Dieses Feature stammt noch aus einer Zeit, als wir weniger streng mit der Inklusion neuer Funktionalität waren. Heutzutage sind wir uns im Team einig, dass dieses Feature nicht mehr inkludiert würde. Im Compilercode ist seine Nutzung zum Beispiel verboten.
MmVisual hat geschrieben:
Do 14. Sep 2023, 20:20
Niemand wird dazu gezwungen ein "+=" zu nutzen, wer das nicht mag kann nach wie vor die alte Schreibweise nutzen.
Aber jeder, der keinen Code liest, wird gezwungen diese Syntax zu verstehen. Das ist das Problem am Argument „aber man muss es ja nicht nutzen”, vor allem wen man an Projekte denkt, die ihren Code auch für andere bereitstellen.
Warf hat geschrieben:
Do 14. Sep 2023, 20:47
Und das funktioniert natürlich genauso mit r/w Properties wie es mit Variablen funktioniert. Semantisch gibt es also keinen Grund warum das nicht funktionieren sollte. Es ist vermutlich einfach nur eine Technische Limitierung durch die implementation des FPC.
Nein, es ist keine technische Limitierung. Der Compiler könnte das ohne Probleme umsetzen (und hat es früher ja auch!). Es ist eine absichtliche Designentscheidung, da eine Property sowohl im Setter, als auch im Getter Seiteneffekte haben kann und der Nutzer dies eventuell nicht im Blick hat. Ich glaube es gab damals auch eine Diskussion darüber, aber da die Entscheidung dies zu verbieten schon so lange her ist, müsste ich erst auf die Suche gehen...
MmVisual hat geschrieben:
Do 14. Sep 2023, 21:52
Anderseits:
Bei einem i += 5; sollte der FPC auch so klug sein und den optimierten Assembler Befehl einseztzen und kein Read-Modify-Write.
Als Programmschreiber würde ich zumindest davon ausgehen, dass solche Optimierungen der Compiler kann.
Der Compiler macht das unabhängig von der Verwendung der C-Operatoren (also sowohl i += 5 und i := i + 5) bei den entsprechenden Optimierungseinstellungen.
Warf hat geschrieben:
Do 14. Sep 2023, 22:29
Was ein sehr interessanter sonderfall zu sein scheint, den ich sehr Begrüße, da ich Insert sehr hässlich finde, sodass einfach + zu benutzen, under der Compiler weis das es einfach nur ein Insert ganz am ende ist, und damit sehr guten Code erzeugen kann, ist einfach genial.
Das ist eine Optimierung, die ich genau deswegen hinzugefügt hatte... :mrgreen:
Mathias hat geschrieben:
Fr 15. Sep 2023, 15:33
Sind das nicht alles Sachen, die momentan erst in der Trunc von FPC unterstützt werden ?
Nein, FPC 3.2.0.
FPC Compiler Entwickler

Antworten