Deutsch
SDK-Helfer/ Tools

JRPC neuer Präkompiler für XProfan X4 - JRPC3

 
- Seite 1 -



Jens-Arne
Reumschüssel
Guten Abend zusammen,

ich bin kürzlich über das Problem gestolpert, dass XPSE eine ziemlich große Quelldatei von mir nicht mehr verarbeiten konnte. Variablen wurden plötzlich als nicht definiert gemeldet und andere "erratische" Probleme mehr. Ich könnte mir vorstellen, dass dies daran liegt, dass XPSE Schlüsselworte in Windows-Atoms verwaltet. Da ist irgendwann Schluss (bei irgendwas zwischen 60.000 und 70.000 Stück, wobei man bedenken muss, dass XPSE die Windows-API mit vorhält). Vielleicht ist es aber auch etwas ganz anderes, ich kann ja nicht in den "Maschinenraum" von XPSE schauen.

Jedenfalls blieb mir, da XPSE nicht mehr gepflegt wird, nichts anderes übrig, als das nachzubauen. Das Ergebnis ist JRPC3.

----- Features:

*vernünftige Meldung von Fehlern
*direkte Anzeige des Programmablaufes in XProfEd (sofern der unten erhältliche aufgebohrte XProfEd verwendet wird)
*Umsetzung der alten Profan-Syntax für Operatoren und alte Containerfunktionen
*extrem schnelle native fbPROCs, sofern man FreeBasic installiert hat (kostenlos, siehe Hilfe)
*mit fbPROCs kann zudem Inline-Assembler auch vor XProfan X4 realisiert werden
*extrem schnelle native pbPROCs, sofern man PureBasic installiert hat
*Echtzeitverfolgung von Variableninhalten
*einfache Zeitmessungen im Programmablauf
*Profan-Kompilerdirektiven funktionieren endlich vernünftig (z.B. Verschachtelung)
*eingebettete Variablen funktionieren auch mit Arrays
*die meisten WIN32-API-Funktionen sind bereits vordefiniert mitgeliefert
*API-Aufrufe über @external(...) werden automatisch in @call(...)-Aufrufe umgesetzt
*Einrückungsanalyse zum Finden von vertrackten Verschachtelungsfehlern
*Klammeranalyse zum Finden von vertrackten Klammerfehlern
*ENUMERATE-Funktionalität
*Assert zur Fehlerkontrolle
*es können beliebige DLLs in die XProfan-EXE integriert werden, sodass sie nicht mit ausgeliefert werden müssen (siehe {$WrapDll})
*einfaches Killen von mit JRPC3 gestarteten Programmen (interpretiert, .prc gestartet, .exe gestartet)
*extrem schnell (und daher natürlich nicht in XProfan geschrieben, da eine interpretierte Sprache hierfür naturgemäß viel zu langsam ist)
*beim Start von JRPC3 bereits vorhandene .prc-Dateien können zum Starten und Linken genutzt werden (es wird ein Hinweis angezeigt, dass es sich um ein altes Kompilat handelt)
*der Profan-Compiler kann zur Beschleunigung mit hoher Prozessorpriorität aufgerufen werden
*eingebauter Update-Checker mit Download, falls es ein Update gibt (Hilfe --> online nach Updates suchen)
*64- oder 32-bit-Version verfügbar (einfach JRPC3_64.exe oder JRPC_32.exe als Interpreter in XProfEd hinterlegen [Optionen --> Allgemeine Einstellungen] und JRPC3 mit F7 starten) - Achtung, die 64-bit-Version erzeugt natürlich keine 64-bit-XProfan-Programme, da XProfan das nicht kann, sondern JRPC3 selbst wird als 64-bit-Programm ausgeführt
*XProfan X4-Syntax verfügbar (möglicherweise noch nicht alles, da ich vermutlich nicht alles davon benutze, aber ich habe mich um Vollständigkeit bemüht - jedenfalls sind z.B. HASH-Arrays und QUADINTs dabei)
*Interpreter, PRCs und EXEs können mit Kommandozeilenparametern ausgeführt werden
*Interpreter, PRCs, EXEs und XPSE können mit Administratorrechten ausgeführt werden
*Prozeduren, die in dem aktuellen Programm zwar enthalten sind, aber nicht verwendet werden, werden aus der umgesetzten Datei entfernt, um die Dateigröße des Kompilats möglichst klein zu halten
*Variablen, die in dem aktuellen Programm zwar enthalten sind, aber nicht verwendet werden, werden aus der umgesetzten Datei entfernt, um die Dateigröße des Kompilats möglichst klein zu halten und den Speicherverbrauch zu optimieren
*nPROCs aus XPSE werden automatisch mit XPE zu einer DLL umgesetzt und die Aufrufe der nPROCs im Programm entsprechend angepasst, sofern XPSE vorhanden ist
*fast alles aus XPSE funktioniert auch in JRPC3 ({$NOERR}, {$(PRE)BATCH}, {$PUSHKEYWORD}, Interpreter, Runtime und Compiler festlegen, Shorties, ...)
*XProfEd_JR mit Quelltext-AutoComplete
*XProfEd_JR mit Quelltext-Memory-Funktion (Markierungen, zu denen zurückgesprungen werden kann)

Einschränkungen:
-kein XPSE-Inline-Assembler, wohl aber XProfan-Inline-Assembler (darin allerdings keine Prüfungen auf Korrektheit des Codes)
-ABER: man kann XPSE aus JRPC3 heraus aufrufen, sodass diese Funktionalität weiterhin verfügbar ist, sofern man XPSE besitzt (neuer Shorty: {$x})
-Variablen, die in einer Prozedur nicht deklariert sind, sondern "aus der aufrufenden Prozedur übernommen werden", sind standardmäßig nicht zugelassen (XProfan erlaubt das, aber so etwas ist genauso tödlich wie GOTO-Anweisungen). Bitte alle zu nutzenden Inputs als Parameter übergeben, und wenn etwas aus dem aufrufenden Programmteil verändert werden muss, beim Aufruf als Parameter z.B. @addr(x&) verwenden und in der Prozedur parameters x# und LONG x#,0=y& nutzen.
Wenn man aber unbedingt "vererbte" Variablen nutzen möchte, kann man dies mit der Kompilerdirektive {$Declare...} tun.

*als Hommage an XPSE lautet die Endung der Ausgabedatei ".enh3"

Eine genauere Erläuterung der einzelnen Features ist der chm-Hilfedatei zu entnehmen, die im Programm unter Hilfe --> Hilfedatei anzeigen oder mit F1 verfügbar ist.

----- /Features

Herunterladen und installieren:
JRPC3 kann unten heruntergeladen werden (setup_jrpc3.exe oder als ZIP-Datei).
Als Installationsverzeichnis bitte das XProfan-Stammverzeichnis angeben, also dasjenige, in dem die Dateien PROFAN.EXE, PROFCOMP.EXE, PRFRUN32.EXE etc. liegen. Alternativ kann die ZIP-Datei heruntergeladen und deren Inhalt manuell ins XProfan-Stammverzeichnis kopiert werden.

Einrichtung:
JRPC3_64.exe oder JRPC_32.exe als Interpreter in XProfEd hinterlegen [Optionen --> Allgemeine Einstellungen] und JRPC3 mit F7 starten.

Alle Befehle sind mit dem Befehl "h" wie "Hilfe" abrufbar und sollten selbsterklärend sein.

Für viele erweitere Features, die XProfEd betreffen, wie z.B. jenes, die Zeile, in der ein Fehler auftrat, direkt in XProfEd anzeigen zu können, ist der mitinstallierte XProfEd_JR erforderlich. Dafür muss man also XProfEd_JR.exe statt XProfEd.exe als Editor benutzen. Als "goody" gibt es dazu, dass beim Auf- und Zufalten von Programmen ein Fortschrittsanzeiger integriert ist (das kann bei großen Programmen ja bekanntlich ein bisschen dauern).

Es mag sein, dass noch nicht alles perfekt funktioniert. Ich bitte hierfür um Nachsicht. Meine  Programme lassen sich umsetzen, aber das muss noch lange nicht heißen, dass dies mit Programmen anderer Autoren, die jeder so ihre Eigenheiten haben, auch funktioniert.

Fehlermeldungen und Verbesserungsvorschläge gerne an jreumsc@web.de oder hier im Forum.

Beste Grüße, Jens-Arne

2.584 kB
Bezeichnung:JRPC3
Version:10.29
Kurzbeschreibung: JRPC3-Installer
Hochgeladen:15.02.2021
Ladeanzahl363
Herunterladen
1.699 kB
Bezeichnung:XProfEd_JR
Version:5.2
Kurzbeschreibung: Alte Version ohne AutoComplete zur Sicherheit
Hochgeladen:15.02.2021
Ladeanzahl224
Herunterladen
3.777 kB
Bezeichnung:JRPC3
Version:10.29
Kurzbeschreibung: ZIP-Datei statt Installer
Hochgeladen:02.04.2021
Ladeanzahl291
Herunterladen
 
XProfan X4 * Prf2Cpp * XPSE * JRPC3 * Win11 Pro 64bit * PC i7-7700K@4,2GHz, 32 GB RAM
PM: jreumsc@web.de
16.02.2021  
 



 
- Seite 13 -


« Dieser Beitrag wurde als Lösung gekennzeichnet. »

- Seite 15 -



Jens-Arne
Reumschüssel
Es gibt eine neue Version, die anders mit dem internen Messagehandling umgeht. Bitte probier die mal aus. Vielleicht ist das Problem damit behoben.
 
XProfan X4
XProfan X4 * Prf2Cpp * XPSE * JRPC3 * Win11 Pro 64bit * PC i7-7700K@4,2GHz, 32 GB RAM
PM: jreumsc@web.de
24.09.2022  
 




Jens-Arne
Reumschüssel
XProfEd_JR kann jetzt Quelltext-AutoComplete!
Er ist in der aktuellen Version von JRPC3 enthalten.

Ich habe es nicht hinbekommen, einen Scintilla-Lexer zu schreiben, der AutoComplete könnte. Aber die Scintilla-API zusammen mit der Windows-API und einem LowLevelKeyboardHook haben es mir ermöglicht, trotzdem eine Version von XProfEd_JR zu entwickeln, die AutoComplete kann.

Möglicherweise schlägt der eine oder andere Virenscanner bei der Installation wegen des LLKeyboardHooks Alarm (der Windows-eigene Scanner tut es bei mir aber nicht), da diese Funktion essentiell für sog. Keylogger ist. Selbstverständlich loggt XProfEd_JR keine Tastatureingaben mit, sondern diese Funktion ist dazu nötig herauszufinden, wann in der AutoComplete-Vorgabebox Pfeil-hoch, Pfeil-runter etc. gedrückt wird. Diese Eingabe muss dann abgefangen werden, damit Scintilla nicht gleichzeitig im Quelltext marschiert.

Eine kleine Hilfe zu AutoComplete ist im Menü "Optionen" von XProfEd_JR ganz unten zu finden. In der aktuellen Version sind Elementvariablen von Strukturvariablen entgegen der Hilfe noch nicht enthalten.

Diese neue Version benötigt eine DLL von mir, die die schnell zu erledigenden Sachen (Subclassing, LLKeyboardHook, schnelles Filtern der abertausenden möglichen AutoComplete-Vorgaben) abarbeitet (XProfEd_JR.dll); diese wird daher mitinstalliert.

Oben im Downloadbereich dieses Threads ist auch noch der alte XProfEd_JR verfügbar, damit man ihn zur Sicherheit wieder installieren kann, wenn mit dem AutoComplete noch irgendetwas schieflaufen sollte. Wie immer bin ich für Testberichte sehr dankbar.

Beste Grüße, Jens-Arne
 
XProfan X4 * Prf2Cpp * XPSE * JRPC3 * Win11 Pro 64bit * PC i7-7700K@4,2GHz, 32 GB RAM
PM: jreumsc@web.de
25.07.2022  
 




Jens-Arne
Reumschüssel
Ach so, fast hätte ich es vergessen:

AutoComplete muss vor der ersten Benutzung im Menü "Optionen" aktiviert werden, sonst tut sich da nichts. Der Haken vor der Menüzeile "AutoComplete" muss gesetzt sein. Danach merkt sich XProfEd_JR diese Einstellung für den nächsten Start.
 
XProfan X4 * Prf2Cpp * XPSE * JRPC3 * Win11 Pro 64bit * PC i7-7700K@4,2GHz, 32 GB RAM
PM: jreumsc@web.de
25.07.2022  
 




Jens-Arne
Reumschüssel
In der neusten Version kann AutoComplete nun auch Bereichsvariablen mit Struktur, also die "Subvariablen" nach dem Punkt. Auch "with" funktioniert dabei.

Bei globalen Bereichsvariablen mit Struktur wird allerdings aus Performancegründen immer die im gesamten Code zuletzt zugewiesene Struktur benutzt. In der Regel wird man aber für verschiedene Strukturen auch unterschiedliche Bereichsvariablen nutzen und letzteren nicht mehrfach verschiedene Strukturen zuweisen, daher dürfte das kein großes Problem sein. Bei lokalen Bereichsvariablen gilt diese Einschränkung nicht.

Beste Grüße, Jens-Arne
 
XProfan X4 * Prf2Cpp * XPSE * JRPC3 * Win11 Pro 64bit * PC i7-7700K@4,2GHz, 32 GB RAM
PM: jreumsc@web.de
29.07.2022  
 




Jens-Arne
Reumschüssel
Wer übrigens nur den Editor ohne JRPC3 installieren möchte, der kann ganz oben die ZIP-Datei von JRPC3 herunterladen. Daraus müssen dann nur folgende Dateien in das XProfan-Stammverzeichnis kopiert werden:
- XProfEd_JR.exe (statt XProfEd.exe benutzen)
- XProfEd_JR.dll
- JRPC3.dlldat (wenn man API-Funktionsvorgaben haben möchte)
- JRPC3.hd (wenn man API-Konstanten haben möchte)

Wenn man nicht gleichzeitig JRPC3 verwenden möchte, empfiehlt es sich, die beiden letzten Dateien *nicht* zu installieren. Denn dann werden Headerdefinitionen (z.B. ~getobject) geliefert, die XProfan von Hause aus nicht kennt. Dann ist es besser, die entsprechenden Headerdateien im Code einzubinden (z.B. windows.ph). Die darin enthaltenen Definitionen kennt die AutoComplete-Funktion dann auch (ggf. F5 drücken, wenn eine Headerdatei neu eingebaut wurde - damit werden globale Vorgaben aktualisiert).

Ich habe im Vergleich zum letzten Post übrigens noch etwas an der Unterstützung der AutoComplete-Funktion für fbProcs gearbeitet (keine neue Versionsnummer, aber trotzdem eine neue Version mit neuer Build-Nummer). Lokale Veriablen der fbProc und mit SharedInFbProcs gepushte Variablen sind nun verfügbar.
 
XProfan X4 * Prf2Cpp * XPSE * JRPC3 * Win11 Pro 64bit * PC i7-7700K@4,2GHz, 32 GB RAM
PM: jreumsc@web.de
29.07.2022  
 




Jens-Arne
Reumschüssel
Nun werden auch Klassendefinitionen bei AutoComplete berücksichtigt.
 
XProfan X4
XProfan X4 * Prf2Cpp * XPSE * JRPC3 * Win11 Pro 64bit * PC i7-7700K@4,2GHz, 32 GB RAM
PM: jreumsc@web.de
30.07.2022  
 




Jens-Arne
Reumschüssel
Guten Abend liebe Gemeinde,

es gab bislang mit dem XProfEd_JR ein mysteriöses Problem, bei dem es völlig willkürlich und selten zu "Aufhängern" kam, bei dem es keinen Absturz gab, aber trotzdem keine Eingaben mehr möglich waren und, viel schlimmer, auch kein Speichern des Quellcodes mehr ging. Ich habe das Problem eingegrenzt und zu 90% sogar behoben. In der neusten Version gibt es deswegen aber eine Meldung, wenn so eine "Deadlock-Situation" dennoch wieder auftreten sollte. Außerdem wird diese Situation behoben, sodass man speichern und eigentlich auch normal weiterarbeiten kann. Wenn so etwas auftritt, schickt mir bitte einen Screenshot der Meldung.

Nun ist es so, dass ich zwar sehe, dass das Programm weiterhin heruntergeladen wird, aber Rückmeldungen bekomme ich überhaupt keine, insbesondere nicht zu Fehlern.

Ich persönlich habe mir seit gefühlt 100 Jahren einen XProfEd gewünscht, der AutoComplete kann. Nun gibt es das, aber ich habe den Eindruck, dass es sonst keinen interessiert. Das ist natürlich völlig ok. Aber dann muss ich das hier eigentlich auch nicht weiter veröffentlichen und mich vor der Gemeinde um neue Versionen bemühen, die die unvermeidlichen Fehler ausbügeln. Die Motivation dazu würde erheblich steigen, wenn ich wenigstens ab und zu einmal ein Feedback erhalten würde. Damit meine ich keine "Lobhudeleien", sondern kurze Hinweise auf etwas, das noch nicht richtig klappt. Das gilt auch für JRPC3. Wer weiß, vielleicht wird das nur noch heruntergeladen, um es notfalls zu haben, ohne es aktuell einzusetzen? Ich finde es jedenfalls schon eigenartig, dass sich niemand mehr zu Wort meldet, wenn ich in neuen Versionen etwas verbastele, sodass ich das alles selbst herausfinden muss und hoffentlich auch tue, ohne etwas zu übersehen.

Das kommt natürlich alles viel zu spät. Vor 10 Jahren hätte das ganz anders ausgesehen. Aber es gibt noch Profaner, und zwar mehr, als man aus den Beiträgen in den Foren ableiten würde.

Es existiert aus der ganzen jüngsten Arbeit z.B. einen Spinoff. Ich könnte Code zur Verfügung stellen, der die nun in XProfEd_JR integrierten Close-Buttons auf TabControls darstellt (mit selbst gewählten Icons), und zwar sogar in reinem XProfan ohne DLL. Aber wenn man das Gefühl hat, dass es ohnehin keinen so richtig interessiert, lässt man es am Ende eben.

Das sind im Moment so meine Gedanken zu diesem Projekt. Ich würde mich riesig freuen, wenn ich mit meinen Befürchtungen falsch läge.

Beste Grüße, Jens-Arne
 
XProfan X4
XProfan X4 * Prf2Cpp * XPSE * JRPC3 * Win11 Pro 64bit * PC i7-7700K@4,2GHz, 32 GB RAM
PM: jreumsc@web.de
11.08.2022  
 




p.specht


Wer weiß, vielleicht wird das nur noch heruntergeladen, um es notfalls zu haben, ohne es aktuell einzusetzen?

... ist bei mir tatsächlich momentan der Fall: Long-Covid, die angespannte Situation um die Ukraine bzw. die Vorbereitung auf den kalten Winter, eine alte Mutter und ihre ständigen Arzttermine etc. setzen derzeit andere Prioritäten. Aber dennoch halte ich deine Arbeit für äußerst wertvoll: Großen Respekt für das von Dir schon Erreichte - und möge Dein Enthusiasmus vielen ein Vorbild sein! Wenn wir wieder neu Tritt fassen, wird JRPC3 die Zukunft von XProfan sein. Bitte weiter so!
 
XProfan 11
Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'...
12.08.2022  
 




RudiB.

Nun ist es so, dass ich zwar sehe, dass das Programm weiterhin heruntergeladen wird, aber Rückmeldungen bekomme ich überhaupt keine, insbesondere nicht zu Fehlern.


...geht mir auch so, scheint wirklich niemanden mehr zu interessieren, was man hier an Projekten postet...... Da verliert man dann schon mal die Lust weiterzumachen.....
 
XProfan X4
Xprofan X4
Rudolf Beske / München

Hardware: NB Intel I9 - 16GByte RAM
12.08.2022  
 




RudiB.
ist übrigens in Paules-PC-Forum nicht viel anders...
 
XProfan X4
Xprofan X4
Rudolf Beske / München

Hardware: NB Intel I9 - 16GByte RAM
12.08.2022  
 




p.specht

Kleines Mißverständnis: Mir fehlt momentan nur die Zeit, nicht das Interesse! Letzte Woche konnte ich nicht einschlafen, und habe mir daher Gedanken gemacht, wie man das Grundgerüst einer Ulam-Spirale programmieren könnte, die aber nur ungerade Zahlen enthält. Gar nicht einfach, die Koordinaten per Formel herauszubekommen! Oder hat da jemand etwas Fertiges?
 
XProfan 11
Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'...
12.08.2022  
 




Manfred
Barei
Hallo, bei mir ebenso, es fehlt im moment die Zeit und auch die Motivation die Projekte weiter zu Programmieren. Bin zur zeit sehr abgeschlagen und lustlos, liegt aber auch mit an der Arbeit zur zeit sehr viele Überstunden.
Aber es werden auch wieder andere Zeiten kommen hoffe ich doch und dan geht es mit viel elan weiter.
 
XProfan X2
Zu wenig Wissen ist gefärlich, zu viel auch.(XProfan X4) | Win 10 Pro 64 | Win7 Ultimate 32/64 | AMD FX-8320, 16GB, GeForce GT 630 |
12.08.2022  
 




Jens-Arne
Reumschüssel
Ok, danke für Eure Rückmeldungen dazu. Ich hoffe, Ihr habt irgendwann (bald) mal wieder Lust, etwas mit XProfan zu veranstalten bzw. zu gestalten.

Hier wie versprochen das TabControl mit "neu"-Tab und "Schließen-X": [...] 

Gruß, Jens-Arne
 
XProfan X4
XProfan X4 * Prf2Cpp * XPSE * JRPC3 * Win11 Pro 64bit * PC i7-7700K@4,2GHz, 32 GB RAM
PM: jreumsc@web.de
18.09.2022  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

63.080 Betrachtungen

Unbenanntvor 0 min.
Jens-Arne Reumschüssel vor 4 Tagen
Manfred Barei25.09.2024
Gast.081529.08.2024
R.Schneider23.08.2024
Mehr...

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie