7 คะแนน โดย GN⁺ 2023-10-03 | 3 ความคิดเห็น | แชร์ทาง WhatsApp
  • การแยกวิเคราะห์ f-string ที่ยืดหยุ่นมากขึ้น (PEP 701)
  • รองรับ buffer protocol ในโค้ด Python (PEP 688)
  • API ใหม่สำหรับการดีบัก/การทำโปรไฟล์ (PEP 669)
  • รองรับ GIL แบบต่ออินเทอร์พรีเตอร์ ทำให้แต่ละ sub-interpreter มี GIL แยกของตัวเอง (PEP 684)
  • ปรับปรุงข้อความแสดงข้อผิดพลาด และมีการแนะนำ exception เพิ่มเติมให้ผู้ใช้ในกรณีที่อาจเกิดจากการพิมพ์ผิด
  • รองรับโปรไฟเลอร์ perf บน Linux ทำให้ใน trace มีชื่อฟังก์ชันของ Python รวมอยู่ด้วย
  • มีการปรับปรุงประสิทธิภาพทั้งเล็กและใหญ่ ส่งผลให้ประสิทธิภาพโดยรวมดีขึ้น 5%
  • เพิ่มไวยากรณ์ใหม่สำหรับ type annotation ของคลาสทั่วไป (PEP 695) และตัวตกแต่ง override แบบใหม่สำหรับเมธอด (PEP 698)
  • ลบฟีเจอร์ที่เลิกใช้งานแล้ว เช่น สมาชิก wstr และ wstr_length ใน C implementation ของอ็อบเจ็กต์ Unicode, เมธอดและคลาสบางส่วนในโมดูล unittest, รวมถึงโมดูล smtpd และ distutils
  • ลำดับ escape ของ backslash ที่ไม่ถูกต้องในสตริง จะเตือนเป็น SyntaxWarning แทน DeprecationWarning แล้ว
  • มีการเปลี่ยนแปลงรูปแบบภายในของจำนวนเต็มเพื่อเตรียมพร้อมสำหรับการเพิ่มประสิทธิภาพ

3 ความคิดเห็น

 
cosine20 2023-10-04

Per-Interpreter GIL น่าสนใจดีนะ

 
GN⁺ 2023-10-03
ความคิดเห็นบน Hacker News
  • Python 3.12 เพิ่มไวยากรณ์ใหม่สำหรับการประกาศชนิดของ kwargs และช่วยให้ทำความเข้าใจข้อมูลที่จำเป็นสำหรับไลบรารีได้ดีขึ้น
  • เวอร์ชันใหม่นี้มี itertools.batched สำหรับแบ่ง iterable ออกเป็นชังก์ ซึ่งเป็นฟีเจอร์ที่ได้รับการต้อนรับ
  • Python 3.12 เพิ่ม API ใหม่สำหรับให้ profiler, debugger และเครื่องมืออื่น ๆ เฝ้าติดตามอีเวนต์ของ CPython ทำให้รองรับ debugger และเครื่องมือ coverage ที่มี overhead แทบเป็นศูนย์ได้
  • ฟีเจอร์ใหม่ใน Python 3.12 รวมถึงการแยกวิเคราะห์ f-string ที่ยืดหยุ่นขึ้น, การรองรับ buffer protocol ในโค้ด Python, API ใหม่สำหรับ debugging/profiling และการรองรับ isolated sub-interpreter ที่มี Global Interpreter Locks แยกกัน
  • อัปเดตนี้ยังมาพร้อมการปรับปรุงข้อความแสดงข้อผิดพลาด, การรองรับให้ Linux perf profiler แสดงชื่อฟังก์ชัน Python ใน trace และการปรับปรุงประสิทธิภาพทั้งเล็กและใหญ่จำนวนมาก
  • ไวยากรณ์ใหม่ของ type annotation สำหรับ generic class และ override decorator แบบใหม่สำหรับเมธอดก็เป็นส่วนหนึ่งของอัปเดตนี้เช่นกัน
  • มีการถอดฟีเจอร์ที่เลิกใช้งานแล้วออก รวมถึงโมดูล smtpd และ distutils และมีการเปลี่ยนแปลงรูปแบบการแทนค่าภายในของจำนวนเต็มเพื่อเตรียมพร้อมสำหรับการเพิ่มประสิทธิภาพ
  • ผู้ใช้แสดงความขอบคุณต่อการปรับปรุงข้อความแสดงข้อผิดพลาด และต้องการให้มี rich text จริงเพื่อช่วยให้การดีบักง่ายขึ้น
  • การรองรับ isolated sub-interpreter ที่มี Global Interpreter Locks แยกกันถูกมองว่าเป็นก้าวสำคัญในการมอบรูปแบบหนึ่งของ concurrency
  • Python 3.12 แสดงให้เห็นถึงการปรับปรุงประสิทธิภาพที่สังเกตได้ชัดในงานที่ใช้การคำนวณหนัก
  • ผู้ใช้สนใจวิธีใช้ PEP 669 ซึ่งเป็น API ใหม่สำหรับการมอนิเตอร์อีเวนต์ของ CPython ให้เกิดประโยชน์สูงสุด