1 điểm bởi GN⁺ 2023-10-22 | 1 bình luận | Chia sẻ qua WhatsApp
  • Ban chỉ đạo Python công bố kế hoạch biến Global Interpreter Lock (GIL) thành tùy chọn trong các bản phát hành Python tương lai
  • PEP 703, đề xuất hiện vẫn đang được thảo luận, đang trong quá trình chốt các chi tiết
  • Phiên bản Python không có GIL được kỳ vọng sẽ giải quyết một số vấn đề khó nhất của khoa học máy tính, đặc biệt là vấn đề đặt tên
  • Sam Gross, tác giả của PEP 703, đã thảo luận về sự tương tác giữa đề xuất này và ABI ổn định của CPython
  • ABI ổn định được dùng cho các phần mở rộng nhằm hỗ trợ binary wheel tương thích với nhiều phiên bản CPython
  • Đề xuất hình dung một phiên bản CPython duy nhất không có GIL, nhưng trong thời gian đó sẽ có các bản dựng trình thông dịch để thử nghiệm hoạt động no-GIL
  • Các phần mở rộng được tạo cho ABI ổn định sẽ không tương thích với no-GIL CPython 3.13, nhưng Gross đề xuất thay đổi các phần mở rộng để chúng hoạt động với cả hai kiểu bản dựng CPython sau phiên bản đó
  • Thảo luận về cách đặt tên cho phiên bản no-GIL đã được tách thành một luồng riêng
  • Ban chỉ đạo đã đồng ý tránh dùng tên "nogil" để mô tả bản dựng và đề xuất "free-threading" làm phương án thay thế
  • Việc phê duyệt cuối cùng cho PEP 703 vẫn đang được tạm hoãn, và ban chỉ đạo đang làm rõ các tiêu chí phê duyệt
  • Phiên bản no-GIL của CPython được dự đoán sẽ có tác động quan trọng đến quá trình phát triển CPython và hệ sinh thái của nó trong hơn 5 năm tới

1 bình luận

 
GN⁺ 2023-10-22
Ý kiến trên Hacker News
  • Thảo luận về tiến độ của No-GIL CPython
  • Có ý kiến cho rằng tính song song tường minh cần trở nên quan trọng hơn trong điện toán hiện đại và Python phải thích nghi với xu hướng này
  • Lo ngại rằng nếu GIL bị loại bỏ, mã Python đa luồng có thể phát sinh tranh chấp dữ liệu và các phép toán sai
  • Câu hỏi về tính khả thi của một trình phân tích tĩnh có thể xác định các vấn đề tiềm ẩn trong các chương trình Python hiện có sau khi GIL bị loại bỏ
  • Một số người bình luận so sánh sự tiến hóa của Python với OCaml và tự hỏi liệu có những điểm tương đồng nào giữa hai dự án
  • Tranh luận về trọng tâm hiện tại đối với Python không có GIL, trong đó một số người cho rằng nên ưu tiên cải thiện hiệu năng đơn luồng hơn là đa luồng thực sự
  • Một số người bình luận đề xuất giữ lại GIL nhưng giới thiệu Workers tương tự JavaScript, trong đó mỗi luồng worker là một VM cô lập với GIL riêng
  • Cũng có thảo luận về quá trình chuyển đổi dài và khó khăn từ Python 2 sang Python 3, và một số người cho rằng cộng đồng Python lẽ ra có thể tận dụng cơ hội đó để mang lại những thay đổi lớn hơn cho phần bên trong của trình thông dịch
  • Bày tỏ sự tò mò về các ứng dụng và dịch vụ tiềm năng có thể hưởng lợi từ No-GIL Python, cũng như những gì các nhà phát triển kỳ vọng từ sự phát triển này