libdatrie 0.2.11
libdatrie 0.2.11 ออกแล้ว หลังจากที่ไม่ได้ออกรุ่นมาเลยถึงสองปีครึ่ง และนับเป็น release แรกของ libdatrie ที่ออกจาก github หลังจากที่ปล่อยให้แพกเกจอื่น ๆ ทยอยออกรุ่นกันไปเยอะแล้ว
รุ่นนี้มีความเปลี่ยนแปลงที่สำคัญนอกเหนือจากการย้ายมา Github คือ:
- ตรวจสอบ error จาก
iconv()
ได้ถูกต้องยิ่งขึ้น จากรายงานของ Daniel Macks ใน Issue #3 - ปรับคำบรรยายแพกเกจใน
README
เนื่องจาก @flackbash ทักท้วงมาใน Issue #4 ว่า complexity ของการ search ของ trie เป็น O(m) เมื่อ m คือความยาวของคีย์ ไม่ใช่ O(1) เสียหน่อย ซึ่งอันที่จริง การอ้าง O(1) ก็เป็นเพียงการบอกว่า เวลาที่ใช้มันไม่ขึ้นกับขนาดของฐานข้อมูลเท่านั้น ในทำนองเดียวกับที่ hash table มักจะอ้าง compexity O(1) เหมือนกัน ทั้ง ๆ ที่เวลาที่ใช้ในการคำนวณค่า hash โดยปกติก็เป็น O(m) อย่างไรก็ดี ถูกทักท้วงมาเช่นนี้ก็แก้ไขตามนั้น แต่ยังคงเน้นว่ามันไม่ขึ้นกับขนาดของฐานข้อมูล - ปรับแก้การทำงานของ
trie_state_get_data()
ซึ่งเดิมทำงานไม่ถูกต้องในกรณีที่คีย์ที่ใช้ค้นนั้นเป็นส่วนต้นของคีย์อื่น (เช่นกา
เป็นส่วนต้นของการ
) ซึ่งทำให้โครงการ pytries หันไปใช้วิธีเพิ่มฟังก์ชันใหม่ โดยส่งแพตช์มาให้ผมในเมลส่วนตัว ผมจึงแสดงความเห็นไปว่าน่าจะปรับแก้ฟังก์ชันเดิมให้ทำงานให้ถูกต้อง แทนที่จะเพิ่มฟังก์ชันใหม่ เรื่องเงียบไประยะหนึ่ง จนกระทั่งมีการผลักดันแพกเกจ python-datrie เข้า Debian (ITP) Andreas Tille จึงหันมากระทุ้งผมเรื่องนี้อีกครั้ง (Debian #894278) จนในที่สุดผมก็เลยแก้ปัญหานี้ (commit) และ Filip Pytloun ก็ได้ช่วยทดสอบให้ และปรับแก้ที่ pytries ให้ - แก้ปัญหา segfault เมื่อใช้งานกับ alpha map แบบเต็มช่วง (0-255) โดย Xiao Wang รายงานใน Issue #6 ว่าเขาพบเมื่อใช้งานกับ PHP ซึ่งผมยังไม่มีเวลาไปตรวจสอบ จึงทิ้งช่วงมาจนกระทั่ง @nevermatch เข้ามาวิเคราะห์และชี้จุดผิดพลาดให้ ซึ่งผมก็ยังคง reproduce ไม่ได้อยู่ดี คือมันไม่ segfault แต่พบความผิดปกติตามที่เขาชี้จริง จึงถือว่ามีข้อมูลเพียงพอที่จะแก้ปัญหาได้แล้ว ซึ่งต้องขอขอบคุณทั้งสองท่านอย่างมากที่ช่วยตรวจสอบปัญหานี้ให้
ถือว่ารุ่นนี้ได้รับ contribution จากผู้ใช้ค่อนข้างหลากหลาย โดยเฉพาะการช่วยวิเคราะห์ปัญหาที่น่าประทับใจ และได้รู้เพิ่มเติมว่ามีการใช้งาน libdatrie กับ PHP ด้วย
และเช่นเคย upload 0.2.11-1 เข้า Debian เรียบร้อยแล้ว พร้อมความเปลี่ยนแปลงอื่น ๆ เพิ่มเติม เช่น การรองรับการ build ที่ไม่ต้องใช้ (fake)root
ป้ายกำกับ: trie
0 ความเห็น:
แสดงความเห็น (มีการกลั่นกรองสำหรับ blog ที่เก่ากว่า 14 วัน)
<< กลับหน้าแรก