Delphi-PRAXiS
Seite 6 von 12   « Erste     456 78     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   ScriptEngine II (v. 0.6.1) (https://www.delphipraxis.net/140590-scriptengine-ii-v-0-6-1-a.html)

himitsu 3. Jan 2010 18:49

Re: ScriptEngine II (v. 0.4.4.0)
 
Zitat:

Zitat von littleDave
  • Alle records in der Host-Anwendung müssen als packed record deklariert sein

du könntes eventuell mein TXMLSerializeRecordInfo aus'm himXML verwenden

http://www.delphipraxis.net/internal...t.php?t=169095
meine aktuelle Version davon wird (hoffentlich) nächste Woche mit 'ner neuen himXML-Version hochgeladen

Diesem kann man den Recordaufbau übergeben und kann dann die berechneten Offsets der Elemente daraus auslesen und für eine Zuweisung verwenden. (praktisch so, wie ich's inzwischen in der Record-[De]Serialisierung auch mach)

littleDave 3. Jan 2010 19:09

Re: ScriptEngine II (v. 0.4.4.0)
 
Zitat:

Zitat von himitsu
Zitat:

Zitat von littleDave
  • Alle records in der Host-Anwendung müssen als packed record deklariert sein

du könntes eventuell mein TXMLSerializeRecordInfo aus'm himXML verwenden

http://www.delphipraxis.net/internal...t.php?t=169095
meine aktuelle Version davon wird (hoffentlich) nächste Woche mit 'ner neuen himXML-Version hochgeladen

Diesem kann man den Recordaufbau übergeben und kann dann die berechneten Offsets der Elemente daraus auslesen und für eine Zuweisung verwenden. (praktisch so, wie ich's inzwischen in der Record-[De]Serialisierung auch mach)

An sich das wirklich eine interessante Sache, das Problem dabei ist jedoch, dass die Performance dadurch extrem sinken würde. Bei jedem Record, dass in die Script-Engine übergeben wird und zurück, müsste ich dann extrem viele einzelne Copy-Befehle ausführen - während ich jetzt für relativ simple Records nur ein Copy-Befehl brauche.

Da ist es dann doch einfacher, die Records als packed record zu verlangen als den enormen Aufwand der Konvertierung vorzunehmen.

olee 3. Jan 2010 20:44

Re: ScriptEngine II (v. 0.4.4.0)
 
Unterstützt denn deine Script Engine keine Ausrichtung von Record-Feldern?

Das ist doch eigentlich keine große Sache (ich spreche aus Erfahrung denn bei mir klappts *gg*)

Und wieso sollten es mehr copy-Befehle dadurch werden?

Im Grunde wird doch nur die Gesamtgröße des records verändert :gruebel:

Aber allemal TOP deine Script-Engine.
Ich hoffe ich kann da noch etwas aufholen mit OOP (dafür war ich mit Events schneller :P)

MFG und viel Glück :thumb:

littleDave 16. Feb 2010 22:55

Re: ScriptEngine II (v. 0.4.5.0)
 
Nach einer etwas längeren (teilweise Zwangs-) Pause gibt es wieder ein neues Update :arrow: Version 0.4.5.0
  • Bug fixes
    • Kritischer Fehler beim Kopieren von Records in Record-Klassen-Felder behoben
    • Kritischer Fehler beim Kopieren von Records in Sub-Records behoben
    • Kritischer Fehler beim Linken der Record-Meta-Daten beim Kompilieren
    • Script-Interne Methoden von externen Klassen können jetzt lokale Variablen haben (der Compiler war zuuuu streng ;-))
  • Änderungen
    • Script-Klassen und Script-Records benutzen jetzt den eingebauten Memory-Manager
    • Script-Klassen-Erzeugung in eine eigene Unit ausgelagert
  • Neuerungen
    • Der Cache des integrierten Memory-Managers kann jetzt optional per Compiler-Directive vergrößert werden
    • Neue Compiler-Directive in der "ScriptEngineII.inc": SEII_BigRunTimeCache
    • Es gibt einen neuen Spezial-OpCode, mit dem Vergleiche sehr viel schneller werden. Eine for-Schleife von 0 bis 1.000.000 dauert bei mir jetzt nicht mehr 800ms, sondern nun noch 270ms.

Der Download befindet sich wie immer im ersten Post - oder per SVN.

Grüße

PS an EugenB: sorry, hat etwas länger gedauert, da mich ein fieser Bug noch aufgehalten hat.

EugenB 17. Feb 2010 06:27

Re: ScriptEngine II (v. 0.4.5.0)
 
Zitat:

Zitat von littleDave
PS an EugenB: sorry, hat etwas länger gedauert, da mich ein fieser Bug noch aufgehalten hat.

Nicht Schlimm :D

Sobald ich mal etwas Zeit finde, werde ich es an testen.

Btw, ist auch das mit dem inherited gelöst worden? :)

littleDave 7. Mär 2010 17:32

Re: ScriptEngine II (v. 0.4.6.0)
 
Zitat:

Zitat von EugenB
Btw, ist auch das mit dem inherited gelöst worden? :)

Jetzt schon, denn ...

... es gibt wieder eine neue Version :arrow: Version 0.4.6.0
  • Bug fixes
    • Bei verschachtelten Record-Funktion gab es ein kleines Problem, so dass der Stack zerissen wurde
    • Record-Funktionen löschen das Record jetzt etwas später - somit gibt es jetzt keine Access-Violation bei solchen Operationen mehr.
  • Änderungen
    • Strings im Byte-Code-Container wurden bisher in der jeweiligen String-Version von Delphi gespeichert (also < D2009: Ansi, >= D2009: Unicode). Somit war eine mit einer Ansi-Version erstellen Script-Anwendung nicht mit einer Unicode-Version ausführbar - und anders herum. Nun werden alle Strings im Byte-Code-Container per Default als Unicode-String gespeichert und sind somit Delphi-Unabhängig. Mit FreePascal habe ich das ganze leider noch nicht getestet.
    • Es sollte nun wieder ohne größere Probleme kein Problem mehr sein, die SEII mit Delphi 2009 oder neuer zu kompilieren.
  • Neuerungen
    • Records können jetzt auch als var-Parameter von Delphi an einzelne Script-Methoden übergeben werden. Das ganze geht natürlich in beide Richtungen, also Delphi->Script und Script->Delphi.
    • Der aktuelle CallStack der RunTime kann jetzt nicht nur als string zurückgegeben werden, sondern auch als Liste
    • Der inherited - Befehl ist jetzt deutlich mächtiger als zuvor. Nun kann man - wie in Delphi auch - nach dem Inherited-Befehl den Funktionsnamen angeben, der ausgeführt werden soll. Natürlich mit allen Parameter-Typen, usw.
    • Constructors können jetzt auch als virtual markiert werden.

Der Download befindet sich wie immer im ersten Post - oder per SVN.

Grüße

littleDave 7. Mär 2010 19:02

Re: ScriptEngine II (v. 0.4.6.0)
 
Sorry für den Push, jedoch gab es eine kleine brain-technische Störung bei mir ;-).

Ich hab die falsche Version hochgeladen :wall: -> daher noch dieses schnelle Update. Die wirklich aktuelle Version ist jetzt hochgeladen.

BUG 18. Mär 2010 15:40

Re: ScriptEngine II (v. 0.4.6.0)
 
:hi:

Sag mal, wie sieht es mit array-Unterstützung in SEII aus, das Schlüsselwort scheint es ja zu geben, aber mehr nicht :gruebel:
Außerdem taucht es weder in der near feature- noch in der far feature-Liste auf.
Sind die irgendwo unter den Tisch gefallen oder einfach unerwünscht?

littleDave 18. Mär 2010 16:27

Re: ScriptEngine II (v. 0.4.6.0)
 
Zitat:

Zitat von BUG
:hi:

Sag mal, wie sieht es mit array-Unterstützung in SEII aus, das Schlüsselwort scheint es ja zu geben, aber mehr nicht :gruebel:
Außerdem taucht es weder in der near feature- noch in der far feature-Liste auf.
Sind die irgendwo unter den Tisch gefallen oder einfach unerwünscht?

Ja, *hust*, arrays sind für Version 0.5 geplant :mrgreen:. Jedoch liegt Version 0.5 genau zwischen near feature und far feature, daher steht es nicht genau in einer dieser Listen 8-).

Nein, Spaß beiseite: arrays sind geplant und das Key-Word ist ja auch schon definiert. Jedoch plagen mich im Moment eher ein paar Kinderkrankheiten. Bei FPC 2.4 haben sie z.B. die Call-Convention von register verändert. Also muss ich das für FPC 2.4 wieder anpassen (ist bereits im SVN, jedoch ungetestet). Dazu kommen noch ein paar Compiler-Sachen, die mir erst nach und nach auffallen. Somit bin ich im Moment eher beim Bug-Fixing und komme kaum dazu, neue Sachen hinzuzufügen.

Nach dem dem baldigen Release von v0.4.7 (wahrscheinlich am Wochenende) sind dann hoffentlich nur noch "nicht auffindbare" Bugs drinnen (die Hoffung stirbt zuletzt ;-)).

Danach werde ich wahrscheinlich erst einmal etwas an den records machen und danach werde ich mich um den is Operator kümmern. Sobald das dann alles einigermaßen läuft, muss ich mich überwinden und mal arrays einbauen (was auf Grund der Nativ-Schnittstelle nicht gerade einfach wird).

littleDave 20. Mär 2010 21:45

Re: ScriptEngine II (v. 0.4.7.0)
 
Neues Update :arrow: Version 0.4.7.0
  • Neue Features
    • Es gibt eine neue Klasse in der System-Unit: ScriptInfo. In diese Klasse wird beim kompilieren unter anderem die aktuelle Uhrzeit sowie die Compiler-Version hinein gespeichert. Diese Werte sind als Konstanten im compilierten ByteCode drinnen und sind somit beim Zugriff extrem schnell. Da die Werte dynamisch in den Quelltext der Unit kompiliert werden, stimmt die Uhrzeit nur dann, wenn der Unit-Cache nicht aktiviert bzw. davor geleert wird.
  • Performance
    • Geschwindigkeit beim Aufrufen von externen Methoden um ca. 30% verbessert
    • Ein paar neue OpCodes hinzugefügt, um die Anzahl der Commands für bestimmte Operationen zu minimieren
  • Bug-Fixes
    • Bug in den Script-Engine-internen Helfer-Methoden für strings behoben
    • Floating-Point-Konstanten hatten eine zu geringe Präzision
    • Kleines Problem im Unit-Cache behoben
    • Problem in statischen Methoden behoben: lokale Variablen in statischen Funktionen wurden als globale Variablen angesehen
    • Da FPC seit 2.4 die Call-Convention wieder mal geändert hat, musste ich mal wieder einiges anpassen.

Der Download befindet sich wie immer im ersten Post ( - oder im SVN)

Grüße


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:46 Uhr.
Seite 6 von 12   « Erste     456 78     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz