Jammer-Thread
- dot
- Establishment
- Beiträge: 1746
- Registriert: 06.03.2004, 18:10
- Echter Name: Michael Kenzel
- Kontaktdaten:
Re: Jammer-Thread
Schonmal auf anderer Hardware getestet?
- Chromanoid
- Moderator
- Beiträge: 4285
- Registriert: 16.10.2002, 19:39
- Echter Name: Christian Kulenkampff
- Wohnort: Lüneburg
Re: Jammer-Thread
C:/Users/UpdatusUser
Nvidia WTF? -.-
Nvidia WTF? -.-
-
- Establishment
- Beiträge: 467
- Registriert: 18.04.2002, 15:31
Re: Jammer-Thread
Entdeckung des Tages:
Man kann objC Properties statt auf existierende Variablen einfach auf nicht existente wie z.B. einfache Tippfehler zugreifen lassen, gibt kein Warning, kein nichts, es wird dann einfach eine Variable erzeugt und den Compiler interessiert es nicht die Bohne, dass die nirgends initalisiert wird und außerhalb der readonly property nicht benutzt wird, "it's a feature, not a bug!" *argh*
Oh, und wo wir schon dabei sind - was mich schon immer aufgeregt hat:
Der GCC optimiert in switches einfach states weg, in denen nichts passiert oder die er nicht anspringt, auch in der debug Config, womit in dem Beispiel Quelltext mit einem Breakpoint in jedem Case einfach keiner der Cases angesprungen wird...
Keine Ahnung, ob man ihm das irgendwie abgewöhnen kann durch andere Projekteinstellungen.
Man kann objC Properties statt auf existierende Variablen einfach auf nicht existente wie z.B. einfache Tippfehler zugreifen lassen, gibt kein Warning, kein nichts, es wird dann einfach eine Variable erzeugt und den Compiler interessiert es nicht die Bohne, dass die nirgends initalisiert wird und außerhalb der readonly property nicht benutzt wird, "it's a feature, not a bug!" *argh*
Oh, und wo wir schon dabei sind - was mich schon immer aufgeregt hat:
Code: Alles auswählen
var = 3;
switch(var)
{
case 0:
foo();
break;
case 1:
bar();
break;
case 2:
foobar();
break;
case 3:
break;
default:
break;
}
Keine Ahnung, ob man ihm das irgendwie abgewöhnen kann durch andere Projekteinstellungen.
"Mir ist auch klar, dass der Tag, an dem ZFX und Developia zusammengehen werden der selbe Tag sein wird, an dem DirectGL rauskommt."
DirectGL, endlich ist es da :)
"According to the C++ standard, it's "undefined". That's a technical term that means, in theory, anything can happen: the program can crash, or keep running but generate garbage results, or send Bjarne Stroustrup an e-mail saying how ugly you are and how funny your mother dresses you." :shock:[/size]
DirectGL, endlich ist es da :)
"According to the C++ standard, it's "undefined". That's a technical term that means, in theory, anything can happen: the program can crash, or keep running but generate garbage results, or send Bjarne Stroustrup an e-mail saying how ugly you are and how funny your mother dresses you." :shock:[/size]
- Chromanoid
- Moderator
- Beiträge: 4285
- Registriert: 16.10.2002, 19:39
- Echter Name: Christian Kulenkampff
- Wohnort: Lüneburg
Re: Jammer-Thread
ObjC ist voll von solchen Späßen. Sicher das man nicht irgendwo die höchste Warnstufe einstellen kann und das dann angezeigt wird?
-
- Establishment
- Beiträge: 467
- Registriert: 18.04.2002, 15:31
Re: Jammer-Thread
Sowas wie warning-level gibts im gcc/clang ja nicht, man kann eben einen Haufen warnings einzeln an- und abschalten und natürlich alles an und dann treat warnings as errors, wovon ich unter Xcode stark abrate (da das nämlich auch so Sachen, wie your Provising profile is about to expire" als Warnings anzeigt, obwohl man es erst verlängern kann, wenn es tatsächlich ausgelaufen ist...).Chromanoid hat geschrieben:ObjC ist voll von solchen Späßen. Sicher das man nicht irgendwo die höchste Warnstufe einstellen kann und das dann angezeigt wird?
Ich bezweifle aber, dass sich die implizite Variablenerzeugung für Properties als Warning anzeigen lässt, da es wohlgemerkt als Feature gedacht ist (vor 2 Jahren mit älteren Xcode Versionen gabs Fehlermeldungen, wenn die Property eine synthesize auf eine nicht existente Variable hatte, bei den gleichen Projekten mit den gleichen Settings erzeugen aktuelle Xcode Versionen die Variable jetzt einfach).
"Mir ist auch klar, dass der Tag, an dem ZFX und Developia zusammengehen werden der selbe Tag sein wird, an dem DirectGL rauskommt."
DirectGL, endlich ist es da :)
"According to the C++ standard, it's "undefined". That's a technical term that means, in theory, anything can happen: the program can crash, or keep running but generate garbage results, or send Bjarne Stroustrup an e-mail saying how ugly you are and how funny your mother dresses you." :shock:[/size]
DirectGL, endlich ist es da :)
"According to the C++ standard, it's "undefined". That's a technical term that means, in theory, anything can happen: the program can crash, or keep running but generate garbage results, or send Bjarne Stroustrup an e-mail saying how ugly you are and how funny your mother dresses you." :shock:[/size]
- Chromanoid
- Moderator
- Beiträge: 4285
- Registriert: 16.10.2002, 19:39
- Echter Name: Christian Kulenkampff
- Wohnort: Lüneburg
Re: Jammer-Thread
ic ich glaube ich habe noch eine etwas ältere version gehabt. Als Java Freund ist man es ja gar nicht gewöhnt so genau hinzuschauen. Als ich damals an einem App entwickelt hab, habe ich also erst mal laufend irgendwelche unbekannten signale verschickt... Das war dann der Moment an dem ich begonnen habe Warnungen ernst zu nehmen :D.
- Aramis
- Moderator
- Beiträge: 1458
- Registriert: 25.02.2009, 19:50
- Echter Name: Alexander Gessler
- Wohnort: 2016
- Kontaktdaten:
Re: Jammer-Thread
Wieso auch? Java wird nicht besser wenn man dabei auch noch hinguckt. *scnr*Als Java Freund ist man es ja gar nicht gewöhnt so genau hinzuschauen.
- Chromanoid
- Moderator
- Beiträge: 4285
- Registriert: 16.10.2002, 19:39
- Echter Name: Christian Kulenkampff
- Wohnort: Lüneburg
Re: Jammer-Thread
-.- :D Java programmiert sich praktisch von alleine, in Netbeans sieht Programmieren bei mir im Grunde so aus: CTRL+Space Cursor Cursor = CTRL+Space Cursor ( CTRL+Space , CTRL+Space Cursor ); CTRL+Space Cursor Enter Cursor Cursor... :) Alles was irgendwie schlechter Stil ist oder zu Fehlern führen könnte, wird sofort gelb markiert, mit einem Tipp versehen und kann meistens automatisch behoben werden. Ich muss eigentlich nur Wörter schreiben wenn ich Dinge bename und Klassen und Funktionsköpfe definiere.... Achja manchmal tauchen noch keywords wie for, if, new oder while auf, aber da geht dann meistens auch sofort ein template los, das die gewünschte geschichte mit klammern versieht und ausschreibt. Konstruktoren, Getter&Setter, Funktionen von Interfaces etc. werden ja eh automatisch auf Knopfdruck generiert.
In XCode war das soweit ich mich erinnere noch etwas rudimentärer wenn es um solche Dinge ging.
In XCode war das soweit ich mich erinnere noch etwas rudimentärer wenn es um solche Dinge ging.
-
- Establishment
- Beiträge: 467
- Registriert: 18.04.2002, 15:31
Re: Jammer-Thread
Das hat aber auch mich, der aus dem Bereich C/C++ kommt, anfangs irritiert, dass ich in objC zur Kompilierzeit jede Methode auf jeder Klasse aufrufen kann und erst zur Laufzeit geprüft wird, ob die Klasse überhaupt eine Methode mit dem Namen und der Signatur kennt.Chromanoid hat geschrieben:ic ich glaube ich habe noch eine etwas ältere version gehabt. Als Java Freund ist man es ja gar nicht gewöhnt so genau hinzuschauen. Als ich damals an einem App entwickelt hab, habe ich also erst mal laufend irgendwelche unbekannten signale verschickt... Das war dann der Moment an dem ich begonnen habe Warnungen ernst zu nehmen :D.
"Mir ist auch klar, dass der Tag, an dem ZFX und Developia zusammengehen werden der selbe Tag sein wird, an dem DirectGL rauskommt."
DirectGL, endlich ist es da :)
"According to the C++ standard, it's "undefined". That's a technical term that means, in theory, anything can happen: the program can crash, or keep running but generate garbage results, or send Bjarne Stroustrup an e-mail saying how ugly you are and how funny your mother dresses you." :shock:[/size]
DirectGL, endlich ist es da :)
"According to the C++ standard, it's "undefined". That's a technical term that means, in theory, anything can happen: the program can crash, or keep running but generate garbage results, or send Bjarne Stroustrup an e-mail saying how ugly you are and how funny your mother dresses you." :shock:[/size]
- CodingCat
- Establishment
- Beiträge: 1857
- Registriert: 02.03.2009, 21:25
- Wohnort: Student @ KIT
- Kontaktdaten:
Re: Jammer-Thread
ERNSTHAFT? Der neue nVida-Treiber meldet meinen Zweitbildschirm bei JEDEM Abschalten der Anzeige zwecks Energiesparen IM SYSTEM AB?! Muss ich mir jetzt ERNSTHAFT alle 5 Minuten Inaktivität mein komplettes Monitorsetup MANUELL wiederherstellen? AAAOOAAAAHHH!
@dot: Nein, werde ich testen, sobald ich dazu komme.
@dot: Nein, werde ich testen, sobald ich dazu komme.
alphanew.net (last updated 2011-07-02) | auf Twitter | Source Code: breeze 2 | lean C++ library | D3D Effects Lite
-
- Establishment
- Beiträge: 467
- Registriert: 18.04.2002, 15:31
Re: Jammer-Thread
Ach, printf-Syntax ist doch was feines:
Gerade zur Vermeidung von magic-numbers bei der Angabe des Mindestplatzes für bestimmte Parameter einen Formatstring genutzt, der das Format für die Kreation des eigentlichen Formatstrings, welcher dann den tatsächlichen String kreiert, festlegt.
Sieht dann so aus:
L"%%-%dls %%-%ds %%-%dls line: %%%dd - %%ls"
OK, die magic-numbers bin ich los, aber ob dieses unleserliche Ding jetzt wartbarer ist? :?
PS:
Bevor jemand mit der Idee kommt, doch einfach C++ Strings zu nutzen statt cstrings: Geht in purem C leider nicht.
Gerade zur Vermeidung von magic-numbers bei der Angabe des Mindestplatzes für bestimmte Parameter einen Formatstring genutzt, der das Format für die Kreation des eigentlichen Formatstrings, welcher dann den tatsächlichen String kreiert, festlegt.
Sieht dann so aus:
L"%%-%dls %%-%ds %%-%dls line: %%%dd - %%ls"
OK, die magic-numbers bin ich los, aber ob dieses unleserliche Ding jetzt wartbarer ist? :?
PS:
Bevor jemand mit der Idee kommt, doch einfach C++ Strings zu nutzen statt cstrings: Geht in purem C leider nicht.
"Mir ist auch klar, dass der Tag, an dem ZFX und Developia zusammengehen werden der selbe Tag sein wird, an dem DirectGL rauskommt."
DirectGL, endlich ist es da :)
"According to the C++ standard, it's "undefined". That's a technical term that means, in theory, anything can happen: the program can crash, or keep running but generate garbage results, or send Bjarne Stroustrup an e-mail saying how ugly you are and how funny your mother dresses you." :shock:[/size]
DirectGL, endlich ist es da :)
"According to the C++ standard, it's "undefined". That's a technical term that means, in theory, anything can happen: the program can crash, or keep running but generate garbage results, or send Bjarne Stroustrup an e-mail saying how ugly you are and how funny your mother dresses you." :shock:[/size]
-
- Establishment
- Beiträge: 467
- Registriert: 18.04.2002, 15:31
Re: Jammer-Thread
Code: Alles auswählen
// Formatierte Stringausgabe in C:
// ascii string in formatierten ascii string Ausgabe:
printf("%s\n", "foo0"); // VS: ok, GCC: ok - wie erwartet
printf("%S\n", "foo1"); // VS: nicht ok, GCC: nicht ok - wie erwartet
printf("%hs\n", "foo2"); // VS: ok, GCC: compiler-warning - GCC unterstützt kein hs
printf("%ls\n", "foo3"); // VS: nicht ok, GCC: nicht ok - wie erwartet
printf("%hS\n", "foo4"); // VS: ok, GCC: compiler-warning - GCC unterstützt kein hS
printf("%lS\n", "foo5"); // VS: nicht ok, GCC: compiler-warning - GCC unterstützt kein lS
// Fazit -> ascii into ascii: nur %s funzt plattformunabhängig
// unicode string in formatierten ascii string Ausgabe:
printf("%s\n", L"foo6"); // VS: nicht ok, GCC: nicht ok - wie erwartet
printf("%S\n", L"foo7"); // VS: ok, GCC: ok - wie erwartet
printf("%hs\n", L"foo8"); // VS: nicht ok, GCC: compiler-warning - GCC unterstützt kein hs
printf("%ls\n", L"foo9"); // VS: ok, GCC: ok - wie erwartet
printf("%hS\n", L"foo10"); // VS: nicht ok, GCC: compiler-warning - GCC unterstützt kein Hs
printf("%lS\n", L"foo11"); // VS: ok, GCC: compiler-warning - GCC unterstützt kein lS
// Fazit -> unicode into ascii: %S und %ls funzen plattformunabhängig
// ascii string in formatierten unicode string Ausgabe:
wprintf(L"%s\n", "foo12"); // VS: nicht ok, GCC: ok - os-abhängiges Verhalten
wprintf(L"%S\n", "foo13"); // VS: ok, GCC: nicht ok - os-abhängiges Verhalten
wprintf(L"%hs\n", "foo14"); // VS: ok, GCC: compiler-warning - GCC unterstützt kein hs
wprintf(L"%ls\n", "foo15"); // VS: nicht ok, GCC: nicht ok - wie erwartet
wprintf(L"%hS\n", "foo16"); // VS: ok, GCC: compiler-warning - GCC unterstützt kein hS
wprintf(L"%lS\n", "foo17"); // VS: nicht ok, GCC: compiler-warning - GCC unterstützt kein lS
// Fazit -> ascii into unicode: überhaupt nichts funzt plattformunabhängig
// unicode string in formatierten unicode string Ausgabe:
wprintf(L"%s\n", L"foo18"); // VS: ok, GCC: nicht ok - os-abhängiges Verhalten
wprintf(L"%S\n", L"foo19"); // VS: nicht ok, GCC: ok - os-abhängiges Verhalten
wprintf(L"%hs\n", L"foo20"); // VS: nicht ok, GCC: compiler-warning - GCC unterstützt kein hs
wprintf(L"%ls\n", L"foo21"); // VS: ok, GCC: ok - wie erwartet
wprintf(L"%hS\n", L"foo22"); // VS: nicht ok, GCC: compiler-warning - GCC unterstützt kein hS
wprintf(L"%lS\n", L"foo23"); // VS: ok, GCC: compiler-warning - GCC unterstützt kein lS
// Fazit -> unicode into unicode: nur %ls funzt plattformunabhängig
"Mir ist auch klar, dass der Tag, an dem ZFX und Developia zusammengehen werden der selbe Tag sein wird, an dem DirectGL rauskommt."
DirectGL, endlich ist es da :)
"According to the C++ standard, it's "undefined". That's a technical term that means, in theory, anything can happen: the program can crash, or keep running but generate garbage results, or send Bjarne Stroustrup an e-mail saying how ugly you are and how funny your mother dresses you." :shock:[/size]
DirectGL, endlich ist es da :)
"According to the C++ standard, it's "undefined". That's a technical term that means, in theory, anything can happen: the program can crash, or keep running but generate garbage results, or send Bjarne Stroustrup an e-mail saying how ugly you are and how funny your mother dresses you." :shock:[/size]
Re: Jammer-Thread
That's the reason why you should use utf-8kaiserludi hat geschrieben:Kopf -> WandCode: Alles auswählen
// Formatierte Stringausgabe in C: // ascii string in formatierten ascii string Ausgabe: printf("%s\n", "foo0"); // VS: ok, GCC: ok - wie erwartet printf("%S\n", "foo1"); // VS: nicht ok, GCC: nicht ok - wie erwartet printf("%hs\n", "foo2"); // VS: ok, GCC: compiler-warning - GCC unterstützt kein hs printf("%ls\n", "foo3"); // VS: nicht ok, GCC: nicht ok - wie erwartet printf("%hS\n", "foo4"); // VS: ok, GCC: compiler-warning - GCC unterstützt kein hS printf("%lS\n", "foo5"); // VS: nicht ok, GCC: compiler-warning - GCC unterstützt kein lS // Fazit -> ascii into ascii: nur %s funzt plattformunabhängig // unicode string in formatierten ascii string Ausgabe: printf("%s\n", L"foo6"); // VS: nicht ok, GCC: nicht ok - wie erwartet printf("%S\n", L"foo7"); // VS: ok, GCC: ok - wie erwartet printf("%hs\n", L"foo8"); // VS: nicht ok, GCC: compiler-warning - GCC unterstützt kein hs printf("%ls\n", L"foo9"); // VS: ok, GCC: ok - wie erwartet printf("%hS\n", L"foo10"); // VS: nicht ok, GCC: compiler-warning - GCC unterstützt kein Hs printf("%lS\n", L"foo11"); // VS: ok, GCC: compiler-warning - GCC unterstützt kein lS // Fazit -> unicode into ascii: %S und %ls funzen plattformunabhängig // ascii string in formatierten unicode string Ausgabe: wprintf(L"%s\n", "foo12"); // VS: nicht ok, GCC: ok - os-abhängiges Verhalten wprintf(L"%S\n", "foo13"); // VS: ok, GCC: nicht ok - os-abhängiges Verhalten wprintf(L"%hs\n", "foo14"); // VS: ok, GCC: compiler-warning - GCC unterstützt kein hs wprintf(L"%ls\n", "foo15"); // VS: nicht ok, GCC: nicht ok - wie erwartet wprintf(L"%hS\n", "foo16"); // VS: ok, GCC: compiler-warning - GCC unterstützt kein hS wprintf(L"%lS\n", "foo17"); // VS: nicht ok, GCC: compiler-warning - GCC unterstützt kein lS // Fazit -> ascii into unicode: überhaupt nichts funzt plattformunabhängig // unicode string in formatierten unicode string Ausgabe: wprintf(L"%s\n", L"foo18"); // VS: ok, GCC: nicht ok - os-abhängiges Verhalten wprintf(L"%S\n", L"foo19"); // VS: nicht ok, GCC: ok - os-abhängiges Verhalten wprintf(L"%hs\n", L"foo20"); // VS: nicht ok, GCC: compiler-warning - GCC unterstützt kein hs wprintf(L"%ls\n", L"foo21"); // VS: ok, GCC: ok - wie erwartet wprintf(L"%hS\n", L"foo22"); // VS: nicht ok, GCC: compiler-warning - GCC unterstützt kein hS wprintf(L"%lS\n", L"foo23"); // VS: ok, GCC: compiler-warning - GCC unterstützt kein lS // Fazit -> unicode into unicode: nur %ls funzt plattformunabhängig
http://fedoraproject.org/ <-- freies Betriebssystem
http://launix.de <-- kompetente Firma
In allen Posts ist das imo und das afaik inbegriffen.
http://launix.de <-- kompetente Firma
In allen Posts ist das imo und das afaik inbegriffen.
-
- Establishment
- Beiträge: 467
- Registriert: 18.04.2002, 15:31
Re: Jammer-Thread
Wenn die lösung so einfach wäre, aber dummerweise unterstützen wir auch Plattformen, auf denen UTF8-Support praktisch nicht vorhanden ist und man daher auf widestrings angewiesen ist, von sonstigen auch auf anderen Plattformen vorhandenen Nachteilen von utf8 in der API (Performance und Komplexität von Operationen auf dem String, wenn nicht alle Characters die gleiche Größe haben) mal ganz zu schweigen.antisteo hat geschrieben:That's the reason why you should use utf-8kaiserludi hat geschrieben:Kopf -> WandCode: Alles auswählen
// Formatierte Stringausgabe in C: // ascii string in formatierten ascii string Ausgabe: printf("%s\n", "foo0"); // VS: ok, GCC: ok - wie erwartet printf("%S\n", "foo1"); // VS: nicht ok, GCC: nicht ok - wie erwartet printf("%hs\n", "foo2"); // VS: ok, GCC: compiler-warning - GCC unterstützt kein hs printf("%ls\n", "foo3"); // VS: nicht ok, GCC: nicht ok - wie erwartet printf("%hS\n", "foo4"); // VS: ok, GCC: compiler-warning - GCC unterstützt kein hS printf("%lS\n", "foo5"); // VS: nicht ok, GCC: compiler-warning - GCC unterstützt kein lS // Fazit -> ascii into ascii: nur %s funzt plattformunabhängig // unicode string in formatierten ascii string Ausgabe: printf("%s\n", L"foo6"); // VS: nicht ok, GCC: nicht ok - wie erwartet printf("%S\n", L"foo7"); // VS: ok, GCC: ok - wie erwartet printf("%hs\n", L"foo8"); // VS: nicht ok, GCC: compiler-warning - GCC unterstützt kein hs printf("%ls\n", L"foo9"); // VS: ok, GCC: ok - wie erwartet printf("%hS\n", L"foo10"); // VS: nicht ok, GCC: compiler-warning - GCC unterstützt kein Hs printf("%lS\n", L"foo11"); // VS: ok, GCC: compiler-warning - GCC unterstützt kein lS // Fazit -> unicode into ascii: %S und %ls funzen plattformunabhängig // ascii string in formatierten unicode string Ausgabe: wprintf(L"%s\n", "foo12"); // VS: nicht ok, GCC: ok - os-abhängiges Verhalten wprintf(L"%S\n", "foo13"); // VS: ok, GCC: nicht ok - os-abhängiges Verhalten wprintf(L"%hs\n", "foo14"); // VS: ok, GCC: compiler-warning - GCC unterstützt kein hs wprintf(L"%ls\n", "foo15"); // VS: nicht ok, GCC: nicht ok - wie erwartet wprintf(L"%hS\n", "foo16"); // VS: ok, GCC: compiler-warning - GCC unterstützt kein hS wprintf(L"%lS\n", "foo17"); // VS: nicht ok, GCC: compiler-warning - GCC unterstützt kein lS // Fazit -> ascii into unicode: überhaupt nichts funzt plattformunabhängig // unicode string in formatierten unicode string Ausgabe: wprintf(L"%s\n", L"foo18"); // VS: ok, GCC: nicht ok - os-abhängiges Verhalten wprintf(L"%S\n", L"foo19"); // VS: nicht ok, GCC: ok - os-abhängiges Verhalten wprintf(L"%hs\n", L"foo20"); // VS: nicht ok, GCC: compiler-warning - GCC unterstützt kein hs wprintf(L"%ls\n", L"foo21"); // VS: ok, GCC: ok - wie erwartet wprintf(L"%hS\n", L"foo22"); // VS: nicht ok, GCC: compiler-warning - GCC unterstützt kein hS wprintf(L"%lS\n", L"foo23"); // VS: ok, GCC: compiler-warning - GCC unterstützt kein lS // Fazit -> unicode into unicode: nur %ls funzt plattformunabhängig
"Mir ist auch klar, dass der Tag, an dem ZFX und Developia zusammengehen werden der selbe Tag sein wird, an dem DirectGL rauskommt."
DirectGL, endlich ist es da :)
"According to the C++ standard, it's "undefined". That's a technical term that means, in theory, anything can happen: the program can crash, or keep running but generate garbage results, or send Bjarne Stroustrup an e-mail saying how ugly you are and how funny your mother dresses you." :shock:[/size]
DirectGL, endlich ist es da :)
"According to the C++ standard, it's "undefined". That's a technical term that means, in theory, anything can happen: the program can crash, or keep running but generate garbage results, or send Bjarne Stroustrup an e-mail saying how ugly you are and how funny your mother dresses you." :shock:[/size]
Re: Jammer-Thread
Dazu hat Lazarus dann die Funktion utf8towidestring ;) (oder ich glaub der castet sogar implizit)kaiserludi hat geschrieben:Wenn die lösung so einfach wäre, aber dummerweise unterstützen wir auch Plattformen, auf denen UTF8-Support praktisch nicht vorhanden ist und man daher auf widestrings angewiesen ist, von sonstigen auch auf anderen Plattformen vorhandenen Nachteilen von utf8 in der API (Performance und Komplexität von Operationen auf dem String, wenn nicht alle Characters die gleiche Größe haben) mal ganz zu schweigen.antisteo hat geschrieben:That's the reason why you should use utf-8kaiserludi hat geschrieben:Kopf -> WandCode: Alles auswählen
// Formatierte Stringausgabe in C: // ascii string in formatierten ascii string Ausgabe: printf("%s\n", "foo0"); // VS: ok, GCC: ok - wie erwartet printf("%S\n", "foo1"); // VS: nicht ok, GCC: nicht ok - wie erwartet printf("%hs\n", "foo2"); // VS: ok, GCC: compiler-warning - GCC unterstützt kein hs printf("%ls\n", "foo3"); // VS: nicht ok, GCC: nicht ok - wie erwartet printf("%hS\n", "foo4"); // VS: ok, GCC: compiler-warning - GCC unterstützt kein hS printf("%lS\n", "foo5"); // VS: nicht ok, GCC: compiler-warning - GCC unterstützt kein lS // Fazit -> ascii into ascii: nur %s funzt plattformunabhängig // unicode string in formatierten ascii string Ausgabe: printf("%s\n", L"foo6"); // VS: nicht ok, GCC: nicht ok - wie erwartet printf("%S\n", L"foo7"); // VS: ok, GCC: ok - wie erwartet printf("%hs\n", L"foo8"); // VS: nicht ok, GCC: compiler-warning - GCC unterstützt kein hs printf("%ls\n", L"foo9"); // VS: ok, GCC: ok - wie erwartet printf("%hS\n", L"foo10"); // VS: nicht ok, GCC: compiler-warning - GCC unterstützt kein Hs printf("%lS\n", L"foo11"); // VS: ok, GCC: compiler-warning - GCC unterstützt kein lS // Fazit -> unicode into ascii: %S und %ls funzen plattformunabhängig // ascii string in formatierten unicode string Ausgabe: wprintf(L"%s\n", "foo12"); // VS: nicht ok, GCC: ok - os-abhängiges Verhalten wprintf(L"%S\n", "foo13"); // VS: ok, GCC: nicht ok - os-abhängiges Verhalten wprintf(L"%hs\n", "foo14"); // VS: ok, GCC: compiler-warning - GCC unterstützt kein hs wprintf(L"%ls\n", "foo15"); // VS: nicht ok, GCC: nicht ok - wie erwartet wprintf(L"%hS\n", "foo16"); // VS: ok, GCC: compiler-warning - GCC unterstützt kein hS wprintf(L"%lS\n", "foo17"); // VS: nicht ok, GCC: compiler-warning - GCC unterstützt kein lS // Fazit -> ascii into unicode: überhaupt nichts funzt plattformunabhängig // unicode string in formatierten unicode string Ausgabe: wprintf(L"%s\n", L"foo18"); // VS: ok, GCC: nicht ok - os-abhängiges Verhalten wprintf(L"%S\n", L"foo19"); // VS: nicht ok, GCC: ok - os-abhängiges Verhalten wprintf(L"%hs\n", L"foo20"); // VS: nicht ok, GCC: compiler-warning - GCC unterstützt kein hs wprintf(L"%ls\n", L"foo21"); // VS: ok, GCC: ok - wie erwartet wprintf(L"%hS\n", L"foo22"); // VS: nicht ok, GCC: compiler-warning - GCC unterstützt kein hS wprintf(L"%lS\n", L"foo23"); // VS: ok, GCC: compiler-warning - GCC unterstützt kein lS // Fazit -> unicode into unicode: nur %ls funzt plattformunabhängig
http://fedoraproject.org/ <-- freies Betriebssystem
http://launix.de <-- kompetente Firma
In allen Posts ist das imo und das afaik inbegriffen.
http://launix.de <-- kompetente Firma
In allen Posts ist das imo und das afaik inbegriffen.
-
- Establishment
- Beiträge: 467
- Registriert: 18.04.2002, 15:31
Re: Jammer-Thread
Die ich auch fleißig nutze, aber das bedeutet eben, um widestrings komme ich dennoch nicht rum.antisteo hat geschrieben:Dazu hat Lazarus dann die Funktion utf8towidestring ;) (oder ich glaub der castet sogar implizit)kaiserludi hat geschrieben:Wenn die lösung so einfach wäre, aber dummerweise unterstützen wir auch Plattformen, auf denen UTF8-Support praktisch nicht vorhanden ist und man daher auf widestrings angewiesen ist, von sonstigen auch auf anderen Plattformen vorhandenen Nachteilen von utf8 in der API (Performance und Komplexität von Operationen auf dem String, wenn nicht alle Characters die gleiche Größe haben) mal ganz zu schweigen.antisteo hat geschrieben:That's the reason why you should use utf-8kaiserludi hat geschrieben:Kopf -> WandCode: Alles auswählen
// Formatierte Stringausgabe in C: // ascii string in formatierten ascii string Ausgabe: printf("%s\n", "foo0"); // VS: ok, GCC: ok - wie erwartet printf("%S\n", "foo1"); // VS: nicht ok, GCC: nicht ok - wie erwartet printf("%hs\n", "foo2"); // VS: ok, GCC: compiler-warning - GCC unterstützt kein hs printf("%ls\n", "foo3"); // VS: nicht ok, GCC: nicht ok - wie erwartet printf("%hS\n", "foo4"); // VS: ok, GCC: compiler-warning - GCC unterstützt kein hS printf("%lS\n", "foo5"); // VS: nicht ok, GCC: compiler-warning - GCC unterstützt kein lS // Fazit -> ascii into ascii: nur %s funzt plattformunabhängig // unicode string in formatierten ascii string Ausgabe: printf("%s\n", L"foo6"); // VS: nicht ok, GCC: nicht ok - wie erwartet printf("%S\n", L"foo7"); // VS: ok, GCC: ok - wie erwartet printf("%hs\n", L"foo8"); // VS: nicht ok, GCC: compiler-warning - GCC unterstützt kein hs printf("%ls\n", L"foo9"); // VS: ok, GCC: ok - wie erwartet printf("%hS\n", L"foo10"); // VS: nicht ok, GCC: compiler-warning - GCC unterstützt kein Hs printf("%lS\n", L"foo11"); // VS: ok, GCC: compiler-warning - GCC unterstützt kein lS // Fazit -> unicode into ascii: %S und %ls funzen plattformunabhängig // ascii string in formatierten unicode string Ausgabe: wprintf(L"%s\n", "foo12"); // VS: nicht ok, GCC: ok - os-abhängiges Verhalten wprintf(L"%S\n", "foo13"); // VS: ok, GCC: nicht ok - os-abhängiges Verhalten wprintf(L"%hs\n", "foo14"); // VS: ok, GCC: compiler-warning - GCC unterstützt kein hs wprintf(L"%ls\n", "foo15"); // VS: nicht ok, GCC: nicht ok - wie erwartet wprintf(L"%hS\n", "foo16"); // VS: ok, GCC: compiler-warning - GCC unterstützt kein hS wprintf(L"%lS\n", "foo17"); // VS: nicht ok, GCC: compiler-warning - GCC unterstützt kein lS // Fazit -> ascii into unicode: überhaupt nichts funzt plattformunabhängig // unicode string in formatierten unicode string Ausgabe: wprintf(L"%s\n", L"foo18"); // VS: ok, GCC: nicht ok - os-abhängiges Verhalten wprintf(L"%S\n", L"foo19"); // VS: nicht ok, GCC: ok - os-abhängiges Verhalten wprintf(L"%hs\n", L"foo20"); // VS: nicht ok, GCC: compiler-warning - GCC unterstützt kein hs wprintf(L"%ls\n", L"foo21"); // VS: ok, GCC: ok - wie erwartet wprintf(L"%hS\n", L"foo22"); // VS: nicht ok, GCC: compiler-warning - GCC unterstützt kein hS wprintf(L"%lS\n", L"foo23"); // VS: ok, GCC: compiler-warning - GCC unterstützt kein lS // Fazit -> unicode into unicode: nur %ls funzt plattformunabhängig
"Mir ist auch klar, dass der Tag, an dem ZFX und Developia zusammengehen werden der selbe Tag sein wird, an dem DirectGL rauskommt."
DirectGL, endlich ist es da :)
"According to the C++ standard, it's "undefined". That's a technical term that means, in theory, anything can happen: the program can crash, or keep running but generate garbage results, or send Bjarne Stroustrup an e-mail saying how ugly you are and how funny your mother dresses you." :shock:[/size]
DirectGL, endlich ist es da :)
"According to the C++ standard, it's "undefined". That's a technical term that means, in theory, anything can happen: the program can crash, or keep running but generate garbage results, or send Bjarne Stroustrup an e-mail saying how ugly you are and how funny your mother dresses you." :shock:[/size]
-
- Establishment
- Beiträge: 324
- Registriert: 08.04.2003, 18:09
- Alter Benutzername: Enrico_
- Echter Name: Enrico
- Wohnort: San Diego
- Kontaktdaten:
Re: Jammer-Thread
Instabile 10kbit/s sind echt das letzte :evil: :evil: :evil: ISP meint, die Daempungswerte der Leitung seien seit einer Woche voellig im Einer. Schoen. Und nu? Machen koennen oder wollen die angeblich nix. Hab erstmal ein neues DSL-Modem bekommen... Das hilft bestimmt bei einer kaputten Leitung. Wenn das morgen mit dem neuen Modem nicht besser laeuft, kann oder will ich nicht mehr fuer den Anschluss zahlen :roll:
Ein Hoch auf uns Männer... Auf die Frau, die uns HAT ( oder hat, und nicht weiß, dass sie uns hat ) ...auf die Idiotinnen ... besser gesagt VOLLPFOSTINNEN ... die uns hatten und uns verloren haben ... und auf die GLÜCKLICHEN, die das Vergnügen & Glück haben werden uns kennenzulernen!
Re: Jammer-Thread
Wie kann man nur auf die Idee kommen, einen Compositor auf Basis von glReadPixels zu implementieren, wenn man Alternativen wie FBOs oder Pixmaps hat, die alles "auf der GPU" lassen koennten?
Re: Jammer-Thread
Clang's Codegenerierung für C++-Templates ist noch nicht die allerbeste.
Mich sollte es ja nicht stören, da ich kein C++ benutze... Weit gefehlt. opt und llc (beides LLVM-Komponenten) werden mit clang kompiliert und laufen dementsprechend langsamer.
Mich sollte es ja nicht stören, da ich kein C++ benutze... Weit gefehlt. opt und llc (beides LLVM-Komponenten) werden mit clang kompiliert und laufen dementsprechend langsamer.
http://fedoraproject.org/ <-- freies Betriebssystem
http://launix.de <-- kompetente Firma
In allen Posts ist das imo und das afaik inbegriffen.
http://launix.de <-- kompetente Firma
In allen Posts ist das imo und das afaik inbegriffen.
- CodingCat
- Establishment
- Beiträge: 1857
- Registriert: 02.03.2009, 21:25
- Wohnort: Student @ KIT
- Kontaktdaten:
Re: Jammer-Thread
Seitdem ich vor ca. 2 Wochen den Windows Aero Desktop endgültig abgeschaltet habe, habe ich in all meinen Grafikanwendungen keinen einzigen Ruckler mehr gehabt (selbst bei ca. 20 FPS wirkt alles noch rund!). Das ist ein ganz neues Entwicklergefühl, wenn man sich nicht mehr bei jedem Testlauf fragen muss, ob man trotz vollkommen allokationsfreier Frameberechnung und ausgefuchster Framezeitnormalisierung mittels gleitenden Durchschnitts immer noch unfähig ist, eine Anwendung mit auch nur einigermaßen gleichmäßiger Framezeit zu schreiben (einigermaßen bezieht sich hier auf besser als ein VERHÄLTNIS aufeinanderfolgender Framezeiten von 1:10, was bei angeschaltetem Windows Aero quasi die Regel ist!).
alphanew.net (last updated 2011-07-02) | auf Twitter | Source Code: breeze 2 | lean C++ library | D3D Effects Lite
- Artificial Mind
- Establishment
- Beiträge: 802
- Registriert: 17.12.2007, 17:51
- Wohnort: Aachen
Re: Jammer-Thread
Glew ist ein Drecksverein: benutzen seit Ewigkeiten glGetString(GL_EXTENSIONS) obwohl es seit OGL 3.1 removed ist ...
Also glew neukompiliert als C++ Projekt und intern das Problem gefixt...
Also glew neukompiliert als C++ Projekt und intern das Problem gefixt...
- Krishty
- Establishment
- Beiträge: 8343
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: Jammer-Thread
Visual C++ mit /Oi (ohne Gewähr aus dem Gedächtnis):
double const infinity = -::log(0.0);
// Gleicht:
union {
unsigned __int64 const infinityAsInt;
double infinity;
} const = { 0x7ff0000000000000ull };
void foo() {
static double const infinity = -::log(0.0);
// Gleicht:
static bool set = false;
if(!set) {
asm {
fld 0.0
call _Cllog
fld -1.0
fmul
fstp qword ptr [infinity]
}
set = true;
}
}
void foo() {
double const infinity = -::log(0.0);
// Gleicht:
asm {
fld 0.0
call _Cllog
fld -1.0
fmul
fstp qword ptr [infinity]
}
}
/Oi bringt’s echt
double const infinity = -::log(0.0);
// Gleicht:
union {
unsigned __int64 const infinityAsInt;
double infinity;
} const = { 0x7ff0000000000000ull };
void foo() {
static double const infinity = -::log(0.0);
// Gleicht:
static bool set = false;
if(!set) {
asm {
fld 0.0
call _Cllog
fld -1.0
fmul
fstp qword ptr [infinity]
}
set = true;
}
}
void foo() {
double const infinity = -::log(0.0);
// Gleicht:
asm {
fld 0.0
call _Cllog
fld -1.0
fmul
fstp qword ptr [infinity]
}
}
/Oi bringt’s echt
- CodingCat
- Establishment
- Beiträge: 1857
- Registriert: 02.03.2009, 21:25
- Wohnort: Student @ KIT
- Kontaktdaten:
Re: Jammer-Thread
Das alte Windows war so hässlich.
SO HÄSSLICH wie jetzt Windows Vista ohne Aero Desktop. Framezeiten hin oder her, ich vermisse eine halbwegs ansprechende UI.
Vermisse sie so sehr.
SO HÄSSLICH wie jetzt Windows Vista ohne Aero Desktop. Framezeiten hin oder her, ich vermisse eine halbwegs ansprechende UI.
Vermisse sie so sehr.
alphanew.net (last updated 2011-07-02) | auf Twitter | Source Code: breeze 2 | lean C++ library | D3D Effects Lite
- Krishty
- Establishment
- Beiträge: 8343
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: Jammer-Thread
Windows’ Explorer ordnet allem, was die Dateinamenerweiterung .jpg hat, den Elementtyp JPEG-Bild zu.
Zeigt aber darunter die Abmessungen an, selbst, falls es sich tatsächlich um einen anderen Bildtyp handelt. So ein Scheiß.
Zeigt aber darunter die Abmessungen an, selbst, falls es sich tatsächlich um einen anderen Bildtyp handelt. So ein Scheiß.
-
- Establishment
- Beiträge: 467
- Registriert: 18.04.2002, 15:31
Re: Jammer-Thread
Code: Alles auswählen
// format specifiers:
#define FRMT_SPCFR_STRTOSTR_A ((EG_CHAR*)"s")
#define FRMT_SPCFR_WSTRTOSTR_A ((EG_CHAR*)"ls") // "%S" would also work
#if defined _EG_WINDOWS_PLATFORM || (defined _EG_MARMALADE_PLATFORM && !defined I3D_ARCH_ARM)
# define FRMT_SPCFR_STRTOWSTR_A ((EG_CHAR*)"S")
#else
# define FRMT_SPCFR_STRTOWSTR_A ((EG_CHAR*)"s")
#endif
#define FRMT_SPCFR_WSTRTOWSTR_A ((EG_CHAR*)"ls")
#define FRMT_SPCFR_STRTOSTR_W ((EG_CHAR*)L"s")
#define FRMT_SPCFR_WSTRTOSTR_W ((EG_CHAR*)L"ls") // "%S" would also work
#if defined _EG_WINDOWS_PLATFORM || (defined _EG_MARMALADE_PLATFORM && !defined I3D_ARCH_ARM)
# define FRMT_SPCFR_STRTOWSTR_W ((EG_CHAR*)L"S")
#else
# define FRMT_SPCFR_STRTOWSTR_W ((EG_CHAR*)L"s")
#endif
#define FRMT_SPCFR_WSTRTOWSTR_W ((EG_CHAR*)L"ls")
"Mir ist auch klar, dass der Tag, an dem ZFX und Developia zusammengehen werden der selbe Tag sein wird, an dem DirectGL rauskommt."
DirectGL, endlich ist es da :)
"According to the C++ standard, it's "undefined". That's a technical term that means, in theory, anything can happen: the program can crash, or keep running but generate garbage results, or send Bjarne Stroustrup an e-mail saying how ugly you are and how funny your mother dresses you." :shock:[/size]
DirectGL, endlich ist es da :)
"According to the C++ standard, it's "undefined". That's a technical term that means, in theory, anything can happen: the program can crash, or keep running but generate garbage results, or send Bjarne Stroustrup an e-mail saying how ugly you are and how funny your mother dresses you." :shock:[/size]
- Lynxeye
- Establishment
- Beiträge: 145
- Registriert: 27.02.2009, 16:50
- Echter Name: Lucas
- Wohnort: Hildesheim
- Kontaktdaten:
Re: Jammer-Thread
Wenn ich nicht ganz falsch liege, ist GLEW ein OpenSource Projekt. Was hindert dich daran mitzuarbeiten und deinen Fix upstream zu bringen, damit sich andere Leute nicht mehr drüber ärgern müssen?Artificial Mind hat geschrieben:Glew ist ein Drecksverein: benutzen seit Ewigkeiten glGetString(GL_EXTENSIONS) obwohl es seit OGL 3.1 removed ist ...
Also glew neukompiliert als C++ Projekt und intern das Problem gefixt...
Wieso wird OpenSource oft als "da haben sich andere drum zu kümmern, die haben schließlich das Projekt gegründet" verstanden?
- Artificial Mind
- Establishment
- Beiträge: 802
- Registriert: 17.12.2007, 17:51
- Wohnort: Aachen
Re: Jammer-Thread
Weil es mindestens seit einem Jahr 3 pending Patches gibt, die alle auf verschiedene Art und Weise genau diesen Bug, der mindestens schon genauso lange bekannt ist, beheben wollen - und noch keiner wurde eingebaut.
EDIT: und mein Patch "upgraded" glew auf C++ und wird deswegen sicher nicht akzeptiert, mal davon abgesehen, dass er relativ quick'n'dirty ist. (Tut halt seinen Dienst)
EDIT: und mein Patch "upgraded" glew auf C++ und wird deswegen sicher nicht akzeptiert, mal davon abgesehen, dass er relativ quick'n'dirty ist. (Tut halt seinen Dienst)
- Schrompf
- Moderator
- Beiträge: 5151
- Registriert: 25.02.2009, 23:44
- Benutzertext: Lernt nur selten dazu
- Echter Name: Thomas
- Wohnort: Dresden
- Kontaktdaten:
Re: Jammer-Thread
Für heute morgen war endlich mal die Ordnung der Rechnungen und des Papierkrams und die erste Umsatzsteuer-Voranmeldung geplant. Nun ist der Morgen vorbei und ich habe die Zeit mit der Suche nach meinen Aktendullis* verbracht. Verdammt, so groß ist die Wohnung doch gar nicht!
*Für Westdeutsche: Heftstreifen. Den Begriff habe ich grad erst ergoogelt.
*Für Westdeutsche: Heftstreifen. Den Begriff habe ich grad erst ergoogelt.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
- Schrompf
- Moderator
- Beiträge: 5151
- Registriert: 25.02.2009, 23:44
- Benutzertext: Lernt nur selten dazu
- Echter Name: Thomas
- Wohnort: Dresden
- Kontaktdaten:
Re: Jammer-Thread
Und weitergejammert: meine Festplatte stirbt. Ich glaube, ich habe genau das vor einer Weile schonmal hier geschrieben. Es kotzt mich an, dass ich mich immer und immer wieder mit diesem Thema beschäftigen muss. Die aktuelle 2TB-WesternDigital ist gerade mal ein Jahr alt geworden, da sterben jetzt die Sektoren in Serie und bei jedem Hochfahren rappelt Windows das ganze Dateisystem durch, sortiert zerstörte Dateien aus und fügte neue fehlerhafte Cluster zur Tabelle hinzu. Ich frage mich, wie groß die werden kann.
Und jetzt, da ich eine neue holen will, stellt sich heraus, dass seit einer Woche alle Festplatten das Dreifache kosten. Warum? Die Flut in Thailand. Es gibt nur noch zwei Festplatten-Hersteller auf der Welt: Seagate hat Samsungs Plattensparte gekauft, Western Digital die von Hitachi. Und beide Firmen haben nunmal mehr als die Hälfte ihrer Produktionsstätten in Thailand und sind gerade abgesoffen. Gerade jetzt, da ich eh schon unter dünner Geldbörse leide. So ein Mist.
Und jetzt, da ich eine neue holen will, stellt sich heraus, dass seit einer Woche alle Festplatten das Dreifache kosten. Warum? Die Flut in Thailand. Es gibt nur noch zwei Festplatten-Hersteller auf der Welt: Seagate hat Samsungs Plattensparte gekauft, Western Digital die von Hitachi. Und beide Firmen haben nunmal mehr als die Hälfte ihrer Produktionsstätten in Thailand und sind gerade abgesoffen. Gerade jetzt, da ich eh schon unter dünner Geldbörse leide. So ein Mist.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Re: Jammer-Thread
- Windows unterstützt kein dynamisches Linken, aber GetProcAddress(0, 'fname') hilft ja
- In der wineconsole kann man nicht scrollen. Vor allem doof, wenn man die Fehlermeldungen lesen will
[Edit:] - Windows kennt die Pipe (|) nur in Verbindung mit more. Alles andere funktioniert einfach nicht
- In der wineconsole kann man nicht scrollen. Vor allem doof, wenn man die Fehlermeldungen lesen will
[Edit:] - Windows kennt die Pipe (|) nur in Verbindung mit more. Alles andere funktioniert einfach nicht
http://fedoraproject.org/ <-- freies Betriebssystem
http://launix.de <-- kompetente Firma
In allen Posts ist das imo und das afaik inbegriffen.
http://launix.de <-- kompetente Firma
In allen Posts ist das imo und das afaik inbegriffen.