Verwendung von PascalScript

Rund um die LCL und andere Komponenten
marcov
Beiträge: 1100
Registriert: Di 5. Aug 2008, 09:37
OS, Lazarus, FPC: Windows ,Linux,FreeBSD,Dos (L trunk FPC trunk)
CPU-Target: 32/64,PPC(+64), ARM
Wohnort: Eindhoven (Niederlande)

Re: Verwendung von PascalScript

Beitrag von marcov »

Christian hat geschrieben:
Marco, hat dich die calling Convention für Konstruktoren geändert ?


Kann sein, wegen SEH, bin aber nicht sicher.

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: Verwendung von PascalScript

Beitrag von Christian »

Gibts da jemanden der helfen könnte ? Ich würd gern auch die arm aufrufe und callbacks fixen kenn mich aber mit den aufrufen zuwenig aus :/
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

petwey
Beiträge: 83
Registriert: Sa 24. Nov 2012, 19:00
OS, Lazarus, FPC: Windows10 und Linux 32 und 64Bit (L 2.2.2 FPC 3.2.2)
CPU-Target: 32Bit und 64Bit

Re: Verwendung von PascalScript

Beitrag von petwey »

Hallo Christian, hallo marcov,

tut mir leid, das ich so lange nichts von mir habe hören lassen, aber es ging nicht anders.
Ihr scheint da auf irgend etwas gekommen zu sein, aber eure letzeten drei Beiträge habe ich nicht verstanden, tut mir leid. Ich glaube hier stecke ich nicht tief genug in der Materie.

Aber ich hatte gerade einen andern Effekt der auf den ersten Blick gar nichts mit Pascalscript zu tun hat, aber dann ...

Ihr solltet euch das mal anschauen.

http://www.lazarusforum.de/viewtopic.php?f=10&t=9717&p=85454#p85454

Vielen Dank für Eure Mühe.
MfG,
petwey

Windows 10 und Linux 32 und 64Bit (L 2.2.2 FPC 3.2.2)

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: Verwendung von PascalScript

Beitrag von Christian »

Versteh nicht was du mir sagen magst, was hat der Dezimaltrenner mit PascalScript zu tun ?
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

thosch
Beiträge: 324
Registriert: Mo 10. Jul 2017, 20:32

Re: Verwendung von PascalScript

Beitrag von thosch »

Dieser Link funktioniert nicht oder nicht mehr. Was gibt es an Doku noch außer der Pascalscript Webseite?

martin_frb
Beiträge: 572
Registriert: Mi 25. Mär 2009, 21:12
OS, Lazarus, FPC: Laz trunk / fpc latest release / Win and other
CPU-Target: mostly 32 bit

Re: Verwendung von PascalScript

Beitrag von martin_frb »

1) Es gibt verschiedene Möglichkeiten wie PS vor-kompilierten Code (RegisterMethod) aufrufen kann.

a) RegisterMethod
PS baut den für der Aufruf nötigen Stack intern nach, und belegt CPU register.
Das ist für die meisten CPU/OS Kombinationen unterschiedlich, und muss für jeden "type" der als Param auftreten kann geschrieben sein.
=> Kann leicht Fehler enthalten.

Gerüchten nach soll FPC eine solche Funktion irgendwann liefern, dann wird das besser.

2) RegisterMethodName
(Achtung, nicht komplett. Lazarus (2.x aufwärts) enthält eine gepatchete PS mit mehr Funktionen)

Hier wird ein Callback aufgerufen, und die Param als Struktur übergeben.
Siehe components\macroscript\emscriptclasses.pas

----------------------------
Events:

Für 64bit intel:
Probier mal mit der offiziellen Version. Die Lazarus Version hat Patches. Und kann sein das das disabled (64bit) ist.
Wenn dem so ist, ist nur ein {$define empty_methods_handler} der ggf weg muss...

PascalDragon
Beiträge: 825
Registriert: Mi 3. Jun 2020, 07:18
OS, Lazarus, FPC: L 2.0.8, FPC Trunk, OS Win/Linux
CPU-Target: Aarch64 bis Z80 ;)
Wohnort: München

Re: Verwendung von PascalScript

Beitrag von PascalDragon »

martin_frb hat geschrieben:
Do 25. Mär 2021, 04:15
a) RegisterMethod
PS baut den für der Aufruf nötigen Stack intern nach, und belegt CPU register.
Das ist für die meisten CPU/OS Kombinationen unterschiedlich, und muss für jeden "type" der als Param auftreten kann geschrieben sein.
=> Kann leicht Fehler enthalten.

Gerüchten nach soll FPC eine solche Funktion irgendwann liefern, dann wird das besser.
Ich denke du meinst Rtti.Invoke, welche in 3.2.0 bereits unterstützt wird, insofern ein Function Call Manager registriert ist (aktuell intern für i386 register sowie die Win64 Calling Convention und ansonsten libffi über Unit FFI.Manager im Hauptprogramm). Die Function Call Manager sind vielleicht noch nicht ganz fehlerfrei, Tests und Experimente wären also gern gesehen. :)
FPC Compiler Entwickler

Antworten