-
Notifications
You must be signed in to change notification settings - Fork 97
/
oldnews.txt
2335 lines (2191 loc) · 103 KB
/
oldnews.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
/* This work is licensed under the Creative Commons Attribution-ShareAlike
4.0 International License. To view a copy of this license, visit
https://creativecommons.org/licenses/by-sa/4.0/ or send a letter to
Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305,
USA. A summary of the license and the full legal text is included
in file: LICENSE.txt. If you wish to distribute some or all of this
work under different terms, please contact respective author(s).
The license applies to all entries on or after Version 1.1.0. */
Version 3.0.0 (2011-07-17)
Note
=============================
[TODO]
Please refer to the ChangeLog in the meantime, particularly
to entries marked with the keyword "INCOMPATIBILITY".
Known build issues
=============================
- None
Known open issues
=============================
- HB_TCHAR_* macro usage in Harbour sources
- AChoice() minor Clipper compatibility bugs
- MENUSYS minor Clipper incompatibility
- Target specific C code generated for some numeric
operations in -gc3 mode (preventing cross-compilation)
- HBQT class creation not MT safe for multiple reasons (e.g. strtok())
- HBQT valgrind test shows double free at exit
- GTWVW bugs (scrolling bug still there)
Version 2.0.0 (2009-12-22)
Note
=============================
Too many to list, it's yet to be collected and sorted in
digestible form.
[ Incomplete, unordered.
This section only contains update between
2008-12-19 19:46 UTC+0100 and 2009-03-11 08:51 UTC+0100.
2008-08/09 - 2008-12-19 and
2009-03-11 - 2009-12-22 are missing. ]
General
=============================
- Build configuration changes:
- PRG_USR -> HB_USER_PRGFLAGS
- C_USR -> HB_USER_CFLAGS
- L_USR -> HB_USER_LDFLAGS
- A_USR -> HB_USER_AFLAGS
- MK_USR -> HB_USER_MAKEFLAGS
- HB_ARCHITECTURE -> HB_PLATFORM
- HB_PLATFORM=w32 -> HB_PLATFORM=win
- CCPATH -> HB_CCPREFIX
- CCPREFIX -> HB_CCPATH
- GNU Make system revised to give optimal support -j<n>
multi-threaded parallel builds, which can dramatically
increase build speed in multi-core/multi-CPU systems.
- HB_WINCE -> HB_OS_WIN_CE
- HB_OS_WIN_32_USED -> HB_OS_WIN_USED
- HB_OS_WIN_32 -> HB_OS_WIN
- Cleaned references of '32' in context of Windows and
Windows API.
- New macro names introduced:
- SUCCESS -> HB_SUCCESS
- FAILURE -> HB_FAILURE
- ERRCODE -> HB_ERRCODE
(old ones still work for compatibility, but please
switch your code to use the new ones)
- Fixed dynamic library creation on Solaris OSes.
- hbrun will now open .dbf files when passed on the command-line.
- Added web-server written in Harbour: uHTTPD
- POCC WinCE builds are now supported.
- Open Watcom 1.8 (RC3) compiler is now supported.
- Removed HB_LEGACY_LEVEL support.
- #define HB_FM_WIN32_ALLOC renamed to HB_FM_WIN_ALLOC.
- Protected incompatible changes with HB_LEGACY_LEVEL2.
(HB_SUCCESS, HB_FAILURE, HB_ERRCODE, HB_WINCE, HB_OS_WIN_32*,
__RDDGETTEMPALIAS(), __HRB*(), some class functions,
Harbour -go option)
These features are still available, and will be removed
in next major version (Harbour 1.2). To test your code for
compatibility, you can turn it off manually by #defining
HB_LEGACY_OFF. (HB_USER_CFLAGS=-DHB_LEGACY_OFF)
- New Harbour homepage, thanks to Vailton Renato.
- GNU Make system now supports parallel builds.
(needs GNU Make newer than 3.79.1)
- GNU Make system allows to install in Harbour source tree on all platforms.
- GNU Make system for bcc and msvc options synced with non-GNU build methods.
- GNU Make system no longer needs -r parameter.
- GNU Make system will now generate hbfm and hbfmmt lib for all compilers.
Added few more similar unification cleanups.
- Implemented .dll generation for msvc, msvc64, bcc and watcom when using
GNU Make system.
- Added support for Open Watcom 1.8 (it's recommended over 1.7).
- Added support for import lib generation when using GNU Make with msvc and vcc.
Enable it with 'set HB_DIR_IMPLIB=yes' plus set HB_DIR_* envvars.
- -mtune=pentiumpro optimization is now default for mingw/cygwin.
- Cleaned new mingw 4.3.3 warnings.
- Certain features will require Windows NT or upper when building
Harbour on Windows, so this is now a requirement for a proper build.
- hb-mkslib.sh renamed to hb-mkdyn.sh. Old name stil works, but it's
now deprecated.
- x86_64 msvc compiler got a distinct HB_COMPILER value: msvc64.
- msvcce compiler made compatible with older MSVC/WinCE versions.
- Added support for Intel(R) C++ compiler (icc) on Linux and Windows.
- Added new README.md document giving a quick describing of the build
process on all supported platforms and compilers.
- Several steps to make the build process simpler and requiring the
less amount of preparation.
- Fixed missing watcom support for HB_USER_LDFLAGS.
- Added support for MSVC IA64 mode. (untested)
- Added support for HB_CONTRIBLIBS=no to disable building of all contribs.
- Added ability to generate Windows installer and .zip distribution file.
- Fully transitioned to GNU Make system for all compilers.
Now msvc, msvcce and bcc builds need GNU Make, see README.md for more
information. "non-GNU" make systems got deleted from the source tree.
- Cygwin renamed from gcc to cygwin. (NOTE: Cygwin doesn't work since
some versions, and support may be removed in the future.)
- Fixed #pragma -k? options to be case-insensitive.
- Explicitly bind system libraries with Harbour shared library.
RPM/DEB packages should automatically detect these dependencies.
- Warning cleanup (minors) for Intel compiler.
- Pelles C workarounds for compiler bugs.
- Added support for extended definition files in Harbour compiler
switches: -u+<file>
- Fixed memory leak when repeated -u[<file>] options are used.
Core
=============================
- Added MT (Multi thread) support.
- Added complete i18n support with API and tool to compile .po
files (hbi18n).
- Added hb_fsCreateTempEx(), hb_fileCreateTempEx() C level APIs.
- Fixed to not use C RTL CP dependent character functions
in Harbour code. (IsLower(), toupper(), etc)
Added new macros instead.
- __natIsNegative() and __natIsAffirm() are now using
CP sensitive case conversion.
- Added hb_charIsUpper()/hb_charIsLower() APIs.
- CurDrive() and DiskName() fixed for systems that don't support
drive letters.
- Xbase++ compatible TBrowse()/TBColumn()/Get() related methods
moved to derived classes xpp_TBrowse()/xpp_TBColumn()/xpp_Get().
- Fixed potential GPF in hb_RAScan().
- Debugger improvements and fixes.
- Most Harbour level code prepared for MT.
- Fixed few potential GPFs in RDDNTX, RDDCDX code.
- Added own hb_snprintf() implementation.
- Fixed hb_Version( HB_VERSION_BUILD_DATE )
- Added hbuddall library holding all core supplied user RDDs.
- Fixed to successfully build all user RDD examples.
- Fixed dbCreate() behaviour in arrayrdd user RDD.
- Added new LOGRDD user RDD.
- Added DBFNSX RDD.
- Fixed FWrite() potential GPF and security hole.
- Added __FILE__ support for .prg code.
- Added:
hb_MilliSeconds()
hb_FTempCreateEx( @<cName>, <cDir>, <cPrefix>, <cExt> ) -> <nHandle>
hb_StrDecodEscape( <cEscSeqStr> ) -> <cStr>
hb_StrCDecode( <cStr> [, @<lCont> ] ) -> <cResult> | NIL
hb_StrXor( <cStr1>, <cStr2> | <nNum> ) -> <cResult>
hb_ProgName() -> <cProgramNameWithPath>
hb_DispOutAtBox() similar to hb_DispOutAt() but for drawing chars.
hb_FGetAttr( <cFileName>, @<nAttr> ) -> <lSuccess>
hb_FSetAttr( <cFileName>, <nAttr> ) -> <lSuccess>
hb_FSetDateTime( <cFileName>, [<dDate>], [<cTime HH:MM:SS>], [<nMilliSec>] ) -> <lSuccess>
hb_FGetDateTime()
hb_WildMatchI() like hb_WildMatch() but case-insentitive.
hb_cdpSelect() same as hb_SetCodepage() (please upgrade to new function name).
hb_cdpUniID( <cHarbourCP> ) -> <cCPName>
hb_gtInfo( HB_GTI_CARGO[, <xValue ] ) -> <xPrevValue>
hb_DirBase() -> <cBaseDirectory>
hb_dbCreateTemp()/DBCREATETEMP() to create temporary tables.
HB_MMIDDLEDOWN/MMiddleDown() new Harbour function.
dbInfo( DBI_ISTEMPORARY )
hb_Version( HB_VERSION_BUILD_PLAT )
hb_Version( HB_VERSION_BUILD_COMP )
hb_StrFormat() C-like string formatting function
(also as C level API named hb_StrFormat())
hb_SetEnv( <cEnvName>, [<cNewVal>] [, <lOsCP>] ) -> <lOK>
(also as C level API named hb_SetEnv())
- Fixed UNSELECTED color updating in SetColor().
- GTWVT, GTWIN HB_GTI_CODEPAGE support.
- GTWVT now supports drawing chars even if the selected codepage
doesn't support them.
- GTWVT HB_GTI_BOXCP support.
- GTWVT disabled K_MM*DOWN non-Clipper (and other GT) compatible mouse
events.
- Fixed TBrowse(), TPOPUP() to display drawing chars properly.
- Fixed DiskSpace() and hb_DiskSpace() to return proper values
on Darwin.
- Fixed Directory() when called with "V" (label) parameter (on Windows).
- New HB_SIZEOFARRAY() macro.
- Added C APIs:
hb_charIsDigit(), hb_charIsAlpha(), hb_charIsLower(), hb_charIsUpper()
- Added support to specify OS codepage:
Set( _SET_OSCODEPAGE[, <cCPID> ] ) -> <cOldCPID>
C level: hb_setGetOSCODEPAGE()
Conversion is done automatically in existing functions.
- Added hb_osDecode(), hb_osEncode() C APIs.
- hb_GetEnv() extended with 3rd parameter to control OS codepage
conversion (on by default).
- Added CPU dump support for AMD64/x86_64.
- Added module listing on GPF for x86 and x86_64.
- GTXWC potential GPF fixed.
- Added process handling:
hb_processOpen(), hb_processValue(), hb_processClose()
- Added HB_GTI_BOXCP to control box drawing CP for GTs.
- Using Heap instead of Local memory when HB_FM_WIN32_ALLOC is set.
- Added __objHasMsgAssigned( object, "msgName" )
- File find API fixes for OS/2.
- DBOI_BAGNAME made compatible for RDDCDX, RDDNSX.
- Added Intel C compiler and Wine detection.
- Codepage fixes and cleanups (BGMIK).
- Fixed cursor handling in TEDITOR/MemoEdit().
- Now GTXWC generates HB_K_RESIZE on resize.
- GTWIN fixed HB_GTI_KBDSHIFTS handling.
- GTWVT added 'layered window' support (always enabled, except
when in Terminal mode).
- GTWVT fixed not to generate RTE if class is already been registered.
- GTXWC added support for HB_GTI_PALETTE, HB_GTI_FONTSEL,
HB_GTI_CLOSABLE, HB_GTI_RESIZABLE.
- GTTRM added support for HB_GTI_PALETTE.
- New compiler expression optimizations, and some fixes for rare cases.
- Some compiler optimizations are now enabled using new -ko switch.
- Added array preallocation on AAdd().
- Optimization to string reallocation.
- Added detection of unused variable assigments. Code cleaned
in all Harbour for such warnings.
- Fixed possible problem with _SET_PRINTFILE, _SET_DEFAULT, _SET_EXTRAFILE.
- __HRB*() functions marked as compatibility, please update your
code to use HB_HRB*().
- __RDDGETTEMPALIAS() marked as compatibility, please update your
code to use hb_rddGetTempAlias().
- Added hb_spFileExists() a more efficient version of hb_spFile().
Modified Harbour code to use the new API.
- HSX index MT support.
- Fixed potentially uninitialized internal HB_GT_INFO structure.
- Using more efficient hb_fsFileExists() instead of hb_fsFile() in core.
- Added char * hb_cmdargARGVN( int argc ).
- HB_PROCNAME() support for symbol evaluation.
- HB_SYMBOL_UNUSED() moved to std.ch. NOTE: This macro is no longer
present in common.ch so if you're overriding std.ch, make sure to add
this macro to your header file.
- Bin2W(), Bin2I(), Bin2L(), I2Bin(), L2Bin(), Bin2U(), W2Bin(), U2Bin()
functions rewritten in a more efficient way. Previous pure GPL
license changed to standard Harbour license (including exception).
- Fixed Ukrainian localization files.
- Using local implementation of hb_snprintf() for all C level code.
- Fixed localized date format for RU, UA, IT, BE, BG, NL, SL.
- Added __FILE__ and __LINE__ predefined dynamic PP macros.
- Added Windows 7 and Server 2008 R2 version detection.
- Replaced old hbmk.bat, hbmk bash script and Harbour Make tool with
portable make tool written in Harbour: hbmk. This tool can create
a Harbour executable on any platforms using minimal effort. It auto-detects
OS and compiler environment. Support script and parameter files,
can act as a linker, C compiler, Harbour compiler, static and dynamic
library creator, resource compiler (on Windows). Core features are
completed on all major platforms. Some non-mainstream features and
platforms may be completed later. All existing features of hbmk
bash script (for gcc) and of hbmk.bat are supported in this new tool,
and much more. Replaced Win/DOS specific .bat files with portable
.hbp and .hbm files.
- Added all missing non-multibyte codepages.
- ListBox() doesn't modify _SET_EXACT settings anymore in :Find*() methods.
- HVM pcode evaluation speed improvement.
- Fixed _SET_EXACT handling in core.
- hb_gtInfo( HB_GTI_PALLETE ) now uses zero based color indexes in
core (GTWVT, GTXWC). This creates a small incompatibility with older
version. Also notice that GTWVG still uses 1-based indexes for
compatibility.
- Fixed very old bug showing wrong default status for -n option on
Harbour help screen.
- Added support for reading FoxPro .mem files - Clipper compatibility.
- Fixed very old bug which disabled writing to .mem files strings
longer then 32 KiB.
- hbrun now accepts .dbf file as paramater, which it will open after startup.
- hbrun now accepts -v option which makes it display its own version after
startup.
- Borland C++ compiler is now called 'bcc' instead of 'bcc32'. Please update
your system.
- Removed almost all DOS/WIN specific build/make batch files.
- Fixed __M[V]CLEAR()/ __M[V]RESTORE() to be exactly Clipper compatible
and do not release PUBLIC GetList value.
- bcc compiler in GNU Make now supports older Windows NT with limited
command-line length.
- Removed support for following compilers:
dos/bcc16, dos/rsx32, win/dmc, win/rsxnt, os2/icc, win/icc (IBM).
- Fixed static variables indexes in the generated PCODE when static
variables are declared inside extended codeblocks - in some cases
wrong PCODE was generated.
- Fixed initialization PCODE for thread static variables declared
inside extended codeblocks.
- Fixed modulename generated for debugger to always contain function name
part for extended codeblock declared as file wide static variables.
In such case "(_INITSTATICS)" is used as function name.
Without it debugger does not register entering such codeblocks and
GPFs.
- Added support for automatic adding 1st function with the same name
as compiled .prg file if some code statements are used before 1st
function/procedure declared explicitly in .prg file. Such mode can
be enabled by -n2 new Harbour compiler switch. This switch is used
by default by new hbmk tool.
- speedtst updated to work with CA-Cl*pper.
- Added protection against pushing new private variable on HVM stack
if such private variable is already created by the same function.
Clipper also has such protection.
- Respect HB_START_PROCEDURE in all builds if such public
function/procedure exists.
- Disabled HB_MSC_STARTUP in C++ MSVC builds.
- Forbid some usage of __clsModMsg() and unblock some others
It should make some xHarbour users using OVERRIDE METHOD happy
but please remember it's still undocumented and unsupported
functionality - use for your own risk.
- Fixed typo in hb_inetDataReady() - the second parameter (timeout)
was ignored.
- Changed the NOT operator precedence - it should be bigger then
logical .and./.or. operators in #if expressions.
- Fixed hb_regexMatch(). Now the HAS/LIKE mode can be controlled
by 5th logical parameter (was 3rd), so 3rd parameter is solely
controlling case-sensitivity as indicated in the documentation.
Users are recommended to use hb_regexHas() and hb_regexLike()
functions as unambiguous alternatives, which work equally
well on all Harbour versions. hb_regexMatch() is now deprecated,
but kept for compatibility.
- AChoice() fixed to redisplay itself when exiting with <Esc> or
equivalent.
Contrib
=============================
- hbblat new Blat interface class for Windows
(Contributed by Francesco Saverio Giudice).
- hbmzip fixed GPF in hb_zipDeleteFile() when file has comment.
- hbmzip fixed handling attributes in hb_zipFileCreate().
- hbmzip fixed timestamps stored in .zip files.
- hbmzip added hb_zipStoreFileHandle(),
hb_unzipExtractCurrentFileToHandle() functions.
- hbwin win_regRead()/GetRegistry() got new parameter to supply
a default value when the entry isn't found.
- hbtip FTP handling fixed some accidental typos.
- hbtip new MIME types.
- hbtip fixes and optimization to HB_BASE64().
- rddads now auto-detects version 9.10.
- hbct XToC(), FToC() and CToF() fixed to be properly multi-platform.
- hbct unbuffered drawing speed improvement in windowing code.
- hbct DirName() fixed.
- hbct other fixes.
- hbct FileSeek(), FileAttr(), FileSize(), FileDate() now MT compatible.
- hbct added support for thread local current window pointer in CT Windows.
- hbwin made steps towards creating a unified Windows API wrapper layer.
- Added hbcrypt, hbssl and rddsql (with mysql, pgsql, fbsql plugins)
to contribs.
- hbct windowing extended with new low-level API, better shadow
handling.
- gtwvg lots of improvements.
- gtwvg Xbase++ compatible UI objects.
- hbw32 library renamed to hbwin.
- hbwin added win_AbortDoc(), win_RunDetached(), WIN_SHELLEXECUTE(),
win_LoadResource().
- dbu patch now adds SET DATE ANSI and SET CENTURY ON.
- hbwin win_MulDiv(), win_Rectangle(), win_SetBkMode() extended to
accept handles passed using alternate methods.
- hbwin function names changed as below:
- W32_REGPATHSPLIT() -> win_regPathSplit()
- W32_REGREAD() -> win_regRead()
- W32_REGWRITE() -> win_regWrite()
- WIN32_REGCREATEKEYEX() -> win_regCreateKeyEx()
- WIN32_REGOPENKEYEX() -> win_regOpenKeyEx()
- WIN32_REGQUERYVALUEEX() -> win_regQueryValueEx()
- WIN32_REGSETVALUEEX() -> win_regSetValueEx()
- WIN32_REGCLOSEKEY() -> win_regCloseKey()
- WIN32_ARC() -> win_Arc()
- WIN32_BITMAPSOK() -> win_BitmapsOK()
- WIN32_CREATEDC() -> win_CreateDC()
- WIN32_CREATEFONT() -> win_CreateFont()
- WIN32_DELETEDC() -> win_DeleteDC()
- WIN32_DRAWBITMAP() -> win_DrawBitmap()
- WIN32_ELLIPSE() -> win_Ellipse()
- WIN32_ENDDOC() -> win_EndDoc()
- WIN32_ENDPAGE() -> win_EndPage()
- WIN32_ENUMFONTS() -> win_EnumFonts()
- WIN32_FILLRECT() -> win_FillRect()
- WIN32_GETCHARSIZE() -> win_GetCharSize()
- WIN32_GETDEVICECAPS() -> win_GetDeviceCaps()
- WIN32_GETEXEFILENAME() -> WIN_GETEXEFILENAME()
- WIN32_GETPRINTERFONTNAME() -> win_GetPrinterFontName()
- WIN32_GETTEXTSIZE() -> win_GetTextSize()
- WIN32_LINETO() -> win_LineTo()
- WIN32_LOADBITMAPFILE() -> win_LoadBitmapFile()
- WIN32_MULDIV() -> win_MulDiv()
- WIN32_OS_ISWIN9X() -> WIN_OS_ISWIN9X()
- WIN32_RECTANGLE() -> win_Rectangle()
- WIN32_SETBKMODE() -> win_SetBkMode()
- WIN32_SETCOLOR() -> win_SetColor()
- WIN32_SETDOCUMENTPROPERTIES() -> win_SetDocumentProperties()
- WIN32_SETMAPMODE() -> win_SetMapMode()
- WIN32_SETPEN() -> win_SetPen()
- WIN32_STARTDOC() -> win_StartDoc()
- WIN32_STARTPAGE() -> win_StartPage()
- WIN32_TEXTOUT() -> win_TextOut()
- WIN32PRN class -> WIN_PRN class
- WIN32BMP class -> WIN_BMP class
- hbct GPF and wrong RTE messages fixed in:
CharAdd(), CharSub(), CharAnd(), CharOr(), CharXor()
- hbct string optimizations in thrown RTEs.
- hbziparc fixed <acFiles> behavior if the parameter is not passed.
- hbhpdf added HPDF_VERSION_TEXT() to replace former macro
with the same name.
- hbhpdf fixed HPDF_SetInfoDateAttr() function.
- Added experimental terminal server written in Harbour. Find it
in /examples.
- hbgt now properly checks for package version and includes
feature accordingly.
- hbwin added wapi_GetCommandLine(), win_GetCommandLineParam(),
wapi_GetLastError(), wapi_SetLastError(), wapi_SetErrorMode().
- hbwhat removed from contrib list and moved to examples instead.
- xhb OVERRIDE / EXTEND CLASS emulation in xhbcls.ch header.
(this feature is there to help xhb compatibility, but can break
inheritance scheme and internal class definitions in both
compilers)
- xhb added DBF2TXT() with critical fixes.
- xhb added hb_regexReplace().
- hbwin WINPORTWRITE() GPF when wrong parameter type is passed.
- Added Darwin/MacPorts support for following contribs:
gtalleg, hbmysql, hbpgsql, sddmy, sddpg, hbfimage.
- hbtpathy now builds on Darwin.
- xhb disabled dangerous bitop compatibility macros in hbcompat.ch.
Enable them with #define XHB_BITOP. Or even better to change code
to use HB_BIT*() functions natively.
Known build issues
=============================
- Windows 64-bit builds may generate a large amount of type
conversion warnings. This is currently normal and will be
addressed in a future version.
- Contrib hbfimage won't currently compile on Linux/Darwin
systems. This will be addressed in a future version.
- Contrib hbsqlit3 will not embed foreign sqlite3 library code
for Pelles C 4.5 and Open Watcom 1.7 due to fatal compile problems.
For these compilers you will have to supply sqlite3 library
yourself. For other compilers, some warnings are expected and
normal in this non-Harbour code.
- Using Pelles C 5.00.1 in 64-bit mode, HB_INET*() functions
won't work.
- Using Pelles C 6.00.6 in 64-bit mode, there will be
missing symbols at link time due to bugs in Pelles C.
- gtalleg contrib may not compile on all platforms/compilers.
- hbssl won't work with watcom on win platform due to OpenSSL
header compatibility problems.
Version 1.0.1 (2008-09-10)
General
=============================
- Digital Marc C build fixed.
- Debian, RPM packaging fixes.
- Several code quality enhancements, warning fixes.
- Doc quality fixes, formatting.
- Fixed so that build-time PRG_USR always overrides default
options in GNU Make.
- Added openSUSE package requirements to doc/linux1st.txt.
- Unnecessary compiler options and lib dependencies cleaned
from build processes.
- Fixed Darwin (OS X) builds broken due to a change shortly
before 1.0.0.
- Non-critical filename casing related cleanups.
- Non-ASCII chars stripped from several source files for
better portability.
- Added RDD regression test code.
- Fixed potential buffer overruns in PP, GTCRS, GTPCA,
GTSTD, hbfbird, hbwhat32.
- Eliminated remaining non-safe string manipulation calls:
strncpy(), strcpy() -> hb_strncpy()
strncat(), strcat() -> hb_strncat()
- Some contrib name collisions fixed in non-GNU builds.
- gtalleg GT moved to the contrib area to enable it for
non-GNU builds and non-*nix builds in general.
Use HB_INC_ALLEGRO or HB_DIR_ALLEGRO (for non-GNU make only)
to specify the location of the headers or the package
(respectively).
- Harbour compiler now defaults to -gc0 switch (was -gc2) to
generate the smallest possible .c output by default.
- Fixed to compile under Cygwin.
- -mno-cygwin option removed from MinGW builds. You may
need to readd this to C_USR if you use very old MinGW compilers,
like Cygnus MinGW32 2.95.
- Fixed WinCE harbour.dll generation in non-GNU builds.
- Fixed WinCE build warnings in non-GNU builds.
- Synced build options between BCC/MSVC GNU make and
non-GNU make.
- Default HB_VISUALC_VER envvar value changed uniformly
to 80 for both core and contrib and WinCE build in non-GNU make.
You may need change your environment if you relied on the default.
- Non-GNU MSVC WinCE builds are now integrated into mainstream
non-GNU MSVC make. make_vcce.bat was removed. Please read
instructions in make_vc.bat, how to initiate a WinCE build.
- Now Harbour is able to build and run properly in MSVC C mode
in AMD64 (64-bit) mode.
- Added experimental Pelles C WinCE GNU Make file. It doesn't
yet work properly.
- Post batch file called from core non-GNU make files was
renamed, please update your system if you're using them:
exit_err.bat -> hbmkpost.bat
- Added experimental MSVC WinCE GNU Make file.
- Added Darwin auto-detection to non-GNU .sh make files.
- Changed GNU Make name of MinGW WinCE compiler (HB_COMPILER)
from 'cemgw' to 'mingwce'. Please update your system, if
you've been using this directly (and not via make_*ce.sh scripts).
- Memory statistics module now turned off by default for optimal
performance. It can be turned on by setting HB_FM_STATISTICS
macro.
Core
=============================
- Added HB_LEGACY_LEVEL macro to control inclusion of
certain deprecated Harbour elements. This macro is
enabled by default, and will be disabled (and legacy
parts probably removed) in Harbour 1.1. You can disable it
now manually by #defining HB_LEGACY_LEVEL_OFF, in order to
check what elements needs to be changed, and if they were
properly and fully changed in your local code.
- HB_DBG_*() internal functions moved to the internal
function namespace __DBG*(). Some of these - potentially
used by 3rd party packages - are still accessible under
the old name, when HB_LEGACY_LEVEL is #defined.
- Removed old __VM*() macros which were aliased to __DBG*()
functions.
- Macro name change __EXPORT__ -> HB_DYNLIB
This shouldn't normally affect users, but if you happen
to use it, please update it.
- Some internal macro names changed as follows:
OS_UNIX_COMPATIBLE * -> HB_OS_UNIX_COMPATIBLE
OS_DOS_COMPATIBLE -> !defined( HB_OS_UNIX_COMPATIBLE )
OS_PATH_LIST_SEPARATOR -> HB_OS_PATH_LIST_SEP_CHR
OS_PATH_DELIMITER * -> HB_OS_PATH_DELIM_CHR
OS_PATH_DELIMITER_STRING -> HB_OS_PATH_DELIM_STR
OS_PATH_DELIMITER_LIST -> HB_OS_PATH_DELIM_LIST
OS_FILE_MASK -> HB_OS_ALLFILE_MASK
OS_DRIVE_DELIMITER -> HB_OS_DRIVE_DELIM_CHR
OS_HAS_DRIVE_LETTER -> HB_OS_HAS_DRIVE_LETTER
OS_OPT_DELIMITER_LIST -> HB_OS_OPT_DELIM_LIST
OS_EOL_LEN -> HB_OS_EOL_LEN
HARBOUR_GCC_OS2 -> HB_OS_OS2_GCC
HARBOUR_START_PROCEDURE -> HB_START_PROCEDURE
HARBOUR_MAIN_STD -> HB_MAIN_STD
HARBOUR_MAIN_WIN -> HB_MAIN_WIN
HARBOUR_MAX_RDD_DRIVERNAME_LENGTH * -> HB_RDD_MAX_DRIVERNAME_LEN
HARBOUR_MAX_RDD_ALIAS_LENGTH * -> HB_RDD_MAX_ALIAS_LEN
HARBOUR_MAX_RDD_AREA_NUM -> HB_RDD_MAX_AREA_NUM
If you happen to use these, please update your code to use
the new names. The more commonly used ones (marked with '*')
are still available under the old name, covered with HB_LEGACY_LEVEL.
- hbmake and hbdoc tools reduction in size, several
fixes, better multiplaform support and lots of code cleanups,
especially in hbmake (still a long way to go though).
- Some names deprecated and replaced with new ones:
FHANDLE -> HB_FHANDLE
EVALINFO -> HB_EVALINFO
PEVALINFO -> PHB_EVALINFO
EVALINFO_PTR -> marked as legacy, use PHB_EVALINFO instead.
CLR_STRLEN -> HB_CLRSTR_LEN
All of these are marked with HB_LEGACY_LEVEL.
Important to note that legacy Clipper compatible C
sources may continue to use Clipper compatible symbols,
regardless of the HB_LEGACY_LEVEL setting. It's advised
to change these to Harbour-only C sources in preparation
to the next Harbour major version (1.1).
- Marked hb_fileNameConv() as HB_LEGACY_LEVEL. 3rd party
and app developers should switch to hb_fsNameConv().
- GTI_*, GFX_* macros marked as HB_LEGACY_LEVEL. Please use
HB_GTI_*, HB_GFX_* equivalents.
- Fixed potential buffer overrun in hb_fsTempName().
This got introduced shortly before 1.0.0.
- Debugger: Strip function name from module name used to initialize
global and file wide variables. It fixes presenting file wide
static variables in debugger.
- Removed hb_hInstance, hb_hPrevInstance, s_iCmdShow, s_WinMainParam
old undocumented public variables. 3rd parties should use
official hb_winmainArgGet() API to get these values.
This feature is also HB_LEGACY_LEVEL dependent, therefore it will
be finalized in 1.1, until then, old symbols will still work.
- Fixed _FIELD indirectly used as alias to generate the right RTE:
? ("_FIELD")->NAME, or:
M->var := "_FIELD"; ? ("&var")->NAME
- Fixed OS() to detect Vista/Windows 2008. This bug got
introduced in 1.0.0rc2.
- Fixed OS() string when run on Windows XP 64-bit Edition.
- Changed hb_Compiler() to always show 32/64-bit in the
returned string.
- Fixed GPFs and leaks when using Harbour compiler -w3 switch.
- Bad workaround added for Pelles C 5.00.1 in AMD64 mode to
compile the Harbour 'inet' subsystem. It won't properly
work, but it lets build the rest of Harbour (like hbrun executable).
- PCRE lib upgraded to 7.8 (from 7.7)
- Fixed dbInfo( DBI_POSITIONED ) returned value.
- Fixed internal error in dirty index reading.
- Fixed return value of hb_inetGetSndBufSize().
- Fixed GPF when user sort code block reduces the size of sorted array.
- Fixed typo in hash cloning code which caused that references
was copied to cloned array. Thanks to Mindaugas for example.
- Added missing MESSAGE <MessageName> TO <oObject> to hbclass.ch.
Contrib
=============================
- hbmzip potential GPF fixed in executable type detection.
- General code style fixes in certain contribs.
- Harbour -km switch enabled for contribs.
- hbmysql SQLFETCHR() function updated to allow fetching
binary (BLOB) fields.
- hbclipsm GAUGE*() function fixes.
- gtalleg fixed to compile under several non-*nix platforms
(still needs more work).
- xhb: hb_ArrayBlock() compatibility function added.
- hbnf ft_GetE() function bad leak fixed on Windows systems,
and potential GPF on all systems.
- hbwhat32 removed wintypes.ch header. Header with the same
name and identical content can be found in xhb contrib.
- hbct Volume() buffer overrun fixed.
- hbole GPF fixed. This bug got introduced in 1.0.0rc2.
- hbole, hbw32 64-bit fix for MessageBox() functions. It now
allows for both pointer and numeric types to be passed as
a window handle.
- hbwhat32 fixed to not define WinMain() and also not to
collide with certain Harbour public symbols.
- hbw32 unnecessary memory allocation hacks removed from
OLE support.
- Using ANSI C comments more consistently in contribs.
- hbct / atnum.c changed to workaround a compiler bug in
Pelles C 5.00.1 in AMD64 mode.
- hbole modified to generate RTE when OLE object cannot
be found, to be in sync with hbw32 OLE implementation.
- hbbtree fixed scope problem in class, causing an RTE.
Added build batch files for its tests.
- Remaining code (hbwhat32, hbnf) fixed to always use
Harbour C API, instead of legacy Clipper C API (*.api,
clipdefs.h and extend.h).
- hbsqlit2 lib was moved to examples and sqlite2 sources
removed. Please use hbsqlit3 instead.
- hbziparch heavy rework/refactor/reduce/fixing effort,
what resulted in hbziparc, which implements the same old
ZipArchive interface with similar functionality (except
progress codeblock callbacks unzip functions and .zip
spanning feature), now rewritten in Harbour. If you need
to use this API, please change hbziparch to hbziparc and
link in hbmzip library, too. In contrary to old
implementation, this new one is completely portable and
fixes some potential leaks and GPFs. This code could use
some more testing, be aware.
- hbbmcdx fixed internal error in dirty index reading.
- hbcurl added support for libcurl 7.19.0 features.
- hbhpdf added support for libharu 2.1.0.
- Fixed so that contrib source files cannot collide with each
other when building them using the non-GNU make system.
- Former hbwhat32 lib added to the default contrib list
under the name of hbwhat, compilation was fully cleaned
and fixed to support Windows 64-bit platform. INTERNETREADFILE(),
INTERNETWRITEFILE() functions were fixed. what32.ch renamed
to hbwhat.ch.
- hbhpdf fixed HPDF_AddPageLabel().
- hbw32 got a new COM port handling class and API.
- gtwvg got some enhancements and 64-bit compatibility fixes.
A critical 1.0.0 bug was also fixed, which could cause
dialogs to not appear.
- hbfimage fixed to compile with Watcom compilers.
Known build issues
=============================
- Windows 64-bit builds may generate a large amount of type
conversion warnings. This is currently normal and will be
addressed in a future version.
- Contrib hbfimage won't currently compile on Linux systems.
This will be addressed in a future version.
- Contrib hbsqlit3 will not embed foreign sqlite3 library code
for Pelles C 4.5 and Open Watcom 1.7 due to fatal compile problems.
For these compilers you will have to supply sqlite3 library
yourself. For other compilers, some warnings are expected and
normal in this non-Harbour code.
- Using Pelles C 5.00.1 in 64-bit mode, HB_INET*() functions
won't work.
- gtalleg, hbwhat contrib may not compile on all platforms/compilers.
- hbcurl won't build when using DMC and libcurl 7.19.0.
Earlier versions build okay.
Version 1.0.0 (2008-08-10) tag: 1.0.0
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 initialization 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.
- Darwin universal build and OS X Leopard (10.5) compatibility 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 than 196 bytes
created on tables with record number smaller than 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.
- AChoice() mouse support added.
- Core Harbour level ZLIB compression functions renamed as follows:
hb_Compress() -> hb_ZCompress()
HB_COMPRESSBOUND() -> hb_ZCompressBound()
hb_Uncompress() -> hb_ZUncompress()
HB_UNCOMPRESSLEN() -> hb_ZUncompressLen()
- Harbour .hrb API moved to the documented namespace as follows:
__HRBRUN() -> hb_hrbRun()
__HRBLOAD() -> hb_hrbLoad()
__HRBUNLOAD() -> hb_hrbUnload()
__HRBDO() -> hb_hrbDo()
__HRBDOFU() -> (deleted, please use Do())
__HRBGETFU() -> hb_hrbGetFunSym()
(old function names still function)
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.
- 64-bit 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 than 196 bytes
created on tables with record number smaller than 256 in hbbmcdx.
- hbsqlit3 warning fixes and error fixes for some compilers/modes.
- Added DirectoryRecurse() to xhb.lib.
Known build issues
=============================
- Harbour with MSVC in 64-bit will only build in C++ mode.
Use 'set HB_BUILD_MODE=cpp' and 'make_vc.bat'.
- Windows 64-bit builds may generate a large amount of type
conversion warnings. This is currently normal and will be
addressed in a future version.
- Contrib hbfimage won't currently compile on Linux systems
and with Open Watcom compilers. This will be addressed in
a future version.
- Contrib hbsqlit3 will not embed foreign sqlite3 library code
for Pelles C 4.5 and Open Watcom 1.7 due to fatal compile problems.
For these compilers you will have to supply sqlite3 library
yourself. For other compilers, some warnings are expected and
normal in this non-Harbour code.
- Digital Mars C compiler compiles properly, but linking Harbour
executables doesn't currently work. This may be addressed in
a future revision.
Version 1.0.0 rc2 (2008-07-01) tag: 1.0.0rc2
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 64-bit 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.
- Enabled hbgf contrib for all (Linux, OS/2, Windows) platforms.
- Due to fixing 64-bit 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.
Version 1.0.0 rc1 (2008-06-04) tag: 1.0.0rc1
General
=============================
- The source repository was moved from CVS to SVN
- added docs/howtovcs.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 3rd party header files from SVN, e.g.: 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* - Windows, hbce* - WinCE
- added support for creating RPMs with Harbour cross build for Windows and
WinCE.
- added support for MS-Windows UNICDE builds.
- added support for shared libraries (.sl) in HPUX builds
- added large file support (64-bit) in HPUX builds
- disabled in default BSD* builds DOS/Windows DENY_* flags emulation
implemented by BSD locks - tests on FreeBSD 6.2 and OS X 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, e.g. @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 than 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, e.g.;
#pragma -ks+
#pragma -kM-
#pragma -kx1
#pragma -kJ0
- added to PP predefined defines: HB_VER_LENTRY, HB_VER_CHLID, HB_VER_REVID
with ChangeLog entry, ChangeLog ID and SVN revision
- added to PP support for:
#pragma __[c]streaminclude "fileName"|<code with %s 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 3rd 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, e.g.: 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, e.g.: 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.
DEBUGGER
--------
- many fixes and extensions in debugger code mostly by Phil Krylov borrowed