Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

LukasBanana

Alter Hase

  • »LukasBanana« ist der Autor dieses Themas

Beiträge: 1 097

Beruf: Shader Tools Programmer

  • Private Nachricht senden

91

09.05.2015, 12:09

Bin im Schätzen leider sehr schlecht, kann es dir also nicht auf Stunden abschätzen.
Aber in etwa 5 Monate arbeite ich jetzt an dem neuen Compiler.
Während des Semesters habe ich unter der Woche nur sehr wenig Zeit,
aber sitze dann Abends häufig doch noch mal 2 bis 3 Stunden dran.
Am Wochenende dann auch mal von Mittags (12:00) bis Abends (19:00 - 21:00) wenn ich gerade gut voran komme.
Jeden Falls eine ganze Menge Zeit, die ich in solche Hauptprojekte stecke :)

LukasBanana

Alter Hase

  • »LukasBanana« ist der Autor dieses Themas

Beiträge: 1 097

Beruf: Shader Tools Programmer

  • Private Nachricht senden

92

11.05.2015, 22:53

Dieses Feature würde ich mir in so manch anderem Compiler wünsche: Vorschläge bei Tippfehlern von Identifier

"did you mean ... " :thumbsup: (siehe Bild)
»LukasBanana« hat folgendes Bild angehängt:
  • 06 Identifier Suggestion.png

93

11.05.2015, 23:07

*hust* clang *hust*
"Theory is when you know something, but it doesn’t work. Practice is when something works, but you don’t know why. Programmers combine theory and practice: Nothing works and they don’t know why." - Anon

LukasBanana

Alter Hase

  • »LukasBanana« ist der Autor dieses Themas

Beiträge: 1 097

Beruf: Shader Tools Programmer

  • Private Nachricht senden

94

11.05.2015, 23:25

Ja, das clang gute Fehlermeldungen liefert wusste ich auch, nur speziell dieses Feature war mir neu.
Aber wieder schön auf Gemeinsamkeiten zu stoßen :-)

Noctarius

Treue Seele

Beiträge: 120

Wohnort: Düsseldorf

Beruf: Manager of Developer Relations at Hazelcast, Inc. & Consultant for Scaleable Gameserver Systems

  • Private Nachricht senden

95

12.05.2015, 09:18

Ich könnte mir vorstellen, dass dieses Feature bei großem Sourcecode Volumen und nicht internen Funktionen schon ein wenig Rechenzeit kosten könnte. Die Frage ist, braucht man sowas wirklich?

LukasBanana

Alter Hase

  • »LukasBanana« ist der Autor dieses Themas

Beiträge: 1 097

Beruf: Shader Tools Programmer

  • Private Nachricht senden

96

12.05.2015, 11:31

Die Frage ist, braucht man sowas wirklich?

Brauchen ist immer sehr relativ. Aber ich finde es ein sehr nettes Feature, denn Fehlermeldungen sollten hilfreich sein und "identifier XY not found" ist nicht gerade die hilfreichste Information, wie ich finde.

Zur Performance:
natürlich dauert das Suchen nach einem passenden Identifier länger als der Zugriff über eine Hash-Map (also Suche nach Gleichheit der Strings).
Allerdings wird dieser Mechanismus nur für die jeweilige Symboltabelle angewendet, in dem der Compiler gerade sucht, z.B. in der einer Klasse.
D.h. dieses Feature beeinflusst den gesamten Compile-Prozess nicht sonderlich stark.
Zudem wird es nur ausgeführt, wenn eben ein Identifier nicht gefunden wurde, d.h. im 'normalen' Compile-Vorgang, bei dem alles glatt läuft, beeinflusst es den Compiler-Vorgang überhaupt nicht.

Wenn man Skripte 60 mal pro Sekunden kompilieren möchte, dann ist das natürlich ein Problem :D

Sacaldur

Community-Fossil

Beiträge: 2 301

Wohnort: Berlin

Beruf: FIAE

  • Private Nachricht senden

97

12.05.2015, 11:47

[...] und "identifier XY not found" ist nicht gerade die hilfreichste Information, wie ich finde.
Da hat jemand wohl noch nie mit JavaScript im Internet Explorer 7 gearbeitet, oder? Dort lautet die entsprechende Fehlermeldung einfach nur "Das Objekt unterstützt die Eigenschaft oder Methode nicht!", auch obwohl der Fehler nur bei ungültigen Aufrufen von Methoden (Funktionen unterhalb von Objekten) auftreten kann.
Mit etwas Glück bringt einem die Zeilenangabe auch gar nichts, weil sie einfach nur falsch ist.

Und ich meine bereits weniger aussagekräftige Meldungen bekommen zu haben, nur hatte ich die oben beschriebene schon oft genug.


Unabhängig davon: man sollte sich bei der Anzeige von Alternativen nicht auf 1 Eintrag beschänken. Es kann durchaus sein, dass es mehrere "ähnliche" Methodennamen gibt.
Wenn der Hintergrund der Sprache eher Lernzwecke deinerseits sind, dann sehe ich kein großes Problem, ein solches Feature testweise einzubauen. Ich stimme dir aber dennoch zu, dass aussagekräftigere Fehlermeldungen immer wünschenswert sind, nur hatte mir immer die Aussage gereicht, dass die von mir angegebene Methode nicht vorhanden ist.
Spieleentwickler in Berlin? (Thema in diesem Forum)
---
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

98

12.05.2015, 17:26

Im Normalfall sind es ja auch Tippfehler und da weißt du hoffentlich was du eigentlich tippen wolltest.
Was die Übersetzungszeit angeht, wenn man das ganze jetzt bei einem JIT Compiler einsetzt dann sollte das nicht so ins Gewicht fallen. Der Trend geht dort ja hin. Und interessant ist das Feature alle mal.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

Beiträge: 1 223

Wohnort: Deutschland Bayern

Beruf: Schüler

  • Private Nachricht senden

99

12.05.2015, 19:54

Die Sache mit dem JIT Compiler verstehe ich nicht ganz. JIT heißt doch bloß, dass nicht der Code der Plattform ausgeliefert wird sondern der Zwischencode. Warum sollte die Ausführungsart eine Auswirkung auf die Hilfestellungen des Compiler (Front Ends) haben?

Ehrlich gesagt habe ich auch nicht den Eindruck, dass der Trend stark dorthin geht. Die Technik hat ganz klar Grenzen, Microsoft hat zum Beispiel erst vor kurzem eingesehen, dass die Bremse für viele Anwendungen einfach nicht optimal ist und das C# eine Alternative braucht: http://blogs.msdn.com/b/dotnet/archive/2…ve-preview.aspx

Ich finde solche Features übrigens sehr hilfreich. Das Feature kann Zeit sparen, weil man nicht den Namen nachschlagen muss. Besonders weniger erfahrene Programmierer, können von Hilfestellungen profitieren. Das führt zu weniger Frust beim Nutzer. Ich wünschte, mein Compiler würde mehr solche Dinge tun. Mit der Zeit gewöhnt man sich auch an die (schlechten) Fehlermeldungen, weil man einfach lernt, was sie wirklich bedeutet und wie man sie behebt. Besser wäre es, wenn der Compiler da etwas unterstützt! Sacaldur hat da bereits ein gutes Beispiel für eine schlechte Fehlermeldung genannt, aber ich habe früher auch sehr viel häufiger mit Fehlermeldungen gekämpft. Beispielsweise als ich neu wa und noch nicht so genau wusste, was Überladungen sind, war es für mich sehr schwer verständlich wenn der Compiler irgendetwas davon ausgab, dass er keine Überladung gefunden hätte und irgendeine Konvertierung gescheitert wäre. Ich meine, besonders für einen Anfänger wäre es wirklich extrem hilfreich, wenn der Compiler auch noch einen möglichen Lösungsvorschlag macht und die Sache näher erläutert. Ich denke, richtig gute Fehlermeldungen sind echt schwer zu entwickeln, aber so Dinge wie Verbesserungsvorschläge sind definitiv eine gute Idee und die richtige Richtung!

Noctarius

Treue Seele

Beiträge: 120

Wohnort: Düsseldorf

Beruf: Manager of Developer Relations at Hazelcast, Inc. & Consultant for Scaleable Gameserver Systems

  • Private Nachricht senden

100

14.05.2015, 13:54

Die Sache mit dem JIT Compiler verstehe ich nicht ganz. JIT heißt doch bloß, dass nicht der Code der Plattform ausgeliefert wird sondern der Zwischencode. Warum sollte die Ausführungsart eine Auswirkung auf die Hilfestellungen des Compiler (Front Ends) haben?

Ehrlich gesagt habe ich auch nicht den Eindruck, dass der Trend stark dorthin geht. Die Technik hat ganz klar Grenzen, Microsoft hat zum Beispiel erst vor kurzem eingesehen, dass die Bremse für viele Anwendungen einfach nicht optimal ist und das C# eine Alternative braucht: http://blogs.msdn.com/b/dotnet/archive/2…ve-preview.aspx
Mit dem Unterschied, dass .NET keinen echten JIT Compiler hat, sondern einen Ahead-Of-Time (am Anfang wurde alles beim Starten durch-compiliert, später dann bei der Installation - der Grund wieso .NET Anwendungen ewig zum installieren benötigen). Ein echter JIT ist z.B. der HotSpot Compiler (C1 & C2) in Java. Dieser optimiert und entfernt tatsächlich zur Laufzeit (teils sehr aggressiv) und muss dann auch schon mal Annahmen rückgängig machen. Allgemein erreicht man mit vollem JIT aber tatsächlich native Geschwindigkeit, da nach dem Aufwärmen der Anwendung eh alles hoch-optimierter, nativer Code ist und dieser durch die Analyse des Laufzeitverhalten auch noch ungenutzte Code-Branches entfernt wurden. Als letzter Punkt (natürlich abhängig vom AOT/JIT Compiler) kann dieser exakt auf die verwendete CPU Architektur optimieren.

Werbeanzeige