Auf Grenzen bei IDEal gestoßen

Übersicht BlitzBasic Allgemein

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen

 

Omenaton_2

Betreff: Auf Grenzen bei IDEal gestoßen

BeitragMi, Apr 21, 2010 11:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo !

Ich bin bei meinem großen Projekt schon wieder auf Grenzen gestoßen, diesmal beim IDEal.

Wie Einige von euch sich sicherlich noch daran erinnern können, habe ich vor ca einem halben Jahr geschrieben, daß ich von dem standard Blitz Basic IDE verabschieden mußte, weil es nur 1024 KB große Files editieren kann.
Damals bin ich auf IDEal umgestigen und war damit bis heute glücklich.

(und ja, ich include Programmteile reichlich, aber ich will nicht zu viel auslagern müssen.)

Nun, heute wollte IDEal mein Spiel nicht mehr kompilieren, hat offenkundig unwahre Fehlermeldungen ausgegeben, wie "Label not defined" und sowas. Zu erst dachte ich, daß sei ein Fehlverhalten von IDEal oder von dem Compiler, der auch dann auftritt, wenn man eine Schleife oder ein If Then Block nicht richtig abschließt. Ich habe den Stück neu hinzugefügten Code sehr genau unter die Lupe genommen, aber da ist mit 100% Sicherheit alles in Ordnung.

Dann um den Fehler zu finden, habe ich angefangen aus der neuen Rutine Stück für Stück Code-Teile zu löschen, um zu sehen, ab wann das Programm wieder läuft.
Und ja, nach dem ich ca die Hälft des neuen Codes entfernt habe lief es wieder. Ich habe auch exakt die Zeile gefunden in der es noch läuft und dann wo es nicht mehr kompiliert.

In der Zeile war garantiert kein Fehler.
Zu meinem Erstaunen mußte ich feststellen, daß nach dem ich eine leere Zeile weniger gemacht habe, ging es pltötzlich.
Es ist jetzt so, daß wenn ich nur 1 leere Zeile mehr einfüge, bricht IDEal das Kompilieren mit einem unwahren Fehlermeldung ab.

Es ist aber so, daß diese 1 zusätzliche leere Zeile (oder mit x-beliebigem Inhalt) den Fehler nur verursacht, wenn es VOR dem aller letzten Return in gesamten Code eingegeben wird.
Ich habe ganz am Ende des Codes noch ein Label, der ProgEnde heißt, wo dann nur ein END Befehl steht. Da kann ich noch leere Zeilen einfügen, aber hilft natürlich nicht.

Ich habe dann den neuen Stück Code, den IDEal nicht mehr akzeptieren will mit Include ausgelagert und so läuft alles gut. Also Includes lösen das Problem.

Ich bin nur enttäuscht, daß IDEal nur wenig mehr als der Standard IDE verträgt.
Mein Haupt Code File ist 1160 Kb groß. Die Summe aller Code Files (also mit Includes ist 3,29 MB groß (aber das scheint egal zu sein.)

Mein Haupt Code, in dem ich ohne Platzschaffen durch auslagern nicht mehr editieren kann macht Probleme ab 32782 Zeilen.

Na ja, ich bin jetzt wo ich sehe, daß ich das Problem mit Includen lösen kann erstmal beruhigt, aber es ist schon beängstigend, daß immer wieder solche undokumentierte Grenzen gefunden werden.

kennt eventuell jemand einen andern guten Editor, der aber garantiert nicht so schnell blöde Einschränkungen aufweist ? (Allerdings sollte die Einschränkung von Blitz Exe herrühren, dann hilft da kein anderer Editor.)
 

Krischan

BeitragMi, Apr 21, 2010 11:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Probier doch mal Dein Programm direkt über Kommanzozeile zu kompilieren, wenn das auch nicht geht hilft nur Code ausmisten:

https://www.blitzforum.de/foru...hp?t=32432

Chrise

BeitragMi, Apr 21, 2010 12:56
Antworten mit Zitat
Benutzer-Profile anzeigen
vielleicht kann man ja Teile aus dem Code Includen lassen. Z.b. eine bb-datei nur mit Funktionen, eine nur mit Data usw.
Vielleicht kompeliert es ja dann wieder Wink
Llama 1 Llama 2 Llama 3
Vielen Dank an Pummelie, der mir auf seinem Server einen Platz für LlamaNet bietet.
 

Omenaton_2

BeitragMi, Apr 21, 2010 14:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke für die Tipps.

Wie gesagt, ich komme jetzt mit dem Problem klar, in dem ich einfach noch mehr als bisher durch Include auslagere.
Ich wollte euch alle trotzdem über diese entdeckte Einschränkung informieren.

peacemaker

BeitragMi, Apr 21, 2010 15:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Du solltest dir vlt wirklich das mit den includes angewöhnen.

Ich arbeite an einem Projekt das weitaus mehr als 40 000 Zeilen hat, und da hab ich auch dank den Includes noch schön die übersicht.

Ansonsten, IDEal ist schon einer der besten IDEs für BB.
~Tehadon~
www.tehadon.de
http://www.blitzforum.de/worklogs/14/
 

BBPro2

BeitragMi, Apr 21, 2010 16:35
Antworten mit Zitat
Benutzer-Profile anzeigen
hört ihm denn keiner zu ?
er included ohne ende und nur eine der dateien hat ~30,000 zeilen code

insgesamt sind es also viel mehr zeilen code

wie kann man denn 2 mal den tipp "includen" geben wenn der betroffene vermutlich
rund 100 auslagerungsdateien hat?? >_>
 

CO2

ehemals "SirMO"

BeitragMi, Apr 21, 2010 16:40
Antworten mit Zitat
Benutzer-Profile anzeigen
wieviele zeilen von den 40000 sind denn in der Repeat-Schleife (sofern vorhanden)?

weil ich mir ned vorstellen kann, dass ein pc so viele zeilen mehrmals in einer sekunde durchgehen kann.
mfG, CO²

Sprachen: BlitzMax, C, C++, C#, Java
Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti

Xeres

Moderator

BeitragMi, Apr 21, 2010 16:42
Antworten mit Zitat
Benutzer-Profile anzeigen
...dass die Zeilen da sind, heißt ja nicht, dass sie auch bearbeitet werden.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

Starwar

BeitragMi, Apr 21, 2010 16:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie schon in anderen Themen besprochen (ich denke mal das ist noch aktuell): Goto/Gosub ganz raus und Funktionen machen. Die kann man dann auch ganz leicht auslagern. Und wenn die die Dateien nur durchnummeriert.
MFG
 

CO2

ehemals "SirMO"

BeitragMi, Apr 21, 2010 18:37
Antworten mit Zitat
Benutzer-Profile anzeigen
@Xeres:

Das heißt es nicht, da hast du recht, aber schon bei 5000 zeilen in einer schleife bin ich ganz schön geplättet.
mfG, CO²

Sprachen: BlitzMax, C, C++, C#, Java
Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti

BladeRunner

Moderator

BeitragMi, Apr 21, 2010 19:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Nicht die Anzahl an Zeilen ist das Entscheidende, als vielmehr der Aufwand den sie auslösen. Moderne Rechner bringen es auf einige Milliarden Taktzyklen pro Sekunde, das macht immer noch mehrere Hundert Millionen Operationen pro Sekunde. Wenn Du also 'flotte' Operationen wie zB. Additionen machst kannst du Millionen davon durchschleusen.
Der Quellcode eines modernen Betriebssystems hat sicherlich einige Millionen Zeilen Umfang, der Kernbetrieb wird sicher auch mehrere zigtausend Schritte benötigen, ohne dass es den Prozessor in die Knie zwingt.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

mpmxyz

BeitragMi, Apr 21, 2010 19:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Was auch immer du machst, bei meinem Ideal klappte ein Test auch mit 1345 KiB bzw. ein anderer Test mit 1619 KiB.
Bei diesen Größen hat man meiner Meinung nach aber das logische Trennen verschlafen.
Da sollte man sich nicht so sehr über undokumentierte Grenzen aufregen.

Mehrere Fragen aus Interesse:
Wozu hast du eine Datei mit mehr als 30.000 Zeilen und mehr als einem MiB Code bzw. was wird dort alles gemacht? Passt das alles zusammen?
Was kann die Spieleengine alles, wenn sie so viel Code braucht?
Da diese Fragen relativ Offtopic sind, kannst du auch per PN antworten.
mfG
mpmxyz
P.S.: Ich stehe weiterhin zu meinen Aussagen des letzten Jahres.
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer

peacemaker

BeitragDo, Apr 22, 2010 10:07
Antworten mit Zitat
Benutzer-Profile anzeigen
BBPro2 hat Folgendes geschrieben:
hört ihm denn keiner zu ?
er included ohne ende und nur eine der dateien hat ~30,000 zeilen code

insgesamt sind es also viel mehr zeilen code

wie kann man denn 2 mal den tipp "includen" geben wenn der betroffene vermutlich
rund 100 auslagerungsdateien hat?? >_>

Dann halt auch diese 30 000 aufteilen? Ich verstehe das nicht ganz, ich mein wenn ein Subsystem so viele Zeilen braucht, kann man es doch immernoch aufteilen?


Zitat:
wieviele zeilen von den 40000 sind denn in der Repeat-Schleife (sofern vorhanden)?

weil ich mir ned vorstellen kann, dass ein pc so viele zeilen mehrmals in einer sekunde durchgehen kann.


Viele Very Happy
Das ist aber wie Bladerunner schon sagt, irrelevant, es ist viel wichtiger was darin passiert.
~Tehadon~
www.tehadon.de
http://www.blitzforum.de/worklogs/14/
 

Omenaton_2

BeitragDo, Apr 22, 2010 10:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Bitte liest zu erst genau die Nachricht auf die ihr antworten wollt und überlegt auch erstmal was ihr schreibt und ob das was ihr schreibt auch irgendwie hilfreich sein kann oder nicht.

Ich habe deutlich geschrieben, daß ich schon sehr viel durch include ausgelagert habe UND das ich mein neu aufgetauchtes Grenz-Problem durch noch mehr includen lösen werde.

Zu den anderen Vermutungen und aus Unkenntnis resultierenden Unverständnissen äußere ich mich gar nicht.

Smily

BeitragDo, Apr 22, 2010 11:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich glaube ja, es besteht eher ein grundlegendes Problem mit deinem Code-Design

Soviel Code ist selbst für große BB-Projekte enorm.

Grüße,
Smily
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets

"Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!"
stummi.org
 

BBPro2

BeitragDo, Apr 22, 2010 13:24
Antworten mit Zitat
Benutzer-Profile anzeigen
das kommt ganz drauf an was man programmiert smily

mir kommt es auch hammer viel vor und ich weiß nicht wie er das
ohne copy & paste geschafft haben soll, sofern folgendes gilt:

1) er arbeitet alleine an dem projekt (oder nur zu 2.)
2) er ist nicht arbeitslos und opfert 10h/Tag für das Projekt

wenn ers mit copy & paste erreicht hat ists sein fehler, denn dann ist der
code schlichtweg falsch designed

andernfalls: respekt, bin mal gespannt wann ich erstmals ein so großes
projekt zu gesicht bekomme und damit arbeiten muss...
ich glaube das wird ne harte nuss


darf man eigentlich fragen um welches projekt es sich handelt?

peacemaker

BeitragDo, Apr 22, 2010 13:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Das ist schneller erreicht als man glaubt... und wenn man z.B. über 2 oder 3 Jahre daran arbeitet, dann kann es sowas schon geben.

Stranded 2 hatte ja auch um die 50 oder 40 000...
~Tehadon~
www.tehadon.de
http://www.blitzforum.de/worklogs/14/

faeX

BeitragDo, Apr 22, 2010 15:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich glaube das besagte Projekt ist "Tehadon". (einmal in die Signatur geguckt und schon kam der Geistesblitz...) EDIT: Fail...

Ansonsten, ja, ich wiederhole nur: Includen.
Includen.
Includen.
Nochmals: Includen.

Was schon in einer Include ist, nochmal (sinnvoll!) aufsplitten und wieder includen.
Wenn die Funktionen sich ungünstig "überlappen" und Blitz dann die Funktionen nicht mehr findet: Decl's schreiben!

Ansonsten ist es auch nicht schwer auf die 30.000 zu kommen, auch wenn man nicht unnötig Copy&Pastet.
Zeit ist ein langsamer, aber zuverlässiger Arbeiter. Das rappelt sich mit der Zeit. Very Happy
Außerdem: Ich persönlich habe (fast) nie mehr als 2.000 Zeilen in einer Include, auch ohne Copy&Paste. So behält man die Übersicht.
  • Zuletzt bearbeitet von faeX am Do, Apr 22, 2010 19:23, insgesamt einmal bearbeitet
 

BBPro2

BeitragDo, Apr 22, 2010 16:54
Antworten mit Zitat
Benutzer-Profile anzeigen
faeX hat Folgendes geschrieben:
Ich glaube das besagte Projekt ist "Tehadon". (einmal in die Signatur geguckt und schon kam der Geistesblitz...)


arrogant und fail. das ist bitter.

der threadersteller hat keine signatur und es handelt sich nicht um peacemaker -.-
denken, DANN schreiben

Starwar

BeitragDo, Apr 22, 2010 17:53
Antworten mit Zitat
Benutzer-Profile anzeigen
BBPro2 hat Folgendes geschrieben:
[...]
arrogant und fail. das ist bitter.
[...]
denken, DANN schreiben

FAIL!
feaX Post bezieht sich mit Sicherheit auf den hier mitredenden Peacemaker. Warum sollte er nicht?
MFG

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group