• # compatibilité

    Posté par (site web personnel) . En réponse au journal L'édition 2018 de Rust est sortie !. Évalué à 3.

    En revanche, la bibliothèque standard ne peut en aucun cas avoir de breaking changes puisque si on change un type entre les éditions 2015 à 2018 par exemple, on ne peut plus passer une instance de ce type d'un crate à l'autre.

    Pourquoi pas? On pourrait imaginer plein de changements qui font que le type reste compatible. Par example, si on trouve que retourner un &str est plus efficace que de retourner un String, pour une fonction:

    implBar{
    #[edition(2018)]
    name(&self)-> String {...}
    #[edition(2021)]
    name(&self)-> &str {...}
    }

    On peut créer un nouveau crate 2015 et utiliser un crate 2018, qui utilise de nouveaux mots-clés par exemple, sans problèmes.

    Sauf si il y a des macros qui génère du code incompatible, non?