Nimrod egy nyílt forráskódú, ingyenes, statikusan típusos, feltétlenül programozási nyelv célja, hogy támogassa az ügyrendi, objektum-orientált, általános és funkcionális programozási stílus, míg a fennmaradó hatékony és egyszerű.
Nimród képes elvonatkoztatni szintaxisfa (AST) részeként a specifikáció, amely lehetővé teszi a nagy teljesítményű makro rendszer, amely lehet használni, hogy domén-specifikus nyelvek. A funkciók örökölt Lisp.
A szoftver natív kódot generációs, szemétgyűjtés, nulla fölött bejárók, a felhasználó által definiálható szereplők, magas szintű adattípusok, fordításidejű értékelést, előre compability, GTK2, a Windows API, POSIX API kötések, a dugaszolható elemző rendszer, a dokumentáció készítő, és a Pascal a Nimrod átalakító program.
Nimrod hordozható, ami azt jelenti, hogy futtatható Linux, BSD, Mac OS & nbsp; X & nbsp; és Windows operációs rendszereken.
Mi az új ebben a kiadásban:
- Bugfixek:
- A régi GC soha nem gyűjtött ciklus helyesen. Fix de okozhatja a teljesítmény regresszió. Azonban azt is kikapcsolja a ciklus kollektor GC_disableMarkAndSweep és fuss ez kifejezetten megfelelő időben, vagy egyáltalán nem. Van is egy új GC aktiválhatja a --gc: markAndSweep, amely nem is ez a probléma, de lassabb általános és nincs valós idejű garanciát.
- öntött lebegőpontos típusok már nem a bitcast, mint a kézikönyvben meghatározott. Ez megtöri kód, amely tévesen használja öntött konvertálni különböző lebegőpontos értékek.
- SCGI modul teljesítménye javult jelentősen, akkor nem akadályozzák majd a sok párhuzamos kérelmeket.
- Az összes vezetékes több mint 70 GitHub kérdések és egyesült több mint 60 pull kéréseket.
- Library kiegészítések:
- Van egy új kísérleti mark & söpörni GC amely lehet gyorsabb (vagy sokkal lassabb), mint az alapértelmezett GC. Engedélyezze a --gc: markAndSweep.
- Added system.onRaise, hogy támogassa a feltételrendszer.
- Added system.locals, amely hozzáférést biztosít a proc a helyiek.
- Added macros.quote az AST kvázi idézve.
- Added system.unsafeNew támogatni hacky változó hosszúságú tárgyat.
- system.fields és system.fieldPairs támogatást tárgy túl; régen csak támogatni esek.
- Added system.CurrentSourcePath visszatérő teljes fájlrendszer elérési útját a jelenlegi forrás fájlt.
- A makrók modul már sok hasznos segítők felépítéséhez absztrakt szintaxis fát.
- érintő változások visszafelé kompatibilitás:
- megosztott egy kulcsszót most.
- Elavult sockets.recvLine és asyncio.recvLine, hozzá Readline helyett.
- Az út behúzás kezelik az elemző jelentősen megváltozott. Azonban ez kihat nagyon kevés (ha van ilyen) valós kódot.
- A kifejezés / nyilatkozatot egyesítése hajtották végre. Ez megint csak befolyásolja szélén esetek, és nem ismert valós kódot.
- Megváltozott a aszinkron interfész a SCGI modul.
- WideStrings most szemetet gyűjtött, mint a másik ágon típusú.
- Compiler kiegészítések:
- A doc2 parancs nem generál kimenő a teljes projekt már. Használja az új --project kapcsolóval engedélyezheti ezt a viselkedést.
- A fordító most figyelmeztet árnyékos lokális változók. Ez azonban meg kell fordítani a kifejezetten keresztül --warning [ShadowIdent]: a.
- A fordító most már támogatja szinte minden pragma push pragma.
- Generic konverterek hajtottak végre.
- Hozzáadás a nagyon kísérleti noforward pragma lehetővé teszi egy speciális összeállítása mód, amely nagyrészt szükségtelenné teszi előre nyilatkozatok.
- Language kiegészítések:
- case kifejezések is támogatottak.
- Táblázat konstruktőrök már utánozzák közelebbről a szintaxis ügyben nyilatkozatot.
- Nimrod most következtetni a visszatérési típus a proc testéből.
- Hozzáadás a mixin nyilatkozatot, hogy befolyásolja a szimbólum kötelező szabályok a generikumok.
- Kivétel nyomkövetés hozzá, és a doc2 parancsot annotates esetleges kivételeket az Ön számára.
- Felhasználói hatások (& quot; címkék & quot;) követési bővült, és a doc2 parancsot annotates lehetséges címkék az Ön számára.
- típusokat lehet vezetni az új szintaxis nem nulla kifejezetten megállapítaná, hogy a nulla nem megengedett. Csakhogy jelenleg a fordító nem végez haladó statikus ellenőrzése ehhez; most ez pusztán dokumentációs célokra.
- Egy kiviteli nyilatkozatot adtak a nyelvet: Ezt fel lehet használni a szimbólum szállítmányozás, így az ügyfél modulok nem kell importálni a modul függőségek kifejezetten.
- túlterhelés alapján AST hajtották végre.
- Generics már támogatja a több módszerek.
- Objects lehet inicializálni keresztül egy objektum konstruktor kifejezés.
- Van egy új szintaktikai konstrukció (;) egyesítő kifejezéseket és nyilatkozatok.
- Most már használhatja a modul import nulla, ha szeretné importálni a modul, de szeretné érvényesíteni teljesen minősített hozzáférést minden jelet modul.
Mi az új verzióban 0.8.14:
- Fix komoly memóriasérülési szóló üzenet halad.
- Fix egy súlyos hibát vonatkozó különböző megnyilvánulási formái egy általános proc.
- Javítva egy újonnan bevezetett hiba, ha egy rossz EIO kivételt hozta fel a file végére a szöveges fájl, ami nem ér véget újsorral.
- Hibajavítás c2nim, c2pas: a --out opciót soha nem működött megfelelően.
- Hibajavítás: továbbítása a generikus speciális képessége soha nem dolgozott.
- Még egy kis hibajavítás a makrók és a fordítási időben értékelést.
- A GC már figyelembe veszi a belső mutató az stack, amely vezethet be az agresszív C-optimalizáló.
- Nimród natív allocator / GC most már működik a PowerPC.
- Sok más hibajavítás: Túl sok mindet felsorolni.
Mi az új verzióban 0.8.6:
- Bugfixek:
- A pragmák hint [X]: ki és figyelmeztetés [X]: off most dolgozik.
- tagfüggvényhívást szintaxis iterátoroké újra működik (az x az lines.split ()).
- Javítva egy elírás removeDir a POSIX, amelyek egy végtelen ciklus.
- A fordító ellenőrzi, hogy a modul fájlnevek érvényes azonosítók.
- Empty minták a dynlib pragma most lehetséges.
- os.parseCmdLine visszatért rossz eredményt a szóköz karaktereket.
- következetlen tuple használata (ugyanazt est és anélkül mezőkre) nem fagy kódgenerátorba többé.
- Egy jobb hibaüzenet feltéve, ha a terhelés egy proc egy dinamikus lib nem.
- Növekedés:
- Added system.contains nyílt tömbök.
- A PEG modul már támogatja a keresési loop üzemeltető @.
- Nyelvtani / elemző: SAD | IND akkor megtörténik bármilyen zárójel. Ez lehetővé teszi a rugalmasabb forráskód alakzatban.
- A fordító most használ egy kötődnek asztal szimbólum lookup belül megkötik összefüggésben. (Lásd manual.html # sablonokat talál.)
- eldobott & quot; & quot; & quot; én hosszú comment & quot; & quot; & quot; most optimalizált el.
- New --floatChecks: on | off kapcsolók és pragmák jobb hibakeresés lebegőpontos műveletek. (Lásd manual.html # előre meghatározott lebegőpontos-típusok a részletekért.)
- A kézi javult. (Sok köszönet Philippe LHOSTE!)
- érintő változások visszafelé kompatibilitás:
- A fordító nem hagyja ki az összekötő lépést már akkor is, ha nincs fájl változott.
- os.splitFile (& quot; .xyz & quot;) most visszatér (& quot; & quot ;, & quot; .xyz & quot ;, & quot; & quot;) helyett (& quot; & quot ;, & quot; & quot ;, & quot; .xyz & quot; ). A fájlnevek ponttal kezdve eltérően kezelik.
- strutils.split (s: string, SEPS: állítsa [char]) soha nem kapjuk üres string többé. Ez a viselkedés valószínűleg alkalmasabb -et felosztása.
- A fordító most már megáll a --version parancssori kapcsolót.
- Az eltávolított támogatása enum öröksége a parser; enum öröksége még soha nem dokumentáltak egyébként.
- A msg területén system.E_base van most a String helyett cstring. Ez javítja a memóriát biztonságát.
Mi az új verzióban 0.8.2:
- Bugfixek:
- Átadás --hint [X]: ki vagy --warning [X]: off parancssori paraméterként, hogy a fordító működik.
- Alapértelmezett paraméterek sablonok most dolgozik.
- Fix biztonsági kérdés system.copy.
- string esetében nélküli mást része generált rossz kódot.
- különböző javítások a osproc modul; most már működik a Windows.
- Növekedés:
- Megvalósult multi-módszereket.
- A fordító most már felismeri a rendelkezésre álló processzorok és végrehajtja a C fordítót egyidejűleg. Ez állítható a --parallel_build: number_of_processors parancssori kapcsolót.
- PEG-alapú mintaegyezési keresztül a csapok modul.
- Added system.definedInScope.
- Added system.accumulateResult.
- Added os.walkDirRec.
- Added osproc.countProcessors.
- Added osproc.execProcesses.
- A konfigurációs rendszer már támogatja $ cc.options.linker.
- Egyesített kif és typeDesc a nyelvtanban / elemző: ez lehetővé teszi az anonim speciális képessége nélkül lambda.
- Sok script nincs szükség a GC: Az új --gc: nincs parancssori kapcsolóval lehet kizárni a GC a futtatható.
- érintő változások visszafelé compability:
- Az a címe, egy tárgy diszkriminancia most érvénytelen.
- Átadás a proc a proc var azonban csak speciális képessége jelölt procvar vagy a hívási konvenciót! = Nimcall. Mert most ez csak akkor okoz figyelmeztetést, de ez lesz viszont egy hiba hamarosan.
- rendszert. & And system.add most kap openArray helyett seq paraméterek.
- Az eltávolított strutils.findSubStr és strutils.findChars. Ők már elavult 3 verzió.
- A unicode modul az önálló típust TRune.
- Elavult strutils.toString: a $ helyett.
- Elavult os.splitPath: használata os.splitPath, hogy visszatér a tuple helyett.
- Elavult os.extractDir: használja splitFile (út) .dir helyett.
- Elavult os.splitFilename: használja splitFile helyett.
- Elavult os.extractFileExt: használja splitFile helyett.
- Elavult os.extractFileTrunk: használja splitFile helyett.
- Elavult os.appendFileExt: használja os.addFileExt helyett.
- Elavult os.executeShellCommand: használja os.execShellCmd helyett.
- Elavult os.iterOverEnvironment: használata os.envPairs helyett.
- Elavult parseopt.init: használja parseopt.initOptParser helyett.
- Elavult parseopt.getRestOfCommandLine: használja parseopt.cmdLineRest helyett.
- Elavult os.pcDirectory: használja os.pcDir helyett.
- Elavult os.pcLinkToDirectory: használja os.pcLinkToDir helyett.
- Elavult osproc.executeProcess: használja osproc.execProcess helyett.
- Elavult osproc.executeCommand: használja osproc.execCmd helyett.
Mi az új verzióban 0.8.0:
- Bugfixek:
- rögzített egy kis hiba, ami miatt a fordító nem jelenti fel nem használt túlterhelt szimbólumok
- fix egy kis bug kapcsolatos szimbólum túlterhelés
- fix elírás: ez & quot; félreérthető & quot ;, nem & quot; ambivalens & quot; ; -)
- a fordító most már felismeri a rekurzív include fájlokat
- system.card kell ismét dolgozni
- elemek set [char] és array [char, T] működnie kell teremteni
- Növekedés:
- végrehajtott általános típusának és két fázisának jele keresést az általános rutinok
- sablonértékekhez most már valós típusú
- végrehajtott általános karakterlánc literals: ident & quot; abc & quot; egy rövidítése ident (r & quot; abc & quot;)
- túlterhelését felbontású iterátoroké elválasztják speciális képessége; bejárók most is ugyanaz a neve + aláírással procs
- szimbólum lookup sablonok hatással lehet az új kötődnek kulcsszó
- a fordító most elfogadja a --no_main kapcsoló jobb kapcsolatot az együttműködést más nyelveken összeállított
- végre tuple kicsomagolás a var szakaszok
- kódgenerátorba bocsát alapértelmezett: __assume (0); A Visual C ++ (optimalizálás)
- a fordító ellenőrzi, ha a proc mellékhatásai; procs, hogy bejelentették, hogy nincs mellékhatása elutasítják, ha a fordító nem tudja ellenőrizni ezen
- a formátumot kezelő strutils.% Már támogatja $ # automatikus érv számlálás
- végre strutils.join
- érintő változások visszafelé compability:
- kétfázisú szimbólum lookup végzik általános rutinok
- kötődnek most fenntartott szó; kivétel nélkül fenntartott szó már
- absztrakt típusokat már átnevezték a különböző típusú; tehát két eltérő most fenntartott szó; abstract nem fenntartott szó már
- system.openFile Elavult: használata system.open helyett
- system.closeFile elavult: használata system.close helyett
- strutils.replaceStr elavult: használata strutils.replace helyett
- strutils.deleteStr elavult: használata strutils.delete helyett
- strutils.splitSeq elavult: használata strutils.split helyett
- strutils.splitLinesSeq elavult: használata strutils.splitLines helyett
- strutils.parseFloat nem fogad el egy újabb start paraméter már
- Dokumentáció:
- a kézi javult
Mi az új verzióban 0.7.6:
- Bugfixek:
- a telepítést a Windows Vista most dolgoznak ki a dobozból; próbáld!
- Javítva egy hiba, hogy tartotta a & quot; rekurzív modulok & quot; Például a munka
- keverési elemzi és meg nem nevezett paraméterek egy eljárás hívás működik
- nyolcas szám az előtag 0C most megfelelő, támogatott
- felsorolások most kezdődhet a negatív értékek
- parseInt, ParseBiggestInt most dob kivételt, ha a szöveg nem ér véget, miután az elemzett száma
- a fordító már kezeli a felső szintű nyilatkozatok helyesen
- generált nimcache könyvtár soha nem ér véget a perjel
- CreateDir működik a globális alatti könyvtárak UNIX (& quot; / somepath / itt & quot;)
- a fordító most hajtja végre a futtatható egy vezető & quot; ./& quot; UNIX
- a fordító már támogatja a folyamatos tömbök eljárás pointerek
- elif esetén nyilatkozatok működik
- iterátoroké keresztül egy szabad tömbparaméter működnek
- Javítva egy hiba, ahol néhány tekintetben $ myEnum nem működött
Milyen új verzióban 0.7.4:
- a telepítést a Windows működnie kell teremteni, ha a könyvtár tartalmazza terek
- A dokumentáció készítő már csak teszi dokumentációt hozzászólásai
- `` `` engedélyezett az üzemeltetők, mint a kézikönyv szerint
- ritka esetekben, az index check lett optimalizálva el, annak ellenére, hogy szükség lett volna
- Több hibajavításokat tuple típusú
- hozzá egy `` unicode`` modul UTF-8 kezelésére
- hozzá Hostos és hostCPU mágiájukkal a `` system`` modul
- system.echo most elfogadja több érvek
- hozzá optimalizálás: bizonyos esetekben inline-kódkezelő a bejárók most termel lényegesen jobb kódot
- hozzáadott egész program halott kód megszüntetése
- a mágikus `` `üzemeltető működik a felsorolások
- A `` const`` szakaszok fejlett fordításkor kiértékelés
- átnevezték `` in_Operator`` hogy `` contains``: `` in`` most egy sablont, melynek fordítása `` contains``
- változott `` strutils.quoteIfSpaceExists`` hogy `` strutils.quoteIfContainsWhite``
- Az elemző ma már sokkal több válogatós missings vessző, stb Ha ez hatással van a kód túl sok, próbálja meg futtatni a kódot a csinos nyomtatót.
- A `` macros`` API már nem része a `` system`` modul, ezen API most már importálni a `` macros`` modul
- hozzá egy tutorial
Mi az új verzióban 0.7.2:
- Ez egy hibajavító kiadás. Ez a legfontosabb fix, hogy Nimród már újra működik, AMD64 (x86_64) processzorok.
- Nem új funkciók kerültek végrehajtásra.
Mi az új verzióban 0.7.0:
- különböző hibajavítások, túl sok felsorolni őket ide
- A telepítés UNIX-alapú rendszerek nem függ Python többé
- A `` koch.py`` script működik a régebbi Python verzió (beleértve a 1.5.2)
- megváltoztatta egész műveletek és a konverziók szabályok
- hozzáadott `` `` GC_ref`` és GC_unref`` procs
- szekvenciák most ki kell építeni azokat a `` `` @ operátor. Ennek eredményeként alacsonyabb félreérthető.
- a fordító már kevesebb memóriát használ, és sokkal gyorsabb,
- A GC most sokkal gyorsabb,
- új kötések: zlib, SDL, Xlib, OpenGL, ODBC, Lua
- A generált C-kód sokkal gyorsabb, hogy optimalizálja a GCC
- Új könyvtárak: patakok, zipfiles
- A Nimrod fordító már portolták FreeBSD: meg kell dolgozni a többi BSD túl
követelmények :
- Python
Hozzászólás nem található