|
|
|
Harbour News |
|
|
This page gives you some of the main changes introduced in recent versions of Harbour project. To view the latest ChangeLog click here or download lastest stable release of Harbour here. |
|
|
|
|
|
Release 1.0.0
- August 10, 2008
General
- Internal errors are now logged to file.
- Fixed -gc3 for doubly negated integers.
- Changed hb_xrealloc() to be ANSI-C realloc() compatible.
- Cleanup of MSVC C mode static initialisation code.
- Changed internal representation for file attributes from USHORT to
ULONG.
- Fixed memory leak in -gw mode.
- Portability fixes (Unicode, 64 bit, Pelles C 32/64 bit, WinCE, eVC4,
XCC, Linux mouse detection, OpenWatcom).
- Deployment fixes.
- harbour.dll related fixes.
- MinGW bash (msys) build related fixes.
Core
- Fixed __HARBOUR__ macro on .prg level, when compiled with -u switch.
- HB_ARRAYID() moved to xhb.lib, synced with xhb and made 64 bit
compatible.
- File handle usage cleanup and 64 bit compatibility.
- Automatic destructors for .hrb modules.
- Added passing non-string parameters to .hrb functions.
- Fixed casting for indexes with key length greater then 196 bytes created
on tables with record number smaller then 256 in rddcdx.
- New FS API functions: hb_fsSetFileTime(), hb_fsGetFileTime(),
hb_fsSetAttr(), hb_fsGetAttr().
- New date API function: hb_timeStampEncode().
- Fixed printing under OS/2.
- Implemented DBEDIT() DE_APPEND mode plus some other features and
compatibility fixes.
- MD5 calculation fixes.
- Added C level hb_hashAddNew().
- Compile time optimization of EMPTY() function.
- Compress trailing spaces during string item serialization.
- Replicated CA-Cl*pper compile time optimization bugs.
- TCP/IP function (HB_INET*()) fixes.
- Added HB_OSFILEMASK(), HB_DIRSCAN(), HB_FILEMATCH() Harbour level
functions.
- Fixed RTE in HBReportForm() class.
- Added __OBJGETPROPERTIES(), extended __CLSGETPROPERTIES().
- Changed (incompatible): __PLATFORM__Windows -> __PLATFORM__WINDOWS
__PLATFORM__Linux -> __PLATFORM__LINUX
- hbdot functionality merged into hbrun.
- *nix exception handler added.
- Source filename visible in stack traces.
Contrib
- Better cross-build support for contribs with external dependencies.
- hbmzip OS/2 support, Unix .zip header fix, using Harbour memory
management functions, global and file comment support, HB_ZIPDELETEFILE()
function.
- hbziparch fixes and better portability.
- hbcurl fixes, now using Harbour memory allocation functions, now older
libcurl versions are supported as well,
- CURL_EASY_GETINFO() fixed for unsupported info types.
- 64bit compatibility fixes. hbmysql/SQLLISTF() function now uses pointer
instead of numeric type.
- Fixed adordd to be _SET_EXACT independent.
- Fixed hbodbc tests to work out of the box.
- hbw32, hbodbc 64 bit fixes.
- Fixed rddads to behave Clipper-like when trying to write when on EOF
position.
- Added OS version detection functions to hbw32.
- Fixed HB_INC_* envvar usage in *_all.bat files.
- Fixed casting for indexes with key length greater then 196 bytes created
on tables with record number smaller then 256 in hbbmcdx.
- hbsqlit3 warning fixes and error fixes for some compilers/modes.
- Added DirectoryRecurse() to xhb.lib.
|
|
|
|
|
|
|
|
|
Release of 1.0.0 RC 2
- July 01, 2008
General
- SVN repository cleanup in /tags and /branches
- GNU and non-GNU make system configuration moved closer to each other.
- Reviewed and fixed platforms issues and compiler warnings
for the contrib area in most part.
- Enhanced contrib 64bit Windows compatibility.
Core
- _HARBOUR__ macro will now contain value in 0xAABBCC form, where AA, BB
and CC are the major, minor and revision numbers in hex. This is
incompatible, as in previous version .c level __HARBOUR__ did return 0xAABB,
while on .prg level it had no value.
- Deprecated hb_itemPutCPtr(). Please use hb_itemPutCLPtr() instead.
- Deprecated hb_errFuncName public var. Please use HB_ERR_FUNCNAME
macro instead.
- Added hb_itemPutCPtr2().
- GTWVT enhancements (mark©, resize with mouse, palette handling,
some event callbacks, close button control)
- Changed SetCancel() interpretation in GTWVT.
- hbpp now uses the same engine as the Harbour compiler.
- Added Set( _SET_HBOUTLOG[, <cFileName>] ), Set(
_SET_HBOUTLOGINFO[, <cInfo>] )
- to customize GPF and memory leak logging.
- Added better GPF dumps for Windows.
- Fixed clipboard handling on Windows under certain situations.
- Optimizations and minor fixes.
Contrib
- Reviewed and fixed bugs and potential security issues in contribs.
- hbziparch updated, bugs fixed and ZipArchive library
updated to latest version.
- Added DLL call functionality to hbw32 contrib.
- Added HB_FREADLINE(), HB_CRYPT(), HB_DECRYPT() to xhb contrib.
- Added hbtip contrib tests.
- GTWVG contrib enhancements.
- Added SQL_SPRINTF() to hbmisc contrib.
- Enhanced STRFORMAT() in hbmisc contrib.
- Enable hbgf contrib for all (Linux, OS/2, Windows) platforms.
- Due to fixing 64bit portability problems, some functions became
incompatible, because numeric addresses have been converted to
pointer types:
- hbwhat32: wndproc/dlgproc parameters in related functions.
- hbmysql: SQLCONNECT(), SQLSTORER(), SQLUSERES()
- hbmsql: MSQLSTORER(), MSQLLISTFI()
- Removed function CEIL() from hbmisc. Please use CEILING() from
hbct
instead.
- Optimizations and minor fixes.
|
|
|
|
|
|
|
|
|
Release of 1.0.0 RC 1
- June 04, 2008
General
- The SourceForge repository was moved from CVS to SVN
- added docs/howtosvn.txt
- changed pack_src.sh to extract list of files from local SVN copy using
SVN commands
- improved CYGWIN compatibility
- new alternative make system for BCC, MSVC and GCC (maybe others in
the
future) which uses common dependences list. The old GNU make system is
still functional and working
- added support for pure C MSVC builds (not C++)
- added rules to generate DEB packages - by Luis Mayoral taken from
Debian
distribution updated for current code
- added new man pages and updated the old ones taken from Debian
- fully removed flex and bison dependences in normal builds. Only
developers
who want to change the grammar files needs bison
- removed all HB_COMPAT_XHB definitions from source code - now all
covered
extensions should be supported by hbcompat.ch and/or xhb library
- removed 3-rd party header files from SVN, f.e.: ace.h
Portability
- eliminated errno access for platforms which do not have it.
- added support for PocketPC WINCE with MSVC, POCC, CeGCC and
MinGWCE.
- added support for cross WinCE builds
- extended hb* scripts for cross builds: hbw* - Win32, hbce* - WinCE
- added support for creating RPMs with Harbour cross build for Win32
and
WinCE.
- added support for MS-Windows UNICDE builds.
- added support for shared libraries (.sl) in HPUX builds
- added large file support (64bit) in HPUX builds
- disabled in default BSD* builds DOS/Windows DENY_* flags emulation
implemented by BSD locks - tests on FreeBSD 6.2 and MacOSX shows
that it badly interacts with POSIX locks and it's possible to create
deadlock.
The Compiler
Syntax
- added direct support to compiler for ENDSW[ICTH], ENDDO,
ENDC[ASE], ENDI[F],ENDW[ITH], ENDSEQ[UENCE]
Now they are not translated by preprocessor to END what allows better typos
detection in .prg code because each statement can use its own unique close
directive
- forbidden using EXIT and LOOP inside ALWAYS code in BEGIN/END
sequence
- forbidden using ALWAYS statement if RECOVER code has EXIT or LOOP
statement
- removed some restrictions on reserved words like using IF, IIF,
_FIELD
as field name
- added support for (@var):<msg>
- fixed many syntax expressions which where accepted by grammar
definition
but not supported by compiler, f.e. @func(p)
- added support for HB_ENUM*([@]<varname>) functions - disabled
by default can be enabled by HB_USE_ENUM_FUNCTIONS macro
- added support for DYNAMIC functions - references resolved at
runtime.
Internals
- fixed LOOP used inside SWITCH/CASE.../END[SWITCH] statements
- fixed using EXIT/LOOP inside WITH OBJECT / END[WITH] statement
- fixed optimization of empty BEGIN/END sequence when recover has
EXIT or LOOP statement
- fixed using EXIT/LOOP inside extended codeblocks when loop is
external to codeblock definition
- fixed using RETURN inside extended codeblocks when they are
defined
inside BEGIN SEQUENCE statement
- many other fixes for problems which can appears in nested extended
codeblock definitions
- fixed problems with line numbering in extended code blocks
- fixed compiler -w3 warning when class has different name then
class
function.
- optimizations in generated PCODE and extended compile time
optimizations
- added support for --version compiler switch for platforms which
use '-' as option separator
- added new compiler switches:
-q2 - disable _ALL_ stdout/stderr messages
-kM - turn off macrotext substitution
-ks - changed to pass base value by reference what allow full []
operator overloading
- added new compiler switches for automatic filename, pathname and
path
separators translations (-fn*, -fd*, -fs*, -fp*) used for file open
during compilation
- added support for dynamically set during compilation ChangeLog entry,
ChangeLog ID, SVN revision and compilation flags.
Update Harbour logo message to show the exact revision number and removed
non-working compiler frontends: .NET CLI and JAVA.
- added support for i18n into compiler (-j[<filename>] switch)
gettext compatible .pot files are generated
Preprocessor
- added support for logical constants .T., .F., .Y., .N. in #IF ... / #ELIF ... PP directives
- added support for changing all -k? switches by #pragma, f.e.;
#pragma -ks+
#pragma -kM-
#pragma -kx1
#pragma -kJ0
- added to PP predefined defines: HB_VER_LENTRY, HB_VER_CHLID,
HB_VER_SVNID
- with ChangeLog entry, ChangeLog ID and SVN revision
- added to PP support for:
#pragma __[c]streaminclude "fileName"|<code with % result marker>
The Runtime Modules
- renamed core libraries
- cleaned code and guards all extensions to pure CL5[23] with
HB_EXTENSION
macro.
- turned off HB_EXTENSION for the default builds.
API
- added C functions to access SET values (hb_setGet*()) which should
be used
instead of direct accessing HB_SET structure
- added hb_fsFileExists() and hb_fsDirExists()
- added hb_arraySet*() functions - they should help 3-rd party
developers
to eliminate using C stack level HB_ITEM and reduce usage of potentially
danger function like hb_arrayGetItemPtr()
- added hb_itemParamStore[Forward]() functions
- added hb_dateMilliSeconds()
VM
- FOR EACH detached enumerators now does not change on next iterations
- added support for scalar classes with operator overloading
- added full support for passing object items by reference even if
they
are not real variables but SETGET methods
- added support for setting string characters by assigning FOR EACH
iterator, f.e.: FOR EACH c IN (@cVar)
c := Upper( c )
NEXT
- added full support for FOR EACH overloading
- extended PROCFILE() function - now it can accept <nLevel> | <sFuncSym>
|
<cFuncName> as first parameter, f.e.: PROCFILE( @someFunc() ) or
PROCFILE( "PUBLICFUNC" ) or PROCFILE( nStackLevel ). For non character
parameters it fully works also for static functions even if source code
have many static functions with the same name
- added support for detecting not cleanly overloaded by linker .prg
functions.
- cleaned PCODE module unload procedure.
- added support for executing all inherited multiple object
destructors.
Debbuger
- many fixes and extensions in debugger code mostly by Phil Krylov
borrowed
from xHarbour
- added to debugger support for inspecting objects which use hidden
methods and members with the same names in different classes in
inheritance tree - now context is dynamically changed
RTL
- added functions for translation to/from UTF8 mode and operations
on UTF8 strings
- added functions for bit manipulations: HB_BIT*() and for
conversions
to/from hexadecimal format
- added set of functions with hb_ prefix supported extended
parameters,
f.e.: HB_AINS(), HB_ADEL(), HB_ASCAN(), HB_RASCAN(), HB_GETENV(),
HB_AT(), ...
- added HB_FILEEXISTS(), HB_DIREXISTS()
- new TBROWSE class which is now very highly compatible with Clipper
It should resolve 99.9% problems with BROWSE reported in the past.
- TBCOLUMN class is now fully Clipper compatible
- many fixes and cleanups in TGET class
- many fixes to GETSYS functionality, especially 5.3 compatible
features.
- many fixes and cleanups in CL53 classes like TOPBAR, POPUP,
MENUSYS,
MENUITEM and related functions.
- Made C5.3 UI classes fully working and compatible.
- ERROR class rewritten in C so now it's possible to create new
error
objects also with active exceptions
- added missing support for _SET_FILECASE, _SET_DIRCASE switches in
some
functions
- added _SET_TRIMFILENAME - when enabled low level hb_fs*()
functions strip
trailing and leading spaces from file names to emulate DOS like behavior
- added support for _SET_DEFEXTENSIONS to native all RDDs
- many fixes in transform() function and fixed 64bit integer
transformation.
Now transform() passes our all compatibility tests
- added undocumented Clipper error functions
- - added functions to manage .ini files: HB_INI*()
- extended HB_KEYPUT to support strings and arrays.
- converted HIDDEN methods and members in RTL objects to PROTECTED
for
easier class extension in user code
- added many undocumented Clipper's C and .prg functions.
- added hbzlib and Harbour level compression functions.
- PCRE library updated to version 7.7.
Macro Compiler
- removed some restrictions on reserved words like using IF, IIF,
_FIELD
as field name
Compiler
- added support for full compiler code integration with compiled programs
WARNING: Please remember that compiler in Harbour is covered by pure GPL
license and final programs should respect it so use compiler library
only with programs which respects GPL.
GT
- Added new GT driver GTTRM. It's terminal GT which can be used in
different
*nixes. Unlike GTCRS or GTSLN it does not use any external libraries
like [n]curses or slang or databases with terminal description (termcap/
terminfo). It has hard coded support only for few terminals (Linux,ANSI,
XTERM) but because uses only very limited set of escape sequences then
on most currently used terminals it works better then curses or slang
based programs. GTTRM automatically detects ISO/UTF8 terminal mode at
startup and chose valid output what should also help *nix users - it
resolves problems with some box drawing characters and others which
are not accessible in ISO mode. It also respects /etc/harbour/hb-charmap.def
like GTCRS.
As long as user code does not execute and full screen commands then
it works like GTSTD so can be used also for simple stream programs.
- added new GT driver GTWVG. It's works like GTWVT but has
additional
support for GUI elements
- changed GTI_* defines to HB_GTI_*
- added optional hb_gtInfo() switch HB_GTI_COMPATBUFFER which can
force
using DOS compatible video buffers in all GTs. Anyhow please remember
that it may cause that some extended information stored by GT driver
in video buffer will be lost.
- added HB_GTI_ADDKEYMAP and HB_GTI_DELKEYMAP to define/remove new
escape key sequences in terminal based GTs. It's supported by
GTCRS and GTTRM
- fixed color string decoding to be fully Clipper compatible
- OUTSTD()/OUTERR() respects automatic CP translation when they
are not redirected to GT screen
- added common for all GTs CLIPBOARD support. If possible low level
GT
drivers uses system clipboard otherwise they emulate it for Harbour
application only
Multilangual
- added new lang and codepage modules: SK, BG, BE, HR, UA, LT, SV,
etc.
- updated codepage code for better handling accented and multibyte
characters.
RDD
- added support for memo file packing in PACK operation
- added new DBF fields like: AUTOINC (+), ROWVERSION (^), TIME (T),
DAYTIME (@/T), MODTIME (=), binary integers with fixed decimal places, etc.
- removed limit for maximum size of relation string expression
- fixed registering workareas with numbers from 65280 to 65534.
- added SIX3 compatible library - now Harbour supports all SIX3
functions
and extensions like triggers. The HiPer-SEEK and CFTS (HS_*() and CFS*()
functions) was added before in hsx library. Now only bitmap filters
(m6_*() functions) are not supported in SVN Harbour version.
Contrib
- renamed contrib libraries
- TIP library borrowed from xHarbour and adopted to Harbour
- added HBCURL - libcurl interface library. (rooted from the
xHarbour version, but heavily fixed and further developed.)
- added HBSQLIT3 - SQLite 3.x Harbour callable library.
- fixes in MySQL and PGSQL library
- cleanup and many fixes in NF library
- cleanup code of CT3 library with many modifications and fixes
- most of in/out CT3 functions rewritten to use GT API so now they can
work
on all platforms and with all GTs
- added support for contrib libraries and new make system
- many contrib libraries borrowed from xHarbour code
- added xHarbour compatibility library: xhb. It emulates many of
xHarbour
behavior which cannot be covered by PP rules like extended operators,
strings like arrays, one byte string in math operations, HB_ENUMINDEX(),
HB_QWith(), HB_QSelf(), accessing hash item using OOP interface,
accessing/assigning string characters using [] operators (many of the
above fully works only in Harbour but not in native xHarbour code :-))
and many extensions like HBLOG, HBXML, HBCSTRUCT, HASH, INET*(), etc.
- added HBTPATHY - Telepath(y) compatible comm. library.
- added HBWHAT32 - Windows API interface.
- added HBFBIRD - Firebird db access interface.
- added hbcompat.ch file which hides many differences between
Harbour
and xHarbour compilers using PP directives.
- added hbmzip library - it's wrapper to MINIZIP library which
allows for compress and decompress streams, character variables,
.gz and .zip files
- fixes and extensions in ADORDD
- added automatic ACE version detection during building ADSRDD
- added many new Ads*() functions wrappers and cleaned code for
possible GPFs when wrong parameters were passed to some functions
- added HBHPDF - interface for Haru Free PDF Library.
- added HBVPDF - Viktor K's PDF Library + Pritpal Bedi's OOP
extension.
- enhanced and fixed HBW32 library - OLE and printing
Utilities
- added HBDOT utility program. It's a "Dot Prompt" Console for the
Harbour Language
Syntax: hbdot [<hrbfile[.prg]> [<parameters,...>]]
It should look and work in similar way to pp/xBaseScript
by Ron Pinkas but unlike xBaseScript is does not have preprocessor
or simulated runtime environment but simply uses Harbour pp and
compiler libraries to preprocess and compile commands. It means
that it supports all language constructions also statements, f.e.:
"for i:=1 to 10; ? i; next"
Additionally it can also compile and execute .prg files given as
first parameter just like hbrun.
- added many new tests to hbtest
- renamed ppgen to hbppgen.
|
|
|
|
|
|
|
|
|
Release of
Beta 3 ( 0.99.3 )
- May 1, 2007
General
- added support for writable string enumerators (s:="abc";for each c in @s;...)
- cleaned the syntax and strange unsupported but accepted by [macro]compiler
constructions
- added BEGIN SEQUENCE [WITH
] / RECOVER [USING
] /
ALWAYS / END
- new debugger code with low level C interface borrowed from xHarbour
- added hash tables
- speed improvement
- added regular expressions
- added internet sockets
- added checksum functions
- added support for execution .prg scripts in hbrun
- added HB_COMPAT_XHB macro which allows to enable many xHarbour extensions
- added to default PP tables defines from hbsetup.ch
- added #ytranslate, #ycommand, #yuntranslate, #yuncommand
- fixes in BROWSE, GET and some other .prg classes
- fixed UTF8/UNICODE translations for control characters in GTSLN and GTXWC
- cleaned many memory leaks in Compiler
- added separated compiler library which can be linked with VM and RTL libraries
- cleaned some possible bad side effects in cross references
- many other fixes, improvements and extensions - see ChangeLog for details
|
|
|
|
|
|
|
|
|
Release of Beta 2 ( 0.99.2 )
General
- fixed all problems reported after Beta1 release
|
|
|
|
|
|
|
|
|
Release of Beta 1 ( 0.99.1 )
General
- There are a lot of changes, additions, bug fixes in all subsystems - see whatsnew.txt for details.
|
|
|
|
|
|
|
|
|
Release of Alpha build 46
General
- There are a lot of changes, additions, bug fixes in all subsystems - see whatsnew.txt for details.
|
|
|
|
|
|
|
|
|
|
|
|
|