
Zitat von
Geri:
Die Script engine ist für mich immer noch interessant. Du schreibst aber, dass du an einer Neuen Scriptengine dran bist. Hast du schon einen Zeitpunkt für das erste Release und macht es dann besser wenn man auf diese neue Engine wartet?

Zitat von
mkinzler:
Bzw wie kompatibel wird die neue zu der (schon hervorragenden) "alten" Engine sein?
Also die neue Script-Engine kommt ganz gut vorran - im Momemt bin ich bei der Implementierung von arrays und records. Danach stehen Klassen auf der ToDo-Liste.
Generell wird die Script-Engine nicht sehr kompatibel zu der alten sein. Die Virtual Machine ist komplett neu geschrieben und ist somit nicht von den Daten kompatibel. Jedoch wird die Syntax ebenfalls wieder Pascal sein, somit ist die Sprache an sich sehr kompatibel. Jedoch hab ich die Syntax auch schon erweitert und die Funktionen werden in virtuellen statischen Klassen in der Script-Engine zusammengefasst.
Hier mal ein Beispiel
Delphi-Quellcode:
//alte Script-Sprache
var i: integer;
begin
i := StrToInt('123');
WriteLn(IntToStr(i));
end;
// Neue Script-Sprache
var i: integer;
begin
i := Convert.StrToInt('123');
Console.WriteLine(Convert.IntToStr(i)); // Entweder so
Console.WriteLine(i); // oder so - overloaded Methoden werden unterstützt
end;
Jedoch wird man Projekte an die neue Script-Engine etwas anpassen müssen. Die grundlegenden Funktionen bleiben in etwa gleich, jedoch mit etwas anderen Parametern:
Delphi-Quellcode:
var PE: TSE2RunTime;
begin
PE := Compiler.Compile('
program Test; begin end.');
try
if PE <>
nil then // korrekt kompiliert
begin
// z.B.
PE.SaveToFile('
Compiled.dat');
PE.Initialize;
PE.Run;
PE.Finalize;
end;
finally
PE.Free;
end;
// Oder so
PE := TSE2RunTime.Create;
try
PE.LoadFromFile('
Compiled.dat');
PE.Initialize;
PE.Run;
PE.Finalize;
finally
PE.Free;
end;
end;
Wann der erste Release sein wird, kann ich noch nicht sagen - aber ich beeil mich