vhlib, aber nicht Sockets aber gaaaanz wichtig (getLine)
-
getLine ist ja eh kein member mehr. aber statt nen string zu liefern wärs schicker in nen Writer zu schreiben. mir ist nämlich aufgefallen, dass das identisch ist zur lösung mit immer buffer verdoppeln, weil das kann der Writer ja auch.
Pseudocode (vor allem wegen realloc):
class StringWriter : public Writer { public: ... void overflow() { Size pos = rpos - rbegin; Size newSize = (rend - rbegin) * 2; wbegin = realloc(rbegin, newSize); wend = wbegin + newSize; wpos = wbegin + pos; } };
-
und weil ein StringWriter eh gebraucht wird...
jo, gute idee.
-
Ach... soll die vhlib unter unix gegen die libc linken? Nicht aber gegen die libstdc++ bzw. sonstige c++ standard library? Wie sollen Exceptions dann unterstützt werden? Lauter wichtige Fragen *g*.
-
Mr. N schrieb:
Ach... soll die vhlib unter unix gegen die libc linken? Nicht aber gegen die libstdc++ bzw. sonstige c++ standard library? Wie sollen Exceptions dann unterstützt werden? Lauter wichtige Fragen *g*.
eigentlich würde ich am liebsten nur syscalls verwenden. naja, da wo ich ur zeit write() und errno verwende statdessen den syscall, das ist ja leicht. malloc und free kann ich auch selber anbieten, hab ich schonmal gemacht. allerdings werde ich das exceptionhandlich schon vom compilerbauer nehmen müssen, sonst hab ich bei jeder neuen compilerversion zu viel ärger.
und bis auf weiteres linkt sie gegen beides. ist ja erstmal nicht so schlimm.
-
volkard schrieb:
und bis auf weiteres linkt sie gegen beides. ist ja erstmal nicht so schlimm.
das exception-zeug vom compiler ist in der standard-library. also beim g++.
896K /usr/lib/gcc/x86_64-pc-linux-gnu/3.4.4/libstdc++.so.6.0.3
und wegen malloc: wirst du malloc(PAGESIZE) so bauen, dass es wirklich nur eine seite holt? :p
-
Mr. N schrieb:
und wegen malloc: wirst du malloc(PAGESIZE) so bauen, dass es wirklich nur eine seite holt? :p
keine ahnung. der allocator wird noch ein ganz großes stück arbeit.
-
Volkard was genau ist, denn dein Ziel mit dieser Lib?
-
User--- schrieb:
Volkard was genau ist, denn dein Ziel mit dieser Lib?
das, was alle wollen.
ich will damit die weltherrschaft an mich reißen.
-
wenn man im makefile die erste zeile kommentiert und die zweite auskommentiert, also
CXXFLAGS:=$(CXXFLAGS) -O3 -s -DNDEBUG -pipe
dann gibts nen segfault unter linux. wenn man die erste wieder auskommentiert bleibt der segfault trotzdem.
EDIT: Es reicht, mit -O1 zu compilieren.
-
Mr. N schrieb:
dann gibts nen segfault unter linux
mist. bisher hatte ich nur -O3-segfaults, wenn echt ein programmierfehler vorlag, also undefiniertes verhalten.
ich hoffe mal, das ist diesmal auch wieder so.edit: juhu auch unter win segfault. den hab ich gleich.
-
segfault ist weg, wenn ich
while(!s.eof()){ /* String line(s,crlf); cout<<line.getSize()<<' '<<line<<endl;*/ cout<<s.peek(); s.pop(); }
schreibe.
naja, daß bei readLine jemand ganz dumm gehackt hat, war uns eh schon klar.
-
volkard schrieb:
naja, daß bei readLine jemand ganz dumm gehackt hat, war uns eh schon klar.
das ist ja das ursprüngliche thema... :p
-
Wo gibts die öminöse vh (volkard help?) Lib überhaupt?
-
Brutus schrieb:
Wo gibts die öminöse vh (volkard help?) Lib überhaupt?
so in version 0.001 auf http://volkard.de/vhlib.tar.bz2
-
warum hab ich eigrnlich nicht mehr -Wall im makefile?
damit ich übersehe, daßWriter& operator<<(Writer& out,unsigned int x){ printUnsignedImpl(x,out); }
nichts zurückgibt.
und dann crashtcout<<line.getSize()<<' '<<line<<endl;
auch fein.
ich bin stolz auf mich, wie toll ich mir das leben schwer mache.
-
Das dient deinem Training. Nur die harten kommen in den Garten. Wenn du auf Warnungen auf bist, würde ich auch nochmal im VC++ compilieren, weil der IMHO noch sehr viel mehr Dinge bemerkt. Beispielsweise hat mich mein g++ mal bei einem wirklich billigen (und für mich peinlichen) Fehler nicht gewarnt, das war irgendwie sowas wie:
a << 2;
EDIT: int a;
-
-Werror
find ich toll.
-
volkard schrieb:
Brutus schrieb:
Wo gibts die öminöse vh (volkard help?) Lib überhaupt?
so in version 0.001 auf http://volkard.de/vhlib.tar.bz2
wann kommt denn ne neue?
-
vhlib schrieb:
wann kommt denn ne neue?
dauert noch. hab jetzt mehr als ne woche lang am rechner gebastelt und fertig ist er immer noch nicht.
hab die version von gestern hochgeladen. Vector kennt ihr noch nicht. FileWriter ist rivial. und jetzt baue ich um, daß es auch für den ms-compiler geht. und ich mache unterverzeichnisse für win und linux.
-
Mr. N schrieb:
und wegen malloc: wirst du malloc(PAGESIZE) so bauen, dass es wirklich nur eine seite holt? :p
noch nicht sicher. wieviel kostet das? mus ich ausmessen.
aber über die allokatoren weiß ich mehr. das haupt-arbeitspferd wird ein ganz schlichter allocator sein, der nur seitenweise speicher ausgibt. und den speicher werde ich per mmap holen, kein sbrk. trotdem versuche ich, möglichst wenige mappings zu erzeugen.