* package/winuni/RELNOTES
+ Note about upx update. (still no win64 support, but there are
some other goodies for OS X and Linux)
* utils/hbmk2/hbmk2.prg
+ Enabled upx support on darwin. (You need to install it via
macports)
* INSTALL
+ Added upx to macports install list for darwin.
+ Added few missing '$' prefixes from commands included in text.
* config/common/watcom.mk
- Deleted OS/2 make bug workaround.
Thanks to David Arturo Macias Corona for instructions/tests.
* harbour/source/rtl/gtwvt/gtwvt.c
* check if startup (default or user (SetMode())) console window dimensions
do not exceed screen size and if yes then reduce the initial number of
console window rows and cols to the screen size also in
HB_GTI_RESIZEMODE_FONT mode.
* config/global.mk
* config/detect.mk
+ Added support for optional user.mk file (requires GNU Make
syntax) in Harbour source tree root to store user-specific
build settings. In general all documented settings from
INSTALL can be used here, but most probably you'll only
want to store portable settings (like HB_CONTRIBLIBS).
Usually you'll want to use
'export HB_BUILD_* := <value>' syntax to specify them.
user.mk should not rely on any internal variables set
by our GNU Make system (like HB_PLATFORM), as they are
set later on the process thus not available at this
point.
Please note that this is yet an experience and details
or even presence of the feature may change in the future,
we should see how useful it turns out to be.
* Changed conf.mk support, so that the file got renamed
to config.mk and moved to source tree root (next to user.mk).
* contrib/hbct/ctwin.c
+ Added HB_C52_STRICT guard around artificial windows
size limits. Please review me.
HB_C52_STRICT macros should be renamed to HB_CLP_STRICT
to reflect usage of recent years, where it's also used
to cover 5.3 strictness f.e..
* source/rtl/gtwvt/gtwvt.c
! Minor formatting.
! Fixed to use WVT_MAX_COLS instead of WVT_MAX_ROWS in one
place.
* source/codepage/Makefile
+ source/codepage/cpeliso.c
+ source/codepage/cptriso.c
+ Added two new codepage modules.
Patch submitted by Istvan Bisz.
* include/hbextcdp.ch
+ Added above codepages to codepage list.
* INSTALL
- Deleted sudo from one pkg creation command.
* config/global.mk
+ Added MSVS 10.0 compiler version autodetection.
* config/os2/gcc.mk
% Deleted OS/2 make bug workarounds from OMF specific code.
Submitted by David Arturo Macias Corona.
Please test/review.
* harbour/harbour.spec
! fixed to build with postinst.prg executed by shared linked hbrun
* harbour/bin/hb-func.sh
* harbour/debian/rules
* harbour/harbour.spec
% use HB_INST_PKGPREF instead of _DEFAULT_*_DIR
Please test DEB building in Debian, Ubuntu or in other DPKG
based distro. It probably has the same problem with postinst.prg
as all other builds.
* harbour/debian/rules
* harbour/harbour.spec
* harbour/mpkg_tgz.sh
* harbour/source/compiler/gencobj.c
* updated harbour.cfg localization in *nix builds
* harbour/utils/hbrun/Makefile
! restored support for default include directory in system wide builds
* harbour/config/instsh.mk
* harbour/bin/hb-func.sh
* harbour/bin/postinst.sh
+ added support for HB_INST_PKGPREF which can be used as package
temporary install directory
* harbour/mpkg_tgz.sh
! use HB_INST_PKGPREF to allow creating install packages without
special user rights and to protect against damaging original system
installation during package building if sufficient user rights were
guarantied
+ harbour/tests/cpinfo.prg
+ added simple program to generate information for Harbour CP module
definition. Compile it with Clipper and link with given national
sorting module (usually ntx*.obj) and then execute to generate
letters strings for given national sorting module. Then use this
string to define Harbour CP module in source/codepage/ directory.
* INSTALL
* config/global.mk
* config/wce/msvcarm.mk
* config/win/msvc.mk
+ Replaced MSVC specific compiler version setting with generic
compiler version setting.
HB_VISUALC_VER_PRE80 and HB_VISUALC_VER_PRE70 setting are
deleted and HB_COMPILER_VER is activated.
; INCOMPATIBLE.
* config/global.mk
+ Added MSVC compiler version autodetection.
(6.0, 7.x, 8.0, 9.0)
* config/win/msvc.mk
+ Enabled UNICODE mode for MSVC 2008 (9.0) and above.
This compiler version doesn't support Win9x anyway.
* utils/hbmk2/hbmk2.prg
- Deleted support for HB_VISUALC_VER_PRE80 in hbmk2.
(HB_COMPILER_VER was already supported in hbmk2)
* harbour/source/rtl/gtwvt/gtwvt.c
! fixed font selection in UNICODE builds - it was not selected at all
! fixed possible double font freeing in non UNICODE builds
* contrib/hbmemio/memio.c
! fixed memory corruption on hb_memfsTruncAt() call
! added required memory clear on hb_memfsTruncAt() call
+ implemeted file handles different from internal structure pointers.
Now memory FS file handle is index in file structure array. Thus,
wrong memory FS is more safe for wrong external calls like:
HB_FHANDLE hF = hb_memfsOpen( szFilename, iFlags );
hb_memfsClose( hF );
hb_memfsClose( hF );
The second hb_memfsClose() call was wrongly re-releasing memory
resources and causing memory corruption before memory handles were
added.
* INSTALL
+ More details to MS Windows SDK 7.
* utils/hbmk2/hbmk2.prg
! Minor typo in comment.
* config/win/bcc.mk
+ Added syslibs to dynlib link command. This seems to be needed
for some newer (6.20) versions of BCC.
Thanks Przemek for noticing, Mario for reporting.
And please test, I didn't do it for either BCC versions due
to lack of time.
* harbour/include/hbsocket.h
* harbour/source/rtl/hbsocket.c
+ added new function hb_socketSetNoDelay() which turn off the nagle
algorithm for the specified socket.
The nagle algorithm says that we should delay sending
partial packets in the hopes of getting more data.
Be careful using this functions. It may help to improve performance
in some cases but in some other it may cause very serious overhead.
Programmer should well know what it does.
* set socket error in all hb_socket[SG]et*() functions
* harbour/contrib/hbnetio/netiocli.c
* harbour/contrib/hbnetio/netiosrv.c
* use hb_socketSetNoDelay() - it can be safely used in this code
though it probably does not improve the speed because I used
protocol which was nagle algorithm friendly. Anyhow now we
can disable NETIO_SYNC messages without performance reduction
due to bad interaction with nagle algorithm.
* INSTALL
+ Added "Unibin" example for Mac OS X.
+ Added separate HOWTO section for Mac OS X listing XCode as
prerequisite.
! Minor corrections in punctuation.
* contrib/hbhpdf/hbhpdf.hbc
! Added png lib for *nix systems. Thanks Lorenzo.
* INSTALL
* MSVC/Itanium cleanups.
* contrib/hbhpdf/hbhpdf.hbc
* Changed to not add libpng lib on *nix systems.
Attempt to move close to 'typical' (default) cases.
* INSTALL
! Minor fix to OS/2 example.
* utils/hbmk2/hbmk2.prg
* config/os2/gcc.mk
! Fixed to use 'stripomf' tool instead of 'strip' in gccomf mode.
; Please only post comments on above patch if it contains real
information. I'm not interested in "This is wrong.", "You messed it up."
kind of comments, only in real information, since I'm not OS/2 user.
* INSTALL
+ Added MSVC Itanium build example.
+ Added generic build instructions/advices for Windows x64 hosts.
+ Added build examples for Windows x64 hosts.
(most of the 32-bit Windows examples work as is, so I've
only added a few where there are differences and which I've
tested)
NOTE: x64 build of mingw32-make isn't used in these
examples yet.
! Minor fixes to OS/2 build examples.
* ChangeLog
! Few typos.
* contrib/hbxbp/xbpappevent.prg
* contrib/hbxbp/xbpbrowse.prg
* contrib/hbxbp/xbpdialog.prg
* contrib/hbxbp/xbpgeneric.prg
* contrib/hbxbp/xbpwindow.prg
! Changes to reflect modifications in hbqt.lib where QMainWindow()
is subclassed to catch and fine-tune MT windows and memory management.
This commit had to be along previous one but somehow I skipped.
* INSTALL
* utils/hbmk2/hbmk2.prg
* config/os2/gcc.mk
+ config/os2/gccomf.mk
+ Added OS/2 GCC OMF support.
This tries to fix resource support in hbmk2 compared to David's
solution. hbmk2 support is completely newly done, .mk support was imported
as is, with little change in actication logic.
! Fixed to use $(ECHOQUOTE) in some $(ECHO) command parameters.
; NOTE: Until we don't add autodetection for OMF supporting GCC versions,
it will have to be selected manually using HB_COMPILER=gccomf.
Notice that for GCC 4.x this is obligatory since COFF support is
broken in these versions.
Additional EMX* envvar options are left as an excercise for the
users, I intentionally didn't document these in INSTALL, as INSTALL
servers as Harbour documentation, not 3rd party tools like GCC.
* config/global.mk
! Minor in comment.
* contrib/hbqt/Makefile
* contrib/hbqt/hbqts/Makefile
* contrib/gtqtc/gtqtcs/Makefile
* contrib/gtqtc/Makefile
! Disabled QT dependent parts for msvcia64 targets.
; Fails with error:
---
z:\devl\qt\4.5.2\include\qtcore\../../src/corelib/tools/qvector.h(541) : warning C4346: 'QVector<T>::iterator' : dependent name is not a type
prefix with 'typename' to indicate a type
z:\devl\qt\4.5.2\include\qtcore\../../src/corelib/tools/qvector.h(541) : error C2143: syntax error : missing ';' before 'QVector<T>::insert'
z:\devl\qt\4.5.2\include\qtcore\../../src/corelib/tools/qvector.h(541) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
z:\devl\qt\4.5.2\include\qtcore\../../src/corelib/tools/qvector.h(541) : fatal error C1903: unable to recover from previous error(s); stopping compilation
---
* package/winuni/HARBOUR_README_MINGWARM
* Minor raw update to document newly found --force-local tar switch.
* harbour/source/rdd/dbfcdx/dbfcdx1.c
* harbour/source/rdd/dbf1.c
* harbour/contrib/rddads/ads1.c
! resolve pending relations before clearing or setting WA filter
directly or indirectly by SUPER method call
* config/global.mk
* utils/hbmk2/hbmk2.prg
+ Added autodetection for win/msvcia64 compiler.
* INSTALL
+ Tweaks to links.
* ChangeLog
! Fixed wrong entry header in my prev commit.
* INSTALL
* utils/hbmk2/hbmk2.prg
* config/os2/gcc.mk
! Reverted "rogue" patch. I'd like to kindly ask David,
to commit when doubts are cleared, otherwise I will
have to revoke R/W rights to avoid extra cleanup work.
This solution is wrong, for specific concerns see dev list.
* harbour/config/os2/gcc.mk
* harbour/utils/hbmk2/hbmk2.prg
+ Added support of OMF library format
To select alternative OMF library format, use:
set HB_OS2_OMF=yes
* INSTALL
+ Added note for OMF library format
* harbour/source/rdd/dbf1.c
* harbour/source/rdd/delim1.c
* harbour/source/rdd/sdf1.c
* harbour/source/rdd/dbffpt/dbffpt1.c
* harbour/source/rdd/dbfntx/dbfntx1.c
* harbour/source/rdd/dbfnsx/dbfnsx1.c
* harbour/source/rdd/dbfcdx/dbfcdx1.c
* harbour/contrib/rddads/ads1.c
* harbour/contrib/rddads/adsx.c
* harbour/contrib/rddsql/sqlbase.c
* harbour/contrib/rddsql/sqlmix.c
* harbour/contrib/rddsql/sddmy/mysqldd.c
* harbour/contrib/rddsql/sddpg/pgsqldd.c
* harbour/contrib/rddsql/sddfb/fbirddd.c
* harbour/contrib/rddsql/sddodbc/odbcdd.c
* removed some old xHarbour macros
* harbour/source/rdd/dbfcdx/dbfcdx1.c
! fixed sorting with code pages using accented characters with the
same weight - it's necessary to disable some optimizations for
such CPs. Thanks to Jaroslav Janik for the information and example.
* INSTALL
+ Added links to several new components.
I'd need input for bison/flex link, I didn't have any success
making these work on Windows systems.
- doc/bintools.txt
* INSTALL
* COPYING
* Content of bintools.txt moved to INSTALL and COPYING.
* bin/hb-mkimp.bat
* Minor syncing of Sed's name.
* harbour/source/rtl/cdpapi.c
* allow to use "UTF8" CP in HB_TRANSLATE() function
* harbour/include/hbapicdp.h
* harbour/source/rtl/itemseri.c
+ added support for optional CP translation in serialization and
deserialization operations
+ added two new public C functions: hb_itemSerializeCP() and
hb_itemDeserializeCP()
+ added new optional paramters <cCdpIN> and <cCdpOUT> to HB_SERIALIZE()
function:
HB_SERIALIZE( <xValue>, [<lNumSize>], [<cCdpIN>], [<cCdpOUT>] )
-> <cSerialized>
By default VM CP is used.
+ added new optional paramters <cCdpIN> and <cCdpOUT> to HB_DESERIALIZE()
function:
HB_DESERIALIZE( <cSerialized>, [<cCdpIN>], [<cCdpOUT>] ) -> <xValue>
By default VM CP is used.
* harbour/source/rdd/dbfntx/dbfntx1.c
* harbour/source/rdd/dbfnsx/dbfnsx1.c
* harbour/source/rdd/dbfcdx/dbfcdx1.c
* harbour/source/rdd/dbffpt/dbffpt1.c
* formatting
* bin/postinst.prg
! Fixed another error.
+ Utilizing ugly hack to avoid using Harbour header files.
Although it works, this solution is way ugly. I'm brand new hbrun
user so I don't know what is the proper solution for using
headers from .prgs code run directly.
Maybe this should be compiled into hbrun and the internal
version used, or it needs full include header dir
autodetection logic built in.
* INSTALL
+ Added new section: LINKS TO EXTERNAL TOOL, with actual (mostly complete) content.
+ Added OS/2 TCP/IP stack selection info.
+ Added OS/2 gcc 3.3.x build example.
! Minor typo.
+ Added linux hosted win/mingw64 target to compatibility matrix.
* Makefile
* Swapped shell postinst and .prg postinst invocation order.
+ Executing shell specific postinst command only if it exists.
+ bin/postinst.prg
* bin/postinst.bat
- bin/postinst.cmd
+ Started to migrate shell specific tasks to postinst .prg code.
; NOTE: Please review and test, this may cause regressions in
build process. I did't actually test most of these.
* contrib/xhb/hbcompat.ch
! Minor typo in comment.
* Updated copyright year.
* harbour/contrib/hbnetio/netio.h
* harbour/contrib/hbnetio/netiocli.c
* harbour/contrib/hbnetio/netiosrv.c
* added dummy sync messages which can be used as non waiting confirmation
% added separate messages for UNLOCK actions which are confirmed by
dummy message
* updated version number in login string to force client and server
synchronization with new protocol (both have to be recompiled with
current SVN code)
* contrib/hbqt/generator/hbqtgen.prg
! Modified TO implement destructors IN a different way.
* contrib/hbqt/qth/QAbstractItemModel.qth
+ Added more CLASS members.
* contrib/hbqt/hbqt.ch
* contrib/hbqt/hbqt.h
* contrib/hbqt/hbqt_slots.cpp
* contrib/hbqt/hbqt_slots.h
* contrib/hbqt/moc_slots.cpp
+ Added more members plus re-worked event management to support multi-threads
and multi-windows in a different perspective. It is an effort to locate where
Harbour's Qt implementation is buggy with respect to ever increasing memory usage
plus Qt's Paint Engine which appears to be dependant on thread's idle time.
[ This is the way I preceive this fact ]
* contrib/hbqt/QAbstractButton.cpp
* contrib/hbqt/QAbstractItemModel.cpp
* contrib/hbqt/QAbstractItemView.cpp
* contrib/hbqt/QAbstractListModel.cpp
* contrib/hbqt/QAbstractScrollArea.cpp
* contrib/hbqt/QAbstractSlider.cpp
* contrib/hbqt/QAbstractSpinBox.cpp
* contrib/hbqt/QAbstractTableModel.cpp
* contrib/hbqt/QAction.cpp
* contrib/hbqt/QApplication.cpp
* contrib/hbqt/QBitmap.cpp
* contrib/hbqt/QBoxLayout.cpp
* contrib/hbqt/QBrush.cpp
* contrib/hbqt/QButtonGroup.cpp
* contrib/hbqt/QCalendarWidget.cpp
* contrib/hbqt/QColor.cpp
* contrib/hbqt/QColorDialog.cpp
* contrib/hbqt/QComboBox.cpp
* contrib/hbqt/QCoreApplication.cpp
* contrib/hbqt/QCursor.cpp
* contrib/hbqt/QDateTime.cpp
* contrib/hbqt/QDesktopWidget.cpp
* contrib/hbqt/QDial.cpp
* contrib/hbqt/QDialog.cpp
* contrib/hbqt/QDir.cpp
* contrib/hbqt/QDirModel.cpp
* contrib/hbqt/QDockWidget.cpp
* contrib/hbqt/QDragMoveEvent.cpp
* contrib/hbqt/QErrorMessage.cpp
* contrib/hbqt/QEvent.cpp
* contrib/hbqt/QEventLoop.cpp
* contrib/hbqt/QFileDialog.cpp
* contrib/hbqt/QFileSystemModel.cpp
* contrib/hbqt/QFocusFrame.cpp
* contrib/hbqt/QFont.cpp
* contrib/hbqt/QFontComboBox.cpp
* contrib/hbqt/QFontInfo.cpp
* contrib/hbqt/QFontMetrics.cpp
* contrib/hbqt/QFontMetricsF.cpp
* contrib/hbqt/QFormLayout.cpp
* contrib/hbqt/QFrame.cpp
* contrib/hbqt/QFtp.cpp
* contrib/hbqt/QGridLayout.cpp
* contrib/hbqt/QGroupBox.cpp
* contrib/hbqt/QHBoxLayout.cpp
* contrib/hbqt/QHeaderView.cpp
* contrib/hbqt/QHttp.cpp
* contrib/hbqt/QIcon.cpp
* contrib/hbqt/QImage.cpp
* contrib/hbqt/QImageReader.cpp
* contrib/hbqt/QImageWriter.cpp
* contrib/hbqt/QInputDialog.cpp
* contrib/hbqt/QIODevice.cpp
* contrib/hbqt/QKeyEvent.cpp
* contrib/hbqt/QKeySequence.cpp
* contrib/hbqt/QLabel.cpp
* contrib/hbqt/QLayoutItem.cpp
* contrib/hbqt/QLCDNumber.cpp
* contrib/hbqt/QLineEdit.cpp
* contrib/hbqt/QList.cpp
* contrib/hbqt/QListView.cpp
* contrib/hbqt/QListWidget.cpp
* contrib/hbqt/QListWidgetItem.cpp
* contrib/hbqt/QMainWindow.cpp
* contrib/hbqt/QMenu.cpp
* contrib/hbqt/QMenuBar.cpp
* contrib/hbqt/QMessageBox.cpp
* contrib/hbqt/QModelIndex.cpp
* contrib/hbqt/QMouseEvent.cpp
* contrib/hbqt/QMoveEvent.cpp
* contrib/hbqt/QObject.cpp
* contrib/hbqt/QPaintDevice.cpp
* contrib/hbqt/QPainter.cpp
* contrib/hbqt/QPalette.cpp
* contrib/hbqt/QPen.cpp
* contrib/hbqt/QPicture.cpp
* contrib/hbqt/QPixmap.cpp
* contrib/hbqt/QPoint.cpp
* contrib/hbqt/QPrintDialog.cpp
* contrib/hbqt/QPrintEngine.cpp
* contrib/hbqt/QPrinter.cpp
* contrib/hbqt/QPrintPreviewDialog.cpp
* contrib/hbqt/QProcess.cpp
* contrib/hbqt/QProgressDialog.cpp
* contrib/hbqt/QPushButton.cpp
* contrib/hbqt/QRect.cpp
* contrib/hbqt/QRectF.cpp
* contrib/hbqt/QRegion.cpp
* contrib/hbqt/QResource.cpp
* contrib/hbqt/QScrollArea.cpp
* contrib/hbqt/QScrollBar.cpp
* contrib/hbqt/QSignalMapper.cpp
* contrib/hbqt/QSize.cpp
* contrib/hbqt/QSizeF.cpp
* contrib/hbqt/QSizeGrip.cpp
* contrib/hbqt/QSlider.cpp
* contrib/hbqt/QSound.cpp
* contrib/hbqt/QSplashScreen.cpp
* contrib/hbqt/QSplitter.cpp
* contrib/hbqt/QStandardItem.cpp
* contrib/hbqt/QStandardItemModel.cpp
* contrib/hbqt/QStatusBar.cpp
* contrib/hbqt/QStyle.cpp
* contrib/hbqt/QStyledItemDelegate.cpp
* contrib/hbqt/QStyleOption.cpp
* contrib/hbqt/QSystemTrayIcon.cpp
* contrib/hbqt/QTabBar.cpp
* contrib/hbqt/QTableView.cpp
* contrib/hbqt/QTableWidget.cpp
* contrib/hbqt/QTableWidgetItem.cpp
* contrib/hbqt/QTabWidget.cpp
* contrib/hbqt/QTextBoundaryFinder.cpp
* contrib/hbqt/QTextCursor.cpp
* contrib/hbqt/QTextDecoder.cpp
* contrib/hbqt/QTextDocument.cpp
* contrib/hbqt/QTextDocumentFragment.cpp
* contrib/hbqt/QTextDocumentWriter.cpp
* contrib/hbqt/QTextEdit.cpp
* contrib/hbqt/QTextEncoder.cpp
* contrib/hbqt/QTextFormat.cpp
* contrib/hbqt/QTextFrame.cpp
* contrib/hbqt/QTextLayout.cpp
* contrib/hbqt/QTextStream.cpp
* contrib/hbqt/QTimer.cpp
* contrib/hbqt/QToolBar.cpp
* contrib/hbqt/QToolBox.cpp
* contrib/hbqt/QToolButton.cpp
* contrib/hbqt/QTreeView.cpp
* contrib/hbqt/QTreeWidget.cpp
* contrib/hbqt/QTreeWidgetItem.cpp
* contrib/hbqt/QUrl.cpp
* contrib/hbqt/QVariant.cpp
* contrib/hbqt/QVBoxLayout.cpp
* contrib/hbqt/QWebHistoryInterface.cpp
* contrib/hbqt/QWebHistoryItem.cpp
* contrib/hbqt/QWebHitTestResult.cpp
* contrib/hbqt/QWebPage.cpp
* contrib/hbqt/QWebPluginFactory.cpp
* contrib/hbqt/QWebSecurityOrigin.cpp
* contrib/hbqt/QWebView.cpp
* contrib/hbqt/QWidget.cpp
* contrib/hbqt/QWidgetAction.cpp
* contrib/hbqt/QWindowsStyle.cpp
* contrib/hbqt/QWindowsXPStyle.cpp
* contrib/hbqt/QWizard.cpp
* contrib/hbqt/TQAbstractItemModel.prg
! Result of change in implemention of destructors in hbqtgen.prg.
[ In this commit I had concentrated on two pit-falls which may
certainly prevent Qt's efficacy in Habour applications:
1. Ever-growing memory usage.
2. GPF in multi-threaded multi-windows
Though I have tried my level best to pin-point where memory usage
keeps up growing, I could not find anything worth control. I changed the
way destructors were implemented before, but that also seems to be
insufficent. But as we have better control over the events, some
of you will be able to locate what exactly is the problem.
GPF in multi-threaded multi-window scenario is caused by PAINT event
which produces GPF is CPU is not released momentarily for that thread.
So I inserted hb_idleSleep( 0.2 ) in the code where PAINT event is about
to be returning, and the GPF went away. But this insertion has a greater
damaging effect that it slows down the application considerably as
with each single keystroke, appln becomes idle for that much period.
I have guarded this under QT_EXECUTE_IN_THREADS constant for now.
If you want to play with this feature than compile HBQT with it
and then open <Dialogs><One more instance> menu option. Do not
bother about how slow appln executes but simply open as mamny
dialogs as you want and navigate different components.
NOTE: you may require to increase nMilliSeconds in hb_idleSleep( 0.2 )
from 0.2 to 0.5 as this value is heavily CPU dependant.
Hope someone will be able to locate exact fixes to above two issues. ]