IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

Rust Discussion :

Google affirme qu'il est facile de remplacer C/C++ par Rust dans les firmwares


Sujet :

Rust

  1. #21
    Inactif  
    Profil pro
    undef
    Inscrit en
    F�vrier 2013
    Messages
    1 001
    D�tails du profil
    Informations personnelles :
    Localisation : France, Lot (Midi Pyr�n�es)

    Informations professionnelles :
    Activit� : undef

    Informations forums :
    Inscription : F�vrier 2013
    Messages : 1 001
    Par d�faut
    Citation Envoy� par fdecode Voir le message
    ...
    Reste qu'apparemment, il n'est pas possible de tout faire en Rust et certain projet comme construire une librairie Rust semble carr�ment impossible, l'algorithme de la racine carr�-inverse rapide ne semble pas non plus pouvoir �tre tol�r�e par le compilateur (sp�culatif, je n'ai pas essay� ; mais �tant donn� qu'il faille jouer avec les diff�rents motifs m�moire fonction du types des nombres, en Rust �a doit �tre un enfer) ; la compilation est affreusement lente quand il faut r�cup�rer tous les paquets Cargo pour un gros projet. Franchement pass� la hype, je ne vois pas comment Rust pourrait avoir une trajectoire diff�rente d'Ocaml ou Haskell, c'est un truc d'universit�/laboratoire qui ne semble pas pouvoir s'adapter � la r�alit� des entreprises.

  2. #22
    Membre confirm�
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2021
    Messages
    111
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (�le de France)

    Informations professionnelles :
    Activit� : Chercheur en informatique
    Secteur : A�ronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2021
    Messages : 111
    Par d�faut
    Citation Envoy� par 23JFK Voir le message
    Reste qu'apparemment, il n'est pas possible de tout faire en Rust et certain projet comme construire une librairie Rust semble carr�ment impossible, l'algorithme de la racine carr�-inverse rapide ne semble pas non plus pouvoir �tre tol�r�e par le compilateur (sp�culatif, je n'ai pas essay� ; mais �tant donn� qu'il faille jouer avec les diff�rents motifs m�moire fonction du types des nombres, en Rust �a doit �tre un enfer) ; la compilation est affreusement lente quand il faut r�cup�rer tous les paquets Cargo pour un gros projet. Franchement pass� la hype, je ne vois pas comment Rust pourrait avoir une trajectoire diff�rente d'Ocaml ou Haskell, c'est un truc d'universit�/laboratoire qui ne semble pas pouvoir s'adapter � la r�alit� des entreprises.
    Cela a l'air tr�s personnels et �motionnels comme griefs. Je vais simplement r�pondre � la demande concr�te de votre message: "algorithme de la racine carr�-inverse rapide" (de quake, je suppose).
    Dans la mesure o� c'est un algorithme de calcul tr�s approximatif, et que l'instruction SSE RSQRT existe d�sormais, il me para�t assez peu int�ressant, mais il a quand m�me �t� facile de trouver un exemple d'impl�mentation [playground]:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    fn inv_sqrt(x: f32) -> f32 {
        let i = x.to_bits();
        let i = 0x5f3759df - (i >> 1);
        let y = f32::from_bits(i);
     
        y * (1.5 - 0.5 * x * y * y)
    }
     
     
    fn print_both(v: f32) {
        println!("quake: {}", inv_sqrt(v));
        println!("real:  {}", 1.0 / v.sqrt());
        println!();
    }
     
    fn main() {
        print_both(4.0);
        print_both(10.0);
        print_both(3.1415);
    }
    Ceci-dit, le code de quake n'est pas tr�s int�ressant puisque le calcul exact tient en 3 instructions machine.

  3. #23
    Membre Expert Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 704
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyr�n�es Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activit� : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 704
    Par d�faut
    Citation Envoy� par 23JFK Voir le message
    Reste qu'apparemment, il n'est pas possible de tout faire en Rust et certain projet comme construire une librairie Rust semble carr�ment impossible
    Je vais supposer que tu t'es mal expliqu� parce qu'il est �vident que Rust peut faire des biblioth�ques. Le d�p�t standard de Rust contient plus de 150 000 crates dont la plupart sont des biblioth�ques.
    Si tu voulais parler de biblioth�que qui s'interface avec d'autre langages, c'est aussi possible, � condition d'avoir une interface qui respecte l'ABI C. C'est en effet limitant, mais c'est pareil pour tout les langages qui veulent s'interfacer avec d'autres.

    Citation Envoy� par 23JFK Voir le message
    l'algorithme de la racine carr�-inverse rapide ne semble pas non plus pouvoir �tre tol�r�e par le compilateur (sp�culatif, je n'ai pas essay� ; mais �tant donn� qu'il faille jouer avec les diff�rents motifs m�moire fonction du types des nombres, en Rust �a doit �tre un enfer) ;
    C'est un peu le probl�me, beaucoup de gens ont un avis tr�s tranch� sur Rust, bas� sur des sp�culations fausses. Rust peut tout � fait faire des manipulations de bit basiques, c'est juste que les hacks comme les conversions douteuses ou les d�passement volontaires, sont remplac�s par des fonctions explicites pour �tre sur qu'ils sont fait � dessein et que ce n'est pas des erreurs.

    Citation Envoy� par 23JFK Voir le message
    la compilation est affreusement lente quand il faut r�cup�rer tous les paquets Cargo pour un gros projet.
    �a c'est vrai, mais pour le coup on ne compile pas un gros projet de z�ro si souvent que �a. Quand on recompile un projet sur lequel on travaille, �a va beaucoup plus vite. �a reste plus lent que le C mais pas vraiment plus lent que des langages plus complexes comme le C++.

    Citation Envoy� par fdecode Voir le message
    Ceci-dit, le code de quake n'est pas tr�s int�ressant puisque le calcul exact tient en 3 instructions machine.
    Il me semble que la racine inverse rapide est encore pas mal utilis�e dans la 3D, l�approximation �tant relativement bonne et le gain sensible. Toutes les instructions machines ne se valent pas, 3 instructions complexes, peuvent prendre plus de cycles qu'une dizaine d'instructions plus simples.

  4. #24
    Membre Expert Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 704
    D�tails du profil
    Informations personnelles :
    Sexe :