• # idées en plus ?

    Posté par (site web personnel) . En réponse à la dépêche Quelques nouvelles sur Rust à l’occasion de la 0.9. Évalué à 3.

    De l'expérience Lisaac et Scade, j'avais 2 propositions pour Rust, mais j'imagine que c'est un peu tard. Mais il me semble que des personnes travaillant sur Rust passe par ici.

    Il me semble que Rust essaye de fonctionner avec un minimum de mémoire dynamique, un langage comme Scade/Lustre fonctionne à l'inverse des objets : ce sont les fonctions qui portent la mémoire et non l'inverse. C'est un peu comme si, en C, pour chaque appel de fonction, une mémoire était créée pour toute variable déclarée statique. Pour gérer le cas des boucles, c'est assez simple : elles n'existent pas, il y a juste des map ou des fold sur les tableaux de donnés. C'est assez extrême, cela peut augmenter la consommation mémoire, mais cela tient énormément la charge, et pour le temps réel, c'est top.

    Le deuxième point, issue des réflexions autour de Lisaac, était lié à l'énorme liste de conteneur possible (binary tree ou red-black tree ?), voir de type de String (ou "buffer" ou rope) en fonction de l'usage. Un humain peut rarement savoir qu'elle est le meilleur objet à utiliser. L'idée est de laisser choisir le compilateur qui peut simplement utiliser des heuristiques (présence de boucle ou non, ...), qui lui permet d'utiliser un "buffer" au lieu d'un string, si il détecte beaucoup de concaténation. Le principe technique de base serait d'utiliser une classe mère virtuelle, et le compilo se débrouille pour choisir une classe fille.

    Je sais, Noël est déjà passé :)

    "La première sécurité est la liberté"