Agena

Version: 
2.16.9
Release date: 
Sunday, 6 October, 2019

License:

Interface:

Authors/Port authors:

Agena is an easy-to-learn procedural programming language suited for everyday usage. It has been implemented as an interpreter and can be used in scientific, educational, linguistic, and many other applications. Its syntax looks like very simplified Algol 68 with elements taken from Lua and SQL.

This software is distributed as compressed package. You have to download and manually install it; if prerequisites are required, you will have to manually install them too.

Manual installation

Available both as 7 ZIP and WarpIN package:

  • download the 7 ZIP package to temporary directory and unpack it to destination folder;
  • the WarpIN package is self-installing.

See below for download link(s).

You can install the prerequisites with rpm running the following string in a command line:

yum install libc libcx libgcc1 libssp libstdc++6 libstdc++ libsupc++6 libsupc++ libgcc-fwd readline ncurses

Following ones are the download links for manual installation:

Agena v. 2.16.9 (12/11/2019, Alexander Walz) Readme/What's new
2.16.9, November 12, 2019 - Some `->` assignment statements involving the `storage` token resulted in syntax errors. This has been fixed. - The new C API function `agnL_optuint32_t` checks for an optional non-negative number and returns it if given, or a default, in both cases cast to uint32_t. 2.16.8, November 03, 2019 - The new `hashes.adler32` function computes the Adler32 string hash. - Various `hashes` string hash functions now accept unsigned 4-byte integer arguments greater than 2^31: `djb`, `djb2`, `fnv`, `jen`, `oaat`, `pl`, `raw`, `sax`, `sdbm`, `sth`, `lua`, `murmur2`, `murmur3`, `murmur3128`, `varlen`, `djb2rot`, `asu`, `elf`, `ap`, `dek`, `bkdr`, `sysv`, `rs`, `bp`, `pjw`, `hashmap`. - With integer arguments > 2^31, `bytes.cast` returned wrong results, the same with the following `bytes` library functions: `setwordsofdouble`, `sethighofdouble`, `setlowofdouble`, `onebits`, `leadzeros`, `trailzeros`, `mostsigbit`, `leastsigbit`, `reverse`, `setwords`, `sethigh`, `setlow`, `arshift32` and `nextbit`. This has all been fixed. - Corrected error messages of `bytes.mod32` and `bytes.divmod32`. 2.16.7, October 31, 2019 - A table can now be assigned to a procedure with the new `storage` feature. This internal table will remain active during a whole session and you can read or write values to it in subsequent calls to the function. This new feature is at least thrice as fast as exchanging data with the registry but only half as fast as closures. See Chapter 6.25 and this example: > f := proc() is > feature storage > storage[1] := Pi > storage.entry := E > return storage, storage[1], storage.entry > end; > f(): [1 ~ 3.1415926535898, entry ~ 2.718281828459] 3.1415926535898 2.718281828459 - Changed `watch` to work with an internal storage table instead of the registry. - If was not possible to insert values into the internal status table of `numarrays`. This has been fixed. - The way the `registry` package internally stored values caused invalid memory reads at garbage collection, but assertively caused no memory leaks. This issue, however, has been fixed. Just use unique strings, not lightuserdata objects, as the first argument to `registry.anchor` and `registry.get`. Thus, `registry.anyid`, which previously created lightuserdata objects, has become obsolete and now just returns the string given, for backward compatibility, so that code changes are unnecessary. Also corrected error message of `registry.anchor`. 2.16.6, October 26, 2019 - In Linux and Windows, `os.system` now also checks whether the underlying platform runs in 32 or 64-bit mode. - `numarray.write` has become 3.5 % faster when writing numbers (C doubles). - `math.ispow2` has been tuned by 5 %. - The new function `watch` implements a simple stop watch. - `registry.anchor` has been completely rewritten: You can now directly update a value without having to delete it before. Also, if a non-existent value shall be deleted, the function does not issue an error any longer. In summary, inserting new values into the registry has now become twice as fast and updating values thrice as fast. Unnecessary internal administrative overhead and memory consumption has been removed, as well. An example of how to use the registry to store data in an Agena session has been added to Chapter 6.31. - The `mp` library did not work in Solaris. This has been fixed. - Fixed `numarray.write` on Big Endian systems. - Improved error messages of `setmetatable`. - The new `agn_isinteger` C API function checks whether an integer is stored at a given stack position. 2.16.5, October 13, 2019 - `strings.random`, `hashes.varlen`, `os.fcopy` now behave correctly if internal memory allocation should fail, i.e. they issue an error now. - `strings.rotateleft`, `strings.rotateright`, `utils.hexlify` and `utils.unhexlify` have become around 3 percent faster. - `strings.find`, `strings.match`, `strings.isabbrev`, `strings.isending`, `strings.hits`, `strings.chomp`, `strings.gseparate` and `strings.advance` have been tuned a little bit. - Fixed internal overflow in the Mac OS X version of `os.time`. - The new C API function `agn_stralloc` allocates a string buffer of the most efficient size, aligned along the "long" boundary of your system.
 sourceforge.net/projects/agena/files/Binaries/Agena%202.16.9/agena-2.16.9-os2.wpi/download
Agena source code v. 2.16.9 (12/11/2019, Alexander Walz) Readme/What's new
2.16.9, November 12, 2019 - Some `->` assignment statements involving the `storage` token resulted in syntax errors. This has been fixed. - The new C API function `agnL_optuint32_t` checks for an optional non-negative number and returns it if given, or a default, in both cases cast to uint32_t. 2.16.8, November 03, 2019 - The new `hashes.adler32` function computes the Adler32 string hash. - Various `hashes` string hash functions now accept unsigned 4-byte integer arguments greater than 2^31: `djb`, `djb2`, `fnv`, `jen`, `oaat`, `pl`, `raw`, `sax`, `sdbm`, `sth`, `lua`, `murmur2`, `murmur3`, `murmur3128`, `varlen`, `djb2rot`, `asu`, `elf`, `ap`, `dek`, `bkdr`, `sysv`, `rs`, `bp`, `pjw`, `hashmap`. - With integer arguments > 2^31, `bytes.cast` returned wrong results, the same with the following `bytes` library functions: `setwordsofdouble`, `sethighofdouble`, `setlowofdouble`, `onebits`, `leadzeros`, `trailzeros`, `mostsigbit`, `leastsigbit`, `reverse`, `setwords`, `sethigh`, `setlow`, `arshift32` and `nextbit`. This has all been fixed. - Corrected error messages of `bytes.mod32` and `bytes.divmod32`. 2.16.7, October 31, 2019 - A table can now be assigned to a procedure with the new `storage` feature. This internal table will remain active during a whole session and you can read or write values to it in subsequent calls to the function. This new feature is at least thrice as fast as exchanging data with the registry but only half as fast as closures. See Chapter 6.25 and this example: > f := proc() is > feature storage > storage[1] := Pi > storage.entry := E > return storage, storage[1], storage.entry > end; > f(): [1 ~ 3.1415926535898, entry ~ 2.718281828459] 3.1415926535898 2.718281828459 - Changed `watch` to work with an internal storage table instead of the registry. - If was not possible to insert values into the internal status table of `numarrays`. This has been fixed. - The way the `registry` package internally stored values caused invalid memory reads at garbage collection, but assertively caused no memory leaks. This issue, however, has been fixed. Just use unique strings, not lightuserdata objects, as the first argument to `registry.anchor` and `registry.get`. Thus, `registry.anyid`, which previously created lightuserdata objects, has become obsolete and now just returns the string given, for backward compatibility, so that code changes are unnecessary. Also corrected error message of `registry.anchor`. 2.16.6, October 26, 2019 - In Linux and Windows, `os.system` now also checks whether the underlying platform runs in 32 or 64-bit mode. - `numarray.write` has become 3.5 % faster when writing numbers (C doubles). - `math.ispow2` has been tuned by 5 %. - The new function `watch` implements a simple stop watch. - `registry.anchor` has been completely rewritten: You can now directly update a value without having to delete it before. Also, if a non-existent value shall be deleted, the function does not issue an error any longer. In summary, inserting new values into the registry has now become twice as fast and updating values thrice as fast. Unnecessary internal administrative overhead and memory consumption has been removed, as well. An example of how to use the registry to store data in an Agena session has been added to Chapter 6.31. - The `mp` library did not work in Solaris. This has been fixed. - Fixed `numarray.write` on Big Endian systems. - Improved error messages of `setmetatable`. - The new `agn_isinteger` C API function checks whether an integer is stored at a given stack position. 2.16.5, October 13, 2019 - `strings.random`, `hashes.varlen`, `os.fcopy` now behave correctly if internal memory allocation should fail, i.e. they issue an error now. - `strings.rotateleft`, `strings.rotateright`, `utils.hexlify` and `utils.unhexlify` have become around 3 percent faster. - `strings.find`, `strings.match`, `strings.isabbrev`, `strings.isending`, `strings.hits`, `strings.chomp`, `strings.gseparate` and `strings.advance` have been tuned a little bit. - Fixed internal overflow in the Mac OS X version of `os.time`. - The new C API function `agn_stralloc` allocates a string buffer of the most efficient size, aligned along the "long" boundary of your system.
 sourceforge.net/projects/agena/files/Sources/agena-2.16.9-src.tar.gz/download
Record updated last time on: 13/11/2019 - 04:22

Translate to...

Comments

Hello, thank you very much for listing me. Greetings from Bonn, Rhineland, Alex

Add new comment