Nimrod

Software screenshot:
Nimrod
Podrobnosti Software:
Verze: 0.9.2
Datum uploadu: 20 Feb 15
Vývojka: Andreas Rumpf
Licence: Volný
Popularita: 16

Rating: nan/5 (Total Votes: 0)

Nimrod je open source, free, staticky napsaný, naléhavý programovací jazyk navržený pro podporu procesního, objektově orientovaný, obecné a funkční programovací styly, zatímco zůstane efektivní a jednoduché.
Nimrod je schopen Syntaktický strom (AST) jako součást specifikace, umožňující silný makro systému, který může být použit k vytvoření specifické jazyky domény. A vlastnosti zdědil od Lisp.
Software je k dispozici nativní generování kódu, odvoz odpadu, zero-režijní iterátory, uživatelských defineable operátory, vysoké datové typy úrovni, sestavovat vyhodnocení doby, vpřed kompatibilita, GTK2, Windows API, vázání POSIX API, a plugable analyzátor systém, generátor dokumentace, a Pascal se Nimrod nástroj pro převod.
Nimrod je přenosný, což znamená, že může běžet na Linuxu, BSD, Mac OS & nbsp; X & nbsp; operační systémy a Windows

Co je nového v této verzi:.

  • Opravy chyb:
  • Stará GC nikdy správně vybrány cyklů. Pevná, ale to může způsobit výkonu regrese. Nicméně můžete deaktivovat kolektor cyklu se GC_disableMarkAndSweep a spustit ji výslovně ve vhodnou dobu nebo vůbec. K dispozici je také nový GC můžete aktivovat s --gc:. MarkAndSweep, která nemá tento problém, ale je pomalejší obecně a nemá v reálném čase záruky
  • cast pro plovoucí čárkou typů teď dělá bitcast, jak je uvedeno v návodu. Tím se přeruší kód, který chybně používá obsazení převést různé hodnoty s pohyblivou řádovou čárkou.
  • výkon SCGI modulu se výrazně zlepšila, už nebude blokovat na mnoha souběžných požadavků.
  • V celkové paušální více než 70 otázek GitHub a spojil více než 60 žádostí tahat.
  • Knihovna Dodatky:
  • K dispozici je nová experimentální Mark & ​​sweep GC, který může být rychlejší (nebo mnohem pomalejší) než standardní GC. Povolení se --gc:. MarkAndSweep
  • Přidáno system.onRaise na podporu stavu systému.
  • Přidáno system.locals, který poskytuje přístup k místní PROC je.
  • Přidána macros.quote pro AST kvazi-citoval.
  • Přidáno system.unsafeNew podporovat Hacky proměnnou délkou objektů.
  • system.fields a system.fieldPairs podpora objekt příliš; bývaly podporují pouze n-tic.
  • Added system.CurrentSourcePath vrácení plné systému souborů cestu aktuálního zdrojového souboru.
  • Modul makra nyní obsahuje spoustu užitečných pomocníků pro budování Abstract Syntax stromů.
  • změny ovlivňující zpětné kompatibility:
  • sdílená je nyní klíčové slovo.
  • Zastaralé sockets.recvLine a asyncio.recvLine, přidal readline místo.
  • způsob odsazení je zpracována v analyzátoru výrazně změnil. Nicméně, toto se týká jen velmi málo (pokud existuje) reálného světa kódu.
  • Výraz / Prohlášení o sjednocení bylo realizováno. Opět se týká pouze okrajové případy a žádný známý skutečný svět kód.
  • Změněno asynchronní rozhraní scgi modulu.
  • WideStrings jsou nyní smetí shromáždilo jako jiné typy strun.
  • Compiler Dodatky:
  • Příkaz doc2 negeneruje výstup na celý projekt ještě. Pomocí nové --project přepínač k tomu, aby toto chování.
  • kompilátor může nyní varovat stínu lokální proměnné. Nicméně, toto musí být zapnutý výslovně pomocí --warning [ShadowIdent]:., O
  • Překladač nyní podporuje téměř každou Pragma v push Pragma.
  • Léčivé převodníky byly implementovány.
  • Přidáno vysoce experimentální noforward Pragma umožňuje speciální režim kompilace, které do značné míry eliminuje potřebu vpřed prohlášení.
  • Jazykové Dodatky:
  • case výrazy jsou nyní podporovány.
  • Stolní konstruktéři nyní napodobit věrněji syntaxe case.
  • Nimrod nyní odvodit návratový typ na proc z jeho těla.
  • Přidáno mixin prohlášení ovlivnit symbol závazná pravidla generik.
  • sledování Výjimka byla přidána a příkaz doc2 anotaci možné výjimky pro vás.
  • Uživatelsky definované účinky (& quot; značky & quot;). Byla přidána sledování a příkaz doc2 anotaci možné tagy pro vás
  • Typy mohou být komentovaný s novou syntaxí ne nula výslovně stanovit, že nula není povolena. Nicméně v současné době kompilátor provádí ne moderní statické kontroly pro tento účel; teď je to jen pro účely dokumentace.
  • export prohlášení byla přidána do jazyka: Může být použit k přesměrování symbol tak klientské moduly nemuseli dovážet závislosti modulu je výslovně
  • .
  • přetížení na základě AST byla implementována.
  • Generika jsou nyní podporovány pro multi způsoby.
  • Objekty lze inicializovat přes objekt konstruktoru výraz.
  • K dispozici je nový syntaktický konstrukt (,) sjednocující výrazy a příkazy
  • .
  • Nyní můžete použít z modulu import nulové, pokud chcete importovat modul, ale chtějí prosadit úplný přístup ke všem symbol v modulu.

Co je nového ve verzi 0.8.14:.

  • Pevná vážné poškození paměti týkající se předávání zpráv
  • Opravena vážná chyba týkající se různých konkretizace generického proc.
  • Opravena chyba, kdy nově zavedený byl špatný výjimka EIO vznesené na konec souboru pro textové soubory, které nekončí s novým řádkem.
  • Oprava chyby c2nim, c2pas: --out možnost nebyla nikdy řádně pracoval
  • .
  • Oprava chyby:. Forwarding generických procs nikdy pracoval
  • Některé další opravy chyb maker a kompilace-time hodnocení.
  • GC se bere v úvahu vnitřní ukazatelů v zásobníku, které mohou být zavedeny agresivní C optimalizaci.
  • Nimrod rodný rozdělovač / GC nyní pracuje na PowerPC.
  • Mnoho dalších oprav:. Příliš mnoho vyjmenovat všechny

Co je nového ve verzi 0.8.6:

  • Opravy chyb:
  • Na pragmas náznak [X]: off a varování [X]: off nyní pracovat
  • .
  • Způsob volání syntaxe iterátorů opět funguje (pro x v lines.split ()).
  • Opraven překlep v removeDir pro POSIX, které vedou k nekonečné rekurze.
  • kompilátor nyní prověřuje, zda modul názvy souborů jsou platné identifikátory.
  • Prázdná vzory pro dynlib Pragma je nyní možné.
  • os.parseCmdLine vrátil špatné výsledky za koncové mezery.
  • nedůsledný použití Dvojici (se stejným n-tice a bez označených políček), není již zhroucení generátor kódu.
  • lepší chybová zpráva je k dispozici při načítání z proc v dynamickém lib selže.
  • Dodatky:
  • Přidány system.contains pro otevřené pole.
  • Modul PEG nyní podporuje vyhledávání obsluhy smyčky @.
  • Gramatika / parser: SAD | IND je před tím, než jakékoliv zavírání držák. To umožňuje pružnější zdrojového kódu formátování.
  • kompilátor nyní používá tabulku vazby pro symbol vyhledávání v kontextu bind. (Viz manual.html # šablony pro podrobnosti.)
  • Vyřadit & quot; & quot; & quot; svůj dlouhý komentář & quot; & quot; & quot; Nyní je optimalizován pryč.
  • Nové --floatChecks: ON | OFF spínače a pragmas pro lepší ladění pohyblivou řádovou čárkou. (Viz manual.html # předem definovaných-floating-point-typy pro podrobnosti.)
  • Příručka byla vylepšena. (Mnoho díky Philippe Lhoste!)
  • změny ovlivňující zpětné kompatibility:
  • kompilátor není přeskočit spojující krok už, i když žádný soubor změnil.
  • os.splitFile (& quot; XYZ & quot;), nyní se vrací (& quot; & quot ;, & quot; XYZ & quot ;, & quot; & quot;) namísto (& quot; & quot ;, & quot; & quot ;, & quot; XYZ & quot; ). Názvy souborů začínající tečkou jsou zpracovány jinak.
  • strutils.split (s: string, SEPS: nastavte [char]), nikdy se získá prázdný řetězec ještě. Toto chování je pravděpodobně vhodnější pro whitespace štípání.
  • kompilátor nyní zastaví po řádku přepínače --version příkazu.
  • odebrána podpora pro dědictví výčtu v analyzátoru; dědictví enum nebyla nikdy zdokumentován tak jako tak.
  • msg pole system.E_base má nyní typu řetězec, namísto CString. To zvyšuje bezpečnost paměti.

Co je nového ve verzi 0.8.2:

  • Opravy chyb:
  • Předávání --hint [X]: vypnutý nebo --warning [X]:. Off as argumenty příkazového řádku pro kompilátor nyní pracuje
  • Výchozí parametry pro šablony nyní pracovat.
  • Opravena chyba zabezpečení v system.copy.
  • String pouzdro bez součást jiného generovaný nesprávný kód.
  • Různé opravy na osproc modulu; Nyní pracuje na systému Windows.
  • Dodatky:
  • Realizované multi-metody.
  • Překladač nyní zjišťuje počet dostupných procesorů a spustí kompilátor C současně. To lze nastavit pomocí --parallel_build:. NUMBER_OF_PROCESSORS přepínač příkazového řádku
  • PEG-based model odpovídající pomocí modulu kolíky.
  • Added system.definedInScope.
  • Added system.accumulateResult.
  • Added os.walkDirRec.
  • Přidáno osproc.countProcessors.
  • Added osproc.execProcesses.
  • Konfigurace systému nyní podporuje $ cc.options.linker.
  • sloučená expr a typeDesc v gramatice / analyzátoru:. To umožní anonymní procs bez lambda
  • Mnoho skriptů nemají potřebu GC: Nová --gc: none přepínač příkazového řádku lze použít k vyloučení GC ze spustitelného
  • .
  • změny ovlivňující zpětné kompatibilita:
  • Vzhledem adresu objektu discriminant je nyní neplatný.
  • Předávání proc na proc var je povoleno pouze pro procs označených procvar nebo konvence volání! = Nimcall. Pro tuto chvíli to způsobuje jen varování, ale to se změní na chybu brzy.
  • systém, teplotu a system.add nyní dostávají openArray místo parametrů násl.
  • Odebráno strutils.findSubStr a strutils.findChars. Byly zastaralé 3 verze.
  • unicode modul používá odlišný typ pro TRune.
  • Deprecated strutils.toString: použít $ namísto
  • .
  • Deprecated os.splitPath:. Použití os.splitPath, že místo vrací n-tici
  • Deprecated os.extractDir:. Použít splitFile (cestu) .dir místo
  • Deprecated os.splitFilename: použijte splitFile místo
  • .
  • Deprecated os.extractFileExt: použijte splitFile místo
  • .
  • Deprecated os.extractFileTrunk: použijte splitFile místo
  • .
  • Deprecated os.appendFileExt: použijte os.addFileExt místo
  • .
  • Deprecated os.executeShellCommand: použijte os.execShellCmd místo
  • .
  • Deprecated os.iterOverEnvironment:. Použijte os.envPairs místo
  • Zastaralé parseopt.init: použijte parseopt.initOptParser místo
  • .
  • Deprecated parseopt.getRestOfCommandLine: použijte parseopt.cmdLineRest místo
  • .
  • Deprecated os.pcDirectory: použijte os.pcDir místo
  • .
  • Deprecated os.pcLinkToDirectory: použijte os.pcLinkToDir místo
  • .
  • Deprecated osproc.executeProcess: použijte osproc.execProcess místo
  • .
  • Deprecated osproc.executeCommand: použijte osproc.execCmd místo
  • .

Co je nového ve verzi 0.8.0:

  • Opravy chyb:
  • opravena malá chyba, která způsobila, že překladač nehlásí nepoužité přetížené symboly
  • pevným o symbol drobná chyba přetížení
  • pevné překlep: to je & quot; nejednoznačný a quot ;, není & quot; nejednoznačnou & quot; , -)
  • kompilátor nyní zjišťuje rekurzivní hlavičkové soubory,
  • system.card by měl fungovat opět
  • položky za sadu [char] a pole [char, T], by nyní mělo fungovat
  • Dodatky:
  • realizované generické typy a dvě fáze symbol vyhledávání v generických rutiny
  • Parametry šablony mohou být nyní reálné typy
  • realizován zobecněné syrové řetězcové literály: ident & quot; abc & quot; je zkratka pro Ident (r & quot; abc & quot;)
  • na přetížení iterátorů rozlišení jsou odděleny od procs; iterátory nyní může mít stejný název + podpis jako procs
  • symbol vyhledávání v šablonách může být ovlivněna novým klíčovým slovem bind
  • kompilátor nyní přijímá --no_main přepínač pro lepší propojení interoperabilitu s ostatními kompilované jazyky
  • provedena n-tice rozbalení v var oddílech
  • generátor kódu vysílá výchozí: __assume (0); Visual C ++ (pro optimalizaci)
  • kompilátor nyní kontroluje, zda proc má vedlejší účinky; procs, které jsou deklarovány, že nemají žádné vedlejší účinky, jsou odmítnuty, pokud kompilátor nemůže ověřit tento
  • operátor formát strutils.% Nyní podporuje $ # pro automatické počítání argument,
  • realizován strutils.join
  • změny ovlivňující zpětné kompatibilita:
  • dvě fáze symbol vyhledávání se provádí v generických rutiny
  • bind je nyní vyhrazené slovo; Výjimkou není vyhrazené slovo už
  • abstraktní typy byly přejmenovány na odlišných typů; Takto výrazný je nyní vyhrazené slovo; abstraktní není vyhrazené slovo už
  • system.openFile Deprecated: použití system.open místo
  • system.closeFile zastaralé: použití system.close místo
  • strutils.replaceStr zastaralé: použití strutils.replace místo
  • strutils.deleteStr zastaralé: použití strutils.delete místo
  • strutils.splitSeq zastaralé: použití strutils.split místo
  • strutils.splitLinesSeq zastaralé: použití strutils.splitLines místo
  • strutils.parseFloat nepřijme další parametr start už
  • Documentation:
  • návod byl vylepšen

Co je nového ve verzi 0.7.6:

  • Opravy chyb:
  • Instalace systému Windows Vista lze nyní pracovat po vybalení z krabice; zkuste!
  • opravena chyba, která držel & quot; rekurzivní moduly & quot; příklad z práce
  • míchání pojmenované a nepojmenované parametry ve volání procedur nyní funguje
  • čísla osmičkové s předponou 0 ° C, jsou nyní správně podporovány
  • vyčíslení nyní může začít s negativními hodnotami
  • parseInt, ParseBiggestInt nyní hodit výjimku, pokud řetězec nekončí po analyzovat čísla
  • kompilátor nyní zpracovává příkazy nejvyšší úrovně správně
  • generovaný nimcache adresář nikdy končí lomítkem
  • createDir nyní pracuje pro globální adresáře pod Unixem (& quot; / somepath / sem & quot;)
  • kompilátor nyní provádí spustitelný soubor s předním & quot; ./& quot; pod UNIX
  • překladač nyní podporuje konstantní matice řádu ukazatelů
  • Elif v případě prohlášení nyní pracuje
  • iterators pomocí parametru otevřené pole nyní pracovat
  • opravena chyba, kdy v některých kontextech $ myEnum nefungovalo

Co je nového ve verzi 0.7.4:

  • Instalace na Windows by nyní mělo fungovat, pokud adresář obsahuje prostory
  • generátor dokumentace už jen omítky názory dokumentace
  • `` `` je povoleno pro operátory, jako manuál říká
  • v ojedinělých případech, kontrola index byl optimalizován pryč, i když by to bylo nutné,
  • několik oprav chyb za typů n-tic
  • přidal `` unicode`` modul pro UTF-8 manipulaci
  • přidal HOSTOS a hostCPU magii na `` system`` modulu
  • system.echo nyní přijímá více argumenty
  • přidal optimalizace: v některých případech inlining iterátorů nyní produkuje podstatně lepší kód
  • přidal celý program mrtvý odstranění kód
  • magic `` `operátor nyní pracuje pro vyčíslení
  • v `` const`` sekcích pokročilé sestavit vyhodnocení času se provádí
  • přejmenován `` in_Operator`` na `` contains``: `` in`` je nyní šablona, ​​která se promítá do `` contains``
  • změnil `` strutils.quoteIfSpaceExists`` na `` strutils.quoteIfContainsWhite``
  • parser je nyní mnohem více náročné na missings čárky, atd. Pokud se to týká vašeho kódu příliš mnoho, zkuste spustit kód přes hezké tiskárně.
  • `` macros`` API již není součástí `` system`` modulu používat tento API nyní máte k importu `` macros`` modul
  • přidal návod

Co je nového ve verzi 0.7.2:

  • Toto je vydání s opravami chyb. To nejdůležitější je, že oprava Nimrod nyní pracuje opět na AMD64 (x86_64) procesory.
  • byly zavedeny žádné nové funkce.

Co je nového ve verzi 0.7.0:

  • různé opravy chyb, příliš mnoho na jejich seznam zde
  • instalace pro systémy UNIX není závislá na Python déle,
  • `` koch.py`` skript nyní pracuje se staršími verzemi Pythonu (včetně 1.5.2)
  • změnil celočíselné operace a převody pravidla
  • přidal `` GC_ref`` a `` GC_unref`` procs
  • sekvence je nyní třeba konstruována tak, `` `` @ operátora. To vede k nižší nejasnosti.
  • kompilátor nyní používá méně paměti a je mnohem rychlejší,
  • GC je nyní mnohem rychlejší,
  • Nové vazby: zlib, SDL, Xlib, OpenGL, ODBC, Lua
  • generovaný C kód je mnohem rychlejší optimalizovat s GCC
  • nové knihovny: proudy, distribučních .zip archivů
  • kompilátor Nimrod byl portován na FreeBSD: to by mělo fungovat na jiných BSD taky

Požadavky na :

  • Python

Podobný software

FFC
FFC

17 Feb 15

JBrownie
JBrownie

3 Jun 15

execline
execline

18 Jul 15

Flapjax
Flapjax

3 Jun 15

Komentáře k Nimrod

Komentáře nebyl nalezen
Přidat komentář
Zapnout obrázky!