Please enable JavaScript to view this site.

A-Shell 7.0 Release Notes

 

1765.2.1

Add time of last access to the JOBTBL.SYS to the job table record to provide a better way (especially under Windows) to detect jobs that have exited without clearing their job table entries. LIT commands that access the job table should be updated, particularly SYSTAT and SEND. Also, although probably not critical, you should update JOBTBL.SDF and JOBTBL.MAP from the BitBucket repository and recompile any programs using using MX_READJCB / MX_WRITEJCB.

1764.1.3

CGI refinement: the remote IP address is now included in the ashlog, when either the INOUT or CGI TRACE flags set, making it easier to cross-reference A-Shell launches against the web server access and error logs.

1764.0.1

(UNIX) New command line switch -devate causes A-Shell to use the ATE machine:## identifier (if available) for the unique session device ID, instead of the normal dev:pid (e.g. "pty/1:3424") format.

1764.0.3

Log messages reported prior to processing the miame.ini now get recorded to the normal %MIAME%/ashlog.log file directory, provided the -i <inifile> switch has been seen. Previously any such messages would be recorded in an alternate ashlog.log file in the TEMP directory which was too easily overlooked.

1764.0.4

JOBTBL.SYS and QFLOCK.SYS no longer deleted on exit from CGI or background (under Unix) processes. This is a minor performance optimization aimed at systems which may experience a large number of short and possibly unique sessions. Normally the last job to exit deletes the SYS files and the next job to launch recreates them.

1764.0.5

(UNIX) Refinement to the stack trace output to ashlog to use multiple lines, thereby making the log easier to read.

1760.0.1

(ATE) Support input of a MFA verification code during authentication. Requires ASHNET2.DLL 2.6.123 and ATECFX.SBX 4.4(185); check the new MFA option along with the Login Dialog option on the Login panel of the ATE configuration dialog. The credentials dialog will pop up allowing you to enter the verification code (along with the password if necessary) during the connection authentication.

1759.1

Xcall aliasing refinement:  you can now redirect an internal Xcall routine to an external (SBX) equivalent of the same name by specifying the same name for both parts of the ALIAS directive, e.g.:

ALIAS=ABC123,ABC123    ; redirect XCALL ABC123 (internal) to ABC123.SBX

1759.0.4

ASHNET.DLL / libashnet.so 1.14.195 update: Add optional parameter add'param to OAUTH2.

1757.5.1

Compiler edit 1045: ++IFDEF <structname> was not working properly during the /px pre-scan, resulting in spurious "function not defined" errors if the target function was dependent on such a conditional.

1757.5.2

Compiler edit 1046: add some performance statistics to the end of the LSX file.

1757.3.6

ASHNET.DLL / libashnet.so  1.14.194 update

FTP2: fix issue with attempt to create remote directory would return a failure code if the directory already existed.
SFTP: fixed failure when client and server selected ssh-dss algorithm
HTTP: fix TLS 1.3 session resumption issue

1757.2.2

Tracing refinements:

Add traces "Suspend", "Resume", "Open Lid" and "Close Lid" for Windows to track power-related events. (Requires TRACE=INOUT).
Add "Demo mode warning" trace, logged when the Demo Mode warning is displayed.

1757.0.2

ASHNET2.DLL 2.5.212 update to component / dependent libraries:

ZLIB 1.3.1 (up from 1.2.11)
LIBSSH2 1.11.0 (up from 1.9.0);
OpenSSL retired; replaced with Windows native backend WinCNG

1757.0.3

ASHNET.DLL 1.14.192 update:

FTP2 fix for issue with servers that issue an intermediate 150 response indicating a delay for anti-virus scanning.
FTP2 XFTPF_RENAME no longer invalidates the cached directory contents, eliminating a directory reload for a slight performance improvement.
FTP2 safeguard added to block an empty string from matching all files in a wildcard delete operation. It now returns an error.
SFTP mitigation of SSH Terrapin Attack by adjusting the availability of of the supported SSH algorithms.

1757.0.5

New system parameter option SBR=GET_CRNL2CR automatically sets the &h02 flag in Xcall GET (see above).

1754.0.1

Add new system parameter NOTRACE to fine-tune subroutine tracing.

1753.1.3

Add support for new $ variables in DO files.

1753.0.3

INSTR() refinement: add a new MIAME.INI directive to completely disable the possibility of a single-character pattern in INSTR(pos,subj,ptn,flags) being misinterpreted by the regular expression processor as a pre-compiled pattern:

OPTIONS = NOINSTRX_PCP     ; No INSTR precompiled patterns

Note that the issue was previously dealt with in 1752.4 which limited the range of possible precompiled pattern numbers to just five (ASCII 1 thru 5), and also introduced the PCREX_NOT_PRECOMPILED flag. This new option is mainly a convenience for developers who have a large number of INSTR() calls with externally supplied patterns and never user precompiled patterns (at least not with INSTR()), and want to completely eliminate all possibility of confusion, without having to review or recompile all of their code.

Also note that this does not affect the ability to use precompiled patterns in explicit XCALL REGEX or XCALL REGEX2 calls. It also does not interfere with the transclude feature which relies heavily on precompiled patterns.

1753.0.1

Job status tracking refinement:  add current SBX name to the job control block, taking the last ten bytes from the end of the message field, allowing utilities such as JSTAT.LIT to be able to see the currently executing SBX in another job.

1752.1.3

ASHNET.DLL (Windows) and libashnet.so (Linux) 1.14.191 updated to support OAUTH2 authentication in PDFX Email Method 4, identified by the "[oauth2]" prefix on the password (see above). The update also fixes an issue with Email attachments when the file spec contained both forward and backward slashes.

1751.5.1

Debian 12 ("Bookworm") version beta release. The Ubuntu 22 and Debian 12 executables are cross-compatible, but the Debian 12 uses a newer version of GCC (12 vs 11) and uses separate package repositories.

1751.0.5

Add new Command Line Switch -wp to override window position.

1750.4

INPUT CSV into gridmap refinement: non-trailing empty cells are now included in the gridmap. Previously they were not, which might have created confusion, particularly in the gridmap(int;varstr;varstr) case where a column might have been listed on the header row the CSV but empty in the first data row. Note however, that even with this refinement, empty cells are included only if there are non-empty cells to the right of them (and trailing commas on the CSV lines do not count).

1744.0.5

(Windows/ATE) Debugging refinement: add the EXEC trace option to the System Messages Window properties dialog. Previously this was only settable via the SET command or the TRACE directive in the MIAME.INI. When set, each command-level command (RUN, CMD/DO, LIT) is traced.

1740.0.1

Upgrade remaining functions involving file times to use 64 bit version (avoiding the Y2K38 bug, provided the file system supports it). Affected functions include MX_FILESTATS, MX_FILETIMES, MX_FTFORMAT,... Note that applications need to provide F,6, I,6 or B,6 variables to handle file times beyond 19-Jan-2038.

1740.1.1

64 bit executables released for Ubuntu 22 and CentOS Stream 8 platforms.

1739.1.3

WEBCACHE / http image: the system status line now displays the URL of any files being downloaded either automatically due to WEBCACHE or due to an explicit http:// or https:// filespec.

1734.0.1

ASQL: new flag FETCH_MAXLENS (&h0200) causes SQLOP_FETCH_GRID to return an extra row (indexed as row 0) containing the actual maximum string representation lengths within each column of the query results. This is intended to be helpful when configuring display parameters for the grid (e.g. XTREE, CSV2XL) and/or for building a custom DYNSTRUCT mapping.

Note that the feature does not require a corresponding update to the libashmysql or libashodbc connector, but SQLOP_FETCH_GRID requires version 1.6+.

1730.0.1

Add ASQL opcode SQLOP_FETCH_GRID to fetch result set into gridmap.

1724.1.1

Add System Message Window Refinement to abort application.

1721.4.3

ASHNET enhancements (1.4.186):

The certpw parameter to HTTP.SBR now supports all three of the encryption modes supported by MX_PWCRYPT. Previously it only recognized modes 1 and 2. Note that for mode 3, it assumes the default seed and key.
CRYPTO.SBR encryption/decryption using RSA public/private keys now supports additional file formats beyond PEM: XML, JWK, DER (PKCS1 or PKCS8, raw or base64 encoded). If a password is required, specify it in the aad (additional authentication data) parameter and set the prior unused params to "" or 0 according to their types.

1720.0.1

VUE enhancement: new INI.VUE and command mode directive:

USETABS <bool>

When specified, USETABS determines whether the TAB key is stored as a TAB character or is expanded to spaces. This overrides the behavior previously determined by the TAB # directive, which otherwise sets the tab width.

If USETABS is not specified, the choice continues to be based on the TAB # directive: TAB 8 effectively enables the USETABS option; any other TAB value disables it.

1719.0.1

VUE enhancement: embedded TAB characters are now expanded based on the TAB width setting as specified in ini.vue or in the current instance of VUE. Previously all embedded TABs were expanded to the next multiple of 8 columns, regardless of the TAB width setting. Note that the TAB key on the keyboard, as opposed to TAB characters previously embedded into a file, continues to be treated as a chr(9) if the TAB width is set to 8, and as spaces for any other TAB width setting.

1717.7.2

ASHNET function requests a Google API access token based on a private key.

1717.5.1

ASHNET library fixes/enhancements (edits 179-181), mostly motivated by Google Drive requirements.

1717.5.2

PRTXLS 2.1(218): made improvements to the column separation logic. Columns with only one space of separation are now more reliably separated. Also close a crash loophole.

1717.4.1

Refinements to DEFALIAS, compiler edit 994:

•   ++IFLBL / ++IFNLBL now recognize DEFALIAS'd function and procedure labels, acting based on the existence of the target function / procedure (and not the existence of the DEFALIAS definition).

•   ++IFDEF / ++IFNDEF now treat DEFALIAS definitions as they would symbols defined via DEFINE statements.

•   UNDEF now works on DEFALIAS definitions.

1716.0.1

Due to updates in the underlying components, the two ASQL connectors have been updated to version 1.5.

1711.1.1

(UNIX) The following launch errors now set the A-Shell process return code:

11 - JOBTBL full

12 - No license

13 - No computer name (Windows)

14 - QFLOCK.SYS corrupt

15 - QFLOCK.SYS version incompatible

16 - Jobname already exists

17 - Error locking or accessing JOBTBL.SYS

18 - Too many sessions sharing same client IP (Windows)

20 - Exceeded maximum nodes allocated to group (group licensing)

1711.1.2

(UNIX) The -q (quiet) switch will now silence admin error messages associated with the above errors.

1711.0.16

ISAM 1.X enhancement: IDX rock now contains a count of the keys allocated (additions minus deletions) along with the records allocated. This may be useful as a quick way to compare the number of keys with the number of records. Typically these should be the same, except in cases where the application deliberately adds more or less than one key to the IDX per record.

Note that the keys allocated value will only be valid for files that have been rebuilt under A-Shell 6.5.1711+. See the following related items.

1683.0.1

PDFX now supports version 9 of the driver, which is now called "PDF-XChange Standard"). The interface and directives should be equivalent, but the driver contains innumerable refinements from the earlier version 5 aka PDF-XChange Printer 2012.

1709.1.1

1. ASHNET.DLL and libashnet.so 1.14.177 enhancements:

FTP2TIMEOUT now affects SFTP as well as FTP2.
XFTPF_RMVEXT (&h0200) now works for FTP2.SBR (SFTP mode only) as it does in FTPDLX.

1703.0.1

New MIAME.INI directive (SBR=INFLD_NOPRINTS) disables the normal response to ^P to pop up the print/capture screen option. Primary motivation here is for those switching back and forth between A-Shell and the Linux shell prompt, where ^P is used to retrieve previous command lines.

Note the similar SBR=INFLD_PRINTS which causes ^P to invoke the File > Print Screen GUI utility in place of default text-based print/capture function.

1701.0.1

PDFX enhancement: you can now use the EMAIL (method 4) capabilities of PDFX for sending emails without any PDF attachment. This is an extension of a capability introduced in 6.4.1548.8 which allowed sending of a set of attachments without sending the primary PDF. In both cases, the key is for the print file to not contain anything that will generate output (i.e. plain text or //GDI commands that generate output). For the body of the email message, you have to use the //PDFX,Email.Content directives. As with all other cases involving Email.Content directives, the last one must be followed by some other Email.xxx directive.

1699.0.2

(Windows) Add MIAME.INI option to control whether to use the new Open/Save File dialogs as implemented in 6.5.1698.0:

SBR=GETOFD_NOCOM

When specified, A-Shell uses the old implementation of the Open/Save File dialogs (in MX_GETOFD along with internal operations like File > Load). The default (i.e. when not specified) is to use the new implementation.

1691.2.3

Loosen the license counting rules slightly to allow for a second session from the same workstation when MX_SETUSRNAM had been used to change the user name of the first session.

1688.0.3

Floating Point Precision.

1688.0.4

LOKSER WAIT'FILE and WAIT'RECORD enhancement: when waiting for more than five seconds for access to a file or record, a status message will now display on the bottom unshifted status line of the main terminal window indicating the name of the file, access type, and elapsed wait time.

1688.0.5

JOBTBL.SYS enhancement: the program version edit number of the current program is now stored in the PRGEDIT field of the updated jobtbl.sdf structure definition, making it available to SYSTAT; see SYSTAT Reports Program Version.

1681.3.2

Mousewheel refinement / INFLD type code addition: a new type code, ||W is now recognized as an another way to disable the mousewheel within the context of a single combo box field.

1681.3.1

Mousewheel refinement: the NOWHEEL system OPTION now disables the mouse wheel within a combo box field.

1679.5.2

Increase the maximum number of modules that can be loaded into the user partition at one time, from 96 to 128.

1671.0.3

INPUT CSV refinement: the statement will now automatically recognize the pipe character "|" as a delimiter, along with comma, tab, colon, and semi-colon.

1671.0.6

Optimized TRACE Statements.

1667.2.2

Logging refinement, Linux: MSGBOX.SBR calls using MBICON_QUESTION are no longer logged to the ashlog. Only MBICON_STOP or MBICON_EXCLAMATION trigger the logging.

1666.0.2

A-Shell/Windows enhancement: new command line switch -dpm activates "Dpi Per Monitor awareness" mode. This is a first pass attempt at conforming to new Windows 10 High Res scaling requirements.

1665.1.2

Compiler edit 914: Add comment marker (!) to "{shaken out by /PX}" notations in the LSX file for ease of recompiling from the LSX.

1662.0.1

Increase internal maximum filename.ext length for A-Shell-compatible files to 72 for the filename and 8 for the extension. Previously the limit was 10.3 for ambiguous contexts (where it wasn't otherwise obvious if the filespec was meant to be A-Shell-style or native-style), and 32.8 for MX_FSPEC conversion operations where the context was explicit.

1661.0.2

Several fixes, refinements, enhancements are included in the LIBXL.BSI Update to version 131.

1661.0.1

AXL (Windows) update: version 3.8.5.2 of the libxl.dll includes several minor bug fixes and refinements. Warning 1: This update of AXL (both libxl.dll and libxl.bsi) are not compatible with earlier versions of A-Shell/Windows prior to 6.5.1661. The updated A-Shell however is compatible with older version of the library. Warning 2: The parameter lists of some of the library functions have changed. To be sure of continued compatibility, you should recompile any AXL-dependent programs using the updated LIBXL.BSI interface module.

1660.6.3

AXL library update (libxl.bsi) [128] adds commands to set the margins and the print repeat feature.

1660.0.3

Add Command Line Switch ERZ.

1654.0.1

MIAME.INI command COMPRGEXT defines additional file extensions that will be recognized as compiled (runable) programs.

1654.0.2

New MIAME.INI commands ALTRUNEXT and ALTSBXEXT define alternate RUN and SBX extensions.

1650.0.3

COMPIL.EXE (Windows standalone, edit 6.5.887) enhancement: -z and -zt command line switches are now supported to stifle the creation/destruction of the main window during compilation. Note that these have no effect in the APN environment (which already hides the compiler window), but might provide some aesthetic relief when calling the compiler from some other environments.

1650.0.5

ISAMA platform alignment refinements: • Enable variable length records in the Windows version (matching UNIX); • Increase the maximum number of key parts from 8 to 20, and the maximum key length from 80 to 120, in the UNIX version (matching Windows). Note: the only outstanding difference between the two versions is that the Windows version doesn't support transaction logging. Also note: these changes update the ISAMA version, as displayed by the ISMUTL header, to 6.11r.

1644.0.1

++PRAGMA TRACE_BEGIN enhancement: specify a list of tokens to be traced.

1644.0.2

++PRAGMA TRACE_BEGIN enhancement: TRACE_BEGIN / END blocks can now be nested to 38 levels. Any unterminated TRACE_BEGIN block will be automatically terminated at the end of each source file module. Consequently, to trace an entire include module, you could insert just the ++PRAGMA TRACE_BEGIN at the top.

1643.0.1

New MIAME.INI OPTIONS value:  OPTIONS=XTAUTOFILTER automatically sets the XTF2_AUTOFILTER flag for all XTREE calls. May also be queried and set via the MX_GETOPTIONS/MX_SETOPTIONS call using the new options symbol/flag GOP2_XTAUTOFILTER (&h40000000). Note that in the ATE environment, the flag is passed from the server to the client. It could also be set independently on the clients.

1642.0.1

File hook enhancement: a File-Based File Hook Handler option is now available.

1639.3.6

Add AshExplorer.

1639.2.1

Tracing refinement: remove limit on individual output message length when outputting to the terminal or to a specific file (see SET TRACE OUTPUT below). Previously the limit was 800 bytes. Note that the compiler still imposes a limit of 16K per statement, and the debug message window and ashlog.log outputs impose much smaller limits of their own.

1639.0.8

Language runtime refinement: Substring Assignment.

1639.0.7

Compiler enhancement, edit 862: support the /NOTRC option (or -notrc when using the standalone compiler executable).

1639.0.6

COMPIL.LIT/OCMPIL.LIT/COMPLP.LIT 1.1(135) enhancement: support /NOTRC switch to ignore all trace related statements during compilation (++pragma TRACE_xxx, TRACE.xxx, DEBUG.xxx).  

1639.0.5

++PRAGMAs Support Enhanced Tracing.

1639.0.3

Tracing enhancement: new macro $L may be inserted in the trace message to display the current location counter (as a six digit hex number, matching the format used in the LSX file).

1639.0.2

Expanded xxxxxx.PRINT and xxxxxx.PAUSE statements.

1639.0.1

New A-Shell/Windows command line switch: -ntts . This has the same effect as adding OPTIONS=NTTS to the miame.ini file, but is much more convenient in situations where you need that feature for just a couple of sessions (such as for services).

1637.4.2

INPUT CSV #CH, ARY() refinement: an empty element is now added to the end of the array if the input data ends with a comma. So for example, the data line { one,two, } will return ARY() with an extent of 3, with the last field empty. Note that it is still the case that an empty line will return an array with a zero extent.

1637.0.3

A new GDI printing direction option called Cursor-Relative Coordinates allows the x,y coordinates in all //GDI directives to be expressed relative to the current cursor position.

1636.0.4

The starting key in a FOREACH statement may now be any kind of expression.

1635.1

Parameter Passing Refinement.

1635.0

Add new GDI Printing Directive SETTRANSFORM.

1631.0.4

VUE refinement, edit 371: maximum supported line length now takes into account the longest line in the entire file being loaded. To this we add 4K, but in no case will the line length limit be less than 8K. Previously it only looked at the first 100 lines, and then added 1K, with an overall minimum limit of 4K.

1630.0.1

SQLOP_FETCH_ROW Enhancement

1625.0.1

ATE-related server-side enhancement: .msi packages are now supported along with .exe files in the A-Shell startup search for updates from the %MIAME%/atesetup directory.

1624.0.6

(Windows) Remove static dependencies on ODBC32.DLL, ODBCCP32.DLL, NETAPI32.DLL, RPCRT4.DLL, IPHLPAPI.DLL, DNSAPI.DLL, OLEAUT32.DLL, CRYPT32.DLL, COMCTL32.DLL, WININET.DLL, WS2_32.DLL. These standard Windows libraries and now loaded dynamically if and when needed. There is no change in outward behavior, except possibly to shave a few nanoseconds from the initial launch, and to delay any errors caused by missing DLLs to the point where they are really needed.

1623.0.1

Collections Passing: Collections can now be passed by reference in an XCALL to an SBX

1617.0.3

ATE enhancement: Add AM62 emulation.

1617.0.1

APEX toolbar design refresh: rearrange the icons to make the grouping somewhat more logical and replace all of the icon images for a more consistent style.

1612.0

APEX refinement: custom buttons can now use PNG format.

1610.0.1

Windows UI Enhancement: add Scrollback menu item to toggle visibility of the vertical scroll bar. Same as Ctrl+Shift+Up. New internal menu identifier IDM_SCROLLBACK = 160 added to ASHELL.DEF.

1600.0.1

(Linux) ASQL ODBC connector 1.4.111 64-bit preliminary release.

1600.0.2

(Linux) Begin internal changes to support 64 bit executable. The ashell executable is usable, but lacks several features, including support for collections. It does however support MSODBC/Linux for connecting to SQL Server, which is only available in 64 bit version.