Agena

Phần mềm chụp màn hình:
Agena
Các chi tiết về phần mềm:
Phiên bản: 2.11.5 Cập nhật
Ngày tải lên: 22 Jun 18
Nhà phát triển: Alexander Walz
Giấy phép: Miễn phí
Phổ biến: 23

Rating: nan/5 (Total Votes: 0)

Agena là một ngôn ngữ lập trình thủ tục nguồn mở, miễn phí, đa nền tảng và dễ học được thiết kế để sử dụng hàng ngày. Nó có thể được sử dụng trong môi trường đồ họa, khoa học, ngôn ngữ và giáo dục, cũng như trên các ứng dụng kịch bản, hỗ trợ tất cả các hệ điều hành chính thống.


Cung cấp nhiều cơ sở kiểm soát lưu lượng

Ứng dụng cung cấp nhiều cơ sở kiểm soát luồng, chẳng hạn như nếu, sau đó. elif, các điều kiện khác, trường hợp và các điều kiện khác, là toán tử, số cho, từ, đến, và bởi vòng, kết hợp số cho và trong khi vòng, cho và trong vòng, trong khi và làm / như vòng, một tuyên bố bỏ qua, nghỉ ngơi tuyên bố, cũng như xác thực loại dữ liệu.


Cung cấp các bài tập liệt kê

Trong số các tính năng khác, chúng tôi có thể đề cập đến thư viện toán học chính xác tùy ý, cấu hình dễ dàng môi trường cá nhân của bạn, hệ thống gói dễ sử dụng, bài tập liệt kê, kiểm soát phạm vi thông qua từ khóa epocs / scope và nhiều tính năng hấp dẫn khác.

Theo mui xe và tính khả dụng

Một cái nhìn nhanh dưới mui xe sẽ cho chúng ta thấy rằng dự án được viết bằng ngôn ngữ lập trình C, BASIC, Lua và ALGOL 68, có nghĩa là cú pháp của nó giống với cú pháp của các dự án này. Nó chạy hoàn toàn trong một giao diện điều khiển / thiết bị đầu cuối, có nghĩa là nó không có giao diện người dùng đồ họa (GUI).


Tàu với một trình soạn thảo đơn giản

Mặc dù thực tế là phần mềm Agena là một ứng dụng dòng lệnh, nó đi kèm với một phần mềm đồ họa biên tập đơn giản, được gọi là AgenaEdit, có tính năng tích hợp môi trường Agena và khả năng đánh dấu cú pháp. Nó được lấy cảm hứng từ một trình soạn thảo tương tự do Bill Spitzak phát triển cho bộ công cụ giao diện C ++ GUI của FLTK.


Hoạt động trên Raspberry Pi
Khả năng đồ họa của Agena được hỗ trợ trên các hệ điều hành GNU / Linux, Solaris, Mac OS X, Microsoft Windows, eComStation - OS / 2 và DOS. Nó có thể dễ dàng được triển khai trên cả nền tảng phần cứng 64 bit và 32 bit, và đã được thử nghiệm thành công trên bo mạch máy tính Raspberry Pi dựa trên ARM.

Tính năng mới trong bản phát hành này:

  • hàm Tính toán và Thống kê mới

Tính năng mới trong phiên bản:

  • hàm Tính toán và Thống kê mới

Tính năng mới trong phiên bản 2.9.4:

  • hàm Tính toán và Thống kê mới

Tính năng mới trong phiên bản 2.8.5:

  • hàm Tính toán và Thống kê mới

Tính năng mới trong phiên bản 2.8.2:

  • hàm Tính toán và Thống kê mới

Có gì mới trong phiên bản 2.6.1:

  • `stats.chauvenet` hiện có thể kiểm tra cụ thể cho thấp hơn hoặc trên các ngoại lệ bằng cách chuyển tùy chọn 'outlier =' lower'` hoặc `outlier = 'upper'` tương ứng.
  • `bags.remove` gây ra lỗi phân đoạn. Điều này đã được sửa. Hơn nữa, tất cả các chức năng `túi` được triển khai trong C đã được thay đổi bên trong.
  • Các metamethods (không có giấy tờ) cho `+`, `-`, và` * `không hoạt động nếu gói` bags` chưa được gọi với hàm `with` hoặc câu lệnh` import / alias`. Điều này đã được sửa.

Tính năng mới trong phiên bản 2.5.4:

  • `stats.chauvenet` bây giờ có thể kiểm tra cụ thể cho các ngoại lệ trên hoặc dưới bằng cách chuyển tùy chọn 'outlier =' lower'` hoặc` outlier = 'upper'` tương ứng.
  • `bags.remove` gây ra lỗi phân đoạn. Điều này đã được sửa. Hơn nữa, tất cả các chức năng `túi` được triển khai trong C đã được thay đổi bên trong.
  • Các metamethods (không có giấy tờ) cho `+`, `-`, và` * `không hoạt động nếu gói` bags` chưa được gọi với hàm `with` hoặc câu lệnh` import / alias`. Điều này đã được sửa.

Tính năng mới trong phiên bản 2.5.3:

  • `stats.chauvenet` hiện có thể kiểm tra cụ thể cho thấp hơn hoặc trên các ngoại lệ bằng cách chuyển tùy chọn 'outlier =' lower'` hoặc `outlier = 'upper'` tương ứng.
  • `bags.remove` gây ra lỗi phân đoạn. Điều này đã được sửa. Hơn nữa, tất cả các chức năng `túi` được triển khai trong C đã được thay đổi bên trong.
  • Các metamethods (không có giấy tờ) cho `+`, `-`, và` * `không hoạt động nếu gói` bags` chưa được gọi với hàm `with` hoặc câu lệnh` import / alias`. Điều này đã được sửa.

Tính năng mới trong phiên bản 2.4.2:

  • `stats.chauvenet` bây giờ có thể kiểm tra cụ thể cho các ngoại lệ trên hoặc dưới bằng cách chuyển tùy chọn 'outlier =' lower'` hoặc` outlier = 'upper'` tương ứng.
  • `bags.remove` gây ra lỗi phân đoạn. Điều này đã được sửa. Hơn nữa, tất cả các chức năng `túi` được triển khai trong C đã được thay đổi bên trong.
  • Các metamethods (không có giấy tờ) cho `+`, `-`, và` * `không hoạt động nếu gói` bags` chưa được gọi với hàm `with` hoặc câu lệnh` import / alias`. Điều này đã được sửa.

Tính năng mới trong phiên bản 2.3.0 RC1:

  • Các vòng lặp `for` số bây giờ hỗ trợ từ khóa` downto 'để bạn có thể đếm ngược mà không sử dụng kích thước bước bắt buộc bằng `bắt buộc`. Trong bối cảnh `downto ', kích thước bước` by' phải luôn luôn dương. Giá trị dừng `từ 'bắt đầu và` đến' là bắt buộc khi sử dụng từ khóa `downto '.
  • Các metamethods '__finite', '__entier' và '__sqrt' không còn được hỗ trợ nữa. Thay vào đó, ba metathod mới cho các hoạt động trên các cấu trúc đã được thêm vào: '__union' cho các hoạt động nghiệp đoàn, '__intersect' để xác định giao lộ, và '__minus' cho sự khác biệt. Do đó, gói `bags` bây giờ cũng hỗ trợ ba hoạt động này.
  • Toán tử phân chia số nguyên `` không hỗ trợ metamethod của nó và sử dụng toán tử divine (`/` operator) thay thế. Điều này đã được sửa.
  • Hàm mới `stats.gini` xác định hệ số Gini, một thước đo (in-) bình đẳng.
  • Hàm mới `stats.zscore` trả về một hàm tính toán điểm z (điểm chuẩn) của mẫu - số độ lệch tiêu chuẩn mẫu ở trên hoặc dưới giá trị trung bình của phân phối.
  • `stats.sorted` bây giờ theo mặc định sử dụng thuật toán Introsort thay vì Quicksort. Điều này có thể tăng tốc thời gian tính toán ba lần trong các tình huống không có điều kiện (nơi Quicksort sẽ cần các hoạt động O (n ^ 2)), trong khi không hy sinh hiệu suất trong các tình huống bình thường. Trên thực tế, Introsort sử dụng Quicksort theo mặc định và sau đó tự động chuyển sang Heapsort nếu độ sâu đệ quy đạt tới 2 * log (n, 2), trong đó n là số phần tử trong cấu trúc.
  • Bạn có thể ghi đè logic này bằng cách chuyển tùy chọn mới 'quicksort' mà chỉ sử dụng phương pháp Quicksort đệ quy truyền thống để sắp xếp số. Ngoài ra, `stats.sorted` bây giờ cũng có thể sử dụng thuật toán Heapsort độc quyền nếu tùy chọn mới 'heapsort' đang được truyền, và thuật toán Quicksort không đệ quy được tạo ra bởi Niklaus Wirth với tùy chọn mới 'nrquicksort'.
  • Hàm mới` stats.meanmed` trả về cả trung bình số học và trung bình của phân phối, hoặc là thương số trung bình và trung bình, tăng tốc thời gian tính toán khi các giá trị này cần khoảng 20%.
  • Đã cải thiện thông báo lỗi của toán tử `size`.

Tính năng mới trong phiên bản 2.1.1:

  • Các chức năng và bản vá mới:
  • `try / catch`: đặc tả rõ ràng của một biến lỗi ngay sau khi mã thông báo` catch` bây giờ là tùy chọn. Nếu không có biến lỗi nào được đưa ra, thì thông báo lỗi được tự động lưu vào biến `lasterror` cục bộ, và từ khóa` then` phải được bỏ qua:
  • & gt; hãy thử
  • & gt; lỗi ('oops!')
  • & gt; bắt
  • & gt; in (lasterror)
  • & gt; yrt;
  • oops!
  • Câu lệnh `try / catch` đôi khi không hoạt động trong các thủ tục (biến lỗi chưa được gán). Điều này đã được sửa.
  • Chức năng `net.wget` mới tải xuống các trang HTML từ Web.
  • Đã điều chỉnh `skycrane.counter` 10%. Chức năng bây giờ tùy ý áp dụng Kahan-Ozawa thay vì thuật toán tổng kết Kahan ban đầu nếu đối số thứ ba mới là chuỗi 'ozawa'. Các nguồn C tương ứng đã được sửa đổi để tránh tối ưu hóa trình biên dịch, điều này cũng có thể hủy các tối ưu hóa.
  • `argerror` bây giờ in tên kiểu do người dùng định nghĩa của một giá trị nhận được trong thông báo lỗi của nó. Nếu giá trị không có loại do người dùng xác định thì loại cơ bản của nó sẽ được phát hành.
  • Tùy chọn 'a' mới cho `debug.getinfo` trả về số đối số được mong đợi bởi một quy trình, nhờ Rob Hoelz 'LuaPowerPatch.
  • Đã sửa thông báo lỗi `chỉ ra ngoài phạm vi 'cho chuỗi.
  • Đã sửa đổi các tệp `stats.agn`,` linalg.agn`, `library.agn` và` ansi.agn` liên quan đến việc xử lý lỗi của chúng.

Tính năng mới trong phiên bản 2.1.0:

  • Đối với một loại xử lý lỗi mới, câu lệnh `try / catch` mới đã được giới thiệu. Nó đã được phát minh và viết bởi Hu Qiwei cho Lua 5.1 trở lại trong năm 2008.
  • Nói chung, bất kỳ câu lệnh nào mà một ngoại lệ có thể được mong đợi có thể được đưa vào một mệnh đề `try`. Nếu một lỗi được đưa ra, được tạo ra bởi một lời gọi rõ ràng đến hàm `error` hoặc cho bất kỳ biểu thức, hàm hoặc câu lệnh nào khác, điều khiển ngay lập tức nhảy đến mệnh đề` catch` tương ứng nếu có hoặc đến cuối `try / yrt Câu lệnh `nếu không có mệnh đề` catch` nào được đưa ra, bỏ qua bất kỳ câu lệnh tiếp theo nào khác trong mệnh đề `try`.
  • Các cơ sở xử lý lỗi `protect / lasterror` vẫn còn và sẽ luôn được hỗ trợ. Câu lệnh điều khiển mới cũng hoạt động với các câu lệnh `break`,` skip`, `redo` và` return` hoàn hảo.
  • Câu lệnh `redo` mới khởi động lại lần lặp hiện tại của vòng lặp` for / to` và `for / in` từ đầu.
  • Toán tử `recip` mới trả về nghịch đảo của một số x. Nó tương đương với biểu thức 1 / x, nhưng nhanh hơn.
  • Hàm `stats.ema` mới tính toán trung bình di chuyển theo hàm mũ của phân phối. Hàm mới `stats.gema` trả về một hàm iterator trả về mức trung bình di chuyển theo cấp số mũ tương ứng của một phân phối.
  • `*%`, `+%` và `-%` trả về `undefined` thay vì kết quả chính xác nếu toán hạng bên phải của chúng bằng 0. Điều này đã được sửa.
  • Đã sửa một thông báo lỗi trong `net.survey`.
  • Cải thiện thông báo lỗi cho việc lập chỉ mục các chuỗi và chuỗi ngoài phạm vi.
  • Trong các phiên bản ANSI, Solaris và DOS, toán tử `int` đã được điều chỉnh.
  • Hàm API C mới `agn_arraytoseq` chuyển đổi một mảng số thành chuỗi và đẩy chuỗi mới này lên trên ngăn xếp.
  • Đã cập nhật hướng dẫn.

Có gì mới trong phiên bản 2.1.0 RC:

  • Câu lệnh `redo` mới khởi động lại quá trình lặp hiện tại của vòng lặp` for / to` và `for / in` ngay từ đầu. Ví dụ:
  • & gt; flag: = true; & gt; đối với j trong [10, 11, 12] do & gt; in ('trước', j, cờ); & gt; nếu cờ và j = 11 thì & gt; đầu hàng; & gt; in ('- & gt;', j, cờ, 'nhảy lùi') & gt; làm lại & gt; fi; & gt; in ('sau', j, cờ) & gt; cho đến j & gt; 12; trước 10 true sau 10 true trước 11 true - & gt; 11 sai nhảy trở lại trước 11 sai sau 11 sai trước 12 sai sau 12 sai
  • Toán tử `recip` mới trả về nghịch đảo của một số x. Nó tương đương với biểu thức 1 / x, nhưng nhanh hơn.
  • Hàm `stats.ema` mới tính toán trung bình di động theo hàm mũ của phân phối. Hàm mới `stats.gema` trả về một hàm lặp (iterator) trả về giá trị trung bình di chuyển theo cấp số mũ tương ứng của một phân phối. Để sử dụng, vui lòng xem tập tin nguồn src / stats.c, C functions * ema.
  • `*%`, `+%` và `-%` trả về `undefined` thay vì kết quả chính xác nếu toán hạng bên phải của chúng bằng 0. Điều này đã được sửa.
  • Đã sửa một thông báo lỗi trong `net.survey`.
  • Hàm API C mới `agn_arraytoseq` chuyển đổi một mảng số thành một chuỗi và đẩy chuỗi mới này lên trên ngăn xếp.

Tính năng mới trong phiên bản 2.0.0:

  • Các câu lệnh và chức năng mới:
  • Agena 2.0 tương thích với Agena 1.12, ngoại trừ các mã thông báo `import`,` alias`, `until` và` onsuccess` hiện là từ khóa và không còn có thể được sử dụng làm biến. Hiện tại, có các trình cài đặt Solaris, Debian (x86, PowerPC, Raspberry Pi), Windows, Mac và DOS có sẵn cho 2.0, bao gồm Primer và Reference được cập nhật giải thích tất cả các tính năng mới một cách chi tiết.
  • Các biến thể vòng lặp mới `for / as` và` for / until` kiểm tra điều kiện ở cuối lặp hiện tại và bắt đầu lặp lại tiếp theo hoặc thoát khỏi vòng lặp. Điều này làm việc với cả hai `for / to`, cũng như các vòng lặp` for / in`. Trong thực tế, cả hai biến thể thực hiện một vòng lặp ít nhất một lần cho đến khi điều kiện đã cho đang được kiểm tra.
  • Ví dụ:
  • & gt; cho tôi đến 5 làm
  • & gt; in (i)
  • & gt; như tôi & lt; 3
  • & gt; cho tôi trong [1, 2, 3, 4, 5] làm
  • & gt; in (i)
  • & gt; cho đến i & gt; = 3
  • Vòng lặp `do / until` mới lặp lại cho đến khi một điều kiện nhất định được đáp ứng:
  • & gt; c: = 0;
  • & gt; làm
  • & gt; inc c;
  • & gt; in (c)
  • & gt; cho đến c & gt; = 3
  • Trong các vòng lặp `for` dạng số, mệnh đề` to` có thể không được thêm nữa. Thay vào đó, khi bỏ qua mệnh đề `to`, vòng lặp lặp lại cho đến khi số lớn nhất thể hiện trên nền tảng của bạn, trong C HUGE_VAL, đã đạt được:
  • & gt; vì tôi làm
  • & gt; in (i)
  • & gt; od
  • Điều khoản `onsuccess` mới trong câu lệnh` if` và `case` thực thi một đoạn nếu ít nhất một trong các điều kiện là đúng. Ví dụ:
  • & gt; cờ: = false;
  • & gt; nếu 1 = 0 thì
  • & gt; in (0)
  • & gt; elif 1 = 1 rồi
  • & gt; in (1)
  • & gt; onsuccess
  • & gt; cờ: = true
  • & gt; khác
  • & gt; in (-1)
  • & gt; fi;
  • & gt; in (cờ);
  • true
  • & gt; cờ: = false;
  • & gt; nếu 1 = 0 thì
  • & gt; in (0)
  • & gt; elif 1 = 0 rồi
  • & gt; in (1)
  • & gt; onsuccess
  • & gt; cờ: = true
  • & gt; khác
  • & gt; in (-1)
  • & gt; fi;
  • & gt; in (cờ);
  • sai
  • & gt; cờ: = false;
  • & gt; a: = 2;
  • & gt; trường hợp một
  • & gt; của 1 rồi
  • & gt; in (1)
  • & gt; của 2 rồi
  • & gt; in (2)
  • & gt; onsuccess
  • & gt; cờ: = true
  • & gt; khác
  • & gt; in (-1)
  • & gt; esac;
  • & gt; in (cờ);
  • true
  • Câu lệnh `import` mới cho phép nhập một hoặc nhiều thư viện mà không đặt tên của chúng vào dấu ngoặc kép, ví dụ: "calc nhập, số liệu thống kê" tương đương với "readlib ('calc', 'stats')".
  • Tùy chọn `alias` cho câu lệnh` import` gán một hoặc nhiều tên ngắn cho các hàm thư viện được khởi tạo, ví dụ: "import calc alias xpdiff" tương đương với "with ('calc', 'xpdiff')", và "import calc alias" tương đương với "with ('calc')".
  • Toán tử `..` mới cho phép lập chỉ mục các bảng ngay cả khi toán hạng bên trái của nó ước lượng thành` null`. Trong trường hợp này, `null` được trả về và không có lỗi` cố gắng để chỉ mục trường ... (một giá trị null) `được phát hành. Nó tương tự như hàm `getentry` nhưng nhanh gấp ba lần. Ví dụ:
  • & gt; tạo bảng a;
  • & gt; a.b:
  • null
  • & gt; a.b.c:
  • Lỗi trong stdin, tại dòng 1:
  • cố gắng lập chỉ mục trường `b` (giá trị null)
  • & gt; a..b..c:
  • null
  • & gt; tạo bảng a;
  • & gt; a [1]:
  • null
  • & gt; a [1] [2]:
  • Lỗi trong stdin, tại dòng 1:
  • cố gắng để chỉ mục trường `?` (một giá trị null)
  • & gt; a .. [1] .. [2]:
  • null
  • Hàm mới `drem` đánh giá phần còn lại của phân chia số nguyên x / y, nhưng trái với` irem`, làm tròn giá trị nội bộ x / y thành số nguyên gần nhất thay vì về 0.
  • Hàm mới `skycrane.todate` trả về ngày và giờ hiện tại dưới dạng chuỗi được định dạng.
  • Chức năng mới `io.truncate` cắt ngắn một tệp tại vị trí tệp hiện tại.
  • Chức năng mới `io.move` thay đổi vị trí tập tin của một số ký tự cho trước sang trái hoặc sang phải.
  • Hàm mới `io.filesize` trả về kích thước của một tệp.
  • `readlib` bây giờ chỉ chấp nhận các chuỗi làm đối số của nó. Số không được phép nữa.
  • Nếu đối số cuối cùng là `with` là Boolean` false`, thì hàm sẽ không viết tên ngắn được gán cho bàn điều khiển (stdout).
  • `strings.fields` bây giờ cũng chấp nhận một chuỗi các số chỉ mục. Tuy nhiên, nó không chấp nhận chỉ mục `0` nữa.
  • Trình cài đặt Debian Raspberry Pi Wheezy hiện bao gồm gói đồ họa `gdi`.
  • Tệp `change.log` hiện được hiển thị chính xác trong Windows.

Tính năng mới trong phiên bản 2.0.0 RC3:

  • Các biến thể vòng lặp mới `for / as` và` for / until` kiểm tra điều kiện ở cuối lặp hiện tại và bắt đầu lặp lại tiếp theo hoặc thoát khỏi vòng lặp. Điều này làm việc với cả cho / đến, cũng như cho / trong vòng.

Tính năng mới trong phiên bản 2.0.0 RC2:

  • Các biến thể vòng lặp mới `for / as` và` for / until` kiểm tra điều kiện ở cuối lặp hiện tại và bắt đầu lặp lại tiếp theo hoặc để lại một vòng lặp. Điều này làm việc với cả cho / đến, cũng như cho / trong vòng.

Tính năng mới trong phiên bản 2.0.0 RC1:

  • Câu lệnh `import` mới cho phép nhập một hoặc nhiều thư viện mà không đặt tên của chúng vào dấu ngoặc kép, ví dụ: "calc nhập, số liệu thống kê" tương đương với "readlib ('calc', 'stats')".
  • Tùy chọn `alias` cho câu lệnh` import` gán một hoặc nhiều tên ngắn cho các hàm thư viện được khởi tạo, ví dụ: "import calc alias xpdiff" tương đương với "with ('calc', 'xpdiff')", và "import calc alias" tương đương với "with ('calc')".
  • Toán tử `..` mới cho phép lập chỉ mục các bảng ngay cả khi toán hạng bên trái của nó ước lượng thành` null`. Trong trường hợp này, `null` được trả về và không có lỗi` cố gắng để chỉ mục trường ... (một giá trị null) `được phát hành. Nó tương tự như hàm `getentry` nhưng nhanh gấp ba lần.

Tính năng mới trong phiên bản 1.12.9:

  • Các văn bản trao đổi mới của `io.getclip` và` io.putclip` giữa Agena và bảng tạm (chỉ dành cho Windows).
  • `stats.prange` đã được viết lại trong C và đã nhanh hơn tới 60%.
  • `os.cpuinfo` hiện trả về đúng và thông tin thêm về các hệ thống dựa trên ARM.
  • Trong hệ điều hành DOS và UNIX bao gồm Mac OS X và chỉ trong miền phức tạp, lũy thừa của cơ sở 0 với số mũ 0 + r * I, với bất kỳ float nào khác 0, trả về `undefined` thay vì 0. Điều này đã được sửa.
  • Trong hệ điều hành DOS và UNIX bao gồm Mac OS X và chỉ trong miền phức tạp, lũy thừa của cơ sở 0 với số mũ r + 0 * I, với r bất kỳ float dương nào, trả về `undefined` thay vì 0. Điều này có đã được sửa.
  • `stats.obcount` và` stats.obpart` không thể bao gồm các giá trị vào khoảng con ngoài cùng bên phải. Điều này đã được sửa.
  • `calc.nakspline`,` calc.naksplinecoeffs`, `calc_clampedspline` và` calc_clampedsplinecoeffs` lỗi phân đoạn bị kích động nếu được gọi với cấu trúc chứa quá ít điểm, tức là các cặp. Điều này đã được khắc phục bằng cách trả lại `lỗi` trong những trường hợp này.
  • Lỗi deallocation bộ nhớ tiềm năng đã bị xóa khỏi `calc.neville`,` calc.interp`, `calc.newtoncoeffs`,` calc.naksplinecoeffs`, `calc.clampedsplinecoeffs`,` calc.nakspline`, và `calc.clampedspline`.
  • Hàm API C mới `agn_checkinteger` kiểm tra xem đối số có phải là số và số nguyên hay không - trái với` luaL_checkinteger` - phát sinh lỗi khác.

Tính năng mới trong phiên bản 1.9.0:

  • Hàm `alternate` mới trả về đối số đầu tiên của nó nếu đối số thứ hai của nó là` null`. Nếu không, nó sẽ trả về đối số thứ hai của nó.
  • Biến b -bộ thực thi Agena đã bị xóa vì đầu ra của nó giống với tùy chọn -v.
  • Các phiên bản Windows và UNIX / Mac của `strings.utf8size` chứa một rò rỉ bộ nhớ tiềm ẩn; điều này đã được thay đổi.
  • Tất cả các tệp nhị phân DLL / SO của các thư viện cộng không còn chứa mã không sử dụng, giảm kích thước của chúng lên tới 10 phần trăm, tùy thuộc vào hệ điều hành. Tệp makefile và các nguồn trước đó nhập các tệp tiêu đề không sử dụng đã được thay đổi. Ví dụ, điều này làm giảm kích thước của các tệp nhị phân Windows xuống 55 kByte.
  • Mở rộng bộ thử nghiệm.
  • Đã cập nhật các tệp lược đồ.

Tính năng mới trong phiên bản 1.6.0:

  • Chức năng và Tính năng Mới:
  • Chức năng mới `checktype` xác định xem tất cả các giá trị trong một cấu trúc có thuộc loại đã cho hay không.
  • Hàm mới `isint` kiểm tra xem tất cả các đối số của nó là số nguyên.
  • Hàm mới `strings.dleven` trả về khoảng cách Damerau-Levenshtein của hai chuỗi.
  • Hàm mới `stats.ad` xác định độ lệch tuyệt đối của tất cả các giá trị trong cấu trúc.
  • Hàm mới `stats.countentries` đếm số lần xuất hiện của tất cả các phần tử trong cấu trúc.
  • Hàm mới` stats.deltalist` trả về một cấu trúc của các phần tử của các phần tử lân cận tương ứng.
  • Hàm mới `stats.gmean` trả về giá trị trung bình hình học của một cấu trúc.
  • Hàm mới `stats.hmean` trả về giá trị trung bình của một cấu trúc.
  • Hàm mới` stats.ios` trả về chỉ báo đã được chứng minh về độ ổn định trong phân phối.
  • Hàm mới `stats.iqr` trả về phạm vi interquartile.
  • Hàm mới `stats.issorted` kiểm tra xem tất cả các số trong cấu trúc có được sắp xếp theo thứ tự tăng dần hay không.
  • Hàm mới `stats.moment` tính thời điểm của dữ liệu đã cho về nguồn gốc.
  • Hàm mới `stats.numbperm` trả về số hoán vị.
  • Hàm mới `stats.percentile` xác định phần trăm.
  • Hàm mới `stats.skewness` trả về độ lệch, một chỉ báo về sự đối xứng của phân bố xác suất.
  • Hàm mới `stats.sumdata` tổng hợp tất cả các quyền hạn của cấu trúc về nguồn gốc.
  • `stats.tovals` hiện là một hàm thư viện C và do đó nhanh hơn tới 40 phần trăm.
  • Với một bảng hoặc chuỗi trống, `stats.qmean`,` stats.mean`, `stats.gmean`,` stats.sd`, `stats.median`,
  • `stats.var` hiện trả về thất bại.
  • Độ dài tối đa cho dòng đầu vào trong trình thông dịch độc lập đã được thay đổi từ 512 thành 2048 ký tự.
  • Biến môi trường mới `environ.maxpathlength` lưu trữ số ký tự tối đa cho đường dẫn tệp (trừ ký tự của C).
  • Các biến môi trường mới `environ.minnumber` và` environ.maxnumber` giữ giá trị tối thiểu và tối đa một số Agena (hiện tại là ANSI-C double) có thể lưu trữ.
  • Biến môi trường mới `environ.umaxlong` bao gồm giá trị tích phân tối đa của loại C không được ký hiệu dài trên các hệ thống 32 + bit và không được ký dài trên các máy 16bit.
  • C API:
  • 100% khả năng tương thích của API Agena C với API C của Lua đã được thiết lập lại bằng cách giới thiệu các hàm kết xuất * của Lua. Vì vậy, bây giờ bạn có thể lưu trữ các hàm trong một biểu diễn nhị phân, ví dụ: bằng cách sử dụng `strings.dump` hoặc lua_dump ở cấp C.
  • Đã giới thiệu hàm `agnL_optboolean` mới để kiểm tra các đối số Boolean tùy chọn và trả về chúng trong trường hợp thành công.
  • Sửa lỗi:
  • `environ.globals` luôn thoát với lỗi, lỗi này đã được sửa.
  • `giả định` trả về false với cả hai đối số của nó là hoặc đang đánh giá thành 'không xác định'. Nó bây giờ trả về true trong trường hợp này.
  • Agena gặp sự cố khi chuyển một bảng trống và một dấu phân cách tới `tham gia` - điều này đã được sửa.
  • Tùy chọn `colour` không còn bị bỏ qua bởi` gdi.plot`.
  • Với các bảng, `stats.minmax` trả về một giá trị sai cho mức tối thiểu. Nó hoạt động chính xác.
  • Với một bảng trống, `stats.median` đã trả về 0, bây giờ nó trả về thất bại.
  • Trái với tài liệu, `strings.isending` trả về 'true' với cả hai chuỗi là bằng nhau. Điều này đã được sửa.
  • `chạy` được trả về` không thể mở tập tin` nếu tập lệnh Agena hiện tại có lỗi cú pháp. Điều này đã được sửa lại hoàn toàn chức năng.
  • Added Lua 5.1.4 vá 9: "Wrong tạo mã cho một số đặc biệt [ví dụ phức tạp] biểu thức boolean"
  • Added Lua 5.1.4 vá 11: "Parser có thể thu thập một nguyên mẫu trong khi xây dựng nó"
  • * Thông tin:. Thêm Lua 5.1.4 vá 10, "[__write / __ mới] index metamethod có thể không hoạt động nếu metatable là metatable riêng của mình", để Agena là không cần thiết, cho Agena đã hoạt động chính xác trong trường hợp này
  • Đã xóa từ khoá không được sử dụng `mặc định`.
  • Một số chức năng và tính năng cứng.
  • Các tính năng nâng cao:
  • Đã thêm phiên bản _experimental_ của `io.anykey` vào phiên bản Mac. Tuy nhiên, ít nhất là trên Lion, đôi khi nhấn phím được lặp lại trên vỏ.
  • `utils.readcsv` bây giờ có thể tùy chọn trả lại toàn bộ giá trị trong một tập tin CSV trong một chuỗi bằng phẳng.
  • Lệnh `gói clock` bây giờ hỗ trợ các nhà điều hành bộ phận` / 'bằng cách thêm nó cho `metatable tm` của người điều khiển.
  • Hành vi của `with` đã được thay đổi vì nó không thể gán tên ngắn cho nhiều hàm thư viện: Nếu các hàm đã được đặt vào bảng .aux, không gán tên ngắn cho các tên hàm này; nếu không thì gán tên ngắn cho _all_ các hàm gói khác. Do đó: `package.register` để đăng ký tất cả các hàm thư viện cho` with` để gán các tên ngắn, không còn cần thiết nữa. Nó sẽ không được dùng nữa trong một trong các bản phát hành sau.
  • Cải tiến bộ thử nghiệm.
  • Thủ công:
  • Cải thiện hướng dẫn và chỉ mục.
  • Tính nhất quán:
  • Đối với tất cả các thay đổi sau, tên biến cũ sau vẫn được hỗ trợ.
  • `environ.MinLong` đã được đổi tên thành` environ.minlong`.
  • `environ.MaxLong` đã được đổi tên thành` environ.maxlong`.
  • `environ.BufferSize` đã được đổi tên thành` environ.buffersize`.
  • `environ.PathSep` đã được đổi tên thành` environ.pathsep`.
  • `environ.More` đã được đổi tên thành` environ.more`.
  • `environ.WithProtected` đã được đổi tên thành` environ.withprotected`.
  • `environ.Os` đã được đổi tên thành` environ.os`.
  • `environ.Cpu` đã được đổi tên thành` environ.cpu`.
  • `environ.Release` đã được đổi tên thành` environ.release`.
  • `environ.GdiDefaultOptions` đã được đổi tên thành` environ.gdidefaultoptions`.
  • Trong Windows, `os.login` và` os.computername` hiện trả lại 'không thành công' như phiên bản UNIX hoặc OS / 2.
  • Công tắc `-DCOMPAT13` cuối cùng đã được gỡ bỏ để biên dịch phiên bản tuân thủ Agena 1.3.x.
  • Khác:
  • Không được chấp nhận `calc.fseq` đã bị xóa. Thay vào đó, hãy sử dụng `nseq`.

Tính năng mới trong phiên bản 1.5.1:

  • Đã vá chuỗi `strings.fields` không hoạt động chút nào. Ngoài ra, nó đã được chuyển đổi thành một hàm thư viện C và do đó nhanh gấp 2,6 lần.
  • `strings.words` bây giờ chấp nhận đối số thứ ba, nếu được đặt thành` true`, thì dấu phân tách thành công sẽ bị bỏ qua.
  • Đã xóa một rò rỉ bảo mật có thể xảy ra khỏi `io.write` và` io.writeline` và cải thiện các thông báo lỗi của nó.
  • Đã vá `binio.readchar` để tránh sự cố với các tệp có kích thước lớn hơn 2 GB.
  • Thông báo lỗi được sửa lỗi của các hàm `xbase.purge`,` xbase.readvalue`, `xbase.purge`,` ads.getvalues`, `binio.readshortstring`,` os.computername`, `os.login`, `os.fattrib`,` environ.kernel`, `package.register`.
  • Terabyte bây giờ có thể được nhập với ký hiệu T, trong đó là một số nguyên, và T là ký tự `T`. Tương tự, g biểu thị hàng tỷ, và hàng tỷ tỷ. Xem trang 48 của sách hướng dẫn để biết thêm thông tin.
  • Đã cập nhật hướng dẫn.
  • Phần lớn tất cả các công tắc tương thích ngược trong mã nguồn C đã bị xóa vì lý do làm sạch mã. Điều này chỉ ảnh hưởng đến những người cố gắng biên dịch lại Agena 1.5 hoặc cao hơn với khả năng tương thích ngược với Agena 1.3 và 1.4, và với hầu hết khả năng tương thích ngược với Lua 5.0 (ngoại trừ xử lý thư viện cũ Lua 5.0).

Tính năng mới trong phiên bản 1.5.0:

  • `map` bây giờ cũng có thể xử lý các chuỗi được cho làm đối số thứ hai của nó. Hàm tương ứng và các đối số của nó được áp dụng liên tục cho mỗi ký tự từ trái sang phải và kết quả được trả về theo thứ tự.
  • `run`: Nếu bạn muốn tải và thực thi mã từ các tệp có hậu tố 'agn', bạn không phải chỉ định hậu tố trong đối số nữa. Vì vậy, `run 'test'` và` run' test.agn'` bây giờ giống nhau.
  • Từ khoá `is` bây giờ bắt buộc phải xác định các thủ tục. (Với GCC, sử dụng công tắc -DCOMPAT14 để biên dịch một phiên bản của Agena trong đó từ khóa `is` vẫn là tùy chọn.)
  • Câu lệnh `try` đã không còn được dùng nữa và không còn được hỗ trợ nữa. (Với GCC, sử dụng công tắc -DCOMPAT14 để biên dịch một phiên bản của Agena vẫn có tính năng này.)
  • Các hàm `utils` sau đã bị xóa:` arraysize`, `getarray`,` getwholearray`, `newarray`,` searcharray`, `setarray`. Để tương thích ngược, chúng đã được thêm vào tệp lib / compat.agn. (Với GCC, sử dụng công tắc -DCOMPAT14 để biên dịch một phiên bản của Agena vẫn còn cho phép các hàm utils gốc.)
  • `utils.singlesubs` đã được viết lại hoàn toàn. Nó bây giờ mong đợi một dãy số như đối số thứ hai thay vì cấu trúc userdata stringarray trước đây. Tốc độ chậm hơn 35% so với phiên bản cũ, nhưng việc loại bỏ cấu trúc stringarray quan trọng hơn.
  • `strings.include` bị lỗi nếu được gọi là 0 làm đối số thứ hai. Điều này đã được sửa.
  • Áp dụng bản vá ngày 10 tháng 5 năm 2011 của Michael G. Schwern cho các chức năng phụ của ngày `32-bit-Year 2038-Fix` được sử dụng bởi các gói` os` và `xbase` (` Make mktime64 () sửa cấu trúc tm đến như ISO C yêu cầu.`)
  • Tối ưu hóa mã nội bộ: một số hàm khởi tạo thư viện và tải tệp C được sử dụng ngăn xếp để tạo chuỗi đường dẫn và tên tệp. Chức năng C aux mới `concat` được viết bởi Solar Designer hiện đang được sử dụng thay thế trong nhiều trường hợp.
  • API Agena C hiện tương thích 100% với API Lua C để tạo điều kiện chuyển các gói C Lua tới Agena.
  • Các chức năng sau đây đã được đổi tên thành: 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.
  • Các macro sau đã được đổi tên: luaL_checkint - & gt; agnL_checkint, luaL_optint - & gt; agnL_optint.
  • Trái ngược với việc triển khai Agena trước đây, lua_tonumber hiện trả về 0 như trong Lua trong trường hợp một số không được chuyển, thay vì trả về HUGE_VAL.
  • lua_setglobal2 đã bị xóa. Sử dụng lua_pushvalue và lua_setglobal để thay thế.

Tính năng mới trong phiên bản 1.4.2:

  • Nếu trong danh sách tham số của một thủ tục do người dùng định nghĩa các loại đã được chỉ định, trong
  • thủ tục gọi không có lỗi nào được đưa ra và quy trình đã được thực thi thay vào đó, trong các trường hợp sau:
  • a) một bảng, tập hợp, trình tự, cặp hoặc thủ tục - mà không phải do người dùng xác định
  • loại - đã được chuyển,
  • b) không có giá trị nào được chuyển cho tham số liên quan.

Tính năng mới trong phiên bản 1.4.1:

  • Không thể gán tên ngắn cho `stats.quartiles` và` stats.mode` bằng hàm `with`. Điều này đã được sửa.
  • Không đúng, `with` không thể gán một tên ngắn cho` gdi.settriangle`. Điều này đã được thay đổi.
  • Xử lý lỗi của `calc.polygen` đã được cải thiện.
  • Thông báo lỗi được cải thiện của `fractals.draw` vì thiếu tệp bản đồ FRACTINT.
  • Đã xóa hàm `strings.rseek` không được dùng nữa. Đối với tính tương thích ngược, `strings.seek` đã được thêm vào tệp lib / compat.agn.
  • Đã thêm công tắc -d để in thông tin gỡ lỗi trong khi khởi động trình thông dịch.
  • Phiên bản Windows của Agena hiện đã được biên dịch bằng GCC 4.5.2.
  • Các tệp lược đồ ngôn ngữ được cập nhật.
  • Hướng dẫn đã được cập nhật.

Tính năng mới trong phiên bản 1.4.0:

  • Thay đổi Ngữ nghĩa:
  • Các biến điều khiển vòng lặp của các vòng lặp `for / to` dạng số giờ đây được tự động chuyển cục bộ thành các khối xung quanh thay vì các vòng lặp (bên trong) của chúng. Nếu biến cục bộ có cùng tên với biến điều khiển vòng lặp đã được khai báo và gán trước
  • thực hiện một vòng lặp số, nó được ghi đè bởi giá trị lặp cuối cùng của vòng lặp. Như vậy, công tắc `external` trong các vòng lặp` for` dạng số không còn được chấp nhận nữa. (Với GCC, sử dụng công tắc -DCOMPAT13 để biên dịch một phiên bản Agena vẫn nhận ra nhưng bỏ qua từ khóa `external`.)
  • Với hằng số `fail`,` không` trả về `true`, nhưng với` fail` được gán cho một biến, `không` trả về false. Điều này đã được thay đổi, tức là 'a: = fail; không (a) 'bây giờ trả về `true`.
  • `stats.median` hiện trả về` không` thay vì 0 nếu cấu trúc đã cho trống.
  • `utils.readcsv`: Nếu một khoảng trắng duy nhất được chuyển với tùy chọn` delim` và nếu tùy chọn `bỏ qua không gian 'chưa được đưa ra, các khoảng trắng sẽ không tự động bị xóa nữa trước khi tách từng dòng của tệp thành lời nói của nó.
  • Hàm này cũng có hai tùy chọn mới: `header` đánh dấu dòng đầu tiên trong một tệp và` output` cho phép lưu trữ nội dung của tệp vào từ điển với tên trường được xác định bởi tiêu đề tệp.
  • Ký hiệu chuỗi con `$` không còn được hỗ trợ nữa. (Với GCC, sử dụng công tắc DCOMPAT13 để biên dịch một phiên bản của Agena vẫn hỗ trợ toán tử `$`.)
  • Tiện ích mở rộng:
  • Các vòng lặp do / od vô hạn đã được thêm vào. Loại vòng lặp này lặp vô hạn và có thể bị gián đoạn chỉ với câu lệnh `break` hoặc` return`. Chúng là đường cú pháp cho các vòng lặp `while true ... od`.
  • Với các bảng, `stats.minmax` trước đây chỉ làm việc với các mảng. Điều này đã được thay đổi, tức là các giá trị với các khóa không dương tương ứng (ví dụ: chuỗi, số nguyên dương, dấu phẩy âm và dương, v.v.) hiện được nhận dạng đúng trong đánh giá.
  • `stats.mean`,` stats.qmean`, `stats.sd` và` stats.var` hiện cũng xử lý chuỗi.
  • Hàm `stats.mode` mới trả về tất cả các giá trị trong một chuỗi hoặc bảng có số lần xuất hiện lớn nhất, tức là tần suất cao nhất.
  • Hàm `stats.quartiles` mới trả về phần tư thứ nhất, thứ hai và thứ ba của một bảng hoặc chuỗi _sorted_.
  • Các tính năng không có giấy tờ trước đây của `linalg.matrix` đã được thêm vào sách hướng dẫn và xử lý lỗi của nó đã được cải thiện.
  • Cải thiện xử lý lỗi của `linalg.hilbert`.
  • `gdi.setinfo` bây giờ chấp nhận tùy chọn` square`. Nếu `square = false`, thì trục x và y sẽ không có cùng tỷ lệ trên các ô được tạo bằng` gdi.plot`.
  • Chức năng `gdi.plot` để vẽ đồ họa không may đã không được ghi lại. Điều này đã được thay đổi.
  • `gdi.plot` chấp nhận hai tùy chọn mới: Tùy chọn 'x' chỉ định phạm vi ngang trên đó một ô được hiển thị và tùy chọn 'y' chỉ định phạm vi dọc.
  • Nếu cấu trúc PLOT được chuyển tới `gdi.plot` chỉ chứa các ĐIỂM, LINES, RECTANGLES, TRIANGLE, CIRCLE và ELLIPSE (kể cả các biến thể FILLED của chúng), thì` gdi.plot` sẽ tự động xác định tỷ lệ (` gdi.setinfo` không nhất thiết phải được gọi).
  • Các tính năng OOP được thừa hưởng từ Lua hiện được ghi trong Phụ lục A9. Tác giả không đề xuất lập trình hướng đối tượng.
  • Điều chỉnh:
  • Toán tử 'đã điền' được điều chỉnh khoảng 3%.
  • Chỉnh sửa `in`,` join`, `sadd`,` qsadd`, `replace`,` copy`, `unique` và Cantor đặt toán tử trên bảng và đặt một chút.
  • Với các bảng, các toán tử `top` và` bottom` nhanh hơn khoảng 5% ngay bây giờ.
  • Toán tử `size` nhanh hơn ít nhất 8% nếu bảng không chứa null.
  • `linalg.mzip`,` linalg.mmul` và `linalg.transpose` đã được điều chỉnh khoảng 3% mỗi.
  • Số cho / đến vòng lặp với các kích thước bước phân đoạn đã được tối ưu hóa bằng cách giảm số lượng các biến điều khiển của chúng xuống một nửa. Tuy nhiên, điều này không đạt được bất kỳ sự gia tăng tốc độ nào.
  • Bản vá lỗi:
  • Đã vá `linalg.ludecomp` để phát hiện ma trận số ít. Ngoài ra, chức năng bây giờ có thể tự động xác định thứ tự của ma trận đã cho.
  • Trái với hướng dẫn, `gdi.plot` không tự động xác định phạm vi ngang và dọc. Điều này đã được sửa.
  • `gdi.plot` không còn bỏ qua tùy chọn` square` được đặt bởi `gdi.setinfo`.
  • `gdi.setinfo` đã thêm cài đặt vào cấu trúc INFO ngay cả khi chúng đã xuất hiện. Điều này đã được thay đổi.
  • Vòng kết nối không được vẽ theo đúng `gdi.plot`. Điều này đã được thay đổi.
  • Hàm `gdi.plot` trong hầu hết các trường hợp bỏ qua màu riêng lẻ của các đối tượng hình học. Điều này đã được thay đổi.
  • Gói gdi không gán tên ngắn cho `gdi.settriangle`,` gdi.settrianglefilled`, `gdi.setrectangle` và` gdi.setrectanglefilled`. Điều này đã được thay đổi.
  • Gói fractals không gán tên ngắn cho các hàm của kiểu người dùng định nghĩa 'esctime'. Điều này đã được thay đổi. Đã sửa thông báo lỗi của `fractals.draw` nếu đối số vị trí không phải là số.
  • Khác:
  • Chức năng của `calc.fseq` đã được hợp nhất thành` nseq`. Đối với tính tương thích ngược, `calc.fseq` vẫn là một phần của gói calc, nhưng hàm này thực sự tham chiếu đến việc thực thi` nseq`.
  • Đã thêm biến `environ.FractScreenUpdates` vào gói` fractals` để biểu thị số đường thẳng đứng (một số nguyên không âm) sau đó một đoạn fractal sẽ được cập nhật trong cửa sổ. Biến `environ.FractOptimised` đã không được chấp nhận.
  • Các hàm gdi phụ đã được nhóm lại.

Tính năng mới trong phiên bản 1.3.3:

  • Bản vá cho `instr`:
  • Khi ở chế độ regex, toán tử trả lại kết quả sai nếu vị trí bắt đầu đã được đưa ra.
  • Khi ở chế độ tìm kiếm đơn giản, toán tử trả lại lỗi ngoài phạm vi nếu không có vị trí bắt đầu nào được cung cấp.
  • Ngoại trừ chế độ tìm kiếm ngược lại, nếu không tìm thấy kết quả phù hợp, đối số đầu tiên đã được trả về thay vì `null`.
  • Thông báo lỗi đã sửa của câu lệnh `create` liên quan đến chuỗi.
  • Trong AgenaEdit, khi xuất ra nhiều cấu trúc chỉ với một lệnh gọi là `print`, các cấu trúc không được in dưới dạng đầy đủ nếu cấu trúc đầu tiên có đặc trưng là __tostring metamethod. Điều này đã được thay đổi.

Tính năng mới trong phiên bản 1.3.2:

  • Bản phát hành này bao gồm các bản sửa lỗi, tiện ích mở rộng và hướng dẫn được cải tiến:
  • `dimension` đã tạo các kết quả thú vị nếu một cấu trúc đã được chuyển thành
  • trình khởi tạo. Điều này đã được thay đổi: `dimension` giờ tạo các bản sao độc lập của
  • cấu trúc khi khởi tạo bảng.
  • Chức năng của `strings.rseek` đã được thêm vào toán tử` instr`.
  • Do đó, `strings.rseek` đã không được chấp nhận. Để tương thích ngược,
  • `strings.rseek` đã được thêm vào tệp lib / compat.agn.
  • `strings.hits` hiện hỗ trợ các biểu thức chính quy và các ảnh chụp. Hành vi này
  • có thể được tắt bằng cách chuyển một boolean làm đối số thứ ba.
  • `strings.isabbrev` và` strings.isending` giờ đây tự động sử dụng tìm kiếm đơn giản
  • nếu không có cụm từ thông dụng hoặc ảnh chụp nào được chuyển như một phần của biểu thức thứ hai
  • đối số.
  • Đã sửa đổi `strings.ismagic` và` strings.isfloat`.
  • Chức năng `log` hiện nhanh hơn 13%.
  • Khi xuất nhiều hơn một cấu trúc chỉ với một cuộc gọi đến `in`,
  • các cấu trúc không được in dưới dạng đầy đủ nếu cấu trúc đầu tiên có một __tostring
  • metamethod. Điều này đã được thay đổi.
  • Đã thêm các danh mục hàm vào Chương 7 để tạo điều kiện thuận lợi cho việc bắt đầu mới
  • người dùng.

Tính năng mới trong phiên bản 1.3.1:

  • Đã xảy ra sự cố với các cuộc gọi lồng nhau tới các toán tử nhị phân sau: `xor`,` atendof`, `& amp; & amp;`, `||`, `^^`, `::` và `: - `, và do đó cũng với máy in đẹp mà bỏ với một lỗi khi in các cấu trúc lồng nhau. Điều này đã được sửa.
  • Bốn bản sửa lỗi cho `os.list`: Nếu tùy chọn 'r' đã được thông qua, thư mục làm việc hiện tại đã bị thay đổi sai sau khi hoàn thành cuộc gọi.
  • Nếu 'r' chưa được chuyển làm đối số cuối cùng, hàm sẽ đưa ra lỗi.
  • `null` chưa được chấp nhận làm đối số đầu tiên để biểu thị thư mục làm việc hiện tại.
  • Trong Windows 7, việc in nội dung của thư mục gốc không hoạt động, tức là os.list ('c:') trả lại nội dung của thư mục làm việc hiện tại.
  • Khi một chuỗi được lập chỉ mục với một số không, ví dụ: "str [null]", Agena trả về `null`. Bây giờ lỗi được nâng lên.
  • Nếu thư viện.đã không tìm thấy đường dẫn sai đã được xuất hai lần trong cảnh báo. Điều này đã được thay đổi.

Tính năng mới trong phiên bản 1.2:

  • Toán tử chuỗi con đã được thiết kế lại nhưng phiên bản cũ sẽ vẫn có sẵn cho đến khi Agena 2.0: phiên bản mới là: `str [left to right]`, cái cũ là: `str $ (left, right)` . Một ví dụ: trước: `str: = 'string'; in (str $ (2, 3)) `- & gt; 'tr' bây giờ: `str: = 'string'; in (str [2 đến 3]) `- & gt; 'tr'
  • Bây giờ bạn có thể xác định danh sách con của mảng bảng và chuỗi với cú pháp mới được đề cập ở trên: `s [từ trái sang phải]`. Ví dụ: now: `a: = [10, 20, 30, 40]; in (a [2 đến 3]) `- & gt; [20, 30] bây giờ: `a: = seq (10, 20, 30, 40); in (a [2 đến 3]) `- & gt; seq (20, 30)
  • Chức năng `ops` giờ đây cho phép chỉ định các giá trị được trả về bằng cách chuyển một chuỗi các vị trí chỉ mục của chúng như là đối số đầu tiên của nó, ví dụ: ops (seq (1, -1), 10, 20,
  • 30).
  • Hàm mới `strings.include` chèn chuỗi ký tự vào chuỗi
  • tại một vị trí nhất định.
  • Các hàm sau đây hiện phát hành lỗi thay vì chỉ trả về `không` trong
  • trường hợp lỗi: `os.remove`,` os.move`, `os.mkdir`,` os.rmdir`, `os.chdir`.
  • Các cải tiến đối với các toán tử sau đây hoạt động trên các bộ và trình tự liên quan đến việc thu thập rác: câu lệnh `insert`,` union`, `intersection`,` minus`, `unique`,` copy`, `pop / top` và các câu lệnh `pop / bottom` và đặt các bài tập.
  • Thông báo lỗi được cải thiện của `fractals.draw` nếu tệp bản đồ màu FRACTINT không
  • không được tìm thấy.

Tính năng mới trong phiên bản 1.1.0:

  • Bản phát hành này có chức năng mới và không gian tên đã được dọn sạch.
  • Khả năng tương thích với Agena 1.0:
  • Một số chức năng đã bị xóa khỏi Agena và một số chức năng đã được chuyển đổi thành các chức năng của gói (xem bên dưới). Nếu bạn vẫn muốn sử dụng chúng, hãy đọc readlib 'compat' trên dòng lệnh hoặc đưa câu lệnh trên vào tệp khởi tạo của bạn nếu bạn thích khả năng tương thích ngược với Agena 1.0.
  • Chức năng mở rộng:
  • Các câu lệnh `pop / top` và` pop / bottom` và `bottom` và` top` hiện có thể cũng được áp dụng cho các mảng bảng.
  • Khi được gọi với `null` hoặc không có đối số,` os.chdir` không còn phát sinh lỗi nữa mà trả về thư mục làm việc hiện tại. Do đó, hàm `os.curdir` C trước đây đã được thay thế bằng một hàm được viết bằng ngôn ngữ Agena.
  • `os.list` bây giờ đệ quy đi qua các thư mục con nếu tùy chọn 'r' mới được đưa ra.
  • Toán tử `join` bây giờ cũng chấp nhận một dấu phân tách tùy chọn và hỗ trợ tùy chọn để chỉ định phần tử đầu tiên và phần tử cuối cùng của cấu trúc được ghép nối.
  • `instr` giờ đây có thể tìm kiếm từ đầu bên phải của chuỗi bằng cách chuyển vị trí phủ định.
  • Nếu một bảng bao gồm các bảng, tập, chuỗi hoặc cặp khác, `copy` bây giờ biết cách xử lý các tham chiếu này đúng cách nếu chúng xuất hiện nhiều lần: Nếu cấu trúc nhúng được bao gồm n lần, thì một bản sao thực được tạo và Tham chiếu n-1 cho cấu trúc mới được tạo này được chèn vào. Trước đó, n bản sao độc lập đã được thực hiện.
  • Hàm `isnonposint` mới kiểm tra xem các số đã cho là tất cả các số nguyên và không dương.
  • `io.close` hiện có thể đóng nhiều tệp chỉ với một cuộc gọi.
  • Hàm `with` không gán tên ngắn cho các thủ tục sau của gói` math`: `convertbase`,` fraction`, `zeroin`,` todecimal`, `lcm`,` gcd` và ` ndigits`. Điều này đã được sửa chữa.
  • Hàm `rwritemode` được đề cập trong sách hướng dẫn không tồn tại. Nó hiện có sẵn nhưng được gọi là `rmode`.
  • Thông báo lỗi của các chức năng khác nhau đã được cải thiện.
  • Làm sạch không gian tên: Chức năng được đổi tên hoặc đã di chuyển:
  • Các hàm thư viện cơ sở `register` và` loadclib` đã được chuyển đến thư viện `package`.
  • Các hàm `rdelete`,` rget`, `rinit`,` roinit`, `rmode`,` rset`, `remember` và` defaults` cơ bản đã được chuyển sang gói `rtable` mới .
  • Đã đổi tên bảng _Env chung thành `environ` mà bây giờ cũng chứa các thủ tục để truy cập môi trường.
  • Các biến môi trường `homedir` và` infolevel` trước đây đã được đổi tên thành `environ.homedir` và` environ.infolevel` tương ứng.
  • Các hàm thư viện cơ sở cũ sau đây đã được chuyển sang gói `environ`:` anames`, `attrib`,` gc`, `getfenv`,` globals`, `isselfref`,` pointer`, `setfenv` , `used`,` userinfo`, `__RESTART`,` __DOTTYPRINT`.
  • `mapm.xtoNumber` đã được đổi tên thành` mapm.xtonumber`, `mapm.xtoString` đã được đổi tên thành` mapm.xtostring`. Đối với tính tương thích ngược, các tên hàm cũ vẫn có thể được sử dụng bằng cách thi hành tệp lib / compat.agn (đầu tiên đọc gói `mapm` và sau đó tải tệp compat.agn).
  • Các hàm và biến không được chấp nhận:
  • `strings.seek` đã không được chấp nhận. Chức năng của nó đã được thêm vào toán tử `instr`. Để tắt chế độ đối sánh mẫu của `instr`, chuyển đầu của tìm kiếm thành thứ ba và` true` làm đối số thứ tư. `instr` nhanh hơn khoảng 40% ở chế độ không phù hợp với mẫu so với` strings.seek`. Đối với tính tương thích ngược, `strings.seek` đã được thêm vào tệp lib / compat.agn.
  • Hàm thư viện cơ sở `concat` đã bị xóa. Thay vào đó hãy sử dụng `join`. Để tương thích ngược, chức năng cũ đã được thêm vào tệp lib / compat.agn.
  • Các hàm `hasrtable` và` hasrotable` đã bị xóa. Để tương thích ngược, chúng đã được thêm vào tệp lib / compat.agn.
  • Chức năng `pcall` đã không được chấp nhận. Sử dụng `bảo vệ` để thay thế. Đối với tính tương thích ngược, hàm đã được thêm vào tệp lib / compat.agn.
  • Hàm `maptoset` đã không được chấp nhận. Đối với tính tương thích ngược, hàm đã được thêm vào tệp lib / compat.agn.
  • Hàm `os.alldirs` đã không được chấp nhận. Sử dụng tùy chọn 'dirs' và 'r' trong cuộc gọi đến `os.list` để thay thế. Đối với tính tương thích ngược, hàm đã được thêm vào tệp lib / compat.agn.
  • `os.isMac`,` os.isSolaris`, `os.isLinux`,` os.isWin`, `os.isOS2`,` os.isDOS`, `os.isHaiku` không được chấp nhận. Hãy sử dụng các biến môi trường mới environment.Os và environ.Cpu thay vào đó, cũng tăng tốc mã. Để tương thích ngược, các hàm đã được thêm vào tệp lib / compat.agn.
  • Biến chưa được đăng ký _VERSION đã bị xóa. Đối với tính tương thích ngược, phân bổ của nó đã được thêm vào tệp lib / compat.agn.
  • Các Thay đổi Khác:
  • Hàm API cua lua_rawsetstringnumber được đề cập trong sách hướng dẫn không tồn tại. Điều này đã được thay đổi.
  • Tối ưu hóa mã cho trình phân tích cú pháp.
  • Trong một số gói, vô tình một vài biến đã được khai báo hoàn toàn toàn cầu. Điều này đã được sửa.
  • Các tệp mẫu khởi tạo đã được sửa và cập nhật.
  • AgenaEdit đã được cập nhật.
  • Các tệp lược đồ ngôn ngữ đã được cập nhật.
  • Trình cài đặt Linux hiện bao gồm gói xBase.

Tính năng mới trong phiên bản 1.0.6:

  • Cải thiện thông báo lỗi của các toán tử `join`,` copy` và `filled`, của các hàm` toset`, `toseq` và` totable`, của `insert`,` delete`, `pop` statements, và các vòng lặp `for`.
  • Với chuỗi, Agena bị rơi trong chuỗi sự kiện sau đây: 1) một câu lệnh `delete` đã được thực thi, 2) chuỗi thứ tự đã rỗng, và 3) một phần tử mới đã được chèn lại. Điều này đã được sửa. (Bên trong, câu lệnh `delete` không còn làm giảm kích thước chuỗi nội bộ nữa.)
  • Với chuỗi lớn, `concat` bị lỗi. Điều này đã được sửa.
  • Với chuỗi 512 byte trở lên, `join` và` replace` có thể bị lỗi. Điều này đã được sửa. Hai toán tử bây giờ cũng nhanh hơn bao giờ hết.
  • `math.isprime` trả lại kết quả sai với đối số & gt; 2 ^ 31 (được đề cập một cách mơ hồ trong sách hướng dẫn). Điều này đã được sửa bằng cách mở rộng phạm vi đối số thành số nguyên với các giá trị lên đến +/- 2 ^ 63.
  • `math.nextprime` và` math.prevprime` có cùng vấn đề với các đối số lớn hơn như `math.isprime`. Điều này cũng đã được thay đổi. Với đối số 2, `io.nextprime` trả về sai 5 thay cho 3. Điều này cũng đã được sửa.

Tính năng mới trong phiên bản 1.0.5:

  • `tham gia` có thể gặp sự cố Agena và nếu không thì hoạt động bất ngờ nếu chuỗi kết quả
  • đã vượt quá 512 byte. Điều này đã được thay đổi.
  • Nếu `khởi động lại 'đã được gọi sau khi một lỗi đã được phát hành trước đó
  • tuyên bố, Agena trong những dịp hiếm hoi bị rơi vì sự tham nhũng ngăn xếp. Đây là
  • đã được sửa.
  • Với các bảng mới được tạo chứa chính xác một phần tử trong phần băm, `attrib`
  • hiện trả về kết quả chính xác cho số lượng các vị trí băm được phân bổ (1 thay vì 0).
  • Thông báo lỗi được sửa của `qsadd` và` sadd`.
  • Cải thiện thông báo lỗi của các toán tử `join`,` copy`, và `filled`, và` insert`

  • các câu lệnh
  • và `delete`.
  • Xử lý lỗi của `read`,` save` và `fractals.draw` đã được cải thiện.
  • Các cải tiến đối với các tệp makefiles.
  • Kích thước bộ đệm hiện đã được chuẩn hóa trong các nguồn.

Tính năng mới trong phiên bản 1.0.4:

  • Vì các sự cố hiếm gặp đã được báo cáo trong quá trình khởi tạo (trong Windows XP SP 3 và OpenSolaris 134, trong một số trường hợp), việc thu gom rác hiện bị tắt trong giai đoạn khởi tạo. Những lỗi phân đoạn hiếm gặp này xảy ra trong OpenSolaris khi chạy nhị phân Agena trong thư mục chứa thư mục gốc của nó, và trong XP khi nhấp vào biểu tượng máy tính để bàn Agena có quyền quản trị cục bộ.
  • Giới thiệu công tắc -d cho các tùy chọn dòng lệnh để in thông tin trong khi khởi tạo Agena.
  • Giới thiệu xử lý lỗi thích hợp nếu bộ nhớ không thể được cấp phát nội bộ cho: `trim`,` upper`, `lower`,` os.curdir` và `strings.rseek`.
  • Đã loại bỏ rò rỉ bộ nhớ tiềm năng trong các hàm C khởi tạo agenaL_initialise và agenaL_setLibname và trong `io.write *` và `print`.

Tính năng mới trong phiên bản 1.0.3:

  • Hàm mới `protect` gọi thủ tục ở chế độ được bảo vệ và bắt bất kỳ lỗi nào có thể để tính toán không bị gián đoạn. Trong trường hợp có lỗi, nó sẽ đặt chuỗi lỗi thành biến toàn cục `lasterror`. Nó liên quan đến `pcall`, nhưng không trả lại mã trạng thái là kết quả đầu tiên.
  • `attrib` bây giờ trả về kết quả chính xác với cấu trúc rỗng. Với cấu trúc trống, hàm đã tính sai một phần tử băm được gán trước đó.
  • `attrib` bây giờ trả về số byte bị chiếm bởi các bảng, tập và chuỗi cùng với khóa 'byte' mới. Số byte được trả về dựa trên thông tin đôi khi mâu thuẫn có sẵn trên mạng.
  • `replace` bị lỗi Agena nếu chuỗi kết quả vượt quá 512 byte. Điều này đã được thay đổi.
  • `giả định` hiện trả về 'Giả định không thành công'. thay vì 'giả định không thành công'.
  • Hàm API C mới lua_setglobal2 đặt giá trị ở đầu ngăn xếp thành tên chung. Trái với lua_setglobal, giá trị không xuất hiện.
  • Làm sạch mã của lobject.h (Cấu trúc bảng) và lapi.c (macro kích hoạt). Sửa lỗi cho hàm API C agn_deletertable trong trường hợp Agena được biên dịch với lua_assert không có giá trị. Thay đổi thành giá trị trả về của hàm savestate được sử dụng trong quá trình khởi tạo để ngăn chặn khả năng ngăn chặn tham nhũng (nhẹ).

Tính năng mới trong phiên bản 1.0.2:

  • Thủ tục `os.setenv` mới đặt các biến môi trường ở cấp hệ điều hành. Chức năng này ban đầu được viết bởi Mark Edgar.
  • Trong Windows, `os.getenv` bây giờ gọi một hàm Windows API riêng để nhận các giá trị của các biến môi trường. Mã Windows đã được viết bởi Mark Edgar.
  • Hàm `os.environ` mới trả về tất cả các biến môi trường được gán trong một bảng. Chức năng này ban đầu được viết bởi Mark Edgar.
  • `io.open` bây giờ thêm con trỏ FILE, tên và chế độ của một tệp được mở thành công vào bảng mới` io.openfiles`. `io.close` xóa mục nhập khỏi` io.openfiles` nếu tệp có thể được đóng thành công.
  • Khi được gọi không có đối số, `io.read` hiện trả về lỗi nếu được gọi không có đối số trong AgenaEdit (trong một lần thử đọc bàn phím).
  • Nếu `io.anykey` và` io.getkey` được gọi trong AgenaEdit, một thông báo lỗi thích hợp được hiển thị.
  • Một trong các tiểu dự án khởi tạo đã được thay đổi để tránh tham nhũng ngăn xếp có thể xảy ra (mặc dù các sự cố không bao giờ xảy ra).
  • os.isMac ('ppc') hiện hoạt động trên các máy PowerPC.
  • Chương 4 và 6 của tài liệu tham khảo và tài liệu tham khảo đã được sửa đổi và mở rộng. Một chỉ số đã được thêm vào và rất nhiều mỹ phẩm đã được thực hiện.
  • Đã lưu trữ thông tin phiên bản chính xác vào tệp thực thi của Windows.

Tính năng mới trong phiên bản 1.0:

  • Kính thưa quý vị,
  • sau gần bốn năm phát triển, tôi đã xuất bản Agena 1.0, một ngôn ngữ lập trình thủ tục, có nguồn gốc từ các nguồn Lua C.
  • Cộng đồng của tôi thực sự rất, rất nhỏ nhưng một số người dùng đã nói với tôi rằng nó ổn, hữu ích và ổn định.
  • Tôi sẽ rất vui nếu bạn xem xét Agena và thông báo cho tôi về kết quả của bạn. Nếu bạn không thấy nó hữu ích, hãy cho tôi biết cá nhân và cho tôi cơ hội để khắc phục vấn đề.

Có gì mới trong phiên bản 0.34.1d:

  • Phiên bản này bao gồm một phiên bản GUI cập nhật của AgenaEdit (xem tập tin thực thi agenaedit).

Có gì mới trong phiên bản 0.34.1:

  • AgenaEdit với cú pháp tô sáng và công cụ chạy được cài sẵn được phát hành với Agena 0.34.1.

Có gì mới trong phiên bản 0.34.0:

  • AgenaEdit với cú pháp tô sáng và công cụ chạy được cài sẵn được phát hành với Agena 0.34.0.

Tính năng mới trong phiên bản 0.33.2:

  • Agena 0.33.2 với hỗ trợ tệp xBase đã được phát hành.

Tính năng mới trong phiên bản 0.33.1:

  • Agena 0.33.1 với hỗ trợ tệp xBase đã được phát hành.

Có gì mới trong phiên bản 0.33.0:

  • Gói `xbase` mới có thể đọc và ghi các tệp xBase tương thích với tiêu chuẩn dBASE III.
  • Các gói `binio` và` ads` giờ đây có thể xử lý các tệp có dung lượng tối đa 2 ^ 63 byte. Trước khi họ chỉ có thể xử lý các tệp có kích thước tối đa 2 ^ 31 byte.
  • Các hàm mới `io.lock`,` io.unlock`, `binio.lock`,` binio.unlock`, `ads.lock` và` ads.unlock` khóa một tệp từ truy cập đọc và ghi bởi Agena khác

  • Các hàm
  • hoặc thậm chí các ứng dụng khác được cung cấp sau đó sử dụng giao thức khóa.
  • Hàm baselib `read` không còn bị ghi đè bởi` with`.
  • `package.checkClib` mới kiểm tra xem một gói được lưu trữ trong thư viện động C đã được khởi tạo chưa. Nếu không, nó sẽ trả về một cảnh báo được in trên màn hình và tạo ra một bảng gói rỗng. Nếu không, nó sẽ không làm gì cả.
  • Cổng Haiku hiện hỗ trợ các thư viện liên kết động.

Có gì mới trong phiên bản 0.32.3:

  • Agena 0.32.3 với các hàm Calculus mới và được điều chỉnh đã được phát hành.
  • Người dùng Mac không cần cài đặt thêm thư viện phụ thuộc nữa.
  • Cổng Haiku hiện khả dụng.

Tính năng mới trong phiên bản 0.31.5:

  • Phiên bản này chứa đồ họa tích hợp, tính toán chính xác tùy ý và các tính năng được cải thiện.

Có gì mới trong phiên bản 0.31.3:

  • Đã thêm gói fractals để dễ dàng vẽ các phần tử fractal trong Solaris, Mac, Linux và Windows.
  • Trên Solaris và Linux, `gdi.mouse` hiện trả về các giá trị chuẩn cho các nút chuột đã nhấn (giống như các phiên bản Mac và Windows).
  • Khi đưa ra tùy chọn -v, Agena hiện không thực thi các tệp khởi tạo nữa.
  • Trên UNIX hoặc Mac, tên tệp của tệp khởi tạo phải luôn là `.agenainit`, cho dù chúng nằm trong / usr / agena / lib hoặc thư mục cá nhân.
  • Phân phối Mac nhị phân cho CPU Intel chạy nhanh hơn khoảng 30% so với bản phát hành trước.
  • Chức năng `io.getkey` hiện khả dụng trong phiên bản Mac OS X.
  • Trên máy Mac, `os.system` hiện trả về thông tin đầy đủ về hệ điều hành và loại CPU. Lưu ý rằng nó trả về thông tin về hạt nhân Darwin và mục đầu tiên trong bảng kết quả bây giờ là `Darwin` thay vì` MacOSX`.
  • `os.memstate`,` os.freemem` và `os.beep` hiện hỗ trợ Mac OS X.
  • `io.anykey` có sẵn trên tất cả các nền tảng, nhưng trả về` fail` trên DOS và Mac. Do đó, `gdi.draw` sẽ không ném lỗi nữa trên Mac khi sử dụng tùy chọn` chuột`.
  • `os.listcore` đã được mở rộng để chỉ trả về tên tệp, thư mục hoặc liên kết. '.' và '..' hiện không bao giờ được trả lại.
  • `os.list` không nhận ra bất kỳ tùy chọn nào và trả về một danh sách trống để thay thế. Điều này đã được sửa. Ngoài ra, các tùy chọn hiện có thể được kết hợp. '.' và '..' làm đối số đầu tiên hiện được nhận dạng đúng.
  • `os.curdir` giờ đây tự động thay thế dấu gạch chéo ngược trong đường dẫn được xác định bằng dấu gạch chéo.
  • `os.fstat` và` ads.attrib` bị lỗi Agena nếu ngày của tệp vượt quá thứ Ba, ngày 19 tháng 1 năm 2038. Điều này đã được khắc phục bằng cách trả về một bảng trống cho khóa ngày (os.fstat), hoặc 0/0/01 00:00:00, (ads.attrib).
  • `utils.calendar` gặp sự cố Agena nếu đối số của nó bị vô hiệu, âm hoặc quá lớn. Điều này đã được thay đổi. Ngoài ra, nếu ngày vượt quá Thứ Ba, ngày 19 tháng 1 năm 2038, ngày chính xác được trả lại.
  • Các chức năng mới `os.screensize` và` os.mousebuttons` trả lại độ phân giải màn hình hiện tại và số lượng nút của chuột đính kèm tương ứng (chỉ dành cho Windows).
  • Tệp agena.ini.sample đã được đổi tên thành .agenainit.sample trong bản phân phối UNIX / Mac.
  • Một tệp makefile mới cho Solaris hiện đang được gửi kèm với bản đồ Agena ràng buộc để biên dịch đầy đủ các nguồn MAPM gốc được viết bởi Michael C. Ring.

Có gì mới trong phiên bản 0.31.2:

  • Gói mapm cho độ chính xác toán học trọng tài bây giờ cũng có sẵn trong phiên bản DOS của Agena.
  • Số lượng chữ số được sử dụng bởi gói mapm được khởi tạo thành 17 chữ số khi khởi động Agena cho DOS hoặc OS / 2 Warp. Trước đó, mặc định là 1 chữ số.
  • Mã C cho ràng buộc MAPM đã được chuẩn hóa. Trước đây, các tệp nguồn DOS và OS / 2 khác với tệp nguồn cho UNIX và Windows.
  • Các cải tiến nhỏ cho trình cài đặt Windows và Mac OS X.
  • Trên Mac, tài liệu hiện có sẵn trong Thư viện / Tài liệu / Agena thay vì / Users / Share / Agena.
  • Hàm sin, cos, arcsin, arccos và arctan trả về -0 thay vì 0 làm đơn vị ảo, dẫn đến kết quả sai nếu trả về các hàm này đã được áp dụng cho các hàm khác như ln (tức là dấu của đơn vị tưởng tượng của kết quả của các chức năng khác không chính xác). Điều này đã được sửa bằng cách đặt đơn vị tưởng tượng từ 0 đến 0 trong sự trả về sin, cos, arcsin, arccos và arctan.
  • Hàm arcsin và arccos trả về kết quả sai cho đối số z, nếu abs (real ((z))) & lt; 1. Điều này đã được sửa.
  • Trong OS / 2, hầu hết các hàm số học phức tạp được trả về không xác định. Điều này đã được sửa.
  • Lưu ý rằng trong OS / 2 và DOS, trong miền phức tạp vẫn còn vấn đề với các toán tử arccos và arcsin trả về không xác định trong các tình huống nhất định.
  • Các phiên bản Windows, i386 Solaris 10 và Linux hiện đã được biên dịch bằng GCC 4.4.x (và không có xmath86.h) làm giảm số lỗi trong số học phức tạp một cách đáng kể. Trong thực tế, các trường hợp kiểm tra toán phức tạp phức tạp trả về các lỗi zero. Phiên bản Sparc đã được biên dịch với GCC 4.3.3 cho Sun Sparc và có ít lỗi trong số học phức tạp hơn bản phát hành 0.31.1.
  • Đã đổi tên các tệp sau: config.h - & gt; agncfg.h, chelpers.h - & gt; agnhlps.h, agnxlib.h - & gt; agnxlib.h.
  • Trên máy Mac, gdi.mouse giờ đây trả về các giá trị chuẩn cho các nút chuột được nhấn.

Có gì mới trong phiên bản 0.31.1:

  • Agena 0,31 bao gồm tất cả các công cụ cơ bản để vẽ các điểm, đường, hình tròn, hình elip, hình chữ nhật, cung tròn. v.v., để kiểm soát kích thước hình ảnh và màu sắc.

Tính năng mới trong phiên bản 0.31.0:

  • Bản phát hành nhất quán về ngôn ngữ với bản sửa lỗi - đã được phát hành. Xem nhật ký thay đổi cho những gì đã thay đổi.

Có gì mới trong phiên bản 0.30.4:

  • Agena hiện có các đồ họa tích hợp sẵn. Điều này sẽ cho phép bạn vẽ đồ thị, hình ảnh, v.v. trong các cửa sổ X11 hoặc Win32 hoặc các tệp GIF, PNG, JPEG, FIG hoặc PostScript, cả trong Solaris, Linux và Windows. Agena liên kết với thư viện đồ họa g2 được viết bởi Ljubomir Milanovic và Horst Wagner, để cung cấp các khả năng mới này.
  • Agena 0,30 bao gồm tất cả các công cụ cơ bản để vẽ các điểm, đường, hình tròn, hình elip, hình chữ nhật, cung tròn. v.v., để kiểm soát kích thước hình ảnh và màu sắc.
  • & gt; với 'gdi';
  • gói gdi v0.1.4 kể từ ngày 20 tháng 12 năm 2009
  • arc, arcfilled, background, circle, circlefilled, clearpalette, đóng, dash, ellipse, ellipsefilled, flush, fontsize, initpalette, ink, lastaccessed, dòng, newline, newpoint, open, plot, plotfn, point, rectangle, rectanglefilled , đặt lại, resetpalette, setinfo, setoptions, cấu trúc, văn bản, độ dày, tam giác, tam giác, sử dụng
  • Hàm plotfn vẽ một hoặc nhiều đồ thị các hàm trong một thực tế, tùy chọn cùng với các trục được vẽ theo màu do người dùng xác định. Phạm vi cho trục y cũng có thể được cung cấp, nếu không thì Agena sẽ xác định cài đặt tốt nhất. Có nhiều tùy chọn khác có thể được thiết lập với chức năng setoptions và sẽ áp dụng cho tất cả các đồ thị được tạo ra trong một phiên: độ phân giải cửa sổ, bản đồ màu, độ dày đường kẻ và màu nền. Tất nhiên, người dùng có thể ghi đè lên một số hoặc tất cả các tùy chọn cho một cốt truyện cụ thể. Singularities được điều trị đúng cách.

Có gì mới trong phiên bản 0.30.3:

  • Agena 0.30.3 với đồ họa tích hợp, tính toán chính xác tùy ý và các tính năng được cải tiến đã được phát hành.

Có gì mới trong phiên bản 0.30.2:

  • Agena hiện có các đồ họa tích hợp sẵn. Điều này sẽ cho phép bạn vẽ đồ thị, hình ảnh, v.v. trong các cửa sổ X11 hoặc Win32 hoặc các tệp GIF, PNG, JPEG, FIG hoặc PostScript, cả trong Solaris, Linux và Windows. Agena liên kết với thư viện đồ họa g2 được viết bởi Ljubomir Milanovic và Horst Wagner, để cung cấp các khả năng mới này.
  • Agena 0,30 bao gồm tất cả các công cụ cơ bản để vẽ các điểm, đường, hình tròn, hình elip, hình chữ nhật, cung tròn. v.v., để kiểm soát kích thước hình ảnh và màu sắc.
  • & gt; với 'gdi';
  • gói gdi v0.1.4 kể từ ngày 20 tháng 12 năm 2009
  • arc, arcfilled, background, circle, circlefilled, clearpalette, đóng, dash, ellipse, ellipsefilled, flush, fontsize, initpalette, ink, lastaccessed, dòng, newline, newpoint, open, plot, plotfn, point, rectangle, rectanglefilled , đặt lại, resetpalette, setinfo, setoptions, cấu trúc, văn bản, độ dày, tam giác, tam giác, sử dụng
  • Hàm plotfn vẽ một hoặc nhiều đồ thị các hàm trong một thực tế, tùy chọn cùng với các trục được vẽ theo màu do người dùng xác định. Phạm vi cho trục y cũng có thể được cung cấp, nếu không thì Agena sẽ xác định cài đặt tốt nhất. Có nhiều tùy chọn khác có thể được thiết lập với chức năng setoptions và sẽ áp dụng cho tất cả các đồ thị được tạo ra trong một phiên: độ phân giải cửa sổ, bản đồ màu, độ dày đường kẻ và màu nền. Tất nhiên, người dùng có thể ghi đè lên một số hoặc tất cả các tùy chọn cho một cốt truyện cụ thể. Singularities được điều trị đúng cách.

Tính năng mới trong phiên bản 0.29.0:

  • Agena hiện có các đồ họa tích hợp sẵn. Điều này sẽ cho phép bạn vẽ đồ thị, hình ảnh, v.v. trong cửa sổ hoặc tệp GIF, PNG, JPEG, FIG hoặc PostScript trong Solaris, Linux và Windows bằng cách bao gồm ràng buộc thư viện đồ họa g2 được viết bởi Ljubomir Milanovic và Horst Wagner.
  • Agena 0.29.0 có tất cả các công cụ cơ bản để vẽ điểm, đường, hình tròn, hình elip, hình chữ nhật, cung tròn. vv, để quản lý màu sắc và tạo tệp hình ảnh hoặc mở cửa sổ X11 hoặc Win32.
  • Trong một trong các bản cập nhật sắp tới, một giao diện người dùng cấp cao bao gồm các hàm gdi.plotfn và gdi.plot cho phép bạn vẽ các hàm đơn lẻ và tập các điểm một cách nhanh chóng. Hai hàm này đã được bao gồm trong Agena 0.29.0, nhưng vẫn là phiên bản beta. Đây là bản xem trước:
  • & gt; với 'gdi';
  • gói gdi v0.1.0 kể từ ngày 24 tháng 11 năm 2009
  • cung, hình nền, hình tròn, clearpalette, đóng, dấu gạch ngang, hình elip, đầyArc, đầyCircle, đầyBản, điềnHình chữ nhật,
  • điềnTriangle, flush, fontsize, initpalette, ink, lastaccessed, line, open, plot, plotfn, point, rectangle, reset,
  • resetpalette, setinfo, setoptions, cấu trúc, văn bản, độ dày, tam giác, đường dẫn
  • Hàm plotfn vẽ đồ thị của một hàm trong một hàm thực, tùy chọn cùng với các trục được vẽ trong một màu do người dùng xác định. Phạm vi cho trục y cũng có thể được cung cấp, nếu không Agena sẽ cố gắng xác định cài đặt tốt nhất. Có nhiều tùy chọn khác có thể được thiết lập với chức năng setoptions và sẽ áp dụng cho tất cả các đồ thị được tạo ra trong một phiên: độ phân giải cửa sổ, bản đồ màu, độ dày đường kẻ và màu nền. Tất nhiên, người dùng có thể ghi đè lên một số hoặc tất cả các tùy chọn cho một cốt truyện cụ thể. Singularities được điều trị đúng cách.
  • âm mưu (sin (x) * x & gt; & gt ;, -5, 5, màu sắc ~ 'xanh dương', axiscolour ~ 'xám', res ~ 640: 480);

Tính năng mới trong phiên bản 0.27.2:

  • Hàm baselib toSet mới chuyển đổi một chuỗi thành một tập hợp các ký tự của nó và một bảng hoặc chuỗi thành một tập hợp.
  • io.readlines đã được vá để xử lý các dòng có hơn 2048 ký tự. Chức năng bây giờ cũng phát ra một lỗi nếu cấp phát bộ nhớ trong không thành công. Kích thước bộ đệm trong đã giảm từ 2048 byte xuống 512 byte. Bạn có thể thay đổi điều này bằng cách gán một giá trị khác cho AGN_IOREADLINES_MAXLINESIZE trong tệp agnconf.h.
  • io.readlines hiện cũng chấp nhận xử lý tệp. Khi sử dụng các tay cầm tập tin, trái ngược với tên tập tin, xin lưu ý rằng bạn phải đóng tập tin bằng tay sau khi sử dụng io.readlines.
  • io.readlines không còn trả về một bảng trống nếu tệp không tồn tại. Thay vào đó, nó phát ra một lỗi.
  • toSeq hiện trả về lỗi thay vì thất bại nếu nó không nhận được chuỗi, tập hợp hoặc bảng.
  • Hàm baselib được sử dụng đã được mở rộng và có thể trả về mức sử dụng bộ nhớ theo byte, kbyte và gbyte. Bây giờ nó là một hàm C.
  • Hàm gcinfo không có giấy tờ đã bị xóa. Chức năng của nó đã được sử dụng.
  • Hàm API C mới agn_usedbytes trả về số byte được hệ thống sử dụng.
  • Đã sửa thông báo lỗi sai của toTable.
  • đã đổi tên hàm C AOI `agn_isioforcerror` thành` agn_isioforceerror`.

Tính năng mới trong phiên bản 0.27.0:

  • Đã thêm hàm lỗi math.erf và hàm lỗi bổ sung math.erfc.
  • Đã thêm hàm Bessel của loại math.besselj đầu tiên và hàm Bessel của loại thứ hai math.bessely. Thứ tự được đưa ra bởi đối số đầu tiên, đối số là đối số thứ hai.
  • Nếu biến môi trường mới _EnvIoForceError được đặt thành giá trị không null (mặc định), các io.open, io.readlines và các chức năng binio khác nhau sẽ thoát với một lỗi thay vì chỉ trở lại bình thường.
  • binio.readbytes và binio.readchar trả về một chuỗi rỗng thay vì thất bại trong trường hợp tệp được đọc không tồn tại. Điều này đã được thay đổi: lỗi hoặc lỗi hiện được trả về.
  • arcsin và arccos hiện là các toán tử và do đó nhanh hơn khoảng 40%.
  • Đã thêm toán tử xor thực hiện Boolean exclusive-OR trên các giá trị đánh giá hoặc đúng, sai, lỗi và null.
  • Đã thêm toán tử atendof để kiểm tra xem một từ có kết thúc bằng một cụm từ đã cho hay không và trả về vị trí của từ đó dưới dạng một số. Toán tử trả về null nếu các chuỗi có cùng độ dài, ít nhất một trong số chúng là chuỗi rỗng hoặc từ không kết thúc trong mẫu đã cho.
  • hasrtable bây giờ chỉ trả về true, nếu nó có một bảng ghi đọc ghi (được cập nhật bởi câu lệnh return).
  • Hàm hasrotable mới xác định xem một hàm có một bảng nhớ chỉ đọc (không thể được cập nhật bởi câu lệnh trả về) và trả về true hoặc false.
  • Toán tử mới gethigh và getlow truy xuất byte cao hơn và thấp hơn từ một số (tức là C double).
  • Toán tử mới được đặt thành số cao và setlow đặt byte cao hơn và thấp hơn thành một số (tức là C double).
  • Các toán tử ban nhạc, bor, bxor và bnot mới hoạt động bitwise và, hoặc, độc quyền hoặc hoặc các hoạt động bổ sung về số.
  • Chức năng `kernel` mới cấu hình các thiết lập của hạt nhân Agena. Hiện tại, nó có thể thay đổi cách các toán tử bitwise làm việc nội bộ (sử dụng các số nguyên đã ký hoặc không dấu) và cách các số được in.
  • Với số thực x, math.argument trả về Pi thay vì 0 nếu x & lt; 0.
  • Vì một lỗi trong các hàm thư viện ANSI C nằm bên dưới, các arccos và arccos tạo ra các kết quả sai với các số phức nếu phần ảo của chúng bằng 0 trong các hệ UNIX. Điều này đã được sửa.
  • math.isPrime báo cáo sai với số 2. Điều này đã được sửa chữa.
  • Trái ngược với hướng dẫn sử dụng, abs trả về 2 với lỗi. Bây giờ nó trả về -1 như được ghi lại.
  • Gói bit đã bị xóa.
  • Đã thêm hàm C API mới agn_isioforcerror để kiểm tra xem liệu _EnvIoForceError có được đặt thành giá trị không null hay không.
  • Hàm API C mới agn_setbitwise xác định liệu toán tử của nhà khai thác, bor, bnot, bxor và shift có tính toán nội bộ với các số nguyên đã ký hoặc không dấu.
  • Hàm API C mới agn_getbitwise trả về chế độ được đặt bởi agn_setbitwise.
  • Chức năng C API mới agn_setdigits đặt số chữ số được sử dụng để in số.
  • Hàm API C mới agn_getdigits xác định số chữ số được sử dụng để in số.
  • Nội bộ: Đã xóa mục nhập "REPL" không được chấp nhận từ luaP_opnames.
  • Trình cài đặt Windows đã được cải thiện bằng cách kiểm tra phiên bản Agena đã cài đặt trước đó, bằng cách ngăn chặn trình cài đặt được khởi động nếu một phiên bản khác đang chạy và một số cải tiến nhỏ khác.

Yêu cầu :

  • Ncurses
  • GNU Readline

Phần mềm tương tự

Rails
Rails

17 Feb 15

Lua
Lua

17 Aug 18

4tH compiler
4tH compiler

20 Feb 15

TinyPie
TinyPie

12 May 15

Ý kiến ​​để Agena

Bình luận không
Nhập bình luận
Bật hình ảnh!