WINDOWS CATEGORIES:



NEWS ARCHIVE >>
SOFTPEDIA REVIEWS >>

WEEKLY HIGHLIGHTS

DVD Cloner45
Spyware Doctor40
1Click DVD Copy40
Apollo DVD Copy40
ABC Amber BlackBer...45
Protected Music Co...40

7-DAY TOP DOWNLOAD

#
Program
Avira AntiVir
Personal - Free
Antivirus 9.0.0.418

171,507
Avira Antivir Virus
Definition File
Update February 10,
2010

136,905
Windows Live
Messenger 2009
14.0.8089.726

109,751
Microsoft Office
2010 14.0.4536.1000
Beta / 2007

88,072
Y! Multi Messenger
8.x and 9.x

85,060
Internet Download
Manager 5.18 Build 8

57,149
RemoveWGA 1.2
54,385
DVD Shrink 3.2.0.15
47,666
Nero 7 Premium
7.11.10.0

43,985
AVG Free Edition 9.0
Build 730a1834

42,657

WEEK'S BEST

  • DirectX Redistribu...
  • AnyBizSoft PDF to ...
  • WinX DVD to iPod R...
  • WinUtilities [GIVE...
  • WinPatrol 17.1.201...
  • Wondershare iPod V...
  • EASEUS Partition M...
  • Advanced SystemCar...
  • EASEUS Data Recove...
  • WinX Blu-Ray Decry...
  • Aimersoft DVD to 3...
  • Returnil Virtual S...
  • Backup4all Pro [DI...
  • East-Tec Eraser 20...
  • VIRUSfighter 6.2.68
  • Platinum Guard [GI...
  • SPAMfighter Pro 6....
  • AVG Internet Secur...
  • novaPDF Lite [DISC...
  • Ad-Aware Plus 8.1.0
  • WINner Tweak [DISC...
  • Uniblue DiskRescue...
  • Smarty Uninstaller...
  • Ashampoo Magical D...
  • Online Armor ++ 4....
  • TuneUp Utilities 2...
  • DAEMON Tools Pro (...
  • HWiNFO32 3.41.570
  • Glary Utilities (N...
  • Firebird 2.5.0.259...
  • Home > Windows > Programming > Coding languages > Compilers > Agena > Changelog

    Agena 0.30.3 - Changelog


    What's new in Agena 0.30.3:

    · Agena now supports arbitrary precision for real numbers through the mapm binding to Mike's Arbitrary Precision Math Library
    · The new function linalg.swaprow swaps rows in a matrix.
    · The new function linalg.swapcol swaps columns in a matrix.
    · The getentry function has been implemented in C and thus is 5 times faster than before.
    · math.isPrime is around 4 % faster than before.
    · The new function countitems counts the number of occurences of an item in a structure. The procedure accepts either the item itself to be counted or a function that evaluates to true in order for something else to be counted. It is at least twice as fast as a combination of size and select. The function may invoke metamethods.
    · The gdi package includes a number of new functions that allow to plot geometric objects easily. See chapter 7.19.7 for a tutorial.
    · If you pressed CTRL+C during operation of the instr operator, Agena crashed. This has been fixed.
    · strings.seek will be removed in the next major release. Use the instr operator instead for it is 45 % faster.
    · Fixed a bug in gdi.options that occurred when a wrong type has been passed.
    · The manual has been improved.



    What's new in Agena 0.30.1:

    · The new function io.anykey checks whether a key (any key) is being pressed (available in Solaris, Linux, and Windows).
    · A second procedure called calc.xpdiff to differentiate functions has been added to the calc packageIt produces better results with powers and trigonometric functions than calc.diff.
    · calc.minimum and calc.maximum have been improved by checking possible extrema with both calc.diff and calc.xpdiff.
    · The new dimension baselib function creates sparse vectors and sparse matrices with arbitrary index rangesAn optional initialiser may be given, too.
    · calc.zero now sorts its return and also uses a fall-back method to improve results.
    · The new tables.entries function returns all elements (not the keys) of a table in a new table array.
    · When printing tables at the console, the output is now sorted in ascending order of the keys.
    · When printing sets at the console, the output is now sorted.
    · The Windows installer has been improved, supports multi-user setup, and also offers to copy the Agena include files to your disk.



    What's new in Agena 0.30.0:

    · In all OS versions, Agena now supports multi-user configurations by searching for an (optional) initialization file in the user's home folder at programme start-upAgena still first tries to read the agena.ini file in the main Agena folder before looking for the personal initialization file.
    · for/to loops now automatically use an advanced precision algorithm (an adaption of Kahan summation) if the step size is non-integral: This in many situations prevents Agena from stopping iteration before the last iteration value has been reached (try "for i from -4 to -3 by 0.1" in previous versions)Also Agena in most cases does not return for/to-iteration values with roundoff errors any longer.
    · The new nseq baselib function returns a sequence of numbers over an interval with a given step sizeThe return is much more precise with step sizes that are not integers by using the same new algorithm used in for/to loops.
    · gdi now has a function to significantly increase the performance of the package: gdi.autoflush allows to set or unset autoflush modeThe latter gives quite a performance boost on x86 based systems.
    · The new gdi.mouse function returns information on the current position of your mouse and its button state.
    · The new function gdi.system sets the user's coordinate system and its scalings.
    · The new 'mouse' options to gdi.plotn prints the current position of the mouse to the consoleClick the right mouse button to finish.
    · binio.sync corrupted filesThis has been changed.
    · The -p command-line switch to set the path to an alternate main Agena library folder did not work any moreThis has been fixed.
    · The -n command-line option suppressed loading the main Agena library fileThis has been changed.
    · calc.minimum and thus calc.maximum missed some possible extrema, this has been changedThe procedures sometimes also returned a point multiple timesThis has been fixed, as well.
    · calc.fseq now uses the Kahan summation algorithm to prevent (or at least minimize) roundoff errorsBefore, right borders have not been processed in certain situations, and elements inserted had roundoff errors.
    · calc.fsum now uses a modified Kahan algorithm conceived by Kazufumi Ozawa which is more precise than the original one.
    · Patched calc.fminbr, such that if a minimum is exactly at one of the given borders, the border is returnedThus, the results of calc.minimum and calc.maximum, which use calc.fminbr, have been improved, as well.
    · gdi.plotfn: In case of errors, the function now tries to prevent to open empty windowsPlotting axes and labels has been improved, as well.
    · When printing sequences, Agena sometimes printed a comma and a blank right after the last value at line breaksThis has been fixed.



    What's new in Agena 0.29.3:

    · readlib and with now also check the folder pointed to by mainlibname for Agena libraries. The new search sequences are: current working directory, mainlibname, libname. The search sequence used by readlib is output on the console if the last argument is true.
    · Added labels, xscale, and yscale options inspired by the TI-84 calculator to gdi.plotfn. Plotting of the `0` label has been improved, as well.
    · The new tables.allocate function sets the specified keys and values to a table.
    · Standardized error messages in all packages.
    · map, select, and remove did not work correctly in some cases with table arrays, and always did not work correctly with dictionaries. This has been fixed.
    · maptoset crashed Agena if called with a dictionary. Also it did not work correctly with some sorts of table arrays. This has been fixed.
    · As previously documented, zip did not work with dictionaries. This has been changed.
    · linalg.checkvector might have crashed if anything but a vector has been passed. Although this error never occurred, a fix has been provided.



    What's new in Agena 0.28.0:

    · Parameter lists of procedures now accept names of user-defined types (see settype).
    · Multiple indexes can now be separated by commas, e.g. a[1, 2] is equal to a[1][2].
    · The new instr operator searches for substrings within a string, supports regular expressions in the search pattern und also optionally starts from a given position in the string. It is twice as fast as strings.find. The function was named after a similar function in the Sinclair QL.
    · The new subs function substitutes values in tables, sets, and sequences.
    · The new formatting function _EnvPrint.Procedure has been added to allow the user to control how procedures and procedures with a user-defined type are output at the console.
    · The new & operator concatenates strings. The current .. concatenation operator will gain a new meaning in one of the coming releases, so it is advised to no longer use it.
    · The bitwise operators band, bnot, bor, and bxor have been renamed to &&, ~~, ||, ^^ to resemble the bitwise operators on the Sinclair QL and in C. The old bitwise operators (band, etc.) are still supported for backward compatibility but will be deleted in one of the coming major releases.
    · The garbage collector inadvertently deleted user-defined types. This has been fixed.
    · map, select, and remove did not copy user-defined types to the new sets. This has been fixed.
    · remove did not copy user-defined types and metatables with tables and sets. This has been fixed.
    · The C API function agn_setutypestring has been removed. Use agn_setutype instead.



    What's new in Agena 0.27.2:

    · The new toSet baselib function converts a string into a set of its characters, and a table or sequence into a set.
    · io.readlines has been patched to process lines with more than 2048 characters. The function now also issues an error if internal memory allocation fails. Internal buffer size has been decreased from 2048 bytes to 512 bytes. You may change this by assigning another value to AGN_IOREADLINES_MAXLINESIZE in the agnconf.h file and recompiling Agena.
    · io.readlines now also accepts file handles. When using file handles, as opposed to file names, please note that you must open and close the file manually before and after using io.readlines (with io.open and io.close).
    · io.readlines no longer returns an empty table if the file does not exist. Instead, it issues an error.
    · toSeq now returns an error instead of fail if it does not receive a string, set, or table.
    · The baselib function used has been extended and can return memory usage in bytes, kbytes, and gbytes. It is a C function now.
    · The undocumented gcinfo function has been deleted. Its functionality has been taken by used.
    · The new C API function agn_usedbytes returns the number of bytes used by the system.
    · Corrected wrong error message of toTable.
    · Renamed C API function `agn_isioforcerror` to `agn_isioforceerror`.



    What's new in Agena 0.27.1:

    · xor has been extended to check for non-null and null constellations so that they can also process non-boolean values similar to the and, or, and not operators.
    · Expressions like 'text'[1] and 'test'$(1) are now supported by the parser. Before, the string first had first to be stored to a name in order to subscript it.
    · The manual has been updated. Also, a crash course has been added to the doc directory.
    · The C API functions agn_ncall and agn_ccall now issue an error if the type of return of the Agena function call is not a number or complex value, respectively. This affects calc.fseq and calc.fsum.
    · The C API function agn_ccall is now also available for the strict-ANSI and the DOS versions of Agena.
    · The strict-ANSI versions of Agena, and the DOS and OS/2 versions do not try to initialise external/dynamic C libraries any longer.
    · Provided a separate makefile to compile the strict-ANSI versions of Agena (compiled with the LUA_ANSI option) so that the stats, calc, linalg, and ADS packages can now be used (they are now compiled into the Agena executable). Before, these packages could not be used in the strict-ANSI versions of Agena. See the `makefile.ansi` for instructions on how to compile under GCC.
    · Improvements to the Linux installers: at uninstall, all the Agena directories are now deleted. The RPM installer now also prints a hint at installation to properly set the AGENAPATH environment variable.
    · Improvements to the Solaris installers: the PKG installer now also prints a hint at installation to properly set the AGENAPATH environment variable.



    What's new in Agena 0.27.0:

    · Added the error function math.erf, and the complementary error function math.erfc.
    · Added the Bessel function of the first kind math.besselj, and the Bessel function of the second kind math.bessely. The order is given by the first argument, the argument as the second argument.
    · If the new environment variable _EnvIoForceError is set to a non-null value (the default), the io.open, io.readlines, and the various binio functions quit with an error instead of just returning normally.
    · binio.readbytes and binio.readchar returned an empty sequence instead of fail in case the file to be read did not exist. This has been changed: fail or an error is now returned.
    · arcsin and arccos are now operators and thus around 40 % faster.
    · Added the xor operator which performs a Boolean exclusive-OR on values which evaluate to or are true, false, fail, and null.
    · Added the atendof operator which checks whether a word ends in a given phrase and returns its position as a number. The operator returns null if the strings have the same length, at least one of them is the empty string, or the word does not end in the given pattern.
    · hasrtable now only returns true, if it has a read-write remember table (updated by the return statement).
    · The new function hasrotable determines whether a function has a read-only remember table (that cannot be updated by the return statement) and returns true or false.
    · The new operators gethigh and getlow retrieve the higher and the lower bytes from a number (i.e. C double).
    · The new operators sethigh and setlow set the higher and the lower bytes to a number (i.e. C double).
    · The new operators band, bor, bxor, and bnot conduct bitwise and, or, exclusive-or, and complementary operations on numbers.
    · The new `kernel` function configures settings of the Agena kernel. Currently it can change the way the bitwise operators internally work (usage of signed or unsigned integers), and how numbers are printed.
    · With real numbers x, math.argument now returns Pi instead of 0 if x < 0.
    · Because of a bug in the underlying ANSI C library functions, arcsin and arccos produced wrong results with complex numbers if their imaginary part was zero in UNIX systems. This has been fixed.
    · math.isPrime reported false with number 2. This has been corrected.
    · As opposed to the manual, abs returned 2 with fail. Now it returns -1 as documented.
    · The bits package has been removed.
    · Added the new C API function agn_isioforcerror which checks whether _EnvIoForceError has been set to a non-null value.
    · The new C API function agn_setbitwise determines whether the operators band, bor, bnot, bxor, and shift internally calculate with either signed or unsigned integers.
    · The new C API function agn_getbitwise returns the mode set by agn_setbitwise.
    · The new C API function agn_setdigits sets the number of digits used for printing numbers.
    · The new C API function agn_getdigits determines the number of digits used for printing numbers.
    · Internal: Removed deprecated "REPL" entry from luaP_opnames.
    · The Windows installer has been improved by now checking for a previously installed version of Agena, by preventing that the installer is started if another instance of it is already running, and by some other small improvements.



    What's new in Agena 0.26.4:

    · The new `math.fraction` function splits a number into its numerator and denominator.
    · The new `math.nextafter` procedure returns the next machine floating-point number of its argument in a specified direction.
    · `calc.fseq` has been extended to accept an optional step size.
    · The new `calc.minimum` function returns possible minimum locations of a univariate function.
    · `math.approx` returned wrong results with GCC compiled binaries because of a buggy C library function (fmax). This has been fixed. `math.approx` now uses a combination of a simple distance measurement for values near 0, and the approximation algorithm already implemented for comparing larger values.
    · Version information and an icon are now compiled into the Windows binary.
    · Added --large-address-aware switch to the Makefile in a hope that correct values for free physical RAM are returned in the Windows versions of Agena on computers with > 2 GBytes RAM and



    What's new in Agena 0.26.3:

    · Minor improvements of the error messages issued by `io.write` and `io.writeline`.
    · Revised the manual and included examples for the io, calc, and linalg packages.



    What's new in Agena 0.26.2:

    · Agena quits in Windows if a line beginning with a hash and ending with a colon has been entered. This has been fixed.
    An input like:
    · > for i to 10 do
    · > print(i)
    > i:
    · > od;
    · confused the stack. Now a syntax error is issued if a value shall be printed using the colon notation and if the colon notation is not used in the first line of input.
    · A complex division by 0+0*I now returns `undefined` on all platforms.



    What's new in Agena 0.26.1:

    · `toNumber` now also converts strings with complex values into genuine complex values.
    · Extended `math.approx` to compare complex values, as well.
    · Patched `math.approx` to return correct results.
    · Patched `math.arccosh` to return correct results if its argument x is in [-infinity, 0].
    · The `ln` operator returned `-infinity` instead of `undefined` if its argument is 0+0*I. This has been fixed.
    · `math.arccoth` returned wrong results if its `real` argument x was less than 1 or x = -1+0*I or x = +1+0*I. This has been fixed.
    · Patched `math.ceil` to work correctly with real numbers.
    · The `gammaln` and `int` simply returned their argument if it were not a number. Now these operators return an error if no metamethods have been defined.
    · Fixed an issue when compairing a number and a complex values that are both `undefined`. In this case, the equality check returned `false`. Now `true` is returned.
    · `math.binomial` now returns `undefined` if at least one of its arguments is not an integer.
    · Patched `math.gcd`: If at least one of its argument is not an integral number, the function now returns 1.
    · Patched `math.lcm`: If ots second argument is 0, 0 is returned instead of `undefined`.
    · Patched `max` and `min`: If the functions received an empty sequence, Agena crashed. This has been fixed. The functions now in general return `null` if they receive an empty table or sequence.
    · `stats.median` crashed if it got an empty sequence. This has been fixed.
    · Fixed crippled error message of `math.root`.



    What's new in Agena 0.26.0:

    · The built-in module system inherited from Lua has been largely removed. The `require`, `module`, `seeall`, and all the other functions of the Lua `package` module are not available any longer. (`require` did not work in Agena due to faulty file path assembly, anyway.) Use readlib instead.
    · `readlib` and `with` now first try to find a library in the current working directory. If this fails, then libname is traversed. Also packages loaded are now registered in the `package.loaded` table.
    · The ' and " characters to denote strings now do have the same meaning. If you use a single quote to enter multline strings, backslashes to denote the end of a line are no longer needed.
    · Changed behaviour of the split operator if its left-hand operand is equal to the right-hand operand or if the right-hand operand is the empty string: In these cases an empty set is returned instead of a sequence of two empty strings, or an error message, respectively.
    · The functionality of the former C library function `strings.put` has been added to the `replace` operator, which is twice as fast. An alias for the old function name is available so that you can still use it (but at the expense of the speed gain).
    · The new `os.drives` function returns all logical drives available to the local computer (OS/2 and Windows only).
    · The new `os.drivestat` function returns information on a given logical drive on the local computer (Windows only): file system, label, total size, free size, and drive type (fixed, removable, etc.).
    The structure of the output of `os.fstat` has been changed, and the amount of information it determines has been increased. Additional returns are:
    · File attributes as an integer (C type mode_t), indexed with the key 'perms'.
    · File attributes as a string similar to that in UNIX, e.g. '-rw-rw-r--:-----', indexed with key 'bits'.
    · In OS/2 and Windows, the file attributes 'hidden', 'readonly', 'archived', and 'system' are also returned in the subtable with key 'owner'.
    Changes to the table returned by `os.fstat`:
    · File mode is now indexed with key 'mode' (formerly key 1).
    · File size is now indexed with key 'length' (formerly key 2).
    · The new function `os.fattrib` changes the file mode using symbols known from UNIX or DOS instead of asking for octal numbers. The Windows and OS/2 versions also support OS-specific hidden, archived, readonly, and system file attributes.
    · `os.beep` has been extended for the UNIX and DOS versions of Agena and now accept the number of seconds the loudspeaker shall issue a sound.
    · Added Lua 5.1.4 patch 5 of `debug.getfenv` to the codebase.
    · If the new environment variable _EnvLibnameReset is set true, then the `restart` statement resets libname to its original value defined in the OS environment variable AGENAPATH.
    · `readlib`, `loadClib` and `with` now add the packages loaded to the `package.readlibbed` set.



    What's new in Agena 0.25.6:

    · os.remove and os.move returned true even if the file to be moved or deleted did not exist. This has been changed.
    · stringarray userdata could not be properly garbage-collected. Since this data structure is used by strings.diamap, and strings.diamap along with its substitution userdata array is defined in the library.agn file, repeatingly restarting Agena consumes more and more memory (without freeing it later). This has been fixed.
    · In Windows and OS/2, os.fcopy now correctly sets all OS-specific file permission attributes of the original file to the new file.
    · In Windows, os.memstate stated the same value for total virtual and total physical memory sizes. This has been fixed.
    · When printing structures, ANSI C NaN values (Not a Number, known in Agena as undefined) were printed in the C fashion, e.g. `1.#QNAN`. This has been changed.
    · In the OS/2 version, Agena now prints the number of free virtual RAM in kBytes at start-up.
    · os.freemem is now supported in the OS/2 version of Agena and returns the free virtual RAM.
    · At start-up, the Agena welcome message is now printed before the library.agn and agena.ini files are loaded.



    What's new in Agena 0.25.5:

    · The split operator now supports delimitors that consists of more than one character, i.e. 'agena::language' split '::' -> seq('agena', 'language'). Also, Agena does not crash or run out of memory any more if an empty string is passed for the delimitor.
    · Changed Agena initialisation to allow switches to work as expected: First, libname is assigned. Second, the library.agn and agena.ini files are read; and third, program options are run.
    · When printing complex values that are elements in structures (tables, sets, sequences, pairs), Agena issued an error. This has been fixed.



    What's new in Agena 0.25.4:

    · If libname included more than one path, then the readlib function printed misleading error messages in case a package could not be found while traversing libname. (The library could be initialised properly, however.) This has been fixed. Also improved error handling when trying to read non-existing linked C libraries or when executing Agena library files that are syntactically incorrect.
    · Optimised function toTable a little bit.
    · stats.median crashed with tables. This has been fixed.
    · stats.minmax now returns fail if a sequence or table with less than two elements has been passed.



    What's new in Agena 0.25.3:

    · Pairs can now be indexed in read operations with the integers 1 and 2.
    · The manual has been updated. Especially, Chapters 4.6 (Arithmetic), 4.7 (Strings), 4.10 (Sets), and Chapter 4.11 (Sequences) have been revised.
    · A mimetype language description file `agena.lang` has been added to the /schemes folder.
    · All installers unfortunately overwrote the existing agena.ini file during installation. This has been changed.
    · Renamed the following linalg functions: isantisymmetric to isAntisymmetric, isdiagonal to isDiagonal, isdiagonal to isDiagonal, isidentity to isIdentity, ismatrix to isMatrix, issquare to isSquare, issymmetric to isSymmetric, and isvector to isVector. Aliases for the old function names are available so that you can still use them.



    What's new in Agena 0.25.2:

    · The for/in loop now also accepts the null value. In this case, the loop does nothing, and Agena proceeds with the statement following the loop.
    · The os.fexists function has been renamed to os.exists to show that the function checks for the existence of files and directories. The old function name (os.fexists) can still be used via an alias automatically loaded at startup of Agena via library.agn.
    · The biniolib.c C source file has been renamed to binio.c.
    · The manual did not mention that for/in loops can also work on iterator functions. This has been changed. Also Chapters 4.9 (Tables) and 4.10 (Sets) have been revised.
    · The readme.os2 file has been updated with correct instructions regarding additions to config.sys.
    · The attrib function sometimes did not correctly determine whether a table array contained holes. Thus printing table arrays containing holes sometimes produced wrong output, i.e. the keys where not printed at the console. This has been fixed.
    · If you set _EnvLongTable to true, then Agena did not print an empty line above the next prompt. This has been fixed.



    What's new in Agena 0.25.1:

    · The number of bytes to be read by binio.readbytes can only be given by the environment variable _EnvBufferSize. This has been fixed - the user can now specify the number of bytes to be read with the optional second argument.
    · os.chdir, os.rename, os.rmdir, os.remove, and os.mkdir issued wrong returns but did their job correctly: in case of a failure, the functions returned true instead of fail. In some other cases - depending on the operating systems - it returned fail even if there were no errors. This has been fixed.
    · The os.rename function has been renamed to os.move to intuitively show that the function can rename a file and also move it to a new location on the file system. The old function name (os.rename) can still be used via an alias automatically loaded at startup of Agena via library.agn.
    · The os.fstat function now also determines file and directory permissions (read, write, execute rights). In case of an error, the function returns fail instead of an empty table.
    · The os.fcopy function now also sets the file permissions of the original file to the new file.
    · A WarpIn installer is now provided for the OS/2 distribution.



    What's new in Agena 0.25.0:

    · Added the `binio.readbytes` and `binio.writebytes` functions which read and write a sequence of bytes, respectively. Both functions are much faster than `binio.readchar` and `binio.writechar` when working on a larger number of bytes.
    · Added the `os.fcopy` function which copies files. It has been implemented in C to ensure maximum performance. The user has some control by changing the internal buffer size with the new environment variable _EnvBufferSize.
    · For simplicity, the enviroment variable `_EnvAgenaPath` has been renamed `libname`.
    · The enviroment variable _EnvPrintNewLineAfterInput has been renamed _EnvPrintEmpyLine, because the former name was somehow confusing.
    · Added the environment variable _EnvBufferSize which contains the default number of bytes for file operations (used in os.fcopy, for example).
    · `os.md` has been renamed to `os.mkdir`, `os.rd` to `os.rmdir`, `os.rm` to `os.remove`, `os.cd` to `os.chdir`, `os.ls` to `os.list`, `os.pwd` to `os.curdir` and `os.lscore` to `os.listcore`. For backward compatibility, aliases have been added to the library.agn file so that the old names can still be used.
    · The `isnull` operator finally has been deleted. Use the `unassigned` operator instead.
    · The `bottom` and `top` keywords have been deleted. They have been substituted by `left` and `right`, respectively. Thus, now use `pop left from ...` instead of `pop bottom from ...`, and `pop right from ...` instead of `pop top from ...`.
    · The `getbottom` and `gettop` operators have been deleted. They have been substituted by the `left` and `right` operators, respectively.
    · Some few optimizations to the C source code.
    · Added updated nedit.rc scheme for the nedit text editor to the Solaris installer.
    · The agena.ini is no longer shipped with the installers to prevent overwriting your own personal agena.ini file when updating Agena to a new release. Instead, the agena.ini.sample file is distributed which you may rename to agena.ini to play with the initialisation feature.
    · Tuned `tables.bisEqual`, `tables.bminus`, `tables.bintersect` and `tables.duplicates` by not deeply copying its arguments if they do not need to be sorted internally.
    · Tuned tables.duplicates by 8 %.
    · File and directory names returned by os.ls are now sorted. Also, the * magic character is now interpreted correctly (one or more repetitions). os.ls now recognizes the ? magic character in file names (exactly one character of any type).



    What's new in Agena 0.24.3:

    · io.write and io.writeline sometimes crashed Agena if called without arguments within procedures. This has been fixed.
    · If a structure (table, set, sequence, or pair) contained another structure with a circular reference, then Agena issued an error when printing the contents of the structure with print because of stack overflows. This has been fixed.
    · If _EnvLongTable is true then when printing _G, the last but one and the last entry were printed on the very same line. This has been fixed.



    What's new in Agena 0.24.2:

    · Settled problems with stack overflows when printing self-referencing structures on the console.
    · The iolib package now provides the __tostring metamethod to properly print file handles returned by io.open (file(xyz) instead of userdata(xyz)). The __gc metamethod has also been added to the iolib package.
    · tables.bisEqual, tables.bminus, and tables.bintersect now do not modify their arguments in case they need to be sorted internally.
    · Included Lua 5.1.4 bug fix #3: Wrong code generation for some particular boolean expressions.
    · Example: print(((1 or false) and true) or false) # --> 1, but should be 'true'. This has been fixed.
    · Included Lua 5.1.4 bug fix #4: luaV_settable may invalidate a reference to a table and try to reuse it. This has been fixed.



    What's new in Agena 0.24.1:

    · for/in iteration over strings is now up to 10 % faster.
    · for/in now returns a proper error message if the object to be iterated is not a structure or a procedure.
    · Tweaked for/in iteration over sequences a little bit (max. 1.5 % faster).
    · os.ls now supports jokers within paths. Thus you may select subsets of files in a directory, e.g. "os.ls('*.c')" to select all files with suffix '.c'.
    · All dump/undump functions inherited from Lua were deleted. Thus, strings.dump is no longer available.
    · binio.open no longer evaluates the _EnvVerbose setting and thus ignores it.
    · Removed support for an experimental second ADS sequence type from the ads package.
    · Removed the following unused C API function: agn_isutype.
    · Optimized internal type check for remember table value insertion.
    · Optimized internal type check in set comparisons (=, subset, xsubset).
    · If the pop statement encountered an error, a wrong line number has been displayed. This has been fixed.
    · The pop statement could sometimes not be used within procedures. This has been fixed.



    What's new in Agena 0.24.0:

    · Introduced the new unassigned operator that will replace isnull in the future. It is advised that you exclusively use unassigned in your code. This is a language consistency measure. The isnull operator will be deprecated.
    Added facilities for stack programming. They exclusively operate on sequences:
    · The pop bottom from statement deletes the entry with the smallest key (actually key 1), thus popping the first entry from the stack and shifting all other elements down.
    · The pop top from statement deletes the entry with the greatest key, thus popping the top entry from the stack.
    · The getbottom operator returns the entry with the smallest key in a sequence, thus returning the entry on the bottom of the stack.
    · The gettop operator returns the entry with the greatest key in a sequence, thus returning the entry on the top of the stack. (With the already existing insert/into statement you can put a value on top of a stack.)
    Agena now provides a means to read user-specific initialisation, standard library and package files from different locations. The environment variable _EnvAgenaPath can now contain one or more paths separated by semicolons, e.g. 'd:/agena/lib;c:programmeagenalib'. Agena searches all paths in _EnvAgenaPath at initialisation or when invoking a new package:
    · The way Agena reads the library.agn and agena.ini files at initialisation and in case of a restart has changed: Agena searches all paths in _EnvAgenaPath from the left to the right for the above mentioned files. If it finds one and can execute it successfully, then all paths left in _EnvAgenaPath are skipped for the processed file.
    · The readlib and with functions search all paths in _EnvAgenaPath from the left to the right for the package files. If a package could be loaded successfully, then all paths left in _EnvAgenaPath are skipped. readlib continues with finding and loading other packages, if their names are given to the function as optional arguments.
    · readlib no longer accepts full filenames as input, e.g. `/usr/agena/lib/calc.agn'. Use run instead.
    · If a package exists of both a C DLL/SO file and an Agena text file, then readlib and with now expect them to be stored in the very same folder; otherwise, a package may only be partially initialised. This behaviour has been introduced to avoid confusion.
    · The Windows version now has a further fallback if it cannot find the system environment variable AGENAPATH during initialisation: It searches for the Agena main library folder by querying the Windows `ProgramFiles` system environment variable, and tries to set _EnvAgenaPath to it if the user has read access permissions. In UNIX, _EnvAgenaPath now is set to /usr/agena/lib only if the user has read permissions for this folder.
    · If _EnvAgenaPath could not be determined at startup, Agena now enters into interactive mode instead of just quitting. A proper help text is displayed to help the user with reconfiguration.
    · The facility to read a configuration file at startup by querying the "LUA_INIT" system environment variable has been removed, as in most cases you would have problems if Lua is installed on your system and the variable is set to be used by Lua.
    · The new C API function agn_tostring converts a stack value to a value of C type const char*.
    · Fixed a bug that reset _EnvAgenaPath when running restart.
    · binio.open and ads.openbase now issue a proper error message if the user does not have the proper rights for files that already exist.
    · io.fexists now only returns true if the file exists and the user has at least read permissions for this file.
    · Updated scheme files for Proton and Nedit.




    Windows tabGames tabDrivers tabMac tabLinux tabScripts tabMobile tabHandheld tabGadgets tabNews tab

    SUBMIT PROGRAM   |   ADVERTISE   |   GET HELP   |   SEND US FEEDBACK   |   RSS FEEDS   |   ENTER NEWS SITE   |   ENGLISH BOARD   |   ROMANIAN FORUM