302 lines
12 KiB
Plaintext
302 lines
12 KiB
Plaintext
/*
|
|
* $Id$
|
|
*/
|
|
|
|
/* Use this format for the entry headers:
|
|
YYYY-MM-DD HH:MM UTC[-|+]hhmm Your Full Name <your_email@address>
|
|
For example:
|
|
2002-12-01 13:30 UTC+0100 Foo Bar <foo.bar@foobar.org>
|
|
*/
|
|
|
|
I'll add Class(y) compatible functions used in class(y) header files
|
|
so it will be possible to use original class(y) .ch files in Harbour
|
|
though it will not be the most efficient because we have @func() operator
|
|
which gives better performance then using codeblocks. Anyhow classy
|
|
create separate meta class for each class with CLASS members and
|
|
<clasName>() function always return such meta class object so for full
|
|
Class(y) compatibility we need to generate differ .prg code.
|
|
But all such modifications now can be done on preprocessor and
|
|
.prg level and they will not need .c code modification.
|
|
We should make them to give user interface for our new OOP features.
|
|
|
|
Now I'm waiting for reports about any problems with current classy
|
|
code.
|
|
|
|
2006-09-11 20:30 UTC+0300 Alexander Kresin <alex@belacy.belgorod.su>
|
|
* source/vm/itemapi.c
|
|
! Bug fixed, which was introduced while last commit
|
|
|
|
2006-09-11 16:40 UTC+0300 Alexander Kresin <alex@belacy.belgorod.su>
|
|
* include/hbapicdp.h
|
|
* Changed declaration of hb_cdpcmp() function
|
|
* source/rtl/cdpapi.c
|
|
* hb_cdpcmp() has been changed. It accepts now additional parameters:
|
|
hb_cdpcmp( char* szFirst, ULONG ulLenFirst, char* szSecond, ULONG ulLenSecond, PHB_CODEPAGE cdpage, BOOL bExact ),
|
|
also some bugs fixed.
|
|
* source/vm/itemapi.c
|
|
* source/rdd/dbfntx/dbfntx1.c
|
|
* Calls of hb_cdcmp() has been changed.
|
|
|
|
2006-09-10 14:28 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
|
|
* harbour/source/vm/classes.c
|
|
* cleaned BCC warning
|
|
|
|
2006-09-10 14:02 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
|
|
* harbour/ChangeLog
|
|
! added missing changelog entry about __MVPUT() fix
|
|
|
|
* harbour/source/vm/itemapi.c
|
|
* removed redundant pItem->type = HB_IT_NIL (thanks for Manu Exposito)
|
|
|
|
2006-09-10 14:02 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
|
|
* harbour/ChangeLog
|
|
! added missing changelog entry about __MVPUT() fix
|
|
|
|
* harbour/source/vm/itemapi.c
|
|
* removed redundant pItem->type = HB_IT_NIL (thanks for Manu Exposito)
|
|
|
|
2006-09-10 13:05 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
|
|
* harbour/include/hbapi.h
|
|
* harbour/source/vm/hvm.c
|
|
* harbour/source/vm/codebloc.c
|
|
* harbour/source/vm/arrays.c
|
|
* moved static base offset from hb_struBlock structure
|
|
to HB_CODEBLOCK structure
|
|
+ added hclass member to hb_struBlock - it will be used in
|
|
the future for checking codeblock scope in classy so we will
|
|
real scope checking also for messages sent from codeblocks.
|
|
- removed supercast and superoffset members from hb_struArray
|
|
structure.
|
|
|
|
* harbour/include/hbclass.ch
|
|
* added class(y) like
|
|
@:<MessageName>([<MsgParams,...>])
|
|
send operator. It's not exactly the same as in class(y) where
|
|
this operator is hardcoded to executing function directly,
|
|
needs method name instead of message name and is linked statically.
|
|
In Harbour this operator uses message name so can be used also for
|
|
instance variables and make dynamic casting to the class from which
|
|
current method is inherited. In short words sending messages to @:
|
|
instead of :: causes that they work like non-virtual messages in
|
|
C++ mode.
|
|
If you do not use the same method body in different classes
|
|
then you can also use explicitly self casting:
|
|
::<myclass>:<msgname>[(...)]
|
|
and it will be a little bit faster
|
|
|
|
* harbour/include/hboo.ch
|
|
+ added: HB_OO_MSG_ASSIGN, HB_OO_MSG_ACCESS,
|
|
HB_OO_MSG_CLSASSIGN, HB_OO_MSG_CLSACCESS
|
|
They should be used insted of HB_OO_MSG_DATA and HB_OO_MSG_CLSDATA
|
|
This resolves problems with name conflicts when we were detecting
|
|
type of message (ACCESS/ASSIGN) by checking the first character
|
|
in message name. F.e. now it's possible to create exported instance
|
|
variable called __WithObject and it will be used in all WITH OBJECT
|
|
statement instead of the base object value. It's simple and effective
|
|
WITH OBJECT overloading.
|
|
I kept backward compatibility for HB_OO_MSG_DATA and HB_OO_MSG_CLSDATA
|
|
but I strongly suggest to update code to use new constants.
|
|
+ added HB_OO_MSG_REALCLASS
|
|
|
|
* harbour/source/rtl/objfunc.prg
|
|
* harbour/source/rtl/tobject.prg
|
|
* harbour/source/rtl/tclass.prg
|
|
* use HB_OO_MSG_[CLS]{ASSIGN,ACCESS} instead of HB_OO_MSG_[CLS]DATA
|
|
|
|
* harbour/source/rtl/tclass.prg
|
|
+ added REALCLASS message to creted classes - it's used for @: operator
|
|
|
|
* harbour/source/vm/classes.c
|
|
* updated for above modifications
|
|
* calculate instance area offset in supercasting dynamically - it
|
|
will allow to eliminate multiple instance area allocating when
|
|
in the inheritance tree the same class exists more then once and
|
|
also quite easy add support for non-virtual messages.
|
|
! fixed GPF in __CLSINSTSUPER() class function generate HVM exception
|
|
% do not inherit unaccessible inline blocks
|
|
* some other minor optimization, fixes and code cleanups
|
|
|
|
* harbour/source/rdd/usrrdd/usrrdd.c
|
|
! fixed HB_TRACE message
|
|
|
|
* harbour/source/rtl/errorapi.c
|
|
! generate internal error if ErrorNew() function does not return an object
|
|
|
|
2006-09-07 16:05 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
|
|
* harbour/source/vm/memvars.c
|
|
! fixed memvar creation in __MVPUT()
|
|
|
|
2006-09-07 01:55 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
|
|
* harbour/source/rdd/dbcmd.c
|
|
! always initialize all members in RDD structures to avoid GPF when
|
|
some RDD will try to access uninitialized data
|
|
|
|
* harbour/source/rdd/usrrdd/usrrdd.c
|
|
! added some additional validation in RDD structures <-> item conversions
|
|
|
|
2006-09-06 14:45 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
|
|
* harbour/source/vm/itemapi.c
|
|
* modified hb_itemClear() to be reentrant safe - the new version
|
|
can be also better optimized by C compiler so should be also faster
|
|
|
|
* harbour/source/rdd/dbcmd.c
|
|
! initialize lpdbOrdCondInfo in DBORDERINFO structure before
|
|
passing to ORDCREATE()
|
|
|
|
* harbour/source/vm/fm.c
|
|
! fixed typo in memset() when HB_PARANOID_MEM_CHECK enabled
|
|
|
|
* harbour/source/vm/hvm.c
|
|
! fixed item type used for iterator
|
|
|
|
2006-09-06 12:02 UTC+0300 Chen Kedem <niki@actcom.co.il>
|
|
* utils/hbrun/hbrun.prg
|
|
* Change Main() into _APPMAIN() to avoid collision with user function
|
|
Default value is .T. (CA-Cl*pper compatible). If set to .F.,
|
|
Harbour runtime/RDD code will never attempt to add a
|
|
default extension to the filename arguments. Commands/functions
|
|
2006-09-05 16:10 UTC+0300 Alexander Kresin <alex@belacy.belgorod.su>
|
|
* source/rtl/cdpapi.c
|
|
! Bug fixed in hb_cdpcmp(), which caused strange comparison results as
|
|
( s1 > s2 ) != ( s2 > s1 ).
|
|
|
|
2006-09-05 15:51 UTC+0100 Viktor Szakats (viktor.szakats syenar.hu)
|
|
* harbour/include/hbset.h
|
|
* harbour/include/set.ch
|
|
* harbour/source/pp/pptable.c
|
|
* harbour/source/rtl/set.c
|
|
+ Added Set( _SET_DEFEXTENSIONS, <logical: .T./.F.> )
|
|
Default value is .T. (CA-Cl*pper compatible). If set to .F.,
|
|
Harbour runtime/RDD code will never attempt to add a
|
|
default extension to the filename arguments. Commands/functions
|
|
where this setting makes a difference are:
|
|
- SET ALTERNATE TO / Set( _SET_ALTFILE_, ... )
|
|
- From now on, it possible to create/load files using the
|
|
above functions/commands which have no extension. This
|
|
- SAVE TO / __mvSave()
|
|
For example on Win32, it's possible to directly print
|
|
- LABEL FORM
|
|
- REPORT FORM
|
|
- COPY TO ... DELIMITED
|
|
- COPY TO ... SDF
|
|
- LIST / __dbList()
|
|
- USE / dbUseArea()
|
|
- dbCreate()
|
|
- SET INDEX TO / ordListAdd() (not yet implemented)
|
|
- __HRBLOAD(), __HRBRUN()
|
|
; Notes:
|
|
- From now on, it possible to create/load files using the
|
|
above functions/commands which have no extension. This
|
|
might be desirable in a few platform and/or situations.
|
|
For example on Win32, it's possible to directly print
|
|
to a shared Windows printer queue, using these commands:
|
|
lOldValue := Set( _SET_DEFEXTENSIONS, .F. )
|
|
SET PRINTER TO \\myserver\myprinter
|
|
Set( _SET_DEFEXTENSIONS, lOldValue )
|
|
Or, it is possible to open a dbf file which has no extension:
|
|
dbUseArea(.T., NIL, "dbf_filename_with_no_extension", "w_DATA", .F., .F.)
|
|
- Compiler is (of course) not affected by this setting.
|
|
- Preprocessor (PP) lib flavour is not affected by this setting.
|
|
- Support is not full in the RDD code yet.
|
|
|
|
* harbour/source/rdd/dbf1.c
|
|
* harbour/source/rdd/dblist.prg
|
|
* harbour/source/rdd/delim1.c
|
|
* harbour/source/rdd/sdf1.c
|
|
* harbour/source/rtl/tlabel.prg
|
|
* harbour/source/rtl/treport.prg
|
|
* harbour/source/rtl/set.c
|
|
* harbour/source/vm/memvars.c
|
|
* harbour/source/vm/runner.c
|
|
+ Honoring _SET_DEFEXTENSIONS setting all over the code.
|
|
|
|
2006-09-05 12:44 UTC+0100 Viktor Szakats (viktor.szakats syenar.hu)
|
|
* harbour/source/debug/debugger.prg
|
|
! Fixed and made multiplatform the filename extension handling parts.
|
|
|
|
* harbour/source/vm/memvars.c
|
|
! Comment minor fixes.
|
|
|
|
* harbour/harbour.spec
|
|
* harbour/make_xmingw.sh
|
|
* harbour/make_bsd.sh
|
|
* harbour/make_drw.sh
|
|
! xharbour -> harbour
|
|
|
|
2006-09-04 19:45 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
|
|
* harbour/TODO
|
|
+ added simpler example for memory leak in macro compiler:
|
|
? type("user input")
|
|
|
|
! Made the logic multiplatform where it's decided whether to
|
|
* replaced TABs with SPACEs
|
|
C:\PATH.A\MYFILE didn't get the default extension while
|
|
* harbour/source/vm/classes.c
|
|
* added some TRACE() messages
|
|
+ added support for executing functions with <symItem>:EXEC()
|
|
registered dynamically after creating <symItem>
|
|
|
|
* harbour/source/vm/hvm.c
|
|
* minor modification
|
|
|
|
2006-09-04 18:10 UTC+0100 Viktor Szakats (viktor.szakats syenar.hu)
|
|
* harbour/source/rtl/tlabel.prg
|
|
* harbour/source/rtl/treport.prg
|
|
! Made the logic multiplatform where it's decided whether to
|
|
add a default extension to the loaded filename.
|
|
C:\PATH.A\MYFILE didn't get the default extension while
|
|
C:\PATH\MYFILE did.
|
|
|
|
2006-09-04 11:40 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
|
|
* harbour/include/hbexprc.c
|
|
! fixed bug in wrong integer negating, f.e.:
|
|
proc main(); local i:=0; i-=-32768; ? i; return
|
|
! fixed PCODE generated for +=, -=, /=, *= expressions when right side
|
|
of expression is undefined variable - it's possible that it will be
|
|
field and we will have RT error. It fixes tt4.prg example form TODO
|
|
file.
|
|
|
|
* harbour/TODO
|
|
- removed tt4.prg example from TOFIX
|
|
|
|
* harbour/source/vm/classes.c
|
|
! fixed supercast message validation
|
|
|
|
* harbour/source/vm/hvm.c
|
|
! fixed very bad typo in hb_vmMinus() which can cause wrong
|
|
results when on 64-bit integer overflow
|
|
|
|
2006-09-04 09:25 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
|
|
* harbour/ChangeLog
|
|
+ harbour/ChangeLog.016
|
|
! added ChangeLog.016 and updated number - mistake in my previous commit
|
|
|
|
* harbour/source/vm/classes.c
|
|
* stronger parameters validation and fixed some possible problems
|
|
in hb_objGetMethod()
|
|
+ added support for assigning enumerator value by:
|
|
<enum>:__enumValue(<newVal>)
|
|
and enumerator index by:
|
|
<enum>:__enumIndex(<newIndex>)
|
|
It's a work in progress - please do not create any code which may
|
|
need such functionality yet
|
|
|
|
* harbour/source/vm/debug.c
|
|
* harbour/source/vm/hvm.c
|
|
* minor code cleanup
|
|
|
|
2006-09-03 18:55 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
|
|
* harbour/include/hbapicls.h
|
|
* harbour/source/vm/classes.c
|
|
* harbour/source/vm/hvm.c
|
|
* harbour/tests/overload.prg
|
|
+ added support for overloading [] in assignment operation
|
|
|
|
2006-09-03 16:30 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
|
|
* harbour/ChangeLog
|
|
+ harbour/ChangeLog.016
|
|
* new ChangeLog file created
|
|
* harbour/include/hbver.h
|
|
* updated version number to 0.47.0
|
|
* tagged CVS as build47
|