Arkiv för oktober, 2011

Gamm-kod

Posted in allmänt grinande on 2011-10-28 by Kristian

Retro computing, featuring PDP-11!

(Photo by wiseleo on flickr)

Häromdan fick jag för mig att jag behöver en C-parser till en sak jag håller på med.

Eftersom min specialitet när jag fortfarande jobbade med någon form av programmering var att snabbt skicka ihop parsrar och kodgeneratorer för domänspecifika språk, plus att jag har skrivit en VHDL-analysator en gång i tiden så tänkte jag att det vore nog rätt lätt.

9 år av testledning, teststrategier, projektledning och förbättringsarbeten senare…

TEORIN sitter allt kvar. Dock är den praktiska kunskapen inte riktigt vad den har varit en gång i tiden. Alltså växlade taktiken från ”en sån bygger jag skitlätt” till ”vad har vi för kod vi kan återanvända” och en febril jakt i backuplagret vidtog.

Där var den allt, den gamla VHDL-kompilatorn med tillhörande kodgeneratorer för att enkelt få ihop funktioner och typer (”tyyyper”) för att generera abstrakta syntaxträd.

HA! Vinst. Icke då… Det visar sig att det har rört sig en del verktygsmässigt de senaste 9 åren…

Så, vad är det då som har hänt?

  •  gcc har fått några versioner förändringar i sig, versionen installerad på min solarismaskin är för närvarande 3.4.3, vilken även den är stenålders (2004).Vad jag minns så var det 2.7.2 som gällde på den tiden. Den släpptes någon gång 1995. Tittar man på releasehistoriken för gcc så bör det ha varit något nyare, men jag är hyfsat säker på att det var 2.7.2. Antagligen var nyare versioner Farliga :-)

    Det som verkar ha hänt är att den har blivit betydligt grinigare än tidigare. Koden bygger helt enkelt inte utan att ha rejäla prototyper, så det blev en hel del kattenpejst för att få till dem.

    cproto? glöm det, den byggde inte heller, vi återkommer till varför lite senare…

  • Källkoden låg i ett tar-arkiv. Det var ju bra. Dock låg hälften av källkoden incheckad i RCS-arkiv inuti tar-arkivet. Detta var mindre bra.
    För er som läser detta som inte har drabbats av RCS (hint: om du inte har tagit på en PDP-11 så är du för ung eller för onördig) så är det ungefär som Git fast utan all fräck funktionalitet, där fräck funktionalitet är definierat som branches och ja, egentligen allt utom checkin och checkout.

    Dock slog det alternativet, att ha filer numrerade med datum eller kopierade för hand till kataloger.

    Eftersom det inte anses helt professionellt att använda ett sådant system för utveckling numera så finns det såklart inga färdiga versioner byggda för Solaris. Alltså får man bygga en själv. Då råkar man ut för den rent bizarrt fascinerande händelsen att GNU RCS inte går att bygga med GNU CC. Dock går det med Suns, förlåt, Oracles, kompilator. Så koden gick att få ut utan större bekymmer trots allt.

  • En viktig komponent i alla kompilatorer är parsern och lexikalanalysatorn, vad de nu heter på svenska på riktigt. Dessa genererar man ofta med hjälp av parsergeneratorverktyg, som yacc/bison och lex/flex.
    Det vore ju alldeles för enkelt om dessa inte hade ändrat sig heller.Specifikt, så har man ändrat hur YYLVAL är definierat, vilket gjorde att det smällde där.
    Det är för övrigt det som gör att cproto inte bygger heller. Man har dessutom gjort något så att den tok-klagar på att tokens är separerade med kommatecken, det gick utmärkt förr.

Till slut byggde eländet i alla fall, och det var ju bra. Så nu återstår nästa problem, dokumentation ansågs tydligen vara för mesar, så det finns inte ett enda skrivet ord om hur man använder grejorna…

Vad drar man för slutsatser av detta då? Jo, två väldigt enkla saker som vi ju alla redan vet:

  • Ha alltid en tydlighet i vilka verktyg du använder, och spara källkoden (om möjligt) och/eller installationsfilerna till dessa, så du kan få upp samma toolchain när det är maintenancedags tio år senare.
  • Slarva inte med produktdokumentationen, förr eller senare behövs den, även om alla kan grejorna baklänges och framlänges just nu.

Världens Punktligaste Flygbolag

Posted in allmänt grinande on 2011-10-14 by Kristian

När jag ännu en gång sitter på Landvetter och väntar på att Världens Punktligaste Flygbolag skall skaka fram ett flygplan så slås jag av hur stressade folk blir.

Trots att det är fasta platser så ställer sig folk framför gaten och skakar av ängslan att inte komma med (?) och naturligtvis boardar de sedan i fel ordning så det tar tre gånger längre tid.

Eftersom det är fotoförbud på Landvetter (skyddsobjekt!) så får ni nöja er med en bild på min sko. Roligare blir det inte ändå.

%d bloggare gillar detta: