Oui, surtout qu’en l’occurrence je parlais de C++…
Et oui, pour le coup tu peux faire une recherche dichotomique sur une liste chaînée (mais il précise bien que tu seras plus performant avec des RandomAccessIterator).
The number of comparisons is logarithmic: at most log(last - first) + 2. If ForwardIterator is a Random Access Iterator then the number of steps through the range is also logarithmic; otherwise, the number of steps is proportional to last - first.
Enfin, pour remettre une couche sur les itérateurs, on fait comment une recherche dichotomique dans un tableau trié avec des itérateurs ? ;-)
Avec un random-access iterator ça doit se faire très naturellement (cela dit, la fonction de la bibliothèque standard ne requiert qu’un ForwardIterator).
Please keep in mind, however, that this implementation is tuned for debugging not performance. A highly tuned software integer undefined behavior checker for C/C++ could probably have overhead in the 5% range.
Tu as un lien vers ce standard ?
Je me doute bien que c’est plus un standard à la Python qu’un standard comme le C ou Ada, mais ça reste intéressant à voir.
Et pour ce qui est de gcc, -ftrapv est réputé comme buggé
T’as un lien là-dessus ?
En tout cas, dans clang/LLVM ça fonctionne vu que c’est utilisé par Seed7
ce qui est très different du C ou le programme est indéfini.
Ça dépend…
Ce que tu dis c’est défini dans le « standard » de Rust ou c’est seulement un truc proposé par le compilo ?
En C, Selon le standard :
- type signé : comportement indéfini si overflow
- type non-signé: comportement « modulo »
Par contre, avec les compilateurs (GCC et clang au moins), il y a des options pour :
- forcer le comportement « modulo » et complément à deux (-fwrapv)
- trap en cas d’overflow sur les entiers signés (-ftrapv et -fsanitize=signed-integer-overflow)
Donc au final, niveau implémentation le C offre la même chose que Rust sur ce point là.
J’avais lu un comparatif assez intéressant, je crois fait par les devs de scala au départ, sur les perfs entre C++, Scala, Java (je crois qu’il y avait un autre langage mais je ne me souvient plus lequel, peut-être go).
Ta description me rappelle ce qui est arrivé à quelqu’un qui avait une Debian pas à jour dans un VM (à l’époque des faille Bash, mais on ne sait pas si ça a été le vecteur d’infection) et s’est fait vérolé.
Il avait un processus au nom improbable (eiccyumxzl) qui bouffait beaucoup de CPU et faisait beaucoup de trafic réseau (probablement pour faire un DOS).
J’avais récupéré l’exécutable pour en faire une analyse (surtout que le binaire est non strippé et avec les symboles de débug, ça sent le script kiddie…) mais j’ai pas encore eu le temps. Quelqu’un d’autre avait commencé et était aller assez loin (récupération et décodage de la conf à partir du serveur de C&C).
Pas sûr, vu que c’est l’usage du mot Markdown qui semble lui poser problème.
Et comme le dit la licence :
Neither the name “Markdown” nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
Des fois je regarde des vidéos/tutos et le gars est sous Eclipse et certains trucs font rêver, l'autre jour le gars commence à taper un appel à une fonction, Eclipse propose une complétion, le gars accepte, et là Eclipse positionne le curseur entre les parenthèses et liste les arguments attendus par la fonction et leur type. Eh, ça bute, ça, je sais pas faire ça dans Emacs.
Ça dépend quel langage tu utilises, mais pour le C et le C++ Emacs fait ça très bien en combinant clang et yasnippet :)
Tu devrais pas, pour Microsoft le C n’as pas d’avenir (c’est une position officielle hein).
Leur compilo ne supporte pas (et ne supportera jamais au dernières nouvelles) le C99.
We do not plan to support ISO C features that are not part of either C90 or ISO C++.
Tu veux faire du C99 ? « Fais du C++ ! » est leur réponse.
We recommend that C developers use the C++ compiler to compile C code
Récemment ils ont bien ajouté le support d’une ou deux features dont ils avaient besoin (pour du C++ je crois), mais ça s’arrête là.
Pour le C11, on peut s’attendre au même support…
Après avoir précisé que seule l’évaluation par les pairs permettait d’assurer la qualité d’une publication scientifique
Oui, quand c’est bien fait. Ce qui n’est pas toujours le cas, même quand c’est publié par des « gros ».
IEEE et Springer ont publiés des papiers générés avec SCIgen :
According to Nature News, Cyril Labbé, a French computer scientist, recently informed Springer and the IEEE, two major scientific publishers, that between them, they had published more than 120 algorithmically-generated articles.
Posté par grim7reaper .
En réponse au journal CPP Con sur Youtube.
Évalué à 3.
Dernière modification le 23 octobre 2014 à 16:06.
En même temps, faire un kernel en C standard c’est pas franchement possible. Rien que la directive asm pour inclure du code assembleur dans du C c’est une extension donc bon…
Utiliser des extensions dans du code kernel ça ne me choque pas, dans du code applicatif c’est déjà plus discutable.
# Un autre Vim-like
Posté par grim7reaper . En réponse au journal Tour d'horizon des éditeurs de texte pour le terminal. Évalué à 1.
Dans la famille Vi, on peut ajouter Vis.
[^] # Re: Une chose que j'ai oublié d'ajouter
Posté par grim7reaper . En réponse à la dépêche Le langage Rust en version 1.0 alpha, on arrête de tout casser !. Évalué à 2.
Ouais, un truc genre HAT-trie.
[^] # Re: Une chose que j'ai oublié d'ajouter
Posté par grim7reaper . En réponse à la dépêche Le langage Rust en version 1.0 alpha, on arrête de tout casser !. Évalué à 2.
Oui, surtout qu’en l’occurrence je parlais de C++…
Et oui, pour le coup tu peux faire une recherche dichotomique sur une liste chaînée (mais il précise bien que tu seras plus performant avec des RandomAccessIterator).
[^] # Re: Une chose que j'ai oublié d'ajouter
Posté par grim7reaper . En réponse à la dépêche Le langage Rust en version 1.0 alpha, on arrête de tout casser !. Évalué à 3.
Avec un random-access iterator ça doit se faire très naturellement (cela dit, la fonction de la bibliothèque standard ne requiert qu’un ForwardIterator).
[^] # Re: Une chose que j'ai oublié d'ajouter
Posté par grim7reaper . En réponse à la dépêche Le langage Rust en version 1.0 alpha, on arrête de tout casser !. Évalué à 3.
Il y a ce papier de John Regehr, section III D.
Avec la citation de mise en garde:
[^] # Re: Une chose que j'ai oublié d'ajouter
Posté par grim7reaper . En réponse à la dépêche Le langage Rust en version 1.0 alpha, on arrête de tout casser !. Évalué à 2.
Tu as un lien vers ce standard ?
Je me doute bien que c’est plus un standard à la Python qu’un standard comme le C ou Ada, mais ça reste intéressant à voir.
T’as un lien là-dessus ?
En tout cas, dans clang/LLVM ça fonctionne vu que c’est utilisé par Seed7
[^] # Re: Une chose que j'ai oublié d'ajouter
Posté par grim7reaper . En réponse à la dépêche Le langage Rust en version 1.0 alpha, on arrête de tout casser !. Évalué à 5.
Ça dépend…
Ce que tu dis c’est défini dans le « standard » de Rust ou c’est seulement un truc proposé par le compilo ?
En C, Selon le standard :
- type signé : comportement indéfini si overflow
- type non-signé: comportement « modulo »
Par contre, avec les compilateurs (GCC et clang au moins), il y a des options pour :
- forcer le comportement « modulo » et complément à deux (
-fwrapv
)- trap en cas d’overflow sur les entiers signés (
-ftrapv
et-fsanitize=signed-integer-overflow
)Donc au final, niveau implémentation le C offre la même chose que Rust sur ce point là.
[^] # Re: Pas sûr que trouver des erreurs/la fiabilité soit si important pour la communauté libre..
Posté par grim7reaper . En réponse à la dépêche [code] Trouver les erreurs. Évalué à 2.
Je penses que tu parles de cette publication de Google.
[^] # Re: Non a YAML !
Posté par grim7reaper . En réponse à la dépêche Je crée mon jeu vidéo E14 : formats de données. Évalué à 1.
Elle est courte mais plus d’une demi-page : elle fait quand 4 pages (page 4-7)
[^] # Re: Non a YAML !
Posté par grim7reaper . En réponse à la dépêche Je crée mon jeu vidéo E14 : formats de données. Évalué à 3.
La RFC 7159 fait plus d’une demi-page, ou alors tu as des putains de grandes pages…
# Impression de déjà vu
Posté par grim7reaper . En réponse au journal Virus ?. Évalué à 10.
Ta description me rappelle ce qui est arrivé à quelqu’un qui avait une Debian pas à jour dans un VM (à l’époque des faille Bash, mais on ne sait pas si ça a été le vecteur d’infection) et s’est fait vérolé.
Il avait un processus au nom improbable (eiccyumxzl) qui bouffait beaucoup de CPU et faisait beaucoup de trafic réseau (probablement pour faire un DOS).
J’avais récupéré l’exécutable pour en faire une analyse (surtout que le binaire est non strippé et avec les symboles de débug, ça sent le script kiddie…) mais j’ai pas encore eu le temps. Quelqu’un d’autre avait commencé et était aller assez loin (récupération et décodage de la conf à partir du serveur de C&C).
[^] # Re: Hammer
Posté par grim7reaper . En réponse à la dépêche DragonFly BSD 4.0. Évalué à 3.
Tu as de la doc’ sur HAMMER ici (ça parle aussi de HAMMER 2 qui est en chemin)
Pour la comparaison, je laisse ça à d‘autres.
[^] # Re: Le choix du nom
Posté par grim7reaper . En réponse à la dépêche CommonMark, une syntaxe Markdown en commun et répandue. Évalué à 1.
Pas sûr, vu que c’est l’usage du mot Markdown qui semble lui poser problème.
Et comme le dit la licence :
[^] # Re: Félicitations
Posté par grim7reaper . En réponse à la dépêche GNU Emacs 24.4. Évalué à 3.
Perso j’utilise auto-complete-clang (dont une version est disponible ici). Il fonctionne très bien.
Il y a aussi une version asynchrone que je n’ai pas testé.
[^] # Re: Félicitations
Posté par grim7reaper . En réponse à la dépêche GNU Emacs 24.4. Évalué à 4.
Même avec Rope (et donc ropemacs) ?
[^] # Re: Félicitations
Posté par grim7reaper . En réponse à la dépêche GNU Emacs 24.4. Évalué à 2.
Ça dépend quel langage tu utilises, mais pour le C et le C++ Emacs fait ça très bien en combinant clang et yasnippet :)
[^] # Re: Bonne nouvelle ?
Posté par grim7reaper . En réponse au journal Microsoft libère les sources du cœur de .NET sur github, et ouvre son processus de développement. Évalué à 6.
Tu devrais pas, pour Microsoft le C n’as pas d’avenir (c’est une position officielle hein).
Leur compilo ne supporte pas (et ne supportera jamais au dernières nouvelles) le C99.
Tu veux faire du C99 ? « Fais du C++ ! » est leur réponse.
Récemment ils ont bien ajouté le support d’une ou deux features dont ils avaient besoin (pour du C++ je crois), mais ça s’arrête là.
Pour le C11, on peut s’attendre au même support…
Source : un article de Herb Sutter
# Qualité des publications
Posté par grim7reaper . En réponse à la dépêche L’Académie des sciences française prétend vouloir l’ouverture des publications scientifiques. Évalué à 3.
Oui, quand c’est bien fait. Ce qui n’est pas toujours le cas, même quand c’est publié par des « gros ».
IEEE et Springer ont publiés des papiers générés avec SCIgen :
[^] # Re: A defaut de GNU, il y a Linux
Posté par grim7reaper . En réponse au journal CPP Con sur Youtube. Évalué à 1.
Exact, c’est aussi une possibilité
[^] # Re: A defaut de GNU, il y a Linux
Posté par grim7reaper . En réponse au journal CPP Con sur Youtube. Évalué à 1.
Moyennant quelques patchs, il était (est ?) possible de compiler avec le compilo’ Intel aussi.
[^] # Re: A defaut de GNU, il y a Linux
Posté par grim7reaper . En réponse au journal CPP Con sur Youtube. Évalué à 10. Dernière modification le 23 octobre 2014 à 16:23.
Exemple con et basique : tu implémentes le context-switch, tu dois sauvegarder les registres : c’est quoi ton fallback en C standard ?
C’est pas une question de volonté, certaines choses ne sont pas faisable en C
Bah raté, il y en a.
Mouarf, faut rester en C89 alors.
Le C99 est pas supporté et ne le sera jamais (sauf bout qui les intéresse), et niveau C11 ça risque d’être la même…
[^] # Re: A defaut de GNU, il y a Linux
Posté par grim7reaper . En réponse au journal CPP Con sur Youtube. Évalué à 3. Dernière modification le 23 octobre 2014 à 16:06.
En même temps, faire un kernel en C standard c’est pas franchement possible. Rien que la directive asm pour inclure du code assembleur dans du C c’est une extension donc bon…
Utiliser des extensions dans du code kernel ça ne me choque pas, dans du code applicatif c’est déjà plus discutable.
[^] # Re: C++
Posté par grim7reaper . En réponse au journal CPP Con sur Youtube. Évalué à 4.
Bof, bof
Avec ton jeu d’option, le code suivant va passer sans aucun souci (aussi bien avec clang que gcc) :
Il faut ajouter -Wconversion si tu veux un warning.
[^] # Re: C++
Posté par grim7reaper . En réponse au journal CPP Con sur Youtube. Évalué à 8.
-Wold-style-cast ?
[^] # Re: et de l'autre côté
Posté par grim7reaper . En réponse à la dépêche GNU Emacs : quelques extensions (première partie). Évalué à 1. Dernière modification le 16 octobre 2014 à 08:46.
Tu veux dire comme avec Alt-x evil-mode RET ?