Nimrod

Software screenshot:
Nimrod
Software ətraflı:
Version: 0.9.2
Tarixi Upload: 20 Feb 15
Geliştirici: Andreas Rumpf
Lisenziya: Pulsuz
Məşhurluq: 16

Rating: nan/5 (Total Votes: 0)

Səmərəli və sadə qalan isə

Nəmrud açıq mənbə, prosessual, obyekt-yönümlü, ümumi və funksional proqramlaşdırma üslub üçün nəzərdə pulsuz, statik çap, vacib proqramlaşdırma dilidir.
Nəmrud domain xüsusi dil yaratmaq üçün istifadə edilə bilər ki, güclü makro sistemi imkan verən dəqiqləşdirilməsi hissəsi kimi mücərrəd sintaksis ağac (AST), edə bilər. A xüsusiyyətləri Lisp miras qalmışdır.
Bu proqram doğma kodu nəsil zibil toplama, sıfır yerüstü Iterators, istifadəçi defineable operatorları, yüksək səviyyəli veri türleri, vaxt qiymətləndirilməsi, irəli Compability, gtk2, Windows API, POSIX API birləşdirilməsi, bir plugable parser sistemi, sənədlərin generator tərtib edir və Bir Pascal Nəmrud dönüşüm kommunal.
Nəmrud bu Linux, BSD, Mac OS & nbsp çalıştırabilirsiniz o deməkdir ki, portativ, X & nbsp; və Windows əməliyyat sistemi

Bu azad Yeni nədir.

  • Bugfixes:
  • Köhnə GC düzgün dövründən toplanmış heç vaxt. Sabit lakin performans regressions səbəb ola bilər. Lakin GC_disableMarkAndSweep ilə dövrü kollektor ləğv edə bilər və uyğun zamanda və ya bütün bir aydın axır. Siz --gc ilə aktivləşdirə bilərsiniz ki, yeni GC da var. Bu problem var, lakin ümumiyyətlə yavaş və zamanlı zəmanət var deyil markAndSweep
  • point növü üzən üçün tökmə indi təlimatda göstərilmiş kimi bitcast yoxdur. Bu yanlış müxtəlif üzən point dəyərlər çevirmək üçün tökmə istifadə kodu pozur.
  • SCGI modul performans artıq çox paralel sorğu blok, çox yaxşılaşmışdır.

  • Cəmi
  • 70-dən çox github məsələləri müəyyən və 60 pull sorğu üzərində birləşdi.
  • Kitabxana Əlavələr:
  • sürətli (və ya çox yavaş) default QS çox ola bilər ki, yeni eksperimental nişanı və sweep GC var. --gc Ilə Enable. MarkAndSweep
  • Added system.onRaise bir vəziyyət sisteminin dəstəklənməsi üçün.
  • Əlavə system.locals bir proc nin yerli erişim təmin edir.
  • AST kvazi-istinadən verdiyi üçün əlavə macros.quote.
  • Added system.unsafeNew hacky dəyişən uzunluğu obyektlərin dəstək.
  • system.fields və system.fieldPairs dəstək obyekt çox; yalnız dəstək tuples üçün istifadə olunur.
  • cari mənbə fayl tam fayl sistemi yolu dönən Added system.CurrentSourcePath.
  • makro modulu indi mücərrəd sintaksis ağacları tikinti üçün faydalı köməkçiləri çox ehtiva edir.

  • Geri uyğunluğu təsir
  • Bu dəyişiklikləri:
  • paylaşılan bir söz edir.
  • Deprecated sockets.recvLine və asyncio.recvLine əvəzinə readline əlavə edib.
  • yol abzas əhəmiyyətli dərəcədə dəyişib parser idarə olunur. Lakin bu (əgər varsa) çox az real dünya kodu təsir edir.
  • ifadə / şərhdə birləşməsi həyata keçirilir. Yenə bu yalnız kənar hallarda və heç bir tanınmış real dünya kodu təsir edir.
  • scgi modul async interfeysi dəyişdi.
  • WideStrings artıq zibil digər simli növləri kimi toplanır.
  • Kompilyator Əlavələr:
  • doc2 komanda artıq bütün layihə üçün çıxış yaratmaq deyil. Bu davranışı təmin etmək üçün yeni --project keçid istifadə edin.
  • compiler artıq kölgə yerli dəyişənlərin haqqında xəbərdarlıq edə bilər. Lakin, bu, açıq-aydın [ShadowIdent] --warning vasitəsilə açıq olmalıdır.
  • compiler indi təkan pragma demək olar ki, hər Pragma dəstəkləyir.
  • Generic çeviriciləri həyata keçirilmişdir.
  • əsasən irəli bəyannamələrinin üçün ehtiyac aradan qaldırır xüsusi tərtib rejimi imkan yüksək təcrübi noforward Pragma Added.
  • Language Əlavələr:
  • halda ifadələr indi dəstəklənir.
  • Cədvəl inşaatçılar indi iddia şərh daha yaxından sintaksis taklit.
  • Nəmrud indi onun bədən bir proc qaytarılması növü nəticə çıxarmaq olar.
  • generics qaydaları məcburi simvolu təsir üçün mixin bəyannamə Added.
  • İstisna izleme əlavə və doc2 komanda sizin üçün mümkün istisnalar annotates edilmişdir.
  • İstifadəçi müəyyən təsiri (& quot; tags & quot;). Izleme əlavə edilmişdir və doc2 komanda sizin üçün mümkün tags annotates
  • növləri yeni sintaksis deyil sıfır aydın ki, sıfır dövlət icazə verilmir ilə not ola bilər. Lakin hal-hazırda compiler bu yoxlanılması heç bir inkişaf etmiş statik həyata keçirir; İndi bu sənədlərin məqsədləri üçün yalnız var.
  • An ixrac bəyanat dili əlavə edildi: müştəri modulları aydın bir modul bağımlılıkları idxal yoxdur, belə ki, simvolu forwarding üçün istifadə edilə bilər
  • .
  • ASTs əsasında həddindən artıq həyata keçirilmişdir.
  • Generics indi çox üsulları dəstəklənir.
  • obyektləri bir obyekt konstruktor ifadə vasitəsilə başlatılmış bilər.
  • Yeni sintaktik tikinti var (;) birləşdirici ifadələr və bəyanatlar
  • .
    Siz modulu idxal etmək istəyirəm, lakin modul hər simvolu tam ixtisaslı giriş həyata keçirmək istəyirsinizsə,
  • İndi modul idxal sıfır istifadə edə bilərsiniz.

versiya 0.8.14 yeni nədir.

  • keçən mesajı bağlı ciddi yaddaş korrupsiya Sabit
  • ciddi səhv Sabit ümumi proc müxtəlif instantiations dair.
  • səhv EIO istisna bir sətirdə başa yoxdur mətn faylları üçün fayl sonu üçün qaldırılmış bir yeni təqdim səhv Sabit.
  • Bugfix c2nim, c2pas: --out seçim düzgün işləyib heç vaxt
  • .
  • Bugfix:. Generic procs forwarding işləyib heç
  • makro bəzi daha çox bugfixes və tərtib zaman qiymətləndirilməsi.
  • GC artıq aqressiv C optimize tərəfindən təqdim edilə bilər yığını hesab daxili göstəricilər nəzərə alır.
  • Nəmrudun doğma allocator / GC indi PowerPC üzərində işləyir.
  • Digər bugfixes çox. Onların hamısını sadalamaq çox

versiya 0.8.6 yeni nədir:

  • Bugfixes:

  • Off və xəbərdarlıq [X]:
  • Pragmas [X] işarə artıq iş off
  • .
    Iterators üçün
  • Əlaqə zəng syntax (lines.split () x üçün) yenidən işləyir.
  • sonsuz recursion səbəb POSIX üçün removeDir bir typo Sabit.
  • compiler indi modul fayl etibarlı tanımlayıcıları var ki yoxlayır.
  • dynlib pragma üçün boş nümunələri artıq mümkündür.
  • os.parseCmdLine ağ arxada səhv nəticələr döndü.
  • artıq code generator qəza deyil (və adlı sahələri olmadan eyni tuple istifadə edərək,) ardıcıl tuple istifadə.

  • Dinamik lib ərzində proc yüklənməsi uğursuz zaman
  • A yaxşı hata beledir təmin edilir.
  • Əlavələr:

  • Açıq Diziler üçün
  • Əlavə system.contains.
  • PEG modulu indi axtarış loop operator @ dəstəkləyir.
  • Grammar / parser: SAD | IND bracket bağlanması hər cür əvvəl icazə verilir. Bu daha çevik mənbə kodu formating üçün imkan verir.
  • compiler indi bind çərçivəsində rəmzi axtarış üçün bir bind masa istifadə edir. (Ətraflı məlumat üçün manual.html # şablonları baxın.)
  • Sil & quot; & quot; & quot; uzun comment & quot; & quot; & quot; İndi üz optimize edilmişdir.
  • Yeni --floatChecks: on | off açarları və üzən point əməliyyatları daha ayıklama üçün Pragmas.
  • (manual.html # pre-müəyyən-point-növ üzən ətraflı məlumat üçün. Bax)
  • manual təkmilləşdirilmişdir. (Philippe Lhoste üçün çox təşəkkür edirik!)

  • Geri uyğunluğu təsir
  • Bu dəyişiklikləri:
  • compiler heç bir fayl dəyişib, hətta artıq birləşdirən addım keçmək deyil.
  • os.splitFile (& quot; Xyz & quot;) İndi (və quot; & quot ;, & quot; Xyz & quot ;, & quot; & quot;) qaytarır əvəzinə (olarak edilməsi; & quot ;, & quot; & quot ;, & quot; Xyz & quot; ). Bir nöqtə ilə başlayan fayl fərqli idarə olunur.
  • strutils.split (s: string, SEPs: set [char]) heç artıq boş string verir. Bu davranış yəqin ki, ağ parçalanması üçün daha uyğun.
  • compiler indi --version command line keçid sonra dayanır.
  • parser enum miras silindi dəstək; enum miras halda sənədləşdirilmiş heç vaxt.
  • system.E_base bir msg sahəsində yerinə cstring, indi növü simli var. Bu yaddaş təhlükəsizlik yaxşılaşdırır.

versiya 0.8.2 yeni nədir:

  • Bugfixes:
  • keçən --hint [X] off və ya --warning [X]. Compiler üçün command line dəlilləri indi işləyir off

  • Şablonları üçün
  • Default parametrləri artıq işləyir.

  • System.copy da
  • Sabit təhlükəsizlik problemi.
  • bir başqa hissəsi olmadan String halda yanlış kodu yaradılan.
  • osproc modulu üçün müxtəlif düzeltmelerini; İndi Windows üzərində işləyir.
  • Əlavələr:
  • tətbiq multi-üsulları.
  • compiler artıq mövcuddur prosessorları sayı algılar və eyni zamanda C compiler həyata keçirir. Bu --parallel_build düzəlişlər edilə bilər. Number_of_processors command line keçid
  • dirək modulu vasitəsilə uyğun PEG-based model.
  • Added system.definedInScope.
  • Added system.accumulateResult.
  • Added os.walkDirRec.
  • Əlavə osproc.countProcessors.
  • Added osproc.execProcesses.
  • konfiqurasiya sistemi $ cc.options.linker dəstəkləyir.

  • Qrammatika / parser
  • birləşmiş expr və typeDesc. Bu lambda olmadan anonim procs üçün imkan verir
  • Bir çox scripts bir QS üçün heç bir ehtiyac yoxdur: yeni --gc: none command line keçid yürütülebilir olan GC istisna üçün istifadə edilə bilər
  • .
    Geri Compability təsir
  • Bu dəyişiklikləri:

  • Bir obyekt discriminant ünvanı alaraq indi etibarsız
  • edir.
  • bir proc var bir proc keçən yalnız procvar və ya zəng Konvensiyanın! = Nimcall ilə qeyd procs üçün icazə verilir. İndi bu yalnız bir xəbərdarlıq səbəb olur, lakin bu tezliklə bir səhv çevriləcək.
  • sistem. & Indi seq parametrləri əvəzinə openArray almaq system.Add.
  • strutils.findSubStr və strutils.findChars silindi. 3 versiyaları üçün deprecated edilmişdir.
  • unicode modulu TRune üçün ayrı bir növü istifadə edir.
  • Deprecated strutils.toString: əvəzinə $ istifadə
  • .
  • Deprecated os.splitPath. Istifadə os.splitPath əvəzinə tuple qaytarır
  • Deprecated os.extractDir. Əvəzinə splitFile (yol) .dir istifadə
  • Deprecated os.splitFilename əvəzinə splitFile istifadə
  • .
  • Deprecated os.extractFileExt əvəzinə splitFile istifadə
  • .
  • Deprecated os.extractFileTrunk əvəzinə splitFile istifadə
  • .
  • Deprecated os.appendFileExt əvəzinə os.addFileExt istifadə
  • .
  • Deprecated os.executeShellCommand əvəzinə os.execShellCmd istifadə
  • .
  • Deprecated os.iterOverEnvironment. Istifadə os.envPairs əvəzinə
  • Deprecated parseopt.init: əvəzinə parseopt.initOptParser istifadə
  • .
  • Deprecated parseopt.getRestOfCommandLine əvəzinə parseopt.cmdLineRest istifadə
  • .
  • Deprecated os.pcDirectory əvəzinə os.pcDir istifadə
  • .
  • Deprecated os.pcLinkToDirectory əvəzinə os.pcLinkToDir istifadə
  • .
  • Deprecated osproc.executeProcess əvəzinə osproc.execProcess istifadə
  • .
  • Deprecated osproc.executeCommand əvəzinə osproc.execCmd istifadə
  • .

versiya 0.8.0 yeni nədir:

  • Bugfixes:
  • compiler istifadə olunmamış yüklənmir rəmzləri hesabat səbəb kiçik bir səhv Sabit
  • həddindən artıq kiçik bir səhv dair simvolu sabit
  • sabit bir typo: bu & quot; birmənalı & quot ;, deyil & quot; ambigious & quot; ; -)
  • compiler artıq recursive faylları daxil algılar
  • system.card yenidən işləməlidir
  • set [char] və array [char, T] üçün maddələr artıq işləməlidir
  • Əlavələr:
  • icra ümumi növləri və ümumi routines iki faza simvolu axtarış
  • şablon parametrləri artıq real növ ola bilər
  • ümumiləşdirilmiş xam string literator həyata: Aciklama & quot; abc & quot; bir Aciklama üçün qısa yoldur (r & quot; abc & quot;)

  • Procs ayrılır qətnamə Iterators həddindən artıq olan
  • ; iterators indi procs eyni adı + imza ola bilər

  • Şablonları
  • simvolu axtarış yeni bind söz təsir edə bilər
  • compiler İndi digər tərtib dillərdə yaxşı link qarşılıqlı üçün --no_main keçid qəbul
  • var bölmələr açıldığı həyata tuple
  • code generator radio default: __assume (0); Visual C ++ (optimallaşdırılması üçün)

  • Bir proc yan təsirləri var
  • compiler indi yoxlayır; heç bir yan təsiri var elan procs rədd compiler bu
  • yoxlamaq mümkün olmadıqda,
  • format operator strutils.% Artıq avtomatik dəlil hesablanması
  • üçün $ # dəstəkləyir
  • həyata strutils.join

  • Geri Compability təsir
  • Bu dəyişiklikləri:
  • Iki faza simvolu Sistemi ümumi routines həyata keçirilir
  • bind indi qorunur söz; istisna artıq heç qorunur söz
  • mücərrəd növləri fərqli növləri adını edilmişdir; Beləliklə, fərqli qorunur söz indi; mücərrəd artıq heç qorunur söz
  • system.openFile deprecated: istifadə əvəzinə system.open
  • system.closeFile deprecated: istifadə system.close əvəzinə
  • strutils.replaceStr deprecated əvəzinə istifadə strutils.replace
  • strutils.deleteStr deprecated: istifadə strutils.delete əvəzinə
  • strutils.splitSeq deprecated əvəzinə istifadə strutils.split
  • deprecated strutils.splitLinesSeq: istifadə strutils.splitLines əvəzinə
  • strutils.parseFloat artıq əlavə start parametri qəbul etmir
  • Documentation:
  • manual təkmilləşdirilmişdir

versiya 0.7.6 yeni nədir:

  • Bugfixes:
  • Windows Vista quraşdırılması artıq qutusu həyata işləyə bilər; cəhd edin!

  • Recursive modulları & quot;
  • & quot saxlanılır bir səhv Sabit; iş Məsələn
  • indi proseduru zəng adlı və adsız parametrləri qarışdırma çalışır
  • prefiks 0C ilə octal nömrələr indi düzgün dəstəklənir
  • siyahıyaalmalarının artıq mənfi dəyərləri ilə başlaya bilər

  • String ayrıştırılan sayı sonra bitmir əgər
  • parseInt, ParseBiggestInt indi istisna atmaq
  • compiler indi düzgün üst səviyyə hesabatlarının emal
  • yaradılan nimcache directory heç bir çizgi
  • başa
  • CreateDir indi UNIX altında qlobal dizinler üçün çalışır (& quot; / somepath / burada & quot;)

  • ./& Quot;
  • compiler artıq aparıcı & quot ilə yürütülebilir icra edir; UNIX altında
  • compiler indi proseduru göstəricilər daimi Diziler dəstəkləyir
  • halda hesabatlarında elif indi işləyir
  • açıq array parametri istifadə iterators artıq iş
  • Bəzi kontekstlərdə $ myEnum iş olmadığı bir səhv Sabit

versiyası 0.7.4-ci Yeni nə:

  • Windows quraşdırma indi işləməlidir kataloq ehtiva edir
      əgər boşluq
    • sənədlərin generator indi yalnız göstərir sənədlərin comments
    • `` `` operatorları üçün icazə verilir dərslik deyir kimi
    • nadir hallarda, index check zəruri olardı, baxmayaraq ki, üz optimize edilmişdir
    • tuple növləri üçün bir neçə hata düzeltmelerini
    • user UTF-8 üçün `` unicode`` modul əlavə
    • `` system`` modul HOSTOS və hostCPU magics əlavə
    • system.echo artıq qəbul çox arqumentlər
    • optimallaşdırılması əlavə etdi: Iterators bir inlining artıq əhəmiyyətli dərəcədə daha yaxşı kod hazırlayır bəzi hallarda
    • əlavə bütün proqram ölü kodu aradan qaldırılması
    • sehrli `` `operator artıq almalarının üçün çalışır

    • Const`` bölmələr `` in
    • tərtib etmiş vaxt qiymətləndirilməsi edilir

    • `` In`` indi contains`` `` tərcümə bir şablon edir: contains`` `` üçün in_Operator`` `` adını

    • Üçün
    • dəyişib `` strutils.quoteIfSpaceExists`` `` strutils.quoteIfContainsWhite``
    • parser artıq çox daha picky itkin düşmüş vergülləri, və s. Bu çox kodu təsir varsa, olduqca printer vasitəsilə kodu çalıştırmak üçün cəhd edir.
    • `` macros`` API `` system`` modul artıq hissəsi, indi `` macros`` modulu
    • idxal üçün bu API istifadə edir
    • bir tutorial əlavə

    versiya 0.7.2 yeni nədir:

    Bu bugfix azad

    • edir. Bu, ən mühüm fix Nəmrud indi AMD64 (x86_64) prosessorları yenidən işləyir ki.
    • Yeni funksiyalar həyata keçirilmişdir.

    nədir versiya 0.7.0-ci Yeni

    • müxtəlif hata düzeltmelerini, çox onları burada sadalamaq
    • UNİX-based sistemi üçün quraşdırma Python asılı deyil artıq
    • `` koch.py`` script indi
    • (1.5.2 daxil olmaqla) older Python versiyasını ilə işləyir
    • dəyişib tam əməliyyatları və dönüşüm qaydaları
    • GC_ref`` və `` GC_unref`` procs
    • `` əlavə
    • ardıcıllığı indi `` @ `` operatoru ilə inşa etmək lazımdır. Bu az ambiguities gətirib çıxarır.
    • compiler indi az yaddaş istifadə edir və çox daha sürətli
    • GC indi çox daha sürətli
    • Yeni birləşdirilməsi: zlib, SDL, Xlib, OpenGL, ODBC, Lua
    • yaradılan C kodu GCC ilə optimize çox daha sürətli
    • Yeni kitabxana: çaylar, zipfiles
    • Nəmrud compiler FreeBSD üçün idxal edilmişdir: bu lazım olan digər BSD nin çox
    • işləmək

    tələblər

    • Python

  • Oxşar proqram

    Cython
    Cython

    27 Sep 15

    SMOP
    SMOP

    11 May 15

    Chicken
    Chicken

    17 Jul 15

    Şərh Nimrod

    Şərhlər tapılmadı
    Şərh əlavə
    Images yandırın!