English
SDK-aide/ Tools

JRPC new Precompiler for XProfan X4 - JRPC3

 
- Page 1 -



Jens-Arne
Reumschüssel
good evening together,

i'm recent over the trouble stumbled, that XPSE a quite large Quelldatei of I do not More process could. variables get suddenly as not definiert gemeldet and others "erratische" Problems More. I could me present, that this on it lying, that XPSE Keywords in windows-Atoms manages. there's sometime Schluss (with something between 60.000 and 70.000 Piece, where one deliberating must, that XPSE The windows-API with vorhält). Perhaps is But something integrally other, I can Yes not whom "Maschinenraum" of XPSE look.

anyway stayed me, there XPSE not any more taken care of becomes, nothing other spare, as the nachzubauen. the Result is JRPC3.

----- Features:

*reasonable Message of Fehlern
*direct display the Programmablaufes in XProfEd (sofern the under erhältliche aufgebohrte XProfEd is used)
*Umsetzung the middle-aged Profan-Syntax for Operators and old Containerfunktionen
*extreme speedy native fbPROCs, sofern one FreeBasic installs has (free, see Help)
*with fbPROCs can additionally Inline-Assembler too to XProfan X4 realized go
*extreme speedy native pbPROCs, sofern one PureBasic installs has
*Echtzeitverfolgung of Variableninhalten
*simple Zeitmessungen in the Programmablauf
*Profan-Kompilerdirektiven functions finally sensible (z.B. Verschachtelung)
*eingebettete variables functions too with Arrays
*most WIN32-API-functions are already vordefiniert included
*API-Aufrufe over @external(...) go automatically in @call(...)-Aufrufe umgesetzt
*Einrückungsanalyse to that find of vertrackten Verschachtelungsfehlern
*Klammeranalyse to that find of vertrackten Klammerfehlern
*ENUMERATE-Funktionalität
*Assert to Fehlerkontrolle
*it can arbitrary DLLs into XProfan-EXE integrate go, so tappt im dunkeln not delivered go must (see {$WrapDll})
*simple Killen Pixel JRPC3 launched Programs (interprets, .prc launched, .exe launched)
*extreme quick (and therefore naturally not XProfan written, there a interpretierte Language this natural plenty too slow is)
*at Start of JRPC3 already available .prc-Files can to that started and left used go (it'll one Info displayed, that it itself for a altes Compilations deals)
*the Profan-Compiler can to Beschleunigung with high Prozessorpriorität called go
*eingebauter Update-Checker with Download, if it one Update gives (Help --> online to Updates search)
*64- or 32-bit-Version available (simply JRPC3_64.exe or JRPC_32.exe as Interpreter in XProfEd deposit [Options --> general Settings] and JRPC3 with F7 started) - deference, The 64-bit-Version created naturally no 64-bit-XProfan-programs, there XProfan the not can, separate JRPC3 self becomes as 64-bit-Program carryed out
*XProfan X4-Syntax available (möglicherweise not yet everything, I presumably not everything of it use, but I have me circa Vollständigkeit ready - anyway are z.B. HASH-Arrays and QUADINTs thereby)
*Interpreter, PRCs and EXEs can with Kommandozeilenparametern carryed out go
*Interpreter, PRCs, EXEs and XPSE can with Administratorrechten carryed out go
*Procedures, The in the actually Program of course include are, but not uses go, go from the umgesetzten File removes, around the Filesize the Kompilats possible small To hold
*variables, The in the actually Program of course include are, but not uses go, go from the umgesetzten File removes, around the Filesize the Kompilats possible small To hold and the Speicherverbrauch To optimize
*nPROCs from XPSE go automatically with XPE to a DLL umgesetzt and the Aufrufe the nPROCs in the program properly adjusted, sofern XPSE present is
*almost everything from XPSE functions too in JRPC3 ({$NOERR}, {$(PRE)BATCH}, {$PUSHKEYWORD}, Interpreter, Runtime and compiler determine, Shorties, ...)
*XProfEd_JR with View source-AutoComplete
*XProfEd_JR with View source-Memory-function (Markierungen, To them zurückgesprungen go can)

Einschränkungen:
-no XPSE-Inline-Assembler, well but XProfan-Inline-Assembler (therein though no tests on Korrektheit the Codes)
-ABER: one can XPSE from JRPC3 out Call, so these Funktionalität furthermore available is, sofern one XPSE own (new Shorty: {$x})
-variables, The in a procedure not declared are, separate "aus the aufrufenden procedure übernommen werden", are standardmäßig not registered (XProfan allows the, but such a thing is just as mortal How GOTO-instructions). Please any To nutzenden Inputs as Parameter transfer, and if something from the aufrufenden Programmteil changed go must, when calling as Parameter z.B. @addr(x&) use and the procedure parameters x# and LONG x#,0=y& benefit.
If one but absolutely "vererbte" variables benefit would like, can this with the Kompilerdirektive {$Declare...} do.

*as Hommage on XPSE sounds The Endung the Ausgabedatei ".enh3"

an genauere explanation the individual Features is the chm-Helpfile To entnehmen, The in the program under Help --> Helpfile Show or with F1 available is.

----- /Features

Download and install:
JRPC3 can under Downloaded go (setup_jrpc3.exe or as ZIP-File).
as Installationsverzeichnis Please the XProfan-Stammverzeichnis indicate, means the one, in the The Files PROFAN.EXE, PROFCOMP.EXE, PRFRUN32.EXE etc. lying. alternatively can The ZIP-File Downloaded and its Content manually in that XProfan-Stammverzeichnis copies go.

facility:
JRPC3_64.exe or JRPC_32.exe as Interpreter in XProfEd deposit [Options --> general Settings] and JRPC3 with F7 started.

any command are with the commands "h" How "Hilfe" abrufbar and should selbsterklärend his.

for many erweitere Features, The XProfEd concern, How z.B. jenes, The row, in the one Error auftrat, directly in XProfEd Show to, is the mitinstallierte XProfEd_JR necessary. For this must one means XProfEd_JR.exe instead of XProfEd.exe as editor using. as "goody" there moreover, that at On- and Zufalten of Programs one Fortschrittsanzeiger integrate is (the can with large Programs Yes known a little bit last).

it likes his, that not yet everything perfect functions. I Please this circa clemency. my  programs can umsetzen, but the must yet long not hot, that this with Programs another Authors, The eachone so your Eigenheiten having, too functions.

Fehlermeldungen and Verbesserungsvorschläge gladly on jreumsc@web.de or here in the Forum.

best Regards, Jens-Arne

2.584 kB
Bezeichnung:JRPC3
Version:10.29
Kurzbeschreibung: JRPC3-Installer
Hochgeladen:02/15/21
Downloadcounter363
Download
1.699 kB
Bezeichnung:XProfEd_JR
Version:5.2
Kurzbeschreibung: old Version without AutoComplete to safety
Hochgeladen:02/15/21
Downloadcounter224
Download
3.777 kB
Bezeichnung:JRPC3
Version:10.29
Kurzbeschreibung: ZIP-File instead of Installer
Hochgeladen:04/02/21
Downloadcounter291
Download
 
XProfan X4 * Prf2Cpp * XPSE * JRPC3 * Win11 Pro 64bit * PC i7-7700K@4,2GHz, 32 GB RAM
PM: jreumsc@web.de
02/16/21  
 



 
- Page 17 -


« this Posting watts as Solution marked. »

- Page 15 -



Jens-Arne
Reumschüssel
there's a new Version, The differently with the internen Messagehandling bypassing. Please probier The time from. Perhaps is the trouble so fixed.
 
XProfan X4
XProfan X4 * Prf2Cpp * XPSE * JRPC3 * Win11 Pro 64bit * PC i7-7700K@4,2GHz, 32 GB RAM
PM: jreumsc@web.de
09/24/22  
 




RudiB.
Übrigens, Freebasic is self at process of String-function ca. 35x faster as XProfan. the had I do not virtual, for is Freebasic long not so komfortabel with the Programming.

Greeting from munich
 
XProfan X4
Xprofan X4
Rudolf Beske / München

Hardware: NB Intel I9 - 16GByte RAM
09/29/22  
 




RudiB.
Yes, your example functions....
 
XProfan X4
Xprofan X4
Rudolf Beske / München

Hardware: NB Intel I9 - 16GByte RAM
09/29/22  
 




Jens-Arne
Reumschüssel
I can't confirm, that FreeBasic-Stringfunktionen faster wären as XProfan-Stringfunktionen, anyway not for @upper$:

declare i%,tc&,s$

fbPROC fbupper(ByRef s As ZString) As Integer export
s=ucase(s)
return 0
ENDPROC

cls

tc&=&GetTickCount
for i%,1,10000
s$="asdjhaskdjhaskjdhkajshdkjhaksjdhkjahö+12"
s$=@upper$(s$)
endfor
print "@upper$: "+@st$(&GetTickCount-tc&)

tc&=&GetTickCount
for i%,1,10000
s$="asdjhaskdjhaskjdhkajshdkjhaksjdhkjahö+12"
@fbupper(@addr(s$))
endfor
print "@fbupper: "+@st$(&GetTickCount-tc&)

waitinput
end

FreeBasic is explicit slower, and of course though the Funktionsaufruf of JRPC3 over call realized and is not over external, and though for FreeBasic-routine not even new Speicherplatz reserved go must, as for @upper$ the case is (because there s$ new allocated becomes).
 
XProfan X4 * Prf2Cpp * XPSE * JRPC3 * Win11 Pro 64bit * PC i7-7700K@4,2GHz, 32 GB RAM
PM: jreumsc@web.de
09/30/22  
 




RudiB.
then teste time so.....
declare i%,tc&,s$
fbPROC fbupper(ByRef s As ZString) As Integer export
DIM i as Integer
For i = 1 to 10000
s=ucase(s)
s=lcase(s)
Next i
return 0

ENDPROC

cls
tc&=&GetTickCount
for i%,1,10000
s$="asdjhaskdjhaskjdhkajshdkjhaksjdhkjahö+12"
s$=@upper$(s$)
endfor
print "@upper$: "+@st$(&GetTickCount-tc&)
tc&=&GetTickCount
s$="asdjhaskdjhaskjdhkajshdkjhaksjdhkjahö+12"
@fbupper(@addr(s$))
print "@fbupper: "+@st$(&GetTickCount-tc&)
waitinput
end

even faster with Upper-Case and Lower-Case....
 
XProfan X4
Xprofan X4
Rudolf Beske / München

Hardware: NB Intel I9 - 16GByte RAM
10/01/22  
 




RudiB.
or so, with equal Voraussetzungen (each a Procedure Call)
declare i%,tc&,s$
'----- FreeBasic - Procedure ---------------
fbPROC fbupper(ByRef s As ZString) As Integer export
s=ucase(s)
return 0

ENDPROC

' ----- XProfan - Procedure -----------------

Proc Upper

s$=@upper$(s$)

ENDPROC

cls
tc&=&GetTickCount
for i%,1,10000
s$="asdjhaskdjhaskjdhkajshdkjhaksjdhkjahö+12"
upper(@addr(s$))
endfor
print "@upper$: "+@st$(&GetTickCount-tc&)
tc&=&GetTickCount
for i%,1,10000
s$="asdjhaskdjhaskjdhkajshdkjhaksjdhkjahö+12"
@fbupper(@addr(s$))
endfor
print "@fbupper: "+@st$(&GetTickCount-tc&)
waitinput
end

here's the benefit of course not any more integrally so big, but nevertheless faster
 
Xprofan X4
Rudolf Beske / München

Hardware: NB Intel I9 - 16GByte RAM
10/01/22  
 




Jens-Arne
Reumschüssel
Hello Rudi,

above I had already thought. evident is the appeal of/ one procedure with so plenty Registergeschiebe u.ä. joined, that the integrally beautiful long lasts. in the practice rewards it therefore not, a FB-Function for the Stringfunktionen To write, everybody can then in the Profan-Program benefit would. but within of/ one fbProc can whom Geschwindigkeitsvorteil, the evident still existing, naturally finish playing.

Greeting, Jens-Arne
 
XProfan X4
XProfan X4 * Prf2Cpp * XPSE * JRPC3 * Win11 Pro 64bit * PC i7-7700K@4,2GHz, 32 GB RAM
PM: jreumsc@web.de
10/01/22  
 




RudiB.
You promise straight The FB-functions on. Why becomes The really not of JRPC3 recognized, have You, the not implementiert ?
 
XProfan X4
Xprofan X4
Rudolf Beske / München

Hardware: NB Intel I9 - 16GByte RAM
10/01/22  
 




Jens-Arne
Reumschüssel
I meant so FreeBasic-Procs (fbProcs). The go still hopefully of JRPC3 recognized. I have hereon angespielt, that evident jedweder Funktionsaufruf with very plenty Overhead happens, the Time cost. otherwise understand I The question not integrally, erläutere me tappt im dunkeln Please once more (have You with "FB-Funktion" something other meant as i?).

and our small example have I once more something verfeinert. because circa really justice produce, must too The Profan-function with call called and be moreover a Parameter having (even if the present nothing does):

declare i%,tc&,s$,funcaddr%

fbPROC fbupper(ByRef s As ZString) As Integer export
s=ucase(s)
return 0
ENDPROC

PROC upper
parameters dummy%
s$=@upper$(s$)
ENDPROC

cls
funcaddr%=@procaddr("upper",1)

tc&:=&GetTickCount
for i%,1,10000
s$:="asdjhaskdjhaskjdhkajshdkjhaksjdhkjahö+12"
call(funcaddr%,@addr(s$))
endfor
print "@upper$: "+@st$(&GetTickCount-tc&)

tc&:=&GetTickCount
for i%,1,10000
s$:="asdjhaskdjhaskjdhkajshdkjhaksjdhkjahö+12"
@fbupper(@addr(s$))
endfor
print "@fbupper: "+@st$(&GetTickCount-tc&)

waitinput
end

now are both mutants almost same quick (compiled) with still one small benefit with FreeBasic.
 
XProfan X4 * Prf2Cpp * XPSE * JRPC3 * Win11 Pro 64bit * PC i7-7700K@4,2GHz, 32 GB RAM
PM: jreumsc@web.de
10/01/22  
 




RudiB.
Hello Jens-Arne,

....everything well. The fbProcs go naturally tidy recognized and processing. I meant Freebasic-functions. have still moreover The File "datei_fb_test.prf" uploaded. These have You then too rewritten to a fbProc.
As I said under Freebasic give Yes Sub´s and functions....
 
XProfan X4
Xprofan X4
Rudolf Beske / München

Hardware: NB Intel I9 - 16GByte RAM
10/01/22  
 




Jens-Arne
Reumschüssel
one can crept not directly in FreeBasic program, means neither directly functions of there Call, because the Profan-Compiler these functions not directly in his Program install can. circa tappt im dunkeln To benefit, must always a DLL created go, in the natural functions (Procs) stand, everybody can then from the outside Call can, around the therein encompassed nativen FreeBasic-Code benefit. the is not without whom detour over a DLL-function. the power too the XProfan-Inline-Assembler so, the XPSE-Inline-Assembler and XPSE-nPROCs ditto.

EDIT: Perhaps once more differently around declared: circa FreeBasic-Code produce, must the FreeBasic-Compiler uses go. the goes naturally not "plötzlich" within one Profan-Program. by the Use of DLL-functions is the FreeBasic-code against so zoned, that the FreeBasic-Compiler the vorgesetzt get, take off it virtual is, and the Profan-Compiler its share.
 
XProfan X4 * Prf2Cpp * XPSE * JRPC3 * Win11 Pro 64bit * PC i7-7700K@4,2GHz, 32 GB RAM
PM: jreumsc@web.de
10/01/22  
 




RudiB.
Hello Jens-Arne,

thanks for your response......understand....one can the whole indeed with Sub´s solve. but well to know.
i want my Program now with fbProcs optimize, there it me simply too slow is.....

Greeting Rudi
 
XProfan X4
Xprofan X4
Rudolf Beske / München

Hardware: NB Intel I9 - 16GByte RAM
10/01/22  
 




Jens-Arne
Reumschüssel
very for are fbProcs there. the rewards itself but only Programmpassagen, The plenty calculate or integrally often called go, about in a large Loop. Z.B. is it a extreme good idea, The Subclassproc to FreeBasic To verlagern, if The longer as a couple Lines is. If one therein bspw. OwnerDraw-items keeps, then is the in Profan often too slow. One example for wären coloured items in Gridboxen.
 
XProfan X4
XProfan X4 * Prf2Cpp * XPSE * JRPC3 * Win11 Pro 64bit * PC i7-7700K@4,2GHz, 32 GB RAM
PM: jreumsc@web.de
10/01/22  
 




Answer


Topictitle, max. 100 characters.
 

Systemprofile:

no Systemprofil laid out. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Please register circa a Posting To verfassen.
 

Topic-Options

62.632 Views

Themeninformationen



Admins  |  AGB  |  Applications  |  Authors  |  Chat  |  Privacy Policy  |  Download  |  Entrance  |  Help  |  Merchantportal  |  Imprint  |  Mart  |  Interfaces  |  SDK  |  Services  |  Games  |  Search  |  Support

One proposition all XProfan, The there's!


My XProfan
Private Messages
Own Storage Forum
Topics-Remember-List
Own Posts
Own Topics
Clipboard
Log off
 Deutsch English Français Español Italia
Translations

Privacy Policy


we use Cookies only as Session-Cookies because of the technical necessity and with us there no Cookies of Drittanbietern.

If you here on our Website click or navigate, stimmst You ours registration of Information in our Cookies on XProfan.Net To.

further Information To our Cookies and moreover, How You The control above keep, find You in ours nachfolgenden Datenschutzerklärung.


all rightDatenschutzerklärung
i want none Cookie