vhlib, aber nicht Sockets aber gaaaanz wichtig (getLine)



  • 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 crasht

    cout<<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.


Anmelden zum Antworten