
- is the addition of 'name' to the as_dict() output a problem for APy's
  usage in apyconfig.py?
- sorted() for as_yaml and as_xml? Only if doesn't break supported Py
  versions
- tl.activestate.com: is bsd, says it is redhat linux (bsd-compat libs can
  cause confusion for platinfo)
- s/libcpp/libstdc++/ or to "libstdcpp" if feasible

## Mac OS X

- test if C-level gestalt stuff works on OS X
  - actually this may just be the same bug as this:
    http://mail.python.org/pipermail/pythonmac-sig/2004-May/011120.html
    and Apple may just have an old Python 2.3 build.
    If so, then this is an easy fix.
- if so, then fix the Python bindings to this
- either way, still probably need to find an alternate way to determine
  the Mac OS X version

## General

- http://developers.sun.com/solaris/developer/support/driver/64bit-faqs.html
  A helpful FAQ that could be used to add an arch_ver for SPARC boxes (e.g.
  v9 is the start of 64-bit versions)
- c.f.
  https://sourceforge.net/tracker/?func=detail&atid=305470&aid=1352731&group_id=5470
  > Comment By: M.-A. Lemburg (lemburg)
  Date: 2006-11-09 08:49
  I'm currently working on an updated version of platform.py
  that will include part of this patch, patch #1563842 for
  IronPython and better support for Jython.
- Fallback (or prefer? or split into two?) to libcpp determination that just
  looks for latest /usr/lib/libstdc++.so.*
- Add "memory", "cpu_speed" (or better name):
    <win32-code>
    # http://timgolden.me.uk/python/wmi.html
    import wmi
    c = wmi.WMI ()
    for i in c.Win32_ComputerSystem ():
      print i.TotalPhysicalMemory
    for i in c.Win32_Processor ():
      print i.DeviceID, i.MaxClockSpeed, "MHz"
    </win32-code>
    <win32-ctypes-code>
    from ctypes import *
    from ctypes.wintypes import DWORD
    SIZE_T = c_ulong
    class MemStat(Structure):
         _fields_ = [ ("dwLength", DWORD),
             ("dwMemoryLength", DWORD),
             ("dwTotalPhys", SIZE_T),
             ("dwAvailPhys", SIZE_T),
             ("dwTotalPageFile", SIZE_T),
             ("dwAvailPageFile", SIZE_T),
             ("dwTotalVirtual", SIZE_T),
             ("dwAvailVirtualPhys", SIZE_T) ]
         def update(self):
             windll.kernel32.GlobalMemoryStatus(byref(self))
         def show(self):
             self.update()
             result = []
             for field_name, field_type in self._fields_:
                 result.append("%s, %s\n" \
                       % (field_name, getattr(self, field_name)))
             return ''.join(result)
    memstat = MemStat()
    </win32-ctypes-code>
    <linux-code>
    $ os.system("cat /proc/cpuinfo | grep cpu")
    cpu family      : 6
    cpu MHz         : 1922.308
    </linux-code>
- look at some info from WMI
  (http://timgolden.me.uk/python/wmi-tutorial.html)
- robust graceful failure to spit out all hopefully relevant info
  (so that I could ask a bunch of people to run this)
- could use "arch_ver" on x86 to specify "i386" or "i686" or whatever
- platforms to add:
    - test on more Linux distros
    - FreeBSD
- implement filesafe option (scaffold is in place)
- plat english names: https://helixcommunity.org/viewcvs/cgi/viewcvs.cgi/ribosome/build/lib/sysinfo.py?rev=1.81&content-type=text/vnd.viewcvs-markup
- make subclassing PlatInfo for some overrides workable
- test suite for the API. How?
- see p79-80 in my black book
- see what platform.py adds to this and see if it makes sense here
- Should add a libc5 vs glibc item for Linux. This is the *real*
  variable that precipitated the addition of "linux2.2" vs "linux"
  (aka "linux2.4")
- look at various projects plat names. E.g. Mozilla, openssl
- change "libcpp" to one of these? libc++ libstdc++
- add distro_lsb_ver? (i.e. `lsb_release -v`)
- add 'bits'?: '32bit', '64bit'. Or should that be '32', '64'?
  How does this work on a system that can compile for either?
  Is it the bits of the system? of the current process? of the current build
  environment?
- PlatInfo.as_json()


## Platform Specificity Notes:

- x86 or i686/i386/etc? (perhaps 'arch' and 'arch_family'?)
- add 'os_flavor'? E.g. Windows XP "Professional", "Home" and
  "Server"; RHEL "AS", "WS" and "ES". The latter is better in
  distro_desc.



## Windows

- Add binary _platinfoutils (or whatever name) module to not depend on
  PyWin32 for information: GetVersionEx(), GetSystemInfo(). Or just use
  ctypes in python 2.5 (though it is, stupidly, optional)


