Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: So Jul 06, 2025 19:46

Foren-Übersicht » Sonstiges » Meinungen zu den Projekten
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 45 Beiträge ]  Gehe zu Seite Vorherige  1, 2, 3  Nächste
Autor Nachricht
 Betreff des Beitrags:
BeitragVerfasst: Fr Aug 07, 2009 16:27 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Dein Letzter Punkt ist eigentlich etwas, was man häufiger antrifft.
Ohne jetzt deinen Code im Detail zu kennen: Wieso kannst du das nicht mit einem Interface machen? Dann verwendest du nur noch Interfaces, und was unten drunter dann wirklich steht wird bei der Erstellung entschieden.

Hoffe das war jetzt nicht zu kryptisch.

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Aug 07, 2009 16:33 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
Das wäre ein großer Aufwand mit nicht allzu tollem nutzen. Erstens sehe ich ein Problem mit direkten Vergleichen. Wenn ich mich recht erinnere, wird der eigentliche Speicherbereich einer Interfacereferenz, also das, wo letzendlich die Methodenpointer usw drinne stehen, für jedes QueryInterface neu erzeugt.
Zweitens betrachte ich Interfaces eher als "notmittel". Ich benutze sie nicht sonderlich gerne, auch wegen der Referenzzählung. Eine Abstrakte Basisklasse ist mir da lieber. Drittens kommt das Problem rein, dass ich in den Methodendeklarationen der mindestens einer Betroffenen Klasse auch wieder Referenzen auf "hohe" Typen habe, also müsste ich den Großteil in Interfaces verpacken. Aufwand >>> Nutzen imo.

greetings

_________________
If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung.
current projects: ManiacLab; aioxmpp
zombofant networkmy photostream
„Writing code is like writing poetry“ - source unknown


„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Aug 07, 2009 18:44 
Offline
Forenkatze
Benutzeravatar

Registriert: Mi Okt 22, 2003 18:30
Beiträge: 1945
Wohnort: Närnberch
Programmiersprache: Scala, Java, C*
Horazont hat geschrieben:
Diese Casts der Lesbarkeit wegen in Methoden oder Funktionen auslagern, will ich vermeiden. Erstens produziert es mehr Code. Zweitens ist es langsamer. Man kann natürlich inline verwenden, aber ob das immer zu 100% optimal läuft, ist auch nicht sicher. Zumal ein Cast sich ja nicht mal auf Instruktionsebene, sondern allein auf der Compilerebene abspielt. Einsparung gäbe es dabei garnicht. Nur die Möglichkeit, auszulagern.

So mal ganz generell: Code nicht lesbar zu schreiben mit der Ausrede, dass man sich nicht sicher ist, ob der Compiler da wieder die ursprüngliche Performance rausholen kann, ist... einfach nur doof ;)
Vertrau dem Compiler. Wenn da inline dran steht, wird er auch inline machen. Alles andere wäre ein Bug im Compiler. Und das heißt, es nicht nicht deine Baustelle, sondern die der Compiler-Entwickler.

_________________
"Für kein Tier wird so viel gearbeitet wie für die Katz'."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Aug 08, 2009 13:21 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Lord Horazont hat geschrieben:
@Lossy: Funktionieren die Coderegions unter Delphi eigentlich? Also ein-/ausklappbar?

Da muss ich dich bitter enttäuschen. Mit Delphi funktioniert deine Bibliothek gar nicht. Die Regionen heißen in delphi {$region} und diverse direktiven heißen anders bzw gibt es nicht. zum Beispiel. {$mode} gibts nicht. {$IF ...} erwartet {$ifend}. {$PACKENUM} und {$PACKRECORDS} gibts nicht.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: @Thorium Scripting Language
BeitragVerfasst: Mi Mär 10, 2010 08:15 
Offline
DGL Member
Benutzeravatar

Registriert: So Okt 26, 2003 20:07
Beiträge: 249
Wollte mir das Ganze mal ansehen, aber bei mir bricht der Compiler bei thorium_utils.pas ab...

Code:
  1. \thorium\thorium-1.0.5.1\packages\thoriumcorepkg\thorium_utils.pas(1,1) Fatal: Compilation aborted
  2.  


Weiß nicht genau warum... System/CPU targets habe ich eingestellt.

MFG

_________________
I'm not the signature, I'm just cleaning the floor...

Derzeitiges Projekt:
FireBlade Particle Engine (Release R2 2009.06.29)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: @Thorium Scripting Language
BeitragVerfasst: Mi Mär 10, 2010 10:32 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
Hm, der Fehler kommt mir bekannt vor, aber ich kann dir gerade keinen genauen Tipp für die Ursachensuche geben. Welche FPC-Version verwendest du? Benutzt du das passende Thorium-Paket?
Ansonsten versuch mal, alle ppu-Dateien von Thorium zu löschen und dann das Package clean zu kompilieren. Das könnte helfen.

greetings

_________________
If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung.
current projects: ManiacLab; aioxmpp
zombofant networkmy photostream
„Writing code is like writing poetry“ - source unknown


„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: @Thorium Scripting Language
BeitragVerfasst: Mi Mär 10, 2010 13:27 
Offline
DGL Member
Benutzeravatar

Registriert: So Okt 26, 2003 20:07
Beiträge: 249
FPC Version war irrtümlicherweise doch 2.2.4, hatte Lazarus auf dem PC erst vor nen paar Tagen runtergeladen und dachte da wäre die 2.4.0 dabei.. Ok das geht jetzt schonmal =)

So aber dann gehts weiter...

Also erstmal in jedem Beispiel bekomme ich ne Exception bei TThorium.Create... Wobei ich mir nicht sicher bin wie aussagekräftig das ist, könnte auch von Lazarus selbst kommen weil das beim Aufruf in der Konsole nicht auftritt.

Beim rttisample bekomme ich aber sowohl in Lazarus als auch in der Konsole eine SIGSEV... Vielleicht deshalb, weil ich

Code:
  1. Result.DisableHostControl;


Auskommentiert hatte (nicht definierter Ausdruck).

Mit etwas Recherche bin ich dann hierauf gekommen:

Code:
  1. Result.ThoriumReference.DisableHostControl;


Was allerdings auch nicht funktioniert, weil wahrscheinlich die Referenz garnicht existiert. Bin aber auch auf der Arbeit und daher sind meine Möglichkeiten, hier was zu debuggen oder sonstiges nicht grade überragend ;)

Also wenns alles ordentlich funktioniert würde ich Thorium gerne in meinem Partikeleditor verwenden, hatte zwar auch mal kurz den Gedanken FBScript soweit wie nötig aufzupeppen aber warum sollte ich das tun wenns hier schon was gutes "ernsthaftes" gibt =)

Bis dahin ist es aber noch etwas hin... Aber dann könnte ich vielleicht deine Hilfe bei der Implementierung gebrauchen.

MFG

_________________
I'm not the signature, I'm just cleaning the floor...

Derzeitiges Projekt:
FireBlade Particle Engine (Release R2 2009.06.29)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: @Thorium Scripting Language
BeitragVerfasst: Mi Mär 10, 2010 14:20 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
Ich freue mich rieeesig, dass du Thorium in einer Produktivumgebung einsetzen willst :).

Zum Fehler: Ich würde mich über eine genauere Beschreibung freuen. Eventuell gibts nen Stacktrace, wenn dus in der Konsole ausführst? Oder kannst du einen aus Lazarus (Ansicht -> Debuggerfenster -> Aufrufstack) besorgen?

greetings

_________________
If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung.
current projects: ManiacLab; aioxmpp
zombofant networkmy photostream
„Writing code is like writing poetry“ - source unknown


„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: @Thorium Scripting Language
BeitragVerfasst: Mi Mär 10, 2010 15:23 
Offline
DGL Member
Benutzeravatar

Registriert: So Okt 26, 2003 20:07
Beiträge: 249
Hab ich mir gedacht ;) Ich kenn das ja bei mir auch ich würde mich auch mal freuen wenn FB in nem größeren Projekt eingesetzt würde xD Mache mir ja immernoch ein paar Hoffnungen mit Gael... =)

Den Stacktrace hatte ich ganz vergessen!
Das einzige, was ich dir geben kann, ist etwas, dass du glaub ich schon weißt.

Hier die Daten:
Code:
  1.  
  2. \examples\customlib\lib\i386-win32>rttisample
  3. Welcome to FUMS (Fake User Management System)
  4. New user.
  5. Enter user name: ddd
  6. Verifying user name ... valid.
  7. Real name: sksd
  8. An unhandled exception occurred at $0040241C :
  9. EAccessViolation : Access violation
  10.   $0040241C
  11.   $0042F1D0  TTHORIUMREFERENCEIMPLEMENTATION__FREEREFERENCE,  line 5799 of thorium.pas
  12.   $0048CEA0  TTHORIUMSTACK__CLEARSTACK,  line 15295 of thorium.pas
  13.  


line 15295 of thorium.pas: Hier steht extra was von Exception und unbeabsichtigtem Aufruf der Routine falls ich das noch richtig in Erinnerung hab, und in 5799 wird eben dieses FHostControlled Feld abgefragt.. Daher meine Vermutung, dass es mit meiner auskommentierten Zeile zusammenhängt.

Einen genaueren Stacktrace kann ich dir evtl. heute Abend irgendwann mal geben, oder morgen. Aber ich gehe mal davon aus, dass du das so schon nachvollziehen kannst.

MFG

_________________
I'm not the signature, I'm just cleaning the floor...

Derzeitiges Projekt:
FireBlade Particle Engine (Release R2 2009.06.29)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: @Thorium Scripting Language
BeitragVerfasst: Mi Mär 10, 2010 19:33 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
Hm … Bei mir crasht es sowohl mit i386-linux als auch mit i386-win32 an dieser Stelle nicht. Das Programm läuft ohne Probleme durch. Allerdings habe ich auch einige Dinge in der Datei fixen müssen, bis es lief, von daher lade ich jetzt 1.5.0.2 hoch. Ich hab allerdings einen Crash, wenn ich das Sample als 64-Bit Anwendung teste, den werde ich aber selber noch verfolgen müssen …

Schau mal, ob es jetzt bei dir läuft.

_________________
If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung.
current projects: ManiacLab; aioxmpp
zombofant networkmy photostream
„Writing code is like writing poetry“ - source unknown


„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: @Thorium Scripting Language
BeitragVerfasst: Do Mär 11, 2010 08:05 
Offline
DGL Member
Benutzeravatar

Registriert: So Okt 26, 2003 20:07
Beiträge: 249
Ja mit deinem Code gehts bei mir auch.. Hatte die Referenz oben auch noch anders... wahrscheinlich lags daran.

Den Crash beim Start kann ich leider garnicht nachvollziehen. Tritt wie gesagt nur in Lazarus auf und dass scheinbar auch nur, wenn man nicht debugt ;) werd das heute auch mal zu Hause am 64bit-Linux probieren können.

Ist es möglich, einfache Methoden und globale Variablen vom Host aus zu setzen?

MFG

_________________
I'm not the signature, I'm just cleaning the floor...

Derzeitiges Projekt:
FireBlade Particle Engine (Release R2 2009.06.29)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: @Thorium Scripting Language
BeitragVerfasst: Do Mär 11, 2010 18:01 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
Meinst du, globale Variablen die vom Skript deklariert wurden oder willst du Variablen aus dem Host heraus deklarieren?
Letzteres ist unter dem Stichwort Property bei eigenen Libraries zu finden. In der InitializeLibrary-Methode rufst du dann eine der RegisterProperty-Methoden für jede Property ( = globale Variable, die dann zugreifbar ist, wenn die Library eingebunden wurde) auf.
Callbackbasierte Properties sind eine Art virtuelle Property, die nur über Callbacks funktionieren.
Die Direct-Property erlaubt keine Kontrolle über den Zugriff, außer, dass Schreibzugriff aus dem Skript heraus generell verboten werden kann. Dafür ist dieser Typ auch am einfachsten zu handhaben. Aus dem Host heraus wird der Wert über die public-Property Value gesetzt. Wenn Value Werte zugewiesen werden, die nicht mit der TypeSpec übereinstimmen, die der Register-Methode übergeben wurde, kommt es zu … interessanten … Fehlern.
Die DirectSetCallback-Property funktioniert genauso wie die Direct-Property, nur, dass man hier ein Callback angeben muss, welches aufgerufen wird, wenn der Property aus dem Skript heraus ein neuer Wert zugewiesen wird.

Für Funktionen und Methoden sind die RegisterNativeCall-Methoden interessant. Für Beispiele empfehle ich, einen Blick in die Units des thoriumlibpkg zu werfen. Dort gibts zusätzlich zum example customlib noch weitere (einsatzbereite) Bibliotheken, die das ganze etwas veranschaulichen.

Noch Fragen? ;)

greetings
//Edit: nicht vergessen, die 1.5.0.3 runterzuladen ;)

_________________
If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung.
current projects: ManiacLab; aioxmpp
zombofant networkmy photostream
„Writing code is like writing poetry“ - source unknown


„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: @Thorium Scripting Language
BeitragVerfasst: Fr Mär 12, 2010 09:34 
Offline
DGL Member
Benutzeravatar

Registriert: So Okt 26, 2003 20:07
Beiträge: 249
Ja zwei hätte ich da im Moment tatsächlich noch... =) wie siehts denn mit records/struct von der Hostanwendung aus aus? Hab nur was mit Objekten gefunden auf die schnelle...
Werden typisierte Pointer unterstützt? Also sowas wie PMeinRecord = ^TMeinRecord... und die dann natürlich entsprechent dereferenziert mittels -> wie das bei C++ ist...

Und noch ne eher allgemeine Frage zu Lazarus... Kann mich mit dem Ding irgendwie nicht anfreunden! Hab die FPC-Quellen drauf und den Pfad dazu auch angegeben. Der beschwert sich auch nicht, dass der Pfad falsch ist (sonst bringt der ja diese Meldung, dass das Sourcen-Verzeichnis den und den Ordner enthalten müsste etc.). Trotzdem kann ich nichts kompilieren, weil der die Units nicht findet (md5, contnrs, evtl. noch weitere). Die findet der selbst dann nicht, wenn ich den Suchpfad direkt mit angebe... Woran könnte das liegen? Ist auch nur bei mir zu Hause auf 64bit Linux so...

MFG

_________________
I'm not the signature, I'm just cleaning the floor...

Derzeitiges Projekt:
FireBlade Particle Engine (Release R2 2009.06.29)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: @Thorium Scripting Language
BeitragVerfasst: Fr Mär 12, 2010 16:29 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
Nein, Records sind generell eher nicht unterstützt. Aber den Support für Pointer auf Records kann man mit einer Ableitung von TThoriumHostObjectType nachrüsten.

Was die Lazarus-Sache betrifft: Versuch mal, das Paket fcl über den Projektinspektor (Projekt -> Projekt-Inspektor) zu den Abhängigkeiten hinzuzufügen, wenn es nicht schon drin ist. Ansonsten … Keine Ahnung, ich habe hier keine Probleme (mehr). Unter Windows lief es damals auch reibungslos … Gegebenenfalls mal im lazarus-forum.de nachfragen.

greetings

_________________
If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung.
current projects: ManiacLab; aioxmpp
zombofant networkmy photostream
„Writing code is like writing poetry“ - source unknown


„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: @Thorium Scripting Language
BeitragVerfasst: Fr Mär 12, 2010 18:33 
Offline
DGL Member
Benutzeravatar

Registriert: So Okt 26, 2003 20:07
Beiträge: 249
Hm also das wäre wichtig. Pointer auf records würden mir schon reichen bzw. wären tatsächlich auch das, was ich brauche. Ist auf jeden Fall unersetzlich, da den Events ja immer ein Pointer auf die Partikeldaten mitgegeben wird und das ist nunmal ein record... Aber Pointer auf Variablen/Feldern gehen oder?

_________________
I'm not the signature, I'm just cleaning the floor...

Derzeitiges Projekt:
FireBlade Particle Engine (Release R2 2009.06.29)


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 45 Beiträge ]  Gehe zu Seite Vorherige  1, 2, 3  Nächste
Foren-Übersicht » Sonstiges » Meinungen zu den Projekten


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.014s | 17 Queries | GZIP : On ]