Einzelnen Beitrag anzeigen

Benutzerbild von littleDave
littleDave

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

AW: ScriptEngine II (v. 0.5.3.1)

  Alt 15. Aug 2010, 18:24
Oh, ich habe irgendwie den letzten Post übersehen

Ist es ein großer Aufwand den Typ Char einzubaun? Denn so muss man in jedem Script einen string auf len(1) prüfen.
Ist schon leider etwas Aufwand. Denn es gibt einige Stellen, die für neue Typen angepasst werden müssen. Ich muss mal schauen, wie ich das am besten hin bekomme

Der kompilierte Script-binärstream wächst mit größeren Scripts schnell an. Da lässt sich aber aufgrund der vielen Nullen schnell mal 1MB auf 40KB komprimieren. Kann man an der Größe irgendwas drehen, ohne die Runtimeperformance einzuschränken?
Ja, das Script-File kann sehr groß werden, 1MB habe ich jedoch noch nicht geschafft. Man könnte vielleicht noch das ein oder andere Byte herausholen, jedoch wirkt sich das sehr negativ beim Laden des Scriptes aus. Das Auslesen des Binary-Files ist übriges streaming-fähig, es wird kein .Seek, .Size oder .Position benutzt. Daher kann man auch sehr schnell und ohne Probleme ein zLibStream beim Speichern und Laden übergeben.

Könntest du evtl den Uses-Cleaner von CNPack vor Releases drüberlaufen lassen?
Die Uses-Liste ist manuell gemacht und sollte eigentlich passen. Deswegen noch das CNPack-Installieren will ich eigentlich nicht.

E: Achja bei der IDE wäre ein Parameter, um ein Script direkt zu laden, praktisch.
Es kommt bald noch viel besser. Ich bastel mir gerade eine eigene RunTime-Library zusammen. Damit kann man dann aus dem Script eine .exe machen, wobei natürlich nur der kompilierte ByteCode an die Echse angehängt wird. Ich habe als Test bereits eine komplette Forms-Anwendung, Multi-Threaded mit einer IdHTTP-Komponente drinnen. Die Exe ist ganze 31 kb groß (ok, die RunTime hat noch 3 MB, aber die wird ja nur einmal pro Rechner gebraucht .

@All: Neue Version Version 0.5.3.1

Eine kleine Bugfix - Version
  • Neuerungen
    • Der Typ "System.TObject" hat jetzt eine neue virtuelle Methode: ".ToString"
    • "System.Console.WriteLine" hat jetzt einen neuen Parametertyp: TObject (ruft die ".ToString" - Methode auf)
  • Änderungen
    • Class-Var-Deklaration gilt jetzt nur noch für die erste Variable
    • System.Diagnostics.TStopwatch erweitert
    • Man kann jetzt nur noch den Constructor von externen Klassen aufrufen, wenn dieser deklariert wurde
  • Bug-Fixes
    • Unit-Cache-Bug mit Records behoben
    • Set-Of-Typen hatten manchmal keine interne Größe, wodurch man sie nicht als Variable in Records oder Klassen hinzufügen konnte
    • Exception-Handling innerhalb von Case-Statements funktionierte wegen einem Compiler-Bug nicht
    • Der Aufruf von Script-Methoden über das Native-Interface (TMethod-Cast) funktionierte nicht mit var-Parametern

Download-Link ist im ersten Post.

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