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 10 -


« 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  
 




funkheld
The expansion with FreeBasic is something Superleichtes , its Basic.

moreover learn power not stupid.
XPSE comes not any more clear ex XProfan3 set Jens-Arne solid.


Perhaps straight performance due.


I faith you have it ansatzweise understood Why Jens-Arne the made has.
naturally because of this performance. it would like the XProfanx4 not new invent.

greeting
 
01/15/22  
 




Jens-Arne
Reumschüssel
I verdeutliche it again in a example, the Perhaps a little bit The Hemmungen takes:

suppose, your wanted one Apfelmännchen draw. The problem is, that The Berechnung the Farbwerte the Pixel whom Flaschhals with the speed darstellt. the, and only the as fbProc sees by me How follows from:

fbPROC fbIteration(ByRef xr As Integer,ByRef yi As Integer) As Integer export
dim as double a,b,r,i,x,xalt,y
dim as integer v,Result
r=_rmin!+_xr&*_ar!
i=_imin!+_yi&*_ai!
v=0
x=0.0
y=0.0
do
xalt=x
a=x*x
b=y*y
x=a-b+r
y=2*xalt*y+i
v=v+1
loop until (((a+b)>_tiefe%) or (v=_tiefe%))
if v=_tiefe% then
ergebnis=0
else
ergebnis=(v mod _maxf&)+1
end if
return Result
ENDPROC

there are, How one sees, a couple gepushte XProfan-variables thereby. for these function must one really quite nothing new learn except for The manner, How in FreeBasic variables declared go, that on one "if" one "then" follows and like a "repeat...until" looks (do...loop until). Gäbe it fbProcs not, should one itself a DLL this with of/ one integrally others Language basteln. this is, faith I, plenty aufwändiger, as itself once to examine, How to the with the variables power. so can the everything in a only View source write and must itself otherwise circa nothing concern. I faith, this is it worth, itself so short auseinanderzusetzen. but must does one quite nothing.

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




Jens-Arne
Reumschüssel
well well, I have now with fbProcs following Konzessionen made (The erforderlichen Umsetzungen takes JRPC3 automatically to, presupposed eachone commands standing in a own row):

- "then" can with if omitted
- it can "endif" instead of "end if" using go
- it can "repeat ... until" instead of "do ... loop until" using go
- it can "endwhile" instead of "wend" using go
- it can "endfor" instead of "next" using go [later added, see under in the Forum]
 
of these einfachen adjustments can now - except for The Variablendeklarationen - objectively almost reinen XProfan-code write, if one fbProcs for the using, for what tappt im dunkeln there are: speedy Berechnungen anzustellen.

best Regards, Jens-Arne

EDIT:
I find it incidentally wonderful, that itself too +70-Jährige of these Things explain! my father has yet Mainframes with Lochkarten programmiert; unfortunately is it recently defunct. How plenty plainer having we it today with XProfan and the a or others small Helferlein moreover. itself so To keep busy, holds certainly intellectual fit.
 
XProfan X4 * Prf2Cpp * XPSE * JRPC3 * Win11 Pro 64bit * PC i7-7700K@4,2GHz, 32 GB RAM
PM: jreumsc@web.de
01/15/22  
 




p.specht

now can even I again leap up:


- "then" can with if omitted
- it can "endif" instead of "end if" using go
- it can "repeat ... until" instead of "do ... loop until" using go
- it can "endwhile" instead of "wend" using go
of these ... adjustments can now - except for The Variablendeklarationen - objectively almost reinen XProfan-code write, ...(with)... fbProcs


an hervorragende Solution!

P.s.: my Beileid, Jens-Arne! too my father verstarb recently.
 
XProfan 11
Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'...
01/15/22  
 




funkheld
thanks for your expansion.
i am pleased always over Erneuerungen, there sees one then the it weitergeht.

so have you got even a incredulous Thomas helped the again on horse jumping.

then can certainly soon small Examples with FreeBasic of p.woodpecker see.

It's all right up with XProfanx4 and FreeBasic.

tensive becomes it yet if it with sendmessage...To XProfanx4 back goes.

greeting
 
01/15/22  
 




Jens-Arne
Reumschüssel
thanks you both! Yes, It's all right hopefully again something up.

Sendmessage ought to really not necessary his, because the Yes everything sequentiell worn out and is The DLL the Hauptprogramm over variables communicate can. though can a fbProc naturally as Thread started, what with XProfan-Procs not goes. there becomes sendmessage then objectively very interestingly, because the XProfan-Hauptprogramm Yes independent of the Thread weiterliefe. though have I me with Threads yet always awful The fingers burnt, anyway then, if More as one Thread walk ought to. there gibt's constantly Abstürze without any Fehlermeldungen, alike, How very I single pieces with Mutexes Safe have. From Optimierungen How tab-Alignment with Variables and Parameters time integrally foreseen. there bräuchte I well yet Nachhilfe...

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
01/15/22  
 




Jens-Arne
Reumschüssel
here time an example, as *not* functions, Perhaps can me Yes someone say, I there wrong make (The Warnungen of FreeBasic-Compiler can ignore, the program runs):

{$FBSYNTAX on}

declare _hE1%,_hE2%,_Mutex% SharedInFbProcs
declare _hE3%,_Ende%,_Zaehler%,_hDLL%

fbPROC fbThreadProc(ByVal p As Integer) As Integer export
dim as integer zaehler,i,t,end
dim as zstring pointer s
ende=0
zaehler=0
t=timer
s=HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,1000)
while ende=0
zaehler=zaehler+1
if p=1
poke zstring,s,"Thread "+st(p)+" runs... "+st(zaehler)
WaitForSingleObject(_Mutex%,0)
sendmessage(_hE1%,WM_SETTEXT,0,s)
ReleaseMutex(_Mutex%)
else
poke zstring,s,"Thread "+st(p)+" runs... "+st(zaehler)
WaitForSingleObject(_Mutex%,0)
sendmessage(_hE2%,WM_SETTEXT,0,s)
ReleaseMutex(_Mutex%)
endif
sleep 1000-(timer-t)
t=timer
endwhile
HeapFree(GetProcessHeap(),0,s)
return 0
ENDPROC

cls
_hE1%:=@create("EDIT",%HWnd,"",10,10,@width(%HWnd)-20,20)
_hE2%:=@create("EDIT",%HWnd,"",10,40,@width(%HWnd)-20,20)
_hE3%:=@create("EDIT",%HWnd,"",10,70,@width(%HWnd)-20,20)
_Mutex%=~CreateMutex(0,0,0)
_hDLL%=@usedll("test_fbprocs.dll")
~CreateThread(0,0,~getprocaddress(_hDLL%,"FBTHREADPROC@4"),1,0,0)
~CreateThread(0,0,~getprocaddress(_hDLL%,"FBTHREADPROC@4"),2,0,0)
_Zaehler%:=0
_Ende%:=0
whilenot _Ende%
inc _Zaehler%
settext _hE3%,"the Hauptprogramm runs... "+@st$(_Zaehler%)
waitinput 1
if %scankey=27
_Ende%:=1
endif
endwhile
freedll _hDLL%
end

EDIT:
the shining something so To do to have, that dieselbe fbProc 2x as Thread launched becomes. If one two separated (with regard to content same) Procs using, functions it. that is means well, that the same Variablenadressen of both Threads using go, what not gutgehen can. but Why is then p once "1"And once "2", anyway To beginning? Very strange.
 
XProfan X4 * Prf2Cpp * XPSE * JRPC3 * Win11 Pro 64bit * PC i7-7700K@4,2GHz, 32 GB RAM
PM: jreumsc@web.de
01/15/22  
 




funkheld


by me runs not as should.
it'll tidy with your latest Version compiliert.

If I it starte comes The Error Message (Image)

If I on OK press comes under The Message and the program soar then from.
"Das Hauptprogramm runs..."

I have the XProfanx4 with PatchXProfanX4a

with Thread is a dangerous thing.
sometimes react even different PC on it zb How by me : goes or is not
with Thread can I too The Error not find.

with Purebasic Games I gladly with Filemap.
Transmitter and Empfänger.
If the what with Thread To do?
two programs walk and can itself mutual data zuschieben and mutual steer.

greeting

27 kB
Hochgeladen:01/16/22
Downloadcounter28
Download
 
01/16/22  
 




funkheld
How can Please Strings transfer go?
this won't acknowledged :

declare texti$ SharedInFbProcs

Thank you.
 
01/17/22  
 




Jens-Arne
Reumschüssel
the Testprogramm runs not, because You not "test.prf" called have. from the Filenames becomes Yes the name the DLL generiert, The I for Threads with @usedll() with a lever slip must. and there have I "test_fbprocs.dll" in this example hardgecodet. alternatively must You "test_fbprocs.dll" with usedll into names Change, the itself from the names ableitet, whom You the Testprogramm given have.

Strings on The DLL To transfer is perilous. the have I therefore not simply with "SharedInFbProcs" registered, because a Stringvariable, say we "s$", with eachone new Zuweisung of Text a integrally new Speicherplatz get:

s$="Text 1" 's$ standing somewhere in memory
s$="Text 2" 's$ standing now somewhere quite different in memory

the means, one can't simply whom Pointer transfer, whom s$ with the Initialisierung the DLL has, there itself the Content of @addr(s$) anytime Change can, depending on, what the user so does.

Strings must You therefore possible as Memory-Variables transfer, The keep ihren Speicherplatz. one must then but naturally too for care, that the area big enough for everything is, what The DLL into String reinschreiben could.

example:

{$FBSYNTAX on}

declare area#

fbPROC fbStringTest(ByVal pString As ZString Pointer) As Integer export
MessageBox(0,*pString,"Testausgabe String",0) 'the star to the Pointer-variables besagt, that the Content taken go should, not the worth the Pointers (it went but in this drop too without star, The API-function MessageBox takes too whom Pointer on the String)
*pString="these one new Teststring."
return 0
ENDPROC

cls
dim area#,10000 '10000 is In any drop big enough
string area#,0="these one Teststring."
fbStringTest(area#)
print @string$(area#,0)
waitinput
end

one could area# too with SharedInFbProcs pushen, but the would then one "Any Pointer", no "ZString Pointer", and the lead with Strings To Problemen, because FreeBasic already know must, that it itself circa a nullterminierten String deal should, so everything nahtlos zusammenspielt.

with FileMaps work so did i sometimes. then can still a second Process run and there data process, what integral safer is, as a Thread to start. but sometimes is a Thread still interessanter. but even too brandgefährlich, any Implikationen seem I there not yet To durchblicken, The Variablenwerte durcheinanderwirbeln and To Zugriffsverletzungen lead can.

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




funkheld


thanks Jens-Arne have you got super declared.
now functions it.
I wanted to it on whom FB-Screen having,

Thread goes now too.

greeting
 {$FBSYNTAX on}
declare area#
fbPROC fbStringTest(ByVal pString As ZString Pointer) As Integer export
Screenres(256,100)
print *pString
MessageBox(0,*pString,"Testausgabe String",0)
return 0

ENDPROC

cls
dim area#,10000
string area#,0="Dies is a Teststring."
fbStringTest(Area #)
print @string $(area#,0)
waitinput
end

20 kB
Hochgeladen:01/17/22
Downloadcounter32
Download
 
01/17/22  
 




funkheld

one could area# too with SharedInFbProcs pushen, but the would then one "Any Pointer", no "ZString Pointer", and the lead with Strings To Problemen, because FreeBasic already know must, that it itself circa a nullterminierten String deal should, so everything nahtlos zusammenspielt.


How becomes one String in the area# nullterminiert to that Pushen with SharedlnFbProcs?

Thank you.
 
01/17/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

63.620 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