HN Digest
Briefing personnel.

Edition quotidienne

Lire vite. Garder l'essentiel.

Les meilleurs longs formats de Hacker News, relus plus calmement.

7089 articles Page 394/709 Sans filtre

06:06

It's OK to compare floating-points for equality

L'auteur remet en question l'idée reçue selon laquelle on ne doit jamais comparer des nombres flottants par égalité exacte, en soutenant que l'usage d'epsilons est souvent une mauvaise solution et que d'autres approches plus robustes existent. Il identifie trois problèmes majeurs des comparaisons par epsilon: ce sont des rustines temporaires, elles peuvent provoquer des bogues difficiles à déboguer en cascade et elles reposent sur des seuils arbitraires non transatifs qui brisent des invariants algorithmiques. À travers des cas concrets (mouvement sur grille, slerp, calcul de norme, résolution de systèmes linéaires, intersection rayon-boîte, enveloppe convexe), il montre des alternatives : séparation modèle/présentation, usages de propriétés IEEE754 (clamp, vérification d'égalité à 1 ou du sin(angle) nul), normalisation par la composante maximale, test exact du pivot nul, gestion des zéros/infini/NaN, ou recours à des méthodes numériques robustes (arrondi sur grille, précision arbitraire, arithmétique d'intervalle). Il admet cependant que les epsilons sont pertinents dans certaines situations pragmatiques comme le filtrage d'entrées utilisateur suivant l'échelle d'affichage ou l'écriture de tests unitaires, en recommandant d'utiliser des valeurs justifiées (par exemple FLT_EPSILON ou des seuils dérivés de la résolution) plutôt qu'un chiffre arbitraire. La conclusion est pratique et neutre : il faut réfléchir au problème concret, privilégier des solutions numériques correctes ou des réorganisations d'algorithmes, et n'employer des epsilons que lorsqu'ils sont documentés et adaptés au contexte.

06:05

Fuzix OS

La version 0.4 conserve le noyau principal tout en corrigeant de nombreux bogues et en remaniant la pile réseau pour la rendre plus modulaire et pouvoir, sur les machines 8 bits, l’exécuter dans un autre espace d’adresses. Les formats exécutables ont été unifiés (notamment 8080/8085/Z80 et compatibilité ABI entre 68HC11 et 6803), les binaires 32 bits utilisent désormais a.out avec extensions pour la relocation, et l’environnement de construction a été simplifié avec une cible make diskimage et des recommandations pour make clean et make kclean. Le projet a adopté de nouveaux noms (N8VEM devient Retrobrew et une distinction explicite est faite entre RC2014 pour la gamme produit et RCbus pour le bus), et certaines plates‑formes ont été retirées ou ne sont pas testées actuellement, notamment Pentagon, Pentagon 1024, Scorpion, P112 et SocZ80. La version 0.4 prend en charge un large éventail de processeurs en production tels que 6303/6803, 6502/65C02/65C816, 6809, 68HC11, 68000 (jusqu’au 68EC020), 8080, 8085, diverses variantes Z80/Z180, ARM (M0/M4), ESP8266 et NS32K, tandis que d’autres ports (par exemple 6800, 8086, ESP32, ez80, RiscV) restent expérimentaux ou partiellement fonctionnels. De nombreuses machines rétro et cartes SBC sont prises en charge ou ciblées (RC2014/RCbus, divers ZX Spectrum et clones, Amstrad, MSX, Tandy/Dragon, Pico68K, SBC divers, etc.), avec des ports additionnels en cours de développement pour élargir la compatibilité matérielle.

06:05

Bipartisan Bill to Tighten Controls on Sensitive Chipmaking Equipment

Le représentant Michael Baumgartner a présenté la loi MATCH, soutenue bipartisanement et accompagnée de projets connexes au Sénat, visant à renforcer la sécurité nationale américaine en comblant des lacunes des contrôles à l'exportation sur les équipements de fabrication de semi-conducteurs (SME). La Chine finance massivement son industrie des semiconducteurs et progresse rapidement, tandis que des puces fabriquées en Chine sont déjà intégrées dans certains systèmes d'armement, plateformes de renseignement et infrastructures critiques américains. Les États-Unis ont imposé des contrôles à l'exportation stricts, mais les alliés n'ont pas toujours harmonisé leurs mesures, laissant des trous que la Chine exploite. Le texte prévoit notamment une interdiction nationale de vente des « chokepoint » SME (y compris la lithographie DUV par immersion et les outils d'attaque cryogénique), la désignation de grandes entreprises chinoises et de leurs filiales comme sites couverts soumis à des restrictions proches de la liste d'entités, des délais de négociation diplomatique avec une dérogation pour la sécurité nationale, et la possibilité pour les États-Unis d'imposer unilatéralement des contrôles et d'élargir leur compétence via la Foreign Direct Product Rule si les alliés ne s'alignent pas. Des instituts et experts estiment que la loi rétablirait l'équité pour les fabricants américains, protégerait les chaînes d'approvisionnement et contribuerait à préserver l'avantage des États-Unis et de leurs alliés en matière de fabrication de puces et de technologies critiques comme l'intelligence artificielle.

06:04

Floating Point Fun on Cortex-M Processors

L'article présente l'utilisation de l'API PSA Crypto sur deux MCU (nRF52840 et ESP32-S3) et signale que sur le nRF52840 l'opération ECDSA est déléguée à une bibliothèque propriétaire, révélant des variantes nrf_cc310_mbedcrypto hard-float et soft-float susceptibles de provoquer des erreurs de linkage. Arm définit trois ABI pour le flottant contrôlés par -mfloat-abi : soft (émulation logicielle et passage d'arguments en registres entiers), softfp (instructions FPU autorisées mais convention d'appel soft) et hard (utilisation des registres flottants pour le passage d'arguments et des conventions spécifiques). Des exemples de compilation montrent concrètement les différences : l'ABI soft appelle la routine runtime __addsf3 avec arguments en GPR, softfp utilise des instructions FPU tout en passant les arguments en GPR, et hard passe les arguments dans les registres flottants et émet vadd.f32. Dans Zephyr, la configuration CONFIG_FPU et CONFIG_CPU_HAS_FPU contrôle l'activation du matériel FPU et le choix d'ABI, avec west/build affichant les options telles que -mfloat-abi, tandis que z_arm_floating_point_init est appelé au démarrage pour configurer le coprocesseur flottant selon la configuration. Il est possible d'activer le FPU "just in time" en initialisant les registres CPACR/FPCCR dans une fonction ou via le gestionnaire de faute NOCP, mais cette approche comporte des risques et l'auteur promet d'explorer ultérieurement les cas d'utilisation et les compromis entre flottant matériel et logiciel.

06:04

Understanding the FFT Algorithm (2013)

L'article explique que la transformée de Fourier discrète (DFT) est une opération linéaire utile en traitement du signal mais coûteuse en calcul en O(N^2) dans sa forme naïve. Cooley et Tukey exploitent des symétries en divisant la DFT en sous-transformées sur les indices pairs et impairs, ce qui permet une approche récursive réduisant la complexité à O(N log N). Une implémentation récursive en Python est présentée, qui bascule vers une DFT lente pour les petits blocs et vérifie la validité par comparaison avec NumPy. Une version vectorisée utilisant NumPy regroupe les calculs en produits matriciels pour gagner en efficacité, tout en restant moins rapide que les bibliothèques optimisées écrites en Fortran. L'auteur conclut que ces exemples aident à comprendre les principes et compromis derrière les implémentations rapides de la transformée de Fourier utilisées en pratique.

06:04

80386 Memory Pipeline

L'auteur a fait tourner DOS, des applications comme Norton Commander et des jeux comme Doom sur son cœur 386 FPGA (DE10‑Nano à 75 MHz) et saisit l'occasion pour étudier le pipeline mémoire critique du 80386. Il explique que le microcode utilise des signaux RD/WR et des points de synchronisation DLY, ce qui impose que le chemin d'adresse soit extrêmement rapide pour ne pas brider l'exécution en flux continu. La segmentation est accélérée par des caches de descripteurs et par des calculs parallèles de relocation et de vérification de limite, tandis que les formes d'adresse courantes sont optimisées pour éviter des additions en série coûteuses. Des techniques comme Early Start, un TLB pour le fast path, un bus non multiplexé et une hiérarchie de cache externe permettent de recouvrir les latences et d'atteindre un chemin d'adresse souvent autour de 1,5 cycle en pratique, au prix d'une complexité accrue et de corner cases. Pour l'implantation FPGA, l'auteur adapte le design historique en remplaçant les latches par des registres synchrones, en acceptant deux cycles pour la traduction d'adresses et en intégrant des caches L1 synchrones de 16 Ko pour réduire les temps d'attente et maintenir un Fmax et un faible CPI.

06:04

Bypassing the kernel for 56ns cross-language IPC

Ce répertoire contient des Architecture Decision Records (ADRs) concernant Tachyon. Chaque ADR documente un choix de conception important, le contexte qui l'a motivé et ses conséquences. Les nouveaux ADR suivent le modèle présenté en bas de ce fichier et, une fois acceptés, ils ne sont jamais supprimés, les décisions remplacées étant marquées comme Superseded et liées à leur remplacement. Le modèle d'ADR spécifie des champs pour le statut, la date, le contexte, la décision et les conséquences. Les conséquences sont structurées en éléments positifs, négatifs et neutres afin d'expliciter l'impact des décisions.

06:04

Scientists discover “cleaner ants” that groom giant ants in Arizona desert

Dans le sud-est de l'Arizona, l'entomologiste Mark Moffett a observé de petites fourmis cônes nettoyer des fourmis moissonneuses beaucoup plus grandes. Les petites fourmis grimpent sur les grandes, les lèchent et les grignotent, y compris à l'intérieur des mandibules ouvertes, tandis que les moissonneuses restent immobiles et ne les attaquent pas. Sur plusieurs jours il a documenté au moins 90 interactions similaires impliquant une espèce non décrite du genre Dorymyrmex, photographiées et notées avec soin. Les chercheurs suggèrent que les cônes tirent peut‑être des particules énergétiques du corps des moissonneuses, tandis que ces dernières pourraient bénéficier d'un nettoyage de zones difficiles d'accès, mais des études futures doivent vérifier l'impact sur les parasites et le microbiome. Les auteurs soulignent que ce comportement, comparé aux stations de nettoyage marines, serait à leur connaissance le premier exemple connu d'une espèce de fourmi nettoyant une autre beaucoup plus grande et illustre la richesse encore inexplorée du comportement animal.