![]() |
Aufschrei: Longint soll voraussichtlich 64bit werden
In den Newsgroups hat Allen Bauer (CodeGear) verlauten lassen, dass der Datentyp Longint möglicherweise auf 64Bit wachsen soll. Damit würde der als "sicher 32Bit" geltende Longint, der schon zu 16bit Zeiten 4 Bytes lang war, seine Größe ändern.
|
Re: Aufschrei: Longint soll voraussichtlich 64bit werden
Daran haben sich c Jünfer schon längst gewöhnt, dass Typen wachsen. Besser wären aber Typen, welchen man die länge ansieht und die sich nicht ändern
BTW. Andersrum wäre es schlimmer :mrgreen: |
Re: Aufschrei: Longint soll voraussichtlich 64bit werden
Und wieso nimmt man nicht für 64-Bit Integer int64? Welche einfachere Portierung auf Win64 will man damit erreichen?
|
Re: Aufschrei: Longint soll voraussichtlich 64bit werden
Mir wäre ein FUNKTIONIERENDER uint64 wichtiger...
|
Re: Aufschrei: Longint soll voraussichtlich 64bit werden
Zitat:
Für den 32-Bit Compiler gibt es schon int64, und für einen 64-Bit Compiler müsste integer erweitert werden, da der ja schliesslich als generischer Integer-Typ mit Vorzeichen definiert ist. Zitat:
|
Re: Aufschrei: Longint soll voraussichtlich 64bit werden
Also dass man Integer und Cardinal auf 64-Bit Maschinen als 64-Bit Typen definiert, ist logisch. Die hatten ja schon immer Prozessorwortbreite, wenn ich mich recht entsinne. Aber LongInt? :shock:
Was ist mit Programmen, die sich darauf verlassen, das LongInt 4 Byte lang ist, wie es ja mehr oder weniger "versprochen" war? Die müsste man alle umschreiben. |
Re: Aufschrei: Longint soll voraussichtlich 64bit werden
Ich könnte mir vorstellen, dass man dann dafür einen Compiler-Schalter bzw. eine Option wie bei string (AnsiString <> ShortString) macht...
mfG mirage228 |
Re: Aufschrei: Longint soll voraussichtlich 64bit werden
Tja, die Leute schreiben am lautesten, die nie sizeof(Longint) verwenden :D
|
Re: Aufschrei: Longint soll voraussichtlich 64bit werden
Zitat:
|
Re: Aufschrei: Longint soll voraussichtlich 64bit werden
Mir wäre ein FUNKTIONIERENDER uint64 wichtiger...
Kann ich nur voll zustimmen! mfG Richard |
Re: Aufschrei: Longint soll voraussichtlich 64bit werden
Zitat:
|
Re: Aufschrei: Longint soll voraussichtlich 64bit werden
Ich verstehe die ganze Aufregung nicht.
Behauptungen: 1) Niemand schubst in modernen Anwendung noch Speicherbereiche per Hand durch die Gegend ? 2) Wenn eine Erweiterung auf 64 Bit gemacht wird, wird doch sicherlich die "least significant 32 bit" zuerst im Speicher kommen. Somit würden Zeiger nach wie vor auf den "richtigen" Bereich zeigen. 3) statische Records werden in OO-Anwendungen nicht genutzt. 4) Windows API Aufrufe werden in der Anwendung nicht direkt gemacht, sonder durch die RTL/VCL gekapselt. Diese wird von Codegear sicherlich angepasst. |
Re: Aufschrei: Longint soll voraussichtlich 64bit werden
Boa lebst du in einer Kunstwelt.
|
Re: Aufschrei: Longint soll voraussichtlich 64bit werden
Zitat:
|
Re: Aufschrei: Longint soll voraussichtlich 64bit werden
Zitat:
Zitat:
Zitat:
|
Re: Aufschrei: Longint soll voraussichtlich 64bit werden
Ein einfaches Beispiel ist das Laden eines 3D-Models, zum Beispiel. Da ist zum Beispiel im Dateiformat ein Block für ein Mesh definiert, bei dem am Anfang ein 4-Byte unsigned Integer mit der Anzahl der Dreiecke steht. Wenn man jetzt da mehrere solche Längenangaben per Array und Filestream laden will, kracht es, wenn ein Integer plötzlich 64 Bits und nicht mehr 32 hat.
|
Re: Aufschrei: Longint soll voraussichtlich 64bit werden
Generic weigert sich bestimmt, alles zu lesen was nicht auf .xml endet :-D
|
Re: Aufschrei: Longint soll voraussichtlich 64bit werden
Zitat:
|
Re: Aufschrei: Longint soll voraussichtlich 64bit werden
Gut, dann benutzen wir ab sofort nur noch diese oder? Und für die ganzen "alten" (=gängigen und verbreiteten) schreiben wir schöne Konverter damit wir nicht alles neu modeln müssen, und werfen die Programme weg, die sie nicht verarbeiten können. Prima Lösung find ich!
|
Re: Aufschrei: Longint soll voraussichtlich 64bit werden
Zitat:
btw, ICH weigere mich alles einzulesen, was kein XML ist. Und das meist auch noch in dritter Instanz. Erst wenn es tatsächlich Sinn macht auf die Interop eines offenen nicht-binären Formates zu verzichten, würde ich überhaupt auf die Idee kommen, mir weitere Argumente für non-XML anzuhören... Es gibt viel zu viele beschissene binären Formate auf dieser Kugel. Und bei jeder einzelnen geht einfach sinnlos Zeit drauf um sie entweder nach exzessivem Docs-schmökern zu reimplementieren oder schlimmer: Man muss Reverse-Engineering walten lassen. |
Re: Aufschrei: Longint soll voraussichtlich 64bit werden
Gehen wird mal auf Grundproblem zurück:
Wo sind Probleme zu erwarten wenn (der 64-Bit-Compiler?) longint als 64-Bit Integer definiert. Einfallen würden mir hier: 1, Verwendung von File of <Type> wenn z.B. in einem Record ein longint liegt. Lösung: Umschreibung der Typdefinition des Records 2, Verwendung dieses Typs bei jedlicher Art von Senden von Daten zwischen Anwendungen/übers Netz wenn hier ebenfalls ein Typ mit einem longint vorliegt Lösung: Ebenfalls die Definitionen anpassen. 3, Dynamische Dateierzeugung wenn mittels fester größenangabe geschrieben wurde. Lösung: Anpassung der Load/Save-Routine. Alle Rahmenanpassungen (z.B. Win64-API) sollte von Borland gemacht sein. Ist eigentlich der wParam und lParam ebenfalls angepaßt/auf 64-Bit gehoben worden? Ist dieser Aufwand zu groß (für einen 64-Bit Port)? @jbg: In welcher Newsgroup war der Post? War das der Komplette Post das longint 64-Bit werden wird? |
Re: Aufschrei: Longint soll voraussichtlich 64bit werden
Zitat:
Zitat:
|
Re: Aufschrei: Longint soll voraussichtlich 64bit werden
@jbg: Könntest du mal einen Link auf den Thread posten?
|
Re: Aufschrei: Longint soll voraussichtlich 64bit werden
Das eigentliche Problem ist dabei doch eher philosophischer Natur. Weil anpassen kann man natürlich immer, es bedeutet allerdings gerade in größeren Projekten einen gewissen Aufwand, und eine nicht unerhebliche Quelle für sehr eklige Fehler.
Aber LongInt zu redefinieren ist, als wäre mein Word nun 4 Byte breit, oder nur 2 Byte, dafür aber mein Byte nun 16 Bit. LongInt gehört einfach zu den Datentypen, denen nicht nur Format, sondern auch Größe zugesichert sind, im Gegensatz z.B. zu Integer. Ich schreibe ja gerade dann "LongInt" statt "Integer" irgendwo hin, wenn ich genau weiss, dass die Größe des Typs relevant ist, und ich mich nicht auf den generischen Integer stützen kann. Die bloße Idee das zu ändern ist schon absurd. |
Re: Aufschrei: Longint soll voraussichtlich 64bit werden
|
Re: Aufschrei: Longint soll voraussichtlich 64bit werden
Dann hoffen wir mal, dass es zumindest einstellbar wird. Also ala {$DEFINE COMPILER_64} oder so.
|
Re: Aufschrei: Longint soll voraussichtlich 64bit werden
Sonst schaufeln sie sich ihr eigenes Grab.
|
Re: Aufschrei: Longint soll voraussichtlich 64bit werden
Moin, moin,
Vielleicht gibt es ja dann rückwärts einen int32 Typ. Bin ehdem der Meinung, das Nummerieren der einleuchtendere Weg ist: in16 int32 int 64 int256 int1024 | float32p32 float64p64 Grüße in die Runde ... |
Re: Aufschrei: Longint soll voraussichtlich 64bit werden
Das wäre unabhängig davon besser; das löst aber das Problem von Altcode usw. nicht.
|
Re: Aufschrei: Longint soll voraussichtlich 64bit werden
Damals war der Umstieg von 16 auf 32bit auch nicht einfach. Das wird dieses Mal auch nicht so einfach gehen.
|
Re: Aufschrei: Longint soll voraussichtlich 64bit werden
Man könnte sich es aber einfach machen ;) (zumindest in diesem Bezug). Eine Einführung einer neuen Nomenklatur, die wie mschaefer schrieb wäre durchaus eine Universallösung. Man darf halt nur nicht die alten Namen entfernen, sondern führt diese auf letztem Stand mit. Somit wäre auch dem Benutzer (=wir) sofort klar, ob er einen generischen oder statischen Typ vor sich hat: Ist eine Zahl im Namen, wird es ein statischer sein.
|
Re: Aufschrei: Longint soll voraussichtlich 64bit werden
Weitsichtigkeit wird belohnt. Wenn ihr nun eure Projekte umstellt, denkte bitte an die 128bit Prozessoren ;-)
|
Re: Aufschrei: Longint soll voraussichtlich 64bit werden
Zitat:
Aber es war anscheinend sehr gut ihm sofort Kritik um die Ohren zu wehen. Ich bezweifle, dass sie LongInt jetzt noch hochskalieren können. :-) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:10 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