• # Le style de la page

    Posté par  . Évalué à 1.

    Le format une colonne avec barre de défilement c'est pas génial.
  • # Petite remarque

    Posté par  (site web personnel) . Évalué à 2.

    Pour bénéficier pleinement des avantages du ramasse-miettes (Garbage Collector) il faut créer les structures de données dans Python.

    J'ai trouvé cette phrase un peu enigmatique
    • [^] # Re: Petite remarque

      Posté par  . Évalué à 2.

      J'ai trouvé cette phrase un peu enigmatique

      Pouquoi ça ? Tel que je le comprends, si tu crées des objets dans ton code C tu dois les libérer. Si tu les crées dans ton code Python, le ramasse miettes s'en charge comme s'il s'agissait de code full Python. J'ai bon ?
  • # J'ai rien compris ...

    Posté par  . Évalué à 2.

    franchement ton article est aussi obscure que possible pour un texte aussi court ....

    Déjà il aurait été mille fois plus intéressant de montrer comment faire une classe Python à partir d'une structure C ! Et donc montrer rapidement comment enregistrer le destructeur et le constructeur (ou plutôt l'initialisateur ...).

    Ensuite, le GC (garbage collector) n'a absolument rien à faire dans ton exemple ! Pour les objets "simple" (comprendre : qui ne risquent pas de provoquer des cycles de références) Python fonctionne par comptage de référence ... parler du GC ici est une complication inutile.
    De plus, celui qui ne libère pas la mémoire n'est pas Python mais SWIG ... Python a probablement libéré la mémoire nécessaire pour stoquer sa structure à lui !
    • [^] # Re: J'ai rien compris ...

      Posté par  (site web personnel) . Évalué à 1.

      “In addition, SWIG creates default constructor and destructor functions if none are defined in the interface.”

      http://www.swig.org/Doc1.3/SWIG.html#SWIG_nn55(...)

      Cet article est peut-être un peu rapide/court, c'est vrai.

      Un peu de lecture pour les frustrés (et moi avec) : http://www.swig.org/Doc1.1/HTML/Contents.html(...)
    • [^] # Re: J'ai rien compris ...

      Posté par  . Évalué à 2.

      "une classe Python à partir d'une structure C"

      C'est bien ce que fait SWIG.

      "montrer rapidement comment enregistrer le destructeur et le constructeur"

      Oki si tu penses que c'est important je peux le faire.

      "Ensuite, le GC (garbage collector) n'a absolument rien à faire dans ton exemple"

      Bien sûre que si, c'est justement le but de cette article de montrer comment fonctionne le GC de python avec SWIG.

      "De plus, celui qui ne libère pas la mémoire n'est pas Python mais SWIG ... Python a probablement libéré la mémoire nécessaire pour stoquer sa structure à lui !"

      Python ne libère pas la mémoire mais c'est lui qui commande cette libération via SWIG. Donc quand Python n'a plus de référence sur un objet (dans ce cas une structure) le GC supprime l'objet Python. Le destructeur de cet objet Python commande à la bibliothèque la libération de la mémoire via le destructeur généré automatiquement par SWIG. On s'affranchi ainsi de la gestion de la mémoire tant qu'on respecte la règle de ne pas créer la structure dans une fonction C/C++.
  • # Petit Malin

    Posté par  . Évalué à 0.

    Tu y prends goût toi ;-)
    http://linuxfr.org/comments/630944.html#630944(...)

    Désolé, ce soir j'ai mon cours de danse :D
  • # déjà testé

    Posté par  . Évalué à 2.

    J'avoue que j'ai déjà essayer d'interfacer les deux monstres et que depuis je ne jure que par SWIG. Grace a lui j'ai pu me sortir de problèmes de sockets pas evident en très peu de temps.
    Merci SWIG :-)

Suivre le flux des commentaires

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