nwcc är en liten C-kompilator för Unix-system som jag skrev i min fritid, för skojs skull och för att bevisa för mig själv att jag kunde. Jag startade projektet i augusti 2003, men eftersom jag hade ett jobb och ett liv och ett par andra hobby kod projekt, det tog mig fram till hösten 2005 för att få det att fungera med olika konstruktioner i C-språket.
Så vad nya gör nwcc ta med till bordet? Viktigast ny kod: Jag skrev allt från scratch - inklusive lexer, tolken och backend.
Koden för nwcc är skriven i C.
Den här versionen är inte avsedd för allvarliga bruk, men åtminstone nwcc är tillräckligt stark för att sammanställa själv (vars resultat kan sammanställa nwcc liksom) och bör därför kunna hantera åtminstone några små program. Det finns fortfarande några saker som saknas / bruten, men saker och ting förbättras nästan varje dag (jag ladda upp mina ändringar SF när jag lägga till / fix något av intresse.)
Det tar en hel del arbete för att få ännu en delmängd av C-språket att sammanställa, så att något saknas eller gjort fel i nwcc betyder inte att jag inte bryr sig om det aktuella området av C-språket eller kompilator konstruktion ; Det betyder bara att jag inte har fått runt för att göra det rätt, om ens alls, men
Egenskaper .
- Det finns några C språkfunktioner saknas; Framför allt stöd för flyttal, bitfields och några andra saker. Många andra saker är trasiga (det finns förmodligen buggar i stort sett alla språk funktionen genomförs av nwcc)
- Det finns ingen har en makt utvecklare för att etablerade traditionella kompilatorer skulle överväga intressant, men (bortsett från, kanske, stapeln skyddsfunktionen.) Tyvärr. Det finns ingenting bortom vanligt dum sammanställning; Inget stöd för att skapa delade bibliotek, inget stöd för felsökning eller profilering, ingenting
- Det finns för närvarande endast en backend för 80x86 processorer (som genererar kod för NASM Netwide Assembler och fungerar på Linux, FreeBSD och OpenBSD)
- Det finns absolut ingen optimering, vilket betyder den genererade koden är mycket långsam jämfört med utgången hos etablerade kompilatorer. Jag kommer att arbeta med detta snart, men du bör förstå att mina främsta oro är just nu kod korrekthet och portabilitet snarare än hastighet (det är svårt nog att göra långsam kod arbete!)
Vad är nytt i den här versionen:
- Denna utgåva rättar några (inte riktigt för många!) allmänna och PIC-specifika buggar som uppstod vid sammanställningen Tcl och mksh.
Vad är nytt i version 0.7.8:
- Denna version lägger till stöd för Mac OS X på x86 och AMD64 och NetBSD på x86-system. Olika plattformsoberoende buggar har också rättats.
Vad är nytt i version 0.7.7:
- Denna version lägger till stöd för Linux / PPC64 och fixar många PPC-specifika buggar.
Kommentarer hittades inte