úÎ+ˆ(¨     ,Haskell Library for Checking CPU InformationTravis Whitaker 2016MITpi.boy.travis@gmail.com Provisional Linux >=2.6Safe+027Representation of a logical processor and its features.Logical Processor Index CPU VendorCPU Model NumberCPU Model NameCPU Model RevisionCPU Microcode RevisionProcessor Frequency ?CPU Cache Size. (TODO figure out how to get the cache topology) Physical Processor Index 4Number of Physical Cores on this Physical Processor. Physical Core Index CPU APIC Index@Whether or not the Physical Core provides a floating point unit.MWhether or not the Physical Core provides a floating point exception unit.Vendor-specific CPU flags.8MIPS approximation computed by the Linux kernel on boot.Cache line size in bytes.Physical address width.Virtual address width.Read  /proc/cpuinfo: and try to parse the output. If this function returns 7 on your system, please file a bug report with your  /proc/cpuinfo! contents and CPU specifications.Read  /proc/cpuinfox and try to parse the output. If this function throws an error on your system, please file a bug report with your  /proc/cpuinfo! contents and CPU specifications.ÑCounts the number of physical processors in the system. A physical processor corresponds to a single CPU unit in a single socket, i.e. unless you have a multi-socket motherboard, this number will be one.âCounts the number of physical cores in the system. A physical core is an independent processing unit that reads and executes instructions on its own, but potentially shares its die (and other resources) with other cores.ÿkCounts the number of logical cores in the system. A logical core is a virtual processing unit exposed to the operating system, that may or may not directly correspond with an independent physical processing unit, e.g. a hyperthread appears as an independent processing unit to the operating system, but has no physically dedicated execution resources.ÿThe hyperthreading factor is the number of logical cores divided by the number of physical cores. This quantity indicates the degree to which physical execution resources are shared among logical processors, and may be used to tune parallel applications.!If hyperthreading is in use, the  will be greater than 1.7  !"#$%&'()*+,-./01234567  #  !"#$%&'()*+,-./012345678      !"#$%&'()*+,-./0123456789:;AoqYsvkWoW97fZDXIwhvsP System.CPUCPU processorIDvendormodel modelNamerevision microcodefreqcache physicalIDsiblingscoreIDapicIDfpu fpuExceptflagsbogoMIPScacheAlignmentphysicalAddressvirtualAddress tryGetCPUsgetCPUsphysicalProcessors physicalCores logicalCoreshyperthreadingFactorhyperthreadingInUsebaseGHC.BaseNothing parsePairparseProcessor parseVendor parseModelparseModelName parseRevisionparseMicrocode parseFreq parseCacheparsePhysicalID parseSiblings parseCoreID parseApicIDparseFpuparseFpuExcept parseFlags parseBogoMIPSparseCacheAlignmentparseAddressesparsePhysicalAddressparseVirtualAddress parseBool parseWords parseMaybe keepTrying splitCPULinestryCPU