Danke für -g3, das kannte ich noch nicht.
-fno-limit-debug-info hat allerdings keinen Einfluss auf Code oder Debug-Informationen (zumindest in meinem Szenario).
Hier 13.0.0 beta … tatsächlich ist ja schon 14 stable
Ich wollte auf 14.0.0 aktualisieren um zu prüfen, ob der Bug vielleicht behoben ist.
Dann rege ich mich direkt weniger auf, denn nun sind alle nicht-trivialen Zeichen verboten. Meine letzten Kritikpunkte sindhttps://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p1949r7.html hat geschrieben:The status quo of emoji support is an accident.
Weil der Lexer irgendwie zwischen Identifieren und anderen Token unterscheiden muss. Soll ² wirklich ein valider Name sein? Welche Symbole sollen erlaubt sein? Wieso genau die und nicht das hier auch noch? Aber das dort ist erlaubt, wieso soll mein Lieblingssymbol aus meiner Sprache nicht erlaubt sein? Aber natürlich nur wenn es in einer bestimmten Kombination mit bestimmten anderen Symbolen vorkommt weil sonst macht das keinen Sinn. Oh aber vielleicht würden wir dieses Symbol später irgendwann doch mal als Operator verwenden wollen? …Du siehst das wird sehr schnell extrem kompliziert auf allen Ebenen, technisch, designmäßig und auch politisch. Das Unicode Consortium existiert einzig und allein um auf genau solche Fragen Antworten zu finden, die linguistisch Sinn machen und mit denen alle leben können. Es macht keinen Sinn, die ganze Arbeit die dort über die Jahrzehnte geleistet wurde zu duplizieren weil was auch immer dabei rauskommt wird nicht signifikant besser werden. Genau darum ja das von dir verlinkte Proposal zur Adoption von UAX31…
Unicode in Identifiern ist soweit ich das sehen kann schon seit C++98 erlaubt und seit damals praktisch unverändert. UAX31 gab's damals noch nicht (erster Draft 2003, erste offizielle Recommendation 2005)…Krishty hat geschrieben: ↑28.05.2022, 03:00[*]Warum nicht von Anfang an so? Warum haben die C++14 vor zehn Jahren(!!!) so verkackt, dass jetzt alles zurückgerollt und Boatloads von funktionierendem Code kaputtgemacht werden müssen?![/list]
Für das zweite habe ich eine Antwort, aber die ist nicht politisch korrekt, also behalte ich sie für mich.
Aber das muss er doch ohne Unicode genau so? Bitte ausführlicher
Ja, muss er. Zum Beispiel muss er zwischen Integerliteralen und Identifiern unterscheiden. Darum ist blub1234 ein valider Identifier aber 1234blub nicht. Weil der Lexer so weiß, wenn er ein Numeral sieht, dass da jetzt ein Integer- oder Floatliteral kommt. Und wenn er einen Buchstaben sieht, dann weiß er, dass da jetzt ein Identifier kommt. Ansonsten müsste der Lexer erstmal arbitrary Lookahead machen, Backtracken etc. um alle potentiellen Möglichkeiten auszuloten. Kann man natürlich machen, aber kostet halt. Die Frage ist: ist es das wert? Und: Macht es wirklich Sinn dass sowas wie 2blub oder ²blub ein Identifier ist? Macht es wirklich Sinn dass blub² ein Identifier ist? Die ² hat je nach Kontext eine ganze Reihe an potentiellen Bedeutungen und die haben nicht unbedingt damit zu tun, Teil eines Names zu sein…
Also im Kern eine Leistungsfrage? Ich hadere. Zum einen kommt C++’ Grammatik eh nicht ohne Lookahead aus, denn u8"lol" ist auch kein Identifier, sondern ein Literal. Speaking of Literals – in Literals sind Sonderzeichen ja eh unterstützt, der Lexer enthält das Unicode-Zeug also sowieso.
Das Unicode-Konsortium pflegt Listen, was als Whitespace zu betrachten ist und was als Zahl, usw. Die sind nützlich. Aber dass das Unicode-Konsortium nun bestimmt, welche Variablennamen in C++ linguistisch Sinn ergeben, finde ich ziemlich verstörend. Das liest sich, als hätten sie einfach nach dem erstbesten Standard gegriffen, den sie finden konnten.
Ich dachte, das sei an mangelnder Definition von Source Character Set gescheitert und erst mit C++0x (C++11?) gekommen … kann aber gefährliches Halbwissen sein. Ich weiß definitiv, dass die erlaubten Buchstaben für C++11 stark umgeschichtet wurden.
Aus dem verlinkten Bug Ticket:
Ja, solche Dinge ergeben absolut Sinn. Ich habe selber ein paar Dutzend Stellen im Code, in denen len² einfacher zu lesen ist als lenSqr.https://github.com/llvm/llvm-project/issues/54732#issuecomment-1120296066 hat geschrieben:As an example from the code I'm currently working on:With limited Unicode support, I have to write something like this:Code: Alles auswählen
// Compute forward-backward envelope φₖ₊₁ = ψₖ₊₁ + 1 / (2 * γₖ₊₁) * pₖ₊₁ᵀpₖ₊₁ + grad_ψₖ₊₁ᵀpₖ₊₁;
Code: Alles auswählen
// Compute forward-backward envelope φ_k_plus_1 = ψ_k_plus_1 + 1 / (2 * γ_k_plus_1) * p_k_plus_1ᵀp_k_plus_1 + grad_ψ_k_plus_1ᵀp_k_plus_1;
Wie meinst du das? Du hast ja auf Layer 4, also TCP/IP, eine Fehlerkorrektur. Und auf Layer 2 - meine ich - auch nochmals eine...Helmut hat geschrieben: ↑02.06.2022, 19:41 Folgende Situation:
PC1 <<WLAN>> Router <<WLAN>> PC2
Wenn nun PC1 mittels TCP mit PC2 kommuniziert, kann man sich dann darauf verlassen, dass die gesendeten Daten nicht korrupt übermittelt werden? Stellt sich raus, dass die Antwort darauf ein klares Nein ist.
Ja, TCP hat eine Fehlerkorrektur. Aber leider ist die so schlecht, dass es bei mehrereren GB an Daten durch aus vorkommen kann (und bei mir auch praktisch der Fall ist), dass die Daten korrupt übertragen werden und das nicht erkannt wird. Ob es auch eine Fehlerkorrektur auf niedrigeren Layern gibt weiß ich nicht, ich weiß nur dass sie bei mir offensichtlich nicht funktioniert.starcow hat geschrieben: ↑03.06.2022, 16:52Wie meinst du das? Du hast ja auf Layer 4, also TCP/IP, eine Fehlerkorrektur. Und auf Layer 2 - meine ich - auch nochmals eine...Helmut hat geschrieben: ↑02.06.2022, 19:41 Folgende Situation:
PC1 <<WLAN>> Router <<WLAN>> PC2
Wenn nun PC1 mittels TCP mit PC2 kommuniziert, kann man sich dann darauf verlassen, dass die gesendeten Daten nicht korrupt übermittelt werden? Stellt sich raus, dass die Antwort darauf ein klares Nein ist.
Oh wow. Ich wünsche mir manchmal ziemlich sehnsüchtig, dass Windows mehr Controller unterstützt (jedes Mal, wenn ich Joystick/Racing Wheel angeschlossen habe und nicht mehr zur Maus greifen will) … und dann denke ich daran, wie verdammt stark das Controller-Signal manchmal flattert und kriege direkt Alpträume.Alexander Kornrumpf hat geschrieben: ↑17.06.2022, 11:04Nach ungefähr 30 Minuten zuviel Investigation stellt sich dann raus, dass das neue UI, wie auch immer es richtig heißt, und anscheinend auch _nur_ dieses, Input vom XBox-Controller akzeptiert,
pLeAsE dO sFc -sCaNnOwdie Antwort war immer ein generischer Textbaustein mit dem modernen Äquivalent zu dem was 1998 "Windows neu installieren" gewesen wäre
Ja, seh ich ein. Der Grund des Jammerns: Firefox und Chrome interpretieren "immediately" sehr unterschiedlich oder Firefox implementiert es gar nicht. Ich habe es in Firefox nicht geschafft mit einem Klick (=legale Nutzerinteraktion) schnell genug wieder einen Request zu triggern um in diesen Fall zu laufen. In Chrome ist die Periode in der man kein neues Lock bekommt jedoch deutlich merkbar. Heißt: Code der in Firefox funktioniert scheitert in Chrome.https://www.w3.org/TR/pointerlock-2/#do ... ointerlock
A requestPointerLock() call immediately after the default unlock gesture MUST fail even when transient activation is available, to prevent malicious sites from acquiring an unescapable locked state through repeated lock attempts.
Das liest sich so als würden sich der Versuch das Lock zu bekommen und die User-Aktion asynchron überschneiden. Das ist aber nicht das was passiert. Es geht um eine User-Aktion bevor der request überhaupt gefeuert (nicht: completed) wurde.Chromes Fehlermeldung
The user has exited the lock before this request was completed.
Oh je. Drück Dir die Daumen, dass es nur Netzteil war und Du schnell wieder entwickeln kannst.marcgfx hat geschrieben: ↑22.06.2022, 23:17 Heute ist ein rechtes Gewitter über meine Wohnung hinweg gezogen. Vorsichtshalber alles ausgeschaltet, sogar die Steckleiste. Danach die Steckleiste eingeschaltet und da hat es geknallt. Es scheint meinen PC oder zumindest das Netzteil vernichtet zu haben. Super...
Oof ich glaub ich werde da in Zukunft vorsichtiger sein mit meinen Geräten. Gewitter gibt's bei mir gerade alle paar Tage mit ordentlich Krach.marcgfx hat geschrieben: ↑22.06.2022, 23:17 Heute ist ein rechtes Gewitter über meine Wohnung hinweg gezogen. Vorsichtshalber alles ausgeschaltet, sogar die Steckleiste. Danach die Steckleiste eingeschaltet und da hat es geknallt. Es scheint meinen PC oder zumindest das Netzteil vernichtet zu haben. Super...
Passend dazu:Jonathan hat geschrieben: ↑04.07.2022, 21:52Ich habe absolut keine Ahnung, welche neuen Features Firefox in den letzten 10 Jahren bekommen hat. Aber was auch immer es war, es hat nur dazu beigetragen, dass Webseiten heute nerviger sind als vor 10 Jahren. Gefühlt wäre die Welt heute besser, hätte man einfach absolut nichts verändert...
Du hast es bestimmt nicht in Chrome laufen lassen, vorher alle deine lokalen Daten und Cookies gelöscht und beschwerst dich daher zu Unrecht ;)
Code: Alles auswählen
cpfe.dll!perform_scheduled_routine_moves(void)
cpfe.dll!wrapup_scope()
cpfe.dll!pop_scope_full()
cpfe.dll!pop_scope(void)
cpfe.dll!pop_namespace_scope()
cpfe.dll!namespace_declaration()
cpfe.dll!check_special_declaration_form()
cpfe.dll!scan_nonmember_declaration()
cpfe.dll!declaration()
cpfe.dll!translation_unit()
cpfe.dll!process_translation_unit()