Je rajouterais aussi que le compilateur n'est pas gentil avec le débutant quand tu ne compiles pas souvent : l'erreur peut être renvoyé loin de son origine et des messages sibyllin comme 'le type toto n'est pas compatible avec le type toto' sont toujours surprenant (en cas de redéfinition du type en court de route, mais la ligne de la définition du type n'est pas donné). Je crois que ocaml 4.0 est meilleur sur ce terrain.
La syntaxe est ultra compacte, c'est vexant de bloquer sur l'écriture d'une vingtaine de lignes de code. Mais ses lignes en représenteraient des centaines dans un autre langage (pattern matching sur un arbre, pour en créer un autre par exemple). C'est une question d'habitude.
Sinon, les type sommes et les match c'est simplement génial.
Il n'y pas que Batterie sur le marché des trucs en plus. DE mémoire, elles sont 3 (core ?).
on citera notamment (|>) et qui sert à "piper" les fonctions let a = (f x) |> g <=> let a = g (f x)
Sérieusement, il y a des gens qui pensent que ce genre de zigouigoui rend le code plus clair ? Pour un langage parlant (let … = in, match … with …), quelle idée de rajouter tous ses machines inexpressifs.([>, ~label, etc…)
"éumérations"
Le type somme ne suffit pas ?
"Des outils de manipulation de fichiers puissants"
Et portable windows/unix ?
"je m'en sert notamment pour utiliser des types de données plus couillus que les listes dès que la logique est validée."
Un code avec des listes est tellement plus lisible ! Est-ce que tu as réellement noté une augmentation de perf valable pour contre -balancer la lourdeur d'écriture ? J'ai l'impression que la collection doit être grosse (> 10 000 éléments) pour que cela soit intéressant.
J'avoue aussi que j'aimerai un truc gui qui utilise les arbres de type de base plutôt que les objets pour représenté la gui, c'est plus simple de manipulation.
D'ailleurs est-ce qu'il existe un truc pour faire un client lourd ? J'avais entendu parler d'un binding gtk, dans quel état est-il ?
J'adorerais un binding avec les EFL, mais cela n'a pas l'air simple :)
En général, sur les processeurs 32 bits, toutes ce qui est initialisation, gestion mémoire est plus complexe. Mais c'est vrai qu'il s'agit plus du système autour que du cpu lui -même.
Cela mériterait un journal à part entière. Il manque une plus longue explication sur le problème à résoudre par ton logiciel, puis ses points forts actuels, voir une comparaison avec d'autres solutions, et quelques captures d'écran pour se faire une idée.
On ne peut pas vraiment torcher un code en ocaml, mais la différence entre un code qui tourne et un produit est faible, contrairement au C par exemple.
Ma boite l'utilise pour ses générateurs de code qualifié/certifié futur DO330/D0178b/EN50128/IEC1508.
Dans la liste, il manque l'état de maturation du code. Inutile de présenter un code béta inutilisable en pratique. Il est aussi intéressant de savoir si le projet est toujours soutenu. Un projet dont le dernier commit à plus de 1 an, est un très mauvais signe.
J'y crois moyen. Par exemple sur core i7, il ont réhabilité les instructions de copy de string, elles étaient déprécié au profit d'instruction SSE, puis le tout est revenu pour offrir de meilleur performance (écrire le code le plus rapide possible de copie mémoire peut vite devenir très complexe).
"Le FPU c'est hassebine justement… Maintenant, c'est du SSE."
Ce n'est plus vraiment du x86, mais plus du x86-64. De plus, quand il y a besoin de fonction précise trigonométrique, les instructions x87, sont plus rapides que leur équivalent codé en SSE (surtout sur AMD). Ce n'est pas encore complètement has-been.
Le jeu d'instruction x86 est totalement bordélique et traine un historique très lourd. Il faut une sacré expertise pour trouver un sous-ensemble complet et orthogonal dans la foret des instructions disponibles.
On peut aussi parler de la fpu à pile, qui est une exception à elle toute seul.
Il y a encore des gens qui utilisent ça ? Ce n'est même pas portable dans la révision du cpu suivante. De plus, la distance optimal de prefetch soit même changer avec les fréquences du cpu et de la mémoire (trop tôt et la donnée sera viré du cache avant usage, trop tard et elle encombre l'unité de load 2 fois au lieu d'une).Le pentium 4 avait 4 instructions, les core les réduisait à 2 (de mémoire).
Je croyais que la technique n'était plus vraiment utilisé au profit du preload.
Merci pour le lien. En fait, les cpu sont toujours en arithmétique en complément à 2, mais les compilateurs jouent sur la norme C, ce qui devient faux, après activation des optimisations !
ARM dispose maintenant d'un grand nombre de mode d'adressage qui l'éloigne du concept RISC.
Ses derniers évolutions utilisent un jeu d'instruction avec 2 tailles d'instruction : 16 et 32 bits. Cela commence à se complexifier.
Par ma part, j'ai vu l'assembleur sur hc11 et 68000. Je trouve que l'assembleur du msp430 de TI est extrêmement propre, c'est un microcontroleur 16/32 bits très efficace.
Il est parfaitement défini. Il s'agit de l'arithmétique en complément à 2 qui fonctionne avec les joies des calcul sous modulo ou (a+b)%c = a%c + b%c, si je me rappelle bien. Cela permet d'avoir des débordements intermédiaires sans conséquence sur le résultat finale.
Tes histoires de boucles infinis ne sont pas lié à des mélanges signed/unsigned ?
Les registres spéciaux contenant les carry et autre résultat de test utilisé comme prédicat sont une vrai plaie pour les pipelines car cela créait une dépendance forte entre 2 instructions (celle qui génère la carry et la suivante, chaque instruction pouvant modifier ces bits). Donc, c'est pas plus mal :)
[^] # Re: .
Posté par Nicolas Boulay (site web personnel) . En réponse au journal Quelques projets intéressants en OCaml. Évalué à 6.
Je rajouterais aussi que le compilateur n'est pas gentil avec le débutant quand tu ne compiles pas souvent : l'erreur peut être renvoyé loin de son origine et des messages sibyllin comme 'le type toto n'est pas compatible avec le type toto' sont toujours surprenant (en cas de redéfinition du type en court de route, mais la ligne de la définition du type n'est pas donné). Je crois que ocaml 4.0 est meilleur sur ce terrain.
La syntaxe est ultra compacte, c'est vexant de bloquer sur l'écriture d'une vingtaine de lignes de code. Mais ses lignes en représenteraient des centaines dans un autre langage (pattern matching sur un arbre, pour en créer un autre par exemple). C'est une question d'habitude.
Sinon, les type sommes et les match c'est simplement génial.
"La première sécurité est la liberté"
[^] # Re: Surpris
Posté par Nicolas Boulay (site web personnel) . En réponse au journal Quelques projets intéressants en OCaml. Évalué à 1.
Il n'y pas que Batterie sur le marché des trucs en plus. DE mémoire, elles sont 3 (core ?).
on citera notamment (|>) et qui sert à "piper" les fonctions let a = (f x) |> g <=> let a = g (f x)
Sérieusement, il y a des gens qui pensent que ce genre de zigouigoui rend le code plus clair ? Pour un langage parlant (let … = in, match … with …), quelle idée de rajouter tous ses machines inexpressifs.([>, ~label, etc…)
"éumérations"
Le type somme ne suffit pas ?
"Des outils de manipulation de fichiers puissants"
Et portable windows/unix ?
"je m'en sert notamment pour utiliser des types de données plus couillus que les listes dès que la logique est validée."
Un code avec des listes est tellement plus lisible ! Est-ce que tu as réellement noté une augmentation de perf valable pour contre -balancer la lourdeur d'écriture ? J'ai l'impression que la collection doit être grosse (> 10 000 éléments) pour que cela soit intéressant.
"La première sécurité est la liberté"
[^] # Re: fraicheur ?
Posté par Nicolas Boulay (site web personnel) . En réponse au journal Quelques projets intéressants en OCaml. Évalué à 2.
J'avoue aussi que j'aimerai un truc gui qui utilise les arbres de type de base plutôt que les objets pour représenté la gui, c'est plus simple de manipulation.
"La première sécurité est la liberté"
[^] # Re: Auto-promo
Posté par Nicolas Boulay (site web personnel) . En réponse au journal Quelques projets intéressants en OCaml. Évalué à 3.
"Un journal peut-être pas mais je veux bien en discuter."
Faut pas faire le modeste ! Un soft cela a besoin d'un peu de pub pour se lancer. Un commentaire aura peu de visibilité.
Que dire de plus? Les captures d'écran du terminal t'intéresse vraiment? :)
Pourquoi pas ! C'est la page la plus consulté sur les sites qui présente un logiciel. C'est toujours plus parlant pour le futur éventuel utilisateur.
"La première sécurité est la liberté"
[^] # Re: fraicheur ?
Posté par Nicolas Boulay (site web personnel) . En réponse au journal Quelques projets intéressants en OCaml. Évalué à 2.
D'ailleurs est-ce qu'il existe un truc pour faire un client lourd ? J'avais entendu parler d'un binding gtk, dans quel état est-il ?
J'adorerais un binding avec les EFL, mais cela n'a pas l'air simple :)
"La première sécurité est la liberté"
[^] # Re: concrete
Posté par Nicolas Boulay (site web personnel) . En réponse au journal Alpha: une machine bêta avec écran.. Évalué à 2.
En général, sur les processeurs 32 bits, toutes ce qui est initialisation, gestion mémoire est plus complexe. Mais c'est vrai qu'il s'agit plus du système autour que du cpu lui -même.
"La première sécurité est la liberté"
[^] # Re: Auto-promo
Posté par Nicolas Boulay (site web personnel) . En réponse au journal Quelques projets intéressants en OCaml. Évalué à 2.
Cela mériterait un journal à part entière. Il manque une plus longue explication sur le problème à résoudre par ton logiciel, puis ses points forts actuels, voir une comparaison avec d'autres solutions, et quelques captures d'écran pour se faire une idée.
"La première sécurité est la liberté"
[^] # Re: .
Posté par Nicolas Boulay (site web personnel) . En réponse au journal Quelques projets intéressants en OCaml. Évalué à 4.
On ne peut pas vraiment torcher un code en ocaml, mais la différence entre un code qui tourne et un produit est faible, contrairement au C par exemple.
Ma boite l'utilise pour ses générateurs de code qualifié/certifié futur DO330/D0178b/EN50128/IEC1508.
kcg
Par rapport à un compilo en C, tu divises la taille du code par 3 (pas de gestion de mémoire).
"La première sécurité est la liberté"
# fraicheur ?
Posté par Nicolas Boulay (site web personnel) . En réponse au journal Quelques projets intéressants en OCaml. Évalué à 3.
Dans la liste, il manque l'état de maturation du code. Inutile de présenter un code béta inutilisable en pratique. Il est aussi intéressant de savoir si le projet est toujours soutenu. Un projet dont le dernier commit à plus de 1 an, est un très mauvais signe.
"La première sécurité est la liberté"
[^] # Re: concrete
Posté par Nicolas Boulay (site web personnel) . En réponse au journal Alpha: une machine bêta avec écran.. Évalué à 4.
"Ben, non, pas vraiment. C'est très simple."
J'y crois moyen. Par exemple sur core i7, il ont réhabilité les instructions de copy de string, elles étaient déprécié au profit d'instruction SSE, puis le tout est revenu pour offrir de meilleur performance (écrire le code le plus rapide possible de copie mémoire peut vite devenir très complexe).
"Le FPU c'est hassebine justement… Maintenant, c'est du SSE."
Ce n'est plus vraiment du x86, mais plus du x86-64. De plus, quand il y a besoin de fonction précise trigonométrique, les instructions x87, sont plus rapides que leur équivalent codé en SSE (surtout sur AMD). Ce n'est pas encore complètement has-been.
"La première sécurité est la liberté"
[^] # Re: LGPL?
Posté par Nicolas Boulay (site web personnel) . En réponse au journal L'audio qui s'excite : «under different name». Évalué à 3.
Il veulent que les samples soit GPL, mais pas la musique créé avec. Comme un compilo libre qui peut compiler du code non libre.
Il peuvent aussi utiliser la licence de gcc avec exception pour sa lib runtime. Je pense que cela doit fonctionner de la même façon.
"La première sécurité est la liberté"
[^] # Re: concrete
Posté par Nicolas Boulay (site web personnel) . En réponse au journal Alpha: une machine bêta avec écran.. Évalué à 2.
Quand tu passes à 32 bits, tu augmentes encore la complexité. Ici, on parle d'élément minuscule qui ne consomme rien, et on remplacer les µp 8 bits.
"La première sécurité est la liberté"
[^] # Re: concrete
Posté par Nicolas Boulay (site web personnel) . En réponse au journal Alpha: une machine bêta avec écran.. Évalué à 2.
Le jeu d'instruction x86 est totalement bordélique et traine un historique très lourd. Il faut une sacré expertise pour trouver un sous-ensemble complet et orthogonal dans la foret des instructions disponibles.
On peut aussi parler de la fpu à pile, qui est une exception à elle toute seul.
"La première sécurité est la liberté"
[^] # Re: concrete
Posté par Nicolas Boulay (site web personnel) . En réponse au journal Alpha: une machine bêta avec écran.. Évalué à 2.
Le msp 430 est super clean. J'ai pas franchement l'impression que cela soit le cas des AVR.
"La première sécurité est la liberté"
[^] # Re: Sinon ARM c'est pas si déconnant que ça
Posté par Nicolas Boulay (site web personnel) . En réponse au journal Alpha: une machine bêta avec écran.. Évalué à 3.
Pour le 2) tu parles bien d'un jeu d'instruction d'un cpu qui n'est pas encore disponible à la vente ?
"La première sécurité est la liberté"
[^] # Re: Prof qui répond
Posté par Nicolas Boulay (site web personnel) . En réponse au journal Alpha: une machine bêta avec écran.. Évalué à 2.
Il y a encore des gens qui utilisent ça ? Ce n'est même pas portable dans la révision du cpu suivante. De plus, la distance optimal de prefetch soit même changer avec les fréquences du cpu et de la mémoire (trop tôt et la donnée sera viré du cache avant usage, trop tard et elle encombre l'unité de load 2 fois au lieu d'une).Le pentium 4 avait 4 instructions, les core les réduisait à 2 (de mémoire).
Je croyais que la technique n'était plus vraiment utilisé au profit du preload.
"La première sécurité est la liberté"
[^] # Re: Prof qui répond
Posté par Nicolas Boulay (site web personnel) . En réponse au journal Alpha: une machine bêta avec écran.. Évalué à 2.
Ou est-ce que tu "vois" le cache au niveau de l'assembleur ?
"La première sécurité est la liberté"
[^] # Re: Dommage
Posté par Nicolas Boulay (site web personnel) . En réponse au journal Alpha: une machine bêta avec écran.. Évalué à 3.
Merci pour le lien. En fait, les cpu sont toujours en arithmétique en complément à 2, mais les compilateurs jouent sur la norme C, ce qui devient faux, après activation des optimisations !
"La première sécurité est la liberté"
[^] # Re: Dommage
Posté par Nicolas Boulay (site web personnel) . En réponse au journal Alpha: une machine bêta avec écran.. Évalué à 2.
Oui, je parlais bien des résultats intermédiaires pas du final (a+b < c).
"La première sécurité est la liberté"
[^] # Re: Sinon ARM c'est pas si déconnant que ça
Posté par Nicolas Boulay (site web personnel) . En réponse au journal Alpha: une machine bêta avec écran.. Évalué à 3.
ARM dispose maintenant d'un grand nombre de mode d'adressage qui l'éloigne du concept RISC.
Ses derniers évolutions utilisent un jeu d'instruction avec 2 tailles d'instruction : 16 et 32 bits. Cela commence à se complexifier.
Par ma part, j'ai vu l'assembleur sur hc11 et 68000. Je trouve que l'assembleur du msp430 de TI est extrêmement propre, c'est un microcontroleur 16/32 bits très efficace.
"La première sécurité est la liberté"
[^] # Re: Dommage
Posté par Nicolas Boulay (site web personnel) . En réponse au journal Alpha: une machine bêta avec écran.. Évalué à 3.
Il est parfaitement défini. Il s'agit de l'arithmétique en complément à 2 qui fonctionne avec les joies des calcul sous modulo ou (a+b)%c = a%c + b%c, si je me rappelle bien. Cela permet d'avoir des débordements intermédiaires sans conséquence sur le résultat finale.
Tes histoires de boucles infinis ne sont pas lié à des mélanges signed/unsigned ?
"La première sécurité est la liberté"
[^] # Re: MMIX ?
Posté par Nicolas Boulay (site web personnel) . En réponse au journal Alpha: une machine bêta avec écran.. Évalué à 1.
Tu peux simuler le même comportement avec des instructions cmp*.
Concernant les ref, on s'en était aperçu sur le f-cpu et lu sur de la doc ARM.
"La première sécurité est la liberté"
[^] # Re: Dommage
Posté par Nicolas Boulay (site web personnel) . En réponse au journal Alpha: une machine bêta avec écran.. Évalué à 2.
Sauf en exploitation ou sur un système "temps réel", tu préfères qu'il continue de fonctionner malgré le glitch.
"La première sécurité est la liberté"
[^] # Re: MMIX ?
Posté par Nicolas Boulay (site web personnel) . En réponse au journal Alpha: une machine bêta avec écran.. Évalué à 3.
Les registres spéciaux contenant les carry et autre résultat de test utilisé comme prédicat sont une vrai plaie pour les pipelines car cela créait une dépendance forte entre 2 instructions (celle qui génère la carry et la suivante, chaque instruction pouvant modifier ces bits). Donc, c'est pas plus mal :)
"La première sécurité est la liberté"
[^] # Re: Dommage
Posté par Nicolas Boulay (site web personnel) . En réponse au journal Alpha: une machine bêta avec écran.. Évalué à 3.
C'est vrai cela permet de passer en auto-teste en cas de débordement d'entier dont tu n'as rien à faire…
"La première sécurité est la liberté"