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:
Przemysław Czerpak
2016-06-20 21:59:34 +02:00
parent 88fc3b1579
commit 6df7fc6132
13 changed files with 415 additions and 23 deletions

View File

@@ -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