|
Agena v. 7.7.7 (Update 1, 19/7/2026, Alexander Walz) |
Readme/What's new |
AGENA LIBRARY CUMULATIVE UPDATE
Improvements
------------
7.7.7 Ariel Cumulative Library Update 1, July 19, 2026
- Added the new function `strings.lpad` which prepends characters to the beginning of a string (left-padding). The function
is actually an alias to `strings.rjustify`.
- Likewise, new `strings.rpad` appends characters to the end of a string (right-padding). The function is an alias to
`strings.ljustify`.
- With bitfields created by the `memfile` package, the pretty-printer now prints the individual bytes from the left end of
the field to the right end. This is to avoid confusion about the actual location of a bit. Also improved the description of
`memfile.clearbit`, `memfile.getbit`, `memfile.getbyte`, `memfile.setbit` and in the Reference.
- In the Primer, redacted the explanation of weak tables in Chapter 6.20, now also featuring correct examples.
- Just download the `agena-7.7.7-update1.zip` file in the Binaries/Agena 7.7.7 folder and check the `libupdate.readme` file
in the root of the ZIP archive for installation instructions. In short, you'll just need to overinstall the files in your
local Agena installation folder.
- This release has been successfully Dr. Memory-tested on Windows and Valgrind-tested on x64 Linux.
Prerequisite
------------
Have at least Agena 7.7.7 installed.
Summary
-------
Just overinstall the files in your local Agena installation folder with the files in this ZIP archive. See below for more info.
Installation
------------
This update can be used with all operating systems. You may need administrator rights to install this update.
Solaris, UNIX, and Mac
----------------------
In Solaris, OpenSolaris, Linux, and Mac, the Agena installation can be found in /usr/agena. (This folder includes
at least the following subdirectories: data, doc, lib, schemes, and share). Please cd into this Agena main directory,
i.e. into /usr/agena.
Proceed with step `Unpack`.
Windows
-------
In Windows, your Agena installation might usually reside in
- <drive letter>:\Programs\Agena, or
- <drive letter>:\Program Files\Agena, or
- <drive letter>:\Program Files (x86)\Agena.
Please cd into this Agena subdirectory. Its contents is as follows (timestamps may vary):
26/07/2025 14:33 <DIR> .
26/07/2025 14:33 <DIR> ..
26/07/2025 14:33 <DIR> bin
26/07/2025 14:33 <DIR> data
26/07/2025 14:33 <DIR> doc
26/07/2025 14:33 <DIR> lib
26/07/2025 14:33 <DIR> share
26/07/2025 14:33 122,398 uninstall.exe
Proceed with step `Unpack`.
DOS
---
In DOS, locate the Agena directory that includes the licence and change.log files, and cd into this directory.
Please proceed with step `Unpack`.
Unpack
------
Copy this ZIP archive to your main Agena folder (see above) you just cd'ed into.
Please copy the lib/*.agn file(s) in the lib folder of this ZIP archive to the lib folder of your Agena
installation, overwriting the original file(s).
If present, copy the updated documentation in the doc directory of this ZIP archive to the doc folder of your
Agena installation, overwriting the original files. If present, please also copy scheme(s) files that may be
included in this update to the schemes folder.
Or just for short: in a shell, just issue the following statement after cd'ing:
unzip -o *update*
Really Updated ?
----------------
To check whether the update has been successfully installed: The start-up message should now include the word
`Update`, e.g.:
AGENA >> a.b.c Update n. (C) 2006-20xy http://agena.sourceforge.net.
That's it.
|
sourceforge.net/projects/agena/files/Binaries/Agena 7.7.7/agena-7.7.7-update1.zip |
|
|
Agena v. 7.7.7 (17/7/2026, Alexander Walz) |
Readme/What's new |
agena >>
`The Power of Procedural Programming`
7.7.7 Ariel, July 17, 2026
- Fixes for out-of-memory situations to `dlong.new`, `io.infile`, `io.nlines`, `io.readfile`, `io.readlines`,
`io.skiplines`, `mapm` package, `union`, `minus` and `intersect` metamethods of the `numarray` package,
`numarray.unique`, `pushd` statement, `os.readlink`, `stack` package, `stats.mode`, `stats.sorted`,
`strings.hextodec`, `strings.tolatin` and the `xbase` package. The patches prevent corruption of data
in case of failed memory re-allocation.
- Also introduced out-of-memory management for Agena initialisation, `binio.readbytes`, `environ.kernel`,
`io.lines`, `memfile.append`, `memfile.charbuf`, `memfile.prepend`, `mprint`, `net.accept`, `net.bind`,
`net.connect`, `net.listen`, `net.open`, `os.getip`, `os.islocale`, `os.symlink`, `print`, `rsorted`,
`stack.readbytes`, `stack.readbytes`, `str.fields`, `strhash.include`, `strings.iterate`, `strmap.include`,
`utils.udata`. |
sourceforge.net/projects/agena/files/Binaries/Agena 7.7.7/agena-7.7.7-os2.wpi/download |
|
|
Run Agena Scripts Easily (rase) v. 7.7.7 (17/7/2026, Alexander Walz) |
Readme/What's new |
rase - Run Agena Scripts Easily in Windows NT 4.0 or later and in OS/2.
Please refer to the explanations in `example.agn`.
For a quick demo, unpack all the files into a new, fresh directory, change into this directory and run the `example.exe` file
in an command shell (Windows) or `example.cmd` (OS/2) as follows:
example 1 2
There is also a utility called `whereis` which searches for a file in a path:
whereis /r /a "agena.*" c:/agena
Another one prints drive information:
drive c:
A script printing information on installed memory:
memory
Finally, cpuinfo prints various information on the CPU:
cpuinfo /a
In your operating system, you may want to add the path to the rase directory to your PATH system environment variable.
Credit: The implementation is based on https://www.cs.usfca.edu/~galles/cs420/lecture/LuaLectures/LuaAndC.html,
written by: Associate Professor David Galles, Department of Computer Science, University of San Francisco, CA 94117.
For compilation hints, check the top of the rase.c source file.
----------------------------------------------------------------
# READ.ME and DEMO Run Agena Scripts Easily (rase) for Windows
/*
This file shows how to execute Agena scripts in Windows NT 4.0 and later without passing the script and its arguments
to the actual Agena interpreter.
We won't call "agena example.agn 1 2" from the commandline, but just enter "example 1 2" in the NT shell.
In OS/2 we use the batch script example.cmd to execute a script.
Please make sure that the following files are now in one and the same directory:
example.agn (or your favourite script filename)
example.exe (Windows only, or your favourite executable filename)
agena.exe (in OS/2 only)
agena.dll (do not change the filename)
library.agn (do not change the filename)
libgcc_s_dw2-1.dll (Windows only, do not change the filename)
libmingwex-4.dll (Windoes only, do not change the filename)
In Windows, rename the following files in this ZIP file to your favourite name:
example.exe -> yourfavouritename.exe
example.agn -> yourfavouritename.agn
In OS/2, rename the following files in this ZIP file to your favourite name:
example.cmd -> yourfavouritename.cmd
example.agn -> yourfavouritename.agn
and edit the *.agn file according to your need. The *.exe or *.cmd file will launch your *.agn script file of the same name.
For a more elobarate script that locates files, links or folders in a directory, check the `whereis.agn` script.
For a script that prints drive information, check the `drive.agn` script. */
print('\nDemo using NO explicit function by referring to the \`args\' table:');
print('-----------------------------------------------------------------\n');
print('Number of arguments:', size(args));
# all arguments (all strings )are available in the args table, including the name of the script at index 1
print('Arguments passed: ', args);
# we convert the command-line arguments to numbers
local x, y := tonumber(args[2]), tonumber(args[3]);
if x :: number and y :: number then
print('Test: ', x & ' minus ' & y & ' is ' & (x - y));
print('Test: ', 'sqrt(' & x & ' + ' & y & ') is ' & sqrt(x + y))
fi;
/* In Windows, we _alternatively_ define a function of the same name as the executable
(w/o the file suffix, `example` in this case). This function will then be called
by the executable `example.exe`.
Just enter the following statement in an NT shell (cmd.com) and see what will happen:
example 1 2
*/
example := proc(?) is # this function will be automatically called by the executable
print('\nDemo using explicit function of same name \& \`nargs\' and the \`varargs\' table:');
print('----------------------------------------------------------------------------\n');
print('Number of arguments:', nargs);
print('Arguments passed: ', ?);
local x, y := tonumber(?[1]), tonumber(?[2]);
if x :: number and y :: number then
print('Test: ', x & ' minus ' & y & ' is ' & (x - y));
print('Test: ', 'sqrt(' & x & ' + ' & y & ') is ' & sqrt(x + y))
fi
end;
/* The output should be:
C:\agena\extract>example 1 2
Demo using NO explicit function by referring to the `args' table:
-----------------------------------------------------------------
Number of arguments: 3
Arguments passed: [example, 1, 2]
Test: 1 minus 2 is -1
Test: sqrt(1 + 2) is 1.7320508075689
Demo using explicit function of same name & `nargs' and the `varargs' table:
----------------------------------------------------------------------------
Number of arguments: 3
Arguments passed: [example, 1, 2]
Test: 1 minus 2 is -1
Test: sqrt(1 + 2) is 1.7320508075689
*/
|
sourceforge.net/projects/agena/files/Packages/rase-os2-7.7.7.zip/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. 7.7.7 (, Alexander Walz) |
|
|
sourceforge.net/projects/agena/files/Manuals/agena.pdf/download |
|
|
Agena source code v. 7.7.7 (Source code, , Alexander Walz) |
|
|
sourceforge.net/projects/agena/files/Sources/agena-7.7.7-src.tar.gz/download |
|
Commenti
Alexander Walz
Sab, 13/05/2017 - 20:06
Collegamento permanente
Hello,
Aggiungi un commento