Agena

Version: 
6.7.2
Release date: 
Monday, 9 March, 2009

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 ZIP and WarpIN package:

  • download the 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 expat sqlite

Following ones are the download links for manual installation:

Agena v. 6.7.2 (4/2/2026, Alexander Walz) Readme/What's new
agena >> `The Power of Procedural Programming` 6.7.2 Isfahan, February 04, 2026 - `calc.Psi` has been extended and computes the Pentagamma function of a value if given the first-order argument 3, e.g. `calc.Psi(3, value)`. - New `long.pentagamma` computes the Pentagamma function in 80-bit precision. - With dual numbers, `dual.arccsc`, `dual.arccsch`, `dual.arcsech` and the `arcsec` operator have been tuned a bit by three percent. - The `tanc` operator could crash in OS/2 when given a dual number. This has been fixed. - The following arithmetic standard functions, when given a dual number, have been prepared to call alternative implementations written in the Agena language instead of the C language. If you want to override the dual-number C version for `gamma`, for example, just define a function named `dual.gamma`; to replace the C dual-number implementation of `arccsc` just write a function called `dual.arccsc`, and so on: `arccosh`, `arccoth`, `arccsc`, `arccsch`, `arcsech`, `arcsinh`, `arctan2`, `arctanh`, `beta`, `cas`, `cbrt`, `cosc`, `cot`, `coth`, `csc`, `csch`, `erf`, `erfc`, `erfcx`, `exp10`, `exp2`, `expm1`, `expx2`, `gamma`, `hypot`, `hypot4`, `inverf`, `inverfc`, `lnp1`, `log10`, `log2`, `pytha`, `pytha4`, `sec`, `sech`, `tanc`, `calc.Psi`, `math.expm1` and `math.lnp1`. You can also replace the underlying dual-number metamethods for the operators by injecting your own, see the lib/library.agn file, dual section, on how to do this. 6.7.1 Isfahan, February 04, 2026 - This is a fully-functional OS/2-specific release only. - Internal `dual` fallback functionality has been extended and in the case of `arccsc`, `arccsch`, `pytha`, `pytha4` error messages have been fixed. 6.7.0 Isfahan, February 04, 2026 - The `dual` package has been integrated into the core interpreter and you do not need to explicitly import it any longer, as it is available immediately after start-up. - You can now define third-order dual numbers, allowing for the third derivative to be automatically computed with very high accuracy: > environ.kernel(digits = 17); > dual.diff(<: x -> dual.exp10(x) :>, 2, deriv = 3): 1220.8071553760858 - Dual-number support has been extended with the new functions: `dual.cot` (cotangent), `dual.coth` (hyperbolic cotangent), `dual.csc` (cosecant), `dual.csch` (hyperbolic cosecant), `dual.sec` (secant), `dual.sech` (hyperbolic secant). Also added the casine function `dual.cas` computing sin(x) + cos(x) with high accuracy. - The following arithmetic standard functions now accept dual numbers out-of-the-box. This means you can easily define functions to be differentiated later without using the `dual` table prefix: `arccosh`, `arccoth`, `arccsc`, `arccsch`, `arcsech`, `arcsinh`, `arctan2`, `arctanh`, `beta`, `cas`, `cbrt`, `cosc`, `cot`, `coth`, `csc`, `csch`, `erf`, `erfc`, `erfcx`, `exp10`, `exp2`, `expm1`, `expx2`, `gamma`, `hypot`, `hypot4`, `inverf`, `inverfc`, `lnp1`, `log10`, `log2`, `pytha`, `pytha4`, `sec`, `sech`, `tanc`. `calc.Psi`, `math.expm1` and `math.lnp1` do the same. As before, once a dual number is being passed to a supported operator, automatic differentation will take place by invoking the respective metamethod: Example: > dual.diff(<: x -> sin(x) * exp10(x) :>, 2, deriv = 2): 199.52778776641102 This is equivalent to: > dual.diff(<: x -> sin(x) * dual.exp10(x) :>, 2, deriv = 2): - The accuracy of `erfcx` has been improved by one digit in the real domain, by computing the result internally with 80-bit precision. - New `long.erfcx` computes the scaled complementary error function erfcx(x) = exp(x^2)*erfc(x) with 80-bit precision. - The source file `lmathlib.c` did not compile with DJGPP. This has been fixed. - There is no OS/2 edition this time as it is showing strange behaviour with dual numbers. Please use the DOS edition instead, it is working flawlessly in ArcaOS 5.0.x. - This release has been Valgrind-checked on x86 and x64 Linux to ensure there are no internal errors or memory leaks. - This release has been named after the Iranian city of Isfahan, home to the Naqsh-e Jahan Square, one of the World's largest and most architecturally symmetrical squares, the engineering marvel Si-o-se Pol (`Bridge of 33 Arches`) and the Jolfa Clock Tower. It is also home to the legendary polymath Avicenna (Ibn Sina) and the site where Omar Khayyam calculated the Jalali calendar, still one of the most accurate solar calendars in existence.
 sourceforge.net/projects/agena/files/Binaries/Agena 6.7.2/agena-6.7.2-os2.wpi/download
Agena v. 4.12.5 (20/5/2025, Alexander Walz) Readme/What's new
4.12.5 Merryville, May 20, 2025 - In the past, the bitshift operators <<< (left shift), >>> (right shift), <<<< (left rotation) and >>>> (right rotation) had different behaviour across platforms when a number at or beyond the +/-2^32 threshold has been processed. This has been changed and the results in these situations are now the same. Likewise, `bytes.numto32` is now returning the same results on all platforms when casting a value at or beyond the +/-2^32 border. This also benefits various functions in the `hashes` package as their returns are now the same across platforms, as well. To check the new underflow or overflow behaviour, use `math.wrap`. - New function `math.fmod` works and returns the same result as the binary `symmod` operator. It has just been added to facilitate porting C code to Agena. - The results of `hashes.mix`, `hashes.crc32`, `hashes.crc8`, `hashes.reflect`, `hashes.parity`, `hashes.fibmod`, `hashes.interweave`, `hashes.jinteger` may now be different with out-of-range input, that is with arguments at or beyond the 2^32 threshold, depending on your platform.
 www.hobbesarchive.com/Hobbes/pub/os2/dev/proglang/misc/Agena_4-12-5.wpi
Agena Manual v. 6.7.2 (, Alexander Walz)
 sourceforge.net/projects/agena/files/Manuals/agena.pdf/download
Agena source code v. 6.7.2 (Source code, , Alexander Walz)
 sourceforge.net/projects/agena/files/Sources/agena-6.7.2-src.tar.gz/download
Record updated last time on: 04/02/2026 - 20:43

Translate to...

Comments

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

Add new comment