Agena adalah bahasa pemrograman prosedural open source, gratis, multi-platform dan mudah dipelajari yang dirancang untuk penggunaan sehari-hari. Ini dapat digunakan dalam lingkungan grafis, ilmiah, linguistik dan pendidikan, serta pada aplikasi scripting, mendukung semua sistem operasi utama.
Menawarkan banyak fasilitas kontrol aliran
Aplikasi ini menawarkan berbagai fasilitas kontrol aliran, seperti jika, kemudian. elif, kondisi lain, kasus dan kondisi lain, adalah operator, numerik untuk, dari, hingga, dan dengan loop, gabungan numerik untuk dan sementara loop, untuk dan dalam loop, while dan do / as loop, pernyataan lompatan, jeda pernyataan, serta validasi tipe data.
Menyediakan tugas enumerasi
Di antara fitur-fitur lainnya, kita dapat menyebutkan perpustakaan matematika presisi yang sewenang-wenang, konfigurasi mudah lingkungan pribadi Anda, sistem paket yang mudah digunakan, tugas enumerasi, kontrol lingkup melalui kata kunci epoksi / lingkup, dan banyak fitur menarik lainnya.
Di bawah kap dan ketersediaan
Tampilan cepat di bawah terpal akan menunjukkan kepada kita bahwa proyek tersebut ditulis dalam bahasa pemrograman C, BASIC, Lua dan ALGOL 68, yang artinya sintaksnya menyerupai sintaks proyek-proyek ini. Ini berjalan sepenuhnya di lingkungan konsol / terminal, yang berarti tidak memiliki antarmuka pengguna grafis (GUI).
Dikirim dengan editor sederhana
Terlepas dari kenyataan bahwa perangkat lunak Agena adalah aplikasi baris perintah, perangkat lunak ini dilengkapi dengan perangkat lunak editor grafis sederhana, yang disebut AgenaEdit, yang menampilkan lingkungan Agena terintegrasi dan kemampuan penyorotan sintaks. Ini sangat terinspirasi oleh editor serupa yang dikembangkan oleh Bill Spitzak untuk toolkit C ++ GUI cross-platform FLTK.
Bekerja pada Raspberry Pi
Kemampuan grafis Agena didukung pada sistem operasi GNU / Linux, Solaris, Mac OS X, Microsoft Windows, eComStation - OS / 2 dan DOS. Ini dapat dengan mudah digunakan pada platform perangkat keras 64-bit dan 32-bit, dan telah berhasil diuji pada board komputer Raspberry Pi berbasis ARM.
Apa yang baru di rilis ini:
- fungsi Kalkulus dan Statistik baru
Apa yang baru dalam versi:
- fungsi Kalkulus dan Statistik baru
Apa yang baru di versi 2.9.4:
- fungsi Kalkulus dan Statistik baru
Apa yang baru di versi 2.8.5:
- fungsi Kalkulus dan Statistik baru
Apa yang baru di versi 2.8.2:
- fungsi Kalkulus dan Statistik baru
Apa yang baru di versi 2.6.1:
- `stats.chauvenet` sekarang dapat memeriksa khusus untuk lebih rendah atau lebih tinggi dengan memberikan opsi `outlier = 'lower'` atau` outlier =' upper'`, masing-masing.
- `bags.remove` menyebabkan kesalahan segmentasi. Ini telah diperbaiki. Selain itu, semua fungsi `tas` yang diimplementasikan dalam C telah diubah secara internal.
- Metametode (tidak terdaftar) untuk `+`, `-`, dan` * `tidak berfungsi jika paket` tas` belum dipanggil dengan fungsi `with` atau pernyataan` impor / alias`. Ini telah diperbaiki.
Apa yang baru di versi 2.5.4:
- `stats.chauvenet` sekarang dapat memeriksa secara spesifik untuk pencilan bawah atau atas dengan meneruskan opsi` outlier = 'lower'` atau `outlier =' upper'`, masing-masing.
- `bags.remove` menyebabkan kesalahan segmentasi. Ini telah diperbaiki. Selain itu, semua fungsi `tas` yang diimplementasikan dalam C telah diubah secara internal.
- Metametode (tidak terdaftar) untuk `+`, `-`, dan` * `tidak berfungsi jika paket` tas` belum dipanggil dengan fungsi `with` atau pernyataan` impor / alias`. Ini telah diperbaiki.
Apa yang baru di versi 2.5.3:
- `stats.chauvenet` sekarang dapat memeriksa khusus untuk lebih rendah atau lebih tinggi dengan memberikan opsi `outlier = 'lower'` atau` outlier =' upper'`, masing-masing.
- `bags.remove` menyebabkan kesalahan segmentasi. Ini telah diperbaiki. Selain itu, semua fungsi `tas` yang diimplementasikan dalam C telah diubah secara internal.
- Metametode (tidak terdaftar) untuk `+`, `-`, dan` * `tidak berfungsi jika paket` tas` belum dipanggil dengan fungsi `with` atau pernyataan` impor / alias`. Ini telah diperbaiki.
Apa yang baru di versi 2.4.2:
- `stats.chauvenet` sekarang dapat memeriksa secara spesifik untuk pencilan bawah atau atas dengan memberikan opsi` outlier = 'lower'` atau `outlier =' upper'`, masing-masing.
- `bags.remove` menyebabkan kesalahan segmentasi. Ini telah diperbaiki. Selain itu, semua fungsi `tas` yang diimplementasikan dalam C telah diubah secara internal.
- Metametode (tidak terdaftar) untuk `+`, `-`, dan` * `tidak berfungsi jika paket` tas` belum dipanggil dengan fungsi `with` atau pernyataan` impor / alias`. Ini telah diperbaiki.
Apa yang baru di versi 2.3.0 RC1:
- Numerik `for` loops sekarang mendukung kata kunci` downto 'sehingga Anda dapat menghitung mundur tanpa menggunakan ukuran langkah `x` wajib negatif. Dalam konteks `downto ', ukuran langkah' oleh 'harus selalu positif. `dari 'start dan` to' stop values bersifat wajib ketika menggunakan kata kunci `downto '.
- Metametode '__finite', '__entier', dan '__sqrt' tidak lagi didukung. Sebaliknya, tiga metathod baru untuk operasi pada struktur telah ditambahkan: '__union' untuk operasi serikat, '__intersect' untuk menentukan persimpangan, dan '__minus' untuk perbedaan. Dengan demikian, paket `tas` sekarang juga mendukung ketiga operasi ini.
- Operator divisi integer `tidak mendukung metamethodnya dan menggunakan yang untuk float divison (operator` / `) sebagai gantinya. Ini telah diperbaiki.
- Fungsi baru `stats.gini` menentukan koefisien Gini, ukuran persamaan (dalam).
- Fungsi baru `stats.zscore` mengembalikan fungsi yang menghitung skor-z (skor standar) sampel - jumlah standar deviasi sampel di atas atau di bawah nilai rata-rata distribusi.
- `stats.sorted` sekarang secara default menggunakan algoritma Introsort, bukan Quicksort. Hal ini dapat mempercepat waktu komputasi tiga kali dalam situasi yang buruk (di mana Quicksort akan memerlukan operasi O (n ^ 2)), sementara tidak mengorbankan kinerja dalam situasi biasa. Sebenarnya, Introsort menggunakan Quicksort secara default dan kemudian secara otomatis beralih ke Heapsort jika kedalaman rekursinya mencapai 2 * log (n, 2), di mana n adalah jumlah elemen dalam struktur.
- Anda dapat mengganti logika ini dengan meneruskan opsi baru 'quicksort' yang hanya menggunakan metode Quicksort rekursif tradisional untuk mengurutkan angka. Juga, `stats.sorted` sekarang juga dapat menggunakan algoritme Heapsort secara eksklusif jika opsi baru 'heapsort' dilewatkan, dan algoritma Quicksort non-rekursif yang dibuat oleh Niklaus Wirth dengan opsi baru 'nrquicksort'.
- Fungsi baru `stats.meanmed` mengembalikan rata-rata aritmetika dan median suatu distribusi, atau alternatif bagi rata-rata dan median, mempercepat waktu komputasi ketika nilai-nilai ini dibutuhkan sekitar 20 persen.
- Memperbaiki pesan kesalahan operator `size`.
Apa yang baru di versi 2.1.1:
- Fungsi dan tambalan baru:
- `try / catch`: spesifikasi eksplisit dari variabel kesalahan tepat setelah token` catch` sekarang opsional. Jika tidak ada variabel kesalahan yang diberikan, maka pesan kesalahan secara otomatis disimpan ke variabel `lasterror` lokal, dan kata kunci` then` harus ditinggalkan:
- & gt; coba
- & gt; kesalahan ('oops!')
- & gt; tangkap
- & gt; cetak (lasterror)
- & gt; yrt;
- oops!
- Pernyataan `try / catch` terkadang tidak berfungsi dalam prosedur (variabel kesalahan yang tidak ditetapkan). Ini telah diperbaiki.
- Fungsi `net.wget` baru mengunduh halaman HTML dari Web.
- Tuned `skycrane.counter` sebesar 10%. Fungsi sekarang opsional menerapkan Kahan-Ozawa bukan algoritma penjumlahan Kahan asli jika argumen ketiga baru adalah string 'ozawa'. Sumber C yang sesuai telah dimodifikasi untuk mencegah pengoptimalan kompilator, yang dapat membatalkan optimisasi juga.
- `argerror` sekarang mencetak nama jenis yang ditentukan pengguna dari nilai yang diterima dalam pesan kesalahannya. Jika suatu nilai tidak memiliki tipe yang ditentukan pengguna, maka jenis dasarnya dikeluarkan.
- Opsi 'a' baru untuk `debug.getinfo` mengembalikan jumlah argumen yang diharapkan oleh suatu prosedur, berkat Rob Hoelz 'LuaPowerPatch.
- Memperbaiki ʻEffect of-range` pesan kesalahan untuk string.
- Memodifikasi file `stats.agn`,` linalg.agn`, `library.agn`, dan` ansi.agn` sehubungan dengan penanganan kesalahannya.
Apa yang baru di versi 2.1.0:
- Untuk penanganan kesalahan jenis baru, pernyataan `try / catch` baru telah diperkenalkan. Ini telah ditemukan dan ditulis oleh Hu Qiwei untuk Lua 5.1 pada tahun 2008.
- Secara umum, setiap pernyataan di mana pengecualian mungkin diharapkan dapat dimasukkan ke dalam `coba` klausa. Jika kesalahan dikeluarkan, dihasilkan oleh panggilan eksplisit ke fungsi `error` atau ke ekspresi, fungsi, atau pernyataan lain, kontrol segera melompat ke klausa` catch` terkait jika ada atau ke akhir `try / yrt ' `pernyataan jika tidak ada` catch` klausa yang telah diberikan, abaikan pernyataan berikutnya di dalam `coba` klausa.
- Fasilitas penanganan kesalahan `protect / lasterror` masih dan akan selalu didukung. Pernyataan kontrol yang baru juga bekerja dengan pernyataan `break`,` skip`, `redo`, dan` return` dengan sempurna.
- Pernyataan `redo` baru me-restart iterasi saat ini dari` for / to` dan `for / in` loop dari awal.
- Operator `recip` baru mengembalikan pembalikan angka x. Ini setara dengan ekspresi 1 / x, tetapi lebih cepat.
- Fungsi `stats.ema` baru menghitung rata-rata bergerak eksponensial dari suatu distribusi. Fungsi baru `stats.gema` mengembalikan fungsi iterator yang mengembalikan rata-rata moving average eksponensial masing-masing.
- `*%`, `+%`, dan `-%` mengembalikan `tidak ditentukan` daripada hasil yang benar jika operan kanan mereka nol. Ini telah diperbaiki.
- Memperbaiki pesan kesalahan di `net.survey`.
- Pesan kesalahan yang ditingkatkan untuk pengaitan dan pasangan string di luar rentang.
- Dalam versi ANSI, Solaris, dan DOS, operator `int` telah disetel.
- Fungsi C API baru `agn_arraytoseq` mengubah array numerik menjadi urutan dan mendorong urutan baru ini di atas tumpukan.
- Memperbarui manual.
Apa yang baru di versi 2.1.0 RC:
- Pernyataan `redo` baru me-restart iterasi arus dari` for / to` dan `for / in` loop dari awal. Contoh:
- & gt; bendera: = true; & gt; untuk j di [10, 11, 12] lakukan & gt; cetak ('sebelum', j, bendera); & gt; jika bendera dan j = 11 lalu & gt; bendera yang jelas; & gt; print ('- & gt;', j, bendera, 'melompat kembali') & gt; ulangi & gt; fi; & gt; cetak ('setelah', j, bendera) & gt; sampai j & gt; 12; sebelum 10 benar setelah 10 true before 11 true - & gt; 11 false jump back before 11 false after 11 false before 12 false after 12 false
- Operator `recip` baru mengembalikan pembalikan angka x. Ini setara dengan ekspresi 1 / x, tetapi lebih cepat.
- Fungsi `stats.ema` baru menghitung rata-rata bergerak eksponensial dari suatu distribusi. Fungsi baru `stats.gema` mengembalikan fungsi iterator yang mengembalikan rata-rata moving average eksponensial dari suatu distribusi. Untuk penggunaannya, silakan lihat file sumber src / stats.c, fungsi C * ema.
- `*%`, `+%`, dan `-%` mengembalikan `tidak ditentukan` daripada hasil yang benar jika operan kanan mereka nol. Ini telah diperbaiki.
- Memperbaiki pesan kesalahan di `net.survey`.
- Fungsi C API baru `agn_arraytoseq` mengubah array numerik menjadi urutan dan mendorong urutan baru ini di atas tumpukan.
Apa yang baru di versi 2.0.0:
- Pernyataan dan fungsi baru:
- Agena 2.0 adalah ke bawah yang kompatibel dengan Agena 1,12, kecuali bahwa token `impor`,` alias`, `hingga`, dan` onsuccess` sekarang menjadi kata kunci dan tidak dapat lagi digunakan sebagai variabel. Saat ini, ada Solaris, Debian (x86, PowerPC, Raspberry Pi), Windows, Mac, dan installer DOS tersedia untuk 2.0, termasuk Primer dan Referensi yang diperbarui yang menjelaskan semua fitur baru secara detail.
- Varian loop baru `untuk / as` dan` untuk / hingga` memeriksa kondisi di akhir iterasi saat ini dan memulai iterasi berikutnya atau membiarkan pengulangan. Ini berfungsi baik dengan `for / to`, maupun` for / in` loops. Akibatnya, kedua varian menjalankan satu putaran setidaknya sekali hingga kondisi yang ditentukan sedang diperiksa.
- Contoh:
- & gt; untuk saya sampai 5 lakukan
- & gt; cetak (i)
- & gt; sebagai i & lt; 3
- & gt; untuk saya dalam [1, 2, 3, 4, 5] lakukan
- & gt; cetak (i)
- & gt; sampai i & gt; = 3
- Lingkaran `do / until` baru iterasi hingga kondisi tertentu terpenuhi:
- & gt; c: = 0;
- & gt; lakukan
- & gt; inc c;
- & gt; cetak (c)
- & gt; hingga c & gt; = 3
- Dalam numerik `for` loops, klausa` to` mungkin tidak akan diberikan lagi. Sebagai gantinya, ketika meninggalkan klausa `to`, pengulangan iterasi hingga jumlah terbesar yang dapat diwakilkan di platform Anda, di C HUGE_VAL, telah tercapai:
- & gt; untuk saya lakukan
- & gt; cetak (i)
- & gt; od
- Klausa `onsuccess` baru dalam pernyataan` if` dan `case` mengeksekusi bongkahan jika setidaknya salah satu ketentuan benar. Contoh:
- & gt; bendera: = salah;
- & gt; jika 1 = 0 maka
- & gt; cetak (0)
- & gt; elif 1 = 1 lalu
- & gt; cetak (1)
- & gt; onsuccess
- & gt; bendera: = true
- & gt; lain
- & gt; cetak (-1)
- & gt; fi;
- & gt; cetak (bendera);
- benar
- & gt; bendera: = salah;
- & gt; jika 1 = 0 maka
- & gt; cetak (0)
- & gt; elif 1 = 0 lalu
- & gt; cetak (1)
- & gt; onsuccess
- & gt; bendera: = true
- & gt; lain
- & gt; cetak (-1)
- & gt; fi;
- & gt; cetak (bendera);
- salah
- & gt; bendera: = salah;
- & gt; a: = 2;
- & gt; huruf a
- & gt; dari 1 lalu
- & gt; cetak (1)
- & gt; dari 2 kemudian
- & gt; cetak (2)
- & gt; onsuccess
- & gt; bendera: = true
- & gt; lain
- & gt; cetak (-1)
- & gt; esac;
- & gt; cetak (bendera);
- benar
- Pernyataan `impor` baru memungkinkan untuk mengimpor satu atau lebih pustaka tanpa mencantumkan nama mereka ke dalam tanda kutip, mis. "import calc, stats" sama dengan "readlib ('calc', 'stats')".
- Opsi `alias` untuk pernyataan` impor` menetapkan satu atau lebih nama pendek ke fungsi pustaka yang dimulai, mis. "impor calc alias xpdiff" sama dengan "dengan ('calc', 'xpdiff')", dan "import calc alias" sama dengan "with ('calc')".
- Operator ``` yang baru memungkinkan untuk mengindeks tabel bahkan jika operand sisi kiri mengevaluasi ke` null`. Dalam hal ini, `null` dikembalikan dan tidak ada` percobaan untuk mengindeks field ... (nilai nol) `error dikeluarkan. Ini mirip dengan fungsi `getentry` tetapi tiga kali lebih cepat. Contoh:
- & gt; buat tabel a;
- & gt; a.b:
- nol
- & gt; a.b.c:
- Kesalahan dalam stdin, pada baris 1:
- mencoba untuk mengindeks field `b` (nilai null)
- & gt; a..b..c:
- nol
- & gt; buat tabel a;
- & gt; a [1]:
- nol
- & gt; a [1] [2]:
- Kesalahan dalam stdin, pada baris 1:
- mencoba untuk mengindeks field `?` (nilai null)
- & gt; a .. [1] .. [2]:
- nol
- Fungsi baru `drem` mengevaluasi sisa pembagian bilangan bulat x / y, tetapi berlawanan dengan` irem`, membulatkan hasil bagi internal x / y ke bilangan bulat terdekat daripada menuju nol.
- Fungsi baru `skycrane.todate` mengembalikan tanggal dan waktu saat ini sebagai string berformat.
- Fungsi baru `io.truncate` memotong file pada posisi file saat ini.
- Fungsi baru `io.move` mengubah posisi file sejumlah karakter yang ditetapkan ke kiri atau kanan.
- Fungsi baru `io.filesize` mengembalikan ukuran file.
- `readlib` sekarang menerima string sebagai argumennya, saja. Angka tidak diizinkan lagi.
- Jika argumen terakhir ke `with` adalah` false` boolean, maka fungsi tidak menulis nama pendek yang diberikan ke konsol (stdout).
- `strings.fields` sekarang juga menerima urutan angka indeks. Itu tidak, bagaimanapun, menerima indeks `0` lebih lama.
- Penginstal Raspberry Pi Wheezy Debian sekarang termasuk paket grafis `gdi`.
- File `change.log` sekarang ditampilkan dengan benar di Windows.
Apa yang baru di versi 2.0.0 RC3:
- Varian loop baru `untuk / as` dan` untuk / hingga` memeriksa kondisi di akhir iterasi saat ini dan memulai iterasi berikutnya atau membiarkan pengulangan. Ini berfungsi dengan baik untuk / ke, maupun untuk / di loop.
Apa yang baru di versi 2.0.0 RC2:
- Varian loop baru `untuk / as` dan` untuk / hingga` memeriksa kondisi di akhir iterasi saat ini dan dan memulai iterasi berikutnya atau meninggalkan satu putaran. Ini berfungsi dengan baik untuk / ke, maupun untuk / di loop.
Apa yang baru di versi 2.0.0 RC1:
- Pernyataan `impor` baru memungkinkan untuk mengimpor satu atau lebih pustaka tanpa mencantumkan nama mereka ke dalam tanda kutip, mis. "import calc, stats" sama dengan "readlib ('calc', 'stats')".
- Opsi `alias` untuk pernyataan` impor` menetapkan satu atau lebih nama pendek ke fungsi pustaka yang dimulai, mis. "impor calc alias xpdiff" sama dengan "dengan ('calc', 'xpdiff')", dan "import calc alias" sama dengan "with ('calc')".
- Operator ``` yang baru memungkinkan untuk mengindeks tabel bahkan jika operand sisi kiri mengevaluasi ke` null`. Dalam hal ini, `null` dikembalikan dan tidak ada` percobaan untuk mengindeks field ... (nilai nol) `error dikeluarkan. Ini mirip dengan fungsi `getentry` tetapi tiga kali lebih cepat.
Apa yang baru di versi 1.12.9:
- Fungsi baru `io.getclip` dan teks pertukaran` io.putclip` antara Agena dan clipboard (hanya Windows).
- `stats.prange` telah ditulis ulang dalam C dan telah menjadi 60% lebih cepat.
- `os.cpuinfo` sekarang mengembalikan informasi yang benar dan lebih lengkap tentang sistem berbasis ARM.
- Dalam sistem DOS dan UNIX termasuk Mac OS X dan hanya dalam domain kompleks, eksponensial basis 0 ke eksponen 0 + r * I, dengan r float non-nol apa pun, dikembalikan `tidak terdefinisi`, bukan 0. Ini telah diperbaiki.
- Dalam sistem DOS dan UNIX termasuk Mac OS X dan hanya dalam domain kompleks, eksponensial basis 0 ke eksponen r + 0 * I, dengan r float positif apa pun, dikembalikan `tidak terdefinisi`, bukan 0. Ini memiliki telah diperbaiki.
- `stats.obcount` dan` stats.obpart` tidak dapat menyertakan nilai ke dalam subinterval paling kanan. Ini telah diperbaiki.
- `calc.nakspline`,` calc.naksplinecoeffs`, `calc_clampedspline`, dan` calc_clampedsplinecoeffs` memprovokasi kesalahan segmentasi jika dipanggil dengan struktur yang berisi terlalu sedikit poin, yaitu pasangan. Ini telah diperbaiki dengan mengembalikan `kegagalan` dalam kasus ini.
- Potensi kesalahan pengaturan memori telah dihapus dari `calc.neville`,` calc.interp`, `calc.newtoncoeffs`,` calc.naksplinecoeffs`, `calc.clampedsplinecoeffs`,` calc.nakspline`, dan `calc.clampedspline`.
- Fungsi C API baru `agn_checkinteger` memeriksa apakah argumen adalah angka dan bilangan bulat dan - bertentangan dengan` luaL_checkinteger` - masalah kesalahan sebaliknya.
Apa yang baru di versi 1.9.0:
- Fungsi `alternate` baru mengembalikan argumen pertamanya jika argumen kedua adalah` null`. Kalau tidak, ia mengembalikan argumen kedua.
- Tombol -b ke eksekusi Agena telah dihapus karena outputnya sama dengan opsi -v.
- Versi Windows dan UNIX / Mac dari `strings.utf8size` mengandung kebocoran memori potensial; ini telah diubah.
- Semua DLL / SOs biner dari pustaka plus tidak lagi berisi kode yang tidak digunakan, melangsingkan ukuran mereka hingga 10 persen, tergantung pada sistem operasi. Makefile dan sumber yang sebelumnya mengimpor file header yang tidak digunakan telah diubah. Sebagai contoh, ini sama sekali mengurangi ukuran binari Windows oleh 55 kBytes.
- Perpanjang rangkaian uji.
- Memperbarui file skema.
Apa yang baru di versi 1.6.0:
- Fungsi dan Fitur Baru:
- Fungsi baru `checktype` menentukan apakah semua nilai dalam struktur adalah tipe yang diberikan.
- Fungsi baru `isint` memeriksa apakah semua argumennya adalah bilangan bulat.
- Fungsi baru `string.dleven` mengembalikan jarak Damerau-Levenshtein dari dua string.
- Fungsi baru `stats.ad` menentukan penyimpangan absolut dari semua nilai dalam struktur.
- Fungsi baru `stats.countentries` menghitung jumlah kemunculan semua elemen dalam struktur.
- Fungsi baru `stats.deltalist` mengembalikan struktur delta dari elemen tetangga yang terkait.
- Fungsi baru `stats.gmean` mengembalikan rerata geometrik struktur.
- Fungsi baru `stats.hmean` mengembalikan rerata harmonik struktur.
- Fungsi baru `stats.ios` mengembalikan indikator yang telah terbukti pada stabilitas dalam distribusi.
- Fungsi baru `stats.iqr` mengembalikan rentang interkuartil.
- Fungsi baru `stats.issorted` memeriksa apakah semua angka dalam struktur diurutkan dalam urutan menaik.
- Fungsi baru `stats.moment` menghitung momen dari data yang diberikan tentang asal.
- Fungsi baru `stats.numbperm` mengembalikan jumlah permutasi.
- Fungsi baru `stats.percentile` menentukan persentil.
- Fungsi baru `stats.skewness` mengembalikan kecondongan, indikator simetri dari distribusi probabilitas.
- Fungsi baru `stats.sumdata` merangkum semua kekuatan struktur tentang asal.
- `stats.tovals` sekarang menjadi fungsi pustaka C dan dengan demikian hingga 40 persen lebih cepat.
- Dengan tabel atau urutan kosong, `stats.qmean`,` stats.mean`, `stats.gmean`,` stats.sd`, `stats.median`,
- `stats.var` sekarang kembali gagal.
- Panjang maksimum untuk saluran masukan di interpreter yang berdiri sendiri telah diubah dari 512 hingga 2048 karakter.
- Variabel lingkungan baru `environ.maxpathlength` menyimpan jumlah karakter maksimum untuk jalur file (tidak termasuk karakter C).
- Variabel lingkungan baru `environ.minnumber` dan` environ.maxnumber` menyimpan nilai minimum dan maksimum nomor Agena (saat ini ANSI-C ganda) dapat disimpan.
- Variabel lingkungan baru `environ.umaxlong` berisi nilai integral maksimum dari tipe C yang tidak ditandai panjang pada sistem 32 + bit, dan tidak diberi tanda panjang pada mesin 16bit.
- C API:
- 100% kompatibilitas API Agena C ke Lua's C API telah ditetapkan kembali dengan memperkenalkan fungsi-fungsi pembuangan Lua. Jadi Anda sekarang dapat menyimpan fungsi dalam representasi biner, mis. dengan menggunakan `strings.dump` atau lua_dump pada level C.
- Memperkenalkan fungsi `agnL_optboolean` baru untuk memeriksa argumen Boolean opsional dan mengembalikannya jika berhasil.
- Perbaikan Bug:
- `environ.globals` selalu berhenti dengan kesalahan, ini telah diperbaiki.
- `berasumsi` mengembalikan kesalahan dengan kedua argumennya menjadi atau mengevaluasi ke 'tidak terdefinisi'. Sekarang mengembalikan true dalam kasus ini.
- Agena jatuh ketika melewati sebuah meja kosong dan sebuah delimitor untuk `join` - ini telah diperbaiki.
- Pilihan `colour` tidak lagi diabaikan oleh` gdi.plot`.
- Dengan tabel, `stats.minmax` mengembalikan nilai yang salah untuk minimum. Sekarang berfungsi dengan benar.
- Dengan tabel kosong, `stats.median` mengembalikan 0, sekarang mengembalikannya gagal.
- Bertentangan dengan dokumentasi, `string.menyerahkan` mengembalikan 'true' dengan kedua string sama. Ini telah diperbaiki.
- `run` dikembalikan` tidak dapat membuka file` jika skrip Agena yang ada memasukkan kesalahan sintaks. Ini telah diperbaiki dengan sepenuhnya menulis ulang fungsi.
- Menambahkan Lua 5.1.4 patch 9: "Pembuatan kode salah untuk beberapa ekspresi boolean tertentu [misalnya kompleks]."
- Menambahkan Lua 5.1.4 patch 11: "Parser dapat mengumpulkan prototipe ketika membangunnya."
- * Info: Menambahkan Lua 5.1.4 patch 10, metamethod indeks "[__write / __ new] mungkin tidak berfungsi jika metatable adalah metatabelnya sendiri", untuk Agena tidak diperlukan, karena Agena sudah berfungsi dengan benar dalam kasus ini.
- Menghapus kata kunci `standar` yang tidak digunakan.
- Beberapa pengerasan fungsi dan fitur.
- Penyempurnaan:
- Menambahkan versi _experimental_ dari `io.anykey` ke versi Mac. Namun, setidaknya pada Lion, tombol yang ditekan terkadang digemakan pada shell.
- `utils.readcsv` sekarang dapat secara opsional mengembalikan semua nilai dalam file CSV dalam urutan datar.
- Paket `clock` sekarang mendukung operator divisi` / `dengan menambahkannya ke metatable` tm` operator.
- Perilaku `dengan` telah diubah karena tidak dapat menetapkan nama pendek untuk banyak fungsi pustaka: Jika fungsi telah dimasukkan ke dalam tabel .aux, jangan tetapkan nama pendek untuk nama fungsi ini; jika tidak berikan nama pendek untuk _all_ fungsi paket lainnya. Jadi: `package.register` untuk mendaftarkan semua fungsi pustaka untuk` dengan` untuk menetapkan nama pendek, tidak lagi diperlukan. Ini akan dihentikan dalam salah satu rilis berikut.
- Memperbaiki rangkaian uji.
- Manual:
- Meningkatkan manual dan indeks.
- Konsistensi:
- Untuk semua renamings berikut, nama variabel lama berikut masih didukung.
- `lingkungan.MinLong` telah diganti namanya menjadi` environ.minlong`.
- `lingkungan.MaxLong` telah diganti namanya menjadi` environ.maxlong`.
- `environ.BufferSize` telah diganti namanya menjadi` environ.buffersize`.
- `environ.PathSep` telah diganti namanya menjadi` environ.pathsep`.
- `environ.More` telah diganti namanya menjadi` environ.more`.
- `environ.WithProtected` telah diganti namanya menjadi` environ.withprotected`.
- `environ.Os` telah diganti namanya menjadi` environ.os`.
- `environ.Cpu` telah diganti namanya menjadi` environ.cpu`.
- `environ.Release` telah diganti namanya menjadi` environ.release`.
- `environ.GdiDefaultOptions` telah diubah namanya menjadi` environment.gdidefaultoptions`.
- Di Windows, `os.login` dan` os.computername` sekarang mengembalikan 'fail' seperti yang dilakukan versi UNIX atau OS / 2.
- Sakelar `-DCOMPAT13` telah dihapus untuk mengkompilasi versi standar 1.3.x Agena.
- Lainnya:
- Tidak berlaku `calc.fseq` telah dihapus. Silakan gunakan `nseq` sebagai gantinya.
Apa yang baru di versi 1.5.1:
- Menambal "string.fields` yang tidak berfungsi sama sekali. Juga, telah dikonversi ke fungsi C library dan dengan demikian 2.6 kali lebih cepat.
- `strings.words` sekarang menerima argumen ketiga, jika disetel ke` true`, pembatas berikutnya diabaikan.
- Menghapus kemungkinan kebocoran keamanan dari `io.write` dan` io.writeline` dan memperbaiki pesan kesalahannya.
- Ditambal `binio.readchar` untuk menghindari masalah dengan ukuran file lebih besar dari 2 GByte.
- Pesan kesalahan terkoreksi dari fungsi `xbase.purge`,` xbase.readvalue`, `xbase.purge`,` ads.getvalues`, `binio.readshortstring`,` os.computername`, `os.login`, `os.fattrib`,` environ.kernel`, `package.register`.
- Terabyte sekarang dapat dimasukkan dengan notasi T, di mana ada bilangan bulat, dan T adalah karakter `T`. Demikian juga, g menunjukkan miliaran, dan triliunan. Lihat halaman 48 manual untuk informasi lebih lanjut.
- Memperbarui manual.
- Sebagian besar semua switch kompatibilitas mundur dalam kode sumber C telah dihapus karena alasan pembersihan kode. Ini hanya mempengaruhi mereka yang mencoba mengkompilasi ulang Agena 1.5 atau lebih tinggi dengan kompatibilitas mundur penuh ke Agena 1.3 dan 1.4, dan dengan sebagian besar kompatibilitas ke Lua 5.0 (kecuali penanganan perpustakaan Lua 5.0 lama).
Apa yang baru di versi 1.5.0:
- `map` sekarang juga dapat memproses string yang diberikan sebagai argumen kedua. Fungsi masing-masing dan argumennya secara berurutan diterapkan pada setiap karakter dari kiri ke kanan, dan hasilnya dikembalikan secara berurutan.
- `run`: Jika Anda ingin memuat dan mengeksekusi kode dari file dengan akhiran 'agn', Anda tidak perlu menentukan akhiran dalam argumen lebih lama. Jadi `jalankan 'test'` dan` run' test.agn'` sekarang sama.
- Kata kunci `adalah` sekarang wajib untuk menentukan prosedur. (Dengan GCC, gunakan switch -DCOMPAT14 untuk mengkompilasi versi Agena di mana kata kunci `is` masih opsional.)
- Pernyataan `coba` sudah tidak digunakan lagi dan tidak lagi didukung. (Dengan GCC, gunakan switch -DCOMPAT14 untuk mengkompilasi versi Agena yang masih menampilkan pernyataan ini.)
- Fungsi `utils` berikut telah dihapus:` arraysize`, `getarray`,` getwholearray`, `newarray`,` searcharray`, `setarray`. Untuk kompatibilitas mundur, mereka telah ditambahkan ke file lib / compat.agn. (Dengan GCC, gunakan switch -DCOMPAT14 untuk mengkompilasi versi Agena yang masih mendukung fungsi utils asli.)
- `utils.singlesubs` telah ditulis ulang sepenuhnya. Sekarang mengharapkan urutan angka sebagai argumen kedua, bukan struktur userdata stringarray sebelumnya. Ini adalah 35% lebih lambat dari versi sebelumnya, tetapi penghapusan struktur stringarray lebih penting.
- `string.include` jatuh jika dipanggil dengan 0 sebagai argumen kedua. Ini telah diperbaiki.
- Mengaplikasikan patch Michael G. Schwern 10 Mei 2011 ke fungsi bantu tanggal 32-bit-Year 2038-Fix-nya yang digunakan oleh paket `os` dan` xbase` (`Make mktime64 () memperbaiki tm struct yang masuk seperti ISO C require.`)
- Pengoptimalan kode internal: beberapa inisialisasi pustaka dan pemuatan file Fungsi C menggunakan tumpukan untuk membuat jalur dan string nama file. C aux function `concat` baru yang ditulis oleh Solar Designer sekarang digunakan sebagai gantinya dalam banyak kasus.
- API Agena C sekarang 100% kompatibel dengan API Lua C untuk memfasilitasi pengiriman paket C Lua ke Agena.
- Fungsi berikut ini telah diubah namanya: 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.
- Makro berikut telah diganti namanya: luaL_checkint - & gt; agnL_checkint, luaL_optint - & gt; agnL_optint.
- Berlawanan dengan penerapan Agena sebelumnya, lua_tonumber sekarang mengembalikan 0 seperti di Lua jika non-nomor telah diloloskan, daripada mengembalikan HUGE_VAL.
- lua_setglobal2 telah dihapus. Gunakan lua_pushvalue dan lua_setglobal sebagai gantinya.
Apa yang baru di versi 1.4.2:
- Jika dalam daftar parameter dari prosedur yang ditentukan oleh pengguna ditentukan, dalam
- prosedur panggilan tidak ada kesalahan yang dikeluarkan dan prosedur telah dieksekusi sebagai gantinya, dalam kasus berikut:
- a) suatu tabel, set, urutan, pasangan, atau prosedur - tanpa menggunakan definisi pengguna
- ketik - telah berlalu,
- b) tidak ada nilai sama sekali yang diteruskan untuk parameter yang terkait.
Apa yang baru di versi 1.4.1:
- Nama pendek untuk `stats.quartiles` dan` stats.mode` tidak dapat ditetapkan oleh fungsi `with`. Ini telah diperbaiki.
- Secara keliru, `dengan` tidak dapat menetapkan nama pendek untuk` gdi.settriangle`. Ini telah diubah.
- Penanganan kesalahan `calc.polygen` telah ditingkatkan.
- Pesan kesalahan yang ditingkatkan dari `fractals.draw` untuk file peta FRACTINT yang hilang.
- Menghilangkan fungsi `strings.rseek` yang tidak digunakan lagi. Untuk kompatibilitas mundur, `string.seek` telah ditambahkan ke file lib / compat.agn.
- Menambahkan tombol -d untuk mencetak informasi debug saat memulai interpreter.
- Versi Windows dari Agena kini telah dikompilasi dengan GCC 4.5.2.
- File skema bahasa yang diperbarui.
- Manual telah diperbarui.
Apa yang baru di versi 1.4.0:
- Perubahan Semantik:
- Variabel kontrol putaran dari loop numerik `untuk / ke` sekarang secara otomatis menjadi lokal ke blok sekitarnya sebagai ganti dari badan loop (inner) mereka. Jika variabel lokal dengan nama yang sama dengan variabel kontrol loop telah dideklarasikan dan ditetapkan sebelum
- mengeksekusi loop numerik, itu ditimpa oleh nilai iterasi terakhir dari loop. Dengan demikian, `eksternal` beralih dalam numerik` untuk `loop tidak lagi diterima. (Dengan GCC, gunakan sakelar -DCOMPAT13 untuk mengkompilasi versi Agena yang masih mengenali tetapi mengabaikan kata kunci `eksternal`.)
- Dengan konstanta `gagal`,` bukan` mengembalikan `true`, tetapi dengan` fail` ditetapkan ke variabel, `bukan` mengembalikan false. Ini telah diubah, yaitu 'a: = gagal; tidak (a) 'sekarang mengembalikan `true`.
- `stats.median` sekarang mengembalikan` fail` daripada 0 jika struktur yang diberikan kosong.
- `utils.readcsv`: Jika satu spasi putih dilewatkan dengan opsi` delim` dan jika opsi `ignorespaces` belum diberikan, spasi putih tidak dihapus secara otomatis lebih lama sebelum memisahkan setiap baris file ke dalam kata-katanya.
- Fungsi ini juga memiliki dua opsi baru: `header` yang menandai baris pertama dalam file, dan` output` yang memungkinkan untuk menyimpan isi file ke dalam kamus dengan nama field yang ditentukan oleh header file.
- Notasi substring `$` tidak lagi didukung. (Dengan GCC, gunakan switch-DCOMPAT13 untuk mengkompilasi versi Agena yang masih menyediakan operator `$`.)
- Ekstensi:
- Pengulangan yang tidak terbatas telah ditambahkan. Jenis pengulangan ini berulang tanpa batas dan dapat terganggu hanya dengan pernyataan `istirahat` atau` kembali`. Mereka adalah gula sintaksis untuk `while true ... od` loops.
- Dengan tabel, `stats.minmax` sebelumnya hanya bekerja dengan array. Ini telah diubah, yaitu nilai dengan kunci non-positif yang sesuai (misalnya string, bilangan bulat non-positif, float negatif dan positif, dll.) Sekarang dikenali dengan benar dalam evaluasi.
- `stats.mean`,` stats.qmean`, `stats.sd`, dan` stats.var` sekarang juga memproses urutan.
- Fungsi `stats.mode` baru mengembalikan semua nilai dalam urutan atau tabel dengan jumlah kemunculan terbesar, yaitu frekuensi tertinggi.
- Fungsi `stats.quartiles` baru mengembalikan kuartil pertama, kedua, dan ketiga dari tabel atau urutan _sorted_.
- Fitur tidak tercatat sebelumnya dari `linalg.matrix` telah ditambahkan ke manual dan penanganan kesalahannya telah diperbaiki.
- Peningkatan penanganan kesalahan `linalg.hilbert`.
- `gdi.setinfo` sekarang menerima opsi` square`. Jika `square = false`, maka sumbu x dan y tidak akan memiliki skala yang sama pada plot yang dibuat dengan` gdi.plot`.
- Fungsi `gdi.plot` untuk menggambar grafis sayangnya belum didokumentasikan. Ini telah diubah.
- `gdi.plot` menerima dua opsi baru: Opsi 'x' menentukan rentang horizontal di mana plot ditampilkan, dan opsi 'y' menentukan rentang vertikal.
- Jika struktur PLOT dilewatkan ke `gdi.plot` yang hanya berisi POINT, LINES, RECTANGLES, TRIANGLE, CIRCLE, dan ELLIPSE (termasuk * FILLED variannya), maka` gdi.plot` otomatis menentukan skala (` gdi.setinfo` tidak perlu dipanggil).
- Fitur OOP yang diwarisi dari Lua sekarang didokumentasikan dalam Lampiran A9. Penulis tidak merekomendasikan pemrograman berorientasi objek.
- Tuning:
- Operator `terisi` yang disetel sekitar 3%.
- Tweak `in`,` join`, `sadd`,` qsadd`, `replace`,` copy`, `unique`, dan Cantor tetapkan operator pada tabel dan setel sedikit.
- Dengan tabel, operator `top` dan` bottom` sekarang sekitar 5% lebih cepat.
- Operator `size` setidaknya 8% lebih cepat jika tabel tidak menyertakan null.
- `linalg.mzip`,` linalg.mmul`, dan `linalg.transpose` telah disetel sekitar 3% masing-masing.
- Angka untuk / ke loop dengan ukuran langkah pecahan telah dioptimalkan dengan mengurangi jumlah variabel kontrolnya hingga setengahnya. Namun, ini tidak mencapai peningkatan kecepatan.
- Tambalan:
- Ditambal `linalg.ludecomp` untuk mendeteksi matriks tunggal. Juga, fungsi sekarang dapat secara otomatis menentukan urutan matriks yang diberikan.
- Berlawanan dengan manual, `gdi.plot` tidak secara otomatis menentukan rentang horizontal dan vertikal. Ini telah diperbaiki.
- `gdi.plot` tidak lagi mengabaikan opsi` square` yang ditetapkan oleh `gdi.setinfo`.
- `gdi.setinfo` menambahkan pengaturan ke struktur INFO bahkan jika sudah ada. Ini telah diubah.
- Lingkaran tidak diplot dengan benar oleh `gdi.plot`. Ini telah diubah.
- Fungsi `gdi.plot` dalam banyak situasi mengabaikan pewarnaan individual objek geometris. Ini telah diubah.
- Paket gdi tidak memberikan nama pendek untuk `gdi.settriangle`,` gdi.settrianglefilled`, `gdi.setrectangle`, dan` gdi.setrectanglefilled`. Ini telah diubah.
- Paket fraktal tidak menugaskan nama pendek untuk fungsi "esctime" yang ditentukan pengguna. Ini telah diubah. Pesan kesalahan terkoreksi dari `fractals.draw` jika argumen posisi bukan angka.
- Miscellaneous:
- Fungsi `calc.fseq` telah digabung menjadi` nseq`. Untuk kompatibilitas mundur, `calc.fseq` masih merupakan bagian dari paket calc, tetapi fungsi sebenarnya mengacu pada implementasi` nseq`.
- Menambahkan variabel `environment.FractScreenUpdates` ke` paket fraktal` untuk menunjukkan jumlah garis vertikal (bilangan bulat non-negatif) setelah itu fraktal akan diperbarui dalam sebuah jendela. Variabel `environment.FractOptimised` sudah tidak digunakan lagi.
- Fungsi gdi tambahan telah dikelompokkan kembali.
Apa yang baru di versi 1.3.3:
- Menambal ke `instr`:
- Ketika dalam mode regex, operator mengembalikan hasil yang salah jika posisi awal telah diberikan.
- Ketika dalam mode pencarian biasa, operator mengembalikan kesalahan out-of-range jika tidak ada posisi awal yang diberikan.
- Kecuali dalam mode pencarian terbalik, jika tidak ada kecocokan yang ditemukan, argumen pertama telah dikembalikan sebagai ganti `null`.
- Pesan kesalahan yang diperbaiki dari pernyataan `buat` dengan memperhatikan urutan.
- Di AgenaEdit, ketika mengeluarkan lebih dari satu struktur hanya dengan satu panggilan ke `cetak`, struktur tidak dicetak dalam bentuk penuh jika struktur pertama menampilkan metametode __tostring. Ini telah diubah.
Apa yang baru di versi 1.3.2:
- Rilis ini termasuk perbaikan bug, ekstensi, dan manual yang ditingkatkan:
- `dimension` menciptakan hasil yang menarik jika struktur dilewatkan sebagai
- initialiser. Ini telah diubah: `dimensi` sekarang membuat salinan independen dari
- struktur saat memulai tabel.
- Fungsi `strings.rseek` telah ditambahkan ke operator` instr`.
- Jadi, `string.rseek` sudah tidak digunakan lagi. Untuk kompatibilitas mundur,
- `strings.rseek` telah ditambahkan ke file lib / compat.agn.
- `string.hits` sekarang mendukung ekspresi reguler dan menangkap. Perilaku ini
- dapat dimatikan dengan meneruskan boolean sebagai argumen ketiga.
- `strings.isabbrev` dan` strings.isending` sekarang secara otomatis menggunakan pencarian biasa
- jika tidak ada ekspresi atau tangkapan reguler yang dilewatkan sebagai bagian dari yang kedua
- .
- Tweaked `strings.ismagic` dan` strings.isfloat`.
- Fungsi `log` sekarang 13% lebih cepat.
- Saat mengeluarkan lebih dari satu struktur hanya dengan satu panggilan ke `print`,
- struktur tidak dicetak dalam bentuk penuh jika struktur pertama menampilkan __tostring
- metamethod. Ini telah diubah.
- Menambahkan kategorisasi fungsi ke Bab 7 untuk memfasilitasi awal untuk yang baru
- pengguna.
argumen
Apa yang baru di versi 1.3.1:
- Ada masalah dengan panggilan bertingkat ke operator biner berikut: `xor`,` atendof`, `& amp; & amp;`, `||`, `^^`, `::`, dan `: - `, dan dengan demikian juga dengan printer cantik yang berhenti dengan kesalahan saat mencetak struktur bertumpuk. Ini telah diperbaiki.
- Empat perbaikan ke `os.list`: Jika opsi 'r' dilewatkan, direktori kerja saat ini telah salah diubah setelah penyelesaian panggilan.
- Jika 'r' belum lulus sebagai argumen terakhir, fungsi ini mengeluarkan kesalahan.
- `null` belum diterima sebagai argumen pertama yang menunjukkan direktori kerja saat ini.
- Di Windows 7, mencetak isi direktori root tidak berfungsi, yaitu os.list ('c:') mengembalikan isi direktori kerja saat ini.
- Saat string diindeks dengan angka bukan, mis. "str [null]", Agena mengembalikan `null`. Sekarang kesalahan muncul.
- Jika library.agn belum ditemukan, jalur yang salah telah dikeluarkan dua kali dalam peringatan. Ini telah diubah.
Apa yang baru di versi 1.2:
- Operator substring telah didesain ulang tetapi versi lama masih akan tersedia hingga Agena 2.0: yang baru adalah: `str [left to right]`, yang lama telah: `str $ (kiri, kanan)` . Contoh: sebelumnya: `str: = 'string'; print (str $ (2, 3)) `- & gt; 'tr' sekarang: `str: = 'string'; cetak (str [2 hingga 3]) `- & gt; 'tr'
- Anda sekarang dapat menentukan sublebar susunan tabel dan urutan dengan sintaks baru yang disebutkan di atas: `s [kiri ke kanan]`. Contoh: sekarang: `a: = [10, 20, 30, 40]; mencetak (a [2 hingga 3]) `- & gt; [20, 30] sekarang: `a: = seq (10, 20, 30, 40); mencetak (a [2 hingga 3]) `- & gt; seq (20, 30)
- Fungsi `ops` sekarang memungkinkan untuk menentukan nilai yang akan dikembalikan dengan melewatkan urutan posisi indeks sebagai argumen pertama, mis. ops (seq (1, -1), 10, 20,
- 30).
- Fungsi baru `string.include` menyisipkan urutan karakter ke dalam string
- pada posisi tertentu.
- Fungsi-fungsi berikut sekarang mengeluarkan kesalahan alih-alih hanya mengembalikan `kegagalan` di
- kasus kegagalan: `os.remove`,` os.move`, `os.mkdir`,` os.rmdir`, `os.chdir`.
- Perbaikan untuk operator berikut ini bekerja pada set dan urutan tentang pengumpulan sampah: `insert` statement,` union`, `intersection`,` minus`, `unique`,` copy`, `pop / top` dan pernyataan `pop / bottom`, dan tetapkan tugas.
- Pesan kesalahan yang ditingkatkan dari `fractals.draw` jika file peta warna FRACTINT belum
- tidak ditemukan.
Apa yang baru di versi 1.1.0:
- Rilis ini memiliki fungsi baru dan ruang nama yang bersih.
- Kompatibilitas ke Agena 1.0:
- Beberapa fungsi telah dihapus dari Agena dan beberapa fungsi telah dikonversi ke fungsi paket (lihat di bawah). Jika Anda masih ingin menggunakannya, terbitkan readlib 'compat' pada baris perintah atau masukkan pernyataan di atas ke dalam file inisialisasi Anda jika Anda lebih suka kompatibilitas ke Agena 1.0.
- Fungsionalitas yang Diperpanjang:
- Pernyataan `pop / top` dan` pop / bottom` dan `bottom` dan` top` sekarang juga dapat diterapkan ke tabel array.
- Ketika dipanggil dengan `null` atau tanpa argumen,` os.chdir` tidak lagi mengeluarkan kesalahan tetapi mengembalikan direktori kerja saat ini. Dengan demikian, fungsi `os.curdir` C sebelumnya telah diganti dengan yang ditulis dalam bahasa Agena.
- `os.list` sekarang secara rekursif melintasi subfolder jika opsi 'r' baru diberikan.
- Operator `join` sekarang juga menerima delimitor opsional dan mendukung opsi untuk menentukan elemen pertama dan terakhir dari struktur yang akan digabungkan.
- `instr` sekarang dapat mencari dari ujung kanan string dengan meneruskan posisi negatif.
- Jika tabel menyertakan tabel, set, urutan, atau pasangan lain, `copy` sekarang tahu bagaimana menangani referensi ini dengan benar jika mereka terjadi beberapa kali: Jika struktur tertanam disertakan n kali, maka satu salinan asli dibuat dan referensi n-1 ke struktur yang baru dibuat ini dimasukkan. Sebelumnya, n salinan independen telah dibuat.
- Fungsi `isnonposint` baru memeriksa apakah bilangan yang ditetapkan semuanya bilangan bulat dan tidak positif.
- `io.close` sekarang dapat menutup beberapa file hanya dengan satu panggilan.
- Fungsi `with` tidak menetapkan nama pendek untuk prosedur berikut dari paket` math`: `convertbase`,` fraction`, `zeroin`,` todecimal`, `lcm`,` gcd`, dan ` ndigits`. Ini telah diperbaiki.
- Fungsi `rwritemode` yang disebutkan dalam manual tidak ada. Sekarang tersedia tetapi dipanggil `rmode`.
- Pesan galat dari berbagai fungsi telah diperbaiki.
- Namespace Cleansing: Berganti Nama atau Fungsi yang Dipindahkan:
- Fungsi pustaka `register` dan` loadclib` telah dipindahkan ke pustaka `paket`.
- Mantan fungsi `rdelete`,` rget`, `rinit`,` roinit`, `rmode`,` rset`, `mengingat`, dan` defaults` pustaka dasar telah dipindahkan ke paket `rtable` baru .
- Mengganti nama tabel _Env global menjadi `environ` yang sekarang juga berisi prosedur untuk mengakses lingkungan.
- Variabel lingkungan global `homedir` dan` infolevel` sebelumnya telah diubah namanya menjadi `environ.homedir` dan` environ.infolevel`, berturut-turut.
- Fungsi pustaka dasar berikut yang berikut telah dipindahkan ke paket `environ`:` anames`, `attrib`,` gc`, `getfenv`,` globals`, `isselfref`,` pointer`, `setfenv` , `digunakan`,` userinfo`, `__RESTART`,` __DOTTYPRINT`.
- `mapm.xtoNumber` telah diubah namanya menjadi` mapm.xtonumber`, `mapm.xtoString` telah diubah namanya menjadi` mapm.xtostring`. Untuk kompatibilitas mundur, nama fungsi yang lama masih dapat digunakan dengan mengeksekusi file lib / compat.agn (baca dulu paket `mapm` dan kemudian memuat file compat.agn).
- Fungsi dan Variabel Usang:
- `string.seek` sudah tidak digunakan lagi. Fungsionalitasnya telah ditambahkan ke operator `instr`. Untuk menonaktifkan mode pencocokan pola `instr`, lewati awal pencarian sebagai yang ketiga dan` true` sebagai argumen keempat. `instr` adalah sekitar 40% lebih cepat dalam mode pencocokan non-pola dari` strings.seek`. Untuk kompatibilitas mundur, `string.seek` telah ditambahkan ke file lib / compat.agn.
- Fungsi pustaka dasar `concat` telah dihapus. Gunakan `join` sebagai gantinya. Untuk kompatibilitas mundur, fungsi sebelumnya telah ditambahkan ke file lib / compat.agn.
- Fungsi `hasrtable` dan` hasrotable` telah dihapus. Untuk kompatibilitas mundur, mereka telah ditambahkan ke file lib / compat.agn.
- Fungsi `pcall` sudah tidak digunakan lagi. Gunakan `protect` sebagai gantinya. Untuk kompatibilitas mundur, fungsi telah ditambahkan ke file lib / compat.agn.
- Fungsi `maptoset` sudah tidak digunakan lagi. Untuk kompatibilitas mundur, fungsi telah ditambahkan ke file lib / compat.agn.
- Fungsi `os.alldirs` sudah tidak digunakan lagi. Gunakan opsi 'dirs' dan 'r' dalam panggilan ke `os.list` sebagai gantinya. Untuk kompatibilitas mundur, fungsi telah ditambahkan ke file lib / compat.agn.
- `os.isMac`,` os.isSolaris`, `os.isLinux`,` os.isWin`, `os.isOS2`,` os.isDOS`, `os.isHaiku` sudah tidak digunakan lagi. Silakan gunakan lingkungan baru variabel environ.Os dan environ.Cpu sebagai gantinya, yang juga mempercepat kode. Untuk kompatibilitas mundur, fungsi telah ditambahkan ke file lib / compat.agn.
- Variabel _VERSION tanpa dokumen telah dihapus. Untuk kompatibilitas mundur, tugasnya telah ditambahkan ke file lib / compat.agn.
- Perubahan Lainnya:
- Fungsi C API lua_rawsetstringnumber yang disebutkan dalam manual tidak ada. Ini telah diubah.
- Kode optimisasi ke parser.
- Di beberapa paket, secara tidak sengaja beberapa variabel secara implisit telah dideklarasikan secara global. Ini telah diperbaiki.
- File sampel inisialisasi yang diperbaiki dan diperbarui.
- AgenaEdit telah diperbarui.
- File skema bahasa telah diperbarui.
- Installer Linux sekarang termasuk paket xBase.
Apa yang baru di versi 1.0.6:
- Pesan kesalahan yang ditingkatkan dari operator `join`,` copy`, dan `filled`, dari` toset`, `toseq`, dan` totable` functions, dari `insert`,` delete`, `pop` statements, dan dari `for` loops.
- Dengan urutan, Agena jatuh di urutan peristiwa berikut: 1) pernyataan `delete` telah dieksekusi, 2) urutan setelahnya kosong, dan 3) elemen baru telah disisipkan lagi. Ini telah diperbaiki. (Secara internal, pernyataan `delete` tidak lagi secara internal mengurangi ukuran urutan lebih lama.)
- Dengan string besar, `concat` jatuh. Ini telah diperbaiki.
- Dengan string 512 dan lebih banyak byte, `join` dan` replace` bisa crash. Ini telah diperbaiki. Kedua operator sekarang juga lebih cepat dari sebelumnya.
- `math.isprime` mengembalikan hasil yang salah dengan argumen & gt; 2 ^ 31 (disebutkan secara samar dalam manual). Ini telah diperbaiki dengan memperluas rentang argumen ke integer dengan nilai hingga +/- 2 ^ 63.
- `math.nextprime` dan` math.prevprime` memiliki masalah yang sama dengan argumen yang lebih besar seperti `math.isprime`. Ini juga telah berubah. Dengan argumen 2, `io.nextprime` salah mengembalikan 5 bukannya 3. Ini telah diperbaiki juga.
Apa yang baru di versi 1.0.5:
- `join` bisa menabrak Agena dan sebaliknya berperilaku tidak terduga jika string yang dihasilkan
- melebihi 512 byte. Ini telah diubah.
- Jika `restart` telah dipanggil setelah kesalahan telah dikeluarkan di sebelumnya
- pernyataan, Agena dalam kesempatan langka jatuh karena tumpukan korupsi. Ini telah
- tetap.
- Dengan tabel yang baru dibuat yang mengandung tepat satu elemen di bagian hash, `attrib`
- sekarang mengembalikan hasil yang benar untuk jumlah slot hash yang dialokasikan (1 bukannya 0).
- Pesan kesalahan terkoreksi dari `qsadd` dan` sadd`.
- Pesan kesalahan yang ditingkatkan dari operator `join`,` copy`, dan `filled`, dan dari` insert`
- dan `delete`.
- Penanganan kesalahan `baca`,` save`, dan `fractals.draw` telah diperbaiki.
- Peningkatan pada makefile.
- Ukuran buffer kini telah distandarisasi di sumber.
pernyataan
Apa yang baru di versi 1.0.4:
- Karena kecelakaan langka telah dilaporkan selama inisialisasi (di Windows XP SP3 dan OpenSolaris 134, dalam beberapa keadaan), pengumpulan sampah sekarang dimatikan dalam tahap inisialisasi. Kesalahan segmentasi langka ini terjadi di OpenSolaris ketika menjalankan biner Agena di direktori menyimpan sebagai root, dan di XP ketika mengklik ikon desktop Agena dengan hak admin lokal.
- Memperkenalkan tombol -d ke opsi baris perintah untuk mencetak informasi selama inisialisasi Agena.
- Mengenalkan penanganan kesalahan yang tepat jika memori tidak dapat dialokasikan secara internal ke: `trim`,` upper`, `lower`,` os.curdir`, dan `strings.rseek`.
- Menghapus kebocoran memori potensial dalam inisialisasi C fungsi agenaL_initialise dan agenaL_setLibname, dan dalam `io.write *` dan `print`.
Apa yang baru di versi 1.0.3:
- Fungsi baru `melindungi` memanggil prosedur dalam mode terproteksi dan menangkap kesalahan yang mungkin terjadi sehingga perhitungan tidak terganggu. Dalam kasus kesalahan, itu menetapkan string kesalahan ke variabel global `lasterror`. Ini terkait dengan `pcall`, tetapi tidak mengembalikan kode status sebagai hasil pertama.
- `attrib` sekarang mengembalikan hasil yang benar dengan struktur kosong. Dengan struktur kosong, fungsi salah menghitung satu elemen hash yang ditetapkan sebelumnya.
- `attrib` sekarang mengembalikan jumlah byte yang ditempati oleh tabel, set, dan urutan bersama dengan kunci 'byte' yang baru. Jumlah byte yang dikembalikan didasarkan pada informasi yang terkadang bertentangan yang tersedia di internet.
- `ganti` jatuh Agena jika string yang dihasilkan melebihi 512 byte. Ini telah diubah.
- `berasumsi` sekarang mengembalikan 'Asumsi gagal.' bukannya 'asumsi gagal.'
- Fungsi C API baru lua_setglobal2 menetapkan nilai di bagian atas tumpukan ke nama global. Bertentangan dengan lua_setglobal, nilainya tidak muncul.
- Pembersihan kode dari lobject.h (Struktur tabel), dan lapi.c (actnodesize macro). Bugfix ke fungsi API C agn_deletertable jika Agena dikompilasi dengan lua_assert non-void. Ubah ke nilai kembalinya fungsi savestate yang digunakan selama inisialisasi untuk mencegah kemungkinan (kecil) dari tumpukan korupsi.
Apa yang baru di versi 1.0.2:
- Prosedur `os.setenv` baru menetapkan variabel lingkungan pada tingkat sistem operasi. Fungsi ini awalnya ditulis oleh Mark Edgar.
- Di Windows, `os.getenv` sekarang memanggil fungsi Windows API asli untuk mendapatkan nilai variabel lingkungan. Kode Windows telah ditulis oleh Mark Edgar.
- Fungsi `os.environ` baru mengembalikan semua variabel lingkungan yang ditetapkan dalam tabel. Fungsi ini awalnya ditulis oleh Mark Edgar.
- `io.open` sekarang menambahkan penunjuk FILE, nama, dan mode file yang berhasil dibuka ke dalam tabel baru` io.openfiles`. `io.close` menghapus entri dari` io.openfiles` jika file berhasil ditutup.
- Ketika dipanggil tanpa argumen, `io.read` sekarang mengembalikan kesalahan jika dipanggil tanpa argumen di AgenaEdit (dalam upaya untuk membaca keyboard).
- Jika `io.anykey` dan` io.getkey` dipanggil dalam AgenaEdit, pesan kesalahan yang tepat ditampilkan.
- Salah satu sub-prosedur inisialisasi telah diubah untuk menghindari kemungkinan tumpukan korupsi (meskipun masalah tidak pernah terjadi).
- os.isMac ('ppc') sekarang berfungsi pada mesin PowerPC.
- Bab 4 dan 6 dari Primer dan Referensi telah direvisi dan diperpanjang. Sebuah indeks telah ditambahkan dan banyak kosmetik telah dilakukan, juga.
- Menyimpan informasi versi yang benar ke Windows yang dapat dieksekusi.
Apa yang baru di versi 1.0:
- Hadirin yang terhormat,
- setelah hampir empat tahun pengembangan, saya menerbitkan Agena 1.0, bahasa pemrograman prosedural, yang berasal dari sumber Lua C.
- Komunitas saya sebenarnya sangat, sangat kecil, tetapi beberapa pengguna mengatakan kepada saya bahwa itu baik-baik saja, bermanfaat dan stabil.
- Saya akan sangat senang jika Anda meninjau Agena dan memberi tahu saya tentang hasil Anda. Jika Anda tidak menemukan itu berguna, tolong beri tahu saya secara pribadi, dan beri saya kesempatan untuk memperbaiki masalah.
Apa yang baru di versi 0.34.1d:
- Versi ini menyertakan versi GUI terbaru dari AgenaEdit (lihat file yang dapat dieksekusi agenaedit).
Apa yang baru di versi 0.34.1:
- AgenaEdit dengan syntax-highlighting dan built-in runtime engine telah dirilis dengan Agena 0.34.1.
Apa yang baru di versi 0.34.0:
- AgenaEdit dengan syntax-highlighting dan built-in runtime engine telah dirilis dengan Agena 0.34.0.
Apa yang baru di versi 0.33.2:
- Agena 0.33.2 dengan dukungan file xBase telah dirilis.
Apa yang baru di versi 0.33.1:
- Agena 0.33.1 dengan dukungan file xBase telah dirilis.
Apa yang baru di versi 0.33.0:
- Paket `xbase` baru dapat membaca dan menulis file xBase yang kompatibel dengan standar dBASE III.
- Paket `binio` dan` ads` sekarang dapat menangani file hingga 2 ^ 63 byte. Sebelum mereka dapat menangani hanya file dengan ukuran hingga 2 ^ 31 byte.
- Fungsi baru `io.lock`,` io.unlock`, `binio.lock`,` binio.unlock`, `ads.lock` dan` ads.unlock` mengunci file dari akses baca dan tulis oleh Agena lainnya
- berfungsi atau bahkan aplikasi lain asalkan yang terakhir menggunakan protokol penguncian.
- Fungsi baselib `baca` tidak lagi dapat ditimpa oleh` dengan`.
- `package.checkClib` yang baru memeriksa apakah paket yang disimpan ke pustaka dinamis C telah diinisiasi. Jika tidak, ia mengembalikan peringatan yang dicetak di layar dan membuat tabel paket kosong. Kalau tidak, itu tidak melakukan apa-apa.
- Pelabuhan Haiku sekarang mendukung pustaka tautan dinamis.
Apa yang baru di versi 0.32.3:
- Agena 0.32.3 dengan fungsi Kalkulus yang baru dan telah disetel telah dirilis.
- Pengguna Mac tidak perlu menginstal pustaka ketergantungan tambahan lagi.
- Pelabuhan Haiku sekarang tersedia.
Apa yang baru di versi 0.31.5:
- Versi ini berisi grafis bawaan, matematika presisi arbitrer, dan fitur yang ditingkatkan.
Apa yang baru di versi 0.31.3:
- Menambahkan paket fraktal agar mudah menggambar fraktal di Solaris, Mac, Linux, dan Windows.
- Pada Solaris dan Linux, `gdi.mouse` sekarang mengembalikan nilai standar untuk menekan tombol mouse (sama dengan Mac dan Windows).
- Ketika diberi opsi -v, Agena sekarang tidak mengeksekusi file inisialisasi lebih lama.
- Pada UNIX atau Mac, nama file dari file inisialisasi harus selalu `.agenainit`, apakah mereka berada di / usr / agena / lib atau folder pribadi.
- Distribusi Mac biner untuk CPU Intel berjalan sekitar 30% lebih cepat daripada rilis sebelumnya.
- Fungsi `io.getkey` sekarang tersedia di edisi Mac OS X.
- Di Mac, `os.system` sekarang mengembalikan informasi lengkap tentang sistem operasi dan tipe CPU. Perhatikan bahwa ini mengembalikan informasi tentang kernel Darwin, dan bahwa entri pertama di tabel hasil sekarang adalah `Darwin` dan bukan` MacOSX`.
- `os.memstate`,` os.freemem` dan `os.beep` sekarang mendukung Mac OS X.
- `io.anykey` tersedia di semua platform, tetapi mengembalikan` fail` pada DOS dan Mac. Dengan demikian, `gdi.draw` tidak akan lagi menampilkan kesalahan pada Mac saat menggunakan opsi` mouse`.
- `os.listcore` telah diperpanjang untuk mengembalikan nama file, direktori, atau tautan. '.' dan '..' sekarang tidak pernah dikembalikan.
- `os.list` tidak mengenali opsi apa pun dan mengembalikan daftar kosong. Ini telah diperbaiki. Juga, opsi sekarang dapat digabungkan. '.' dan '..' karena argumen pertama sekarang dikenali dengan benar.
- `os.curdir` sekarang secara otomatis menggantikan backslash di jalur yang ditentukan dengan garis miring.
- `os.fstat` dan` ads.attrib` menabrak Agena jika tanggal file melebihi Selasa, 19 Januari 2038. Ini telah diperbaiki dengan mengembalikan tabel kosong untuk kunci tanggal (os.fstat), atau 0/0/01 00:00:00, (ads.attrib).
- `utils.calendar` menabrak Agena jika argumennya batal, negatif atau terlalu besar. Ini telah diubah. Selain itu, jika tanggal melampaui Selasa, 19 Januari 2038, tanggal yang benar dikembalikan.
- Fungsi baru `os.screensize` dan` os.mousebuttons` mengembalikan resolusi layar saat ini dan jumlah tombol pada mouse yang terhubung, masing-masing (hanya Windows).
- File agena.ini.sample telah diubah namanya menjadi .agenainit.sampel dalam distribusi UNIX / Mac.
- Makefile baru untuk Solaris sekarang dikirim dengan mapm Agena yang mengikat untuk sepenuhnya mengkompilasi sumber MAPM asli yang ditulis oleh Michael C. Ring.
Apa yang baru di versi 0.31.2:
- Paket mapm untuk presisi matematika arbitrase kini juga tersedia dalam edisi DOS Agena.
- Jumlah digit yang digunakan oleh paket mapm diinisialisasi ke 17 digit saat start-up Agena untuk DOS atau OS / 2 Warp. Sebelumnya, defaultnya adalah 1 digit.
- Kode C untuk pengikatan MAPM telah distandarisasi. Sebelumnya, file sumber DOS dan OS / 2 berbeda dari yang untuk UNIX dan Windows.
- Peningkatan kecil ke Windows dan Mac OS X installer.
- Di Mac, dokumentasi sekarang tersedia di Perpustakaan / Dokumentasi / Agena alih-alih / Pengguna / Bagikan / Agena.
- Fungsi sin, cos, arcsin, arccos, dan arctan kembali -0 bukannya 0 sebagai unit imajiner, yang menyebabkan hasil yang salah jika pengembalian fungsi-fungsi ini telah diterapkan ke fungsi lain seperti ln (yaitu tanda unit imajiner hasil dari fungsi-fungsi lainnya tidak benar). Ini telah diperbaiki dengan menetapkan unit imajiner -0 ke 0 dalam mengembalikan dosa, cos, arcsin, arccos, dan arctan.
- Fungsi arcsin dan arccos mengembalikan hasil yang salah untuk argumen z, jika abs (real ((z))) & lt; 1. Ini telah diperbaiki.
- Di OS / 2, fungsi aritmatika yang paling rumit kembali tidak terdefinisi. Ini telah diperbaiki.
- Perhatikan bahwa di dalam OS / 2 dan DOS, di dalam domain yang kompleks masih ada masalah dengan operator arcs dan arcsin yang kembali tidak terdefinisi dalam situasi tertentu.
- Windows, i386 Solaris 10, dan versi Linux kini telah dikompilasi dengan GCC 4.4.x (dan tanpa xmath86.h) yang mengurangi jumlah kesalahan dalam aritmatika kompleks secara signifikan. Faktanya, kasus uji matematika rumit yang rumit mengembalikan kesalahan nol. Versi Sparc telah dikompilasi dengan GCC 4.3.3 untuk Sun Sparc dan memiliki lebih sedikit bug dalam aritmatika bilangan kompleks daripada rilis 0.31.1.
- Berganti nama termasuk file berikut: config.h - & gt; agncfg.h, chelpers.h - & gt; agnhlps.h, agnxlib.h - & gt; agnxlib.h.
- Di Mac, gdi.mouse sekarang mengembalikan nilai standar untuk menekan tombol mouse.
Apa yang baru di versi 0.31.1:
- Agena 0.31 mencakup semua alat dasar untuk memplot titik, garis, lingkaran, elips, persegi panjang, busur. dll., untuk mengontrol ukuran gambar, dan warna.
Apa yang baru di versi 0.31.0:
- Rilis konsistensi bahasa dengan perbaikan bug - telah dirilis. Lihat log perubahan untuk apa yang telah berubah.
Apa yang baru di versi 0.30.4:
- Agena sekarang menampilkan grafis bawaan. Ini akan memungkinkan Anda untuk menggambar grafik, gambar, dll. Di jendela X11 atau Win32 atau ke file GIF, PNG, JPEG, FIG, atau PostScript, baik di Solaris, Linux, dan Windows. Agena berikatan dengan pustaka grafis g2 yang ditulis oleh Ljubomir Milanovic dan Horst Wagner, untuk menyediakan kemampuan baru ini.
- Agena 0,30 mencakup semua alat dasar untuk memplot titik, garis, lingkaran, elips, persegi panjang, busur. dll., untuk mengontrol ukuran gambar, dan warna.
- & gt; dengan 'gdi';
- paket gdi v0.1.4 pada 20 Desember 2009
- arc, arcfilled, latar belakang, lingkaran, circlefilled, clearpalette, tutup, dash, elips, elipsfile, flush, fontsize, initpalette, tinta, lastaccessed, line, newline, newpoint, terbuka, plot, plotfn, titik, persegi panjang, rectanglefilled , reset, resetpalette, setinfo, setoptions, struktur, teks, ketebalan, segitiga, segi tiga, toink
- Fungsi plotfn menarik satu atau lebih grafik fungsi dalam satu nyata, secara opsional bersama dengan sumbu diplot dalam warna yang ditentukan pengguna. Kisaran untuk sumbu y juga dapat diberikan, jika tidak, Agena menentukan pengaturan terbaik. Ada berbagai opsi lain yang dapat diatur dengan fungsi setoptions dan yang akan berlaku untuk semua grafik yang dihasilkan dalam sesi: resolusi jendela, peta warna, ketebalan garis, dan warna latar belakang. Tentu saja, pengguna dapat mengesampingkan beberapa atau semua opsi untuk plot tertentu. Singularitas diperlakukan dengan benar.
Apa yang baru di versi 0.30.3:
- Agena 0.30.3 dengan grafis built-in, matematika presisi arbitrer, dan fitur yang ditingkatkan telah dirilis.
Apa yang baru di versi 0.30.2:
- Agena sekarang menampilkan grafis bawaan. Ini akan memungkinkan Anda untuk menggambar grafik, gambar, dll. Di jendela X11 atau Win32 atau ke file GIF, PNG, JPEG, FIG, atau PostScript, baik di Solaris, Linux, dan Windows. Agena berikatan dengan pustaka grafis g2 yang ditulis oleh Ljubomir Milanovic dan Horst Wagner, untuk menyediakan kemampuan baru ini.
- Agena 0,30 mencakup semua alat dasar untuk memplot titik, garis, lingkaran, elips, persegi panjang, busur. dll., untuk mengontrol ukuran gambar, dan warna.
- & gt; dengan 'gdi';
- paket gdi v0.1.4 pada 20 Desember 2009
- arc, arcfilled, latar belakang, lingkaran, circlefilled, clearpalette, tutup, dash, elips, elipsfile, flush, fontsize, initpalette, tinta, lastaccessed, line, newline, newpoint, terbuka, plot, plotfn, titik, persegi panjang, rectanglefilled , reset, resetpalette, setinfo, setoptions, struktur, teks, ketebalan, segitiga, segi tiga, toink
- Fungsi plotfn menarik satu atau lebih grafik fungsi dalam satu nyata, secara opsional bersama dengan sumbu diplot dalam warna yang ditentukan pengguna. Kisaran untuk sumbu y juga dapat diberikan, jika tidak, Agena menentukan pengaturan terbaik. Ada berbagai opsi lain yang dapat diatur dengan fungsi setoptions dan yang akan berlaku untuk semua grafik yang dihasilkan dalam sesi: resolusi jendela, peta warna, ketebalan garis, dan warna latar belakang. Tentu saja, pengguna dapat mengesampingkan beberapa atau semua opsi untuk plot tertentu. Singularitas diperlakukan dengan benar.
Apa yang baru di versi 0.29.0:
- Agena sekarang menampilkan grafis bawaan. Ini akan memungkinkan Anda untuk membuat grafik, gambar, dll. Di jendela atau ke file GIF, PNG, JPEG, FIG, atau PostScript di Solaris, Linux, dan Windows, dengan menyertakan pengikatan ke pustaka grafis g2 yang ditulis oleh Ljubomir Milanovic dan Horst Wagner.
- Agena 0.29.0 menampilkan semua alat dasar untuk memplot titik, garis, lingkaran, elips, persegi panjang, busur. dll., untuk mengelola warna, dan untuk membuat file gambar atau membuka jendela X11 atau Win32.
- Dalam salah satu pembaruan yang akan datang, antarmuka pengguna tingkat tinggi yang menampilkan fungsi gdi.plotfn dan gdi.plot memungkinkan Anda untuk memplot fungsi univariat dan sekumpulan poin on-the-fly. Kedua fungsi sudah termasuk dalam Agena 0.29.0, tetapi masih beta. Berikut ini pratinjau:
- & gt; dengan 'gdi';
- paket gdi v0.1.0 sejak 24 November 2009
- busur, latar belakang, lingkaran, clearpalette, tutup, dash, elips, filledArc, filledCircle, filledEllipse, filledRectangle,
- filledTriangle, flush, fontsize, initpalette, tinta, lastaccessed, line, open, plot, plotfn, point, rectangle, reset,
- resetpalette, setinfo, setoptions, struktur, teks, ketebalan, segitiga, useink
- Fungsi plotfn menggambarkan grafik fungsi dalam satu nyata, secara opsional bersama dengan sumbu yang diplot dalam warna yang ditentukan pengguna. Kisaran untuk sumbu y juga dapat diberikan, jika tidak Agena mencoba menentukan pengaturan terbaik. Ada berbagai opsi lain yang dapat diatur dengan fungsi setoptions dan yang akan berlaku untuk semua grafik yang dihasilkan dalam sesi: resolusi jendela, peta warna, ketebalan garis, dan warna latar belakang. Tentu saja, pengguna dapat mengesampingkan beberapa atau semua opsi untuk plot tertentu. Singularitas diperlakukan dengan benar.
- plotfn (sin (x) * x & gt; & gt ;, -5, 5, warna ~ 'biru', axiscolour ~ 'gray', res ~ 640: 480);
Apa yang baru di versi 0.27.2:
- Fungsi baselib toSet baru mengubah string menjadi sekumpulan karakternya, dan tabel atau urutan menjadi satu set.
- io.readlines telah ditambal untuk memproses baris dengan lebih dari 2048 karakter. Fungsi sekarang juga mengeluarkan kesalahan jika alokasi memori internal gagal. Ukuran buffer internal telah menurun dari 2048 byte menjadi 512 byte. Anda dapat mengubah ini dengan menetapkan nilai lain untuk AGN_IOREADLINES_MAXLINESIZE dalam file agnconf.h.
- io.readlines sekarang juga menerima pegangan file. Saat menggunakan penanganan file, sebagai lawan nama file, harap perhatikan bahwa Anda harus menutup file secara manual setelah menggunakan io.readlines.
- io.readlines tidak lagi mengembalikan tabel kosong jika file tidak ada. Sebaliknya, ia mengeluarkan kesalahan.
- toSeq sekarang mengembalikan kesalahan alih-alih gagal jika tidak menerima string, set, atau tabel.
- Fungsi baselib yang digunakan telah diperpanjang dan dapat mengembalikan penggunaan memori dalam byte, kbytes, dan gbytes. Ini adalah fungsi C sekarang.
- Fungsi gcinfo yang tidak terdokumentasi telah dihapus. Fungsionalitasnya telah digunakan.
- Fungsi C API baru agn_usedbytes mengembalikan jumlah byte yang digunakan oleh sistem.
- Pesan kesalahan salah yang dikoreksi dari toTable.
- berganti nama menjadi fungsi AOI `agn_isioforcerror` menjadi` agn_isioforceerror`.
Apa yang baru di versi 0.27.0:
- Menambahkan fungsi kesalahan math.erf, dan fungsi kesalahan math.erfc.
- Menambahkan fungsi Bessel dari jenis pertama math.besselj, dan fungsi Bessel dari jenis matematika yang kedua. Urutan diberikan oleh argumen pertama, argumen sebagai argumen kedua.
- Jika variabel lingkungan baru _EnvIoForceError disetel ke nilai bukan nol (default), io.open, io.readlines, dan berbagai fungsi binio berhenti dengan kesalahan, bukan hanya kembali secara normal.
- binio.readbytes dan binio.readchar mengembalikan urutan kosong alih-alih gagal jika file yang akan dibaca tidak ada. Ini telah diubah: gagal atau kesalahan sekarang dikembalikan.
- arcsin dan arccos sekarang adalah operator dan dengan demikian sekitar 40% lebih cepat.
- Menambahkan operator xor yang melakukan Boolean exclusive-OR pada nilai yang mengevaluasi atau benar, salah, gagal, dan null.
- Menambahkan operator atendof yang memeriksa apakah suatu kata berakhir dalam frasa tertentu dan mengembalikan posisinya sebagai angka. Operator mengembalikan null jika string memiliki panjang yang sama, setidaknya salah satunya adalah string kosong, atau kata tidak berakhir pada pola yang diberikan.
- hasrtable sekarang hanya mengembalikan nilai true, jika memiliki tabel baca baca tulis (dimutakhirkan oleh pernyataan kembali).
- Fungsi baru hasrotable menentukan apakah suatu fungsi memiliki tabel ingat hanya-baca (yang tidak dapat diperbarui oleh pernyataan kembali) dan mengembalikan benar atau salah.
- Operator baru menjadi lebih tinggi dan getlow mengambil byte yang lebih tinggi dan lebih rendah dari angka (misal, C ganda).
- Operator baru menetapkan setinggi dan setel menetapkan byte yang lebih tinggi dan lebih rendah ke angka (misal, C ganda).
- Band operator baru, bor, bxor, dan bnot melakukan operasi bitwise, atau, eksklusif, atau, dan komplementer pada angka.
- Fungsi `kernel` baru mengkonfigurasi pengaturan kernel Agena. Saat ini dapat mengubah cara operator bitwise bekerja secara internal (penggunaan bilangan bulat yang ditandatangani atau tidak ditandatangani), dan bagaimana angka dicetak.
- Dengan bilangan real x, math.argument sekarang mengembalikan Pi bukannya 0 jika x & lt; 0.
- Karena bug dalam fungsi perpustakaan ANSI C yang mendasari, arcsin dan arccos menghasilkan hasil yang salah dengan bilangan kompleks jika bagian imajinernya nol dalam sistem UNIX. Ini telah diperbaiki.
- math.isPrime melaporkan false dengan angka 2. Ini telah diperbaiki.
- Berlawanan dengan manual, abs kembali 2 dengan gagal. Sekarang ia mengembalikan -1 seperti yang didokumentasikan.
- Paket bit telah dihapus.
- Menambahkan fungsi API baru agn_isioforcerror yang memeriksa apakah _EnvIoForceError telah disetel ke nilai bukan nol.
- Fungsi C API baru agn_setbitwise menentukan apakah band operator, bor, bnot, bxor, dan pergeseran secara internal menghitung dengan bilangan bulat bertanda tangan atau tidak bertanda.
- Fungsi C API baru agn_getbitwise mengembalikan mode yang diatur oleh agn_setbitwise.
- Fungsi API C baru agn_setdigits menetapkan jumlah digit yang digunakan untuk mencetak angka.
- Fungsi C API baru agn_getdigits menentukan jumlah digit yang digunakan untuk mencetak angka.
- Internal: Menghapus entri "REPL" yang tidak digunakan lagi dari luaP_opnames.
- Pemasang Windows telah ditingkatkan dengan sekarang memeriksa versi Agena yang telah diinstal sebelumnya, dengan mencegah penginstal dimulai jika instance lain dari itu sudah berjalan, dan oleh beberapa perbaikan kecil lainnya.
Persyaratan :
- Ncurses
- GNU Readline
Komentar tidak ditemukan