Einzelnen Beitrag anzeigen

Benutzerbild von littleDave
littleDave

Registriert seit: 27. Apr 2006
Ort: München
556 Beiträge
 
Delphi 7 Professional
 
#21

Re: Sysygy Script Engine - Version 0.99b

  Alt 10. Jul 2008, 01:58
Trotz der fortgeschrittenen Stunde hab ich mich noch entschlossen, die aktuelle Version der Script-Engine hochzuladen. Diesmal hat sich einiges geändert und einige nützlichen Sachen sind mal wieder dazugekommen .

Da die Unit-Namen und manche Funktionsnamen etwas unglücklich gewählt wurden, hab ich mich dazu entschlossen, diese umzubenennen. Die Unitnamen fangen jetzt einheitlich mit einem u für Unit an und danach folgt ein Syg. Danach folgen dann noch kurze und präzise(re) Namen, die den Inhalt der Unit wiederspiegeln.
Die Script-Includes haben nach dem Syg noch ein Inc darstehen. Somit erkennt man sofort, was wo drinnen ist.

Ein weiteres neues Feature ist die Möglichkeit, Script-Funktionen direkt aus dem Programm heraus aufzurufen. Dabei ist es kein Problem, ob die Script-Funktion auf globale Variablen zugreift oder nicht. Was allerdings noch nicht funktioniert sind var-Parameter für den Funktionsaufruf aus dem Programm heraus. Das Script bzw. die Funktion läuft zwar wunderbar, aber die Werte in den Varparameter werden nicht wieder an das Hauptprogramm zurückgegeben. Ich weiß noch nicht, wie ich das am besten Anstellen soll - nicht von der Script-Engine her, das funktioniert schon, sondern eher wie ich den Aufruf aus dem eigentlichen Programm heraus handhaben soll. Im Moment werden die Parameter für jede Funktion einfach als array of const übergeben und dann endsprechend ausgewertet.
Was dafür aber funktioniert ist, dass die Rückgabewerte der Scriptfunktion auch ans Hauptprogramm weitergegeben werden. Die Aufruffunktion des Interpretors gibt dabei den Typ Variant zurück, der dann das result der Funktion enthällt.
Da Variants ja keine Pointer haben dürfen, werden Pointer als cardinal-Wert im Variant gespeichert.

Da ich mich mal drann gewagt habe, den Inhalt der Delphi-Unit StdCtrls auch für die Script-Sprache zur Verfügung zu stellen, ist mir aufgefallen, dass die Zeit fürs kompilieren sehr zunimmt (wenn man StdCtrls in die uses-Deklaration einbindet, kann man mit einer Kompilierzeit von ca. 1 Sekunde rechnen). Zwar hat diese Zeit keinen Einfluss auf die spätere Ausführungsgeschwindigkeit, doch etwas nervig ist das ja schon. Ich schau mal, ob ich da nich noch etwas mehr Speed rausholen kann.

Den kompletten Download und den kompletten ChangeLog gibts (wie immer ) im ersten Beitrag.

Grüße
Dave
Jabber: littleDave@jabber.org
in case of 1 is 0 do external raise while in public class of object array else repeat until 1 is 0
  Mit Zitat antworten Zitat