* 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. ]
* bin/postinst.sh
! Commented messing around with include attribs.
I guess this should only be done if HB_INSTALL_PREFIX is some
temp area where we assemble distro package.
Fixme.
* Makefile
* utils/Makefile
* Changed to build hbrun and hbmk2 in HB_BUILD_PARTS=compiler mode.
+ Added running bin/postinst.prg.
+ bin/postinst.prg
+ Added postinst.prg with test content.
* package/winuni/RELNOTES
* Added information about new MinGW CEGCC build.
* utils/Makefile
* Changed HB_UTILS setting name to HB_UTIL_ADDONS. To be
in sync with rest of similar settings.
* INSTALL
+ Documented HB_UTIL_ADDONS setting. (formerly HB_UTILS)
* harbour/config/globsh.mk
+ Added command $(TRUE) as dummy one for all shells. Pls check.
The goal is to have a command which does nothing just returns success.
* harbour/source/vm/itemapi.c
* modified (optimized manually) hb_itemPutNLen() to not exploit bug
in ICC optimizer when itemapi.c is compiled by ICC with -fpic switch.
* harbour/source/vm/vmmt/Makefile
* removed hack for ICC compilers which disabled HB_VM_ALL in ICC builds
BTW it was not enough (my mistake) and the problem was exploited also
when itemapi.c was compiled standalone
* harbour/include/hbthread.h
* modified some internal structure definitions (used nameless unions)
to pacify possible warnings on structure initialization.
* harbour/include/hbpp.h
* harbour/include/hbcompdf.h
* harbour/source/pp/pplib.c
* harbour/source/pp/ppcore.c
* harbour/source/compiler/cmdcheck.c
* harbour/source/compiler/ppcomp.c
+ added support for disabling all automatically set platform dependent
macros by '-undef:.ARCH.' switch.
.ARCH. is meta flag to select all architecture dependent macros:
__PLATFORM__*, __ARCH??BIT__, __*_ENDIAN__
It should simplify cross build harbour compiler settings in
core make system and hbmk2 or hb* scripts.
* harbour/config/dos/watcom.mk
* harbour/config/os2/watcom.mk
* harbour/config/win/pocc.mk
* harbour/config/win/bcc.mk
* harbour/config/win/watcom.mk
* harbour/config/linux/watcom.mk
* disable C compiler warnings when HB_BUILD_WARN=no. Some compilers
enable warnings by default.
It pacifies warnings when external libraries are compiled.
* INSTALL
* Pelles C support version numbers adjusted.
6.0 DOESN'T work with Harbour due to multiple bugs in this compilers.
Don't report such problems to the list.
* package/winuni/HARBOUR_README_MINGWARM
* Updated for latest cegcc binary release.
* utils/hbmk2/hbmk2.prg
! Typo in BSD macro redefinition.
* config/global.mk
+ Extended platform macro redefinition for all supported platforms.
+ Extended arch bit macro redefinition (didn't test it though)
* config/globsh.mk
! Fixed implib not being deleted when using POSIX shells.
! Fixed dynlib and implib not being deleted when using OS/2 or MS-DOS shells.
* harbour/source/common/hbffind.c
! do not use GetVolumeInformation() in WinCE builds
* harbour/mpkg_rpm.sh
* harbour/harbour.spec
+ added new switches '--with localzlib' '--with localpcre'
* updated to work with current base make system
TODO: better integration with current base make system
* harbour/include/hbcomp.h
* minor formatting
* harbour/source/rdd/dbfnsx/dbfnsx1.c
! fixed false corruption RT error generated due to missing reset
on cached current key offset - thanks to Jaroslav Janik for
information and self contain example
* utils/hbmk2/hbmk2.prg
* config/global.mk
! Changed .dll names for OS/2 to be the same as in MS-DOS:
harbour/harbourm. (.dll names in OS/2 are limited to 8.3)
* config/dos/djgpp.mk
! Attempt to fix empty line problem when stripping isn't requested.
Something better would be good here.
* config/os2/gcc.mk
! Fixed empty line problem when stripping isn't requested.
* harbour/include/hbrddcdx.h
* harbour/source/rdd/dbfcdx/dbfcdx1.c
+ added support for national sorting using accented and multibyte
characters.
Warning CDX indexes created so far for such CDPs are not sorted using
the same conditions as current SVN code so new applications should
reindex.
Harbour codepages with accented characters:
cs852, csiso, cskam, cswin,
sk852, skiso, skkam, skwin
sv850, sviso, svwin
fr850, friso, frwin
el737, elwin,
Harbour codepages with multibyte characters:
cs852, csiso, cskam, cswin,
sk852, skiso, skkam, skwin
Now string keys in CDX indexes using above codepages are sorted
in the same way as HVM sorts strings. Please only remember that
CDX internal format was designed for byte weight sorting so such
CPs may reduce internal compression level increasing the size of
final indexes.
After this modification all native index types (NTX, NSX and CDX)
fully respects national sorting defined in Harbour CPs.