BCX v8.2.5 is available for download

Started by MrBcx, February 25, 2025, 12:23:55 PM

Previous topic - Next topic


Quin


MrBcx

#1
BCX 8.2.5 has been uploaded.

This update includes bug fixes and new features.

https://bcxbasiccoders.com/archives/YahooGroups/Bcx_Files_New/Bcx825.zip

SHA-256: 439e0d570720fb1d59ac9133d2839fc30eb2292c233fb2657369095cd10cbd64


~ MrBcx ~

REVISIONS:

*********************************************************************************************
2025/02/25       Changes in 8.2.5 from 8.2.4
*********************************************************************************************             
Kevin Diggins  : BCX 8.2.5 cannot be built using version 8.2.4.  You must use the included
                 8.2.5 executable -or- use the Bc.cpp included in the \BootStrap\ folder.
                 
Kevin Diggins  : New! += string concat operator added to BCX. Syntax: StringVar += Arglist
                 BCX will automatically transform a string statement, such as:
               
                 AutoProcess[ProcessIdx].Status += "Activated" 
         
                 to this finger bruising equivalent:
               
                 AutoProcess[ProcessIdx].Status = AutoProcess[ProcessIdx].Status + "activated" 
             
                 This new feature was tested using simple, arrayed, and TYPE-member strings
                 but it's possible that edge cases might be encountered that confuse BCX. 
                 
                 This feature is now being used throughout the BCX translator (8.2.5)
                 and has replaced all $FILL blocks and CONCAT keywords used in earlier
                 versions, in addition to passing the hundreds of standard regression tests.
                 Those facts give me high confidence with my implementation of the operator. 
                 
                 By way of example, here are a few lines used internally in BCX (8.2.5):
                 
                     FirstVar$ += "Line" + STR$(LineNum[FileNdx]) + " in Module: "
                     FirstVar$ += TRIM$(FileNames$[FileNdx]) + " : " + GlobalName$
                     FirstVar$ += GlobalDim$ + " as " + GetVarTypeName$(GlobalType)
                     FirstVar$ += SPC$ + TypeDefs[GlobalDef].VarName$

                *************************************************************************
                                           KNOWN LIMITATIONS
                *************************************************************************
               
                (1) Statements that use the += concat operator are -currently- incompatible
                 with the colon [:] statement separator.  For example,
                 
                 A$ += "Uh Oh!" : PRINT A$   ' BCX politely ABORTS with an Error Message
                 
                 A$ += "Oh Boy, it worked!"  ' BCX WILL translate this correctly
                 PRINT A$
               
                (2) BCX cannot infer the type of any compiler's internal MACRO's. One example
                of this is MINGW64's __VERSION__ macro which is a STRING.  Therefore, it is
                necessary to append the string sigil "$", i.e. __VERSION__$, in order to
                inform BCX that __VERSION__ needs to be treated as a string.
               
                (3) BCX will politely ABORT when it encounters "=+" instead of "+="
                   
Kevin Diggins  : Improved the performance of the SOUND() statement.  Previously, the Windows
                 midi engine was started and stopped each time a SOUND() statement executed,
                 resulting in numerous sonic issues (latency, stutters, unplayed notes, etc).
                 I've changed all that.  Now the midi engine is started once and remains
                 active for the duration of our application. When our application properly
                 terminates, it will automatically shut down our use of the midi engine.
     
Kevin Diggins  : Improved (fixed?) the translation of WITH / END WITH statements
                 
Kevin Diggins  : Improved the parsing/encoding of DATA statements that are comprised of
                 unquoted negative numbers.

Kevin Diggins  : Fixed BCX's processing of overloaded SUBS/FUNCTIONS. 
                 
Kevin Diggins  : Ongoing formatting improvements to the source, output and runtime code