* source/compiler/harbour.c
* Minor correction to handling of HB_FS_FIRST
* source/vm/hvm.c
* Added extern "C" protection to hb_macroAutoSetMacro() declaration.
* source/vm/macro.c
* include/hbcomp.h
* include/hbexprb.c
* include/hbexprc.c
* include/hbmacro.h
* include/hbmsetup.h
* include/set.ch
* source/compiler/cmdcheck.c
* source/compiler/genc.c
* source/compiler/harbour.c
* source/compiler/hbpcode.c
* source/rdd/dblist.prg
* source/vm/hvm.c
- Removed support for syncing of macro setting with main module.
- Removed support for -ks which is replaced with -kr.
+ Added default logic to auto symchronize all macro activations with the compile time switches of each respective module.
+ Added -kr to disable auto synching, thus allowing Run-Time setting by means of HB_SETMACRO().
* source/rtl/seconds.c
* changed HB_CLOKS2SECS to make it return a double (like Seconds()) this way
profiler is able to show not only seconds spent inside a function but even
tenths and hundredths.
* include/hbvmpub.h
* source/vm/classes.c
* source/vm/hvm.c
* source/vm/dynsym.c
! Fixed profiler counting of time elapsed inside recursive functions. It still has to
be fixed for methods.
NOTE: My knowledge of harbour VM is very poor. I hope I didn't break anything else :-))
! Fixed a few warnings inside hb_vmDo() and hb_vmSend()
* source/vm/arrayshb.c
! Fixed isalnum() call on line 359, isalnum() requires an int
+ doc/en/clipper.txt
+ New file describing Harbour features that are different from Clipper.
* include/hbpcode.h
* Corrected typo in comment /* Thanks to Dave for info. */
* source/compiler/harbour.c
! Corrected assigment of HB_FS_FIRST scope, for proper execution of first non INIT/EXIT procedure in main module.
* source/compiler/genc.c
* source/vm/hvm.c
! Improved sync logic of HB_SETMACRO() level, to only activate once per application before any prg level code is executed.
+ include/hbmsetup.h
* include/hbmacro.h
* Moved #defines of HB_SM_* to new file hbmsetup.h
* source/compiler/harbour.c
* source/vm/macro.c
* source/compiler/genc.c
+ Added logic to automatically synchronize HB_SETMACRO() level with the -k option supplied to compiler.
/* HB_SETMACRO() may still be called explictly, but now specifying any -k option to harbour will automatically provide same
level of functionalty in macro compiler. Example:
harbour test -kc
will restrict the compiler to the Clipper level mode, and will automatically disable extended macro support in that module
without requiring:
HB_SETMACRO( HB_SM_HARBOUR, .F. )
HB_SETMACRO( HB_SM_XBASE, .F. )
By default all harbour extensions are enabled - you can use -kc, -kx -ki, etc., to disable any unwanted feature.
We should still review the need to have -ki which I find absolutley redundant and unproductive.
*/
* source/compiler/harbour.l
* source/compiler/harbour.slx
* Added inline c support for hb_comp_iLanguage == LANG_OBJ_MODULE
* source/compiler/harbour.sly
* Added support for HB_COMP_ISSUPPORTED( HB_COMPFLAG_XBASE ) in Statement : ( MacroVar and MacroExpr ) to sync with harbour.y
* source/rtl/profiler.prg
+ Added HB_Profile::ignoreSymbol().
* Changed HB_Profile::gather() to use HB_Profile::ignoreSymbol() to
decide if a symbol should be ignored. This will let developers
modify what is and isn't ignored by subclassing HB_Profile and
implementing their own version of HB_Profile::ignoreSymbol().
* include/hbexpra.c
+ Added logic to optimize 2nd parameter of __DBLIST().
Scan it if array, and optiimize elements that are codeblocks containg macros to the core value of such macro.
* source/rdd/dblist.prg
+ Added logic to scan abEval for Strings, parse and convert them to codeblocks.
+ Added HB_aTokens()
/* This should complete support for:
cFields := "Field1,Field2,..."
LIST &cFields*/ ...
*/