AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte ScriptEngine II (v. 0.6.1)
Thema durchsuchen
Ansicht
Themen-Optionen

ScriptEngine II (v. 0.6.1)

Ein Thema von littleDave · begonnen am 21. Sep 2009 · letzter Beitrag vom 4. Aug 2011
Antwort Antwort
Seite 6 von 12   « Erste     456 78     Letzte »    
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.378 Beiträge
 
Delphi 12 Athens
 
#1

Re: ScriptEngine II (v. 0.4.4.0)

  Alt 3. Jan 2010, 17:49
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)
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von littleDave
littleDave

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

Re: ScriptEngine II (v. 0.4.4.0)

  Alt 3. Jan 2010, 18:09
Zitat von himitsu:
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.
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
Benutzerbild von olee
olee

Registriert seit: 16. Feb 2008
Ort: Boppard
540 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: ScriptEngine II (v. 0.4.4.0)

  Alt 3. Jan 2010, 19:44
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

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

MFG und viel Glück
Björn Zeutzheim
Codename: Performancepumpe
  Mit Zitat antworten Zitat
Benutzerbild von littleDave
littleDave

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

Re: ScriptEngine II (v. 0.4.5.0)

  Alt 16. Feb 2010, 21:55
Nach einer etwas längeren (teilweise Zwangs-) Pause gibt es wieder ein neues Update 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.
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
EugenB

Registriert seit: 7. Dez 2006
98 Beiträge
 
Lazarus
 
#5

Re: ScriptEngine II (v. 0.4.5.0)

  Alt 17. Feb 2010, 05:27
Zitat von littleDave:
PS an EugenB: sorry, hat etwas länger gedauert, da mich ein fieser Bug noch aufgehalten hat.
Nicht Schlimm

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

Btw, ist auch das mit dem inherited gelöst worden?
  Mit Zitat antworten Zitat
Benutzerbild von littleDave
littleDave

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

Re: ScriptEngine II (v. 0.4.6.0)

  Alt 7. Mär 2010, 16:32
Zitat von EugenB:
Btw, ist auch das mit dem inherited gelöst worden?
Jetzt schon, denn ...

... es gibt wieder eine neue Version 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
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
Benutzerbild von littleDave
littleDave

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

Re: ScriptEngine II (v. 0.4.6.0)

  Alt 7. Mär 2010, 18:02
Sorry für den Push, jedoch gab es eine kleine brain-technische Störung bei mir .

Ich hab die falsche Version hochgeladen -> daher noch dieses schnelle Update. Die wirklich aktuelle Version ist jetzt hochgeladen.
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
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#8

Re: ScriptEngine II (v. 0.4.6.0)

  Alt 18. Mär 2010, 14:40


Sag mal, wie sieht es mit array-Unterstützung in SEII aus, das Schlüsselwort scheint es ja zu geben, aber mehr nicht
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?
Intellekt ist das Verstehen von Wissen. Verstehen ist der wahre Pfad zu Einsicht. Einsicht ist der Schlüssel zu allem.
  Mit Zitat antworten Zitat
Benutzerbild von littleDave
littleDave

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

Re: ScriptEngine II (v. 0.4.6.0)

  Alt 18. Mär 2010, 15:27
Zitat von BUG:


Sag mal, wie sieht es mit array-Unterstützung in SEII aus, das Schlüsselwort scheint es ja zu geben, aber mehr nicht
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 . Jedoch liegt Version 0.5 genau zwischen near feature und far feature, daher steht es nicht genau in einer dieser Listen .

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).
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
Benutzerbild von littleDave
littleDave

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

Re: ScriptEngine II (v. 0.4.7.0)

  Alt 20. Mär 2010, 20:45
Neues Update 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
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
Antwort Antwort
Seite 6 von 12   « Erste     456 78     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:10 Uhr.
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-2025 by Thomas Breitkreuz