swath 0.6.0
swath 0.6.0 ออกแล้วเมื่อวันก่อน โดยมีลำดับความต่อเนื่องนับจากการปรับพจนานุกรมใน libthai 0.1.27 ดังนี้:
- ปรับ hyphenation pattern (พร้อม เพิ่ม exception ที่จำเป็น) ในโครงการ thailatex โดยอาศัย workflow เดิม ที่เคยทำไว้ พร้อมทดสอบการทำงาน
- เสนอ pull request #19 เพื่อขอปรับข้อมูล hyphenation ที่โครงการ tex-hyphen เนื่องจาก thailatex เป็นเพียงแหล่งพักสำหรับพัฒนา hyphenation ภาษาไทยเท่านั้น การใช้งานจริงจะผ่านโครงการ tex-hyphen นี้
- ปรับข้อมูลพจนานุกรมตัดคำของ swath โดยอิงพจนานุกรม hyphenation ของ thailatex
แต่การปรับพจนานุกรมตัดคำก็เป็นแค่น้ำจิ้มสำหรับ swath รุ่นนี้ เพราะมีการปรับซอร์สโค้ดตามที่เคยทำมาต่อไป โดยในครั้งนี้เป็นครั้งแรกที่ล้วงเข้าไปปรับกลไกภายในของการตัดคำ หลังจากที่รุ่นก่อน ๆ ทำแค่ส่วน command line parsing และ input/output filter ต่าง ๆ เท่านั้น
สรุปความเปลี่ยนแปลงที่สำคัญคือ
- ตัดตัวเลือก
ซึ่งไม่มีเอกสารอธิบายว่าเอาไว้ทำอะไร-l
- refactor dictionary ออกจากตัวตัดคำ ทำให้แยก lifetime ของพจนานุกรมออกจากตัวตัดคำ ซึ่งในอนาคตอาจเรียกตัวตัดคำซ้ำหลายครั้งได้โดยไม่ต้องเปิด dictionary ใหม่ หรือสามารถเรียกตัวตัดคำตัวเดิมซ้ำโดยเปลี่ยน dictionary ได้ เป็นต้น
- simplify โค้ดของตัวตัดคำให้เข้าใจง่าย ลดความซับซ้อน ตัดส่วนที่ไม่จำเป็น รวมส่วนที่สามารถรวมได้
- แก้ไขการทำงานของ longest matching scheme ที่เดิมทำงานไม่ถูกต้อง เพราะโค้ดทำงานง่ายเกินเหตุ ไม่มีการ backtrack ทำให้ได้คำตอบผิดพลาดในบางกรณี ในรุ่นนี้ได้แก้ให้ทำงานถูกต้องแล้ว (พร้อม test case สำหรับยืนยัน)
- จัดระเบียบโค้ดยิบย่อยเพื่อความเป็นระเบียบ (ยังเหลือให้ปรับได้อีกในรุ่นถัด ๆ ไป)
- ปรับแก้การใช้คำพูดใน manpage พร้อมกับการอ้างถึงโปรแกรม
trietool
ของ libdatrie แทนtrietool-0.2
ซึ่งเป็นชื่อเก่า
ด้วยความเปลี่ยนแปลงขนานใหญ่ในกลไกภายใน จึงได้ปรับเลข minor version แทนที่จะปรับแค่ micro version โดยเปลี่ยนจากซีรีส์ 0.5.x ขึ้นเป็น 0.6.0
ในส่วนของ Debian upload ก็ได้เพิ่ม test suite สำหรับ autopkgtest
ในทำนองเดียวกับ libthai ด้วย
ป้ายกำกับ: swath