C++11 : sur le fil

Posté par . Édité par Florent Zara et Xavier Teyssier. Modéré par Xavier Claude. Licence CC by-sa
Tags :
28
7
juin
2013
C et C++

Dans la course effrénée que se livrent les compilateurs, GCC vient de gagner une manche en étant le premier à fournir une implémentation complète du langage C++11. Les développeurs ont profité de la sortie de la version de maintenance 4.8.1 pour implanter les deux fonctionnalités manquantes :

  • les rvalue-references pour le pointeur this
  • l'utilisation de decltype sur des expressions de type incomplet

NdM : merci à nazcafan pour son journal.

les rvalue-references pour le pointeur this

Celles-ci permettent (entre autres) de surcharger des fonctions membres quand this est une rvalue ; voici un exemple tiré de la proposition originale :

class X {
   std::vector<char> data_;
public:
   // ...
   std::vector<char> const & data() const & { return data_; }
   std::vector<char> && data() && { return data_; }
};

X f();

// ...
X x;
std::vector<char> a = x.data(); // copie du vector
std::vector<char> b = f().data(); // move du vector

l'utilisation de decltype sur des expressions de type incomplet

La limitation de decltype à des types complets posait des problèmes d'instanciation de template en cascade. Ce changement a notamment bénéficié aux bibliothèques boost qui ont du coup changé le comportement de leur result_of pour s'aligner sur le comportement de std::result_of.

L'annonce de cette sortie semble être destinée a couper l'herbe sous le pied de LLVM 3.3 dont la publication est imminente.

Toutefois, il s'agira tout-de-même d'une victoire en demi-teinte puisque la libstdc++ de GCC ne fournit toujours pas certains composants de la bibliothèque standard, telles les expressions rationnelles. La libc++ du projet LLVM est déjà complète, ce qui devrait faire de LLVM 3.3 le premier compilateur à prendre en charge le standard C++11 dans sa totalité (langage + bibliothèque standard).

  • # GCC

    Posté par (page perso) . Évalué à -10.

    C'est quand même bien pourri de la part de GCC de s'empresser de la sorte sur le support, un véritable comportement de gamins. On fait du libre ou des coups de fusil ?

    Love, bépo.

    • [^] # Re: GCC

      Posté par . Évalué à 6.

      Oui
      Une course
      C'est le point de vue de l'équipe GCC, ou le point de vue du rédacteur de la news ?

      Dans tout les cas, la course (compétition) est généralement un bon moyen pour obtenir le meilleur (ou le pire) de chacun, et c'est bien.

    • [^] # Re: GCC

      Posté par (page perso) . Évalué à 5.

      Ça me semble pas des fonctionnalités énormes, et je pense qu’avec le temps les développeurs de GCC ont quand même acquis pas mal d’expérience, donc assez pour savoir ce qu’ils font. Et si tu penses que c’est à cause de Clang… Si il suffit de sortir une nouvelle fonctionnalité pour être traité de gamin. :p

      De plus je ne vois pas trop le problème, cette fonctionnalité ne seras utilisé tout de suite (le temps que la version de GCC se démocratise et que les gens apprennent cette fonctionnalité). À part le passionné d’informatique qui fait des expérimentations, personne d’autre ne risque d’utiliser ça donc c’est pas si grave.

      Et puis, «release early, release often». Si on introduit pas de fonctionnalité majeure (ça me semble pas très gros dans changement et ça devait être dans les cartons depuis longtemps que 10 minutes avant la sortie) dans une version mineure ça roule. Et je pense que ça feras pas de mal à GCC d’augmenter la vitesse d’inclusion de nouveautés.

      Écrit en Bépo selon l’orthographe de 1990

      • [^] # Re: GCC

        Posté par (page perso) . Évalué à -3.

        Ce n'est pas le fait de sortir des nouveautés qui me dérange, bien au contraire, juste que mettre ça dans une release de maintenance, ça n'a pas de sens.

        Love, bépo.

        • [^] # Re: GCC

          Posté par . Évalué à 8.

          J'avais posé la question à un dev de GCC pour savoir si c'était pour troller CLang ou bien normal qu'on incorpore de nouvelles fonctionnalités dans une version patch.
          De fait, les patchs qui apportent la touche au support du langage C++11 (et pas la bibliothèque standard) étaient prêts depuis longtemps mais l'auteur original Bronek Kozicki a eu des soucis pour l'assignation de copyright à la FSF du côté de son employeur..
          http://gcc.gnu.org/ml/gcc-patches/2013-04/msg00024.html

          Donc non, ça n'était pas pour coiffer au poteau CLang, qui lui arrivera avec une libc++ qui implémente entièrement la bibliothèque standard C++11. Quoi que soit Linux, on utilise habituellement libstdc++ ce qui remet à égalité GCC et CLang à ce niveau là. Mais c'est très bien qu'il y ait plusieurs implémentations de la dernière norme et que les prochaines soient déjà en cours d'intégration !
          http://clang.llvm.org/cxx_status.html
          http://gcc.gnu.org/projects/cxx1y.html

          • [^] # Re: GCC

            Posté par (page perso) . Évalué à -1.

            Ah bon, parce que l'article suggérait le contraire. (moinssez-moi moinssez-moi)

            Love, bépo.

            • [^] # Re: GCC

              Posté par . Évalué à 8.

              moinssez-moi moinssez-moi moinssez-moi  ! c'est le chant du Leryan qui supplie, qui joue avec les posts et ouvre les volets sur cette grande questionnnn

              kentoc'h mervel eget bezan saotred

  • # On se croirait sur Phoronix...

    Posté par . Évalué à 3.

    ..avec cette annonce. Parce qu'autant si gcc avait des mois d'avance sur l'implémentation complète de C++11, ça aurait pu marquer le coup, mais que ça se joue sur quelques jours (Clang/LLVM 3.3 devait sortir le 5 juin, justement pour anniversaire de Phoronix). C'est étonnant de retrouvé ce coté un peu "sensationnel" du-dit site ici même.

    Sinon, Clang/LLVM aura au moins le mérite d'en réveiller certains chez gcc pour nous pondre des choses utiles comme enfin des retour d'erreurs de compilation plus sympathiques depuis peu, chose que le nouveau compilateur (dont il manque quand même un pendant OpenMP malheureusement) avait depuis des années.

  • # Et pendent ce temps chez Microsoft...

    Posté par (page perso) . Évalué à 8.

    Et pendent ce temps chez Microsoft, on est à la traîne. Microsoft Visual Studio n'implémente toujours pas C99, et son support de C++11 est toujours rudimentaire.

    En plus, WinRT ajoute des « extensions » au language (comme par exemple les ref classes qui ajoutent un nouveau mot clef ref et un nouveau type de pointeur ^. Je ne sais pas si ça apporte quelque chose par rapport au shared_ptr.)

    Bref, le C++ c'est un peu come le HTML à l'époque de IE6. Merci Microsoft.

    • [^] # Re: Et pendent ce temps chez Microsoft...

      Posté par . Évalué à 0.

      D'un autre coté que ça soit gcc et clang, le support de C99 n'est pas non plus complet, et si le support de C++11 dans VS2012 n'est pas non plus complet, il est du même tonneau que gcc/clang il y a un an a peu prêt. Sans compter qu'il y a des fonctionnalités de C++11 qui ont mis pas mal de temps à être implémentées du fait qu'elles sont loin de faire l'unanimité en terme d’intérêt. Joli appeau à troll, mais il fallait plutôt le sortir hier !

      • [^] # Re: Et pendent ce temps chez Microsoft...

        Posté par (page perso) . Évalué à 5. Dernière modification le 08/06/13 à 12:30.

        Pourtant quand on regarde ce document (qui date d'il y a a peu près un an):
        http://cpprocks.com/a-comparison-of-c11-language-support-in-vs2012-g-4-7-and-clang-3-1/

        vs2012 a beaucoup de "No", et pas sur des features c++11 anecdotiques. Ca me semble un peu abusé de dire qu'il est au même niveau que les gcc et clang d'il y a un an.

        • [^] # Re: Et pendent ce temps chez Microsoft...

          Posté par . Évalué à 1.

          Et bien sur le même site on peut voir : http://cpprocks.com/c11-compiler-support-shootout-visual-studio-gcc-clang-intel/

          Et justement avec ton lien, on voit par exemple qu'il a fallu attendre mai 2012 pour avoir les Initializer lists dans Clang/LLVM et que c'est maintenant supporté depuis peu sous VS2012. M’intéressant nettement plus à Clang qu'à gcc, j'ai pas mal lurké depuis des mois sur http://clang.llvm.org/cxx_status.html et globalement le support actuel est de l'ordre entre du 3.0/3.1.

          C'est surtout le "rudimentaire" qui fait tache dans le commentaire de l'OP (on va passer sur le C99 qu'aucun des compilateurs n'a de façon complète par exemple) à mon sens.

          Je suis bien content de pouvoir utiliser Clang/LLVM de façon de plus en plus sympathique sous Linux et j'espère que les patchs Kernel permettant une compilation seront intégrés dans un futur proche, même si il reste encore du code spécifique à gcc. Tout simplement pour avoir plus de choix déjà !

      • [^] # Re: Et pendent ce temps chez Microsoft...

        Posté par . Évalué à 1. Dernière modification le 09/06/13 à 20:20.

        Raphael R a écrit :

        D'un autre coté que ça soit gcc et clang, le support de C99 n'est pas non plus complet

        J'aurais plutôt dit : « que ça soit gcc ou clang, le support de c11 est ridiculement rudimentaire ». À ce sujet, je suis toujours aussi admiratif devant le grand soucis de conformité qui anime ces deux projets…

    • [^] # Re: Et pendent ce temps chez Microsoft...

      Posté par (page perso) . Évalué à 1.

      On ne peut pas compiler pour une cible Windows avec gcc ou clang ?

      Python 3 - Apprendre à programmer en Python avec PyZo et Jupyter Notebook → https://www.dunod.com/sciences-techniques/python-3

    • [^] # Re: Et pendent ce temps chez Microsoft...

      Posté par . Évalué à 2.

      Visual Studio n'implémentera sans doute jamais C99 dans sa totalité. Seules les fonctionnalités qui se recoupent avec C++ le seront. C'est dit quelque part sur le site de Herb Sutter. En gros : VSC++ != VSC (qui n'a jamais existé). Sutter dit qu'ils se concentrent uniquement sur l'implémentation de C++. Le reste est un effet de bord bonus.

  • # Je me fais vieux

    Posté par . Évalué à 10.

    Alors il y a maintenant plusieurs années que je ne fais plus de C++ mais j'avoue que je ne comprends plus grand chose aux nouvelles fonctionnalités et que la syntaxe me parait de plus en plus bizarre. Mais bon j'imagine que c'est comme tout ca doit être une réaction au changement…

    • [^] # Re: Je me fais vieux

      Posté par (page perso) . Évalué à 3.

      Le truc qui m'a le plus fait marrer avec le C++ (que j’utilise et apprécie par ailleurs), c'est l'introduction du mutable: on met en place des protections const, etc. Et on est obligé de mettre en place des moyens de détournement — bon, si c'est venu c'est qu'il y avait un besoin.

      Python 3 - Apprendre à programmer en Python avec PyZo et Jupyter Notebook → https://www.dunod.com/sciences-techniques/python-3

      • [^] # Re: Je me fais vieux

        Posté par (page perso) . Évalué à 4.

        Vu le gros hack que c’est je trouve que le C++ se porte très bien. J’ai beaucoup apprécié pas mal de nouveautés du C++11 qui sont vraiment sympa, comme les pointeurs «intelligents», plus de problèmes de compilation avec vector<vector<int>>, etc. Et on est pas obligé d’utiliser toutes les fonctionnalités du langage (encore heureux…)

        Après ça pourrait être mieux, mais pour ça on a de nouveaux langages comme Rust. C’est pas encore fini, la bibliothèque standard a encore besoin de pas mal de boulot je pense mais le projet est très actif et la syntaxe du langage ne devrait pas trop changer!

        Écrit en Bépo selon l’orthographe de 1990

      • [^] # Re: Je me fais vieux

        Posté par (page perso) . Évalué à 3.

        Tu veux dérivé une fonction const, mais pour des besoin multi-thread tu veux protégé par une section critique, ben tu déclare ta section critique comme mutable.

  • # Pendant ce temps...

    Posté par . Évalué à 4.

    … Microsoft annonce qu'il arrête les updates du C++ sur VS2012 pour se concentrer sur VS2013.
    -> http://blogs.msdn.com/b/bharry/archive/2013/06/03/visual-studio-2013.aspx
    Clang ou GCC, dans tout les cas ça reste quand même une belle victoire du libre.

    • [^] # Re: Pendant ce temps...

      Posté par . Évalué à -1.

      J'en connais qui vont rigoler (jaunes). Pour developper sous Windows, il faut vraiment ne pas avoir le choix ou etre masochiste. Les versions de Microsoft Visual Studio qui sont toutes incompatibles les unes avec les autres c'est assez amusant, tres curieux pour quelqu'un provenant du monde Unix. C'est comme un super puzzle pour trouver la cause du probleme, le probleme c'est que il est pas toujours possible de trouver la reponse sur le net pour resoudre ce puzzle.
      Mais bon je peux comprendre la logique vu que ce n'est qu'une course incessante a la nouvelle version (et/ou l'ancienne). Le logiciel que tu utilises a ete compile avec VS XX et donc tu dois aussi avoir exactement la meme version pour que ton truc a toi fonctionne. Je sais bien que les Microsoft adorateur vont dire que je ments mais bon ca c'est ce qui se passe dans la vraie vie et je ne parle meme pas du merdier entre X86 et x64 tres tres amusant aussi meme avec des libs aussi bien faite que Qt…

      • [^] # Re: Pendant ce temps...

        Posté par (page perso) . Évalué à 0. Dernière modification le 11/06/13 à 21:22.

        Pour developper sous Windows, il faut vraiment ne pas avoir le choix ou etre masochiste.

        Tiens, moi je dis que Pour développer sous Linux, il faut vraiment ne pas avoir le choix ou etre masochiste.
        Sans doute une question de point de vue…

        Adorateur? Non, simple utilisateur des 3 OS principaux, et Linux est clairement le dernier (surtout concernant la recherche d'un IDE et d'un SDK modernes corrects, Visual Studio ou Xcode étant bien au dessus des autres)

        Mais tu va encore dire que la majorité des gens sont des masochistes (car en nombre, les dev' Windows ou Mac sont carrément au dessus du nombre de dev' Linux)

        • [^] # Re: Pendant ce temps...

          Posté par . Évalué à 2.

          Autant j'aime bien VS en tant qu'IDE, autant les rares fois où j'ai utilisé XCode (qui a fait des progrès depuis que je l'ai utilisé, certes), j'ai trouvé que c'était vraiment tout pourri. Après comme mon expérience date beaucoup, je me suis tourné vers des gens qui développent professionnellement pour Mac OS X / iOS. Ils trouvent que cet IDE est vraiment lourd est pas pratique, notamment comparé à VS. Mais aussi (surprise!) comparé à NetBeans!

          • [^] # Re: Pendant ce temps...

            Posté par (page perso) . Évalué à 2.

            les rares fois où j'ai utilisé XCode (qui a fait des progrès depuis que je l'ai utilisé, certes), j'ai trouvé que c'était vraiment tout pourri.

            Je te rassure : moi aussi.
            Mais j'accepte les gens qui aiment (il y en a. Comme il y a des gens qui aiment Mac :) )

          • [^] # Re: Pendant ce temps...

            Posté par (page perso) . Évalué à 2.

            Il y a vraiment des gens qui utilisent NetBeans de façon professionnelle?

            J'utilisais NetBeans avant, mais ce con me foutait le merdier dans mes indentations (il mettait des espaces à la place des tabulations ou pas, ce qui fait que d'une ligne sur l'autre c'était n'importe quoi). De plus la sortie des programmes en mode texte était mal formaté (je crois qu'il remplaçait les tabulations par des espaces, du coup si sur une ligne t'avais pas de caractère ou plus que les autres lignes tout était décalé).

            Par contre la coloration syntaxique reste meilleure qu'Eclipse je trouve (en tout cas plus agréable).

            Écrit en Bépo selon l’orthographe de 1990

      • [^] # Re: Pendant ce temps...

        Posté par . Évalué à 2.

        Le logiciel que tu utilises a ete compile avec VS XX et donc tu dois aussi avoir exactement la meme version pour que ton truc a toi fonctionne.

        C'est surtout un problème d'incompatibilité binaire du C++ en fait, il y a des incompatibilités entre les différentes versions de la lib standard C++. Ça peut faire des bugs assez subtils à débugger, où la mémoire est allouée par une version de malloc() et récupérée par une version de free() qui ne correspond pas.

        Du coup chez microsoft ils donnent un nom différent à la DLL de la lib C++, ce qui empêche de linker en cas de problème.

        Je ne sais pas à quel point le problème existe sous linux. Il me semble que des collègues ont eu des soucis de ce genre récemment, mais il s'agissait de faire fonctionner un code compilé avec une libstdc++ récente sur une machine avec des versions plus anciennes, et je suis pas sûr que le problème soit solvable dans ce sens là.

        • [^] # Re: Pendant ce temps...

          Posté par . Évalué à 1.

          Oui mais lorsque compiler Qt4 en mode 64 bits est a peu pres impossible et pas que par des linuxiens je peux vous garantir. Juste pour rigoler la liste des "solutions" pour resoudre le probleme qui fonctionne de temps en temps:

          • un fichier a patcher
          • forcer la non compilation de webkit
          • sortir les espaces de la variable path et utiliser les trucs a la progra~2.
          • demarrer en mode sans echec (non non c'est pas une blague cela faisait partie des "solutions")

          Enfin c'est amusant a voir. Une semaine de baguarre pour y arriver lorsque sous linux ca se fait en … le temps de compilation :D

        • [^] # Re: Pendant ce temps...

          Posté par (page perso) . Évalué à 6.

          C'est surtout un problème d'incompatibilité binaire du C++ en fait,

          Non. C'est juste Microsoft qui a ces incompatibilités.

          De son coté, GCC maintiens une bien meilleur compatibilité binaire.
          Le dernier changement date de libstdc++-v3 (libstdc++.so.6) sorti avec GCC 3.4.0 en 2004 (il y a 9 ans!)

          Et reste compatible même après le passage à C++11.

          (Note que C++11 rajoute quelque règle qui nécessite un changement dans l'ABI, comme le fait que std::list::size soit O(1) ou qui interdit à std::string de faire du « copy on write ». Les dev de GCC ont décidé de repousser ces changements à la prochaine version majeure de la libstdc++)

          (Ah, je rajoute que C++11 introduit les « inline namespace », qui permet de facilité la compatibilité binaire des bibliothèque en C++. C'est utilisé par la libc++ du projet llvm)

          il s'agissait de faire fonctionner un code compilé avec une libstdc++ récente sur une machine avec des versions plus anciennes

          C'est plus problématique, surtout si le programme fait appel à des nouveauté de tr1 ou de C++11

      • [^] # Re: Pendant ce temps...

        Posté par (page perso) . Évalué à 3.

        Ce qui est sûr c’est que même pour une utilisation «classique» de Windows je connais des utilisateurs qui se retrouvent avec 3 ou 4 version de VS installées (et si ça n’était que ça…) Et sans compter les versions 32 et 64 bits… En fait ce qui est géré de manière transparente sous GNU/Linux transpire un peu sous Windows avec des doublons (plusieurs versions).

        Tout le monde s’en fout, c’est invisible pour l’utilisateur, mais ça fout un bordel monstre dans l’utilitaire de suppression de programmes.

        Écrit en Bépo selon l’orthographe de 1990

        • [^] # Commentaire supprimé

          Posté par . Évalué à -4.

          Ce commentaire a été supprimé par l'équipe de modération.

          • [^] # Re: Pendant ce temps...

            Posté par (page perso) . Évalué à 1.

            C'est que le paramétrage par défaut du gestionnaire de paquet est mal foutu alors… On utilise ce genre de fonctionnalité (supprimer en cascade) vraiment en dernier recours/si on sait ce qu'on fait.

            Avec pacman (gestionnaire de paquets d'Arch Linux), pacman -Rs pour supprimer un paquet et ses dépendances qui ne sont pas utiles à d'autres paquets. pacman -Rsn fait la même chose en supprimant tous les paquets qui dépendent de celui que l'on va supprimer (option séparée donc).

            Écrit en Bépo selon l’orthographe de 1990

            • [^] # Commentaire supprimé

              Posté par . Évalué à -1.

              Ce commentaire a été supprimé par l'équipe de modération.

              • [^] # Re: Pendant ce temps...

                Posté par (page perso) . Évalué à 1.

                ET je parle meme pas quand une mise a jour foire en plein milieu. (Sous windows AUSSI ca arrive que les mises a jours soient casses mais ca se repare automatiquement beaucoup plus facilement (par contre quand c casse casse ….bah c'est encore plus obscur que sous Linux)

                C'est facile sous GNU/Linux mais c'est pas fait automatiquement. Si tu le lances en ligne de commande, apt-get t'indique quel commande effectuer pour réparer, ça fait le reste tout seul.

                Si on avait le systemd (pas de trolls, pitié) des gestionnaires de paquets, ça aiderait pas mal pour régler ce genre de problème une bonne fois pour toutes.

                Écrit en Bépo selon l’orthographe de 1990

              • [^] # Re: Pendant ce temps...

                Posté par . Évalué à 2.

                Quand tu vire un jeu inclus dans kde ou gnome par exemple ca de degage tout.

                Source ?

                "Quand certains râlent contre systemd, d'autres s'attaquent aux vrais problèmes." (merci Sinma !)

                • [^] # Re: Pendant ce temps...

                  Posté par . Évalué à 3.

                  Il parle d'un cas très classique. Ton DE est installé via un méta paquet qui a en dépendances tous les logiciels du DE. Tu vire l'un de ceux-ci ça vire le paquet virtuel plus tous les paquets installés en dépendance à ce paquet virtuel qui sont considérés comme plus nécessaires.

                  Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

                  • [^] # Re: Pendant ce temps...

                    Posté par . Évalué à 2.

                    Quand je vire un jeu livré avec le méta-paquet xubuntu-desktop, ça me vire uniquement le jeu et le méta-paquet, mais pas le desktop ni auucun autre logiciel.

                    Si ça te vire tout le DE, c'est que quelqu'un s'est foiré dans les dépendances.

                    Mauvais empaquetage, changer empaquetage.

                    "Quand certains râlent contre systemd, d'autres s'attaquent aux vrais problèmes." (merci Sinma !)

                    • [^] # Re: Pendant ce temps...

                      Posté par . Évalué à 2. Dernière modification le 13/06/13 à 09:13.

                      Je comprends bien, mais ça arrive (sur un forum où j'ai mes habitudes c'est arrivé à quelqu'un sur Debian (je sais pas s'il est en stable ou autre) pour qui aptitude a voulu faire un peu trop de ménage.

                      Je me pose une question du coup. Comment c'est géré ? Comment il fait pour marquer toutes les dépendances du métapaquet comme installées manuellement, c'est le paquet qui fait ça lui même où ça vient d'autre chose ?

                      Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

                      • [^] # Re: Pendant ce temps...

                        Posté par (page perso) . Évalué à 4.

                        Certains installateurs marquent tous les paquets installés durant l'installation comme installé manuellement.

                        « Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. » Coluche

                        • [^] # Re: Pendant ce temps...

                          Posté par . Évalué à 2. Dernière modification le 13/06/13 à 09:49.

                          Ça me paraît bien moche comme solution. d'une part durant l'installation tu as des bibliothèques dont t'a rien à faire, d'autre part si comme moi tu installe le strict minimum via l'installeur et tu choisi d'installer¹ ton DE (entre autre) après coup (ou si tout simplement tu veut changer de DE après l'installation) ça ne marche pas.

                          Je présume que dans l'idéal un métapaquet devrait pouvoir indiquer que ses dépendances sont requises et considérés comme des installés manuellement (ou alors que les métas paquets soient considérés comme des alias et pas comme des paquet à part entière (mais ça pose d'autres problème)).

                          ¹ : et encore la plupart du temps j'utilise debootstrap

                          Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

                          • [^] # Re: Pendant ce temps...

                            Posté par (page perso) . Évalué à 3.

                            d'une part durant l'installation tu as des bibliothèques dont t'a rien à faire

                            Il n'y a pas de solution miracle, soit tu installe trop ou trop peu. Mais je pense que les gens qui s'y connaissent moins, préfèrent avoir des bibliothèques en trop que lorsqu'ils virent un jeu, toute l'interface graphique disparaisse.

                            d'autre part si comme moi tu installe le strict minimum via l'installeur et tu choisi d'installer¹ ton DE (entre autre) après coup (ou si tout simplement tu veut changer de DE après l'installation) ça ne marche pas.

                            Je ne pense pas que ce soit le cas visé, le cas que tu présente montre quand même un connaissance plus que basique du système, donc des gens qui ne laisseront pas le DE se désinstaller ou sauront le réinstaller.

                            « Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. » Coluche

                            • [^] # Re: Pendant ce temps...

                              Posté par . Évalué à 2.

                              Je me fais bien au système actuel, mais intellectuellement je suis gêné qu'il n'y ai pas de solutions plus globale. On doit pouvoir imaginer des solutions de plus haut niveau, mais il est à mon avis nécessaire avant ça d'avoir un moyen fiable de distinguer une bibliothèque d'un logiciel.

                              Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

                              • [^] # Re: Pendant ce temps...

                                Posté par (page perso) . Évalué à 3.

                                Il faut plutôt se poser la question de pourquoi un utilisateur veut supprimer un logiciel, si c'est pour gagner de la place, il faut pouvoir supprimer les bibliothèques. Si c'est pour ne pas avoir un truc gênant dans le menu, il suffit d'un système pour cocher quels .desktop sont affichés.

                                « Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. » Coluche

                                • [^] # Commentaire supprimé

                                  Posté par . Évalué à 0.

                                  Ce commentaire a été supprimé par l'équipe de modération.

                                  • [^] # Re: Pendant ce temps...

                                    Posté par . Évalué à 0.

                                    Mais on aura toujours des xcomcmdr qui vont faire les malins en disant 'source'…

                                    Mais on aura toujours des Riendf pour venir proclamer que SON expérience est forcément la plus représentative (sans compter que chaque distrib et release change au niveau des dépendances entre les paquets, donc plus flou que le FUD de Riendf, tu meurs).
                                    Désolé, j'ai pas tes problèmes, et plein d'autres utilisateurs non plus.

                                    "Quand certains râlent contre systemd, d'autres s'attaquent aux vrais problèmes." (merci Sinma !)

                                  • [^] # Re: Pendant ce temps...

                                    Posté par . Évalué à 3.

                                    Oh, le truc marrant aussi c'est quand un pc a pas de carte son mais que virer les libs sonores emportent la majorite du systeme aussi.

                                    Oui, quand un programme est liés à des bibliothèque à la compilation ces bibliothèques sont obligatoires (le programme ne démarrera de toute façon pas sans elles).
                                    Les distributions généralistes compilent avec un maximum d'options pour répondre à un maximum de besoins, et les programmes qui permettent de charger dynamiquement des fonctionnalités optionnelles (par exemple avec un système de plugins) sont malheureusement minoritaires.

                                    Si tu veux avoir plus de contrôle sur ce genre de choses, il faut plutôt t'orienter vers une distribution source (à la gentoo) où tu pourra tuner toi-même les options de compilation en retirant les choses que tu sais inutile.

        • [^] # Re: Pendant ce temps...

          Posté par . Évalué à 2.

          C'est exactement ca le probleme d'ou le fait que je dise qu'il faut etre masochiste (ou ne pas avoir le choix) pour developper sous windows.

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.