| |
|
|
- Seite 1 - |
|
Ragnar Rehbein | Hallo David,
den XPSE nutze ich für meine Projekte seit seiner Existenz. Dafür, rückwirkend, vielen Dank. Ich schätze die Möglichkeit leicht Debugversionen zu erstellen. Die enh-Dateien werden eingescheckt um die Versionsstände zu dokumentieren - alles soweit gut. Leider habe ich seit der Xprofan Version 10 aufgehört den XPSE zu aktualisieren. Versuche zu updaten schlugen mit diversen Fehlern fehl. Mein Leidesdruck war auch nicht besonders groß - alle Projekte liefen ja. Inzwischen sind die Möglichkeiten des XPSE immens gewachsen. Konkret habe ich vor, nProc zu nutzen (im Zusammenhang um ein Programm ohne Hilfsprogramme als Dienst laufen zu lassen). Beim Versuch auf die aktuelle XPSE umzustellen, kämpfe ich mit verschiedensten Fehlern. Mit einer 'alten' XPSE ist alles OK: 1. wenn Compileroptinen hinter Include Dateien stehen, werden diese nicht aus der enh-Datei entfernt und führen zu Fehlermeldungen. dabei spielt scheinbar die Größe der Includes eine Rolle. 2. Enthält der Name einer Procedur einen Umlaut, wird dieser Procedurname in der enh-Datei falsch eingefügt. Aus 'proc alles_löschen' wird 'proc ALLES_LöSCHENöSCHEN' 3. Auskommentierte Compileroptionen tauchen teilweise in der enh-Datei auf und führen zu Fehlern 4. Fehler wie z.B. doppelte Funktionsdefinitionen führen zu Fehlern wie z.B. 'Kompiler nicht gefunden' Punkt 1 ist der, der mir am meisten zu schaffen macht. Die anderen Dinge kann ich durch überarbeiten des Codes in den Griff bekommen. Da ich mit Visual Windows arbeite, bekomme ich die Kompileroptionen definitiv nicht an den Anfang des Codes. Ich habe mal versucht aus 10000 Zeile Quelltext etwas kleineres (sinnloses) zu erstellen, um Dir die Möglichkeit zu geben meine Beobachtungen zu überprüfen.
Viele Grüße aus Rostock
Ragnar |
|
|
| |
|
|
|
| |
|
- Seite 1 - |
|
| Guten Morgen!
Ragnar Rehbein (11.02.13)
Konkret habe ich vor, nProc zu nutzen (im Zusammenhang um ein Programm ohne Hilfsprogramme als Dienst laufen zu lassen).
Ich habe den Schalter noerr im Code gesehen und möchte deshalb in diesem Zusammenhang erwähnen, dass der Schalter im Zusammenhang mit nProcs dazu führt, dass die nProcs nicht aufgelöst werden, da die Fehlerprüfung notwendig ist um die nProcs richtig aufzulösen bzw. den Asm zu erzeugen.
Ragnar Rehbein (11.02.13)
1. wenn Compileroptinen hinter Include Dateien stehen, werden diese nicht aus der enh-Datei entfernt und führen zu Fehlermeldungen. dabei spielt scheinbar die Größe der Includes eine Rolle.
Ich muss gestehen eben bemerkt zu haben, einen aktuellen Quelltext von xpse momentan garnicht zur Hand zu haben da er auf einer externen Festplatte liegt die sich zur Zeit in einem anderen Bundesland rumlungert. Den Quelltext einer sehr viel ältern Version habe ich hier zur Hand und darin sammle ich im 2. Durchlauf alle Kompilerschalter bis zum Ende des Codes. Am Wochenende komme ich an meine externe Festplatte und dann schaue ich nochmal genau nach.
Ragnar Rehbein (11.02.13)
2. Enthält der Name einer Procedur einen Umlaut, wird dieser Procedurname in der enh-Datei falsch eingefügt. Aus 'proc alles_löschen' wird 'proc ALLES_LöSCHENöSCHEN'
Für xpse sind Umlaute tatsächlich Sonderzeichen und daher in Bezeichnernamen grundsätzlich unzulässig. Ich habe aber bereits begonnen, diese Umlaute zu ermöglichen und im nächsten Update würden diese auch korrekt funktionieren.
Ragnar Rehbein (11.02.13)
3. Auskommentierte Compileroptionen tauchen teilweise in der enh-Datei auf und führen zu Fehlern
Habe ich mir an die ToDo -Listeangefügt und werde ich mir nochmals genauer anschauen.
Ragnar Rehbein (11.02.13)
4. Fehler wie z.B. doppelte Funktionsdefinitionen führen zu Fehlern wie z.B. 'Kompiler nicht gefunden' Punkt 1 ist der, der mir am meisten zu schaffen macht. Die anderen Dinge kann ich durch überarbeiten des Codes in den Griff bekommen. Da ich mit Visual Windows arbeite, bekomme ich die Kompileroptionen definitiv nicht an den Anfang des Codes.
Ok ich verstehe. Hier sollte dann das Einfügen der Schalter per Include richtig funktionieren was ich mir nochmals genau anschauen werde.
Ragnar Rehbein (11.02.13)
Ich habe mal versucht aus 10000 Zeile Quelltext etwas kleineres (sinnloses) zu erstellen, um Dir die Möglichkeit zu geben meine Beobachtungen zu überprüfen.
Das hat super geklappt bzw. kann ich alle Fehler nachvollziehen, auch wenn ich leider mit meinem Beitrag hier Dir nicht wirklich eine Problemlösung anbieten kann. |
|
|
| |
|
|
|
Ragnar Rehbein | Danke, daß Du Dir das so schnell angesehen hast. Ich habe dann ja im Moment genug Zeit, den Quelltext so lange zu prügeln bis ich ohne den noerr Schalter auskomme. Wird den Programmen sicherlich gut bekommen. Schönen Tag noch.
Ragnar |
|
|
| |
|
|
|
| Und ich werde Dich nochmals explizit (per Mail) anschreiben wenn ich das nächste Update fertig habe. |
|
|
| |
|
|
|
Ragnar Rehbein | Hallo David,
ein Problem habe ich noch gefunden das unschön ist. Aufgrund vieler alter Quelltexte habe ich die profalt.inc von Roland eingebunden. Die Definition der alten Funktionen führt beim XPSE immer zu Fehler 'Doppeldefinitionen'. z.B.: DEF add(2) @!(1) + @!(2) Wenn man das ganze als proc definiert klappt es ohne Fehler. Weiterhin ist mir aufgefallen, daß die Zeilennummern bei Fehlern nicht mehr stimmen. Wenn das Programm auf einen Fehler läuft und diesen mit Zeilennummer ausgibt, stimmt diese nicht mehr mit der enh-datei überein. Im Moment habe ich keine Ahnung woran das liegen könnte.
Ragnar |
|
|
| |
|
|
|
| Das mit den Zeilennummern verwundert mich auch, Du meinst die von XProfan gemeldete Zeilennummer?
Das mit Add & Co. ist einfach zu erklären, die "Philosophie" von XPSE ist in dem Punkt grundsätzlich von der des XProfan abweichend, als dass xpse je nach Version immer für eine bestimmte XProfan-Version gedacht ist bzw. für Quelltext einer bestimmten XProfan-Version.
Hierbei sagt die erste Zahl der Versionsangabe des XPSE aus, für welches XProfan er arbeitet, z.B.:
XProfan 11.2.1.8a.63 Praekompiler [XPSE] Copyright (C) 1998-2010 XProfan.Com, built DE. Arbeitet man also mit XProfan 10 Codes, dann wird es zwangsläufig Probleme geben, wenn man mit dem XPSE für XProfan 11 arbeitet. Das ist insofern "mitgekauft", als dass sonst wiederum andere Dinge garnicht möglich wären, die xpse 11.x mit XProfan 11 ermöglichen kann.
Möchte man also XProfan 10 Codes mit XPSE für XProfan 11 verwenden, so muss man die Codes auf den XProfan 11 Stand bringen, da xpse dies nicht automatisch konvertieren wird was wiederum auch seine "Rolle und Bedeutung" hat.
Vielleicht wäre es aus dieser Sicht sinnvoller, neue Projekte im neuen Stil zu erstellen und ältere Projekte im alten Stil zu belassen, oder, wo es eben nicht geht oder erwünscht ist, alte Projekte auf den aktuellen Stand zu bringen. |
|
|
| |
|
|
|
Ragnar Rehbein | Hallo David,
Deine Begründung kann ich nicht ganz nachvollziehen. Warum ist der Name einer Funktion nicht zulässig wenn er mit Def definiert wird? Mit Proc ist alles OK. 'ADD' gibt es ab XProfan 11 nicht mehr - also ist der Name doch zur freien Verfügung. Das mit den falschen Zeilennummern liegt an der Benutzung von CASE in der enh-Datei. Das gab es früher nicht. Aktuell benutzt erzeugt die XPSE etliche CASE Befehle bei der Quellcodeoptimierung:
declare __cf8&, __cfMode& __cf8&=0 : CASE __cfMode& : __cf8& = 1 proc __cfEOP parameters exitcode& case %pcount=1 : end exitcode& end endproc CLS PRINT PLUS(1,2) WAITINPUT
Obiges Beispiel zeigt Fehler in Zeile 12, obwohl der Fehler in Zeile 9 ist. |
|
|
| |
|
|
|
Ragnar Rehbein | Hallo David,
hatte gerade das Problem mit den neuen Datumsfunktionen. Dank Forum war die Lösung schnell gefunden: {$pushkeyword dt} Sieht für mich wie eine Übergangslösung aus. Wird das in einer neuen Version geändert ?
Gruß Ragnar |
|
|
| |
|
|
|
| Klar, wie geschrieben ist die ist offizielle xpse-Version für XProfan 11 - {$pushkeyword wort,wort,wort,...} ist genau für diesen Zweck da, dass man nachträglich Schlüsselworte registrieren kann. Natürlich kennt der nächste xpse dann die entsprechend neuen Schlüsselworte. Ich selbst habe mich noch nicht so richtig an XProfan 12 herangetraut da es hier und da noch kleine Fehlerchen hatte sodass ich bis heute eigentlich alles mit dem "stabilen" XProfan 11 erzeuge. |
|
|
| |
|
|
|
Ragnar Rehbein | Hallo David,
einmal in der Woche bekomme ich von NOD32 den 'netten' Hinweis, daß ich einen Virus Namens xpse.exe auf dem Rechner habe. Hat Du eine Ahnung was in Deinem Programm NOD zu so einer Meldung veranlasst ? Ist schon seit Jahren so. Ich dachte, daß dies evtl. bei aktuelleren Versionen nicht mehr auftritt. Dadurch ist es im Netzwerk immer schwierig was hin und her zu kopieren. Ich muß den Admin immer überreden NOD mal abzuschalten. Auch das runterladen neuer Versionen gestaltet sich dadurch langwierig.
Gruß Ragnar |
|
|
| |
|
|
|
| Oho, so weit mir jetzt einfällt, bist Du der bisher Einzige, mit diesem Hinweis.
XPSE selbst hat/ nutzt keine APIs, die z.B. ins Netz telefonieren oder ähnliche Aktivitäten verursachen. Vielleicht fällt dem Scanner etwas auf, weil xpse die Namen solcher APIs im Speicher hält, da er ja alle APIs in Calls konvertiert aber direkt als Virus wurde er so weit ich weiß noch nie bezeichnet.
Hier mal eine Analyse von virustotal.com: [...]
Da melden auch 2 von 46 Scannern einen "Möglicherweise"-Fund.
Die XProfan11-Runtime wird auch mit 2 von 44 bemeckert: [...] ich glaube dass man das nie ganz weg bekommt. |
|
|
| |
|
|
| |
|
- Seite 2 - |
|
|
Ragnar Rehbein | Hallo David,
habe aus aktuellem Anlass versucht ein Programm mit: {$Debug kernelout} zu kompilieren.
Leider ohne Erfolg. [18:28:38] Objektcode: TEST.asm(153) : Error A2121: Symbol not defined : __CF0 [18:28:38] Warnung: Fehler im Assembler.
Was wird da für ASM Code erzeugt ? Am Programm kanns nicht liegen, ein einfaches CLS reicht um zu dem Fehler zu kommen.
Gruß Ragnar |
|
|
| |
|
|
|
Ragnar Rehbein | Hallo David,
wollte mal nachfragen, wie es so aussieht. Das ich $Debug kernelout nicht mehr nutzen kann ist etwas lästig. Habe mir erstmal ein Programm geschrieben, das den Quellcode in Debugcode umwandelt. Ist aber sicher nicht im Sinne des Erfinders ?
Gruß Ragnar |
|
|
| |
|
|