Nimrod

Yazılım ekran görüntüsü:
Nimrod
Yazılım detaylar:
Versiyon: 0.9.2
Qayıt: 20 Feb 15
Geliştirici: Andreas Rumpf
Lisans: Ücretsiz
Popülerlik: 16

Rating: nan/5 (Total Votes: 0)

Verimli ve basit kalarak

Nemrut açık kaynak kodlu, usul, nesne odaklı, jenerik ve fonksiyonel programlama stillerini desteklemek için tasarlanmış ücretsiz, statik olarak yazılan, zorunlu programlama dilidir.
Nemrut etki belirli dilleri oluşturmak için kullanılabilecek güçlü bir makro sistemi sağlayan bir şartname parçası olarak soyut sözdizimi ağacı (AST), yapabiliyor. Bir özellikler Lisp miras.
Yazılım yerli kod üretimi, çöp toplama, sıfır havai yineleyicinızı, kullanıcı-defineable operatörleri, üst düzey veri türlerini, zaman değerlendirme, ileri Compability, GTK2, Windows API, POSIX API bağları, bir plugable ayrıştırıcı sistemi, bir dokümantasyon jeneratör derlemek özellikleri ve Pascal Nemrut dönüştürme programı.
Nemrut Linux, BSD, Mac OS & nbsp çalışabileceği anlamına gelir ki, taşınabilir, X & nbsp; ve Windows işletim sistemleri

Bu sürümde Yeni nedir:.

  • Bugfixes:
  • Eski GC doğru döngüleri toplanan asla. Sabit ancak performans gerilemesine neden olabilir. Ancak GC_disableMarkAndSweep ile döngü toplayıcısı devre dışı bırakabilirsiniz ve uygun bir zamanda ya da hiç de açıkça çalıştırın. Eğer --gc ile aktif hale getirebilirsiniz yeni bir GC da vardır:. Bu sorun var ama genel olarak daha yavaş ve hiçbir gerçek zamanlı garanti sahip değildir markAndSweep
  • noktası türlerini kayan için dökme şimdi kılavuzda belirtilen bitcast yapar. Bu yanlışlıkla farklı kayan nokta değerleri dönüştürmek için cast kullanan kodu kırar.
  • SCGI modülün performansı artık çok sayıda eşzamanlı istekleri üzerine bloke edecek, büyük ölçüde geliştirilmiştir.

  • Toplam
  • 70 üzerinde github sorunları sabit ve 60 çekme istekleri üzerine birleşti.
  • Kütüphane İlaveler:
  • hızlı (veya daha yavaş) varsayılan GC daha olabilir, yeni bir deneysel işareti ve süpürme GC vardır. --gc Ile Enable:. MarkAndSweep
  • Eklendi system.onRaise bir durum sistemi desteklemek için.
  • Eklenen system.locals bir proc yerliler erişim sağlar.
  • AST yarı-alıntı eklendi macros.quote.
  • Eklendi system.unsafeNew hacky değişken uzunluk nesneleri desteklemek için.
  • system.fields ve system.fieldPairs destek nesne çok; onlar sadece destek dizilerini için kullanılan.
  • Geçerli kaynak dosyasının tam dosya sistemi yolu dönen Eklendi system.CurrentSourcePath.
  • makro modülü artık soyut sözdizimi ağaçları bina için yararlı yardımcıları sürü içerir.

  • Geriye dönük uyumluluk etkileyen
  • Değişiklikleri:
  • paylaşılan bir anahtar kelime artık.
  • Onaylanmamış sockets.recvLine ve asyncio.recvLine yerine taleb ekledi.
  • yolu girinti önemli ölçüde değişti çözümleyici ele alınır. Ancak, bu (varsa) çok az gerçek dünya kodunu etkiler.
  • ifadesi / deyimi birleşmesi uygulamaya konmuştur. Yine bu sadece kenar durumlarda ve bilinen hiçbir gerçek dünya kodunu etkiler.
  • SCGI modülünün uyumsuz arayüzü değiştirildi.
  • WideStrings artık çöp diğer dize türleri gibi toplanır.
  • Derleyici İlaveler:
  • Doc2 komutu artık bütün proje için çıktı oluşturmaz. Bu davranışını etkinleştirmek için yeni --project anahtarını kullanın.
  • derleyici artık gölgeli yerel değişkenler hakkında uyarabilir. Ancak, bu açıkça [ShadowIdent] --warning üzerinden açık olması gerekiyor:. Üzerine
  • derleyici artık bir itme pragma hemen hemen her pragma destekler.
  • Genel dönüştürücüler uygulanmıştır.
  • ölçüde ileri beyanlar ihtiyacını ortadan kaldıran özel bir derleme modu sağlayan bir çok deneysel noforward pragma eklendi.
  • Dil İlaveler:
  • durumda ifadeler artık destekleniyor.
  • Masa Kurucular artık case ifadesi daha yakından sözdizimi taklit.
  • Nemrut şimdi vücudunda bir proc dönüş türünü anlaması.
  • jenerik kuralları bağlayıcı sembolü etkileyecek bir mixin beyanı eklendi.
  • İstisna izleme eklendi ve Doc2 komutu sizin için mümkün istisnalar annotates olmuştur.
  • Kullanıcı tanımlı etkiler (& quot; etiketleri & quot;). Izleme eklendi ve Doc2 komutu sizin için mümkün etiketleri annotates
  • Çeşitleri yeni sözdizimi değil nil açıkça bu nil devlet izin verilmez açıklamalı olabilir. Ancak şu anda derleyici bu kontrol hiçbir gelişmiş statik gerçekleştirir; şimdi bu dokümantasyon amaçlı sadece bu.
  • Bir ihracat beyanı dili eklendi: istemci modülleri açıkça modülün bağımlılıkları almak zorunda değilsiniz böylece sembol yönlendirme için kullanılabilir
  • .
  • ASTS dayalı Aşırı yükleme uygulamaya konmuştur.
  • Jenerik artık çok yöntemler için desteklenir.
  • Nesneler bir nesne yapıcı ifadesi yoluyla başlatılabilir.
  • Yeni bir sözdizimsel yapı vardır (;) birleştirici ifadeler ve deyimleri
  • .
    Eğer modül almak istiyorum ama modül her sembole tam erişim zorlamak istiyorsanız
  • Şimdi modül ithalat nil gelen kullanabilirsiniz.

sürüm 0.8.14 yeni nedir:.

  • geçen mesajı ile ilgili ciddi bir bellek bozulması Sabit
  • ciddi bir hata düzeltildi genel proc farklı instantiations ilgili.
  • Yanlış EIO istisna bir satır ile bitmiyor metin dosyaları için dosya sonu için yükseltilmiş bir yeni tanıtılan hata düzeltildi.
  • Bugfix c2nim, c2pas: --out seçenek düzgün hiç çalışmamış
  • .
  • Bugfix:. Jenerik procs yönlendirme hiç çalışmamış
  • makrolar için bazı daha onarımları ve derleme zamanı değerlendirme.
  • GC artık agresif C optimize tarafından sokulabilir yığını hesap iç işaretçileri dikkate alır.
  • Nemrut doğal ayırıcı / GC şimdi PowerPC çalışır.
  • diğer onarımları sürü:. Hepsini listelemek için çok fazla

sürüm 0.8.6 yeni nedir:

  • Bugfixes:

  • Off ve uyarı [X]:
  • pragmas [X] ipucu şimdi işe kapalı
  • .
    Yineleyiciler için
  • Yöntem çağrısı sözdizimi (lines.split () for x) tekrar çalışır.
  • sonsuz özyinelemeye neden POSIX RemoveDir bir yazım hatası düzeltildi.
  • derleyici artık modül dosya adları geçerli tanımlayıcıları olup olmadığını kontrol eder.
  • dynlib pragma için boş desenler artık mümkün.
  • os.parseCmdLine boşluk firar için yanlış sonuç vermedi.
  • artık kod üreteci çökmez (ve adlandırılmış alanlar olmadan aynı başlığın kullanarak) mantıksız başlığın kullanımı.

  • Dinamik bir lib içinde proc yükleme başarısız olduğunda
  • Daha iyi bir hata mesajı verilir.
  • İlaveler:

  • Açık diziler için
  • Eklenen system.contains.
  • PEG modülü şimdi arama döngü operatör @ destekler.
  • Gramer / ayrıştırıcı: SAD | IND dirsek kapanış her türlü önce izin verilir. Bu daha esnek kaynak kodu biçimlendirme sağlar.
  • derleyici artık bir bağlama kapsamında sembol arama için bir bağlama tablosunu kullanır. (Detaylar için manual.html # şablonları bakın.)
  • ıskarta & quot; & quot; & quot; benim uzun comment & quot; & quot; & quot; şimdi uzağa optimize edilmiştir.
  • Yeni --floatChecks: on | off anahtarları ve kayan nokta işlemleri daha iyi hata ayıklama için pragmas.
  • (manual.html # önceden tanımlanmış-nokta-türleri kayan detaylar için bakınız.)
  • manuel geliştirilmiştir. (Philippe Lhoste için çok teşekkürler!)

  • Geriye dönük uyumluluk etkileyen
  • Değişiklikleri:
  • derleyici hiçbir dosya değişmiş olsa bile artık bağlama adımı atlayın değildir.
  • os.splitFile (& quot; .xyz & quot;) şimdi (& quot; & quot ;, & quot; .xyz & quot ;, & quot; & quot;) döndürür yerine (& quot; & quot ;, & quot; & quot ;, & quot; .xyz & quot; ). Bir nokta ile başlayan dosya isimleri farklı ele alınır.
  • strutils.split (s: string, seps: set [karakter]) asla artık boş dize verir. Bu davranış, muhtemelen boşluk bölme için daha uygundur.
  • derleyici artık version komut satırı anahtarı sonra durur.
  • ayrıştırıcı numaralama miras Kaldırılan destek; enum miras zaten belgelenmiş olmamıştı.
  • system.E_base ve msg alanı yerine cstring olan, şimdi tipi dize vardır. Bu bellek güvenliğini artırır.

sürüm 0.8.2 yeni nedir:

  • Bugfixes:
  • Passing --hint [X]: kapalı veya --warning [X]:. Derleyici komut satırı argümanları artık çalışır gibi kapalı

  • Şablonları
  • Varsayılan parametreleri artık işe.

  • System.copy
  • Sabit güvenlik sorunu.
  • Bir başka parçası olmadan Dize durum yanlış kod oluşturulur.
  • osproc modülü için çeşitli düzeltmeler; o artık Windows üzerinde çalışır.
  • İlaveler:
  • Uygulanan çoklu yöntemler.
  • derleyici artık mevcut işlemcilerin sayısını algılar ve aynı zamanda C derleyicisi yürütür. Bu --parallel_build ayarlanabilir:. Number_of_processors komut satırı anahtarı
  • mandal modülü ile eşleşen PEG-tabanlı desen.
  • Eklendi system.definedInScope.
  • Eklendi system.accumulateResult.
  • Eklendi os.walkDirRec.
  • Eklenen osproc.countProcessors.
  • Eklendi osproc.execProcesses.
  • yapılandırma sistemi şimdi $ cc.options.linker destekler.

  • Dilbilgisi / çözümleyici
  • Birleştirilmiş İfade ve typeDesc:. Bu lambda olmadan anonim procs sağlayacak
  • Birçok komut bir GC gerek var: Yeni --gc: yok komut satırı anahtarı yürütülebilir GC dışlamak için kullanılır
  • .
    Geriye Compability etkileyen
  • Değişiklikleri:

  • Bir nesne diskriminant adresini alarak artık geçersiz
  • olduğunu.
  • proc var bir proc geçirilmesi sadece procvar veya çağırma kuralı! = Nimcall ile işaretlenmiş procs için izin verilir. Şimdilik bu sadece bir uyarı neden olur, ancak bu kısa sürede bir hata dönüşecektir.
  • sistem. Için & şimdi devamında parametrelerinin yerine openArray almak system.add.
  • strutils.findSubStr ve strutils.findChars kaldırıldı. Onlar 3 sürümleri için önerilmemektedir edilmiştir.
  • unicode modülü TRune için ayrı bir türünü kullanır.
  • Onaylanmamış strutils.toString: $ yerine kullanın
  • .
  • Onaylanmamış os.splitPath:. Kullanımının os.splitPath yerine bir demet döndürür
  • Onaylanmamış os.extractDir:. Bunun yerine Splitfile (yol) .dir kullanın
  • Onaylanmamış os.splitFilename: yerine Splitfile kullanın
  • .
  • Onaylanmamış os.extractFileExt: yerine Splitfile kullanın
  • .
  • Onaylanmamış os.extractFileTrunk: yerine Splitfile kullanın
  • .
  • Onaylanmamış os.appendFileExt: yerine os.addFileExt kullanın
  • .
  • Onaylanmamış os.executeShellCommand: yerine os.execShellCmd kullanın
  • .
  • Onaylanmamış os.iterOverEnvironment:. Os.envPairs kullanım yerine
  • onaylanmamaktadır parseopt.init: yerine parseopt.initOptParser kullanın
  • .
  • Onaylanmamış parseopt.getRestOfCommandLine: yerine parseopt.cmdLineRest kullanın
  • .
  • Onaylanmamış os.pcDirectory: yerine os.pcDir kullanın
  • .
  • Onaylanmamış os.pcLinkToDirectory: yerine os.pcLinkToDir kullanın
  • .
  • Onaylanmamış osproc.executeProcess: yerine osproc.execProcess kullanın
  • .
  • Onaylanmamış osproc.executeCommand: yerine osproc.execCmd kullanın
  • .

sürüm 0.8.0 yeni nedir:

  • Bugfixes:
  • derleyici kullanılmayan aşırı sembolleri rapor neden küçük bir hata düzeltildi
  • aşırı yükleme küçük bir hata ile ilgili sembol sabit
  • sabit bir yazım hatası: bu kadar & quot; & quot ;, belirsiz değil & quot; kuşkulu & quot; ; -)
  • derleyici şimdi özyinelemeli dosyaları içerir algılar
  • system.card tekrar çalışması gerekir
  • seti [karakter] ve dizi [Char, T] için öğeleri artık çalışması gerekir
  • İlaveler:
  • uygulanan genel türleri ve genel rutinleri iki fazlı sembol arama
  • şablon parametreleri artık gerçek tipler olabilir
  • genelleştirilmiş ham dize hazır uygulamaya: ident & quot; abc & quot; Bir ident için kısayol (r & quot; abc & quot;)

  • Procs ayrılır çözünürlük yineleyiciler aşırı yükleme
  • ; yineleyiciler şimdi procs aynı adı + imza olabilir

  • Şablonları
  • sembolü arama, yeni bağlama anahtar kelime etkilenebilir
  • derleyici şimdi diğer derlenmiş diller ile daha iyi bağlantı birlikte çalışabilirlik için bir --no_main anahtarı kabul
  • var bölümlerde açma uygulanan demet
  • kod üreteci yayar varsayılan: __assume (0); Visual C ++ için (optimizasyon için)

  • Bir proc yan etkileri varsa
  • derleyici artık kontrol; hiçbir yan etkileri olduğu bildirilen procs reddedilir derleyici bu
  • doğrulamak edemez
  • biçim operatör strutils.% Artık otomatik argüman sayımı
  • için $ # destekler
  • uygulanan strutils.join

  • Geriye Compability etkileyen
  • Değişiklikleri:
  • İki fazlı sembol arama jenerik rutinleri yapılır
  • bağlama artık ayrılmış bir sözcüktür; istisna artık hiçbir ayrılmış kelime
  • soyut türleri farklı türleri adlandırılmış; Böylece farklı bir ayrılmış kelime artık; soyut artık hiçbir ayrılmış kelime
  • system.openFile önerilmiyor: kullanım yerine system.open
  • system.closeFile kalktı: kullanım system.close yerine
  • strutils.replaceStr kalktı: yerine kullanılması strutils.replace
  • strutils.deleteStr kalktı: kullanım strutils.delete yerine
  • strutils.splitSeq kalktı: yerine kullanılması strutils.split
  • önerilmiyor strutils.splitLinesSeq: kullanım strutils.splitLines yerine
  • strutils.parseFloat artık ek bir başlangıç ​​parametresi kabul etmez
  • Dokümantasyon:
  • manuel geliştirildi

sürüm 0.7.6 yeni nedir:

  • Bugfixes:
  • Windows Vista yükleme şimdi kutunun dışında çalışabilir; lütfen deneyin!

  • Özyinelemeli modülleri & quot;
  • & quot bir hata düzeltildi; çalışma örnek
  • Şimdi bir prosedür çağrısı adlı ve adsız parametreleri karıştırma işleri
  • öneki 0C ile sekizlik numaraları artık düzgün desteklenmektedir
  • numaralandırma artık negatif değerler ile başlayabilir

  • Dize çözümlü sayı sonra bitmiyor, eğer
  • parseInt, ParseBiggestInt şimdi bir özel durum
  • derleyici şimdi doğru üst düzey ifadeleri kolları
  • oluşturulan nimcache dizin asla bir eğik çizgi
  • biter
  • CreateDir şimdi UNIX altında küresel dizinleri için çalışıyor (& quot; / somepath / burada & quot;)

  • ./& Quot;
  • derleyici artık bir lider & quot ile yürütülebilir yürütür; UNIX altında
  • derleyici artık prosedür işaretçileri sürekli dizilerini destekler
  • vaka tablolarında elif şimdi çalışıyor
  • açık dizi parametresini kullanarak yineleyiciler artık işe
  • Bazı bağlamlarda $ MyEnum işe yaramadı nerede hata düzeltildi

sürüm 0.7.4 Yeni nedir:

  • Windows üzerinde kurulum şimdi çalışması gerektiğini dizin içeren
      durumunda alanlarda
    • dökümantasyon jeneratörü artık sadece işler dokümantasyon yorumlar
    • `` `` operatörler için izin manuel dediği gibi
    • nadir durumlarda, dizin onay gerekli olurdu olsa bile, uzak optimize edilmiştir
    • demet tipleri için çeşitli hata düzeltmeleri
    • taşıma UTF-8 için bir `` unicode`` modülü eklendi
    • `` system`` modülüne Hostos ve hostCPU büyülerini ekledi
    • system.echo artık kabul birden fazla argümanlar
    • optimizasyon ekledi: Yineleyicilerin inlining artık önemli ölçüde daha iyi kod üreten bazı durumlarda
    • eklenen tüm program ölü kod eleme
    • sihirli `` `operatör şimdi numaralandırma için çalışıyor

    • Const`` bölümlerde ``
    • derleme gelişmiş zaman değerlendirme yapılır

    • `` In`` şimdi contains`` `` çeviren bir şablon: contains`` `` için in_Operator`` `` adını
    • değişti `` strutils.quoteIfSpaceExists`` `strutils.quoteIfContainsWhite``
    • ayrıştırıcı artık çok daha seçici eksikler virgül, vs bu çok kodunuzu etkilerse, güzel yazıcıdan aracılığıyla kod çalıştırmak için deneyin hakkında.
    • `` macros`` API `` system`` modülün artık bir parçası, şimdi `` macros`` modülü
    • ithal etmek zorunda, bu API kullanmak için
    • öğretici ekledi

    sürüm 0.7.2 yeni nedir:

    Bu bir hata düzeltme sürümü

    • olduğunu. Bu en önemli düzeltme Nemrut şimdi AMD64 (x86_64) işlemciler tekrar çalışır olmasıdır.
    • Yeni özellikler uygulanmıştır.

    nedir sürüm 0.7.0 Yeni:

    • çeşitli hata düzeltmeleri, çok onları burada listelemek için
    • UNIX tabanlı sistemler için kurulum Python bağlı değildir artık
    • `` koch.py`` komut artık
    • (1.5.2 dahil) eski Python sürümleri ile çalışır
    • değişti tamsayı işlemleri ve dönüşümleri kuralları
    • GC_ref`` ve `` GC_unref`` procs
    • `` eklendi
    • dizileri artık `` @ `` operatör ile inşa gerekir. Bu, daha az belirsizliklere yol açar.
    • derleyici artık daha az bellek kullanır ve çok daha hızlı
    • GC şimdi çok daha hızlı
    • Yeni bağları: zlib SDL, Xlib, OpenGL, ODBC, Lua
    • üretilen C kodu GCC ile optimize etmek çok daha hızlı
    • Yeni kütüphaneler: akarsu, zipfiles
    • Nemrut derleyici FreeBSD taşıdık olmuştur: o gereken diğer BSD en çok
    • çalışmak

    Gereksinimler :

    • Python

  • Benzer yazılım

    TinyPie
    TinyPie

    12 May 15

    Scheme2Js
    Scheme2Js

    11 May 15

    GNU Octave
    GNU Octave

    22 Jun 18

    Yorumlar Nimrod

    Yorum Bulunamadı
    Yorum eklemek
    Görüntülerde açın!