Nimrod on avoimen lähdekoodin, vapaa, staattisesti kirjoitettu, imperatiivi ohjelmointikieli suunniteltu tukemaan menettelyyn, olio, geneeristen ja toimiva ohjelma tyylejä, kun taas loput tehokas ja yksinkertainen.
Nimrod pystyy abstrakti syntaksipuun (ASAT) osana erittely, joka mahdollistaa tehokas makro, jota voidaan käyttää luomaan toimialueen tiettyjä kieliä. Ominaisuudet periytyvät Lisp.
Ohjelmiston ominaisuudet koodiksi sukupolvi, roskien keräys, nolla-piirtoheitin iterators, käyttäjän defineable toimijoiden korkean tason tietotyypit, koota arvioinnissa, eteenpäin compability, GTK2, Windows API, POSIX API siteet, plugable parseri järjestelmän dokumentointi generaattori, ja Pascal Nimrodiin muuntaminen apuohjelma.
Nimrod kannettava, mikä tarkoittaa, että se voi ajaa Linux, BSD, Mac OS & nbsp; X & nbsp; ja Windows-käyttöjärjestelmissä.
Mitä uutta strong> tässä julkaisussa:
- Bugikorjauksia:
- Vanha GC koskaan kerätty jaksoa oikein. Kiinteät mutta se voi aiheuttaa suorituskyvyn taantumat. Voit kuitenkin poistaa syklin keräilijä GC_disableMarkAndSweep ja ajaa sitä nimenomaisesti sopivaan aikaan tai ei ollenkaan. Myös uusi GC voit käynnistettävät --gc: markAndSweep joka ei ole tätä ongelmaa, mutta on hitaampi yleensä ja ei ole reaaliaikainen takeita.
- valettu liukuluku tyypit nyt tekee bitcast määritelty käsikirjassa. Tämä katkaisee koodin virheellisesti käyttää valettu muuntaa eri liukuluvuiksi.
- SCGI moduulin suorituskykyä on parannettu huomattavasti, se ei enää estää monien samanaikaisia pyyntöjä.
- Kiinteiden yli 70 github kysymyksiä ja yhdistettiin yli 60 pull pyyntöjä.
- Kirjasto Lisäykset:
- On uusi kokeellinen Mark & lakaista GC, joka voi olla nopeampi (tai paljon hitaammin) kuin oletuksena GC. Aktivointi --gc: markAndSweep.
- Lisätty system.onRaise tukemaan kunnossa järjestelmä.
- Lisätty system.locals joka tarjoaa pääsyn proc: n paikalliset.
- Lisätty macros.quote AST lähes lainaten.
- Lisätty system.unsafeNew tukemaan hacky vaihtelevan pituuden esineitä.
- system.fields ja system.fieldPairs tukea objekti liian; ne käytetään vain tukea tuplat.
- Lisätty system.CurrentSourcePath palauttaa koko tiedostojärjestelmä polku virtalähteen tiedosto.
- makrot moduuli sisältää nyt paljon hyödyllisiä auttajia rakentaa abstrakti syntaksi puut.
- Muutokset vaikuttavat taaksepäin yhteensopivuus:
- jaettu on avainsana nyt.
- Deprecated sockets.recvLine ja asyncio.recvLine, lisätään readline sijaan.
- tapa sisennys hoidetaan jäsennintä muuttuneet merkittävästi. Kuitenkin tämä vaikuttaa hyvin vähän (jos on) reaalimaailman koodi.
- ilme / selvitys yhdistymisen on toteutettu. Tämäkään vaikuttaa vain reuna tapauksissa eikä tiedetä reaalimaailman koodi.
- Muuttunut async käyttöliittymä scgi moduulin.
- WideStrings nyt roskat kerätään, kuten muun merkkijonon tyyppejä.
- Compiler Lisäykset:
- doc2 komento ei tuota ulostulo koko hankkeen enää. Käytä uutta --project kytkin, jotta tätä käyttäytymistä.
- kääntäjä voi nyt varoittaa varjosti paikallisia muuttujia. Kuitenkin, tämä on päällä nimenomaan kautta --warning [ShadowIdent]: päällä.
- kääntäjä tukee nyt lähes joka pragma push pragma.
- Generic muuntimet on toteutettu.
- Lisätty kokeellinen noforward pragma mahdollistaa erityinen kokoelma tila, joka eliminoi pitkälti eteenpäin ilmoituksista.
- Kieli Lisäykset:
- tapauksessa ilmaisuja nyt tuettu.
- Taulukko rakentajien nyt jäljitellä paremmin syntaksin case-selvitys.
- Nimrod voi nyt päätellä paluu tyyppi proc sen elin.
- Lisätty Mixin ilmoitus vaikuttaa symboli sitovia sääntöjä rinnakkaislääkkeiden.
- Poikkeus seuranta on lisätty ja doc2 komento lämpökuvien mahdollisia poikkeuksia varten.
- Käyttäjän määrittämä vaikutuksia (& quot; tunnisteet & quot;) seuranta on lisätty ja doc2 komento lämpökuvien mahdollista tageja sinulle.
- tyypit voidaan selityksineen uuden syntaksia ei nolla nimenomaisesti todeta, että nolla ei ole sallittua. Kuitenkin tällä hetkellä kääntäjä tekee ei kehittynyt staattinen tarkistaa tätä; nyt se vain dokumentointia varten.
- vienti selvitys on lisätty kieltä: Sitä voidaan käyttää symboli huolinta joten asiakas moduuleja ei tarvitse tuoda moduulin riippuvuuksia nimenomaisesti.
- Ylikuormituksen perustuu ASTs on toteutettu.
- Generics tuetaan nyt monen menetelmiä.
- Kohteita voidaan alustaa kautta esine rakentaja ilmaisua.
- On uusi syntaktinen konstruktio (;) yhdistävä ilmaisuja ja lausunnot.
- Voit nyt käyttää moduulista tuonti olematon, mikäli haluat tuoda moduuli, mutta haluavat valvoa täysin pätevä pääsy jokaisen symbolin moduulissa.
Mitä uutta strong> versiossa 0.8.14:
- Kiinteät vakava muistin korruptio koskevat viesti kulkee.
- Kiinteät vakava vika koskee eri instantiations geneerisen proc.
- Kiinteät äskettäin käyttöön vika, jos väärä EIO poikkeus kerättiin tiedoston loppuun tekstitiedostoja, jotka eivät pääty rivinvaihtoa.
- Bugikorjaus c2nim, c2pas: --out vaihtoehto ei ole koskaan toiminut kunnolla.
- Bugikorjaus: huolinta geneeristen procs koskaan toiminut.
- Jotkut enemmän bugikorjauksia makroja ja koota ajan arviointi.
- GC otetaan nyt huomioon sisustus vinkin pino joka voidaan lisätä aggressiivista C optimizers.
- Nimrodin natiivi sijoittimen / GC nyt toimii PowerPC.
- Paljon muita bugikorjauksia: Liian monta luetella niitä kaikkia.
Mitä uutta strong> versiossa 0.8.6:
- Bugikorjauksia:
- Pragmat Piilota [X]: pois ja varoitus [X]: pois nyt toimi.
- Menetelmä puhelun syntaksin iterators toimii uudelleen (x lines.split ()).
- Kiinteät kirjoitusvirhe removeDir POSIX- jotka johtavat äärettömän rekursio.
- kääntäjä tarkistaa nyt, että moduuli tiedostonimet ovat voimassa tunnisteita.
- Tyhjennä kaavoja dynlib pragma ovat nyt mahdollisia.
- os.parseCmdLine palasi pieleen haulle perään välilyönnillä.
- epäjohdonmukainen monikon käytön (käyttäen samoja monikko ja ilman nimetty kentät) ei kaadu koodigeneraattorista enää.
- parempi virheilmoitus annetaan, kun lastaus proc dynaamiset lib epäonnistuu.
- Lisäykset:
- Lisätty system.contains avoimen paneelit.
- PEG-moduuli tukee nyt haku silmukka operaattori @.
- Kielioppi / parseri: SAD | IND sallitaan ennen minkäänlaista hakasulkeisiin. Tämä mahdollistaa joustavamman lähdekoodia muokkauksesta.
- kääntäjä käyttää nyt sitoa taulukon symboli lookup sisällä sitoa yhteydessä. (Katso manual.html # malleja lisätietoja.)
- Hylkää & quot; & quot; & quot; minun pitkän kommentin & quot; & quot; & quot; Nyt optimoitu pois.
- Uusi --floatChecks: on | off kytkimet ja Pragmat paremmin vikojen liukulukuoperaatiot. (Katso manual.html # ennalta määriteltyihin-liukuluku-tyypit lisätietoja.)
- oppaat on parannettu. (Suurkiitos Philippe Lhoste!)
- Muutokset vaikuttavat taaksepäin yhteensopivuus:
- kääntäjä ei ohita yhdistää vaiheessa enää vaikka ei tiedosto on muuttunut.
- os.splitFile (& quot; .xyz-tunnisteisia & quot;) nyt palauttaa (& quot; & quot ;, & quot; .xyz-tunnisteisia & quot ;, & quot; & quot;) sijasta (& quot; & quot ;, & quot; & quot ;, & quot; .xyz-tunnisteisia & quot; ). Tiedostonimet alkavat pisteellä hoidetaan eri tavalla.
- strutils.split (s: string, SEPS: valitse [char]) koskaan tuottaa tyhjän merkkijonon enää. Tämä ongelma on luultavasti sopivampi välilyönnillä halkaisu.
- kääntäjä nyt pysähtyy jälkeen --version komentorivivalitsin.
- Poistettu tuki enum perintöosaa jäsennin; enum perintö ei ole koskaan dokumentoitu muutenkin.
- MSG alalla system.E_base on nyt muotoilumerkkijonossa sijasta cstring. Tämä parantaa muistia turvallisuutta.
Mitä uutta strong> versiossa 0.8.2:
- Bugikorjauksia:
- Passing --hint [X]: päältä tai --warning [X]: pois niin komentoriviargumentteja kääntäjä toimii nyt.
- oletusparametreihin malleja nyt toimii.
- Kiinteät tietoturvaongelma system.copy.
- String tapauksessa ilman muuta osa syntyy väärä koodi.
- Various korjaukset osproc moduuli; se nyt toimii Windows.
- Lisäykset:
- Sovellettu multi-menetelmiä.
- kääntäjä tunnistaa nyt käytettävissä olevien jalostajien ja suorittaa C-kääntäjän samanaikaisesti. Tämä voidaan säätää --parallel_build: number_of_processors komentorivivalitsin.
- PEG-pohjaisen hahmontunnistusperiaatekin kautta tapit moduulin.
- Lisätty system.definedInScope.
- Lisätty system.accumulateResult.
- Lisätty os.walkDirRec.
- Lisätty osproc.countProcessors.
- Lisätty osproc.execProcesses.
- kokoonpano Järjestelmä tukee nyt $ cc.options.linker.
- Yhdistetty lauseke ja typeDesc kielioppia / parseri: tämä mahdollistaa anonyymin procs ilman lambda.
- Monet skriptit ei ole tarvetta GC: Uusi --gc: none komentorivivalitsin voidaan jättää GC suoritustiedostosta.
- Muutokset vaikuttavat taaksepäin compability:
- Kun osoite esineen diskriminantti on nyt kelpaa.
- Syöttäminen proc proc var on sallittu vain procs merkitty procvar tai kutsumistapa! = Nimcall. Nyt tämä vain aiheuttaa varoituksen, mutta tämä muuttuu virheen pian.
- järjestelmä. & Ja system.add saavat nyt openArray sijasta seuraavissa parametrit.
- Poistettu strutils.findSubStr ja strutils.findChars. Ne on hylätty 3 versiota.
- Unicode-moduuli käyttää eri tyyppiä TRune.
- Deprecated strutils.toString: käytä $ sijaan.
- Deprecated os.splitPath: käyttö os.splitPath joka palauttaa monikon asemesta.
- Deprecated os.extractDir: käytä SplitFile (polku) .dir sijaan.
- Deprecated os.splitFilename: käytä SplitFile sijaan.
- Deprecated os.extractFileExt: käytä SplitFile sijaan.
- Deprecated os.extractFileTrunk: käytä SplitFile sijaan.
- Deprecated os.appendFileExt: käytä os.addFileExt sijaan.
- Deprecated os.executeShellCommand: käytä os.execShellCmd sijaan.
- Deprecated os.iterOverEnvironment: käyttö os.envPairs sijaan.
- Poistettu parseopt.init: käytä parseopt.initOptParser sijaan.
- Deprecated parseopt.getRestOfCommandLine: käytä parseopt.cmdLineRest sijaan.
- Deprecated os.pcDirectory: käytä os.pcDir sijaan.
- Deprecated os.pcLinkToDirectory: käytä os.pcLinkToDir sijaan.
- Deprecated osproc.executeProcess: käytä osproc.execProcess sijaan.
- Deprecated osproc.executeCommand: käytä osproc.execCmd sijaan.
Mitä uutta strong> versiossa 0.8.0:
- Bugikorjauksia:
- kiinnitetty pieni vika, kääntäjä ei raportoida käyttämättömiä ylikuormitettu symbolia
- kiinteä pieni bugi koskee symboli ylikuormitus
- kiinteä typo: se & quot; epäselvä & quot ;, ei & quot; epäselvyyttä & quot; ; -)
- kääntäjä tunnistaa nyt rekursiivinen sisältää tiedostoja
- system.card pitäisi toimia jälleen
- teokset set [char] ja array [nieriää, T] pitäisi toimia
- Lisäykset:
- toteuttaa yleistyyppien ja kaksi vaihetta symboli lookup geneeristen rutiinit
- mallin parametrit voidaan nyt todellinen tyypit
- toteuttaa yleinen raaka string literaaleja: ident & quot; abc & quot; on oikotie ident (r & quot; abc & quot;)
- ylikuormitukseen resoluutio iterators erotetaan procs; iterators nyt voi olla sama nimi + allekirjoitus procs
- symboli lookup malleja voidaan vaikuttaa uusien sitoa avainsanan
- kääntäjä hyväksyy nyt --no_main kytkin paremmin yhteys yhteentoimivuuden muiden koottu kielet
- toteuttaa monikon purkaminen var kohdissa
- koodin generaattori tuottaa oletuksena: __assume (0); Visual C ++ (optimointi)
- kääntäjä tarkistaa nyt jos proc on sivuvaikutuksia; procs että on julistettu ei ole sivuvaikutuksia, hylätään kääntäjä ei voi tarkistaa tätä
- muodossa operaattorin strutils.% Tukee nyt $ # automaattista argumentti laskenta li>
- toteuttaa strutils.join
- Muutokset vaikuttavat taaksepäin compability:
- kaksi vaihetta symboli lookup suoritetaan yleisiä rutiineja
- sitoa on nyt varattu sana; Poikkeuksena ole varattu sana enää
- abstrakti tyyppejä on nimetty uudelleen eri tyyppiä; Näin selvä on nyt varattu sana; tiivistelmä ole varattu sana enää
- system.openFile vanhentunut: käyttö system.open sijaan
- system.closeFile vanhentunut: käyttö system.close sijaan
- strutils.replaceStr vanhentunut: käyttö strutils.replace sijaan
- strutils.deleteStr vanhentunut: käyttö strutils.delete sijaan
- strutils.splitSeq vanhentunut: käyttö strutils.split sijaan
- strutils.splitLinesSeq vanhentunut: käyttö strutils.splitLines sijaan
- strutils.parseFloat ei hyväksy ylimääräistä alku parametri enää
- Documentation:
- käsikirja on parannettu
Mitä uutta strong> versiossa 0.7.6:
- Bugikorjauksia:
- asennuksen Windows Vistan voi nyt työskennellä kättelyssä; kokeile!
- Kiinteä vika, joka piti & quot; rekursiivinen moduulit & quot; Esimerkiksi työskentely
- sekoittamalla nimetty ja nimeämätön parametrit proseduurikutsu nyt toimii
- oktaalilukuja etuliitteellä 0c nyt oikein tue
- laskentatulosten nyt voi aloittaa negatiiviset arvot
- parseInt, ParseBiggestInt nyt heittää poikkeus, jos merkkijono ei päättyvät jäsentää numero
- kääntäjä käsittelee nyt huipputason lausunnot oikein
- syntyy nimcache hakemiston koskaan päättyy slash
- CreateDir nyt toimii maailmanlaajuisesti hakemistot UNIX (& quot; / somepath / tässä & quot;)
- kääntäjä suorittaa nyt suoritettavan kanssa johtava & quot; ./& quot; UNIX
- kääntäjä tukee nyt vakiona paneelit menettelyn osoittimia
- Elif asiassa lausunnot nyt toimii
- iterators käyttäen avoimen matriisiparametrit nyt töihin
- Kiinteä vika, jos joissakin yhteyksissä $ myEnum ei toimi
Mitä uutta strong> versiossa 0.7.4:
- asennus Windowsin pitäisi nyt toimia, jos hakemisto sisältää tilat
- dokumentaatio generaattori nyt vain tekee asiakirjojen kommentit
- `` `` sallitaan toimijoiden kuten manuaalinen sanoo
- harvinaisissa tapauksissa indeksi tarkastus on optimoitu pois, vaikka se olisi ollut tarpeen
- useita korjauksia varten monikko tyypit
- lisätään `` unicode`` moduuli UTF-8 käsittely
- lisätään Hostos ja hostCPU magics nimetään `system`` moduuli
- system.echo hyväksyy nyt useita väitteitä
- Lisätään optimointi: joissakin tapauksissa upottamista on iterators nyt tuottaa huomattavasti parempaa koodia
- lisätä koko ohjelma kuolleen koodin poistaminen
- taika `` `operaattori toimii nyt laskentatulosten
- `` const`` edistyivät koota arvioinnissa tehdään
- nimeksi `` in_Operator`` on `` contains``: `` in`` on nyt malli, joka kääntää `` contains``
- muuttunut `` strutils.quoteIfSpaceExists`` on `` strutils.quoteIfContainsWhite``
- tulkinta on nyt paljon enemmän nirso missings pilkkuja jne Jos tämä vaikuttaa koodin liikaa, yritä ajaa koodia läpi melko tulostin.
- `` macros`` API ei ole enää osa `` system`` moduuli, käyttää tätä API sinulla on nyt tuoda `` macros`` moduuli
- lisäsi opetusohjelma
Mitä uutta strong> versiossa 0.7.2:
- Tämä on vikakorjaus julkaisu. Tämä tärkein korjaus on, että Nimrod nyt toimii taas AMD64 (x86_64) prosessorit.
- Ei uusia ominaisuuksia on toteutettu.
Mitä uutta strong> versiossa 0.7.0:
- erilaisia korjauksia, liian monta luetella niitä tässä
- asennus UNIX-pohjaiset järjestelmät eivät riipu Python enää
- `` koch.py`` käsikirjoitus toimii nyt vanhemmat Python versiot (mukaan lukien 1.5.2)
- muuttunut kokonaisluku toimintaa ja tuloksia säännöt
- lisätä `` GC_ref`` ja `` GC_unref`` procs
- sekvenssit nyt on rakennettu `` @ `` operaattori. Tämä johtaa vähemmän epäselvyyksiä.
- kääntäjä nyt käyttää vähemmän muistia ja on paljon nopeampi
- GC on nyt paljon nopeammin
- Uusi siteet: zlib SDL, Xlib, OpenGL, ODBC, Lua
- syntyy C-koodia on paljon helpompi optimoida GCC
- uusia kirjastoja: purot, zipfiles
- Nimrod kääntäjä on portattu FreeBSD: sen pitäisi toimia muiden BSD: n liian
Vaatimukset :
- Python
Kommentteja ei löytynyt