BCX v8.2.7 is available for download

Started by MrBcx, May 22, 2025, 10:34:28 PM

Previous topic - Next topic

Quin


jbk


MrBcx

BCX 8.2.7 has been uploaded.

This update includes bug fixes and new features.

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

SHA-256
c37cb0f1bc95eeef311b6a1a1ff314c5427c1c64dd7c5e5fccffe91d07ee5a60

REVISIONS


*********************************************************************************************
2025/05/22       Changes in 8.2.7 from 8.2.6
*********************************************************************************************
Kevin Diggins  : New! It is now possible to use REDIM on LOCAL and GLOBAL arrays that
                 were not previously dimensioned. 
                 
                 Here is a valid example of the expanded REDIM capability:

                 TYPE foo
                     q1 AS INT
                 END TYPE

                 REDIM a[10, 10] AS foo             ' This array has GLOBAL scope
                 a[5, 5].q1 = 1234
                 PRINT a[5, 5].q1
                 
                 CALL TestMe

                 REDIM PRESERVE b[100] AS STRING    ' This array has GLOBAL scope
                 b[5] = "Hello All You BCX Coders!" ' (PRESERVE is ignored in this context)
                 PRINT b[5]
                 PAUSE

                 SUB TestMe
                     REDIM c[100] AS foo            ' This array has LOCAL scope
                     c[5].q1 = 5678
                     PRINT c[5].q1
                 END SUB

Kevin Diggins  : New! Previous versions of BCX did not correctly enable dynamic arrays of UDT
                 to be passed by reference and REDIM'd inside a SUB or FUNCTION.  Now it can.
                 Tested working with Lcc-Win32, Pelles C, Mingw, Clang, and MSVC++               
                 
                 $BCXVERSION "8.2.7"
                 TYPE Person
                     FirstName AS STRING
                     LastName AS STRING
                 END TYPE

                 DIM People[0] AS Person
                 Create_People(ADDRESSOF People)

                 DIM Cells : Cells = UBOUND_D(People)
                 PRINT "Array Cells = 0 to", Cells
                 PRINT

                 FOR INT i = 0 TO Cells
                     PRINT People[i].FirstName$, SPC$, People[i].LastName$
                 NEXT
                 PAUSE

                 SUB Create_People(BYREF Group AS Person PTR)
                     REDIM Group[5] AS Person
                     Group[0].FirstName$ = "Adam"    :  Group[0].LastName$ = "Smith"
                     Group[1].FirstName$ = "Jerry"   :  Group[1].LastName$ = "Hawkins"
                     Group[2].FirstName$ = "Shirley" :  Group[2].LastName$ = "Jones"
                     Group[3].FirstName$ = "Tanya"   :  Group[3].LastName$ = "Glasskin"
                     Group[4].FirstName$ = "Rufus"   :  Group[4].LastName$ = "Doofus"
                END SUB

Kevin Diggins  : Improved detection & handling of corner case caused by sigil-less UDT
                 string member detection & handling that could wrongly emit "strcpy"
                 statements when direct pointer access had been specified.

Kevin Diggins  : WSTRING is now translated to PWSTR instead of BSTR.  BSTR is retained         
                 throughout the built-in BCX VBScript runtime support library.