Gamestudio Links
Zorro Links
Newest Posts
AlpacaZorroPlugin v1.3.0 Released
by kzhao. 05/22/24 13:41
Free Live Data for Zorro with Paper Trading?
by AbrahamR. 05/18/24 13:28
Change chart colours
by 7th_zorro. 05/11/24 09:25
Data from CSV not parsed correctly
by dr_panther. 05/06/24 18:50
AUM Magazine
Latest Screens
The Bible Game
A psychological thriller game
SHADOW (2014)
DEAD TASTE
Who's Online Now
0 registered members (), 984 guests, and 5 spiders.
Key: Admin, Global Mod, Mod
Newest Members
LucasJoshua, Baklazhan, Hanky27, firatv, wandaluciaia
19053 Registered Users
Previous Thread
Next Thread
Print Thread
Rate Thread
Page 1 of 2 1 2
Lite-C Frage #170179
11/29/07 17:07
11/29/07 17:07
Joined: Oct 2002
Posts: 4,753
Munich, Bavaria, South of Germ...
TripleX Offline OP
Expert
TripleX  Offline OP
Expert

Joined: Oct 2002
Posts: 4,753
Munich, Bavaria, South of Germ...
Hey,

In dem anderen Thread von Fogman haben Sie gesagt, dass die Compilerzeiten von Lite-C Programmen steigen werden. Wäre grundsätzlich fantastisch, ich habe trotzdem folgende Fragen:

  • Wie sie bereits gesagt haben (ich habe mich von den Vorteilen überzeugen lassen ) ist in vielen Fällen die Konvertierung in eine DLL so wie so besser als die Konvertierung zu Lite-C. Sie ist allerdings auch etwas "bug-itensiver", da Lite-C einen einfach sehr viel Arbeit abnimmt (var a += 1; ist unterstützt, Pointer Probleme gibt es nicht, Debugging ist besser, usw.). Ich will daher wenn möglich vor allem die Teile von dem WDL Code exportieren, die viel Compilerzeit unter LITE-C verbrauchen und den Rest, um eine GameEdit Version in nächster Zeit zu ermöglichen, direkt nach Lite-C Konvertieren (was wesentlich schneller geht).
    Sind dies vor allem Objekte, wie z.B. Panels / Texte / Strings / Arrays? (die könnte ich per pan_create / txt_create / str_create usw. dynamisch erstellen) Oder gilt generell einfach ein linerer Anstieg der Compilerzeit bei längern Code?
    Benötigen "Deppen Funktionen" wie z.B.

    Code:

    reset(a,VISIBLE);
    reset(b,VISIBLE);
    reset(c,VISIBLE);
    //......



    kürzere Compilerzeit als komplexere Funktionen (While / if / for Verschachtelungen) (auch wenn hier evtl. mehr Zeilen vorhanden sind) ?

  • (Folgender Absatz gilt nur, falls die neuere lite-c version große Projekte nur geringfügig beschleunigt).

    Eine Generelle Frage (vll. doofe Frage, keine Ahnung): Wenn man ein Lite-C Projekt publisht, habe ich gehört, dass die Compilerzeit von Lite-C extrem gesenkt wird, bzw. nach dem Handbuch gar nicht mehr kompiliert wird (
    Quote:

    Compiles an .exe file from the .c code ( not supported by the free version). Exe files don't need to be compiled and thus start faster than .c files.


    ).
    Generell bedeutet dies ja, dass eine Vorkompilierung von C-Lite Code durchaus möglich ist. Wäre es dann theoretisch nicht auch möglich ein ganzes Projekt vor zu kompilieren? Bzw. noch besser einzelne C Dateien? (Wenn man garantieren kann, dass sich diese C-Dateien nie mehr ändern).

    In großen Projekten ist bei Lite-C (persönliche Meinung) ein Problem im Workflow vorhanden. Wenn allein das Projekt starten 30-60 Sekunden dauert, hat man als Programmierer der auf eine "Schritt-für-Schritt" Programmiertechnik arbeitet große Probleme. Eine Vorkompilierung einzelner Bereiche würde hier helfen.

    1) Ist das technisch machbar (Ohne Konvertierung zu C++)?
    2) Soll dies hierüber "Die Möglichkeit zum Compilieren von Win32 DLL-Bibliotheken" erreicht werden (Forecast Seite)



Vielen Dank für die Beantwortung der Fragen.. Ich kenne mich leider in einer Compilerstruktur nicht sonderlich gut aus und kann sie mir daher nicht selber beantworten (stichwort vorkompilierung).
Timo

Re: Lite-C Frage [Re: TripleX] #170180
11/29/07 17:12
11/29/07 17:12
Joined: Sep 2003
Posts: 9,859
F
FBL Offline
Senior Expert
FBL  Offline
Senior Expert
F

Joined: Sep 2003
Posts: 9,859
Die gelisteten "Deppen-Funktionen" dürften defines sein und werden per Präprozessor durch den eigentlich dahintersteckenden Code ersetzt. Normalerweise sollte das nicht viel Zeit fressen.

Die Kompilierzeit wird sich beim Vorkompiliern wohl nicht viel ändern, aber eine vorkompilierte A7 exe ist - anders als bei A6, wo das Script beim Starten compiliert wird, schon fix und fertig.

Wartezeit bleibt also lediglich, bis alle Ressourcen wie Sounds, Modelle, Texturen... geladen sind, und die Engine selbst gestartet ist.


Vergleich das am besten mit dem Builden von Levels. Im fertigen Spiel bentutz du ja auch das wmb file, und nicht die wmp, die ja erst noch gebuildet werden muß

Re: Lite-C Frage [Re: FBL] #170181
11/29/07 17:20
11/29/07 17:20
Joined: Oct 2002
Posts: 4,753
Munich, Bavaria, South of Germ...
TripleX Offline OP
Expert
TripleX  Offline OP
Expert

Joined: Oct 2002
Posts: 4,753
Munich, Bavaria, South of Germ...
1) Die "Deppen-Funktionen" sind Defines ja. Ich meinte allerdings auch weniger diese Defines mit den Deppen Funktionen sondern die gesammte Funktion die diese umschließt..

Bsp:
Code:

void* a()
{
var a=0;
a+=1;
a+=1;
//1000 zeilen
}

void* a()
{
var a=0;
while(a < 1000)
{
a += 1;
}
}



Hier natürlich ein extremer Fall (ich schätze mal die untere Funktion ist schneller kompiliert ). Grundsätzlich nur die Frage ob die Compilingzeit für Code nur von der Code-LÄNGE (wie in der ersten Funktion) oder auch von ihrer Komplexibilität (viele for/if/while Verzweigungen, evtl. Rekrusiv u.v.m.) abhängt.

2) Natürlich ändert sich die Kompilierzeit beim Vorkompilieren nicht. Aber wenn man vorkompilierte Codes z.B. über
#include "Vorkompiliertes_Projekt1.ccc"
Einbinden könnte... ==> Workflow erhöhung, da man nicht mehr auf abgeschlossene C-Dateien,die sich während der Projektentwicklung nicht mehr ändern werden, beim kompilieren "warten" muss.

Re: Lite-C Frage [Re: TripleX] #170182
11/30/07 09:04
11/30/07 09:04
Joined: Jul 2000
Posts: 27,986
Frankfurt
jcl Offline

Chief Engineer
jcl  Offline

Chief Engineer

Joined: Jul 2000
Posts: 27,986
Frankfurt
Normalerweise ist die Compilierzeit proportional zur Codelänge. Aufgrund eines Konzeptionsfehlers in der Verwaltung von Konstanten hat lite-C jedoch eine Compilierzeit, die unter bestimmten Umständen nichtlinear mit der Zahl der Konstanten in Funktionen ansteigt. Das war der Grund für die minutenlange Compilierzeit Ihres alten GameEdit Codes und wird in einem der nächsten Updates korrigiert.

Vorcompilierter Code startet in Sekunden. Hierzu benutzen Sie die -exe Funktion und geben statt der .c die erzeugte .exe Datei an (oder Sie starten die EXE direkt).

Lite-C enthält keinen Linker, so dass der Code nur als Ganzes und nicht teilweise compiliert werden kann. Diese Einschränkung soll künftig durch die Möglichkeit umgangen werden, Teile des Codes als DLL zu compilieren.

Re: Lite-C Frage [Re: jcl] #170183
11/30/07 09:49
11/30/07 09:49
Joined: Jul 2002
Posts: 4,436
Germany, Luebeck
Xarthor Offline
Expert
Xarthor  Offline
Expert

Joined: Jul 2002
Posts: 4,436
Germany, Luebeck
Quote:


Lite-C enthält keinen Linker, so dass der Code nur als Ganzes und nicht teilweise compiliert werden kann. Diese Einschränkung soll künftig durch die Möglichkeit umgangen werden, Teile des Codes als DLL zu compilieren.





Könnte jemand erörtern welche Vor- und Nachteile DLLs gegenüber einem Linker haben?

Danke im Voraus.

Re: Lite-C Frage [Re: Xarthor] #170184
11/30/07 10:08
11/30/07 10:08
Joined: Nov 2004
Posts: 7,121
Potsdam, Brandenburg, Germany
Machinery_Frank Offline
Senior Expert
Machinery_Frank  Offline
Senior Expert

Joined: Nov 2004
Posts: 7,121
Potsdam, Brandenburg, Germany
Quote:

Könnte jemand erörtern welche Vor- und Nachteile DLLs gegenüber einem Linker haben?





Während der Linker über eine Logik im User-Interface automatisch entscheiden könnte, welche Teile neu kompiliert werden müssen / können, entscheidest Du das bei einer DLL gewöhnlich selbst. Es ist also mehr manuelle Arbeit.

Die DLL hat gewöhnlich eine Schnittstelle, mit der man dessen bereits kompilierte Funktionen veröffentlicht hat und später ansprechen kann und ist damit vom Design aufwändiger, könnte aber mit einer Doku an andere Entwickler weiter gegeben werden.


Models, Textures and Games from Dexsoft
Re: Lite-C Frage [Re: Machinery_Frank] #170185
11/30/07 10:21
11/30/07 10:21
Joined: Jul 2002
Posts: 4,436
Germany, Luebeck
Xarthor Offline
Expert
Xarthor  Offline
Expert

Joined: Jul 2002
Posts: 4,436
Germany, Luebeck
Vielen Dank Frank!

D.h. eigentlich wäre beides ein nettes add-on für Lite-C bzw. SED.
Zum einen ein Linker da man bei größeren Projekten nicht selbst immer alle module die man geändert hat neu als .dll kompilieren muss und andererseits die DLLs um Module zu entwickeln die man dann anderen Entwicklern zur verfügung stellen kann.

@JCL:
Wäre es möglich auch den Linker auf die "future-list" zu setzen?

Re: Lite-C Frage [Re: Xarthor] #170186
11/30/07 10:45
11/30/07 10:45
Joined: Jul 2000
Posts: 27,986
Frankfurt
jcl Offline

Chief Engineer
jcl  Offline

Chief Engineer

Joined: Jul 2000
Posts: 27,986
Frankfurt
Nein, denn Lite-C ist ein reiner Compiler.

Linker und DLL unterscheiden sich weniger in "Logik im User-Interface", sondern im Laden des vorcompilierten Codes. Ein Linker hängt den als Library vorcompilierten Code an die EXE an. Eine DLL wird dagegen erst zur Laufzeit von der EXE dazu geladen. Vorteil einer DLL ist Einfachheit - sie kann problemlos von mehreren Programmen benutzt und an andere weitergegeben werden kann. Bei einer linkbaren Library gilt das theoretisch zwar auch, es ist aber deutlich umständlicher, so dass heutzutage zur Weitergabe von Code-Bibliotheken praktisch nur noch DLLs benutzt werden.

Re: Lite-C Frage [Re: jcl] #170187
11/30/07 11:08
11/30/07 11:08
Joined: Nov 2004
Posts: 7,121
Potsdam, Brandenburg, Germany
Machinery_Frank Offline
Senior Expert
Machinery_Frank  Offline
Senior Expert

Joined: Nov 2004
Posts: 7,121
Potsdam, Brandenburg, Germany
Quote:

Linker und DLL unterscheiden sich weniger in "Logik im User-Interface", sondern im Laden des vorcompilierten Codes.




Vielleicht habe ich mich umständlich ausgedrückt.

Die "Logik des UI", wie ich es bezeichnet habe, ist eine Funktion im Compiler, die bei vielen Systemen so funktioniert, dass sie entscheided, ob eine Datei aus Ihrem Quellcode neu kompiliert werden muss oder ob die bereits kompilierte Version einfach per Linker angefügt wird.

Durch solche Tricks kann z.B. ein Delphi-Compiler meine Projekte mit mehreren 100 Tausend Zeilen Quellcode in wenigen Sekunden kompilieren, wenn ich nur einige Änderungen in bestimmten Formularen oder Units vornehme.


Models, Textures and Games from Dexsoft
Re: Lite-C Frage [Re: Machinery_Frank] #170188
11/30/07 12:24
11/30/07 12:24
Joined: Sep 2003
Posts: 9,859
F
FBL Offline
Senior Expert
FBL  Offline
Senior Expert
F

Joined: Sep 2003
Posts: 9,859
Ich würde es begrüßen, wenn ein tmp oder out Ordner eingeführt wird, in dem erstmal alle Codefiles kopiert werden, und dort dann gebuildet wird.
So kann man anhand von Datum und Dateigröße beim nächsten Kompiliervorgang überprüfen, welche Datien wirklich neu kompiliert werden müssen.

Ist das ohne Linker überhaupt so ohne weiteres möglich? Ichs tells mir etwas komplex vor, aber wenns gehen würde, fände ich das eine sinnvolle Neuerung - zusätzlich zum DLL Compiler.

Page 1 of 2 1 2

Moderated by  old_bill, Tobias 

Gamestudio download | chip programmers | Zorro platform | shop | Data Protection Policy

oP group Germany GmbH | Birkenstr. 25-27 | 63549 Ronneburg / Germany | info (at) opgroup.de

Powered by UBB.threads™ PHP Forum Software 7.7.1