* 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.
* config/win/global.mk
+ Enabled UNICODE mode for all 64-bit Windows targets.
Here there is no concern about Win9x compatibility, so
it can be safely done, and I hope this move will make it
easier to catch UNICODE coding problems, as it will be now
part of some default builds.
The ultimate litmus test is on Windows is msvc64, where
C++, 64-bit and Unicode compatibility is tested at the
same time.
+ contrib/hbmemio/tests
+ contrib/hbmemio/tests/hbmk.hbm
+ contrib/hbmemio/tests/test.prg
+ Added test dir.
+ Added test code included by Mindaugas in the ChangeLog entry.
* contrib/hbmemio/Makefile
+ contrib/hbmemio/memio.c
- contrib/hbmemio/iodmem.c
* Renamed to be in sync with netio.
! Fixed strcpy() call to hb_strncpy().
Review me I didn't check if the set length limit is a valid one.
! Fixed C++ casting errors on buffer allocation calls.
; TOFIX: These warnings remain:
---
../../../memio.c(170) : warning C4244: 'argument' : conversion from 'HB_FOFFSET' to 'ULONG', possible loss of data
../../../memio.c(423) : warning C4244: '=' : conversion from 'HB_FOFFSET' to 'ULONG', possible loss of data
../../../memio.c(452) : warning C4244: 'argument' : conversion from 'HB_FOFFSET' to 'ULONG', possible loss of data
../../../memio.c(501) : warning C4244: 'argument' : conversion from 'HB_FOFFSET' to 'ULONG', possible loss of data
../../../memio.c(508) : warning C4244: 'argument' : conversion from 'HB_FOFFSET' to 'ULONG', possible loss of data
../../../memio.c(580) : warning C4267: 'argument' : conversion from 'size_t' to 'ULONG', possible loss of data
../../../memio.c(627) : warning C4267: '=' : conversion from 'size_t' to 'ULONG', possible loss of data
../../../memio.c(674) : warning C4244: 'argument' : conversion from 'int' to 'USHORT', possible loss of data
memio.c(373) : warning C4701: potentially uninitialized local variable 'pFile' used
---
* contrib/hbmemio/hbmemio.hbc
! Corrected svn props to be like in howtosvn.txt.
- contrib/iodmem
+ contrib/hbmemio
- contrib/hbmemio/iodmem.hbc
+ contrib/hbmemio/hbmemio.hbc
* contrib/hbmemio/Makefile
* contrib/Makefile
* Renamed to have 'hb' prefix and to be in line with hbnetio.
! Fixed props on Makefile.
! Corrected to list this lib in no-dependency section in contrib/Makefile.
+ harbour/contrib/Makefile
+ harbour/contrib/iodmem/Makefile
+ harbour/contrib/iodmem/iodmem.hbc
+ added make files
* harbour/contrib/iodmem/iodmem.c
! updated to be compatible with the latest SVN (rename method implemented)
* some warnings are fixed
+ harbour/contrib/iodmem
+ harbour/contrib/iodmem/iodmem.c
+ Implemented Memory file system. Public functions hb_memfs*() are
availible, if HB_MEMFS_PUBLIC_API is defined.
+ Implemeted I/O driver for memory file system
; HB_IODMEM request can be used to force linking of I/O driver and
memory FS into executable.
"mem:" prefix should be used to indicate a MemFS file, ex.:
REQUEST HB_IODMEM
PROC main()
LOCAL nI
FIELD F1
DBCREATE("mem:test", {{"F1", "N", 9, 0}},, .T., "memarea")
FOR nI := 1 TO 1000
DBAPPEND(); F1 := HB_RANDOM() * 1000000
NEXT
INDEX ON F1 TAG f1
DBEVAL({|| QOUT(F1)})
DBCLOSEAREA()
DBDROP("mem:test") // Free memory resource
RETURN
; TODO: locking is not supported yet (but it is not very usefull
if MemFS is used to store of a temporary database opened in
exclusive mode).
* utils/hbmk2/hbmk2.prg
+ Added support for -strip option in -hblib mode.
! Fixed -strip in -hbdyn mode for darwin and sunos targets which
use individual strip command.
* harbour-win-spec
* harbour-wce-spec
* Reverted change in 2009-09-21 14:03.
; See related pending question on dev list.
* config/sunos/global.mk
! Fixed to not use -s option for stripping. This doesn't seem to
be supported on sunos platform, at least according to code found
in hbmk2.
* utils/hbmk2/hbmk2.prg
+ Added support for -strip in -hbdyn mode.
+ Added -strip support for sunos/gcc targets.
! Fixed to use strip command instead of -s option with sunos/sunpro
targets.
* utils/hbmk2/hbmk2.prg
* config/bin.mk
+ Added hbmainstd lib for os/2 targets in shared mode.
Maurilio, please restest after this change.
; Needless to say I couldn't test these, so I'd appreciate if sunos
users could verify it (except -strip in -hbdyn mode).
* harbour-win-spec
* harbour-wce-spec
* harbour.spec
% Using HB_BUILD_STRIP instead of stripping locally.
* harbour.spec
% Using HB_BUILD_SHARED instead of rebuilding tools locally.
* Changed 'make -i' to 'make' to sync with other spec files.
* config/global.mk
! Fixed to recent changes to sysloc detection.
* config/linux/gcc.mk
+ Added HB_BUILD_STRIP for linux/gcc.
* config/bin.mk
! Fixed to not try to build a shared binary for binaries not
dependent on HVM. It's done in a little tricky way, maybe
we should introduce a new variable to signal Harbour
executables vs plain C ones.
This should fix link errors in harbour reported by users.
* contrib/hbqt/Makefile
* contrib/hbqt/hbqts/Makefile
* contrib/gtqtc/Makefile
* contrib/gtqtc/gtqtcs/Makefile
! Fixed QT detection on darwin after 2009-09-18 12:19 change
in detfun.mk.
* utils/hbmk2/hbmk2.prg
+ Comment added (from .mk).
* config/darwin/gcc.mk
* config/darwin/icc.mk
* config/darwin/clang.mk
* config/darwin/global.mk
* config/rules.mk
+ Implemented HB_BUILD_STRIP for darwin.
(on darwin strip has to be called directly)
* ChangeLog
! Added missing lines from prev entry:
* bin/postinst.sh
+ Added HB_CCPATH to strip cmd. Suggest by Przemek.
! Minor fix to find cmd by Tamas Tevesz.
* harbour-win-spec
* harbour-wce-spec
* INSTALL
* bin/postinst.sh
* Makefile
* source/pp/Makefile
* source/Makefile
* config/global.mk
* HB_BUILD_PART -> HB_BUILD_PARTS (simple rename)
+ HB_BUILD_STRIP added. It's dummy yet. Support will have to
be added on the compiler level and removed from postinst phase.
* harbour/harbour-win-spec
* harbour/harbour-wce-spec
* harbour/bin/hb-func.sh
* harbour/config/global.mk
* updated to work with modified base make internals and envvars
* do not overload defined by user HB_TOOLS_PREF
! fixed c&p typo in DJGPP cross build HB_TOOLS_PREF
Warning: it still needs export HB_BUILD_SHARED=no before creating
RPMs but it should be fixed in base make together with native builds.
TODO: we should agree some conditions for alternative system wide
cross build installation, like .cfg file name and localization.
* utils/hbmk2/hbmk2.prg
; Fixes based on Przemek's extensive tests/suggestions on different *nix systems.
! -fixshared option now only effective for gcc compilers. For the rest
it behaves as -fullshared.
! Added x11 and curses/slang libpath for bsd targets in shared mode.
hbmk2 solution is rough, but didn't see a reason to make it more
complicated. I hope it fixes the problem.
+ Enabled -fullstatic mode for sunpro compilers.
* utils/hbmk2/hbmk2.prg
! Fixed to add /usr/X11R6/lib64 dir to libpath list on linux
targets only. (sync with similar guard in sunpro compiler support)
; TOFIX: This leaves the GPF in sunpro/linux on the pending list.
; TOFIX: And here comes to mind that mingw64 also GPFs in shared mode.
* utils/hbmk2/hbmk2.prg
* config/global.mk
+ Added beos system location detection.
+ Added system location detection based on [LD_]LIBRARY_PATH.
; Please review and even tweak code if needed. I didn't test these changes.
* utils/hbmk2/hbmk2.prg
% system location detection code disabled for non-*nix hbmk2 builds.
It's of no use there, as far as I can overview all scenrios.
* config/global.mk
* Restored default lib dir to simply lib on *nixes.
% Minor opt to system location detection.
! Fixed to only use 'harbour' lib/inc postfixes on beos
when installed on system location. Thanks Przemek for the patch.