Fremskridt: Vi har hørt om det.

En bruger har valgt at han helst ville køre Varnish på OpenBSD og det havde jeg egentlig ikke forventet at høre mere til, det burde bare virke ud af boksen.

Det gjorde jeg imidlertid ikke, for jeg havde glemt at hive "sys/types.h"[1] ind et sted, men det var hurtigt rettet.

Imidlertid var det ikke nok, det viser sig, at OpenBSD ikke har NAN macroen - "Not A Number" i deres "math.h".

NAN er en såkaldt "quiet Not A Number" definition, som er beregnet til at markere en floating point variabel som uden værdi.

Uanset hvilken operation man bruger en NaN i, så få man en NaN ud, på den måde er det let at spore problemer.

NaN blev første gang standardiseret i IEEE 754 standarden for floating point arithmetik i 1985, forud derfor var der gået en forholdsvis bitter kamp om detaillerne, men takket være en seriøs indsats fra matematikere blev resultatet rigtig godt og har været universelt anvendt lige siden.

En af de første implementeringer af IEEE754 var Inmos Transputere, der havde noget så usædvanligt som en bevislig korrekt implementering[2], i modsætning til f.eks Intels Pentium der bevisligt var forkert.

Den eneste computer der nogensinde har haft nogen væsentlig udbredelse I miljøer hvor floating point bruges, som ikke bruger IEEE754[3] var Digitals VAX.

Digital var det firma der af uforståelige grunde blev købt af det firma der af uforståelige grunde blev købt af HP og som udviklede den første 64 bit microprocessor som havde nogen form for success[4]: alpha, som senere blev myrdet til fordel for en 64 bit processor der ingen form for succes har: Itanium.

Og så er vi ved at være tilbage ved begyndelsen: OpenBSD har ikke NAN makroen, fordi VAX ikke supporterer IEEE754 floating point og quiet NaNs.

Som medlem af Dansk Datahistorisk Forening klapper jeg i mine små hænder.

Som software udvikler bruger jeg dem til at hive mig i håret.

phk

[1] Ja, den burde være i mindre-end...større-end istedet for anførselstegn, men det kan XOOPS CMS'et åbenbart ikke finde ud af...

[2] Det viste sig senere at input til beviset havde fejl, så ligesom Hubbles hovedspejl endte man med at have en "perfekt fejl".

[3] Mange yngre mennesker kender den kun som IEC60559

[4] Apollo kom først, men vi er ikke mange der har prøvet en DN10000.

Kommentarer (0)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
Log ind eller Opret konto for at kommentere