critcl - ออนไลน์ในคลาวด์

นี่คือคำสั่ง critcl ที่สามารถเรียกใช้ในผู้ให้บริการโฮสต์ฟรีของ OnWorks โดยใช้เวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS

โครงการ:

ชื่อ


critcl - แอปพลิเคชัน CriTcl

เรื่องย่อ


วิจารณ์ ?ตัวเลือก- -ไฟล์... ?

_________________________________________________________________

DESCRIPTION


ยินดีต้อนรับสู่ C Runtime In Tcl, คริติคอล เรียกสั้นๆ ว่าระบบสำหรับสร้างแพ็คเกจส่วนขยาย C
สำหรับ Tcl ได้ทันที จากโค้ด C ที่ฝังอยู่ภายในสคริปต์ Tcl สำหรับทุกคนที่ต้องการสร้าง
รหัสของพวกเขาไปเร็วขึ้น

เอกสารนี้เป็นคู่มืออ้างอิงสำหรับ วิจารณ์ สั่งการ. กลุ่มเป้าหมายคือ
คนที่ต้องสร้างแพ็คเกจโดยใช้ วิจารณ์ สำหรับการปรับใช้ ผู้เขียนแพ็คเกจด้วย
รหัส C แบบฝังสามารถละเว้นเอกสารนี้ได้ หากคุณต้องการภาพรวมของทั้งหมด
ระบบแทน โปรดเข้าไปอ่าน บทนำ ไปยัง คริติคอล.

แอปพลิเคชันนี้อยู่ใน Application Layer ของ CriTcl

-
|แอพพลิเคชั่น |
| วิจารณ์ |
| critcl::แอป |
-

++----------------
|แพ็คเกจหลัก |
| วิจารณ์ |
- critcl::util |
++----------------

++----------------
|แพ็คเกจสนับสนุน|
| ต้นขั้ว::* |
| md5 แพลตฟอร์ม |
| ...|
++----------------

แอปพลิเคชันรองรับบรรทัดคำสั่งทั่วไปต่อไปนี้:

วิจารณ์ ?ตัวเลือก- -ไฟล์... ?
มีรายละเอียดชุดตัวเลือกที่แน่นอน ความหมาย และการโต้ตอบใน
ส่วน การใช้งาน Options ด้านล่าง. สำหรับชุดตัวอย่างที่ใหญ่ขึ้น โปรดดูหัวข้อ
"การสร้าง Critcl Packages" ในเอกสารเกี่ยวกับ การใช้ คริติคอล.

ใบสมัคร OPTIONS


เข้าใจตัวเลือกต่อไปนี้

-v

--รุ่น
ตัวเลือกเหล่านี้ทำให้ critcl พิมพ์เวอร์ชันเป็น แย่ แล้วออก

-I เส้นทาง
อ็อพชันนี้ระบุพาธรวมโกลบอลเพิ่มเติมเพื่อใช้ในระหว่างการคอมไพล์
ของ ".critcl" ไฟล์ ค่าทั้งหมดจะถูกใช้หากมีการระบุหลายครั้ง

ตัวเลือกนี้ไม่เกี่ยวข้องเมื่อสร้างแพ็คเกจ TEA (ดูตัวเลือก -ชา ด้านล่าง)

-L เส้นทาง
ตัวเลือกนี้ระบุเส้นทางการค้นหาไลบรารีส่วนกลางเพิ่มเติมเพื่อใช้ในระหว่างการลิงก์
ของ ".critcl" ไฟล์ ค่าทั้งหมดจะถูกใช้หากมีการระบุหลายครั้ง

ตัวเลือกนี้ไม่เกี่ยวข้องเมื่อสร้างแพ็คเกจ TEA (ดูตัวเลือก -ชา ด้านล่าง)

-แคช เส้นทาง
อ็อพชันนี้ระบุพาธไปยังไดเร็กทอรีเพื่อใช้เป็นแคชผลลัพธ์ ถ้าไม่
ระบุค่าเริ่มต้นเป็น "~/.critcl/" หรือเมื่อสร้างแพ็คเกจ (ดู
ตัวเลือก -แพ็ค ด้านล่าง) ถึง "~/.critcl/.", เมื่อระบุหลายครั้ง
ใช้ค่าสุดท้าย

ตัวเลือกนี้ไม่เกี่ยวข้องเมื่อสร้างแพ็คเกจ TEA (ดูตัวเลือก -ชา ด้านล่าง)

-Clean เมื่อระบุแคชผลลัพธ์จะว่างเปล่า กล่าวคือ พบไฟล์และไดเร็กทอรีทั้งหมด
ภายในจะถูกลบ) ก่อนที่การรวบรวมจะเริ่มขึ้น

ตัวเลือกนี้ไม่เกี่ยวข้องเมื่อสร้างแพ็คเกจ (ดูตัวเลือก -แพ็ค ด้านล่าง) เพราะ
โหมดนี้เริ่มต้นด้วยแคชผลลัพธ์ที่ไม่ซ้ำกันและว่างเปล่า

ตัวเลือกนี้ไม่เกี่ยวข้องเมื่อสร้างแพ็คเกจ TEA (ดูตัวเลือก -ชา ด้านล่าง)

- กำหนดค่า เส้นทาง
ตัวเลือกนี้ระบุพาธไปยังไฟล์การกำหนดค่าแบบกำหนดเอง อนุญาตให้ผู้ใช้
ใช้ข้อกำหนดเป้าหมายของตนเอง หากไม่ได้ระบุค่าเริ่มต้นแบบเดินสาย
ใช้การกำหนดค่าที่ฝังอยู่ในแกนระบบแทน เมื่อระบุหลายรายการ
คูณด้วยค่าสุดท้ายที่ใช้

ตัวเลือกนี้ไม่เกี่ยวข้องเมื่อสร้างแพ็คเกจ TEA (ดูตัวเลือก -ชา ด้านล่าง)

-debug โหมด
ตัวเลือกนี้เปิดใช้งานการคอมไพล์ด้วยการดีบัก ยอมรับโหมดด้านล่าง เมื่อไหร่
ระบุหลายครั้งโดยใช้การรวมกันของโหมดทั้งหมด

ตัวเลือกนี้ไม่เกี่ยวข้องเมื่อสร้างแพ็คเกจ TEA (ดูตัวเลือก -ชา ด้านล่าง)

หน่วยความจำ โหมดนี้เปิดใช้งานการดีบักหน่วยความจำของการจัดสรรที่ทำผ่านTcl
แกน

สัญลักษณ์
โหมดนี้เปิดใช้งานการสร้างทั้งหมด ".c" ไฟล์ที่มีสัญลักษณ์การดีบัก

ทั้งหมด โหมดนี้เปิดใช้งานทั้งคู่ หน่วยความจำ และ สัญลักษณ์.

-ปิดการใช้งาน ชื่อ
ตัวเลือกนี้ตั้งค่าของตัวเลือกการกำหนดค่าการสร้างแบบกำหนดเอง ชื่อ ไปยัง เท็จ.
มันเทียบเท่ากับ "-กับ-ชื่อ 0"

ข้อมูลจะถูกตรวจสอบเฉพาะในกรณีที่หนึ่งใน ".critcl" ไฟล์อินพุตจริงๆ
กำหนดและใช้ตัวเลือกการกำหนดค่าบิลด์แบบกำหนดเองด้วยนั้น ชื่อ.

ตัวเลือกนี้ไม่เกี่ยวข้องเมื่อสร้างแพ็คเกจ TEA (ดูตัวเลือก -ชา ด้านล่าง)

-เปิดใช้งาน ชื่อ
ตัวเลือกนี้ตั้งค่าของตัวเลือกการกำหนดค่าการสร้างแบบกำหนดเอง ชื่อ ไปยัง จริง.
มันเทียบเท่ากับ "-กับ-ชื่อ 1"

ข้อมูลจะถูกตรวจสอบเฉพาะในกรณีที่หนึ่งใน ".critcl" ไฟล์อินพุตจริงๆ
กำหนดและใช้ตัวเลือกการกำหนดค่าบิลด์แบบกำหนดเองด้วยนั้น ชื่อ.

ตัวเลือกนี้ไม่เกี่ยวข้องเมื่อสร้างแพ็คเกจ TEA (ดูตัวเลือก -ชา ด้านล่าง)

-บังคับ เมื่อการคอมไพล์ที่ระบุเสร็จสิ้นเสมอ แม้ว่าไลบรารีที่แบ่งใช้สำหรับไฟล์นั้น
มีอยู่แล้ว เอฟเฟกต์นี้สามารถเกิดขึ้นได้ผ่านการล้างแคช (ดูด้านบน) เป็น
ดีเว้นแต่จะขี้เกียจในการทำลายไฟล์และจะไม่ทำลายไฟล์
ไม่เกี่ยวข้องกับสิ่งที่เรากำลังสร้าง

ตัวเลือกนี้ไม่เกี่ยวข้องเมื่อสร้างแพ็คเกจ (ดูตัวเลือก -แพ็ค ด้านล่าง) เพราะ
โหมดนี้เริ่มต้นด้วยแคชผลลัพธ์ที่ไม่ซ้ำกันและว่างเปล่า

ตัวเลือกนี้ไม่เกี่ยวข้องเมื่อสร้างแพ็คเกจ TEA (ดูตัวเลือก -ชา ด้านล่าง)

-ช่วยด้วย ตัวเลือกนี้จะทำให้ระบบพิมพ์ความช่วยเหลือสั้น ๆ เกี่ยวกับไวยากรณ์บรรทัดคำสั่ง
และตัวเลือกต่างๆ แล้วออกจากแอปพลิเคชัน

-เก็บไว้ ตัวเลือกนี้จะทำให้ระบบคง ".c" ไฟล์ที่สร้างโดยการรันใน
แคชผลลัพธ์ เมื่อสร้างแพ็คเกจ (ดูตัวเลือก -แพ็ค ด้านล่าง) สิ่งนี้ยังป้องกัน
การลบแคชผลลัพธ์เฉพาะที่ใช้โดยการรัน ตัวเลือกนี้มีไว้สำหรับ
สำหรับการดีบักของ วิจารณ์ เอง โดยอาจจำเป็นต้องตรวจสอบ
สร้างรหัส C

ตัวเลือกนี้ไม่เกี่ยวข้องเมื่อสร้างแพ็คเกจ TEA (ดูตัวเลือก -ชา ด้านล่าง)

-libdir เส้นทาง
ตัวเลือกนี้ระบุเส้นทางภายใต้แพ็คเกจที่สร้างผ่าน option -แพ็ค
จะถูกบันทึกไว้ นอกจากนี้ยังระบุเส้นทางเพื่อค้นหาไลบรารีเช่น for -L. เมื่อ
ระบุหลายครั้งโดยใช้ค่าสุดท้าย เมื่อไม่ได้ระบุไว้เลย
ค่าเริ่มต้น, "lib" ใช้ สังเกตว่านี่คือเส้นทางสัมพัทธ์โดยวางผลลัพธ์ลงใน
ไดเร็กทอรีการทำงานปัจจุบัน

- รวม เส้นทาง
ตัวเลือกนี้ระบุพาธภายใต้การบันทึกส่วนหัวของแพ็คเกจที่สร้างขึ้น
นอกจากนี้ยังระบุพาธในการค้นหารวมถึงไฟล์ต่างๆ เช่น for -I. เมื่อกำหนด
หลายครั้งที่ค่าสุดท้ายถูกใช้เป็นปลายทาง อย่างไรก็ตาม ค่าก่อนหน้าทั้งหมด
จะถูกเก็บไว้ในเส้นทางการค้นหารวม เมื่อไม่ได้ระบุค่าเริ่มต้นเลย
"ประกอบด้วย" ใช้ สังเกตว่านี่คือเส้นทางสัมพัทธ์โดยวางผลลัพธ์ลงใน
ไดเร็กทอรีการทำงานปัจจุบัน

ตัวเลือกนี้ไม่เกี่ยวข้องเมื่อสร้างแพ็คเกจ TEA (ดูตัวเลือก -ชา ด้านล่าง)

-แพ็ค โหมดเริ่มต้นของแอปพลิเคชันคือการสร้าง ".critcl" ไฟล์ที่ระบุไว้ใน
บรรทัดคำสั่งและบันทึกผลลัพธ์ในแคชผลลัพธ์ โดยพื้นฐานแล้วการเติม
แคชกับแพ็คเกจที่สำคัญ ลดเวลาที่ต้องใช้เหล่านี้
แพคเกจ

ตัวเลือกนี้เปิดใช้งานหนึ่งในโหมดอื่น การสร้างแพ็คเกจ ในโหมดนี้
ไฟล์อินพุตจะถูกประมวลผลก่อนตามปกติ แต่หลังจากนั้นจะถูกรวมเป็น
ไลบรารีเดียวและไฟล์เพิ่มเติมจะถูกสร้างขึ้นเพื่อให้ไลบรารีนี้ใช้งานได้เหมือน
แพ็คเกจ Tcl ปกติ

ทางเลือก -ชาดูด้านล่าง เรียกใช้โหมดสุดท้าย การสร้าง TEA ถ้าทั้งสองทางเลือก
เช่น -แพ็ค และ -ชา ระบุผู้ชนะที่ระบุล่าสุด

ในโหมดนี้ ตัวเลือก -Clean และ -บังคับ ไม่เกี่ยวข้องและถูกละเลย ในทางตรงกันข้าม,
ทางเลือก -libdir มีความเกี่ยวข้องทั้งในเรื่องนี้และ -ชา โหมด.

เมื่อระบุตัวเลือกนี้ชื่อฐานของอาร์กิวเมนต์ไฟล์แรกหลัง
ตัวเลือกถูกใช้เป็นชื่อของแพ็คเกจเพื่อสร้าง ถ้าจะขยายความนั้น
ไฟล์ระบุไลบรารีที่ใช้ร่วมกัน (".ดังนั้น"".sl"".dylib"และ"dll.") มันยัง
ลบออกจากชุดของไฟล์อินพุต เอ ".tcl" ไฟล์ถูกเก็บไว้เป็นส่วนหนึ่งของอินพุต A
ไฟล์เดียวที่ไม่มีนามสกุลจะถือว่ามี ".tcl" ส่วนขยาย A
ไฟล์ที่ไม่มีนามสกุล แต่ไฟล์อินพุตอื่น ๆ ที่ตามมาจะถือว่าเหมือนกับชื่อ
ไลบรารีที่ใช้ร่วมกันที่เหมาะสม และลบออกจากชุดของไฟล์อินพุต

ตัวอย่าง:
=> ชื่อแพ็คเกจคือ: foo
=> ไฟล์อินพุตคือ: foo.tcl
=> ชื่อแพ็คเกจคือ: foo
=> ไฟล์อินพุตคือ: bar.tcl
=> ชื่อแพ็คเกจคือ: foo
=> ไฟล์อินพุตคือ: foo.tcl
=> ชื่อแพ็คเกจคือ: foo
=> ไฟล์อินพุตคือ: bar.tcl

-แสดง เมื่อระบุตัวเลือกนี้จะทำให้ระบบพิมพ์การกำหนดค่าของ
เป้าหมายที่เลือกไป แย่ แล้วออก สามารถเลือกเป้าหมายได้
ผ่านตัวเลือก - เป้าหมาย (ดูด้านล่าง)

-แสดงทั้งหมด
ตัวเลือกนี้เมื่อระบุจะทำให้ระบบพิมพ์ทั้งหมดที่เลือก
ไฟล์กำหนดค่าเป็น แย่ แล้วออก ทางเลือกของไฟล์การกำหนดค่าสามารถ
ได้รับอิทธิพลผ่านตัวเลือก - กำหนดค่า (ดูด้านบน).

- เป้าหมาย ชื่อ
ตัวเลือกนี้จะแทนที่ตัวเลือกเริ่มต้นของเป้าหมายการสร้างด้วยตัวเลือกของผู้ใช้
เมื่อระบุหลายครั้ง ค่าสุดท้ายจะถูกใช้ เป้าหมายที่มีชื่อต้องมีอยู่จริง
ในไฟล์การกำหนดค่าที่เลือก ใช้ตัวเลือก -เป้าหมาย (ดูด้านล่าง) เพื่อรับรายการ
เป้าหมายที่ยอมรับได้ สามารถเลือกไฟล์การกำหนดค่าได้ผ่าน
ทางเลือก - กำหนดค่า (ดูด้านบน).

ตัวเลือกนี้ไม่เกี่ยวข้องเมื่อสร้างแพ็คเกจ TEA (ดูตัวเลือก -ชา ด้านล่าง)

-เป้าหมาย
ตัวเลือกนี้เมื่อระบุจะทำให้ระบบพิมพ์รายการของที่รู้จักทั้งหมด
เป้าหมายจากไฟล์การกำหนดค่าที่เลือกถึง แย่ แล้วออก ทางเลือกของ
ไฟล์การกำหนดค่าสามารถได้รับอิทธิพลผ่านตัวเลือก - กำหนดค่า (ดูด้านบน).

-ชา คล้ายกับตัวเลือก -แพ็คยกเว้นว่าโหมดที่เรียกใช้จะไม่สร้างไบนารี
แต่ลำดับชั้นไดเร็กทอรีที่มี ".critcl" ไฟล์ ไฟล์ประกอบ และ a
ระบบบิลด์ที่คล้ายกับ TEA พร้อมรหัสสนับสนุนที่จำเป็นส่วนใหญ่ (รวมถึงสำเนา
ของแพ็คเกจ critcl)

ถ้าทั้งสองตัวเลือก เช่น -แพ็ค และ -ชา ระบุผู้ชนะที่ระบุล่าสุด

ในโหมดนี้ ตัวเลือก -I, -L, -Clean, -บังคับ, -แคช, - รวม, -เปิดใช้งาน,
-ปิดการใช้งานและ -กับ-FOO ไม่เกี่ยวข้องและละเลย ในทางตรงกันข้าม ตัวเลือก -libdir
มีความเกี่ยวข้องทั้งในเรื่องนี้และ -แพ็ค โหมด.

เมื่อระบุตัวเลือกนี้ชื่อฐานของอาร์กิวเมนต์ไฟล์แรกหลัง
ตัวเลือกถูกใช้เป็นชื่อของแพ็คเกจเพื่อสร้าง ถ้าจะขยายความนั้น
ไฟล์ระบุไลบรารีที่ใช้ร่วมกัน (".ดังนั้น"".sl"".dylib"และ"dll.") มันยัง
ลบออกจากชุดของไฟล์อินพุต เอ ".tcl" ไฟล์ถูกเก็บไว้เป็นส่วนหนึ่งของอินพุต A
ไฟล์เดียวที่ไม่มีนามสกุลจะถือว่ามี ".tcl" ส่วนขยาย A
ไฟล์ที่ไม่มีนามสกุล แต่ไฟล์อินพุตอื่น ๆ ที่ตามมาจะถือว่าเหมือนกับชื่อ
ไลบรารีที่ใช้ร่วมกันที่เหมาะสม และลบออกจากชุดของไฟล์อินพุต

ตัวอย่าง:
=> ชื่อแพ็คเกจคือ: foo
=> ไฟล์อินพุตคือ: foo.tcl
=> ชื่อแพ็คเกจคือ: foo
=> ไฟล์อินพุตคือ: bar.tcl
=> ชื่อแพ็คเกจคือ: foo
=> ไฟล์อินพุตคือ: foo.tcl
=> ชื่อแพ็คเกจคือ: foo
=> ไฟล์อินพุตคือ: bar.tcl

-มีชื่อ ความคุ้มค่า
ตัวเลือกนี้ตั้งค่าของตัวเลือกการกำหนดค่าการสร้างแบบกำหนดเอง ชื่อ ไปยัง ความคุ้มค่า.

ข้อมูลจะถูกตรวจสอบเฉพาะในกรณีที่หนึ่งใน ".critcl" ไฟล์อินพุตจริงๆ
กำหนดและใช้ตัวเลือกการกำหนดค่าบิลด์แบบกำหนดเองด้วยนั้น ชื่อ.

ตัวเลือกนี้ไม่เกี่ยวข้องเมื่อสร้างแพ็คเกจ TEA (ดูตัวเลือก -ชา ข้างบน).

แพคเกจ โครงสร้าง


แพ็คเกจที่สร้างโดย critcl มีโครงสร้างพื้นฐานดังต่อไปนี้:

+- pkgIndex.tcl
+-critcl-rt.tcl
+- license.terms (ไม่บังคับ)
|
+- tcl (ไม่บังคับ)
| +-
|
+-
+-

หมายเหตุ / รายละเอียดเพิ่มเติม

[1] ไฟล์ "pkgIndex.tcl" เป็นไฟล์ดัชนีแพ็คเกจมาตรฐานที่ Tcl's . คาดไว้
การจัดการแพ็คเกจ มีที่มาระหว่างการค้นหาแพ็คเกจและประกาศ
แพ็คเกจไปยัง Tcl พร้อมไฟล์ต่างๆ และวิธีจัดการ

[2] ไฟล์ "critcl-rt.tcl" เป็นไฟล์ตัวช่วยที่มีรหัสทั่วไปที่ใช้โดย
"pkgIndex.tcl" เพื่อดำเนินการตามหน้าที่

[3] ไฟล์ "ใบอนุญาต.เงื่อนไข" เป็นทางเลือกและจะปรากฏก็ต่อเมื่อปุ่ม ".critcl" ยื่น
แพ็คเกจถูกสร้างขึ้นจากคำสั่งที่ใช้ critcl::ใบอนุญาต ประกาศแพ็คเกจ
ผู้เขียนและใบอนุญาต

[4] ไฟล์ทั้งหมดที่ประกาศด้วยคำสั่ง critcl::tsource ถูกใส่ลงในไดเร็กทอรีย่อย
"TCL".

[5] ไลบรารีที่ใช้ร่วมกันที่สร้างโดย critcl ถูกใส่ลงใน sub- เฉพาะแพลตฟอร์ม
ไดเรกทอรี

โครงสร้างทั้งหมด โดยเฉพาะจุดสุดท้าย ทำให้เราสามารถรวมผลลัพธ์ได้ในภายหลัง
(สำหรับแพ็คเกจและเวอร์ชันเดียวกัน) สำหรับแพลตฟอร์มเป้าหมายหลายรายการในไดเร็กทอรีเดียว
โครงสร้างที่ไม่มีความขัดแย้ง โดยเพียงแค่คัดลอกไดเร็กทอรีด้านบนทับกัน ดิ
เฉพาะไฟล์ที่ขัดแย้งกันอยู่ใน และ "TCL" ไดเรกทอรีและสำหรับสิ่งเหล่านี้เรา
รู้ว่าแต่ละเป้าหมายเหมือนกันหมด ผลของการรวมดังกล่าวจะมีลักษณะดังนี้:

+- pkgIndex.tcl
+-critcl-rt.tcl
+- license.terms (ไม่บังคับ)
|
+- tcl (ไม่บังคับ)
| +-
|
+-
| +-
+-
| +-
+-
+-

การเปลี่ยนแปลง สำหรับ VERSION 2.1


[1] แก้ไขข้อบกพร่องโดยที่ critcl::tsource ตีความเส้นทางสัมพัทธ์ว่าสัมพันธ์กับ
ไดเร็กทอรีการทำงานปัจจุบันแทนที่จะสัมพันธ์กับ ".critcl" ไฟล์โดยใช้
คำสั่ง เช่นเดียวกับคำสั่งอื่นๆ ของประเภทนี้

[2] แก้ไข internals ป้องกันไม่ให้รวบรวมข้อมูลหลาย ๆ ".critcl" ไฟล์ถึง
รั่วไหลระหว่างกัน โดยเฉพาะอย่างยิ่ง คริติคอล::tk ไม่ใช่ตัวเลือกการกำหนดค่าส่วนกลาง
อีกต่อไป

[3] แก้ไขคำสั่ง critcl::ใบอนุญาต ให้เป็นโมฆะการทำงานในโหมด "คอมไพล์ & รัน"
แทนที่จะโยนข้อผิดพลาด

[4] แก้ไขการรบกวนของแอปพลิเคชัน critcl กับแคชผลลัพธ์ "คอมไพล์ & เรียกใช้"
in -แพ็ค โหมดโดยกำหนดให้ใช้แบบแยกส่วนทั้งหมด (และโดยปริยายชั่วขณะ)
ไดเรกทอรีสำหรับโหมดนั้น

[5] แก้ไขบั๊กที่เปลี่ยนเป็น ".critcl" ไฟล์ไม่ส่งผลให้มีการสร้างใหม่สำหรับโหมด
"รวบรวมและเรียกใช้". คำสั่ง API ที่เกี่ยวข้องทั้งหมดในขณะนี้ช่วยให้มั่นใจว่าการเปลี่ยนแปลง UUID

[6] แก้ไขข้อบกพร่องในการจัดการแบ็กเอนด์ของ critcl::debug โดยที่สหาย c-แหล่งที่มาของ
ก ".critclไฟล์ " ไม่ได้ถูกคอมไพล์ด้วยตัวเลือกการดีบัก แม้ว่า ".critcl"ไฟล์
เป็น

[7] แก้ไขข้อบกพร่องใน critcl::debug ที่ป้องกันการรู้จำของแบบวิธี "ทั้งหมด" เมื่อเป็น
ไม่ใช่อาร์กิวเมนต์แรกของคำสั่ง

[8] แก้ไขข้อบกพร่องใน "พรีโหลด.ค" ป้องกันการคอมไพล์บนแพลตฟอร์มที่ไม่ใช่ Windows

[9] แก้ไขข้อบกพร่องที่มีมายาวนานในการจัดการตัวระบุเนมสเปซในชื่อคำสั่ง
ข้อโต้แย้งของ critcl::cproc และ critcl::คำสั่ง. ขณะนี้สามารถระบุ a . ได้แล้ว
ชื่อคำสั่งที่มีคุณสมบัติครบถ้วนโดยไม่มีปัญหา

[10] ขยาย/ทำใหม่ critcl::tsource เพื่อเป็นแนวทางการประกาศ".tcl"
ไฟล์สหายแม้สำหรับโหมด "คอมไพล์ & รัน"

[11] ขยาย/ทำใหม่ critcl::tsource เพื่อให้สามารถใช้ ".critcl" ไฟล์เป็นของตัวเอง
ไฟล์สหาย Tcl

[12] ขยายเวลา critcl::กรอบงาน เพื่อตรวจสอบภายในสำหรับเป้าหมายการสร้าง OS X และเพิกเฉย
การประกาศถ้าไม่ใช่

[13] ขยายเวลา critcl::ล้มเหลว ที่จะเรียกได้มากกว่าหนึ่งครั้งใน ".critcl" ไฟล์
การเรียกครั้งแรกจะบังคับให้บิลด์ หากยังไม่ได้ดำเนินการ เพื่อให้ได้ผลลัพธ์ ไกลออกไป
โทรกลับผลลัพธ์แคชของการโทรครั้งแรก

[14] ขยายการจัดการตัวแปรสภาพแวดล้อม CC ในโค้ดที่กำหนด
คอมไพเลอร์ที่จะใช้จัดการกับ (เช่น ลบ) พาธไปยังคอมไพเลอร์, ไฟล์คอมไพเลอร์
ส่วนขยายและตัวเลือกคอมไพเลอร์ที่ระบุหลังจากคอมไพเลอร์เอง เหลือไว้เท่านั้น
ชื่อเปล่าของคอมไพเลอร์

[15] ขยายรหัสที่จัดการการค้นหาไลบรารีที่โหลดไว้ล่วงหน้าเพื่อพิมพ์เส้นทางนั้น
ค้นหา ทำให้การดีบักความล้มเหลวในการค้นหาง่ายขึ้น

[16] คำสั่งใหม่ คริติคอล::tcl สามารถใช้ประกาศเวอร์ชัน Tcl ขั้นต่ำได้
จำเป็นต้องสร้างและเรียกใช้ ".critcl" ไฟล์และแพ็คเกจ ค่าเริ่มต้นเป็น 8.4 ถ้าไม่
ประกาศ ขยาย critcl เพื่อให้มีต้นขั้วและส่วนหัวสำหรับ Tcl 8.4, 8.5 ทั้งหมด
และ 8.6

[17] คำสั่งใหม่ critcl::โหลด บังคับให้สร้างและโหลดของ ".critcl" ไฟล์ นี่คือ
วิธีอย่างเป็นทางการสำหรับการเอาชนะโครงร่าง lazy-build-&-load-on-demand เริ่มต้นของ critcl
สำหรับโหมด "คอมไพล์ & รัน"

หมายเหตุ ว่าหลังใช้ critcl::โหลด / critcl::ล้มเหลว ใน ".critcl" ไฟล์มันไม่ใช่
เป็นไปได้ที่จะใช้คำสั่ง critcl ในไฟล์นั้นอีกต่อไป การทำเช่นนี้จะทำให้เกิดข้อผิดพลาด

[18] ขยายรุ่น '#line' Pragmas สู่การใช้งาน ข้อมูล กรอบ (ถ้ามี) ถึง
ให้คอมไพเลอร์ C พร้อมหมายเลขบรรทัดที่แน่นอนลงใน ".critcl" ไฟล์สำหรับ
การรายงานคำเตือนและข้อผิดพลาด

[19] ขยายเวลา crtcl::ตรวจสอบ ด้วยการบันทึกเพื่อช่วยในการดีบักการตรวจสอบเวลาบิวด์ของ
สภาพแวดล้อม บวกอาร์กิวเมนต์ที่เป็นตัวเลือกเพิ่มเติมเพื่อจัดเตรียมการติดฉลาก

(20) เพิ่มคำสั่งใหม่ critcl::ตรวจสอบลิงค์ ที่ไม่เพียงแต่พยายามตรวจสอบสภาพแวดล้อม
ผ่านการคอมไพล์โค้ด แต่ยังเชื่อมโยงได้

(21) เพิ่มคำสั่งใหม่ Critcl::msg สำหรับการส่งข้อความ เช่น command critcl::ข้อผิดพลาด สำหรับ
การรายงานข้อผิดพลาด ในทำนองเดียวกันนี่คือตะขอที่ผู้ใช้แพ็คเกจได้รับอนุญาต
แทนที่. การใช้งานเริ่มต้น ใช้โดย mode รวบรวม & วิ่ง ไม่ทำอะไรเลย ดิ
การใช้งานสำหรับโหมด สร้าง แพ็คเกจ พิมพ์ข้อความไปที่ stdout

การใช้จินตนาการมีไว้สำหรับการรายงานผลที่กำหนดโดย crtcl::ตรวจสอบ และ
critcl::ตรวจสอบลิงค์ ระหว่างสร้าง เพื่อช่วยในการดีบักเมื่อมีสิ่งผิดปกติเกิดขึ้น
ด้วยเช็ค

[22] เปิดเผยข้อโต้แย้งที่ประมวลผลภายในของ critcl::proc สำหรับการใช้งานขั้นสูง
ผู้ใช้ คำสั่งใหม่คือ

[1] critcl::arnames

[2] critcl::argcnames

[3] critcl::argcsignature

[4] critcl::argvardecls

[5] critcl::argconversion

โปรดดูส่วน ระดับสูง ที่ฝัง C รหัส ของ วิจารณ์ เอกสารแพ็คเกจสำหรับ
รายละเอียด

[23] ขยายแพ็คเกจ critcl เพื่อสกัดกั้น แพ็คเกจ ให้ และบันทึกไฟล์ ->
การแมปชื่อแพ็คเกจ บวกกับการเปลี่ยนแปลงภายในอื่นๆ ในขณะนี้ อนุญาตให้ใช้เนมสเปซ
ชื่อแพ็กเกจในขณะที่ยังคงใช้ชื่อพาธและฟังก์ชัน init ที่ถูกต้อง

[24] ยกเลิกคำสั่งที่ไม่ได้ใช้ critcl::เพิ่มประสิทธิภาพ และ critcl::รวม.

[25] หลุด - ลิบ โหมดจากแอปพลิเคชัน critcl

[26] ลดการสนับสนุนส่วนที่เหลือสำหรับ Tcl 8.3 และก่อนหน้า

การเปลี่ยนแปลง สำหรับ VERSION 3


[1] คำสั่ง critcl::แพลตฟอร์ม เลิกใช้แล้วในเวอร์ชัน 2.1 แทนที่โดย
critcl::targetplatformแต่ยังคงไว้เพื่อความเข้ากันได้ ตอนนี้มันถูกลบออกไปแล้ว

[2] คำสั่ง critcl::คอมไพล์ ถูกเก็บไว้ในเวอร์ชัน 2.1 พร้อมความหมายใน
ขัดแย้งกับมันเพื่อความเข้ากันได้ ความขัดแย้งนี้ถูกลบออก
เปลี่ยนความหมายที่มองเห็นได้ของคำสั่งให้สอดคล้องกับชื่อคำสั่ง

[3] การเปลี่ยนแปลงเป็นเวอร์ชัน 3 กลายเป็นสิ่งจำเป็นเนื่องจากทั้งสองไม่เข้ากันที่มองเห็นได้
การเปลี่ยนแปลงข้างต้น

[4] ขยายแพ็คเกจแอปพลิเคชันด้วยรหัสจัดการตัวเลือกใหม่ -ชา. ระบุ
ตัวเลือกนี้เรียกใช้โหมดพิเศษที่ critcl สร้างแพ็คเกจ TEA เช่น wraps
อินพุตในลำดับชั้นของไดเร็กทอรีและไฟล์สนับสนุนที่ให้ไว้ TEA-
ระบบสร้างที่คล้ายคลึงกัน

ตัวเลือกใหม่นี้และ -แพ็ค, ยกเว้นซึ่งกันและกัน. หากระบุทั้งสองอย่างที่ใช้ล่าสุด
ตัวเลือกมีความสำคัญ

ลำดับชั้นไดเร็กทอรีของแพ็คเกจที่สร้างขึ้นนั้นส่วนใหญ่มีอยู่แล้วในตัวเอง แต่ไม่ทั้งหมด
มันไม่เพียงแต่ต้องการการติดตั้งที่ใช้งานได้ของ Tcl เท่านั้น แต่ยังต้องการการติดตั้งที่ใช้งานได้อีกด้วย
ของแพ็คเกจ md5 และ cmdline. ทั้งสองสิ่งนี้จัดทำโดย ทีคลิบ กำ
ไม่จำเป็น แต่แนะนำให้ติดตั้งเป็นแพ็คเกจใด ๆ ที่สามารถ
เร่งการทำงานของ md5 นั่นคือ การเข้ารหัสลับ, ทีซีแอลบีซี,หรือ ทร.

[5] ขยายแพ็คเกจ critcl ด้วยคำสั่งใหม่ คริติคอล::scan เข้าสู่เส้นทาง
".critcl" ไฟล์, สแกนมันแบบคงที่, และส่งคืนใบอนุญาต, รุ่น, รายการของ
ไฟล์คู่หู รายการ API ที่นำเข้า และรายการกำหนดเองที่นักพัฒนาระบุ
ตัวเลือกการกำหนดค่า ข้อมูลนี้เป็นพื้นฐานสำหรับการห่อ TEA ที่อธิบายไว้
ข้างบน.

โปรดทราบว่านี่คือ คงที่ สแกน ในขณะที่โหมดการสร้างอื่น ๆ สามารถ (ต้อง) ดำเนินการ
".critcl" ยื่นและตัดสินใจเฉพาะแพลตฟอร์มเกี่ยวกับโค้ด C ที่ประกอบขึ้น
ไฟล์สหาย ฯลฯ โหมดการห่อ TEA ไม่อยู่ในตำแหน่งที่จะสร้างแพลตฟอร์ม-
การตัดสินใจเฉพาะ ต้องห่อทุกอย่างที่อาจจำเป็น
เมื่อสร้างจริง ดังนั้นการสแกนแบบคงที่ อย่างไรก็ตามมีชุดของ
ปัญหาคือไม่สามารถคิดสร้างไดนามิกของสหาย
เส้นทางของไฟล์ อย่างน้อยก็ในตัวเอง ดังนั้น:

[6] ขยาย API ที่ใช้โดยแพ็คเกจที่ใช้ critcl ด้วยคำสั่ง critcl::เจ้าของ. ในขณะที่
คำสั่งนี้จะถูกละเว้นโดยโหมดการสร้างปกติที่เครื่องสแกนแบบคงที่อธิบายไว้
ด้านบนใช้อาร์กิวเมนต์เป็นชื่อของไฟล์ที่แสดงร่วมซึ่งต้องถูกห่อ
ลงในแพ็คเกจ TEA และสแกนเนอร์ไม่สามารถคิดได้เป็นอย่างอื่นเช่น
เพราะเส้นทางสู่ critcl::tsource, critcl::csources, รับแหล่งที่มา
โดยตรงหรือเพียงแค่เป็นไฟล์ข้อมูลเสริม

[7] ขยาย API ที่ใช้โดยแพ็คเกจที่ใช้ critcl ด้วยคำสั่ง Critcl::api สำหรับ
การจัดการตารางต้นขั้ว ไม่ว่าจะเป็นการใช้งาน และ/หรือการประกาศและการส่งออก

โปรดดูส่วน ไม่สมบูรณ์ ตาราง การจัดการ ของ วิจารณ์ เอกสารแพ็คเกจสำหรับ
รายละเอียด

[8] ขยาย API ที่ใช้โดยแพ็คเกจที่ใช้ critcl ด้วยคำสั่ง critcl::userconfig.php
สำหรับการจัดการตัวเลือกการกำหนดค่าแบบกำหนดเองที่นักพัฒนาระบุ ไม่ว่าจะเป็น
การใช้และ/หรือการประกาศ

โปรดดูส่วน ประเพณี สร้าง องค์ประกอบ ของ วิจารณ์ เอกสารแพ็คเกจ
เพื่อดูรายละเอียด

[9] ขยาย API ที่ใช้โดยแพ็คเกจที่ใช้ critcl ด้วยคำสั่ง
critcl::คำอธิบาย, critcl::สรุป, critcl::หัวเรื่อง, critcl::เมตาและ
critcl::buildrequirement สำหรับการประกาศข้อมูลเมตาของ TEApot สำหรับ/เกี่ยวกับ
บรรจุภัณฑ์

โปรดดูส่วน แพ็คเกจ Meta ข้อมูล ของ วิจารณ์ เอกสารแพ็คเกจสำหรับ
รายละเอียด

การเปลี่ยนแปลง สำหรับ VERSION 3.0.1


[1] แก้ไขข้อผิดพลาดทั่วๆ ไป ในรายละเอียด:

[2] แก้ไขการบันทึกข้อกำหนดเวอร์ชัน Tcl เก็บชื่อแพ็คเกจและรุ่น
ร่วมกันสร้างข้อมูลเมตาที่ไม่ทำลายและสร้างคำสั่งโหลดแพ็คเกจที่สร้างขึ้น

[3] แก้ไขสคริปต์บิลด์: เมื่อติดตั้งหรือปิด TEA ให้สร้างสิ่งที่ขาดหายไป
ไดเรกทอรี

[4] แก้ไขบิลด์สคริปต์เพื่อออกจากแอปพลิเคชันอย่างถูกต้องเมื่อหน้าต่างของ
GUI ของพวกเขาถูกปิดผ่านปุ่ม (X)

[5] ลบ 8.5-ism (เปิด wb) ซึ่งเล็ดลอดเข้าไปในสคริปต์บิลด์หลัก

[6] แก้ไขตัวอย่างสคริปต์สร้างเพื่อแยกเอาต์พุตสำหรับ different
ตัวอย่าง (และแพ็คเกจ) โดยการเพิ่มบรรทัดว่าง

[7] ข้อผิดพลาด stack::c ตัวอย่าง: รวมการประกาศ API สำหรับใช้ในไฟล์ที่แสดงร่วม

[8] ขยายเอกสาร: สังเกตความจำเป็นในการติดตั้ง C . ที่ใช้งานได้
คอมไพเลอร์

[9] ขยายคำจำกัดความและรหัสเป้าหมายของ Windows เพื่อจัดการไฟล์รายการที่ใช้
โดยสภาพแวดล้อมการพัฒนา MS ที่ทันสมัย โปรดทราบว่ารหัสนี้จัดการทั้ง
ความเป็นไปได้ สภาพแวดล้อมที่ใช้รายการ และสภาพแวดล้อม (เก่า (เอ้อ)) ที่ไม่มี

[10] ขยายคำจำกัดความและโค้ดเป้าหมายของ Windows 64 บิตเพื่อตรวจหาความต้องการโดยอัตโนมัติ
ไลบรารีตัวช่วย "bufferoverflowU.lib" และกำหนดค่าคอมไพล์และลิงก์ใหม่
สั่งการได้อย่างเหมาะสม เราคิดว่าจะต้องเชื่อมโยงห้องสมุดเมื่อมี
สิ่งนี้จะไม่เป็นอันตรายหากมีห้องสมุด แต่ยังไม่จำเป็น แค่ฟุ่มเฟือย
เราค้นหาไลบรารีในเส้นทางที่ระบุโดยตัวแปรสภาพแวดล้อม LIB

การเปลี่ยนแปลง สำหรับ VERSION 3.0.2


[1] แก้ไขปัญหาในโหมดคอมไพล์และรันที่คำสั่งที่ใส่ลงใน auto_index ไม่ใช่
พบโดยคำสั่ง [ไม่ทราบ] ของ Tcl

[2] แก้ไขการไม่ตรงกันของคีย์อาร์เรย์ที่ใช้งานข้อมูลลูกค้าและลบฟังก์ชันสำหรับ
ขั้นตอน. รายงานโดย Jos DeCoster พร้อมแพตช์

[3] ใช้งานตัวเลือกบรรทัดคำสั่ง -Lเทียบเท่า option -I, เพียงเพื่อห้องสมุด
เส้นทางการค้นหา

[4] แก้ไขปัญหา GitHub 5 และ 8 การแก้ไขตัวแปรที่หายไป ::errorInfo. มัน
ควรมีอยู่เสมอ แต่ดูเหมือนว่าจะมีการแก้ไข Tcl รอบซึ่ง
ละเมิดสมมติฐานนี้

การเปลี่ยนแปลง สำหรับ VERSION 3.0.3


[1] แก้ไขปัญหา github 5 และ 8 สำหรับตัวอย่างสคริปต์ build.tcl ทำงานรอบๆ
ตัวแปรที่หายไป ::errorInfo. มันควรจะมีอยู่เสมออย่างไรก็ตามดูเหมือนว่าจะมี
การแก้ไข Tcl รอบ ๆ ซึ่งละเมิดสมมติฐานนี้

การเปลี่ยนแปลง สำหรับ VERSION 3.0.4


[1] แก้ไขการสร้างชื่อแพ็คเกจเมื่ออ่านรหัสขาเข้าจาก
stdin และไม่มีเส้นทางที่เหมาะสม

[2] แก้ไขปัญหา github 11 ตอนนี้ใช้ /LIBPATH แทน -L บน Windows (libinclude
การตั้งค่าคอนฟิก)

[3] ขยาย critcl เพื่อจัดการ -l: รูปแบบเส้นทางของตัวเลือก -l GNU ld 2.22+ จัดการสิ่งนี้
โดยการค้นหาเส้นทางตามที่เป็นอยู่ ดีเมื่อระบุไลบรารีสแตติกเป็นธรรมดา -l
ค้นหาไลบรารีที่ใช้ร่วมกันโดยชอบมากกว่าสแตติก critcl จัดการตอนนี้เป็น
GNU ld ที่เก่ากว่าไม่เข้าใจมัน หรือตัวเชื่อมโยงเฉพาะผู้จำหน่ายต่างๆ

[4] แก้ไขปัญหา GitHub #12 ตอนนี้ Critcl จะกำหนดเวอร์ชันของ MSVC ที่ใช้งานอยู่และการใช้งาน
เพื่อสลับไปมาระหว่างตัวเลือกการดีบักลิงก์ต่างๆ ลดความซับซ้อนในการจัดการ
bufferoverflowU.lib ยังใช้กลไกเดียวกันและยุบทั้งสอง
ส่วนการกำหนดค่าที่เราได้กลับมาเป็นหนึ่งเดียว

[5] แก้ไขการแทรก #line Pragmas ลงในโค้ด C ที่สร้างขึ้นใหม่เพื่อหลีกเลี่ยง
ข้อจำกัดของอาร์กิวเมนต์หมายเลขบรรทัดที่กำหนดโดยคอมไพเลอร์ต่างๆ และมากกว่านั้น
ถูกต้อง

[6] แก้ไขการประมวลผลอาร์กิวเมนต์ ตัวเลือก -libdir ในตอนนี้ยังหมายถึง -L สำหรับอาร์กิวเมนต์ของมันด้วย

[7] ขยายการจัดการตัวเลือก -show (critcl::showconfig) เพื่อแสดงรายการเส้นทางของ
ไฟล์การกำหนดค่าข้อมูลที่มาจาก ดีสำหรับการดีบักการกำหนดค่า
การประมวลผล

[8] ขยายสคริปต์การสร้างด้วยเป้าหมายเพื่อสร้างเอกสารที่ฝังไว้ใหม่
และไดอะแกรมและเพื่อสร้างการเปิดตัว

การเปลี่ยนแปลง สำหรับ VERSION 3.0.5


[1] แก้ไขข้อบกพร่องในโค้ดใหม่สำหรับ #line Pragmas ที่ทริกเกอร์เมื่อระบุรหัส C
โดยไม่มีช่องว่างนำหน้า

[2] ขยายเอกสารให้มี manpages สำหรับใบอนุญาต การดึงแหล่งที่มา
ตัวติดตั้งและคู่มือนักพัฒนา

การเปลี่ยนแปลง สำหรับ VERSION 3.0.6


[1] แก้ไขปัญหา github 10. แอปพลิเคชัน critcl ส่งรหัสทางออกที่เหมาะสม (1)
ในการสร้างความล้มเหลว แทนที่จะแสดงความสำเร็จเสมอ (สถานะ 0)

[2] แก้ไขปัญหา GitHub 13. การจัดการ bufferoverflowU.lib สำหรับบิลด์รุ่น was
ไม่สอดคล้องกับการจัดการสำหรับบิลด์การดีบัก ตอนนี้มันถูกจัดการเหมือนกัน
(เงื่อนไข) โดยทั้งสองกรณี

[3] การล้างข้อมูลเอกสาร ส่วนใหญ่อยู่ในคู่มือการติดตั้ง และ README.md แสดงโดย
GitHub

การเปลี่ยนแปลง สำหรับ VERSION 3.0.7


[1] แก้ไขรหัสที่สร้างโดย critcl::c++คำสั่ง. รหัสที่ปล่อยออกมาส่งให้
ตารางสตริงคงที่ถึง Tcl_GetIndexFromObjอันเป็นการฝ่าฝืนสัญญาซึ่ง
ต้องการให้ตารางมีที่อยู่คงที่ นี่คือความทรงจำที่รออยู่
เกิดขึ้น. ขอบคุณ Brian Griffin ที่เตือนเราถึงปัญหาทั่วไป

การเปลี่ยนแปลง สำหรับ VERSION 3.1


[1] เพิ่มแพ็คเกจระดับสูงใหม่ critcl::iassoc.

แพ็คเกจนี้ช่วยลดความยุ่งยากในการสร้างโค้ดที่เชื่อมโยงข้อมูลกับล่าม
ผ่าน Tcl's Tcl_(รับ|ตั้งค่า)AssocData() API ผู้ใช้สามารถจดจ่อกับข้อมูลของเขาในขณะที่
รหัส C ต้นแบบที่จำเป็นทั้งหมดเพื่อรองรับสิ่งนี้จะถูกสร้างขึ้นโดยแพ็คเกจ

แพ็คเกจนี้ใช้คุณสมบัติใหม่หลายอย่างซึ่งถูกเพิ่มเข้าไปในคอร์ วิจารณ์
แพ็คเกจดูด้านล่าง

[2] เพิ่มแพ็คเกจระดับสูงขึ้น critcl::คลาส.

แพ็คเกจนี้ช่วยลดความยุ่งยากในการสร้างวัตถุระดับ C ด้วยคลาสและอินสแตนซ์
คำสั่ง ผู้ใช้สามารถเขียนนิยามคลาสด้วยตัวแปรคลาสและอินสแตนซ์
และ -methods คล้ายกับคลาส TclOO โดยมีรหัส C สำเร็จรูปที่จำเป็นทั้งหมดเป็น
สนับสนุนสิ่งนี้ที่สร้างโดยแพ็คเกจ

แพ็คเกจนี้ใช้คุณสมบัติใหม่หลายอย่างซึ่งถูกเพิ่มเข้าไปในคอร์ วิจารณ์
แพ็คเกจดูด้านล่าง

[3] ขยาย API สำหรับจัดการข้อมูลเมตาของ TEApot เพิ่มคำสั่ง critcl::เมตา? ไปยัง
สอบถามข้อมูลที่เก็บไว้ การใช้งานหลักที่จินตนาการไว้ในขณะนี้คือการดึงข้อมูลของ
ชื่อแพ็คเกจปัจจุบันตามคำสั่งยูทิลิตี้ สำหรับใช้ในชื่อที่สร้างขึ้น นี้
มีข้อมูลเฉพาะอยู่เสมอเนื่องจากการสแกนแบบคงที่ของแพ็คเกจ
ไฟล์ในการดำเนินการของคำสั่ง critcl แรก

แพ็คเกจใหม่ critcl::iassoc และ critcl::คลาส (ดูด้านบน) เป็นผู้ใช้สิ่งนี้
คำสั่ง

[4] ขยาย API ด้วยคำสั่ง critcl::name2c, เผยให้เห็นกระบวนการแปลง
ชื่อ Tcl เป็นชื่อฐาน เนมสเปซ และเนมสเปซ C นี้จะช่วยให้ระดับที่สูงขึ้น
เครื่องกำเนิดโค้ดเพื่อสร้างตัวระบุ C ชนิดเดียวกับ วิจารณ์ ตัวเอง

แพ็คเกจใหม่ critcl::คลาส (ดูด้านบน) เป็นผู้ใช้คำสั่งนี้

[5] ขยาย API ด้วยคำสั่ง crtcl::แหล่งที่มา, ดำเนินการคำสั่ง critcl ที่พบใน
ไฟล์แยกต่างหากในบริบทของไฟล์ปัจจุบัน ช่วยให้การจัดการง่ายขึ้น
ของโค้ดที่ใหญ่ขึ้นเนื่องจากทำให้ผู้ใช้แยกย่อยเป็น to . ได้ง่ายขึ้น
แยกย่อยชิ้นเล็ก ๆ โดยไม่ก่อให้เกิดการสร้างหลายแพ็คเกจ

[6] ที่เกี่ยวข้องกับรายการก่อนหน้า ขยาย API ด้วยคำสั่งเพื่อโอนคอลเลกชัน
ของรหัส C ที่สร้างขึ้นในหน่วยความจำ ทำให้ง่ายต่อการใช้คำสั่งสำหรับ
ฝังรหัส C ในตัวสร้างรหัสระดับสูงกว่า

ดูส่วน ขั้นสูง: ความหลากหลาย สำหรับรายละเอียดของคำสั่งที่ให้มา

แพ็คเกจใหม่ critcl::คลาส (ดูด้านบน) เป็นผู้ใช้สิ่งอำนวยความสะดวกเหล่านี้

[7] ขยาย API ด้วยคำสั่งที่ช่วยนักพัฒนาในการสร้าง C . ที่เหมาะสม
#ไลน์ คำสั่ง ซึ่งช่วยให้ตัวสร้างโค้ดระดับสูงสามารถสร้างและแทรก
คำสั่งของตนเองเพื่อให้แน่ใจว่าข้อผิดพลาดในการคอมไพล์ในโค้ดนั้นถูกต้อง
นำมาประกอบ

ดูส่วน ขั้นสูง: แผนที่ การจัดการ สำหรับรายละเอียดของคำสั่งที่ให้มา

แพ็คเกจใหม่ critcl::iassoc และ critcl::คลาส (ดูด้านบน) เป็นผู้ใช้เหล่านี้
สิ่งอำนวยความสะดวก

[8] ขยาย API ด้วยคำสั่งที่ให้ผู้ใช้สามารถกำหนดอาร์กิวเมนต์ที่กำหนดเองได้
และประเภทผลลัพธ์สำหรับ ::critcl::cproc.

ดูส่วน ขั้นสูง: ขยาย ซีโปร สำหรับรายละเอียดของคำสั่งที่ให้มา

การเปลี่ยนแปลง สำหรับ VERSION 3.1.1


[1] แก้ไขข้อผิดพลาดทั่วๆ ไป ในรายละเอียด:

[2] แก้ไขข้อผิดพลาดการสร้างข้อผิดพลาด #args สำหรับ critcl::cproc และรหัสที่ได้รับ
(critcl::คลาส วิธีการตาม cproc) ใช้ NULL หากไม่มีอาร์กิวเมนต์ และรับ
ออฟเซ็ตเข้าบัญชี

[3] แก้ไขการจัดการชื่อแพ็คเกจโดย critcl::คลาส. ลืมไปว่าอาจมี
ตัวคั่นเนมสเปซ ชนเป็นเวอร์ชัน 1.0.1

[4] ขยาย a critcl::คลาส สร้างข้อความแสดงข้อผิดพลาดในการสร้างอินสแตนซ์เพื่อความชัดเจน
ชนเป็นเวอร์ชัน 1.0.2

การเปลี่ยนแปลง สำหรับ VERSION 3.1.2


[1] การเพิ่มประสิทธิภาพ ในรายละเอียด:

[2] ขยายเวลา critcl::cproc เพื่อให้สามารถจัดการกับอาร์กิวเมนต์ที่เป็นทางเลือกได้ ในทางที่จำกัด
นี้ใช้ได้โดยอัตโนมัติเพื่อ critcl::คลาส วิธีการที่ใช้ cproc เช่นกัน

[3] แก้ไขข้อผิดพลาดใน มอบหมาย การจำลองสำหรับ Tcl 8.4 ตั้งค่าตัวแปรที่ไม่ได้ใช้อย่างเหมาะสมเป็น
สตริงที่ว่างเปล่า แพ็คเกจการจำลองเวอร์ชันที่ชนกัน ลามอบหมาย84 เพื่อ 1.0.1

การเปลี่ยนแปลง สำหรับ VERSION 3.1.3


[1] การเพิ่มประสิทธิภาพ ในรายละเอียด:

[2] เพิ่มประเภทอาร์กิวเมนต์ใหม่ "pstring" สำหรับ "Pascal String" ซึ่งเป็นสตริงที่นับแล้ว เช่น a
การรวมกันของตัวชี้สตริงและความยาวของสตริง

[3] เพิ่มวิธีการใหม่ critcl::argtypesupport และ ::critcl::argsupport เพื่อกำหนดและใช้
รหัสสนับสนุนเพิ่มเติมสำหรับประเภทอาร์กิวเมนต์ ที่นี่ใช้โดย "pstring" ด้านบน to
กำหนดโครงสร้างที่จำเป็น

[4] การแก้ไขจุดบกพร่องในแพ็คเกจ critcl::คลาส และ critcl::iassoc. Pragmas สำหรับ AS
เครื่องสแกนข้อมูลเมตาเพื่อให้แน่ใจว่าไฟล์เทมเพลตนั้นเป็นส่วนหนึ่งของแพ็คเกจ
เวอร์ชันชนไปที่ 1.0.4 และ 1.0.1 ตามลำดับ

การเปลี่ยนแปลง สำหรับ VERSION 3.1.4


[1] แก้ไขข้อผิดพลาดในแพ็คเกจ critcl::คลาส. สร้างฟิลด์จำลองในโครงสร้างคลาส if
คลาสไม่มีตัวแปรคลาส หากปราศจากการเปลี่ยนแปลงนี้ โครงสร้างจะว่างเปล่า
และคอมไพเลอร์จำนวนหนึ่งไม่สามารถจัดการกับประเภทดังกล่าวได้

[2] แก้ไขข้อผิดพลาดที่ทำให้การกำหนดค่า win64 เสียหาย

[3] แก้ไขปัญหา #16 การพิมพ์ผิดในเอกสารประกอบของคำสั่ง critcl::คลาส.

การเปลี่ยนแปลง สำหรับ VERSION 3.1.5


[1] แก้ไขปัญหา #19. สร้างนิพจน์ทั่วไปแยกหมายเลขเวอร์ชัน MSVC
ทั่วไปมากขึ้นเพื่อให้ทำงานบนระบบภาษาเยอรมัน นี่อาจจะต้อง
จะกลับมาเยี่ยมชมอีกในอนาคตสำหรับสถานที่ Windows อื่น ๆ

[2] แก้ไขปัญหา #20. สร้างตัวเลือก - ชาทำงานบน windows อย่างน้อยในการจำลองยูนิกซ์
สภาพแวดล้อมเช่น msys/mingw.

การเปลี่ยนแปลง สำหรับ VERSION 3.1.6


[1] แก้ไขปัญหา #21 ในขณะที่หลายคำจำกัดความของตัวแปรพอยน์เตอร์ตาราง stub คือ
ตกลงสำหรับตัวเชื่อมโยง C ทั้งหมดที่เห็นจนถึงตอนนี้ ตัวเชื่อมโยง C ++ ไม่ชอบสิ่งนี้เลย
ทำใหม่โค้ดเพื่อให้แน่ใจว่าชุดของตัวแปรนี้ถูกสร้างขึ้นเพียงครั้งเดียวใน
ห่อรอบชิ้นส่วนทั้งหมดที่จะประกอบ

[2] แก้ไขปัญหา #22 การจัดการอาร์กิวเมนต์ตัวระบุคำสั่งของ
critcl::คำสั่ง, critcl::cprocและ critcl::cdata. ตอนนี้เราอนุญาต Tcl . ใดๆ อย่างถูกต้องแล้ว
ตัวระบุและสร้างตัวระบุ C ภายในที่เหมาะสมจากพวกเขา

เป็นส่วนหนึ่งของลายเซ็นคำสั่ง critcl::name2c เปลี่ยน. คำสั่งตอนนี้
แสดงรายการค่าสี่ค่าแทนที่จะเป็นสามค่า เพิ่มมูลค่าใหม่ที่
ท้าย

ปรับปรุงการใช้งานแพ็คเกจเพิ่มเติม critcl::คลาส, ผู้ใช้ของ
critcl::name2c. แพ็คเกจนี้อยู่ที่เวอร์ชัน 1.0.6 และต้องใช้ critcl 3.1.6

แก้ไขการจัดการตัวเลือกผิดพลาดครั้งสุดท้าย -ชื่อ in critcl::คำสั่งและ
critcl::cproc.

[3] แก้ไขปัญหา #23

การเปลี่ยนแปลง สำหรับ VERSION 3.1.7


[1] แก้ไขปัญหา #24. แยกและแสดงคำเตือนของคอมไพเลอร์อย่างไม่มีเงื่อนไขที่พบในไฟล์
บันทึกการสร้าง ป้องกันผู้ใช้จากคำเตือนที่หายไปซึ่งในขณะที่ไม่ก่อให้เกิดการ build
ล้มเหลวอาจยังบ่งบอกถึงปัญหา

[2] คุณสมบัติใหม่ ตะขอเอาท์พุต เอาต์พุตผู้ใช้ที่ไม่ใช่การส่งข้อความทั้งหมดถูกกำหนดเส้นทางผ่านทาง
คำสั่ง critcl::พิมพ์และผู้ใช้สามารถแทนที่ได้เมื่อใช้ crtcl
แอปพลิเคชั่นเป็นแพ็คเกจ

[3] คุณลักษณะใหม่ โดย Ashok P. Nadkarni การกำหนดค่าแพลตฟอร์มสามารถรับค่าจาก
การกำหนดค่าที่กำหนดไว้ก่อนหน้านั้น

การเปลี่ยนแปลง สำหรับ VERSION 3.1.8


[1] แก้ไขปัญหาเกี่ยวกับดัชนีแพ็คเกจที่สร้างขึ้นสำหรับ Tcl 8.4 เข้าร่วมรายการคำสั่ง
ด้วยเซมิโคลอน ไม่ใช่ขึ้นบรรทัดใหม่

[2] แก้ไขปัญหา #26 ซึ่งทำให้เกิดกรณีการใช้งานที่ฉันลืมพิจารณาขณะแก้ไข
ข้อผิดพลาด #21 (ดู critcl 3.1.6)

การเปลี่ยนแปลง สำหรับ VERSION 3.1.9


[1] แก้ไขปัญหา #27 เพิ่มคำจำกัดความของแพลตฟอร์มที่ขาดหายไปสำหรับลินุกซ์สำรองและ
เป้าหมายของ OS X

[2] แก้ไขปัญหา #28. เพิ่มแฟล็ก -mXX ที่หายไปสำหรับการเชื่อมโยงที่ linux-{32,64}-*
เป้าหมาย

[3] แก้ไขปัญหา #29 แทนที่การใช้ข้อมูล "cheaders" ดิบในการประมวลผล
ของ "cdefines" พร้อมคำสั่งรวมที่เหมาะสมที่ได้รับจากมัน

[4] แก้ไขปัญหาเบื้องหลังคำขอดึงที่ถูกปฏิเสธ #30 โดย Andrew Shadura แบบไดนามิก
แยกการประกาศตัวแปรต้นขั้วจากไฟล์ส่วนหัว Tcl และสร้าง
จับคู่คำจำกัดความของตัวแปรเพื่อใช้ในรหัสแพ็คเกจ รหัสที่สร้างขึ้นจะ
ตอนนี้ให้สอดคล้องกับส่วนหัวเสมอแม้ว่าสำเนาของ crtcl จะเป็น
แทนที่ด้วยส่วนหัวของระบบ

[5] แก้ไขปัญหา #31. ยอมรับแพตช์โดย Andrew Shadura พร้อมการเปลี่ยนแปลง (ความคิดเห็น) สำหรับ
การรวม critcl เข้ากับระบบแพ็คเกจ OS ได้ง่ายขึ้นโดยแทนที่สำเนาของ critcl ของ
ส่วนหัว Tcl ด้วยตัวของพวกเขาเอง

[6] แก้ไขปัญหา #32. รวมคำขอดึงโดย Andrew Shadura การพิมพ์ผิดต่างๆใน
เอกสารและความคิดเห็น

[7] แก้ไขปัญหา #33. จัดการไฟล์ที่ขึ้นต้นด้วยจุดดีกว่า

ผู้เขียน


ฌอง โคล้ด วิพเปลอร์, สตีฟ แลนเดอร์ส, แอนเดรียส คูปรีส์

ใช้ critcl ออนไลน์โดยใช้บริการ onworks.net



โปรแกรมออนไลน์ Linux และ Windows ล่าสุด