2010.03.14
|
Improved
|
Improved passing parameters to external functions now allowing also single array elements to be passed BYREF.
|
Charles Pegge
|
|
Fix
|
Fixed memory consumption error when calling external functions returning BSTR dynamic string
|
Charles Pegge
José Roca
|
2010.03.05
|
Fix
|
Re-fixed an old problem regarding STATIC variables declared at global level
|
Michael Clease
|
2010.03.03
|
Fix
|
Fixed static variables errors/GPF occurring in some special situations:
callback functions
returning from execution of a sub/function not having any parameter and local variables
|
Petr Schreiber
|
2010.02.28
|
Fix
|
Error in determining correct STATIC variables stack when STATIC variables were passed to functions as parameters.
|
danbaron
|
2010.02.18
|
Fix
|
CallBack_* pseudo variables bug when passed to functions as parameters.
http://community.thinbasic.com/index.php?topic=3218.msg24105#msg24105
|
|
2010.02.14
|
Fix
|
END FUNCTION determination during pre-parsing phase failing under some conditions.
|
danbaron
|
2010.02.10
|
Fix
|
Casting of numeric data types in numeric expression stopped to work in current development beta phase.
|
Petr Schreiber
|
2010.02.09
|
Improved
|
ARRAY SORT ... improved with ASFILES clause
|
Michael Clease
|
2010.01.31
|
Fix
|
DIM ... AT was not working with fixed strings and/or fixed strings array.
So something like the following was generating a GPF:
Dim s As String = "ABCDEFGHI"
Dim trio(3) As String * 3 At StrPtr(s)
|
Petr Schreiber
|
|
Fix
|
JOIN$ was not working with fixed string arrays
|
Petr Schreiber
|
|
Fix
|
Added more error checking during pre-parsing phase when thinBasic scan for function parameters.
|
danbaron
|
|
Fix
|
Removed a GPF that was occurring when function parameters calling do not conform with function parameter declaration.
|
danbaron
|
2010.01.30
|
Improved
|
Redefinition of constant equates is now trapped.
We have decided to fire a runtime error only if redefinition of the same constant equate will try to assign a value different from the current one.
|
danbaron
Petr Schreiber
|
|
Add
|
APP_SetScriptVersion function added
|
|
|
Fix
|
#SCRIPTVERSION not reporting correct values when used inside obfuscated scripts.
This directive has been deprecated in favour of APP_SetScriptVersion function
|
Michael Clease
|
|
Fix
|
Function_Name not correctly handled when used in function passing parameter expressions
|
Petr Schreiber
|
|
Fix
|
Array assignment with multiple values
|
Petr Schreiber
|
2010.01.13
|
Add
|
BEGIN CONTROLID ... END CONTROLID block added
|
|
2010.01.12
|
Improved
|
BEGIN CONST ... can now have an initial numeric value to start automatic numbering from
|
|
2009.12.13
|
Fix
|
Fixed array usage in arrays elements calculation
|
Petr Schreiber
|
2009.12.10
|
Improved
|
SizeOf can now handle arrays and arrays elements
|
Petr Schreiber
|
2009.11.30
|
Improved
|
Usage of BYVAL and BYCOPY in passing data to external function when a BYREF parameter is expected are now extended to strings (dynamic or Asciiz) and UDTs parameters.
|
Petr Schreiber
|
|
Improved
|
In PEEK$(ASCIIZ, Addr [, Count]) function can now have Count parameter omitted. automatically the bytes till the next $NUL char will be taken.
|
Petr Schreiber
|
2009.11.28
|
Improved
|
It is now possible to use BYVAL or BYCOPY in passing numeric parameters to external functions when a BYREF parameter is expected.
Using BYVAL programmer will instruct thinBasic to:
•parse the next expression as a numeric expression that will represent the pointer of the requested data to be passed BYREF
Using BYCOPY programmer will instruct thinBasic to:
•create a temporary numeric variable
•evaluate a numeric expression and assign to temporary variable
•pass to external function the pointer of the temporary variable
|
Petr Schreiber
|
|
Fix
|
Pre-parsing error when using WHILE clause in FOR statement
|
TomC
|
2009.11.18
|
Fix
|
Fixed default value parameter handling in function
|
Lionheart008
|
2009.11.16
|
Fix
|
Fixed UDT inheritance GPF
|
Petr Schreiber
|
|
Improved
|
In order to improve source code readability, thinBasic now supports new alias for floating point class data types:
Float16 is equivaled to Single
Float32 is equivaled to Double
Float80 is equivaled to Ext
|
Petr Schreiber
|
|
Improved
|
In order to improve source code readability, thinBasic now supports new aliases for integer class data types:
Int16 is equivaled to Integer
UInt16 is equivaled to Word
Int32 is equivaled to Long
UInt32 is equivaled to DWord
Int64 is equivaled to QUAD
|
Petr Schreiber
|
2009.11.15
|
Add
|
Function_GetPtr function added
|
|
|
Improved
|
CALL can now call functions or subs by their thinBasic internal pointers returned by Function_GetPtr
|
|
2009.08.28
|
Improved
|
Improved: it is now possible to assign a full VARIANT array to a single VARIANT variable. This method is often used in COM interfaces.
|
Petr Schreiber
|
|
Fix
|
Fixed passing VARIANT variables BYVAL to external libraries
|
José Roca
|
2009.08.22
|
Improved
|
Improved multi line strings handling. During pre-parsing phase, thinBasic Core engine will not make any investigation inside multi line string. It is now possible to include any code in multi line strings allowing interfaces with external modules more easy to achieve. See details here.
|
Charles Pegge
|
|
Change
|
Removed thinVL.dll. Its functionalities are no more used by any thinBasic modules.
thinVL.dll was a Core protection dll used to register thinBasic to specific user/keys. No parts of thinBasic programming language will be protected anymore by internal scheme.
|
|
|
Change
|
Removed thinRTE.dll. Its functionalities are now included in Core module.
thinRTE.dll contained runtime error handling.
|
|
|
Change
|
Removed thinRes.dll. Its functionalities are now included in Core module.
thinRes.dll was used as resources container: error strings, images for logos, ...
|
|
2009.06.03
|
Improved
|
UCODE$ improved
|
martin
|
|
Improved
|
ACODE$ improved
|
martin
|
|
Add
|
UTF8ToAnsi$ function added
|
martin
|
|
Add
|
AnsiToUTF8$ function added
|
martin
|
|
Add
|
WideCharToUTF8$ function added
|
martin
|
|
Add
|
UTF8ToWideChar$ function added
|
martin
|
2009.05.31
|
Improved
|
It is now possible to pass sub UDT elements to functions as parameters.
|
Petr Schreiber
|
|
Improved
|
String concatenation pre-operators +=, &= and .= now available also for string elements inside UDT. Only fixed strings cannot be used due their space padding nature.
|
Petr Schreiber
|
2009.05.14
|
Improved
|
Replace$ function speed improvements when used with ANY and WITH options
|
|
|
Add
|
ARRAY UNIQUE ... statement added
|
|
2009.05.10
|
Add
|
Added STATIC elements inside UDT TYPEs. For the moment all numeric and dynamic strings types are allowed but more will come.
|
|
2009.05.09
|
Add
|
Variable dimensioning can now have "predefined data type" syntax. See DIM for more info.
Example:
DIM AS Long MyLong1, MySecondLong
DIM AS EXT MyBigNumber = 123456.78901234
|
|
2009.05.08
|
Add
|
Variable dimensioning can now have "prefix data type" syntax. See DIM for more info.
Example:
Long MyLong1, MySecondLong
EXT MyBigNumber = 123456.78901234
|
|
2009.04.23
|
Fix
|
Again fixed function parameter passing wrong data when some parameter names matches variable names in calling stack level. More info here.
|
dcromley
|
2009.04.18
|
Fix
|
There was a memory leak in external API functions returning QUAD values. Returned value was not correctly handled. Now fixed.
|
|
|
Improved
|
Improved: full UDT structures can be assigned to nested UDT structures
|
dcromley
|
2009.04.15
|
Improved
|
Improved FOR/NEXT statement. When target value was not present, zero was assumed by default. Now parser will check for the presence of the mandatory target value
|
efly2020
|
2009.04.14
|
Fix
|
Fixed function parameter passing wrong data when some parameter names matches variable names in calling stack level. More info here.
|
dcromley
|
2009.04.13
|
Improved
|
Improved even further the possibility to pass single sub UDT elements to functions.
Example:
USES "console"
Type subPair
s As String * 10
b As Long
End Type
Type Pair
l As Long
a(2) As Double
sb As subPair
End Type
Dim TwoPairs(2) As Pair
TwoPairs(1).a(1) = 21: TwoPairs(1).a(2) = 22
TwoPairs(1).sb.s = "Hi there": TwoPairs(1).sb.b = 12345678
TwoPairs(2).a(1) = 23: TwoPairs(2).a(2) = 24
ShowData_Pair(TwoPairs(2))
PRINTL "Pair after change: ", TwoPairs(2).a(1), TwoPairs(2).a(2)
'---Now pass a sub UDT to a function expecting a single
'---UDT variable. This was not possible before
ShowData_SubPair(TwoPairs(1).sb)
WAITKEY
Sub ShowData_Pair(p As Pair)
PRINTL "Pair: " + p.a(1) + ", " + p.a(2)
p.a(1) = 1
p.a(2) = 2
End Sub
Sub ShowData_SubPair(p As subPair)
PRINTL "Pair: " + p.s + ", " + p.b
End Sub
|
|
|
Improved
|
It is now possible to pass UDT array element as function parameters even when a single element is expected. Example:
USES "console"
Type Pair
a(2) As Double
End Type
Sub ShowData(p As Pair)
PRINTL "Pair: " + p.a(1) + ", " + p.a(2)
End Sub
Dim TwoPairs(2) As Pair ' array of Pair
TwoPairs(1).a(1) = 21: TwoPairs(1).a(2) = 22
TwoPairs(2).a(1) = 23: TwoPairs(2).a(2) = 24
'---The following was not possible since now
'---because SUB was expecting a single UDT variable
'---and not an element of an UDT array
ShowData(TwoPairs(2))
WAITKEY
|
dcromley
|
2009.04.10
|
Fix
|
Fixed dotted notation of elements inside WITH/END WITH clause when elements where used inside an expression
|
Petr Schreiber
|
2009.03.17
|
Add
|
APP_SetReturnCode function added
|
|
2009.03.17
|
Improved
|
5% to 10% execution speed improvements in in handling function local variables and parameters
|
|
2009.03.12
|
Fix
|
Fixed incorrect script path under Win9x systems when scripts are executed from root path of any drive
|
GSAC3
|
2009.03.09
|
Fix
|
Fixed incorrect index handling when arrays of UDTs are nested inside other UDTs
|
Michael Clease
|