นิม 1.2.0 เปิดตัว

ภาษาการเขียนโปรแกรมระบบ Nim เวอร์ชันใหม่เปิดตัวแล้ว มีความเข้ากันไม่ได้บางส่วนกับเวอร์ชัน 1.0 เช่น เนื่องจากการแปลงประเภทที่เข้มงวดมากขึ้น แต่ในกรณีนี้จะมีแฟล็ก -useVersion:1.0

นวัตกรรมหลักคือตัวรวบรวมขยะใหม่ เปิดใช้งานโดยตัวเลือก -gc:arc ผู้เขียนภาษา Andreas Rumpf กำลังจะเขียนบทความโดยละเอียดเกี่ยวกับข้อดีของ ARC แต่ตอนนี้เขาขอเชิญคุณอ่าน กับการแสดงของเขาที่ FOSDEMซึ่งแสดงผลการวัดประสิทธิภาพ

  • ขณะนี้คอมไพเลอร์สนับสนุนตัวเลือก --asm เพื่อการตรวจสอบโค้ดแอสเซมบลีที่ผลิตได้สะดวกยิ่งขึ้น
  • align pragma สามารถใช้กับตัวแปรอ็อบเจ็กต์และฟิลด์ได้ ซึ่งจะคล้ายกับ alignas ใน C/C++
  • ขณะนี้ตัวดำเนินการ =sink เป็นทางเลือก คอมไพเลอร์สามารถใช้ =destroy และ copyMem ร่วมกันเพื่อย้ายอ็อบเจ็กต์ไปรอบๆ ได้อย่างมีประสิทธิภาพ
  • การแปลงเป็นจำนวนเต็มที่ไม่ได้ลงนามจะไม่ได้รับการตรวจสอบในขณะรันไทม์ รายละเอียดใน https://github.com/nim-lang/RFCs/issues/175
  • ไวยากรณ์ใหม่สำหรับ lvalue: var b {.byaddr.} = expr เชื่อมต่อผ่านการนำเข้า std/decls
  • คอมไพเลอร์รองรับสวิตช์ใหม่ -panics:on ซึ่งเปลี่ยนข้อผิดพลาดรันไทม์ เช่น IndexError หรือ OverflowError ให้เป็นข้อผิดพลาดร้ายแรงที่ไม่สามารถตรวจจับได้จากการลอง สิ่งนี้สามารถปรับปรุงประสิทธิภาพรันไทม์และขนาดโปรแกรมได้
  • รหัส JS ที่สร้างขึ้นใช้เฉพาะช่องว่างแทนที่จะเป็นช่องว่างและแท็บที่ไม่ตรงกัน
  • คอมไพลเลอร์ได้เพิ่มการสนับสนุนสำหรับ .localPassc pragma ซึ่งสามารถใช้เพื่อจัดการตัวเลือกแบ็กเอนด์ C(++) พิเศษสำหรับไฟล์ C(++) ที่สร้างขึ้นจากโมดูล Nim ปัจจุบัน
  • Nimpretty ไม่ยอมรับข้อโต้แย้งเชิงลบในการตั้งค่าการเยื้องอีกต่อไป เนื่องจากจะทำให้ไฟล์เสียหาย
  • มีการเพิ่มมาโครใหม่ (รวบรวม ทำซ้ำ จับภาพ) เชื่อมต่อผ่านการนำเข้าน้ำตาล

นอกจากนี้ยังมีการเพิ่มการเปลี่ยนแปลงมากมายในไลบรารีมาตรฐานและการแก้ไขข้อบกพร่องมากมาย

ที่มา: linux.org.ru

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