Theppitak's blog

My personal blog.

25 มีนาคม 2551

swath plan

จาก blog ที่แล้ว ที่การพัฒนา swath ถูกปลุกขึ้นมาใหม่นั้น หลังจากที่แก้เรื่องการใช้ tmpnam() ในการสร้างแฟ้มชั่วคราวไปแล้ว ก็มองไปที่อีกประเด็นหนึ่ง ที่เคยถูกถามบ่อยเหมือนกัน คือเรื่อง source ของ dictionary ที่ swath ใช้

swath นั้น คุณไพศาล ใช้โค้ดส่วน double-array trie รุ่นโบราณมาก ๆ ตั้งแต่ยุคเริ่มแรกที่ยังมีบั๊กเยอะแยะไปหมด เพียงแต่โค้ดส่วน retrieve ข้อมูลยังทำงานได้อยู่เท่านั้นเอง แต่ถ้าจะใช้สร้าง dict จาก source นั้น ยังมีบั๊กอีกเพียบ ซึ่งได้แก้ไขไปในรุ่นหลัง ๆ แล้ว แต่การที่ swath ฝังโค้ดเข้าไปใน source แทนการลิงก์ภายนอก ก็ทำให้โค้ดส่วนนี้ใน swath ไม่มีการปรับปรุงตาม

ครั้นจะ backport bug fix ต่าง ๆ กลับเข้าใน swath ก็ลำบากอยู่ เพราะโค้ดมันเก่าจัด API ต่าง ๆ ก็เปลี่ยนไปเยอะ โครงสร้างข้อมูลก็มีการ simplify ไปพอสมควรแล้ว หลังจากนั่งปลุกปล้ำกับมันอยู่พักใหญ่ ก็ตัดสินใจว่าไม่คุ้มเลยที่จะพยายามแก้โค้ดที่หมดอายุไปนานแล้ว แทนที่จะเปลี่ยนมาใช้โค้ดใหม่

ก็เลยทำแค่ dump รายการคำออกมาจาก dict แล้วเก็บใส่ source tree ไว้ รอให้เปลี่ยนไปใช้ libdatrie ตัวล่าสุดก่อน แล้วจึงสร้าง dict จากรายการคำ ตอนนี้ก็ ship แต่ข้อมูล trie เหมือนเดิมไปก่อน

แต่ libdatrie เอง ก็ไม่ใช่ว่าพร้อมสำหรับ swath ในตอนนี้ เพราะรายการคำของ swath ใหญ่เกินกว่าขนาด index ที่ libdatrie ใช้ ซึ่งปัญหานี้ libthai เองก็เจอเหมือนกัน คือการเพิ่มคำในพจนานุกรมตัดคำก็กำลังเจอทางตันเหมือนกัน

สรุปว่า แผนการขั้นแรก จึงเป็นการขยาย libdatrie ให้รองรับการใช้ index ขนาดใหญ่ขึ้น ซึ่งจะทำให้ทั้ง libthai และ swath สามารถพัฒนาต่อไปได้

ก็เลยขอเลื่อนประเด็นเรื่อง dict source ของ swath ออกไปก่อน สำหรับรุ่นหน้าที่จะออกนี้ คงแก้เรื่องอื่นที่เล็กกว่าไปก่อน ซึ่งถ้าใครเจอปัญหาอะไรก็รบกวนแจ้งให้ทราบด้วยนะครับ จะได้แก้ก่อนออกรุ่นใหม่

ป้ายกำกับ:

2 ความเห็น:

  • 27 มีนาคม 2551 เวลา 22:26 , Blogger Beamer User แถลง…

    ถ้าจะทำสำหรับวินโดวส์จะต้องทำอย่างไรครับ
    มีคนดูแลอยู่หรือเปล่า

     
  • 27 มีนาคม 2551 เวลา 22:39 , Blogger Thep แถลง…

    ตอนนี้ไม่มีคนดูครับ อาจจะเอามา build เป็น exe หรือจะให้ดี ก็ทำ installer ประมาณนั้นครับ (เพราะมี data ด้วย)

     

แสดงความเห็น (มีการกลั่นกรองสำหรับ blog ที่เก่ากว่า 14 วัน)

<< กลับหน้าแรก

hacker emblem