|
A-Shell Release Notes 7.0.1786.2 (23 May 2026) |
||||||
|---|---|---|---|---|---|---|---|
1786.2.1 EIR |
Compiler refinement, edit 1083: IFE$(a,b{,flags}) and IFE(a,b,{flags}) will now report an error if the flags argument is specified and is of type string. Although ASB is normally pretty lenient about string/numeric types, providing automatic conversions as needed, in this case the use of a string for the flags argument is much more likely to be a coding error, probably confusion between IFE() and IFELSE(). So flagging it as an error and forcing the code to be made unambiguous seems better than risking unexpected runtime behavior. |
||||||
1786.2.2 EIR |
Compiler refinement, edit 1083: IFELSE$(cond,a,b) and IFELSE(cond,a,b) now automatically convert a string cond(ition) expression into a numeric expression. In other words, IFE(s$,a,b) is compiled as IFE(val(s$),a,b) if s$ is a string expression. Previously, the runtime behavior was ambiguous, as it would have depended on whatever numeric value was previously pushed on the expression stack. One could argue that IFELSE$(a,b,c) should be flagged as a compiler error if a is simply a string expression. But it seems most likely that programmer's intent was to treat it as IFELSE$(val(a)#0,b,c), which it will now do. |
||||||
|
A-Shell Release Notes 7.0.1786.1 (17 May 2026) |
||||||
1786.1.1 Fix |
Implicit DYNSTRUCT binding: SBX subroutines were trying to share the same structure index as the main RUN file, causing mismatches along with errors 70 through 74. |
||||||
|
A-Shell Release Notes 7.0.1786.0 (07 May 2026) |
||||||
1786.0.1 New |
Add support for testing the exit status of RUN, LIT, and in some cases, SBX modules, and pass that status through to the exit status of the A-Shell session on exit.
|
||||||
1786.0.2 New |
Add new MIAMEX function MX_EXITSTATUS (209) which provides a way to get (opcode 0) or set (opcode 1) the exit status of RUN, LIT, and in some cases, SBX modules. xcall MIAMEX, MX_EXITSTATUS, opcode, status Parameters opcode (Num) [in] 0 = get, 1 = set status (Num) [in/out] Receives or supplies the exit status. In the case of Get, it will be the exit status of the prior execution module—RUN, LIT, or possibly SBX, as noted above. In the case of Set, it sets the pending exit status, i.e. the exit status of the current module that will become active when it exits. |
||||||
1786.0.3 EIR |
Updates to IF.LIT (x.x.xxx) and ECHO.LIT (x.x.xxx) to support a new variable ($?) that equates to the exit status of the last module execution. For example: RUN PROG1 ECHO PROG1 Exit Status: $? IF $? <> 0 ECHO Error, cannot continue GOTO ENDIT ELSE RUN PROG2 ENDIF ;ENDIT
Note that this variable is not recognized by DO.LIT. |
||||||
1786.0.4 EIR |
Compiler refinement, edit 1082: Support ellipsis in PYFUNC() argument lists. This is mainly useful for creating wrapper functions, for example: result = Fn'PYFUNC'Wrapper(status, pymodule$, pyfunc$, arg1, arg2) ...
function Fn'PYFUNC'Wrapper(status as i2, pymodule$ as s0, pyfunc$ as s0, ...) as f6 on error goto trap .fn = PYFUNC(pymodule$, pyfunc$, ...) status = 1 ! success xputarg @status exitfunction trap: status = -err(0) .fn = -1 xputarg @status endfunction |
||||||
1786.0.5 Fix |
Fixes ellipsis in function call argument lists; the resulting .ARGCNT value was one higher than it should have been. |