Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Änderung am Befehl NULL ?
#11
Zitat:sowie den Orginal Null Token in "StrToAdr" umbenannt.

Ich glaube das war nicht so gut, denn jetzt werden alle "neuen" Sourcen die Null verwendet haben (NTUI z.B) ebenso ersetzt, und das wäre absolut falsch !
Zitieren
#12
Nein werden sie normalerweise nicht da die Tokensierung erst beim/nach dem Laden des ASCII Sourcecodes normalerweise .ab3 Format als auch bei .ab2 Format vorgenommen wird. Dadurch das NULL als Befehls vorhanden ist bekommt es die neue TokenID für Lib 107 Funktion 20 anstatt die alte für Funktion 1 der BlitzLib deswegen musste ich ja auch den Compiler abändern so das er nur die neue TokenID ersetzt.

Damit das ganze funktioniert muss ein neuer Befehls-Index erzeugt werden was bei einer Neuinstallation automatisch passiert. Beim Überkopieren der geänderten Dateien muss man das in PEd übers Menü aktivieren. Dies gilt auch für AIDE da muss man die alten Indexdateien die der AB3Scanner anlegt löschen so das sie beim nächsten Start neu angelegt werden.

Die automatische Konvertierung von NULL nach StrToAdr kommt nur mit Sourcecode vor die tokenisiert gespeichert wurden also alle ältere die im .bb(2) Format und bei diesen wurde NULL("string") und nicht NULL als 0 benutzt zu 99% Wink
Ich denke daher das dies die Lösung mit der höchst möglichen Kompatibilität des Problems ist, oder ?

Also ich kann mit AIDE ohne Probleme mit der dieser neuen Version aus PED heraus compilieren.
Zitieren
#13
Muß ich ausprobieren, den Befehlsindex hatte ich nicht aktualisiert.....

Ps: Ok, funktioniert, ich hatte aber die muisourcen schon nach .ab3 convertiert.
Zitieren
#14
Das hatte ich aber extra in das Commitlog und in Attention_Important.txt geschreiben Wink

Code:
BiltzLibs/Userlibs/ElmorSysLib
- copied Null function to function ID 20 of the BlitzLib
- renamed old Null function to StrToAdr to make it work again
new obj file
new DefLibs file

Compiler
- changed TokenID to overwrite form old Null to new Null Token to make StrToAdr
working
new exe

Update the corresponding Docs and the tokeninfo files.

A update of the Instruction index is needed if you only copy over the updated
files!

Zitat:ich hatte aber die muisourcen schon nach .ab3 convertiert.
Beim Testen hattest du aber noch den alten Befehlsindex und TokenHashmap und der kannte nur NULL mit der alten TokenID und die wird ja jetzt nicht mehr vom Compiler überschreiben.
Da kann ich dir die Handarbeit fürs konvertieren nicht abnehmen damit das in Zukunft noch compiliert Wink
Zitieren
#15
Ich habe heute ein SVN update gemacht und jetzt kompiliert alles mit NULL nicht mehr:

Code:
AmiBlitz3 >>>
/AmiBlitz3_Beta -s "Work:Sourcecodes/Amiblitz3/Sourcecodes/AIDE/AIDE.ab3" -v 2 -e "/AIDE/AIDE"
Compiling "Work:Sourcecodes/Amiblitz3/Sourcecodes/AIDE/AIDE.ab3"...
Pass 0...
Include "Work:Sourcecodes/Amiblitz3/Sourcecodes/Includes/ab3support.include.ab3"...
Compiler Error #1 <Work:Sourcecodes/Amiblitz3/Sourcecodes/Includes/ab3support.include.ab3@61>
  Calls with a return value must be put in brackets, or\nwrong number of parameters.
  _AB3SupportBase = Null
Compiler Error #2 <Work:Sourcecodes/Amiblitz3/Sourcecodes/Includes/ab3support.include.ab3@83>
  Calls with a return value must be put in brackets, or\nwrong number of parameters.
  _AB3SupportBase = Null
Include "Work:Sourcecodes/Amiblitz3/Sourcecodes/Includes/error.include.ab3"...
Include "Work:Sourcecodes/Amiblitz3/Sourcecodes/Includes/ntui.include.ab3"...
Include "Work:Sourcecodes/Amiblitz3/Sourcecodes/Includes/NTUI/main.ab3"...
Include "Work:Sourcecodes/Amiblitz3/Sourcecodes/Includes/NTUI/definitions.ab3"...
Include "Work:Sourcecodes/Amiblitz3/Sourcecodes/Includes/useful.include.ab3"...
Include "Work:Sourcecodes/Amiblitz3/Sourcecodes/Includes/strptr.include.ab3"...
Compiler Error #3 <Work:Sourcecodes/Amiblitz3/Sourcecodes/Includes/strptr.include.ab3@251>
  Calls with a return value must be put in brackets, or\nwrong number of parameters.
  strA=Null
Compiler Error #4 <Work:Sourcecodes/Amiblitz3/Sourcecodes/Includes/strptr.include.ab3@252>
  Calls with a return value must be put in brackets, or\nwrong number of parameters.
  strB=Null Then Function Return 0 : Else Function Return -1
Compiler Error #5 <Work:Sourcecodes/Amiblitz3/Sourcecodes/Includes/strptr.include.ab3@253>
  Internal Optimizer 2 stack error! Please report as bug!
  strB=Null Then Function Return 0 : Else Function Return -1
Zitieren
#16
StrToAdr hat zwei Unschönheiten:

1. Im Englischen schreibt man "Address" mit 2 d, also "StrToAddr"
2. Die Beschreibung passt nicht ganz. Es konvertiert keinen String zu einer Adresse, sondern holt sich die Adresse eines Strings. Um genauer zu sein, es kopiert den String und setzt ein 0 Byte an das Ende, und gibt dann die Adresse zurück. Der Grund dafür ist dass BlitzBasic 1 keine 0-terminierten Strings hatte, für OS funktionen aber solche gebraucht werden. Deshalb heist die Funktion überhaupt auch (missverständlicherweise) "Null". Besser wäre sowas wie "GetStrAddr" oder "ToCStr", aber seit man auch "&" schreiben kann, z.B. "&myString$", ist der Befehl nicht mehr notwendig.
Zitieren
#17
Also alles wieder rückgängig machen und & verwenden....

Trotzdem finde ich es nicht die feine Art Befehle zu ändern und das nicht zu dokumentieren, sei es in der Onlinehilfe noch in der Doku zum Befehl...
Zitieren
#18
[quote="Der Wanderer"]Ich habe heute ein SVN update gemacht und jetzt kompiliert alles mit NULL nicht mehr:[quote]

Wer lesen kann ist klar im Vorteil sie commitlog:
Code:
A update of the Instruction index is needed if you only copy over the updated
files!

"Damit das ganze funktioniert muss ein neuer Befehls-Index erzeugt werden was bei einer Neuinstallation automatisch passiert. Beim Überkopieren der geänderten Dateien muss man das in PEd übers Menü aktivieren. Dies gilt auch für AIDE da muss man die alten Indexdateien die der AB3Scanner anlegt löschen so das sie beim nächsten Start neu angelegt werden."
Zitieren
#19
Der Wanderer schrieb:StrToAdr hat zwei Unschönheiten:
Ich kann damit leben wenn es dir nicht gefällt kannst du es ja anpassen Big Grin
Zitieren
#20
tomsmart1 schrieb:
Der Wanderer schrieb:StrToAdr hat zwei Unschönheiten:
Ich kann damit leben wenn es dir nicht gefällt kannst du es ja anpassen Big Grin

Der Wanderer hat Recht, die Namensgebung ist irreführend... Ich tendiere auch zu GetStrAddr...
Wenn du also Lust und Muße hast, könntest du das nochmal Ändern und dokumentieren, weil kein Source wird in der kurzen zeit die Änderungen am Befehl umgesetzt haben.
Außer evtl. meine Muisource, aber der ist nicht wichtig und ist auch schnell geändert...
Zitieren


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 3 Gast/Gäste