<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 14 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:宋体;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:宋体;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
        {font-family:"\@宋体";
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML Preformatted Char";
        margin:0cm;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";}
span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:Consolas;}
span.EmailStyle19
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri","sans-serif";}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 90.0pt 72.0pt 90.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Not yet, there are still something need to be done recently, stay tuned,
</span><span style="font-size:11.0pt;font-family:Wingdings;color:#1F497D">J</span><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">From:</span></b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif""> spring_wind [mailto:18969076807@yeah.net]
<br>
<b>Sent:</b> Friday, December 26, 2014 8:55 PM<br>
<b>To:</b> Guo, Yejun<br>
<b>Cc:</b> beignet@lists.freedesktop.org<br>
<b>Subject:</b> Re:[Beignet] [PATCH] replace hash_map with map<o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal"><span style="font-size:10.5pt;font-family:"Arial","sans-serif";color:black">Great, is it enough to let me build beignet on CentOS 6.5?<o:p></o:p></span></p>
<pre><span style="color:black"><br>At 2014-12-24 16:17:46, "Guo Yejun" <<a href="mailto:yejun.guo@intel.com">yejun.guo@intel.com</a>> wrote:<o:p></o:p></span></pre>
<pre><span style="color:black">>there is no strong evidence to show hash_map makes better performance<o:p></o:p></span></pre>
<pre><span style="color:black">>for beignet, since hash_map requires std::hash which is not supported<o:p></o:p></span></pre>
<pre><span style="color:black">>in some g++ old versions, so replace hash_map with map.<o:p></o:p></span></pre>
<pre><span style="color:black">><o:p> </o:p></span></pre>
<pre><span style="color:black">>Signed-off-by: Guo Yejun <<a href="mailto:yejun.guo@intel.com">yejun.guo@intel.com</a>><o:p></o:p></span></pre>
<pre><span style="color:black">>---<o:p></o:p></span></pre>
<pre><span style="color:black">> backend/src/CMakeLists.txt            |  1 -<o:p></o:p></span></pre>
<pre><span style="color:black">> backend/src/backend/program.hpp       |  3 +-<o:p></o:p></span></pre>
<pre><span style="color:black">> backend/src/ir/unit.hpp               |  5 +--<o:p></o:p></span></pre>
<pre><span style="color:black">> backend/src/llvm/llvm_gen_backend.hpp |  5 +--<o:p></o:p></span></pre>
<pre><span style="color:black">> backend/src/sys/hash_map.hpp          | 82 -----------------------------------<o:p></o:p></span></pre>
<pre><span style="color:black">> 5 files changed, 5 insertions(+), 91 deletions(-)<o:p></o:p></span></pre>
<pre><span style="color:black">> delete mode 100644 backend/src/sys/hash_map.hpp<o:p></o:p></span></pre>
<pre><span style="color:black">><o:p> </o:p></span></pre>
<pre><span style="color:black">>diff --git a/backend/src/CMakeLists.txt b/backend/src/CMakeLists.txt<o:p></o:p></span></pre>
<pre><span style="color:black">>index deba230..bec0d2a 100644<o:p></o:p></span></pre>
<pre><span style="color:black">>--- a/backend/src/CMakeLists.txt<o:p></o:p></span></pre>
<pre><span style="color:black">>+++ b/backend/src/CMakeLists.txt<o:p></o:p></span></pre>
<pre><span style="color:black">>@@ -21,7 +21,6 @@ add_dependencies(beignet_bitcode libocl)<o:p></o:p></span></pre>
<pre><span style="color:black">> set (GBE_SRC<o:p></o:p></span></pre>
<pre><span style="color:black">>     ${ocl_blob_file}<o:p></o:p></span></pre>
<pre><span style="color:black">>     sys/vector.hpp<o:p></o:p></span></pre>
<pre><span style="color:black">>-    sys/hash_map.hpp<o:p></o:p></span></pre>
<pre><span style="color:black">>     sys/map.hpp<o:p></o:p></span></pre>
<pre><span style="color:black">>     sys/set.hpp<o:p></o:p></span></pre>
<pre><span style="color:black">>     sys/intrusive_list.hpp<o:p></o:p></span></pre>
<pre><span style="color:black">>diff --git a/backend/src/backend/program.hpp b/backend/src/backend/program.hpp<o:p></o:p></span></pre>
<pre><span style="color:black">>index 4e6b275..446c521 100644<o:p></o:p></span></pre>
<pre><span style="color:black">>--- a/backend/src/backend/program.hpp<o:p></o:p></span></pre>
<pre><span style="color:black">>+++ b/backend/src/backend/program.hpp<o:p></o:p></span></pre>
<pre><span style="color:black">>@@ -32,7 +32,6 @@<o:p></o:p></span></pre>
<pre><span style="color:black">> #include "ir/function.hpp"<o:p></o:p></span></pre>
<pre><span style="color:black">> #include "ir/printf.hpp"<o:p></o:p></span></pre>
<pre><span style="color:black">> #include "ir/sampler.hpp"<o:p></o:p></span></pre>
<pre><span style="color:black">>-#include "sys/hash_map.hpp"<o:p></o:p></span></pre>
<pre><span style="color:black">> #include "sys/vector.hpp"<o:p></o:p></span></pre>
<pre><span style="color:black">> #include <string><o:p></o:p></span></pre>
<pre><span style="color:black">> <o:p></o:p></span></pre>
<pre><span style="color:black">>@@ -307,7 +306,7 @@ namespace gbe {<o:p></o:p></span></pre>
<pre><span style="color:black">>     /*! Allocate an empty kernel. */<o:p></o:p></span></pre>
<pre><span style="color:black">>     virtual Kernel *allocateKernel(const std::string &name) = 0;<o:p></o:p></span></pre>
<pre><span style="color:black">>     /*! Kernels sorted by their name */<o:p></o:p></span></pre>
<pre><span style="color:black">>-    hash_map<std::string, Kernel*> kernels;<o:p></o:p></span></pre>
<pre><span style="color:black">>+    map<std::string, Kernel*> kernels;<o:p></o:p></span></pre>
<pre><span style="color:black">>     /*! Global (constants) outside any kernel */<o:p></o:p></span></pre>
<pre><span style="color:black">>     ir::ConstantSet *constantSet;<o:p></o:p></span></pre>
<pre><span style="color:black">>     /*! Use custom allocators */<o:p></o:p></span></pre>
<pre><span style="color:black">>diff --git a/backend/src/ir/unit.hpp b/backend/src/ir/unit.hpp<o:p></o:p></span></pre>
<pre><span style="color:black">>index b5b0fa9..e2ccbe8 100644<o:p></o:p></span></pre>
<pre><span style="color:black">>--- a/backend/src/ir/unit.hpp<o:p></o:p></span></pre>
<pre><span style="color:black">>+++ b/backend/src/ir/unit.hpp<o:p></o:p></span></pre>
<pre><span style="color:black">>@@ -26,7 +26,6 @@<o:p></o:p></span></pre>
<pre><span style="color:black">> <o:p></o:p></span></pre>
<pre><span style="color:black">> #include "ir/constant.hpp"<o:p></o:p></span></pre>
<pre><span style="color:black">> #include "ir/register.hpp"<o:p></o:p></span></pre>
<pre><span style="color:black">>-#include "sys/hash_map.hpp"<o:p></o:p></span></pre>
<pre><span style="color:black">> #include "sys/map.hpp"<o:p></o:p></span></pre>
<pre><span style="color:black">> <o:p></o:p></span></pre>
<pre><span style="color:black">> namespace gbe {<o:p></o:p></span></pre>
<pre><span style="color:black">>@@ -41,7 +40,7 @@ namespace ir {<o:p></o:p></span></pre>
<pre><span style="color:black">>   class Unit : public NonCopyable<o:p></o:p></span></pre>
<pre><span style="color:black">>   {<o:p></o:p></span></pre>
<pre><span style="color:black">>   public:<o:p></o:p></span></pre>
<pre><span style="color:black">>-    typedef hash_map<std::string, Function*> FunctionSet;<o:p></o:p></span></pre>
<pre><span style="color:black">>+    typedef map<std::string, Function*> FunctionSet;<o:p></o:p></span></pre>
<pre><span style="color:black">>     /*! Create an empty unit */<o:p></o:p></span></pre>
<pre><span style="color:black">>     Unit(PointerSize pointerSize = POINTER_32_BITS);<o:p></o:p></span></pre>
<pre><span style="color:black">>     /*! Release everything (*including* the function pointers) */<o:p></o:p></span></pre>
<pre><span style="color:black">>@@ -76,7 +75,7 @@ namespace ir {<o:p></o:p></span></pre>
<pre><span style="color:black">>     bool getValid() { return valid; }<o:p></o:p></span></pre>
<pre><span style="color:black">>   private:<o:p></o:p></span></pre>
<pre><span style="color:black">>     friend class ContextInterface; //!< Can free modify the unit<o:p></o:p></span></pre>
<pre><span style="color:black">>-    hash_map<std::string, Function*> functions; //!< All the defined functions<o:p></o:p></span></pre>
<pre><span style="color:black">>+    FunctionSet functions; //!< All the defined functions<o:p></o:p></span></pre>
<pre><span style="color:black">>     ConstantSet constantSet; //!< All the constants defined in the unit<o:p></o:p></span></pre>
<pre><span style="color:black">>     PointerSize pointerSize; //!< Size shared by all pointers<o:p></o:p></span></pre>
<pre><span style="color:black">>     GBE_CLASS(Unit);<o:p></o:p></span></pre>
<pre><span style="color:black">>diff --git a/backend/src/llvm/llvm_gen_backend.hpp b/backend/src/llvm/llvm_gen_backend.hpp<o:p></o:p></span></pre>
<pre><span style="color:black">>index 966a06c..e127996 100644<o:p></o:p></span></pre>
<pre><span style="color:black">>--- a/backend/src/llvm/llvm_gen_backend.hpp<o:p></o:p></span></pre>
<pre><span style="color:black">>+++ b/backend/src/llvm/llvm_gen_backend.hpp<o:p></o:p></span></pre>
<pre><span style="color:black">>@@ -37,7 +37,6 @@<o:p></o:p></span></pre>
<pre><span style="color:black">> #endif<o:p></o:p></span></pre>
<pre><span style="color:black">> #include "sys/platform.hpp"<o:p></o:p></span></pre>
<pre><span style="color:black">> #include "sys/map.hpp"<o:p></o:p></span></pre>
<pre><span style="color:black">>-#include "sys/hash_map.hpp"<o:p></o:p></span></pre>
<pre><span style="color:black">> #include <algorithm><o:p></o:p></span></pre>
<pre><span style="color:black">> <o:p></o:p></span></pre>
<pre><span style="color:black">> // LLVM Type<o:p></o:p></span></pre>
<pre><span style="color:black">>@@ -57,7 +56,7 @@ namespace gbe<o:p></o:p></span></pre>
<pre><span style="color:black">> <o:p></o:p></span></pre>
<pre><span style="color:black">>   /*! Build the hash map for OCL functions on Gen */<o:p></o:p></span></pre>
<pre><span style="color:black">>   struct OCLIntrinsicMap {<o:p></o:p></span></pre>
<pre><span style="color:black">>-    /*! Build the intrinsic hash map */<o:p></o:p></span></pre>
<pre><span style="color:black">>+    /*! Build the intrinsic map */<o:p></o:p></span></pre>
<pre><span style="color:black">>     OCLIntrinsicMap(void) {<o:p></o:p></span></pre>
<pre><span style="color:black">> #define DECL_LLVM_GEN_FUNCTION(ID, NAME) \<o:p></o:p></span></pre>
<pre><span style="color:black">>   map.insert(std::make_pair(#NAME, GEN_OCL_##ID));<o:p></o:p></span></pre>
<pre><span style="color:black">>@@ -65,7 +64,7 @@ namespace gbe<o:p></o:p></span></pre>
<pre><span style="color:black">> #undef DECL_LLVM_GEN_FUNCTION<o:p></o:p></span></pre>
<pre><span style="color:black">>     }<o:p></o:p></span></pre>
<pre><span style="color:black">>     /*! Sort intrinsics with their names */<o:p></o:p></span></pre>
<pre><span style="color:black">>-    hash_map<std::string, OCLInstrinsic> map;<o:p></o:p></span></pre>
<pre><span style="color:black">>+    gbe::map<std::string, OCLInstrinsic> map;<o:p></o:p></span></pre>
<pre><span style="color:black">>     OCLInstrinsic find(const std::string symbol) const {<o:p></o:p></span></pre>
<pre><span style="color:black">>       auto it = map.find(symbol);<o:p></o:p></span></pre>
<pre><span style="color:black">> <o:p></o:p></span></pre>
<pre><span style="color:black">>diff --git a/backend/src/sys/hash_map.hpp b/backend/src/sys/hash_map.hpp<o:p></o:p></span></pre>
<pre><span style="color:black">>deleted file mode 100644<o:p></o:p></span></pre>
<pre><span style="color:black">>index e153cf3..0000000<o:p></o:p></span></pre>
<pre><span style="color:black">>--- a/backend/src/sys/hash_map.hpp<o:p></o:p></span></pre>
<pre><span style="color:black">>+++ /dev/null<o:p></o:p></span></pre>
<pre><span style="color:black">>@@ -1,82 +0,0 @@<o:p></o:p></span></pre>
<pre><span style="color:black">>-/* <o:p></o:p></span></pre>
<pre><span style="color:black">>- * Copyright © 2012 Intel Corporation<o:p></o:p></span></pre>
<pre><span style="color:black">>- *<o:p></o:p></span></pre>
<pre><span style="color:black">>- * This library is free software; you can redistribute it and/or<o:p></o:p></span></pre>
<pre><span style="color:black">>- * modify it under the terms of the GNU Lesser General Public<o:p></o:p></span></pre>
<pre><span style="color:black">>- * License as published by the Free Software Foundation; either<o:p></o:p></span></pre>
<pre><span style="color:black">>- * version 2.1 of the License, or (at your option) any later version.<o:p></o:p></span></pre>
<pre><span style="color:black">>- *<o:p></o:p></span></pre>
<pre><span style="color:black">>- * This library is distributed in the hope that it will be useful,<o:p></o:p></span></pre>
<pre><span style="color:black">>- * but WITHOUT ANY WARRANTY; without even the implied warranty of<o:p></o:p></span></pre>
<pre><span style="color:black">>- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU<o:p></o:p></span></pre>
<pre><span style="color:black">>- * Lesser General Public License for more details.<o:p></o:p></span></pre>
<pre><span style="color:black">>- *<o:p></o:p></span></pre>
<pre><span style="color:black">>- * You should have received a copy of the GNU Lesser General Public<o:p></o:p></span></pre>
<pre><span style="color:black">>- * License along with this library. If not, see <<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>>.<o:p></o:p></span></pre>
<pre><span style="color:black">>- *<o:p></o:p></span></pre>
<pre><span style="color:black">>- * Author: Benjamin Segovia <<a href="mailto:benjamin.segovia@intel.com">benjamin.segovia@intel.com</a>><o:p></o:p></span></pre>
<pre><span style="color:black">>- */<o:p></o:p></span></pre>
<pre><span style="color:black">>-<o:p></o:p></span></pre>
<pre><span style="color:black">>-/**<o:p></o:p></span></pre>
<pre><span style="color:black">>- * \file hash_map.hpp<o:p></o:p></span></pre>
<pre><span style="color:black">>- *<o:p></o:p></span></pre>
<pre><span style="color:black">>- * \author Benjamin Segovia <<a href="mailto:benjamin.segovia@intel.com">benjamin.segovia@intel.com</a>><o:p></o:p></span></pre>
<pre><span style="color:black">>- */<o:p></o:p></span></pre>
<pre><span style="color:black">>-<o:p></o:p></span></pre>
<pre><span style="color:black">>-#ifndef __GBE_HASH_MAP_HPP__<o:p></o:p></span></pre>
<pre><span style="color:black">>-#define __GBE_HASH_MAP_HPP__<o:p></o:p></span></pre>
<pre><span style="color:black">>-<o:p></o:p></span></pre>
<pre><span style="color:black">>-#include "sys/platform.hpp"<o:p></o:p></span></pre>
<pre><span style="color:black">>-<o:p></o:p></span></pre>
<pre><span style="color:black">>-#ifdef __MSVC__<o:p></o:p></span></pre>
<pre><span style="color:black">>-#include <unordered_map><o:p></o:p></span></pre>
<pre><span style="color:black">>-#else<o:p></o:p></span></pre>
<pre><span style="color:black">>-#include <tr1/unordered_map><o:p></o:p></span></pre>
<pre><span style="color:black">>-#endif /* __MSVC__ */<o:p></o:p></span></pre>
<pre><span style="color:black">>-<o:p></o:p></span></pre>
<pre><span style="color:black">>-namespace gbe<o:p></o:p></span></pre>
<pre><span style="color:black">>-{<o:p></o:p></span></pre>
<pre><span style="color:black">>-  /*! Add specific allocator to the hash map */<o:p></o:p></span></pre>
<pre><span style="color:black">>-  template <class Key,<o:p></o:p></span></pre>
<pre><span style="color:black">>-            class T,<o:p></o:p></span></pre>
<pre><span style="color:black">>-            class Hash = std::hash<Key>,<o:p></o:p></span></pre>
<pre><span style="color:black">>-            class Pred = std::equal_to<Key>><o:p></o:p></span></pre>
<pre><span style="color:black">>-  class hash_map : public std::tr1::unordered_map<Key,T,Hash,Pred,Allocator<std::pair<const Key,T>>>,<o:p></o:p></span></pre>
<pre><span style="color:black">>-                   public NonCopyable<o:p></o:p></span></pre>
<pre><span style="color:black">>-  {<o:p></o:p></span></pre>
<pre><span style="color:black">>-  public:<o:p></o:p></span></pre>
<pre><span style="color:black">>-    // Typedefs<o:p></o:p></span></pre>
<pre><span style="color:black">>-    typedef std::pair<const Key, T> value_type;<o:p></o:p></span></pre>
<pre><span style="color:black">>-    typedef Allocator<value_type> allocator_type;<o:p></o:p></span></pre>
<pre><span style="color:black">>-    typedef std::tr1::unordered_map<Key,T,Hash,Pred,allocator_type> parent_type;<o:p></o:p></span></pre>
<pre><span style="color:black">>-    typedef typename allocator_type::size_type size_type;<o:p></o:p></span></pre>
<pre><span style="color:black">>-    typedef Key key_type;<o:p></o:p></span></pre>
<pre><span style="color:black">>-    typedef T mapped_type;<o:p></o:p></span></pre>
<pre><span style="color:black">>-    typedef Hash hasher;<o:p></o:p></span></pre>
<pre><span style="color:black">>-    typedef Pred key_equal;<o:p></o:p></span></pre>
<pre><span style="color:black">>-<o:p></o:p></span></pre>
<pre><span style="color:black">>-    /*! Default constructor */<o:p></o:p></span></pre>
<pre><span style="color:black">>-    INLINE explicit hash_map(size_type n = 3,<o:p></o:p></span></pre>
<pre><span style="color:black">>-                             const hasher& hf = hasher(),<o:p></o:p></span></pre>
<pre><span style="color:black">>-                             const key_equal& eql = key_equal(),<o:p></o:p></span></pre>
<pre><span style="color:black">>-                             const allocator_type& a = allocator_type()) :<o:p></o:p></span></pre>
<pre><span style="color:black">>-      parent_type(n, hf, eql, a) {}<o:p></o:p></span></pre>
<pre><span style="color:black">>-    /*! Iteration constructor */<o:p></o:p></span></pre>
<pre><span style="color:black">>-    template <class InputIterator><o:p></o:p></span></pre>
<pre><span style="color:black">>-    INLINE hash_map(InputIterator first,<o:p></o:p></span></pre>
<pre><span style="color:black">>-                    InputIterator last,<o:p></o:p></span></pre>
<pre><span style="color:black">>-                    size_type n = 3,<o:p></o:p></span></pre>
<pre><span style="color:black">>-                    const hasher& hf = hasher(),<o:p></o:p></span></pre>
<pre><span style="color:black">>-                    const key_equal& eql = key_equal(),<o:p></o:p></span></pre>
<pre><span style="color:black">>-                    const allocator_type& a = allocator_type()) :<o:p></o:p></span></pre>
<pre><span style="color:black">>-      parent_type(first,last,n,hf,eql,a) {}<o:p></o:p></span></pre>
<pre><span style="color:black">>-#if 0<o:p></o:p></span></pre>
<pre><span style="color:black">>-    /*! Copy constructor */<o:p></o:p></span></pre>
<pre><span style="color:black">>-    INLINE hash_map(const hash_map &other) : parent_type(other) {}<o:p></o:p></span></pre>
<pre><span style="color:black">>-#endif<o:p></o:p></span></pre>
<pre><span style="color:black">>-    GBE_CLASS(hash_map);<o:p></o:p></span></pre>
<pre><span style="color:black">>-  };<o:p></o:p></span></pre>
<pre><span style="color:black">>-} /* namespace gbe */<o:p></o:p></span></pre>
<pre><span style="color:black">>-<o:p></o:p></span></pre>
<pre><span style="color:black">>-#endif /* __GBE_HASH_MAP_HPP__ */<o:p></o:p></span></pre>
<pre><span style="color:black">>-<o:p></o:p></span></pre>
<pre><span style="color:black">>-- <o:p></o:p></span></pre>
<pre><span style="color:black">>1.9.1<o:p></o:p></span></pre>
<pre><span style="color:black">><o:p> </o:p></span></pre>
<pre><span style="color:black">>_______________________________________________<o:p></o:p></span></pre>
<pre><span style="color:black">>Beignet mailing list<o:p></o:p></span></pre>
<pre><span style="color:black">><a href="mailto:Beignet@lists.freedesktop.org">Beignet@lists.freedesktop.org</a><o:p></o:p></span></pre>
<pre><span style="color:black">><a href="http://lists.freedesktop.org/mailman/listinfo/beignet">http://lists.freedesktop.org/mailman/listinfo/beignet</a><o:p></o:p></span></pre>
</div>
<p class="MsoNormal" style="margin-bottom:12.0pt"><o:p> </o:p></p>
<div id="netease_mail_footer">
<div style="border:none;border-top:solid #CCCCCC 1.0pt;padding:8.0pt 0cm 0cm 0cm">
<p class="MsoNormal" style="line-height:16.5pt"><span lang="ZH-CN" style="font-size:9.0pt;font-family:宋体;color:#666666">来自网易手机号码邮箱</span><span style="font-size:9.0pt;color:#666666"><a href="http://shouji.163.com" target="_blank" id="mobile_set"><span lang="ZH-CN" style="font-family:宋体">了解更多</span></a><o:p></o:p></span></p>
</div>
</div>
</div>
</body>
</html>