การเปิดตัว SBCL 2.4.1 ซึ่งเป็นการนำภาษา Common Lisp ไปใช้

SBCL 2.4.1 (Steel Bank Common Lisp) ซึ่งเป็นภาษาโปรแกรม Common Lisp ที่ใช้งานฟรี ได้รับการเผยแพร่แล้ว รหัสโครงการเขียนด้วย Common Lisp และ C และเผยแพร่ภายใต้ใบอนุญาต BSD

ในรุ่นใหม่:

  • เพิ่มการรองรับบางส่วนสำหรับส่วนหัวของอินสแตนซ์แบบกะทัดรัดให้กับตัวรวบรวมขยะแบบขนานโดยใช้อัลกอริธึมมาร์ค-ภูมิภาค
  • สำหรับฟังก์ชันที่มีประเภทการส่งคืนที่ประกาศไว้ โหมดการปรับให้เหมาะสม SAFETY และ DEBUG 3 ขนาดใหญ่ช่วยให้แน่ใจว่ามีการตรวจสอบประเภทกับค่าที่ส่งคืน
  • บนแพลตฟอร์ม FreeBSD มีการใช้การลิงก์กับ libpthread และปิดใช้งานการสุ่มพื้นที่ที่อยู่ (ASLR)
  • แอสเซมบลีบนสถาปัตยกรรม riscv และ ppc แบบ 64 บิตได้รับการกู้คืนแล้ว
  • มีการรองรับ Fastrem-32 สำหรับทุกแพลตฟอร์ม (สำหรับการคำนวณ FLOOR ที่ปรับให้เหมาะสม)
  • แก้ไขข้อผิดพลาดที่ทำให้บรรทัดที่ถูกย้ายถูกล้างใหม่หลังจากการบดอัดหน่วยความจำโดยตัวรวบรวมขยะแบบขนานของภูมิภาคทำเครื่องหมาย
  • ปัญหาเกี่ยวกับการวนซ้ำของคอมไพเลอร์เมื่อประมวลผลโครงสร้างบางอย่างที่มีประเภท SATISFIES ได้รับการแก้ไขแล้ว
  • ตารางแฮชที่ใช้ในส่วนต่างๆ ของระบบ (แพ็คเกจ ตาราง Unicode) จะถูกแปลงให้ใช้ฟังก์ชันแฮชที่ไม่มีการชนกัน (สมบูรณ์แบบ)
  • แมโคร TYPECASE สำหรับลำดับชั้นโครงสร้างคลาสถูกนำมาใช้โดยใช้แฮชที่ไม่มีการชนกัน
  • เพื่อเพิ่มประสิทธิภาพการทำงาน การตรวจสอบขอบเขตได้ถูกลบออกสำหรับดัชนีที่มีค่าออฟเซ็ตคงที่ โดยที่คอมไพลเลอร์รู้ว่าดัชนีนั้นน้อยกว่าความแตกต่างระหว่างขนาดและออฟเซ็ต
  • คอมไพเลอร์คำนึงถึงข้อมูลการปรับให้เหมาะสม DIGIT-CHAR เพิ่มเติม
  • คอมไพเลอร์ได้ใช้ความสามารถในการยกเว้นค่ากลางในการเรียก APPLY, CONCATENATE และ MAKE-ARRAY บางส่วนสำหรับอาร์กิวเมนต์ที่สร้างจากลำดับที่มีการแก้ไขข้อเสียใหม่
  • การทำงานของลูป “(LOOP FOR X IN (REVERSE LIST) ...)” ได้รับการเร่ง ซึ่งขณะนี้ใช้ข้อเสียน้อยลง
  • ลูป "(LOOP... APPEND...)" มีขนาดกะทัดรัดกว่าและทำงานน้อยลงเมื่อเพิ่ม NIL
  • การตรวจสอบประเภทสำหรับอาร์เรย์ต่างๆ ได้รับการเร่งและลดให้สั้นลง

ที่มา: opennet.ru

เพิ่มความคิดเห็น