Agena , günlük kullanım için tasarlanmış açık kaynaklı, ücretsiz, çok platformlu ve öğrenmesi kolay bir prosedürel programlama dilidir. Tüm ana akım işletim sistemlerini destekleyen grafiksel, bilimsel, dilsel ve eğitim ortamlarında ve komut dosyası uygulamalarında kullanılabilir.
Çok sayıda akış kontrol olanağı sunar.
Uygulama, o zaman gibi, çok sayıda akış kontrol tesisleri sunmaktadır. elif, diğer koşullar, durum ve başka koşullar, işleçtir, döngüsel olarak, döngüler için, sayılarla ve döngülerle, sayısal döngülerle ve döngülerle, sayısal olarak ve döngülerle, bir atlama ifadesiyle deyimiyle birlikte veri türü doğrulaması.
Numaralandırma ödevleri sağlar
Diğer özelliklerin yanı sıra, keyfi bir hassas matematik kütüphanesi, kişisel ortamınızın kolay yapılandırılması, kullanımı kolay bir paket sistemi, numaralandırma ödevleri, epocs / kapsam anahtar sözcükleri aracılığıyla kapsam kontrolü ve diğer birçok çekici özellikten söz edebiliriz.
Kaputun ve kullanılabilirliğin altında
Kapağın altındaki hızlı bir görünüm, projenin C, BASIC, Lua ve ALGOL 68 programlama dillerinde yazıldığını gösterecek, bu da sözdiziminin bu projelerin sözdizimini andırdığını gösteriyor. Tamamen bir konsol / terminal ortamında çalışır, yani hiçbir grafik kullanıcı arayüzü (GUI) içermez.
Basit bir editörle gönderilir
Agena yazılımının bir komut satırı uygulaması olmasına rağmen, AgenaEdit olarak adlandırılan ve tümleşik bir Agena ortamı ve söz dizimi vurgulama yeteneklerine sahip basit bir editör grafik yazılımı ile birlikte gönderilir. FLTK çapraz platform C ++ GUI araç seti için Bill Spitzak tarafından geliştirilen benzer bir editörden çok etkilenmiştir.
Ahududu Pi üzerinde çalışıyor
Agena'nın grafik yetenekleri GNU / Linux, Solaris, Mac OS X, Microsoft Windows, eComStation - OS / 2 ve DOS işletim sistemlerinde desteklenmektedir. Hem 64-bit hem de 32-bit donanım platformlarında kolayca kullanılabilir ve ARM tabanlı Raspberry Pi bilgisayar kartında başarılı bir şekilde test edilmiştir.
Yeni nedir? bu sürüm:
- yeni Calculus ve İstatistik işlevi
Sürümde yeni: :
- yeni Matematik ve İstatistik işlevi
Sürüm 2.9.4'te yeni olan :
- yeni Hesap ve İstatistik işlevi
2.8.5 sürümündeki yeni :
- yeni Hesap ve İstatistik işlevi
Sürüm 2.8.2'de yeni olan :
- yeni Hesap ve İstatistik işlevi
Sürüm 2.6.1'de yeni olan :
- `stats.chauvenet` artık özel olarak kontrol edebilir 'outlier =' lower'` veya `outlier = 'upper'` seçeneğini sırasıyla geçirerek alt veya üst aykırı değerleri.
- `bags.remove`, segmentasyon hatalarına neden oldu. Bu düzeltildi. Dahası, C'de uygulanan tüm `çantalar 'fonksiyonları dahili olarak değiştirilmiştir.
- `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `ile` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` '' '' '' '' '' 'metametreleri işlenmedi. Bu düzeltildi.
Sürüm 2.5.4’de yeni: :
- `stats.chauvenet`, alt ve üst aykırı değerleri için özel olarak 'outlier =' lower'` veya` outlier = 'upper'` seçeneğinden geçirerek kontrol edebilir.
- `bags.remove`, segmentasyon hatalarına neden oldu. Bu düzeltildi. Dahası, C'de uygulanan tüm `çantalar 'fonksiyonları dahili olarak değiştirilmiştir.
- `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `ile` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` '' '' '' '' '' 'metametreleri işlenmedi. Bu düzeltildi.
Sürüm 2.5.3'te yeni olan :
- `stats.chauvenet` artık için özel olarak kontrol edebilir 'outlier =' lower'` veya `outlier = 'upper'` seçeneğini sırasıyla geçirerek alt veya üst aykırı değerleri.
- `bags.remove`, segmentasyon hatalarına neden oldu. Bu düzeltildi. Dahası, C'de uygulanan tüm `çantalar 'fonksiyonları dahili olarak değiştirilmiştir.
- `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `ile` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` '' '' '' '' '' 'metametreleri işlenmedi. Bu düzeltildi.
Sürüm 2.4.2’de yeni: :
- `stats.chauvenet`, alt ve üst aykırı değerleri için özel olarak 'outlier =' lower'` veya` outlier = 'upper'` seçeneğini seçerek kontrol edebilir.
- `bags.remove`, segmentasyon hatalarına neden oldu. Bu düzeltildi. Dahası, C'de uygulanan tüm `çantalar 'fonksiyonları dahili olarak değiştirilmiştir.
- `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `ile` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` '' '' '' '' '' 'metametreleri işlenmedi. Bu düzeltildi.
Sürüm 2.3.0’da yeni : RC1:
- Sayısal `for` döngüler artık 'downto' anahtar sözcüğünü destekler, böylece zorunlu bir“ by` adım ”boyutu kullanmadan geri sayabilirsiniz. 'Downto' bağlamında, 'by' adım boyutu her zaman pozitif olmalıdır. `downto 'anahtar sözcüğünü kullanırken' başlangıç 've' dur 'değerleri durdurmak zorunludur.
- '__finite', '__entier' ve '__sqrt' metametreleri artık desteklenmemektedir. Bunun yerine, yapılar üzerindeki işlemler için üç yeni metathods eklenmiştir: sendika işlemleri için '__union', kesişmeleri belirlemek için '__intersect' ve farklar için '__minus'. Böylece, 'çanta' paketi şu anda bu üç işlemi de destekliyor.
- Tamsayı bölümü operatörü meta metnini desteklemedi ve bunun yerine float divison (`/` operator) için kullandı. Bu düzeltildi.
- `stats.gini` adlı yeni işlev, Gini katsayısını (in-) eşitliğin bir ölçüsünü belirler.
- `stats.zscore` adlı yeni işlev, bir örneğin z-skorunu (standart skoru) hesaplayan bir işlevi döndürür - örnek, dağılımın ortalamasının üstünde veya altında olan standart sapmaların sayısıdır.
- `statsorted 'varsayılan olarak varsayılan olarak Quicksort yerine Introsort algoritmasını kullanır. Bu durum, olağan durumlarda performanstan ödün vermemekle birlikte, koşulsuz koşullarda (Quicksort'un O (n ^ 2) operasyonlara ihtiyaç duyduğu durumlarda) hesaplama süresini üç kat artırabilir. Aslında, Introsort varsayılan olarak Quicksort'u kullanır ve ardından özyineleme derinliği 2 * log'a (n, 2) ulaşırsa, otomatik olarak Heapsort'a geçer, burada n bir yapıdaki elemanların sayısıdır.
- Bu mantığı, sayıları sıralamak için yalnızca geleneksel özyineleme Quicksort yöntemini kullanan yeni 'quicksort' seçeneğini geçerek geçersiz kılabilirsiniz. Ayrıca, "stats.sorted" şimdi de yeni seçenek 'heapsort' geçilirse Heapsort algoritmasını kullanabilir ve Niklaus Wirth tarafından yeni 'nrquicksort' seçeneğiyle tasarlanan bir özyinelemeli Quicksort algoritmasıdır.
- `stats.meanmed` işlevinin yeni işlevi, bir dağılımın aritmetik ortalamasını ve medyanını veya alternatif olarak ortalama ve medyanın sırasını döndürür, bu değerlerin yaklaşık yüzde 20'si gerektiğinde hesaplama zamanlarını hızlandırır.
- "Boyut" operatörünün hata mesajını iyileştirdi.
Sürüm 2.1.1’de yeni: :
- Yeni işlevler ve yamalar:
- `try / catch`: 'catch` jetonunun hemen ardından isteğe bağlı bir hata değişkeninin açık belirtimi. Herhangi bir hata değişkeni belirtilmemişse, hata mesajı otomatik olarak yerel `lasterror` değişkenine kaydedilir ve` then` anahtar kelimesi dışarıda bırakılmalıdır:
- gt; deneyin
- gt; hata ('oops!')
- gt; yakalamak
- gt; Baskı (LastError)
- gt; YRT
- oops!
- `try / catch` ifadesi bazen prosedürlerde çalışmadı (atanmamış hata değişkeni). Bu düzeltildi.
- Yeni "net.wget" işlevi, HTML sayfalarını Web'den indirir.
- % 10 oranında skycrane.counter "ayarlandı. Yeni üçüncü argüman 'ozawa' dizgesi ise, fonksiyon isteğe bağlı olarak orijinal Kahan toplama algoritması yerine Kahan-Ozawa'yı uygular. İlgili C kaynakları, optimizasyonları da iptal edebilecek derleyici optimizasyonunu önlemek için değiştirildi.
- `argerror` artık hata mesajında alınan bir değerin kullanıcı tanımlı tip adını yazdırır. Bir değerin kullanıcı tanımlı bir türü yoksa, temel türü verilir.
- 'Debug.getinfo` için yeni' bir 'seçeneği, bir prosedürün beklediği argüman sayısını döndürür, Rob Hoelz' LuaPowerPatch sayesinde.
- Dizeler için geliştirilmiş "dizin aralığı dışı" hata iletisi.
- `stats.agn`,` linalg.agn`, library.agn` ve `ansi.agn` dosyalarının hata işlemleriyle ilgili olarak değiştirilmesi.
Sürüm 2.1.0’da yeni: :
- Yeni bir hata işleme türü için yeni `try / catch` ifadesi kullanıma girmiştir. 2008 yılında Lua 5.1 için Hu Qiwei tarafından icat edilmiş ve yazılmıştır.
- Genel olarak, bir istisnanın beklendiği herhangi bir ifade, bir "try" maddesine konabilir. Bir hata, "error" işlevine veya herhangi bir başka ifade, işlev veya ifadeye açık bir çağrı tarafından üretilirse, denetim hemen varsa "catch" yan tümcesine atlar veya try / yrt'in sonuna atlar. `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` ifadesi '' ifadesi verilmediyse ifadesi.
- `koruma / lasterror` hata işleme tesisleri hala ve her zaman desteklenecektir. Yeni kontrol ifadesi de "break", "atlama", "yineleme" ve "return" ifadeleri ile kusursuz şekilde çalışıyor.
- Yeni "yineleme" deyimi, "for / to" ile "for / in" döngüsünün başlangıcından itibaren geçerli yinelemesini yeniden başlatır.
- Yeni "recip" operatörü, x sayısının tersini döndürür. 1 / x ifadesine eşdeğer, ancak daha hızlı.
- Yeni `stats.ema` işlevi, bir dağıtımın üstel hareketli ortalamasını hesaplar. Yeni işlev `stats.gema`, bir dağıtımın ilgili üstel hareketli ortalamasını döndüren bir yineleyici işlevi döndürür.
- `% *,`% + ve `%%, doğru bir sonuç yerine` undefined` döndürdü. Bu düzeltildi.
- "net.survey" dosyasında bir hata mesajı düzeltildi.
- Çiftlerin ve dizelerin aralık dışı dizinlemesi için geliştirilmiş hata iletileri.
- ANSI, Solaris ve DOS sürümlerinde "int" operatörü ayarlandı.
- Yeni C API işlevi agn_arraytoseq, sayısal bir diziyi bir sıraya dönüştürür ve bu yeni diziyi yığının üstüne iter.
- Elkitabı güncellendi.
Sağ işleneni sıfıra girmiş olsaydı,
2.1.0 RC sürümünde yeni: :
- Yeni 'yineleme' ifadesi, baştan 'için / için' ve 'for / in' döngüsünün geçerli yinelemesini yeniden başlatır. Örnek:
- gt; flag: = true; & Gt; j için [10, 11, 12] do & gt; baskı ('önce', j, bayrak); & Gt; bayrak ve j = 11 ise o zaman & gt; açık bayrak; & Gt; yazdır ('- & gt;', j, flag, 'jump back') & gt; redo & gt; fi; & Gt; baskı ('sonra', j, bayrak) & gt; j & gt; 12; 10 true önce 10 true önce 11 true -> true 11 yanlış 12 yanlış sonra 11 yanlış önce 11 yanlış önce geri 11 yanlış 12 sonra yanlış
- Yeni "recip" operatörü, x sayısının tersini döndürür. 1 / x ifadesine eşdeğer, ancak daha hızlı.
- Yeni `stats.ema` işlevi, bir dağıtımın üstel hareketli ortalamasını hesaplar. Yeni işlev `stats.gema`, bir dağılımın ilgili üstel hareketli ortalamasını döndüren bir yineleyici işlevini döndürür. Kullanımı için lütfen src / stats.c kaynak dosyasına bakın, C işlevleri * ema.
- `% *,`% + ve `%%, doğru bir sonuç yerine` undefined` döndürdü. Bu düzeltildi.
- "net.survey" dosyasında bir hata mesajı düzeltildi.
- Yeni C API işlevi agn_arraytoseq, sayısal bir diziyi bir sıraya dönüştürür ve bu yeni diziyi yığının üstüne iter.
Sağ işleneni sıfıra girmiş olsaydı,
2.0.0 sürümünde yeni :
- Yeni ifadeler ve işlevler:
- Agena 2.0, "import", "alias", "until" ve "initial" kelimelerinin artık anahtar kelimeler olduğu ve artık değişken olarak kullanılamayacağı dışında Agena 1.12'ye göre aşağı uyumludur. Şu anda, tüm yeni özellikleri ayrıntılı olarak açıklayan güncellenmiş bir Primer ve Referans dahil olmak üzere, Solaris, Debian (x86, PowerPC, Raspberry Pi), Windows, Mac ve DOS yükleyicileri 2.0 için kullanılabilir.
- Yeni döngü varyantları 'için / kadar' ve 'için / kadar' geçerli yinelemenin sonunda bir koşulu kontrol eder ve bir sonraki iterasyonu başlatır veya döngüyü bırakır. Bu, hem / to` için hem de for / in `döngülerinde çalışır. Aslında, her iki değişken de, verilen koşul kontrol edilene kadar en az bir kez bir döngü yürütür.
- Örnekler:
- gt; 5'e kadar yapacağım
- gt; Baskı, (i)
- gt; i & lt; 3.
- gt; [1, 2, 3, 4, 5] içinde ben yaparım
- gt; Baskı, (i)
- gt; i & gt; = 3
- Belirli bir koşul yerine getirilene kadar yeni "do / till" döngüsü yinelenir:
- gt; c: = 0;
- gt; do
- gt; inc c;
- gt; Baskı (c)
- gt; c & gt; = 3
- Sayısal `for` döngülerinde, 'to' yan tümcesi artık verilemez. Bunun yerine, 'to' deyiminden çıkarken, döngü, platformunuzda C HUGE_VAL'de temsil edilebilecek en büyük sayıya ulaşana kadar yinelenir:
- gt; Yaptığım için
- gt; Baskı, (i)
- gt; od
- Koşullardan en az birinin doğru olması durumunda, "if" ve "case" ifadelerindeki yeni "initial" cümlesi bir yığın yürütür. Örnekler:
- gt; flag: = false;
- gt; 1 = 0 ise
- gt; Baskı (0)
- gt; elif 1 = 1 sonra
- gt; Baskı (1)
- gt; onSuccess
- gt; bayrak: = true
- gt; Başka
- gt; Baskı (-1)
- gt; fi
- gt; Baskı (bayrak);
- true
- gt; flag: = false;
- gt; 1 = 0 ise
- gt; Baskı (0)
- gt; elif 1 = 0 sonra
- gt; Baskı (1)
- gt; onSuccess
- gt; bayrak: = true
- gt; Başka
- gt; Baskı (-1)
- gt; fi
- gt; Baskı (bayrak);
- false
- gt; flag: = false;
- gt; a: = 2;
- gt; durumda bir
- gt; 1 / sonra
- gt; Baskı (1)
- gt; 2 sonra
- gt; Baskı (2)
- gt; onSuccess
- gt; bayrak: = true
- gt; Başka
- gt; Baskı (-1)
- gt; esac
- gt; Baskı (bayrak);
- true
- Yeni `içe aktarma 'ifadesi, bir veya daha fazla kütüphaneyi isimlerini tırnak içine koymadan içe aktarmaya izin verir, ör. "import calc, stats", "readlib ('calc', 'stats')” ile eşdeğerdir.
- "İçe aktarma" ifadesinin "diğer adı" seçeneği, başlatılan kitaplık işlevlerine bir veya daha fazla kısa ad atar, örn. "import calc alias xpdiff" ile "(calc", "xpdiff") "ile eşdeğer" ve "calc alias alma" ("calc") ile eşdeğerdir ".
- Yeni `..` operatörü, sol taraftaki işleneni 'null' olarak değerlendirse bile tabloları dizine eklemenizi sağlar. Bu durumda, "null" döndürülür ve "indeksleme alanı ..." (boş değer) hatası verilir. Bu getentry fonksiyonuna benzer, ancak üç kat daha hızlıdır. Örnekler:
- gt; tablo oluştur a;
- gt; a.b:
- boş
- gt; a.b.c:
- Stdin’de Hata 1’de:
- indeks alanını "b" (boş değer)
- gt; a..b..c:
- boş
- gt; tablo oluştur a;
- gt; a [1]:
- boş
- gt; a [1] [2]:
- Stdin’de Hata 1’de:
- alanı indekslemeye teşebbüs `` (boş değer)
- gt; bir .. [1] .. [2]:
- boş
- "drem" yeni işlevi, x / y tamsayı bölümünün kalanını değerlendirir, ancak "irem" in tersine, x / y iç katsayısını sıfıra doğru yerine en yakın tam sayıya yuvarlar.
- "skycrane.todate" işlevinin yeni işlevi, geçerli tarih ve saati biçimlendirilmiş bir dize olarak döndürür.
- "io.truncate" işlevinin yeni işlevi geçerli dosya konumundaki bir dosyayı keser.
- `io.move` işlevinin yeni işlevi, dosya konumunu belirli bir sayı karakterini sola veya sağa değiştirir.
- `io.filesize` işlevinin yeni işlevi bir dosyanın boyutunu döndürür.
- `readlib` artık dizeleri yalnızca argüman olarak kabul eder. Sayılara artık izin verilmiyor.
- 'with` ile ilgili son argüman Boole' false 'ise, işlev konsola atanmış kısa adlar yazmaz (stdout).
- `strings.fields` artık bir dizi indeks sayısını da kabul etmektedir. Ancak, "0" dizini artık kabul edilmiyor.
- Raspberry Pi Wheezy Debian yükleyicisi artık "gdi" grafik paketini içeriyor.
- `change.log` dosyası artık Windows’da doğru bir şekilde görüntüleniyor.
2.0.0 RC3 sürümündeki yeni: :
- Yeni döngü varyantları 'için / kadar' ve 'için / kadar' geçerli yinelemenin sonunda bir koşulu kontrol eder ve bir sonraki iterasyonu başlatır veya döngüyü bırakır. Bu hem / için hem de döngüler için / ile çalışır.
2.0.0 RC2 sürümünde yeni: :
- Yeni döngü varyantları 'için / kadar' ve 'için / devam et' geçerli yinelemenin sonunda bir koşulu kontrol eder ve ya bir sonraki yinelemeyi başlatır veya bir döngü bırakır. Bu hem / için hem de döngüler için / ile çalışır.
2.0.0 RC1 sürümünde yeni: :
- Yeni `içe aktarma 'ifadesi, bir veya daha fazla kütüphaneyi isimlerini tırnak içine koymadan içe aktarmaya izin verir, ör. "import calc, stats", "readlib ('calc', 'stats')” ile eşdeğerdir.
- "İçe aktarma" ifadesinin "diğer adı" seçeneği, başlatılan kitaplık işlevlerine bir veya daha fazla kısa ad atar, örn. "import calc alias xpdiff" ile "(calc", "xpdiff") "ile eşdeğer" ve "calc alias alma" ("calc") ile eşdeğerdir ".
- Yeni `..` operatörü, sol taraftaki işleneni 'null' olarak değerlendirse bile tabloları dizine eklemenizi sağlar. Bu durumda, "null" döndürülür ve "indeksleme alanı ..." (boş değer) hatası verilir. Bu "getentry" işlevine benzer, ancak üç kat daha hızlıdır.
Sürüm 1.12.9’da yeni:
:- Yeni işlevler io.getclip` ve `io.putclip`, Agena ve pano arasındaki metinleri değiştirir (yalnızca Windows).
- `stats.prange` C’de yeniden yazılmıştır ve% 60’a varan oranda daha hızlı olmuştur.
- `os.cpuinfo` artık ARM tabanlı sistemlerde doğru ve daha fazla bilgi döndürüyor.
- Mac OS X ve sadece karmaşık etki alanındaki DOS ve UNIX sistemlerinde, 0 tabanının 0 + r * I üssü ile sıfırlanması, sıfır olmayan bir float ile 0 yerine "undefined" değerini döndürdü. Bu düzeltildi.
- Mac OS X ve sadece karmaşık etki alanındaki DOS ve UNIX sistemlerinde, 0 tabanının r + 0 * I üsine katılması, herhangi bir pozitif şamandıra ile, 0 yerine "undefined" i döndürdü. düzeltildi.
- "stats.obcount" ve "stats.obpart" değerleri en sağdaki alt sınıra dahil edemedi. Bu düzeltildi.
- calc.nakspline`, calc.naksplinecoeffs`, calc_clampedspline` ve `calc_clampedsplinecoeffs`, çok az nokta, yani çiftleri içeren bir yapıda çağrılırsa segmentasyon hatalarını tetikledi. Bu, bu durumlarda 'başarısızlık' döndürülerek giderildi.
- Potansiyel bellek ayrılma hataları, calc.neville, calc.interp, calc.newtoncoeffs, calc.naksplinecoeffs, calc.clampedsplinecoeffs, calc.nakspline, adreslerinden kaldırıldı. ve calc.clampedspline`.
- Yeni C API işlevi "agn_checkinteger", bir argümanın bir sayı ve bir tam sayı olup olmadığını kontrol eder ve - luaL_checkinteger öğesinin aksine - aksi halde bir hata verir.
1.9.0 sürümünde yeni :
- İkinci argüman 'null' ise, yeni `alternate` fonksiyonu ilk argümanını döndürür. Aksi takdirde ikinci argümanını döndürür.
- Agena çalıştırılabilirliğine -b anahtarı, çıkışı -v seçeneği ile aynı olduğundan beri kaldırıldı.
- `strings.utf8size`nin Windows ve UNIX / Mac sürümleri, olası bir bellek sızıntısı içeriyordu; Bu değiştirildi.
- Artı kitaplıklarının tüm ikili DLL'leri / SO'ları artık kullanılmayan kod içeremez ve işletim sistemine bağlı olarak boyutlarını yüzde 10'a kadar zayıflatır. Makefile ve kullanılmamış başlık dosyalarını daha önce ithal eden kaynaklar değiştirildi. Örneğin, bu, Windows ikili dosyalarının boyutunu 55 kBytes azaltmaktadır.
- Test paketini genişletti.
- Şema dosyalarını güncelledik.
1.6.0 sürümünde yeni :
- Yeni İşlevler ve Özellikler:
- 'checktype' işlevinin yeni işlevi, yapıdaki tüm değerlerin belirli bir türde olup olmadığını belirler.
- "isint" işlevinin yeni işlevi, tüm argümanlarının tam sayı olup olmadığını kontrol eder.
- 'strings.dleven' işlevi, iki dizenin Damerau-Levenshtein uzaklığını döndürür.
- `stats.ad` adlı yeni işlev, bir yapıdaki tüm değerlerin mutlak sapmasını belirler.
- `stats.countentries 'işlevinin yeni işlevi, yapıdaki tüm öğelerin sayısını gösterir.
- "stats.deltalist" işlevi, ilgili komşu öğelerin deltaslarının bir yapısını döndürür.
- `stats.gmean` işlevinin yeni işlevi bir yapının geometrik ortalamasını döndürür.
- `stats.hmean` işlevinin yeni işlevi, yapının harmonik ortalamasını döndürür.
- `stats.ios` adlı yeni işlev, dağıtımdaki kararlılık konusunda kanıtlanmış bir göstergesi döndürür.
- `stats.iqr` adlı yeni işlev, çeyrekler arası aralığı döndürür.
- `stats.issorted` işlevi, yapıdaki tüm sayıların artan düzende sıralanıp sıralanmadığını kontrol eder.
- 'stats.moment' işlevinin yeni işlevi, bir kaynak hakkında verilen verilerin anını hesaplar.
- `stats.numbperm` işlevinin yeni işlevi permütasyonların sayısını döndürür.
- `stats.percentile` işlevinin yeni işlevi yüzdelikleri belirler.
- `stats.skewness` işlevinin yeni işlevi, olasılık dağılımının simetrisinin bir göstergesi olan çarpıklığı döndürür.
- "stats.sumdata" işlevi, bir yapının bir kaynağın tüm yetkilerini toplar.
- `stats.tovals` artık bir C kütüphanesi işlevidir ve bu nedenle yüzde 40'a kadar daha hızlıdır.
- Boş bir tablo veya sırayla, "stats.qmean", "stats.mean", "stats.gmean", "stats.sd", "stats.median",
- `stats.var` artık başarısız.
- Bağımsız tercümandaki bir giriş hattının maksimum uzunluğu 512 ila 2048 karakter arasında değiştirildi.
- `environ.maxpathlength` adlı yeni ortam değişkeni, dosya yolu için maksimum karakter sayısını (C karakteri hariç) saklar.
- Yeni ortam değişkenleri `environ.minnumber` ve` environ.maxnumber`, minimum ve maksimum değeri bir Agena numarası (şu anda bir ANSI-C çiftli) saklayabilir.
- `environ.umaxlong` adlı yeni ortam değişkeni, 32 + bit sistemlerinde uzun süredir imzalanmamış C tipi ve 16 bitlik makinelerde imzasız uzunluğun maksimum integral değerini içerir.
- C API:
- AgaA C API'sinin Lua'nın C API'sine% 100 uyumluluğu, Lua'nın * döküm işlevlerini tanıtarak yeniden oluşturulmuştur. Böylece, işlevleri ikili bir gösterimde, örn. C seviyesinde `strings.dump` veya lua_dump kullanarak.
- İsteğe bağlı Boole argümanlarını kontrol etmek ve başarı durumunda iade etmek için yeni "agnL_optboolean" işlevini tanıttı.
- Hata Düzeltmeleri:
- "environ.globals" her zaman bir hatadan vazgeçirdi, bu düzeltildi.
- her iki argümanı ile 'undefined' ya da 'undefined' olarak değerlendirmek için yanlış döndü. Şimdi bu durumda doğru döner.
- Agena boş bir tabloyu geçerken ve "birleştir" için bir sınırlayıcıyı çökertti - bu düzeltildi.
- "Colour" seçeneği artık gdi.plot tarafından göz ardı edilmiyor.
- Tablolarla, "stats.minmax" minimum için yanlış bir değer döndürdü. Şimdi doğru çalışıyor.
- Boş bir tabloyla, "stats.median" 0 döndü, şimdi başarısız oldu.
- Belgelerin tersine, her iki dizgenin eşit olmasıyla "dizeler" ifadesi "doğru" döndü. Bu düzeltildi.
- `run` döndü 'dosyayı açamadı. Bu, işlevi tamamen yeniden yazarak giderildi.
- Lua 5.1.4 yaması 9 eklendi: "Bazı belirli [ör. karmaşık] boole ifadeleri için yanlış kod oluşturma."
- Lua 5.1.4 yaması eklendi 11: "Ayrıştırıcı, oluştururken bir prototip toplayabilir."
- * Bilgi: Lua 5.1.4 düzeltme ekinin eklenmesi, "[değiştirilemez meta metadisi kendi metatable'iyse metaforhod çalışmayabilir", Agena gerekli değildir, Agena için zaten bu durumda doğru şekilde çalışıyor.
- Kullanılmayan "varsayılan" anahtar kelime kaldırıldı.
- Bazı işlev ve özelliklerin sertleştirilmesi.
- Geliştirmeleri:
- Mac sürümüne "io.anykey" adlı bir _experimental_ sürümü eklendi. Bununla birlikte, en azından Aslan üzerinde, basılan anahtar bazen kabuk üzerinde yankılanır.
- `utils.readcsv` artık isteğe bağlı olarak bir CSV dosyasındaki tüm değerleri düz bir sırayla döndürebilir.
- `clock` paketi şimdi '/' operatörünün metatable'ına ekleyerek bölüm operatörünü` / `desteklemektedir.
- `with`'in davranışı, birçok kitaplık işlevi için kısa adlar atanamadığı için değiştirildi: Eğer .aux tablosuna işlevler yerleştirildiyse, bu işlev adlarına kısa adlar atamayın; aksi halde _all_ diğer paket işlevleri için kısa adlar atayın. Böylece: `` file.register`` için kısa isimleri atamak için `ile` tüm kütüphane işlevlerini kaydettirmek, artık gerekli değildir. Aşağıdaki sürümlerden birinde kullanımdan kaldırılacak.
- Test paketini geliştirdim.
- Manuel:
- Elkitabı ve dizin geliştirildi.
- Tutarlılık:
- Aşağıdaki tüm yeniden adlandırmalar için, aşağıdaki eski değişken adları hala desteklenmektedir.
- `environ.MinLong`,` environ.minlong` olarak yeniden adlandırıldı.
- `environ.MaxLong`,` environ.maxlong` olarak yeniden adlandırıldı.
- "environ.BufferSize", "environ.buffersize" olarak yeniden adlandırıldı.
- "environ.PathSep", "environ.pathsep" olarak yeniden adlandırıldı.
- `environ.More`,` environ.more` olarak yeniden adlandırıldı.
- `environ.WithProtected`,` environ.withprotected` olarak yeniden adlandırıldı.
- `environ.Os`, `environ.os` olarak yeniden adlandırıldı.
- "environ.Cpu", "environ.cpu" olarak yeniden adlandırıldı.
- "environ.Release", "environ.release" olarak yeniden adlandırıldı.
- `environ.GdiDefaultOptions`,` environ.gdidefaultoptions` olarak yeniden adlandırıldı.
- Windows'da, `os.login` ve` os.computername` artık UNIX veya OS / 2 sürümleri gibi 'başarısız' durumuna dönüyor.
- `-DCOMPAT13` anahtarının sonunda bir Agena 1.3.x uyumlu sürümü derlenmesi için kaldırılmıştır.
- Diğer:
- Onaylanmamış "calc.fseq" silindi. Lütfen yerine `nseq` kullanın.
Varolan bir Agena betiği bir sözdizimi hatası içeriyorsa,
Sürüm 1.5.1’de yeni: :
- Hiç işe yaramadı "strings.fields" yandı. Ayrıca, bir C kütüphanesi fonksiyonuna dönüştürülmüş ve böylece 2.6 kat daha hızlıdır.
- ` strings.words` şimdi sınırlayıcı dikkate alınmaz yerini alarak, üçüncü argüman kabul eder.
- olası güvenlik io.write` `gelen sızıntı ve` io.writeline` kaldırıldı ve hata iletileri geliştirmiştir.
- Yamalı `binio.readchar` 2 GB ardından büyük boyuttaki dosyaları ile sorunları önlemek için.
- fonksiyonların düzeltildi hata iletileri `xbase.purge`,` xbase.readvalue`, `xbase.purge`,` ads.getvalues`, `binio.readshortstring`,` os.computername`, `os.login`, "os.fattrib", "environ.kernel", "package.register".
- Terabaytlar şimdi bir tamsayı olan T harfi ile girilebilir ve T, T 'karakteridir. Aynı şekilde, g milyarlar ve trilyonlar anlamına gelir. Daha fazla bilgi için kılavuzun 48. sayfasına bakın.
- Elkitabı güncellendi.
- C kaynak kodundaki çoğu geriye dönük uyumluluk anahtarı, kod temizleme nedenleriyle kaldırılmıştır. Bu Agena 1.3 ve 1.4 tamamına geriye doğru uyumluluk ile Agena 1.5 veya daha yüksek yeniden derlemek için deneyin ve Lua 5.0 geriye doğru uyumluluk çoğu ile (eski Lua 5.0 kitaplığı kullanım dışında) sadece edenler etkiler.
TRUE `ayarlı ise
Sürüm 1.5.0’da yeni: :
- `map` artık ikinci argümanı olarak verilen dizeleri de işleyebilir. İlgili işlev ve argümanları her karaktere ardışık olarak soldan sağa uygulanır ve sonuç bir sırayla döndürülür.
- `run`: 'agn' son eki olan dosyalardan kod yüklemek ve yürütmek isterseniz, argümandaki son eki artık belirtmeniz gerekmez. Yani 'test' 'çalıştır ve' test.agn '' koşmak artık aynı.
- `is` anahtar kelimesi prosedürleri tanımlamak için artık zorunludur. (GCC ile, -DCOMPAT14 anahtarını kullanarak, "is" anahtar kelimesinin hala isteğe bağlı olduğu Agena'nın bir sürümünü derleyin.)
- `try` ifadesi kullanımdan kaldırıldı ve artık desteklenmiyor. (GCC ile, hala bu ifadeyi içeren Agena'nın bir sürümünü derlemek için -DCOMPAT14 anahtarını kullanın.)
- Aşağıdaki `utils` işlevleri kaldırıldı:` arraysize`, getarray`, getwholearray`, `newarray``, searcharray`,` setarray`. Geriye dönük uyumluluk için, lib / compat.agn dosyasına eklenmiştir. (GCC ile, orijinal utils işlevlerini hala destekleyen bir Agena sürümünü derlemek için -DCOMPAT14 anahtarını kullanın.)
- utils.singlesubs 'tamamen yeniden yazıldı. Şimdi, eski dizi dizisi userdata yapısı yerine ikinci argüman olarak bir sayı dizisi beklemektedir. Önceki sürümden% 35 daha yavaştır, ancak dizi dizisi yapısının kaldırılması daha önemlidir.
- `strings.include 'ikinci argüman olarak 0 ile çağrılırsa kilitlenir. Bu düzeltildi.
- Uygulamalı Michael G. Schwern'in 10 Mayıs 2011 tarihli düzeltme eki, "os" ve "xbase" paketleri tarafından kullanılan 32-bit-Yıl 2038-Düzeltme tarihi yardımcı işlevlerine ('make mktime64 ()' yi gelen tm yapısını düzeltin ISO C gerektirir. ')
- Dahili kod optimizasyonu: bazı kütüphane başlatma ve dosya yükleme C işlevleri, yol ve dosya adı dizeleri oluşturmak için yığıtı kullanır. Solar Designer tarafından yazılan yeni C aux fonksiyonu `concat` artık birçok durumda kullanılıyor.
- Agena C API'si, C Lua paketlerinin Agena'ya taşınmasını kolaylaştırmak için Lua C API'sine şimdi% 100 uyumludur.
- Aşağıdaki işlevler yeniden adlandırıldı: lua_isnumber - & gt; agn_isnumber, lua_isstring - & gt; agn_isstring, luaL_optnumber - & gt; agnL_optnumber, luaL_checknumber - & gt; agnL_checknumber, luaL_optnumber - & gt; agnL_optnumber, luaL_checkinteger - & gt; agnL_checkinteger, luaL_optinteger - & gt; agnL_optinteger.
- Aşağıdaki makrolar yeniden adlandırıldı: luaL_checkint - & gt; agnL_checkint, luaL_optint - & gt; agnL_optint.
- Eski Agena uygulamasının aksine, lua_tonumber, artık HUGE_VAL döndürmek yerine numara olmayan bir durumun geçmesi durumunda Lua'da olduğu gibi 0 değerini döndürür.
- lua_setglobal2 kaldırıldı. Bunun yerine lua_pushvalue ve lua_setglobal kullanın.
Sürüm 1.4.2’de yeni: :
- Kullanıcı tanımlı bir yordamın parametre listesi belirtilmişse, içinde
- yordam çağrıları hata bildirimi yapılmadı ve aşağıdaki durumlarda prosedür yerine getirildi:
- a) kullanıcı tanımlı bir yazılım olmadan, bir tablo, küme, sıra, çift veya yordam var
- type - alındı,
- b) İlgili parametre için hiç bir değer geçmedi.
Sürüm 1.4.1’de yeni: :
- `stats.quartiles` ve` stats.mode` için kısa adlar `with` işlevi tarafından atanamadı. Bu düzeltildi.
- Yanlışlıkla, `with` gdi.settriangle` için kısa bir ad veremedi. Bu değiştirildi.
- `calc.polygen` hatalarının ele alınması iyileştirildi.
- FRACINT map files eksik olan `fractals.draw` için geliştirilmiş hata mesajı.
- Kaldırılmış kullanımdan kaldırılmış "strings.rseek" işlevi. Geriye dönük uyumluluk için, `strings.seek 'lib / compat.agn dosyasına eklenmiştir.
- Yorumlayıcıyı başlatırken hata ayıklama bilgilerini yazdırmak için -d anahtarını eklediniz.
- Agena'nın Windows sürümü artık GCC 4.5.2 ile derlenmiştir.
- Güncellenen dil şeması dosyaları.
- Kılavuz güncellendi.
1.4.0 sürümünde yeni :
- Semantik Değişimler:
- Sayısal `for / to` döngülerinin döngü kontrol değişkenleri artık (iç) döngü gövdeleri yerine kendi çevrelerindeki bloklarına otomatik olarak yereldir. Döngü kontrol değişkeni ile aynı ada sahip bir yerel değişken önceden bildirilmiş ve atanmışsa
- sayısal bir döngüyü yürütürken, döngünün son yineleme değeri üzerine yazılır. Böylece, '`` döngülerinde' harici 'anahtar sözcüğü artık kabul edilmiyor. (GCC ile, hala tanınan ama 'external' anahtar kelimesini yok sayar Agena'nın bir sürümünü derlemek için -DCOMPAT13 anahtarını kullanın.)
- 'Başarısız' ile, `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `ile` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` Bu değiştirildi, yani 'a: = başarısız; (a) 'artık' true` döndürmez.
- `stats.median`, verilen yapı boşsa artık 0 yerine 'fail' döndürüyor.
- `utils.readcsv`: Eğer 'sınır' seçeneğiyle tek bir beyaz boşluk iletilirse ve` ignorespaces 'seçeneği verilmemişse, dosyanın her bir satırına ayrılmadan önce boşluklar otomatik olarak kaldırılmaz. onun sözleri.
- İşlevde ayrıca iki yeni seçenek vardır: bir dosyadaki ilk satırı işaretleyen "başlık" ve dosya içeriğinin dosya başlığı tarafından tanımlanan alan adlarıyla bir sözlük içerisine saklanmasını sağlayan "çıktı".
- '$ `alt yazı gösterimi artık desteklenmiyor. (GCC ile, '$ `operatörünü hala destekleyen bir Agena sürümünü derlemek için-DCOMPAT13 anahtarını kullanın.)
- Uzantılar:
- Sonsuz do / od döngüler eklendi. Bu tür döngü sonsuz olarak yinelenir ve sadece 'break' veya `return` ifadeleriyle kesintiye uğrayabilir. Onlar '' true '' od 'döngülerindeyken sözdizimsel şekerdir.
- Tablolarla, "stats.minmax" eskiden yalnızca dizilerle çalıştı. Bu değiştirilmiştir, yani, karşılık gelen pozitif olmayan anahtarlara (örneğin, diziler, pozitif olmayan tamsayılar, negatif ve pozitif yüzer, vs.) sahip değerler şimdi değerlendirmede uygun bir şekilde tanınır.
- "stats.mean", "stats.qmean", "stats.sd" ve "stats.var" artık dizileri de işliyor.
- Yeni `stats.mode` işlevi, en yüksek sayıya, yani en yüksek sıklığa sahip bir sıra veya tabloda tüm değerleri döndürür.
- Yeni "stats.quartiles" işlevi, bir _sorted_ tablosunun veya dizisinin birinci, ikinci ve üçüncü çeyrek değerlerini döndürür.
- linalg.matrix` kılavuzuna eklendi ve hata ele alma iyileştirilmiştir `Önceden dökümante özellikleri.
- linalg.hilbert’in hata düzeltmesi geliştirildi.
- `gdi.setinfo` artık 'kare' seçeneğini kabul ediyor. kare = FALSE, daha sonra x ve y eksenleri gdi.plot` `ile oluşturulan parseller üzerinde aynı ölçeğe sahip olmayacak` edin.
- "gdi.plot" işlevi grafik çizmek için maalesef belgelenmemiştir. Bu değiştirildi.
- `gdi.plot` iki yeni seçenek kabul eder:. 'X' seçeneği arsa görüntülendiği üzerinde yatay aralığını belirtir ve 'y' seçeneği dikey aralığı belirtir
- , (kendi * DOLGULU varyantları da dahil olmak üzere), yer şekilleri, dikdörtgenler, üçgenler, daireler ve elipsler, o 'gdi.plot` otomatik` (ölçekler belirler gdi.setinfo`nun mutlaka aranması gerekmiyor.)
- Lua'dan devralınan OOP özellikleri şimdi Ek A9'da belgelenmiştir. Yazar nesne yönelimli programlama önermez.
- Ayarlama:
- "Dolduruldu" operatörü yaklaşık% 3 oranında ayarlandı.
- `Alanı`nda,` join`, `sadd`,` qsadd`, `replace`,` copy`, `unique` ve Cantor tabloları operatörler kurmak ve biraz ayarlar.
- Tablolarda, "top" ve "alt" operatörler artık% 5 daha hızlı.
- Bir tablo null içermezse, 'size' operatör en az% 8 daha hızlıdır.
- linalg.mzip`, linalg.mmul` ve `linalg.transpose`, her birinin yaklaşık% 3’ü tarafından ayarlandı.
- Kesirli adım boyutlarına sahip döngüler için / için sayısal, denetim değişkenlerinin sayısını yarıya azaltarak optimize edilmiştir. Ancak bu, hızda herhangi bir artış elde etmedi.
- Yamalar:
- Tekil matrisleri algılamak için linalg.ludecomp`. Ayrıca, işlev artık verilen matrisin sırasını otomatik olarak belirleyebilir.
- Kılavuzun aksine, "gdi.plot" yatay ve dikey aralıkları otomatik olarak belirlemedi. Bu düzeltildi.
- `gdi.plot` artık gdi.setinfo` tarafından ayarlanan 'kare' seçeneğini yok sayar.
- `gdi.setinfo`, zaten mevcut olsalar bile INFO yapılarına ayarları ekledi. Bu değiştirildi.
- Daireler, gdi.plot ile düzgün bir şekilde çizilmediler. Bu değiştirildi.
- `gdi.plot` işlevi çoğu durumda geometrik nesnelerin tek tek renklendirmesini göz ardı etti. Bu değiştirildi.
- gdi paketi gdi.settriangle`, gdi.settrianglefilled`, `gdi.setrectangle` ve` gdi.setrectanglefilled` için kısa adlar atamadı. Bu değiştirildi.
- Fraktallar paketi, kullanıcı tanımlı "esctime" tipi fonksiyonlar için kısa isimler vermedi. Bu değişti. Konumsal argümanlar sayı değilse, 'fractals.draw' hata iletisi düzeltildi.
- Çeşitli:
- "calc.fseq" işlevinin işlevi "nseq" ile birleştirildi. Geriye dönük uyumluluk için, calc.fseq hala calc paketinin bir parçasıdır, ancak işlev aslında "nseq" uygulamasına başvurur.
- Bir fraktalin bir pencerede güncelleneceği dikey çizgi sayısını (negatif olmayan bir tam sayı) göstermek için `fractals paketine` environ.FractScreenUpdates` değişkenini ekledik. "Environ.FractOptimised" değişkeni kullanımdan kaldırıldı.
- Yardımcı gdi işlevleri yeniden gruplandırıldı.
Bir arsa yapısı sadece noktaları içeren gdi.plot` `geçirilir
Tweaked
1.3.3 sürümünde yeni: :
- 'instr`'ye giden yamalar:
- Regex modundayken, bir başlangıç pozisyonu verildiğinde operatör yanlış bir sonuç verdi.
- Düz arama modundayken, herhangi bir başlangıç konumu verilmediyse operatör menzil dışı bir hata verdi.
- Ters arama modunun dışında, eşleşme bulunamazsa, ilk argüman "null" yerine döndürülmüştür.
- Dizilerle ilgili "create" ifadesinin düzeltilmiş hata iletisi.
- AgenaEdit'te, "yazdır" a yalnızca bir çağrıyla birden fazla yapı çıktığında, ilk yapı bir __tostring metamethod'u içeriyorsa yapılar tam biçiminde basılmamış. Bu değiştirildi.
Sürüm 1.3.2’de yeni: :
- Bu sürümde hata düzeltmeleri, uzantılar ve geliştirilmiş bir el kitabı bulunuyor:
- `boyut ', bir yapı olarak geçtiyse ilginç sonuçlar yarattı
- Başlatıcı. Bu değiştirildi: `boyut 'artık bağımsız kopyalarını oluşturuyor
- tabloyu başlatırken yapı.
- `strings.rseek` işlevini` instr 'operatörüne ekledi.
- Böylece, 'strings.rseek' kullanımdan kaldırıldı. Geriye dönük uyumluluk için
- `strings.rseek`, lib / compat.agn dosyasına eklendi.
- `strings.hits` artık düzenli ifadeleri ve yakalamaları desteklemektedir. Bu davranış
- , bir booleanın üçüncü bağımsız değişken olarak geçirilmesiyle kapatılabilir.
- `strings.isabbrev` ve` strings.isending` artık otomatik olarak basit bir arama kullanıyor
- ikinci parçası olarak normal ifadeler veya yakalamalar aktarılmadıysa
- argüman.
- Tweaks `strings.ismagic` ve` strings.isfloat`.
- `log` işlevi şimdi% 13 daha hızlı.
- "Yazdır" a yalnızca bir çağrıyla birden fazla yapı çıktığında,
- yapıların tam biçiminde basılmadı
- metamethod. Bu değiştirildi.
- Yeni başlangıcını kolaylaştırmak için Bölüm 7'deki işlev kategorileri eklendi.
- Kullanıcıların.
İlk yapı bir __tostring içeriyorsa
Sürüm 1.3.1’de yeni: :
- Aşağıdaki ikili işleçlerde iç içe çağrılar ile ilgili sorunlar var: "xor", "atendof", & amp; & amp;; `` `` `` `` `` `` `ve`: `ve böylece iç içe geçmiş yapıları yazdırırken bir hatadan vazgeçen güzel yazıcıyla da. Bu düzeltildi.
- "os.list" öğesine dört düzeltme: 'r' seçeneği geçtiyse, geçerli çalışma dizini, çağrının tamamlanmasından sonra değiştirilemez.
- Eğer 'r' son argüman olarak geçmemişse, fonksiyon bir hata verdi.
- `null`, mevcut çalışma dizinini belirtmek için ilk argüman olarak kabul edilmedi.
- Windows 7'de, kök dizininin içeriğinin yazdırılması çalışmadı, yani os.list ('c:') geçerli çalışma dizininin içeriğini döndürdü.
- Bir dize, numarasız bir şekilde endekslendiğinde, ör. "str [null]", Agena `null` döndürdü. Şimdi bir hata oluştu.
- library.agn bulunmadıysa, uyarıda yanlış yol iki kez çıktı. Bu değiştirildi.
Sürüm 1.2’de yeni: :
- Alt dizge operatörü yeniden tasarlandı ancak eski sürüm Agena 2.0'a kadar mevcut olacak: yeni olan: str [soldan sağa], eski olan: str $ (sol, sağ) . Bir örnek: önce: `str: = 'string'; baskı (str $ (2, 3)) `- & gt; şimdi 'tr': `str: = 'string'; baskı (str [2 ila 3]) `- & gt; 'Tr'
- Artık, yukarıda bahsedilen yeni sözdizimi ile tablo dizileri ve dizilerin alt listelerini belirleyebiliyorsunuz: `s [soldan sağa]. Bir örnek: şimdi: `a: = [10, 20, 30, 40]; yazdır (a [2 to 3]) `- & gt; [20, 30] şimdi: `a: = sıra (10, 20, 30, 40); yazdır (a [2 to 3]) `- & gt; seq (20, 30)
- `ops` işlevi şimdi, indeks konumlarının bir sırasını ilk argümanı olarak örn. ops (sıra (1, -1), 10, 20,
- 30).
- Yeni işlev `strings.include 'bir karakter dizisini bir dizeye ekler
- belirli bir konumda.
- Aşağıdaki işlevler artık "fail" i tekrar döndürmek yerine bir hata veriyor
- başarısızlık durumu: "os.remove", "os.move", "os.mkdir", "os.rmdir", "os.chdir".
- Çöp toplama ile ilgili kümeler ve sekanslar üzerinde çalışan aşağıdaki operatörlere yönelik geliştirmeler: 'insert' ifadesi, "union", "kesişim", "eksi", "benzersiz", "copy", "pop / top" ve pop / bottom` ifadeleri ve ödevleri ayarlayın.
- FRINTINT renk eşlemesi dosyası değilse, fractals.draw öğesinin iyileştirilmiş hata iletisi
- bulunamadı.
Sürüm 1.1.0’da yeni: :
- Bu sürümde yeni işlevler ve temizlenmiş bir ad alanı bulunur.
- Agena 1.0'a uyumluluk:
- Bazı işlevler Agena'dan kaldırıldı ve bazıları paket işlevlerine dönüştürüldü (aşağıya bakınız). Bunları hala kullanmak istiyorsanız, Agena 1.0'a geriye dönük uyumluluk tercih ediyorsanız, komut satırında readlib 'compat' yazın veya yukarıdaki ifadeyi başlatma dosyasına koyun.
- Genişletilmiş İşlev:
- "pop / top" ve "pop / bottom" ifadeleri ve "bottom" ve "top" operatörleri artık tablo dizilerine de uygulanabilir.
- `null` veya argüman olmadan çağrıldığında,` os.chdir` artık bir hata vermez ancak mevcut çalışma dizinini döndürür. Böylece, eski `os.curdir` C işlevi, Agena dilinde yazılmış bir tane ile değiştirildi.
- `os.list` artık yeni 'r' seçeneği verilirse alt klasörleri yinelemeli olarak değiştirir.
- "Birleştirici" operatörü artık isteğe bağlı bir sınırlayıcıyı kabul eder ve birleştirilecek yapının ilk ve son öğelerini belirtme seçeneğini destekler.
- `instr` artık bir dizinin sağ ucundan negatif bir konum geçerek arama yapabilir.
- Bir tablo diğer tabloları, kümeleri, sıraları veya çiftleri içeriyorsa, 'copy' artık birden çok kez ortaya çıkarsa bu referansların nasıl düzgün işleneceğini bilir: Katıştırılmış bir yapı n kez içeriyorsa, gerçek bir kopya yapılır ve Bu yeni oluşturulan yapıya n-1 referanslar eklenmiştir. Öncesinde n bağımsız kopya yapıldı.
- Yeni "isnonposint" işlevi, verilen sayıların tam sayı olup olmadığını ve pozitif olmadığını kontrol eder.
- `io.close` artık yalnızca bir çağrıyla birden çok dosyayı kapatabilir.
- `` `` işlevi, 'matematik' paketinin şu prosedürleri için kısa isimler belirlemedi: `convertbase`,` fraction`, `zeroin`,` todecimal``` lcm`, gcd` ve ` ndigits`. Bu düzeltildi.
- Kılavuzda belirtilen "rwritemode" işlevi mevcut değil. Şu anda mevcut ancak "rmode" denir.
- Çeşitli işlevlerin hata mesajları iyileştirildi.
- Ad alanı Temizliği: Yeniden Adlandırılmış veya Taşınan İşlevler:
- `Register` ve` loadclib` base kütüphane fonksiyonları `package` kütüphanesine taşındı.
- Eski “rdelete”, “rıhtım”, “rinit”, “roinit”, “rmode”, “rset”, “hatırlama” ve “varsayılanlar” temel kütüphane fonksiyonları yeni “değişken” pakete taşındı. .
- Global _Env tablosunu, artık çevreye erişim prosedürlerini de içeren `çevre 'olarak yeniden adlandırdı.
- Eski global "homedir" ve "infolevel" ortam değişkenleri sırasıyla "environ.homedir" ve "environ.infolevel" olarak yeniden adlandırıldı.
- Aşağıdaki eski temel kitaplık işlevleri "ortam" paketine taşındı: "anames", "öznitelik", "gc", "getfenv", "globals", "isselfref", "işaretçi", "setfenv" , "kullanıldı", "userinfo", "__RESTART", "__DOTTYPRINT".
- mapm.xtoNumber ', mapm.xtonumber' olarak yeniden adlandırıldı, mapm.xtoString, 'mapm.xtostring' olarak yeniden adlandırıldı. Geriye dönük uyumluluk için, eski işlev isimleri hala lib / compat.agn dosyasının çalıştırılmasıyla (ilk maplib `mapm` paketi ve daha sonra compat.agn dosyasını yükleyerek) kullanılabilir.
- Kullanımdan Kaldırılan İşlevler ve Değişkenler:
- `strings.seek` kullanımdan kaldırıldı. Fonksiyonu `instr 'operatörüne eklenmiştir. 'Instr' desen eşleştirme modunu kapatmak için, aramanın başlangıcını dördüncü argüman olarak üçüncü ve "true" olarak iletin. "instr", desen olmayan eşleme modunda "strings.seek" den% 40 daha hızlıdır. Geriye dönük uyumluluk için, `strings.seek 'lib / compat.agn dosyasına eklenmiştir.
- `concat` temel kitaplık işlevi kaldırıldı. Bunun yerine `join 'kullanın. Geriye dönük uyumluluk için, eski işlev lib / compat.agn dosyasına eklenmiştir.
- `hasrtable` ve` hasrotable` işlevleri kaldırıldı. Geriye dönük uyumluluk için, lib / compat.agn dosyasına eklenmiştir.
- `pcall` işlevi kullanımdan kaldırıldı. Bunun yerine `korumak'ı kullanın. Geriye dönük uyumluluk için, işlev lib / compat.agn dosyasına eklenmiştir.
- `maptoset 'işlevi kullanımdan kaldırıldı. Geriye dönük uyumluluk için, işlev lib / compat.agn dosyasına eklenmiştir.
- `os.alldirs` işlevi kullanımdan kaldırıldı. Bunun yerine 'os.list' yerine bir çağrıdaki 'dirs' ve 'r' seçeneklerini kullanın. Geriye dönük uyumluluk için, işlev lib / compat.agn dosyasına eklenmiştir.
- "os.isMac", "os.isSolaris", "os.isLinux", "os.isWin", "os.isOS2", "os.isDOS", "os.isHaiku" kullanımdan kaldırılmıştır. Lütfen kodu da hızlandıran yeni ortam değişkenleri environ.Os ve environ.Cpu kullanın. Geriye dönük uyumluluk için, işlevler lib / compat.agn dosyasına eklenmiştir.
- Belgelenmemiş _VERSION değişkeni kaldırıldı. Geriye dönük uyumluluk için, atama lib / compat.agn dosyasına eklenmiştir.
- Diğer Değişiklikler:
- Kılavuzda sözü edilen C API işlevi lua_rawsetstringnumber mevcut değildi. Bu değiştirildi.
- Ayrıştırıcıya yönelik kod optimizasyonları.
- Bazı paketlerde, yanlışlıkla birkaç değişken global olarak bildirilmiştir. Bu düzeltildi.
- Düzeltilmiş ve güncellenmiş başlatma örnek dosyaları.
- AgenaEdit güncellendi.
- Dil şema dosyaları güncellendi.
- Linux yükleyicileri artık xBase paketini içeriyor.
1.0.6 sürümünde yeni :
- Geliştirilmiş hata iletileri, ve 'for` döngülerinin.
- dizileri ile, Agena aşağıdaki olaylar sırası çöktü: 1) 'delete` deyimi yürütüldüğünde edilmiş, 2) dizisi de bağlı boş olmuştu, ve 3) yeni bir elemanı yine yerleştirilmişti. Bu düzeltildi. (Dahili olarak, `delete` ifadesi artık dahili artık dizilerin boyutunu azaltır.)
- Büyük dizelerle, "concat" çöktü. Bu düzeltildi.
- 512 ve daha fazla bayt dizgisiyle `join` ve` replace` çökebilir. Bu düzeltildi. İki operatör de artık eskisinden çok daha hızlı.
- math.isprime, argümanlar & gt; 2 ^ 31 (kullanım kılavuzunda belirsizdir). Bu, argüman aralığını +/- 2 ^ 63'e kadar olan değerlerle tamsayılara genişleterek giderildi.
- `math.nextprime` ve` math.prevprime` `math.isprime` gibi büyük argümanlarla aynı sorunu vardı. Bu da değişti. argüman 2 ile, 'io.nextprime` yanlış Bu, hem de sabit olmuştur 3 yerine 5 döndü.
`Insert`,` delete`, `pop` tabloların` join`, `copy` ve` filled` operatörler, `toset`,` toseq` ait ve `totable` fonksiyonların
1.0.5 sürümünde yeni :
- `join` Agena’ya çarpabilir ve sonuçta ortaya çıkan dizgenin olması durumunda beklenmedik şekilde davranabilir.
- 512 baytı aştı. Bu değiştirildi.
- Önceki 'de bir hata verildikten sonra "yeniden başlatma" çağrıldıysa
- ifadesi, Agena, nadir durumlarda yığın bozulması nedeniyle çöktü. Bu
- sabit.
- Karma kısımda tam olarak bir öğe içeren yeni oluşturulmuş tablolar ile, 'attrib`
- artık tahsis edilmiş hash yuvalarının sayısı için doğru sonuçları döndürür (0 yerine 1).
- "qsadd" ve "sadd" hata iletileri düzeltildi.
- "Birleştir", "kopyala" ve "dolu" operatörlerin ve "ekle" öğelerinin geliştirilmiş hata iletileri
- ve "sil" ifadeleri.
- `read`,` save` ve `fractals.draw` hatalarının ele alınmasında hata oluştu.
- Makefile ilişkin iyileştirmeler.
- Arabellek boyutları artık kaynaklarda standartlaştırıldı.
Sürüm 1.0.4’de yeni: :
- Başlatma sırasında (Windows XP SP 3 ve OpenSolaris 134, bazı durumlarda) nadir çakışmalar bildirildiği için, çöp toplama artık başlatma aşamasında kapatılmıştır. Bu nadir bölümleme hataları, OpenSolaris'te Agena binary'sini kök dizininde ve XP'de ise yerel yönetici haklarına sahip Agena masaüstü simgesine tıklarken ortaya çıktı.
- Agena'nın başlatılması sırasında bilgi yazdırmak için -d anahtarını komut satırı seçeneklerine tanıttı.
- Bellek dahili olarak "trim", "upper", "lower", "os.curdir" ve "strings.rseek" olarak atanamazsa, uygun hata işleme yöntemini kullanıma sunduk.
- AgenaL_initialise ve agenaL_setLibname, ve `io.write *` ve `print`. işlevlerinde başlangıç C işlevlerindeki potansiyel bellek sızıntıları kaldırıldı.
Sürüm 1.0.3'teki yeni :
- `Koruma` adlı yeni işlev korumalı modda bir prosedürü çağırır ve hesaplamanın kesilmemesi için olası bir hatayı yakalar. Bir hata durumunda, hata dizgisini global 'lasterror' değişkenine ayarlar. Bu, pcall ile ilgilidir, ancak durum kodunu ilk sonuç olarak döndürmez.
- `attrib` artık boş yapılarla doğru sonuçları döndürüyor. Boş yapılarda işlev, önceden atanan bir hash elemanını yanlış saydı.
- `özniteliği 'artık yeni' bayt 'tuşuyla birlikte tablo, küme ve sekansların kapladığı byte sayısını döndürür. Döndürülen bayt sayısı, bazen ağ üzerindeki mevcut çelişkili bilgilere dayanır.
- `replace ', Agena'yı çökertti. Bu değiştirildi.
- `Assume 'artık' Assumption başarısız oldu. 'varsayım başarısız' yerine.
- lua_setglobal2 yeni C API işlevi, yığının en üstündeki değeri genel bir ada olarak ayarlar. Lua_setglobal'in aksine, değer atılmaz.
- lobject.h (Tablo yapısı) ve lapi.c (actnodesize macro) kod temizliği. Agena'nın void olmayan lua_assert ile derlenmesi durumunda C API işlevine ilişkin hata düzeltmesi agn_deletertable. Yığın bozulması (hafif) olasılığını önlemek için başlatma sırasında kullanılan kaydetme işlevinin dönüş değeri olarak değiştirin.
Sonuç dizesi 512 bayttan fazlaysa,
Sürüm 1.0.2’de yeni: :
- Yeni `os.setenv` prosedürü, işletim sistemi seviyesindeki ortam değişkenlerini ayarlar. İşlev aslında Mark Edgar tarafından yazılmıştır.
- Windows'da, `os.getenv` artık ortam değişkenlerinin değerlerini almak için yerel bir Windows API işlevi çağırıyor. Windows kodu Mark Edgar tarafından yazılmıştır.
- Yeni `os.environ` işlevi, bir tabloda tüm atanmış ortam değişkenlerini döndürür. İşlev aslında Mark Edgar tarafından yazılmıştır.
- `io.open` artık FILE işaretçisini, adı ve başarıyla açılmış bir dosyanın kipini io.openfiles 'tablosuna ekler. `io.close`, dosya başarıyla kapatılabiliyorsa, io.openfiles` den girişi siler.
- Hiçbir argüman olmadan çağrıldığında, `io.read` artık AgenaEdit'de (klavyeyi okuma girişiminde) argüman olmadan çağrılırsa bir hata döndürür.
- AgenaEdit'te io.anykey ve `io.getkey 'çağrılırsa, uygun bir hata mesajı görüntülenir.
- Başlatma alt yordamlarından biri, olası yığın bozulmasını önlemek için değiştirildi (sorunlar hiç oluşmamış olsa da).
- os.isMac ('ppc') şimdi PowerPC makinelerinde çalışıyor.
- Astar ve Referans bölümleri 4 ve 6 revize edilmiş ve genişletilmiştir. Bir indeks eklendi ve bir çok kozmetik yapıldı.
- Windows sürümüne depolanmış doğru sürüm bilgisi.
Sürüm 1.0'da yeni: :
- Sevgili Bayanlar ve Baylar,
- neredeyse dört yıllık bir geliştirme sürecinden sonra, Lua C kaynaklarından türetilen bir prosedürel programlama dili olan Agena 1.0'ı yayınladım.
- Topluluğum aslında çok ama çok küçük, ancak bazı kullanıcılar bana bunun iyi, kullanışlı ve kararlı olduğunu söyledi.
- Agena'yı incelediyseniz ve sonuçlarınız hakkında bana bilgi verirseniz çok mutlu olurdum. Kullanışlı bulmazsanız, lütfen bana şahsen bildirin ve sorunları düzeltmek için bana bir şans verin.
Yeni olan nedir? : 0.34.1d:
- Bu sürüm AgenaEdit'in güncellenmiş bir GUI sürümünü içerir (bkz. yürütülebilir dosya agenaedit).
Yeni olan nedir? : 0.34.1 sürümünde:
- Sözdizimi vurgulamalı ve yerleşik çalışma zamanı motoruna sahip AgenaEdit, Agena 0.34.1 ile piyasaya sürüldü.
Yeni olan nedir? : 0.34.0 sürümünde:
- Sözdizimi vurgulamalı ve yerleşik çalışma zamanı motoruna sahip AgenaEdit, Agena 0.34.0 ile piyasaya sürüldü.
0.33.2 sürümündeki yeni :
- xBase dosya desteği ile Agena 0.33.2 sürümü kullanıma sunuldu.
0.33.1 sürümündeki yeni :
- xBase dosya desteği ile Agena 0.33.1 yayımlandı.
0.33.0 sürümündeki yeni :
- Yeni `xbase` paketi, dBASE III standardına uygun xBase dosyalarını okuyabilir ve yazabilir.
- `binio` ve` ads` paketleri artık 2 ^ 63 bayta kadar dosyaları işleyebilir. Yalnızca 2 ^ 31 bayt boyutuna kadar olan dosyaları işleyebilmeden önce.
- Yeni "io.lock", "io.unlock", binio.lock ", binio.unlock", "ads.lock" ve "ads.unlock" işlevleri, okuma ve yazma erişimi diğer Agena
- işlevler, hatta diğer uygulamalar da bir kilitleme protokolü kullanıyordu.
- Baselib işlevi "read" ile artık "by" ile yazılabilir.
- Yeni 'package.checkClib', bir C dinamik kitaplığına depolanmış bir paketin başlatılıp başlatılmadığını kontrol eder. Değilse, ekranda yazdırılan bir uyarı verir ve boş bir paket tablosu oluşturur. Aksi takdirde hiçbir şey yapmaz.
- Haiku bağlantı noktası artık dinamik bağlantı kitaplıklarını destekliyor.
Yeni olan nedir? , 0.32.3 sürümünde:
- Yeni ve ayarlanmış Calculus işlevleriyle Agena 0.32.3 sürümü kullanıma sunuldu.
- Mac kullanıcılarının artık ek bağımlılık kitaplıkları yüklemeleri gerekmez.
- Haiku bağlantı noktası kullanıma hazır.
0.31.5 sürümündeki yeni :
- Bu sürüm yerleşik grafikler, keyfi hassas matematik ve gelişmiş özellikler içerir.
0.31.3 sürümündeki yeni :
- Solaris, Mac, Linux ve Windows'da kolayca fraktallar çizmek için fraktallar paketini ekledik.
- Solaris ve Linux'ta, "gdi.mouse" artık basılı fare düğmeleri için standart değerler döndürür (Mac ve Windows sürümleri ile aynıdır).
- -v seçeneği verildiğinde, Agena artık başlatma dosyalarını artık yürütmemektedir.
- UNIX veya Mac'te, başlatma dosyalarının dosya adlarının her zaman / usr / agena / lib veya kişisel klasörde bulunup bulunmadığı .agenainit olmalıdır.
- Intel CPU'lar için ikili Mac dağıtımı, önceki sürümlerden% 30 daha hızlı çalışır.
- `io.getkey` işlevi artık Mac OS X sürümünde mevcut.
- Mac'te, os.system artık işletim sistemi ve CPU tipi hakkında tam bilgi veriyor. Darwin çekirdeği hakkında bilgi döndürdüğünü ve ortaya çıkan tablodaki ilk girdinin şu an "MacOSX" yerine "Darwin" olduğunu unutmayın.
- `os.memstate`,` os.freemem` ve `os.beep` artık Mac OS X’i desteklemektedir.
- `io.anykey` tüm platformlarda kullanılabilir, ancak DOS ve Mac’te` fail` iadesiyle döner. Bu nedenle, `gdi.draw`` mouse` seçeneğini kullanırken Mac’te artık hata atmayacaktır.
- `os.listcore` yalnızca dosya, dizin veya bağlantı adlarını döndürmek için genişletildi. '' ve '..' artık asla iade edilmiyor.
- `os.list` hiçbir seçeneği tanımıyor ve bunun yerine boş bir liste döndürdü. Bu düzeltildi. Ayrıca, seçenekler artık birleştirilebilir. '' ve ilk argüman olarak '..' artık doğru bir şekilde tanınıyor.
- `os.curdir` artık eğik çizgi ile belirlenen yoldaki ters eğik çizgileri otomatik olarak değiştiriyor.
- `os.fstat 've' ads.attrib 'Agena'yı çökertti. Bu, ya tarih tuşu (os.fstat) için boş bir tablo döndürerek düzeltildi. veya 0/0/01 00:00:00, (ads.attrib).
- utils.calendar, argümanının geçersiz, negatif veya çok büyük olması halinde Agena'ya çarptı. Bu değişti. Ayrıca, bir tarih 19 Ocak 2038 Salı günü geçiyorsa, doğru tarih döndürülür.
- Yeni işlevler `os.screensize` ve` os.mousebuttons`, sırasıyla mevcut ekran çözünürlüğünü ve bağlı farenin düğme sayısını döndürür (yalnızca Windows).
- agena.ini.sample dosyası, UNIX / Mac dağıtımlarında .agenainit.sample olarak yeniden adlandırıldı.
- Solaris için yeni bir makefile, şu anda Michael C. Ring'in yazdığı orijinal MAPM kaynaklarını tam olarak derlemek için Agena eşlemesiyle birlikte gönderiyor.
Bir dosyanın tarihi 19 Ocak 2038 Salı günü aştıysa,
0.31.2 sürümündeki yeni :
- Arbitray matematik hassaslığı için eşleme paketi artık Agena'nın DOS sürümünde de mevcuttur.
- mapa paketi tarafından kullanılan sayıların sayısı, Agena for DOS veya OS / 2 Warp'in başlangıcında 17 basamağa ayarlandı. Önceden, varsayılan 1 haneli idi.
- MAPM bağlaması için C kodu standartlaştırıldı. Önceden, DOS ve OS / 2 kaynak dosyaları UNIX ve Windows için farklıydı.
- Windows ve Mac OS X yükleyicileri için küçük geliştirmeler.
- Mac'te, dokümantasyon artık / Users / Share / Agena yerine Kitaplık / Belgeleme / Agena'da kullanılabilir.
- Günah, cos, arcsin, arccos ve arctan fonksiyonları, 0 yerine 0 yerine, hayali birim olarak geri döndü. Bu fonksiyonların geri dönüşü, ln (örn. Bu diğer işlevlerin sonucu olan hayali birim yanlıştı). Bu, sinüs, cos, arcsin, arccos ve arctan'ın geri dönüşünde hayali birimi -0 'e ayarlayarak düzeltildi.
- Eğer arcsin ve arccos fonksiyonları, arg (z (eğer gerçek ((z))); 1. Bu düzeltildi.
- OS / 2'de, çoğu karmaşık aritmetik işlevler tanımsız olarak döndürülür. Bu düzeltildi.
- OS / 2 ve DOS'ta, karmaşık alanda, belirli durumlarda tanımsız olarak dönen arccos ve arcsin operatörleriyle ilgili sorunların olduğunu unutmayın.
- Windows, i386 Solaris 10 ve Linux sürümleri artık karmaşık aritmetik hatalarının sayısını önemli ölçüde azaltan GCC 4.4.x (ve xmath86.h olmadan) ile derlenmiştir. Aslında, karmaşık matematik test durumları ayrıntılı sıfır hata döndürür. Sparc sürümü, Sun Sparc için GCC 4.3.3 ile derlenmiş ve 0.31.1 sürümünün karmaşık sayı aritmetiğinde daha az hataya sahipti.
- Yeniden adlandırılan dosyalar şunları içerir: config.h - & gt; agncfg.h, chelpers.h - & gt; agnhlps.h, agnxlib.h - & gt; agnxlib.h.
- Mac'te, gdi.mouse, artık fare tuşlarına basmak için standart değerler döndürür.
0.31.1 sürümündeki yeni :
- Agena 0.31, noktaları, çizgileri, daireleri, elipsleri, dikdörtgenleri ve yayları çizmeye yarayan tüm temel araçları içerir. vb., görüntü boyutunu ve renklerini kontrol etmek için.
0.31.0 sürümündeki yeni :
- Hata düzeltmesiyle dil tutarlılığı sürümü - yayınlandı. Nelerin değiştiğine ilişkin değişiklik günlüğüne bakın.
Yeni olan nedir? , 0.30.4 sürümünde:
- Agena artık dahili grafiklere sahip. Bu, X11 veya Win32 pencerelerinde veya Solaris, Linux ve Windows'ta GIF, PNG, JPEG, FIG veya PostScript dosyalarındaki grafikleri, görüntüleri vb. Agena, bu yeni yetenekleri sağlamak için Ljubomir Milanovic ve Horst Wagner tarafından yazılan g2 grafik kütüphanesine bağlanır.
- Agena 0.30, noktaları, çizgileri, daireleri, elipsleri, dikdörtgenleri ve yayları çizmek için gerekli tüm temel araçları içerir. vb., görüntü boyutunu ve renklerini kontrol etmek için.
- gt; 'gdi' ile;
- 20 Aralık 2009 itibariyle gdi paketi v0.1.4
- plotfn işlevi, isteğe bağlı olarak kullanıcı tanımlı bir renkte çizilen eksenlerle birlikte, bir ya da daha fazla fonksiyon grafiğini bir gerçekten çeker. Y ekseni aralığı da verilebilir, aksi takdirde Agena en iyi ayarı belirler. Setoption fonksiyonu ile ayarlanabilen ve bir oturumda üretilen tüm grafiklere uygulanacak başka seçenekler de vardır: pencere çözünürlüğü, renk haritası, çizgi kalınlığı ve arka plan rengi. Elbette, kullanıcı belirli bir arsa için bazı veya tüm seçenekleri geçersiz kılabilir. Tekillikler uygun şekilde tedavi edilir.
ark, arkkaplan, arka plan, daire, circlefilled, clearpalette, kapat, tire, elips, elips, floş, fontsize, initpalette, mürekkep, hat, satır, satır, satır, dikdörtgen , reset, resetpalette, setinfo, setoptions, yapı, metin, kalınlık, üçgen, üçgen, kullanım alanı
Yeni olan nedir? , 0.30.3 sürümünde:
Yerleşik grafikler, keyfi hassas matematik ve geliştirilmiş özellikler içeren Agena 0.30.3 sürümü kullanıma sunuldu.
Yeni olan nedir? , 0.30.2 sürümünde:
- Agena artık dahili grafiklere sahip. Bu, X11 veya Win32 pencerelerinde veya Solaris, Linux ve Windows'ta GIF, PNG, JPEG, FIG veya PostScript dosyalarındaki grafikleri, görüntüleri vb. Agena, bu yeni yetenekleri sağlamak için Ljubomir Milanovic ve Horst Wagner tarafından yazılan g2 grafik kütüphanesine bağlanır.
- Agena 0.30, noktaları, çizgileri, daireleri, elipsleri, dikdörtgenleri ve yayları çizmek için gerekli tüm temel araçları içerir. vb., görüntü boyutunu ve renklerini kontrol etmek için.
- gt; 'gdi' ile;
- 20 Aralık 2009 itibariyle gdi paketi v0.1.4
- plotfn işlevi, isteğe bağlı olarak kullanıcı tanımlı bir renkte çizilen eksenlerle birlikte, bir ya da daha fazla fonksiyon grafiğini bir gerçekten çeker. Y ekseni aralığı da verilebilir, aksi takdirde Agena en iyi ayarı belirler. Setoption fonksiyonu ile ayarlanabilen ve bir oturumda üretilen tüm grafiklere uygulanacak başka seçenekler de vardır: pencere çözünürlüğü, renk haritası, çizgi kalınlığı ve arka plan rengi. Elbette, kullanıcı belirli bir arsa için bazı veya tüm seçenekleri geçersiz kılabilir. Tekillikler uygun şekilde tedavi edilir.
ark, arkkaplan, arka plan, daire, circlefilled, clearpalette, kapat, tire, elips, elips, floş, fontsize, initpalette, mürekkep, hat, satır, satır, satır, dikdörtgen , reset, resetpalette, setinfo, setoptions, yapı, metin, kalınlık, üçgen, üçgen, kullanım alanı
Yeni sürüm nedir? : 0.29.0 sürümünde:
- Agena artık dahili grafiklere sahip. Bu, Ljubomir Milanovic tarafından yazılan g2 grafik kütüphanesine bir bağ ekleyerek Solaris, Linux ve Windows'ta bir pencerede veya GIF, PNG, JPEG, FIG veya PostScript dosyasında grafikler, görüntüler, vb. ve Horst Wagner.
- Agena 0.29.0, noktaları, çizgileri, daireleri, elipsleri, dikdörtgenleri, yayları çizmek için tüm temel araçları içerir. vb. renkleri yönetmek, görüntü dosyaları oluşturmak veya X11 veya Win32 pencerelerini açmak için kullanılır.
- Gelecek güncellemelerin birinde, gdi.plotfn ve gdi.plot fonksiyonlarını içeren yüksek seviyeli bir kullanıcı arayüzü, tek değişkenli fonksiyonları ve uçma sırasında noktaların kümelerini çizmenize izin verir. İki işlev zaten Agena 0.29.0'a dahil, ancak hala beta. İşte bir önizleme:
- gt; 'gdi' ile;
- 24 Kasım 2009 itibariyle gdi paketi v0.1.0
- ark, arka plan, daire, clearpalette, kapat, tire, elips, doluArc, doluŞura, doluEllipse, doluRektangle,
- filledTriangle, floş, fontsize, initpalette, mürekkep, lastaccessed, satır, açık, arsa, plotfn, nokta, dikdörtgen, sıfırlama,
- resetpalette, setinfo, setoptions, yapı, metin, kalınlık, üçgen, useink
- plotfn işlevi, isteğe bağlı olarak kullanıcı tanımlı bir renkte çizilen eksenlerle birlikte, bir fonksiyonun grafiğini bir gerçekte çizer. Y ekseni aralığı da verilebilir, aksi halde Agena en iyi ayarı belirlemeye çalışır. Setoption fonksiyonu ile ayarlanabilen ve bir oturumda üretilen tüm grafiklere uygulanacak başka seçenekler de vardır: pencere çözünürlüğü, renk haritası, çizgi kalınlığı ve arka plan rengi. Elbette, kullanıcı belirli bir arsa için bazı veya tüm seçenekleri geçersiz kılabilir. Tekillikler uygun şekilde tedavi edilir.
- plotfn (sin (x) * x>, -5, 5, renk ~ 'mavi', eksen rengi ~ 'gri', res ~ 640: 480);
Yeni olan nedir , 0.27.2 sürümünde:
- Yeni toSet baselib fonksiyonu, bir dizeyi bir karakter kümesine dönüştürür ve bir tablo veya diziyi bir kümeye dönüştürür.
- io.readlines, 2048'den fazla karakter içeren işlem satırlarına yamalı. Dahili bellek ayırma başarısız olursa, işlev şimdi de bir hata verir. Dahili arabellek boyutu 2048 bayttan 512 bayta düşürülmüştür. Bunu, agnconf.h dosyasında AGN_IOREADLINES_MAXLINESIZE değerine başka bir değer atayarak değiştirebilirsiniz.
- io.readlines artık dosya tanıtıcılarını da kabul ediyor. Dosya adlarını kullanırken, dosya adlarının aksine, io.readlines kullandıktan sonra dosyayı el ile kapatmanız gerektiğini unutmayın.
- io.readlines artık boş bir tablo döndürmez. Bunun yerine, bir hata veriyor.
- toSeq artık bir dize, ayar veya tablo almadığında başarısızlık yerine bir hata döndürür.
- Kullanılan baselib işlevi genişletildi ve bellek kullanımını bayt, kbyte ve gbyte olarak döndürebilir. Şimdi bir C işlevi.
- Belgelenmemiş gcinfo işlevi silinmiştir. Kullanıldığı işlevsellik kullanılmıştır.
- Yeni C API işlevi agn_usedbytes, sistem tarafından kullanılan bayt sayısını döndürür.
- toTable’ın yanlış hata mesajı düzeltildi.
- C AOI işlevini "agn_isioforcerror" olan "agn_isioforceerror" olarak yeniden adlandırdı.
Dosya yoksa
Yeni olan nedir , 0.27.0 sürümünde:
- math.erf hata fonksiyonu ve tamamlayıcı hata fonksiyonu math.erfc. eklendi.
- İlk tür math.besselj Bessel işlevini ve ikinci tür math.bessely Bessel işlevini ekledi. Sıralama ilk argüman, ikinci argüman olarak argüman tarafından verilir.
- _EnvIoForceError'ın yeni ortam değişkeni null olmayan bir değere (varsayılan) ayarlanmışsa, io.open, io.readlines ve çeşitli binio işlevleri, normal olarak geri dönmek yerine bir hata ile çıkılır.
- binio.readbytes ve binio.readchar, okunacak dosyanın bulunmaması durumunda başarısız yerine boş bir sıra döndürdü. Bu değiştirildi: başarısız ya da bir hata döndü.
- Bir Boolean özel-OR'sini değerlendiren veya doğru, yanlış, başarısız ve null olan değerler üzerinde çalışan xor işleci eklendi.
- Bir sözcüğün belirli bir ifadeyle bitip bitmediğini kontrol eden ve bir sayı olarak konumunu döndüren operatörün eklenmesi. Dizeler aynı uzunluğa sahipse, en az bir tanesi boş dizedir veya söz konusu şablonda sözcük bitmezse, operatör null değerini döndürür.
- hashtable, yalnızca bir okuma-yazma hatırlatma tablosuna sahipse (return ifadesi ile güncellenir), yalnızca true değerini döndürür.
- Yeni fonksiyon hasrotable, bir fonksiyonun salt okunur hatırlama tablosuna sahip olup olmadığını (iade ifadesiyle güncellenemeyen) ve doğru veya yanlış döndürüp döndürmeyeceğini belirler.
- Yeni işleçler, bir sayıdan daha yüksek ve alt baytları alırlar (örneğin, C çift).
- Yeni işleçler sethigh ve setlow daha yüksek ve alt baytları bir sayıya (yani C çift) ayarladı.
- Yeni işleçler grubu, bor, bxor ve bnot, bitlerine ve / veya münhasır veya sayılarla tamamlayıcı işlemleri gerçekleştirir.
- Yeni 'çekirdek' işlevi Agena çekirdeğinin ayarlarını yapılandırır. Şu anda bitsel işleçlerin dahili olarak çalışmasını (imzalı veya imzasız tam sayıların kullanımını) ve sayıların nasıl yazdırılacağını değiştirebilir.
- Gerçek sayılar x ile, math.argument şimdi x yerine 0 yerine Pi döndürür 0.
- Temel ANSI C kütüphanesi işlevlerindeki bir hata nedeniyle, arcsin ve arccos, UNIX sistemlerinde hayali kısımları sıfır ise karmaşık sayılarla yanlış sonuçlar üretti. Bu düzeltildi.
- math.isPrime, 2 numaralı hatalı bildirildi. Bu düzeltildi.
- Kılavuzun aksine, abs başarısızlıkla 2 döndü. Şimdi belgelenmiş olarak -1 döndürür.
- Bit paketi kaldırıldı.
- _EnvIoForceError öğesinin null olmayan bir değere ayarlanmış olup olmadığını kontrol eden yeni C API işlevi agn_isioforcerror eklendi.
- Yeni C API işlevi agn_setbitwise, işleçlerin band, bor, bnot, bxor ve shift'in dahili olarak imzalanmış veya imzasız tam sayılarla hesaplanıp hesaplanmadığını belirler.
- Yeni C API işlevi agn_getbitwise, agn_setbitwise tarafından ayarlanan modu döndürür.
- Yeni C API işlevi agn_setdigits, baskı numaraları için kullanılan basamak sayısını ayarlar.
- Yeni C API işlevi agn_getdigits, baskı numaraları için kullanılan basamak sayısını belirler.
- Dahili: luaP_opnames'ten kaldırılmış "REPL" girdisi kaldırıldı.
- Windows yükleyici, daha önce kurulmuş olan Agena sürümünü kontrol ederek, başka bir örneği zaten çalışıyorsa yükleyicinin başlatılmasını ve başka küçük geliştirmeler yapmasını engelleyerek geliştirildi.
Gereksinimleri :
- Ncurses
- GNU Readline
Yorum Bulunamadı