Patch 8.0.1551
Problem:    On Mac 'maxmemtot' is set to a weird value.
Solution:   For Mac use total memory and subtract system memory. For other
            systems accept both a 32 bit and 64 bit result. (Ozaki Kiichi,
            closes #2646)
Files:      src/os_unix.c


*** ../vim-8.0.1550/src/os_unix.c       2018-02-10 18:45:21.080822072 +0100
--- src/os_unix.c       2018-02-27 17:56:17.200903122 +0100
***************
*** 565,570 ****
--- 565,575 ----
  # if defined(HAVE_SYS_SYSINFO_H) && defined(HAVE_SYSINFO)
  #  include <sys/sysinfo.h>
  # endif
+ # ifdef MACOS_X_DARWIN
+ #  include <mach/mach_host.h>
+ #  include <mach/mach_port.h>
+ #  include <mach/vm_page_size.h>
+ # endif
  
  /*
   * Return total amount of memory available in Kbyte.
***************
*** 576,591 ****
      long_u    mem = 0;
      long_u    shiftright = 10;  /* how much to shift "mem" right for Kbyte */
  
  # ifdef HAVE_SYSCTL
!     int               mib[2], physmem;
!     size_t    len;
  
!     /* BSD way of getting the amount of RAM available. */
!     mib[0] = CTL_HW;
!     mib[1] = HW_USERMEM;
!     len = sizeof(physmem);
!     if (sysctl(mib, 2, &physmem, &len, NULL, 0) == 0)
!       mem = (long_u)physmem;
  # endif
  
  # if defined(HAVE_SYS_SYSINFO_H) && defined(HAVE_SYSINFO)
--- 581,650 ----
      long_u    mem = 0;
      long_u    shiftright = 10;  /* how much to shift "mem" right for Kbyte */
  
+ # ifdef MACOS_X_DARWIN
+     {
+       /* Mac (Darwin) way of getting the amount of RAM available */
+       mach_port_t             host = mach_host_self();
+       kern_return_t           kret;
+ #  ifdef HOST_VM_INFO64
+       struct vm_statistics64  vm_stat;
+       natural_t               count = HOST_VM_INFO64_COUNT;
+ 
+       kret = host_statistics64(host, HOST_VM_INFO64,
+                                            (host_info64_t)&vm_stat, &count);
+ #  else
+       struct vm_statistics    vm_stat;
+       natural_t               count = HOST_VM_INFO_COUNT;
+ 
+       kret = host_statistics(host, HOST_VM_INFO,
+                                              (host_info_t)&vm_stat, &count);
+ #  endif
+       if (kret == KERN_SUCCESS)
+           /* get the amount of user memory by summing each usage */
+           mem = (long_u)(vm_stat.free_count + vm_stat.active_count
+                                           + vm_stat.inactive_count
+ #  ifdef MAC_OS_X_VERSION_10_9
+                                           + vm_stat.compressor_page_count
+ #  endif
+                                           ) * getpagesize();
+       mach_port_deallocate(mach_task_self(), host);
+     }
+ # endif
+ 
  # ifdef HAVE_SYSCTL
!     if (mem == 0)
!     {
!       /* BSD way of getting the amount of RAM available. */
!       int             mib[2];
!       size_t          len = sizeof(long_u);
! #  ifdef HW_USERMEM64
!       long_u          physmem;
! #  else
!       /* sysctl() may return 32 bit or 64 bit, accept both */
!       union {
!           int_u       u32;
!           long_u      u64;
!       } physmem;
! #  endif
  
!       mib[0] = CTL_HW;
! #  ifdef HW_USERMEM64
!       mib[1] = HW_USERMEM64;
! #  else
!       mib[1] = HW_USERMEM;
! #  endif
!       if (sysctl(mib, 2, &physmem, &len, NULL, 0) == 0)
!       {
! #  ifdef HW_USERMEM64
!           mem = (long_u)physmem;
! #  else
!           if (len == sizeof(physmem.u64))
!               mem = (long_u)physmem.u64;
!           else
!               mem = (long_u)physmem.u32;
! #  endif
!       }
!     }
  # endif
  
  # if defined(HAVE_SYS_SYSINFO_H) && defined(HAVE_SYSINFO)
*** ../vim-8.0.1550/src/version.c       2018-02-27 17:25:48.020151886 +0100
--- src/version.c       2018-02-27 17:57:13.076536564 +0100
***************
*** 780,781 ****
--- 780,783 ----
  {   /* Add new patch number below this line */
+ /**/
+     1551,
  /**/

-- 
TERRY GILLIAM PLAYED: PATSY (ARTHUR'S TRUSTY STEED), THE GREEN KNIGHT
                      SOOTHSAYER, BRIDGEKEEPER, SIR GAWAIN (THE FIRST TO BE
                      KILLED BY THE RABBIT)
                 "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD

 /// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net   \\\
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\  an exciting new programming language -- http://www.Zimbu.org        ///
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Raspunde prin e-mail lui