ข้อพิจารณาด้านเทคนิคสำหรับผู้ดูแลบรรจุภัณฑ์ที่จะไม่ใช้ตัวจัดการแพ็คเกจ Emacs?


10

ฉันสังเกตเห็นว่าผู้ดูแลแพ็คเกจบางคนเลือกที่จะไม่ใช้ระบบการจัดการแพ็คเกจ Emacs (ESS?) หรือบ่นเกี่ยวกับข้อ จำกัด (Helm)

ข้อความจากพวงมาลัย 's README.md :

คำเตือน : เนื่องจากแนวคิดที่ไม่ดีของ package.el ซึ่งมีหน้าที่เรียกไฟล์ helm และรวบรวมพวกเขาผู้ใช้มีข้อผิดพลาดส่วนใหญ่เมื่ออัพเกรดจาก melpa และ list-package เพื่อหลีกเลี่ยง Async นี้ได้รับการเพิ่มเป็นการพึ่งพาหางเสือเพื่อบังคับ package.el รวบรวมไฟล์ในสภาพแวดล้อมที่สะอาด ผู้ที่ติดตั้งจาก git และใช้ไฟล์ make จะไม่ประสบปัญหานี้และไม่จำเป็นต้องใช้ Async ถึงแม้ว่าจะแนะนำให้แก้ไขเนื่องจากการติดตั้งแพ็กเกจอื่น ๆ ทั้งหมดที่คุณอาจติดตั้งด้วย package.el จาก (m) elpa ดูคำถามที่พบบ่อยสำหรับข่าวสารเพิ่มเติม

ข้อ จำกัด ทางเทคนิคที่แน่นอนอะไรบ้างที่ระบบการจัดการบรรจุภัณฑ์ในปัจจุบันมีให้สามารถกล่าวถึงได้และทำไมแพคเกจจึงจำเป็นต้องใช้asyncเป็นการพึ่งพา


1
ฉันคิดว่าคำถามนี้ควรปิดกว้างเกินไปสำหรับเว็บไซต์นี้ มันมีวัตถุประสงค์เพื่อที่ดีกว่าฟอรั่มการสนทนา ลองใช้ help-gnu-emacs@gnu.org หรือ emacs-devel@gnu.org หรือ Emacs reddit หรือบางอย่าง " ปัญหาคืออะไรกันแน่ " สมมติว่ามีปัญหาดังกล่าวและถามว่าปัญหาที่เป็นไปได้สำหรับแพ็คเกจใด (หรือผู้ดูแลแพ็คเกจ) กว้างเกินไป
Drew

2
ESS โฮสต์บน Melpa: melpa.org/#/essบางทีมันอาจเป็นเพียงเอกสารประกอบ ฉันรู้ว่าหลายโครงการซึ่งโดยทั่วไปสามารถติดตั้งผ่านตัวจัดการแพคเกจระบบ แต่เลือกที่จะไม่พูดถึงตัวเลือกนั้นโดยไม่มีเหตุผลจริง (อาจสมมติว่าถ้าคุณไปถึงการดาวน์โหลดแหล่งที่มา / ไบนารีจากไซต์คุณต้องมี เหตุผลที่ต้องทำ) ฉันไม่รู้ว่า Helm มีปัญหาอะไร
wvxvw

ชื่อของคุณอ่านแปลก ๆ ให้ฉัน คุณหมายถึงเขียน "ผู้จัดการ" สองครั้งหรือคุณหมายถึงผู้ดูแล
Malabarba

1
การเขียนในฐานะนักพัฒนา ESS แจ้งให้เราทราบว่าเราสามารถปรับปรุงเรื่องต่าง ๆ ได้อย่างไรเมื่อผู้อื่นแสดงความคิดเห็น ESS อยู่ใน MELPA
Stephen Eglen

คำตอบ:


19

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

มีการแก้ไขเบื้องต้นใน Emacs-25 แต่ AFAIK ปัญหายังคงปรากฏใน 24.5


9

ด้วยข้อยกเว้นที่น่าทึ่งของ ProofGeneral ฉันไม่ทราบถึงแพ็คเกจ Emacs ที่สำคัญที่ไม่มีอยู่ในไฟล์เก็บถาวร ELPA บางตัว โดยเฉพาะ ESS อยู่บน MELPA ตั้งแต่สามปี และ PG เป็นเรื่องราวของตัวเองและแน่นอนไม่ได้เป็นตัวแทนของระบบนิเวศของ Emac ทั้งหมด

ELPA มีข้อบกพร่องอย่างแน่นอน แต่สำหรับแพ็คเกจส่วนใหญ่นั้นใช้งานได้ดีแม้กระทั่งกล่องที่มีขนาดใหญ่อย่าง Magit Helm เป็นแพ็คเกจเดียวที่ฉันเห็นว่าบ่นเกี่ยวกับ ELPA ฉันไม่แน่ใจว่าพวกเขาบ่นกันอย่างไร แต่ฉันคิดว่ามันเกี่ยวกับการรวบรวม:

ในระหว่างการอัพเกรด Emacs จะรวบรวมแพ็คเกจใหม่ในสภาพแวดล้อมที่ยังคงโหลดเวอร์ชั่นเก่าอยู่ โดยปกติแล้วสิ่งนี้จะไม่เป็นอันตราย แต่มันสามารถทำลายมาโครได้ในบางสถานการณ์ Emacs จะรวบรวมเวอร์ชั่นใหม่กับการใช้งานมาโครแบบเก่าซึ่งอาจทำให้เกิดการแตกได้หากรหัสใหม่อาศัยการเปลี่ยนแปลงที่เฉพาะเจาะจงในมาโครนั้น

แม้ว่าจะเป็นผู้ดูแลแพคเกจตัวเองฉันก็ไม่เห็นด้วยกับข้อความนี้มากนัก ฉันมักจะตำหนิ Helm มากกว่า ELPA หรือ Emacs ในความคิดของฉันคำสั่งคืออติพจน์และปัญหา แต่เป็นอาการของมาโครและ ab-using

หากคุณใช้มาโครจำนวนมากและ - ยิ่งแย่ลง - ใส่โค้ดที่ไม่น่าสนใจลงในเนื้อความของมาโครคุณเพียงแค่ต้องตระหนักถึงผลกระทบที่เกิดขึ้นจากการรวบรวมไบต์และคุณต้องระวังที่จะรักษาความเข้ากันได้กับมาโครของคุณเอง ภายในแพ็คเกจของคุณ ไม่ทำเช่นนั้นและแทนที่จะผ่านการตำหนิไปรอบ ๆ ไม่ใช่สิ่งที่น่าทำ 2 เซนต์ของฉัน


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

1
@tefan ฉันไม่ปฏิเสธปัญหาการรวบรวม ฉันถูกกัดตัวเอง แต่ฉันไม่ชอบทัศนคติที่เปล่งประกายผ่านแถลงการณ์นี้และการขาดสิ่งที่ฉันเรียกว่า "มุมมองที่สมดุล" Helm ถูกกัดอย่างนั้นเพราะพวกเขาทำผิดพลาดหลายด้านเช่นกัน แต่ข้อความของพวกเขาไม่ยอมรับว่า ในความเห็นต่ำต้อยของฉันฟังก์ชั่นการโทรในร่างกายมาโครเป็นความผิดพลาด แมโครมีไว้สำหรับไวยากรณ์เท่านั้น แต่ไม่ได้มีไว้สำหรับการทำงาน แต่ฉันเข้าใจว่านี่น่าจะเป็นเรื่องที่ชุมชน Emacs Lisp มีความคิดเห็นที่แตกต่างกันมากมาย
Lunaryorn

ropemacs , jdee-emacsและexcorporateเป็นแพ็กเกจที่โดดเด่นซึ่งไม่ได้อยู่ในไฟล์เก็บถาวร ELPA ใด ๆ (ขึ้นอยู่กับเกณฑ์ของคุณสำหรับแพ็คเกจหลัก) แม้ว่าแพ็คเกจส่วนใหญ่นั้น
Wilfred Hughes
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.