Sprache 'D' fertiggestellt - wie geht's weiter ?



  • Beweis schrieb:

    http://labs.google.com/sets?hl=en&q1=c%20%20&q2=java&q3=&q4=&q5=&btn=Grow+Set
    D wird nicht erwähnt

    ~C++ auch nicht~

    Edit: Stimme gesenkt 😃



  • Sag das nicht so laut, sonst kommt das Javaiener und trumpf, wir sind als erste gelistet 😛



  • THX 1138 schrieb:

    OT: Naja nennt sich Hackordnung ( das Wort kommt aus dem Hühnerstall ) und C++ scheint (ist?) das Alphatier zu sein, darum will sich jeder mit ihr anlegen ( in der Natur sinds zwar meistens die Männchen die rivalisieren ).

    Ich vermute eher, dass es in diesem Forum deshalb in erster Linie "c++ vs. irgendwas"-Threads gibt, weil c++ im Vergleich zu anderen Programmiersprachen in einer gewissen Weise eine stärkere Verbindung mit diesem Forum hat.



  • Gregor schrieb:

    THX 1138 schrieb:

    OT: Naja nennt sich Hackordnung ( das Wort kommt aus dem Hühnerstall ) und C++ scheint (ist?) das Alphatier zu sein, darum will sich jeder mit ihr anlegen ( in der Natur sinds zwar meistens die Männchen die rivalisieren ).

    Ich vermute eher, dass es in diesem Forum deshalb in erster Linie "c++ vs. irgendwas"-Threads gibt, weil c++ im Vergleich zu anderen Programmiersprachen in einer gewissen Weise eine stärkere Verbindung mit diesem Forum hat.

    Genau. Was möglicherweise, eventuell, wenn auch nicht sicher, daran liegen könnte, dass das Board "c-plusplus.net" heisst... *hmmm* 😃



  • C++ auch nicht

    Edit: Stimme gesenkt

    LOL, naja wenigstens ist ja C dabei, ein kleiner Trost ... Oder nee, bestimmt haben die einfach nur '++' vergessen ... *kleinlaut*

    Ich vermute eher, dass es in diesem Forum deshalb in erster Linie "c++ vs. irgendwas"-Threads gibt, weil c++ im Vergleich zu anderen Programmiersprachen in einer gewissen Weise eine stärkere Verbindung mit diesem Forum hat.

    Hmmmm ja, komplexe Sache 😃

    Die Zukunft bringt's schon, wir werden sehen ...

    Naja, hustbaer, soooo schlimm ist es nun auch nicht 😉



  • Was mich bei D äußerst stutzig macht, ist btw. der konservative GC. Gibt es in der Sprache keine eigenen Zeiger-Typen für Objekte auf dem GC-Heap? Wenn nicht, dann wird der GC wahrscheinlich nie richtig geil werden und das ist schlimmer, als wenn sie ihn weggelassen hätten...



  • @ THX 1138
    warum hältst du nich den mund wenn du eh nur schwachsinn laberst...
    hackordnung ist was ganz anderes als das was du da von dir gibst, ich empfehle dir mal was dazu durchzulesen, sogar nen wikipedia artikel würdes tun...
    solche hobbybiologen wie du nerven einfach nur...



  • Optimizer schrieb:

    Was mich bei D äußerst stutzig macht, ist btw. der konservative GC. Gibt es in der Sprache keine eigenen Zeiger-Typen für Objekte auf dem GC-Heap? Wenn nicht, dann wird der GC wahrscheinlich nie richtig geil werden und das ist schlimmer, als wenn sie ihn weggelassen hätten...

    Jetzt bitte ich mal um erklärung, warum du ein besonderen Zeiger willst. O.O



  • Zeus schrieb:

    Optimizer schrieb:

    Was mich bei D äußerst stutzig macht, ist btw. der konservative GC. Gibt es in der Sprache keine eigenen Zeiger-Typen für Objekte auf dem GC-Heap? Wenn nicht, dann wird der GC wahrscheinlich nie richtig geil werden und das ist schlimmer, als wenn sie ihn weggelassen hätten...

    Jetzt bitte ich mal um erklärung, warum du ein besonderen Zeiger willst. O.O

    Weil der GC wissen muss, was ein Zeiger ist und was nicht. Außerdem ist ein Zeiger bei einem modernen GC in der Regel ein Zeiger auf ein Zeiger, damit der GC die Objekte im Heap umsortieren kann bei bedarf (was einem aber auch die CPU Caches trashen kann)



  • rüdiger schrieb:

    Zeus schrieb:

    Optimizer schrieb:

    Was mich bei D äußerst stutzig macht, ist btw. der konservative GC. Gibt es in der Sprache keine eigenen Zeiger-Typen für Objekte auf dem GC-Heap? Wenn nicht, dann wird der GC wahrscheinlich nie richtig geil werden und das ist schlimmer, als wenn sie ihn weggelassen hätten...

    Jetzt bitte ich mal um erklärung, warum du ein besonderen Zeiger willst. O.O

    Weil der GC wissen muss, was ein Zeiger ist und was nicht.

    Dafuer muss man Zeiger aber nicht zwangsweise auszeichnen. Ein GC kann es auch selbst rausfinden.



  • Jo, da der GC ja sowieso einen eigenen Pool für "managed" Objekte haben wird lässt sich auch "relativ" schnell über die Adresse herausfinden ob ein Zeiger auf ein GC Objekt oder ein "normales" zeigt.

    Und wenn anstelle von Zeigern bei GC Objekten "handles" verwendet werden ist diese Abfrage sogar noch viel viel schneller, dafür braucht natürlich jedes Dereferenzieren länger. Auch doof.



  • Beweis schrieb:

    http://labs.google.com/sets?hl=en&q1=c%20%20&q2=java&q3=&q4=&q5=&btn=Grow+Set
    D wird nicht erwähnt

    was hat diese liste zu bedeuten?
    häufig der anfragen nach programmiersprachen bei google, oder was?





  • Apollon schrieb:

    rüdiger schrieb:

    Zeus schrieb:

    Optimizer schrieb:

    Was mich bei D äußerst stutzig macht, ist btw. der konservative GC. Gibt es in der Sprache keine eigenen Zeiger-Typen für Objekte auf dem GC-Heap? Wenn nicht, dann wird der GC wahrscheinlich nie richtig geil werden und das ist schlimmer, als wenn sie ihn weggelassen hätten...

    Jetzt bitte ich mal um erklärung, warum du ein besonderen Zeiger willst. O.O

    Weil der GC wissen muss, was ein Zeiger ist und was nicht.

    Dafuer muss man Zeiger aber nicht zwangsweise auszeichnen. Ein GC kann es auch selbst rausfinden.

    Nein, er kann nur konservative Annahmen machen, was ein Zeiger sein könnte. Es kann aber auch irgendeine Bit-Kombination zufällig (und sooo unwahrscheinlich wäre das schon nicht) auch ein gültiger Zeiger sein. Was du mit "selber rausfinden" meinst, beschreibt genau einen konservativen GC. Mach' dir keine Hoffnung - ein konservativer GC wird nie geil sein. Er braucht sehr lange um alle möglichen Zeiger zu identifizieren, er arbeitet ungenau ( = lässt Objekte stehen, entfernt Objekte die über Pointer-Arithmetik noch erreichbar wären) und ist noch ein zweites mal langsam, weil er den Heap nicht kompaktieren kann. Denn dazu müsste er Objekte verschieben und die Zeiger darauf anpassen können, was nicht möglich ist, wenn er Zeiger nicht zweifelsfrei identifizieren kann.



  • Ich weis zwar nicht, von was ihr da gerade redet, aber egal 😃

    Ich hab zu dem Thema mal einen kleinen Artikel auf meiner Homepage verfasst.
    Könnt ihr euch mal gerne durchlesen ---> www.cpp-world.de

    Zu finden unter den News.

    Aja, und was ist ein GC ??

    Grüße,

    mikey.



  • ich glaub
    Garbage Collector
    oder?
    .. geraten, die erste gc-abkürzung die mir eingefallen ist.

    mfg,
    julian



  • Ohje, ich glaub da muss jetzt Wikipedia herhalten ...



  • Es stimmt schon und ist mir bekannt. Ich habe mal einen GC fuer C implementiert. Aber...

    Optimizer schrieb:

    [...] er arbeitet ungenau ( = lässt Objekte stehen, entfernt Objekte die über Pointer-Arithmetik noch erreichbar wären) [...]

    Genau das tuht er nicht. Er laesst Objekte stehen, falls ein Bitmuster zufaellig als gueltige Adresse durchgeht, auch wenn es das nicht ist, aber dass er gueltige Objekte entfernt ist mir neu.

    Optimizer schrieb:

    Er braucht sehr lange um alle möglichen Zeiger zu identifizieren [...]

    So lange nun auch nicht. Es reicht aus, wenn man lediglich den Codebereich scannt. Von da an sind die Objektgroessen, auf die potentielle Zeiger verweisen, bekannt.

    EDIT: 5 Stunden lang postet keiner und wenn ich einen Beitrag verfasse, kommen sie daher und quetschen sich dazwischen. 😞 Mein Beitrag bezog sich auf Optimizer.



  • Apollon schrieb:

    Es stimmt schon und ist mir bekannt. Ich habe mal einen GC fuer C implementiert. Aber...

    Optimizer schrieb:

    [...] er arbeitet ungenau ( = lässt Objekte stehen, entfernt Objekte die über Pointer-Arithmetik noch erreichbar wären) [...]

    Er laesst Objekte stehen, falls ein Bitmuster zufaellig als gueltige Adresse durchgeht, auch wenn es das nicht ist, aber dass er gueltige Objekte entfernt ist mir neu.

    Natürlich entfernt er ein Objekt nicht, wenn ein Zeiger direkt darauf verweist. Du hast die relevante Stelle sogar mitzitiert.

    So lange nun auch nicht. Es reicht aus, wenn man lediglich den Codebereich scannt.

    Und die Stacks und den Heap, wenn man den Zeigern folgt. Ich weiß nicht genau, was du mit Code-Bereich meinst. Wenn du das Segment meinst, in dem sich der Programmcode befindet, wie soll das ausreichen?

    Die Frage nach der Möglichkeit stellt sich ja nicht. Ich traue dem GC schon zu brauchbar zuverlässig zu arbeiten, aber richtig geil wird er nie sein vor allem vom Performance-Standpunkt aus. Das wird einfach nur die Gerüchte wieder anheizen ("Ich hab das einmal mit und einmal ohne GC gemacht, der GC ist ja soooo langsam" - natürlich ist er das, wenn er schlecht ist). Der richtige Weg bzgl. GC wäre so wie in C++/CLI (auch wenn ich die Sprache sonst nicht mag). So denke ich, dass man nur die Feature-List weiter füllen wollte.



  • Optimizer schrieb:

    Der richtige Weg bzgl. GC wäre so wie in C++/CLI (auch wenn ich die Sprache sonst nicht mag). So denke ich, dass man nur die Feature-List weiter füllen wollte.

    Ist jetzt zwar OT, aber: wie arbeitet der GC unter C++/CLI und was ist der Unterschied zu der Art, wie er in D arbeitet?


Anmelden zum Antworten