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.
- 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.
- 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 .
- İndi modul idxal sıfır istifadə edə bilərsiniz.
Cəmi
Geri uyğunluğu təsir
Siz modulu idxal etmək istəyirəm, lakin modul hər simvolu tam ixtisaslı giriş həyata keçirmək istəyirsinizsə,
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:
- Pragmas [X] işarə artıq iş off .
- Ə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ə.
- A yaxşı hata beledir təmin edilir.
- Əlavələr:
- Ə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!)
- 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.
Off və xəbərdarlıq [X]:
Iterators üçün
Dinamik lib ərzində proc yüklənməsi uğursuz zaman
Açıq Diziler üçün
Geri uyğunluğu təsir
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
- Default parametrləri artıq işləyir.
- 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.
- 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 .
- Bu dəyişiklikləri:
- 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ə .
Şablonları üçün
System.copy da
Qrammatika / parser
Geri Compability təsir
Bir obyekt discriminant ünvanı alaraq indi etibarsız
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;)
- ; iterators indi procs eyni adı + imza ola bilər
- 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)
- 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
- 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
Procs ayrılır qətnamə Iterators həddindən artıq olan
Şablonları
Bir proc yan təsirləri var
Geri Compability təsir
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!
- & 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
- 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;)
- 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
Recursive modulları & quot;
String ayrıştırılan sayı sonra bitmir əgər
./& Quot;
versiyası 0.7.4-ci Yeni nə:
- əgər boşluq
Const`` bölmələr `` in
`` In`` indi contains`` `` tərcümə bir şablon edir: contains`` `` üçün in_Operator`` `` adını
Üçün
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
Şərhlər tapılmadı