Projekt AngelWing (formerly known as Angeldust)
-
rapso schrieb:
Scorcher24 schrieb:
blanker neid von dieser seite des monitors.
Eigentlich heisst das ja jetzt horizontal benachteiligt :-).
However, /push fürs update :p
rya.
-
Hab nur einen Blick rein geworfen. So was solltest du überdenken:
template<typename T> void awRelease(T* ptr) { if ( ptr ) { ptr->Release(); ptr = NULL; } }
Entweder hast du ein Zeichen vergessen oder eine unnötige Anweisung drin.
Gruß
Don06
-
Don06 schrieb:
Hab nur einen Blick rein geworfen. So was solltest du überdenken:
template<typename T> void awRelease(T* ptr) { if ( ptr ) { ptr->Release(); ptr = NULL; } }
Entweder hast du ein Zeichen vergessen oder eine unnötige Anweisung drin.
Gruß
Don06Was genau meinst du?
Das Template existiert, damit Zeiger wiederverwendet werden können. Wenn ich nur ptr->Release() mache, dann ist es nicht 100% garantiert, dass eine Abfrage auf NULL erfolgreich ist. Deswegen ist das so geschrieben.
rya.
-
Was genau ist AngelWing denn nun? Aus der Feature-Liste werde ich nicht so wirklich schlau, hört sich aber nach einem Compiler/Interpreter an, den man scheinbar auch in anderen Anwendungen benutzen kann (also auch als Scripting-Engine einsetzbar ist).
Aber eine kurze Erklärung in ein oder zwei Sätzen was AngelWing ist wäre dennoch nett.
-
Scorcher24 schrieb:
Was genau meinst du?
Die Anweisung
ptr = NULL;
meine ich. Damit veränderst du nur den kopierten Parameter.
Gruß
Don06
-
Oh, das habe ich tatsächlich verbockt, sorry :(.
AngelWing ist ein Programm, welches sich an make orientiert (deswegen heisst das Frontend auch asmake.exe), um den Build-Prozess von Scripts für die Scriptsprache Angelscript zu vereinfachen und zu automatisieren.
Da AngelScript von Haus aus keinen Preprocessor mitbringt, habe ich mittels boost::wave einen hinzugefügt, der in Zukunft noch erweitert wird.Anmerkung:
AngelScript ist eine Scriptsprache für C und C++ um Scripting in Anwendungen einzubauen.
Sehr geil gemacht übrigens, da kannste LUA und Python echt in die Tonne treten was embedding betrifft.
rya.
-
Don06 schrieb:
Scorcher24 schrieb:
Was genau meinst du?
Die Anweisung
ptr = NULL;
meine ich. Damit veränderst du nur den kopierten Parameter.
Gruß
Don06Richtig, das ist so gewollt. Das ist für Klassen, wo ich einen Referenz-Zeiger (reference-counted) erhalte. Wenn ich diese Freigebe, dann ist der Zeiger auf diese KLlasse ungütlig. Damit der Zeiger aber wiederverwendbar ist, wird er auf NULL gesetzt, damit ein Test auf NULL erfolgreich ist.
-
Scorcher24 schrieb:
Oh, das habe ich tatsächlich verbockt, sorry :(.
AngelWing ist ein Programm, welches sich an make orientiert (deswegen heisst das Frontend auch asmake.exe), um den Build-Prozess von Scripts für die Scriptsprache Angelscript zu vereinfachen und zu automatisieren.
Da AngelScript von Haus aus keinen Preprocessor mitbringt, habe ich mittels boost::wave einen hinzugefügt, der in Zukunft noch erweitert wird.Anmerkung:
AngelScript ist eine Scriptsprache für C und C++ um Scripting in Anwendungen einzubauen.
Sehr geil gemacht übrigens, da kannste LUA und Python echt in die Tonne treten was embedding betrifft.
rya.Von Angelscript habe ich schon gehört. Dein Projekt hört sich interressant an, werde ich mir nachher mal anschauen
Wegen dem "ptr = NULL"-Bug, der lässt sich ganz leicht beheben indem du ptr als Referenz übergibst (also *T & ptr)
-
FYI: Neue Version hochgeladen
Siehe Changlog für Details.edit:
Als kleiner Anreiz:
Wer Lyx sein eigen nennt und interesse hat, im Verzeichnis "doc" ist eine frühe Version meines Tutorials zu Angelscript enthalten. Momentan nur im Latex-Format, da es noch nicht 100% für die Öffentlichkeit bestimmt ist. Aber vllt mag ja jemand reinschauen. Momentan findet man allerdings nur die Beschreibung der Sprache Angelscript, das C++-Zeug wollte ich jetzt die nächsten Tage machen. Hab dann Urlaub und dann mehr Zeit (vor allem abends).
rya.
-
Ich hab das Programm am Wochenende auf AngelScript-Version 2.15.2 geupdatet, da AngelScript nun Vererbung unterstützt.
Folgende Hilfe wäre sehr willkommen:
* Implementieren von awExtensionLoader für Linux, Unix oder Mac oder jedes andere System auf dem AngelScript läuft und das dynamisch geladene Module unterstützt.Nach Möglichkeit bitte als .patch an die o.g. Email-Adresse.
Danke im voraus :).
rya.