2016-06-20 21:59 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* doc/cmpopt.txt
* enumeration
! typos
* src/codepage/uckam.c
+ added info about Kamenicky codepage number: CP895
* include/hbapi.h
* src/common/hbstr.c
+ added new C function:
char * hb_dblToStr( char * szBuf, HB_SIZE nSize,
double dNumber, int iMaxDec );
it converts numeric value to string trying to keep all significant
digits in double numbers
* include/harbour.hbx
* src/rtl/hbntos.c
+ added new PRG function:
hb_ntoc( <nValue> ) -> cValue
it converts numeric value to string trying to keep all significant
digits in double numbers
* src/rtl/hbsocket.c
+ added support for error codes returned by
getaddrinfo() / getnameinfo() and gethostbyname() / gethostbyaddr()
* src/rtl/hbinet.c
+ set HB_SOCKET_ERR_WRONGADDR error code if hb_socketResolveAddr()
returns NULL without setting error code
* src/vm/arrays.c
* src/vm/hashfunc.c
! fix hb_HScan(), AScan(), hb_AScan() and hb_RAScan() for very large
integers with more then 53 significant bits. Such bits were lost
after conversion to double value used in scan process
* src/vm/itemapi.c
* formatting
* src/rtl/gtwvt/gtwvt.c
! do not convert characters received with ALTGR or ALT+CTRL flags to
extended keycodes - some national keyboards may use such combination
for national characters and even pure ASCII ones
This commit is contained in:
@@ -75,7 +75,7 @@ arguments are well known and can be calculated at compile time:
|
||||
// switch which disables macro substitution
|
||||
// is used
|
||||
<nConst1> * <nConst2> => <nConst>
|
||||
<nConst1> / <nConst2> => <nConst> // Clipper optimize only integers
|
||||
<nConst1> / <nConst2> => <nConst> // Clipper optimizes only integers
|
||||
<nConst1> % <nConst2> => <nConst>
|
||||
<cConst1> $ <cConst2> => <lConst>
|
||||
// Clipper wrongly calculates
|
||||
@@ -206,7 +206,7 @@ to intialize static variables, f.e.:
|
||||
static s_var := ( 1 + 2 / 3 )
|
||||
|
||||
Clipper does not optimize expression used in LOCAL, PRIVATE and
|
||||
PUBLIC variables declarations but it optimize expressions for STATIC
|
||||
PUBLIC variables declarations but it optimizes expressions for STATIC
|
||||
declarations. This code illustrates it:
|
||||
|
||||
proc main()
|
||||
@@ -219,7 +219,9 @@ declarations. This code illustrates it:
|
||||
return
|
||||
|
||||
This behavior is not replicated in Harbour even if -kc switch is used
|
||||
and Harbour optimize expressions in all declarations.
|
||||
and Harbour optimizes expressions in all declarations.
|
||||
|
||||
3. Macro expansion:
|
||||
|
||||
Harbour supports macro expansion for expressions with declared symbols.
|
||||
This functionality can be enabled by -kd compiler switch:
|
||||
@@ -240,6 +242,8 @@ code to Harbour because some compilers just like xHarbour accepted
|
||||
in some limited way officially unsupported syntax with macros using
|
||||
declared symbols.
|
||||
|
||||
4. PCODE optimization:
|
||||
|
||||
Harbour has additional optimization phase which operates on generated PCODE.
|
||||
It can also reduce expressions, joins jumps, removes death or meaningless
|
||||
code which can appear after all other optimizations and were not optimized
|
||||
|
||||
Reference in New Issue
Block a user