* src/rtl/teditor.prg
! fixed a regression from 2012-11-14 04:49 UTC+0100, caused
by an odd coding case that doesn't occure anywhere else
in codebase (verified). Thanks to Vlado for noticing.
* harbour/src/vm/classes.c
! fixed unexpected item clearing in object item assignment when
variable is passed by reference - problem reported by Quique.
Here are code examples which could exploit the problem:
o:_var( @x )
or:
o:var := { @x }[ 1 ]
or:
o:var := iif( .t., @x, )
* harbour/src/rtl/hbcom.c
* enable RTS and DTR registers by default in MS-Windows builds.
I hope it will reduce number of pseudo "error" messages sent
by people who cannot read basic flow control documentation.
% unlock HVM when break signal is sent
* harbour/src/rtl/hbcom.c
* harbour/src/rtl/hbsocket.c
* harbour/src/rtl/filesys.c
! fixed timeval usage in repeated select() calls in systems like Linux
* harbour/contrib/hbwin/win_rpc.c
! fixed WINCE builds
* harbour/src/rtl/hbinet.c
* repeat accept operation if other thread concurently accpeted
new connection or some asynchronous network error appeared.
; TOFIX: basic hbrun functionality is broken and now it is not possible
to create scripts starting with line:
#!/usr/bin/hbrun
which do not have .hb or .prg file name extension
- doc/en/hb_api.txt
- doc/en/hb_apier.txt
- doc/en/hb_apifs.txt
- doc/en/hb_apigt.txt
- doc/en/hb_apiit.txt
- doc/en/hb_apiln.txt
- doc/en/hb_apird.txt
- doc/en/hb_compa.txt
- doc/en/hb_date.txt
- doc/en/hb_macro.txt
- doc/en/hb_vm.txt
* doc/en/hb_set.txt
- deleted 0.5MB worth of collection of very outdated 1:1 copies
of C declarations and their comments from .h headers, as they
were 12 years ago.
* include/hbapi.h
* include/hbvmpub.h
* src/vm/codebloc.c
* HB_CODEBLOCK_PTR type renamed to PHB_CODEBLOCK. Old type
remains for a while for compatibility.
; TODO: Remaining list of similar ones:
public:
HB_MACRO_PTR PHB_MACRO
HB_ERROR_HANDLER_PTR PHB_ERROR_HANDLER
HB_ERROR_INFO_PTR PHB_ERROR_INFO
HB_HASH_ITEM_PTR PHB_HASH_ITEM
HB_HASH_TABLE_PTR PHB_HASH_TABLE
internal:
HB_VOID_PTR PHB_VOID
HB_CBVAR_PTR PHB_CBVAR
HB_EXPR_PTR PHB_EXPR
HB_ENUMERATOR_PTR PHB_ENUMERATOR
HB_ELSEIF_PTR PHB_ELSEIF
HB_LOOPEXIT_PTR PHB_LOOPEXIT
HB_SWITCHCASE_PTR PHB_SWITCHCASE
HB_SWITCHCMD_PTR PHB_SWITCHCMD
HB_RTVAR_PTR PHB_RTVAR
HB_COMMON_PTR PHB_COMMON
HB_PCODE_INFO_PTR PHB_PCODE_INFO
HB_COMP_PTR PHB_COMP
* utils/hbmk2/hbmk2.prg
! hbshell_DirBase()/hbshell_ProgName() fixed to
return proper non-ASCII chars (= if hbrun/hbmk2 resides
in a directory with non-ASCII chars) even if the .hb
script or a shell command had changed the default codepage.
* include/hbdefs.h
- deleted redundant type: 'HB_FUNC_PTR'
INCOMPATIBLE. If you used this, swap it for 'PHB_FUNC'
* ws formatting
* ChangeLog.txt
! typos
* tests/testdyn.prg
! fixed -w3 warnings on non-win
! fixed possible type in text output
* config/postinst.hb
* utils/hbmk2/hbmk2.prg
+ use hb_StrFormat() in few more places
+ added minor exception after .hbx 'do no edit'
* website/index.html
! unclosed tag
* config/darwin/clang.mk
+ use 'clang++' in C++ mode
* include/hbcomp.h
* include/hbmacro.h
* include/hbsetup.h
% deleted redundant and/or unnecessary C RTL headers
+ config/win/clang.mk
* utils/hbmk2/hbmk2.prg
* utils/hbmk2/hbmk2.*.po
* README.txt
+ added very experimental clang support to the build
systems. Very lightly tested.
! fixed entry function detection not being enabled with clang
! fixed .res files not being added on os2/gcc[omf] from .hbc/sources= directive
+ added recently added new filter 'allbcc' to help text
! synced compiler list per platform in help/readme to reality
* ChangeLog.txt
+ updated 2012-12-16 00:17 UTC+0100 with the first DONE item.
* src/3rd/pcre/*
- reverted to 8.31 until all the breakage in configurability
is fixed either in pcre or by redesigning our way of
configuring it. Command-line configuration -DHAVE_*=0
doesn't seem to work anymore.
+ config/win/bcc64.mk
* config/global.mk
* config/postinst.hb
* config/win/bcc.mk
* package/winuni/mpkg_win_uni.bat
* package/winuni/mpkg_win_uni.nsi
* README.txt
* utils/hbmk2/hbmk2.prg
+ added rough cut support for bcc64 to the two make systems.
Untested. Autodetection and some 32-bit specific tricks
not implemented.
bcc64 is based on clang and it's only a bcc "emulation"
layer on top of it. At least it will be a good compiler
now, but it's important to see that it's internally
a clang compiler, so its behavior and raw options are
gcc-like.
Changes are based on xhb patches and bcc64 online docs:
http://docwiki.embarcadero.com/RADStudio/XE3/en/Command_Line_Utilities_Index
* include/hbcomp.h
* include/hbcompdf.h
* src/compiler/genc.c
* src/compiler/genhrb.c
* src/compiler/harbour.y
* src/compiler/harbour.yyc
* src/compiler/hbmain.c
* few more type renames to have std Harbour prefix
* utils/hbmk2/hbmk2.prg
+ use implibs (if available) as source of information
for updating .hbx files in -hbdyn mode. See in-code
comment for more.
* utils/hbmk2/pkg_dynl.hbm
+ enabled to rebuild .hbx files even in -hbdyn mode
(after above hbmk2 fix/improvement)
* extras/template/hbtpl.hbc
* extras/template/hbtpl.hbp
* minor tidying
* utils/hbmk2/pkg_dynl.hbm
* deleted no longer true reference to GNU Make
* contrib/rddads/adsfunc.c
* contrib/rddads/rddads.hbx
+ added AdsDDCreateRefIntegrity() and AdsDDRemoveRefIntegrity()
(former looks similar to xhb version, but incompatible due
to the several necessary fixes.)
+ extras/template
+ extras/template/core.prg
+ extras/template/corec.c
+ extras/template/hbtpl.ch
+ extras/template/hbtpl.hbc
+ extras/template/hbtpl.hbp
+ extras/template/hbtpl.hbx
+ extras/template/readme.txt
+ extras/template/tests
+ extras/template/tests/hbmk.hbm
+ extras/template/tests/sample.prg
+ extras/template/tests/test.prg
+ added Harbour library project template
it supports static and dynamic lib build mode,
features user defined macro, command, PRG
level function and C level function, sample
code, regression tests, .hbc file and automatic
installation to /addons and readme describing
the commands to build and use the library.
* contrib/hbrun/hbrun.hbp
! load dynamically loaded hbunix/hbwin default extensions
only on their native platforms. This avoid load warning
if the packages is completely missing on a system, so
the .hbc file isn't there, so the filter based detection
cannot work.
* contrib/xhb/regexrpl.prg
* contrib/xhb/xhb.hbx
! minor casing fix
+ contrib/xhb/tests/regexrpl.prg
+ added test from xhb (the function doesn't
seem to work)
+ tests/regex.prg
+ tests/regextst.prg
+ added regex tests from xhb
* contrib/hblzf/tests/test.prg
! typos
* package/winuni/RELNOTES.txt
* minor
* contrib/hbpost.hbm
* utils/hbmk2/pkg_dynl.hbm
* hack to avoid contrib/addon dynamic libs being used
automatically on *nix system when building executables.
Now they will be put in bin dir, just like on win.
* utils/hbmk2/hbmk2.prg
+ hbshell_include_list() API to list loaded core headers.
+ allow loading dynamic extensions on *nix even if built
against static HVM.
* display statically linked extensions in uppercase in
dot prompt UI and dynamic ones with original (lower) case.
(was normal case and postfixed with '*' respectively)
+ do not load dynamic extension if the .hbc file is not found
+ attempt to detect if dynamic extension loads fine on
a given platform and only try loading the dynamic lib
if it does.
+ added protection to not add duplicate compiler options
when compiling dot prompt entry.
* contrib/hbrun/hbrun.hbp
+ load default contrib libs dynamically on *nix, even if
hbrun is built against static HVM.
; these make work dynamic extensions on *nix systems.
* contrib/hbtip/sessid.prg
* extras/httpsrv/cgifunc.prg
* updated HTTP date format to use preferred format:
http://tools.ietf.org/html/rfc2616#section-3.3.1
% optimized code and eliminated unnecessary _SET_DATEFORMATs
; tip_DateToGMT() and its uhttpd_DateToGMT() derivative
* src/compiler/hbusage.c
* updated contributor list
* contrib/sddoci/tests/test1.prg
* contrib/sddodbc/tests/test1.prg
* contrib/sddodbc/tests/test2.prg
* contrib/sddsqlt3/tests/test1.prg
* use std way to configure date format
* contrib/hbrun/hbrun.hbp
* utils/hbmk2/hbmk2.prg
+ loading packages using ext.load, hbshell_ext_load(),
'hb_ext.ini'/'hb_extension' config files and HB_EXTENSION
envvar will now automatically load the packages'
standard headers and will properly set HBMK_HAS_* macros,
just like when running scripts or using .hbc files.
+ do not statically link contribs to hbrun when hbrun
is built dynamically. Instead, load default contribs
dynamically on startup (yes, performance will be worse.
If you don't like this, see 2012-12-03 15:17 UTC+0100).
This way these loaded packages will behave exactly the
same as any other dynamically loaded packages, f.e.
standard headers will be loaded and usable.
+ hbshell_include()/hbshell_uninclude() will now
load/unload core headers available in dot prompt.
+ 'hb.ch' core header is now loaded for scripts and dot
prompt by default. It means that K_ESC will now
return 27 and hb_gtInfo( HB_GTI_VERSION ) will work
as well, just like many other commonly used constants.
For a precise list, see the content of include/hb.ch.
If you don't like it, unload it from hbstart.hb using
hbshell_uninclude( "hb.ch" )
% use embedded headers when using the dot prompt.
* contrib/hbsms/sms.prg
* commented code cleanup
* config/global.mk
* README.txt
+ enabled dynlib generation by default on the Windows
platform. It means that hbrun will be built in shared
mode, so it can load them. You can copy hbmk2 to the name
'hbrun' and get a static built hbrun, or build it using
its .hbp file to your own needs. If you feel offended
anyways, turn off dyn contribs as described in README.txt
* contrib/hbxdiff/tests/test3.prg
! fixed to run as script
* contrib/hbnf/tests/dfile.prg
* contrib/hbnf/tests/pending.prg
* use CLS instead of old dBase trick
* utils/hbmk2/hbmk2.prg
+ automatically define HBMK_HAS_<packagename> macro
if a given package is linked or loaded when running
as script. F.e. HBMK_HAS_HBGD. The macro will have
the value zero if there is no version information
about the package and it will be 0x010203 if there
is, via .hbc version=x[.y[.z]] directive.
* extras/httpsrv/modules/showcounter.prg
* extras/httpsrv/modulesg.hbp
* extras/httpsrv/uhttpd.prg
* extras/httpsrv/uhttpdgd.hbp
+ use HBMK_HAS_* macro instead of manually rolled solution
* extras/hbusb/hbusb.hbc
* extras/hbusb/tests/hbmk.hbm
* extras/hbusb/tests/test.prg
* extras/hbvpdf/hbvpdf.hbc
* extras/hbvpdf/tests/pdf_demo.prg
+ use default headers extras where it makes sense
* include/Makefile
- include/hbtest.ch
* src/rtl/Makefile
- src/rtl/hbtest.prg
* utils/hbmk2/hbmk2.prg
- deleted hbtest from core.
* contrib/hbct/tests/test.prg
* contrib/hbgt/tests/test.prg
* contrib/hbmisc/tests/tsstrfmt.prg
* modified regression tests to use hbtest contrib
instead of hbtest functionality in core RTL
; Thanks to Mindaugas and Przemek, now the contrib
tests will require users to manually add 'hbtest.hbc'
to their hbmk2 cmdline in case someone would like
to build exes from them. Which means that fewer
people will bother to build and run them. They still
run simply using 'hbrun <name>.prg' as scripts.
* src/rtl/hbtest.prg
! made another accidentally public function STATIC
% merged XToStr() and XToStrE()
% XToStr() modified to use hb_CStr() where it can
* utils/hbtest/hbtest.prg
* utils/hbtest/rt_hvma.prg
* utils/hbtest/rt_math.prg
* utils/hbtest/rt_misc.prg
* utils/hbtest/rt_trans.prg
% synced in-string date format with src/rtl/hbtest.prg
* contrib/hbmisc/tests/tsstrfmt.prg
! fixed to not rely on current date
! fixed to set date format
* utils/hbmk2/hbmk2.prg
* utils/hbmk2/*.po
+ accept .ch files as project input. These headers
will be used as standard ones using -u+ option.
F.e.:
--- test.prg
? K_ESC
---
$ hbmk2 inkey.ch test.prg
$ test -> 27
+ accept .ch files in sources= .hbc directive.
; TODO: consider deleting headers= directive
* include/hb.ch
* utils/hbmk2/hbmk2.prg
* minor sync between list of "essential" core headers
and the minimal list of core headers embedded into hbmk2.
(minimal list is not used in default builds)
* added missing hbstrict.ch to full list of included headers