* source/compiler/harbour.slx
* Changed storing of MACROTEXT from hb_compIdentifierNew() to hb_strdup().
* tests/tstasort.prg
! Fixed R/T Error resulting from comparing unrelated types in sorting codeblock.
* contrib/dot/rp_run.ch
* contrib/dot/pp.prg
% Optimozed and improved handling of IF [ELSEIF] [ELSE] ENDIF in Interpreter mode.
% Optimozed and improved handling of DO CASE [CASE] [OTHERWISE] END[CASE] in Interpreter mode.
+ Added support for FOR [LOOP] [EXIT] NEXT to Interpreter mode.
+ Added support for [DO] WHILE [LOOP] [EXIT] END[DO] to Interpreter mode.
+ Added support for file statics to Interpreter mode.
+ Added supprt for Command-Line Parameters to Interpreter mode.
/* PP "FileName Param1 ParamN" -r */
* tests/stripem.prg
! Resolved missing Default() and ToChar()
* source/vm/hvm.c
* Modified error messages in hb_vmSend() to report class name of native types (including NIL) along with missing method name.
+ Added default implementation of ClassName() method of native types.
/* J.F. Can you please check why hb_objGetClsName() was not working correctly when called from hb_vmSend() ?
It was returning empty string ("") on my BCC55 latest build. */
* tests/clasname.prg
+ Added Arrays to types checked.
* source/compiler/harbour.l
* source/compiler/harbour.slx
+ Added logic to ignore, rest of line after //
content of /**/ comments
content of strings and char constants
escape codes within strings and char constants
* tests/inline_c.prg
+ Added sample comments and strings containing { and \".
* include/hberrors.h
* source/compiler/hbgenerr.c
+ Added: "Unterminated inline block in function: \'%s\'" and "Too many inline blocks"
* include/hbcomp.h
* source/compiler/harbour.c
+ Added hb_compInlineNew(), hb_compInlineAdd(), and hb_compInlineFind()
* source/pp/ppcomp.c
* source/compiler/harbour.slx
* source/compiler/genc.c
+ Added support for inline C code blocks.
+ tests/inline_c.prg
+ Added new test to demonstrate new inline C support.
* source/compiler/harbour.sly
! Optimized __GETA() support, and changed it to be implementated identical to Clipper.
/* Clipper passed a bGet Block which refrences the Base Array Variable and not the Variable itself.
Clipper passes NIL instead of bGet block if the Base Array is MACROVAR or MACROTEXT.
Clipper does not optimize "&Macro" to Macro, but Harbour does! */
* source/rtl/tgetint.prg
* __GETA() Changed 1st parameter aVar to bGetArray and logic to get the Base Array if bGetArray is NIL
/* Optimized to not use macro if possible (most cases) even if the GetArray is a macro. */
* tests/testget.prg
+ Added additional test.
* include/hbset.h
* include/set.ch
* source/pp/pptable.c
+ Added _SET_IDLEREPEAT = 101
* source/rtl/set.c
+ Added suport for SET( _SET_IDLEREPEAT ) - Default is .T.
* source/rtl/idle.c
- Removed HB_IDLE_RESET()
* Changed handling of Idle Process to default to REPEAT.
* tests/onidle.prg
- Removed call to HB_IDLE_RESET()
+ tests/testidle.prg
+ New test of Idle Blocks in default (REPEAT) mode and optional NON REPEAT mode.
* source/rtl/idle.c
+ Added HB_IDLE_RESET() and logic to reset Idle Processing upon such explicit request.
! If reoccuring processing of Idle Blocks is requested, hb_releaseCPU() is execusted upon completion of each cycle.
* tests/onidle.prg
+ Added HB_IDLE_RESET() to demonstrate explicit request for reoccuring processing of Idle Blocks.
* makefile.bc
Added missing dependancy of source/rtl/tgetint.prg
* source/rtl/tgetint.prg
! Improved __GETA() - No longer uses slow function calls to traverse array.
bSetGet much faster because it no longer traverses base array every time bSetGet is evaluated,
because final array dimension is now compiled into the bSetGet :-)
- Removed no longer needed __GetAValue(
* tests/testread.prg
+ Added multi dimension GET test.