นี่คือคำสั่ง sbcl ที่สามารถเรียกใช้ในผู้ให้บริการโฮสต์ฟรีของ OnWorks โดยใช้หนึ่งในเวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS
โครงการ:
ชื่อ
SBCL - ธนาคารเหล็ก Common Lisp
DESCRIPTION
SBCL เป็นการนำ ANSI Common Lisp ไปใช้งานซึ่งมีเนทีฟที่มีประสิทธิภาพสูง
คอมไพเลอร์, เธรดดั้งเดิมบนหลายแพลตฟอร์ม, อินเทอร์เฟซซ็อกเก็ต, ระดับแหล่งที่มา
ดีบักเกอร์ ตัวสร้างโปรไฟล์ทางสถิติ และอีกมากมาย
เป็นซอฟต์แวร์ฟรีซึ่งส่วนใหญ่เป็นสาธารณสมบัติ แต่มีระบบย่อยบางระบบภายใต้รูปแบบ BSD
ใบอนุญาตที่อนุญาตให้แก้ไขและนำกลับมาใช้ใหม่ได้ตราบเท่าที่มีการให้เครดิต มีให้ "as
คือ" โดยไม่มีการรับประกันใดๆ
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับปัญหาสิทธิ์การใช้งาน โปรดดูที่ไฟล์ COPYING ในการแจกจ่าย สำหรับ
ข้อมูลเพิ่มเติมเกี่ยวกับประวัติ ดูไฟล์ CREDITS ในการแจกจ่าย
วิ่ง สบพ
หากต้องการเรียกใช้ SBCL ให้พิมพ์ "sbcl" หลังจากเริ่มต้นข้อความพร้อมท์ ("*") จะปรากฏขึ้น ใส่ Lisp
นิพจน์ และ SBCL จะอ่านและดำเนินการ พิมพ์ค่าใดๆ ที่ส่งคืน มอบค่าอื่นให้คุณ
พรอมต์และรอการป้อนข้อมูลครั้งต่อไปของคุณ
$sbcl
...[ข้อความเริ่มต้นถูกลบ]...
* (+ 1 2 3)
6
* (ออก)
คนส่วนใหญ่ชอบเรียกใช้ SBCL เป็นกระบวนการย่อยภายใต้ Emacs โหมด Emacs "Slime" มีให้
คุณสมบัติที่สะดวกสบายมากมาย เช่น การแก้ไขบรรทัดคำสั่ง การทำให้แท็บสมบูรณ์ และ . ประเภทต่างๆ
การจับคู่ระหว่างซอร์สไฟล์ Common Lisp และกระบวนการย่อย SBCL แบบโต้ตอบ
สำหรับข้อมูลเกี่ยวกับการสร้าง "ไฟล์เรียกทำงานแบบสแตนด์อโลน" โดยใช้ SBCL โปรดดูที่
SB-EXT:SAVE-LISP-AND-DIE ในคู่มือผู้ใช้
คำสั่ง จองทาง LINE ซิงค์
สำหรับการใช้งานแบบโต้ตอบทั่วไป ไม่จำเป็นต้องมีอาร์กิวเมนต์บรรทัดคำสั่ง
เพื่อให้เข้าใจไวยากรณ์บรรทัดคำสั่ง SBCL จะเป็นประโยชน์ที่จะเข้าใจว่า
ระบบประกอบด้วยสองส่วน: สภาพแวดล้อมรันไทม์ และระบบเสียงกระเพื่อมทั่วไป it
รองรับ อาร์กิวเมนต์บรรทัดคำสั่งบางตัวได้รับการประมวลผลในระหว่างการเริ่มต้นของ
รันไทม์และบางส่วนในระหว่างการเริ่มต้นระบบ Lisp -- คำสั่งใด ๆ ที่เหลืออยู่
อาร์กิวเมนต์บรรทัดจะถูกส่งไปยังรหัสผู้ใช้
ไวยากรณ์บรรทัดคำสั่งโดยรวมคือ:
เอสบีแอล [รันไทม์ ตัวเลือก] --end-รันไทม์-ตัวเลือก [ระดับสูง ตัวเลือก] --end-toplevel-ตัวเลือก
[ผู้ใช้ ตัวเลือก]
ทั้ง --end-runtime-options และ --end-toplevel-options เป็นทางเลือก และอาจถูกละเว้น
มีไว้สำหรับใช้ในสถานการณ์ที่ตัวเลือกบรรทัดคำสั่งอยู่ภายใต้ผู้ใช้
การควบคุม (เช่นในไฟล์แบตช์): คุณสามารถป้องกันตัวเลือกที่มีไว้สำหรับ
โปรแกรมกำลังถูกประมวลผลโดย SBCL โดยไม่ได้ตั้งใจ
ตัวเลือกรันไทม์ที่รองรับคือ
--หลัก
ใช้ไฟล์แกน Lisp ที่ระบุแทนค่าเริ่มต้น (ดูส่วนไฟล์สำหรับ
คอร์มาตรฐานหรือเอกสารระบบสำหรับ SB-EXT:SAVE-LISP-AND-DIE สำหรับข้อมูล
เกี่ยวกับวิธีการสร้างคอร์แบบกำหนดเอง) โปรดทราบว่าหากไฟล์ Lisp core เป็นไฟล์ที่ผู้ใช้สร้างขึ้น
ไฟล์หลักอาจเรียกใช้ระดับบนสุดที่ไม่เป็นมาตรฐานซึ่งไม่รู้จักมาตรฐาน
ตัวเลือกระดับบนสุด
--ไดนามิก-พื้นที่-ขนาด
ขนาดของพื้นที่ไดนามิกที่สงวนไว้เมื่อเริ่มต้นในหน่วยเมกะไบต์ ค่าเริ่มต้นคือ platform
ขึ้นอยู่กับ.
--control-กองขนาด
ขนาดของสแต็กควบคุมที่สงวนไว้สำหรับแต่ละเธรดในหน่วยเมกะไบต์ ค่าเริ่มต้นคือ 2
--noinform
งดการพิมพ์แบนเนอร์หรือข้อความแสดงข้อมูลอื่นๆ เมื่อเริ่มต้น (นี้
ทำให้ง่ายต่อการเขียนโปรแกรม Lisp ซึ่งทำงานอย่างสมบูรณ์ในไปป์ไลน์ Unix ดูสิ่งนี้ด้วย
ตัวเลือก "--noprint" และ "--disable-debugger")
--disable-ldb
ปิดใช้งานดีบักเกอร์ระดับต่ำ จะมีผลก็ต่อเมื่อ SBCL ถูกคอมไพล์ด้วย LDB
--แพ้-ทุจริต
มีข้อผิดพลาดระดับต่ำที่เป็นอันตรายบางอย่าง (เช่น กองควบคุมหมดลง
ความผิดพลาดของหน่วยความจำ) ที่ (หรือตัวจัดการ) สามารถทำให้ภาพเสียหายได้ โดยค่าเริ่มต้น SBCL จะพิมพ์ a
เตือน จากนั้นพยายามดำเนินการต่อและจัดการกับข้อผิดพลาดใน Lisp แต่จะไม่เสมอไป
ทำงานและ SBCL อาจทำงานผิดปกติหรือแขวนได้ ด้วยตัวเลือกนี้เมื่อพบเช่น
ข้อผิดพลาด SBCL จะเรียกใช้ ldb (หากมีและเปิดใช้งานอยู่) มิฉะนั้นจะออก
--สคริปต์
เป็นตัวเลือกรันไทม์ที่เทียบเท่ากับ --noinform --disable-ldb --lose-on-ทุจริต
--end-runtime-options --script . ดูคำอธิบายของ --script เป็น a
ตัวเลือกระดับบนสุดด้านล่าง
--ผสานหลักหน้า
เมื่อมีการสนับสนุนแพลตฟอร์ม ให้คำแนะนำระบบปฏิบัติการที่เหมือนกัน
เพจอาจถูกแชร์ระหว่างกระบวนการต่างๆ จนกว่าจะมีการเขียนถึง สิ่งนี้มีประโยชน์กับ
ลดการใช้หน่วยความจำบนระบบที่มีกระบวนการ SBCL หลายขั้นตอนที่เริ่มต้นจากสิ่งที่คล้ายคลึงกัน
แต่ไฟล์หลักที่มีชื่อต่างกัน หรือจากคอร์ที่บีบอัด หากไม่มีการสนับสนุนแพลตฟอร์ม
ไม่ทำอะไร.
--no-ผสานหน้าหลัก
ตรวจสอบให้แน่ใจว่าไม่มีคำแนะนำการแบ่งปันให้กับระบบปฏิบัติการ
--default-merge-core-pages
เปลี่ยนนโยบายคำใบ้การแชร์กลับเป็นค่าเริ่มต้น: เฉพาะแกนที่ถูกบีบอัดเท่านั้นที่ทริกเกอร์คำใบ้
แกนที่ไม่บีบอัดจะถูกแมปโดยตรงจากไฟล์หลัก ซึ่งมักจะเพียงพอสำหรับ
ให้แน่ใจว่าการแบ่งปัน
--ช่วยด้วย
พิมพ์ข้อมูลพื้นฐานเกี่ยวกับ SBCL จากนั้นออก
--รุ่น
พิมพ์ข้อมูลเวอร์ชันของ SBCL แล้วออก
ในอนาคต อาจมีการเพิ่มตัวเลือกรันไทม์เพื่อควบคุมพฤติกรรม เช่น การจัดสรรขี้เกียจของ
หน่วยความจำ
ตัวเลือกรันไทม์ รวมถึงตัวเลือก --end-runtime-options ใดๆ จะถูกแยกออกจาก
บรรทัดคำสั่งก่อนที่ลอจิกระดับบนสุดของ Lisp จะมีโอกาสได้เห็น
ตัวเลือกระดับบนสุดที่รองรับโดยแกน SBCL มาตรฐานคือ
--ซิสสินิท
โหลดชื่อไฟล์แทนไฟล์เริ่มต้นทั้งระบบที่เป็นค่าเริ่มต้น (ดูไฟล์
มาตรา.)
--no-sysinit
อย่าโหลดไฟล์การเริ่มต้นทั้งระบบ หากได้รับตัวเลือกนี้ --sysinit
ตัวเลือกจะถูกละเว้น
--userinit
โหลดชื่อไฟล์แทนไฟล์เริ่มต้นผู้ใช้เริ่มต้น (ดูส่วนไฟล์)
--no-userinit
อย่าโหลดไฟล์เริ่มต้นผู้ใช้ หากมีตัวเลือกนี้ --userinit ตัวเลือก
ถูกละเว้น
--ประเมิน
หลังจากรันไฟล์การกำหนดค่าเริ่มต้นใดๆ แต่ก่อนที่จะเริ่ม read-eval-print loop
ในอินพุตมาตรฐาน อ่านและประเมินคำสั่งที่ให้มา มากกว่าหนึ่ง --eval ตัวเลือกสามารถ
ถูกใช้และทั้งหมดจะถูกอ่านและดำเนินการตามลำดับที่ปรากฏบนคำสั่ง
เส้น
--โหลด
นี่เทียบเท่ากับ --eval '(load " ")'. ไวยากรณ์พิเศษมีวัตถุประสงค์เพื่อ
ลดอาการปวดหัวในการอ้างอิงเมื่อเรียกใช้ SBCL จากเชลล์สคริปต์
--noprint
เมื่อปกติระดับบนสุด "read-eval-print loop" จะถูกดำเนินการ ให้ดำเนินการ "read-
eval loop" แทน เช่น อย่าพิมพ์ข้อความแจ้งและไม่สะท้อนผลลัพธ์ ผสมผสานกับ
--noinform ตัวเลือกรันไทม์ทำให้ง่ายต่อการเขียน "สคริปต์" Lisp ซึ่งใช้งานได้
อย่างหมดจดในท่อ Unix
--disable-ดีบักเกอร์
โดยค่าเริ่มต้นเมื่อ SBCL พบข้อผิดพลาด จะเข้าสู่ดีบักเกอร์ในตัว ช่วยให้
การวินิจฉัยแบบโต้ตอบและการขอร้องที่เป็นไปได้ ตัวเลือกนี้ปิดใช้งานดีบักเกอร์
ทำให้เกิดข้อผิดพลาดในการพิมพ์ backtrace และออกด้วยสถานะ 1 แทน -- ซึ่งเป็น mode
ของการดำเนินการที่เหมาะสมกว่าสำหรับการประมวลผลแบบเป็นชุด ดูคู่มือการใช้งานบน
SB-EXT:DISABLE-DEBUGGER สำหรับรายละเอียด
--ล้มเลิก
เมื่อสิ้นสุดการประมวลผลตัวเลือกระดับบนสุด ให้ออกจาก SBCL ด้วยรหัสศูนย์ที่สำเร็จ
โปรดทราบว่าเอฟเฟกต์ของตัวเลือกนี้จะล่าช้าไปจนถึงหลังจากตัวเลือกระดับบนสุดที่ตามมา
อันนี้.
--ไม่โต้ตอบ
ตัวเลือกนี้ปิดใช้งานลูป read-eval-print สำหรับทั้งแบบพิเศษและแบบไม่มีข้อยกเว้น
เหตุผล. ย่อมาจาก --disable-debugger และ --quit รวมกันและมีประโยชน์
สำหรับการใช้แบทช์ที่ไม่ต้องการการประมวลผลตัวเลือกพิเศษโดยนัยโดย --script
--สคริปต์
หมายถึง --no-sysinit --no-userinit --disable-debugger --end-toplevel-options
ทำให้ระบบโหลดไฟล์ที่ระบุและออกทันทีหลังจากนั้นแทน
ของการเข้าสู่วง read-eval-print หากไฟล์ขึ้นต้นด้วยเส้น shebang มันคือ
ละเว้น
โดยไม่คำนึงถึงลำดับที่ตัวเลือกระดับบนสุดปรากฏบนบรรทัดคำสั่ง ลำดับของ
การกระทำคือ:
1. Debugger ถูกปิดใช้งานหากมีการร้องขอ
2. ไฟล์การเริ่มต้นระบบใด ๆ ถูกโหลด เว้นแต่ถูกห้าม
3. ไฟล์เริ่มต้นของผู้ใช้ถูกโหลด เว้นแต่ถูกห้าม
4. --eval และ --load ตัวเลือกจะได้รับการประมวลผลตามลำดับที่กำหนด
สุดท้าย ป้อนลูป read-eval-print หรือไฟล์ที่ระบุด้วย --script
โหลดตัวเลือกแล้ว
เมื่อรันในลูป read-eval-print ระบบจะออกเมื่อสิ้นสุดไฟล์ ในทำนองเดียวกัน
ระบบออกทันทีหลังจากประมวลผลไฟล์ที่ระบุด้วย --script
โปรดทราบว่าเมื่อรัน SBCL ด้วยตัวเลือก --core โดยใช้ไฟล์หลักที่สร้างโดยผู้ใช้
โทรไปที่ SB-EXT:SAVE-LISP-AND-DIE ตัวเลือกระดับบนสุดอาจอยู่ภายใต้การควบคุมของ
รหัสผู้ใช้ที่ส่งผ่านเป็นอาร์กิวเมนต์ไปยัง SB-EXT:SAVE-LISP-AND-DIE เพื่อการนี้
--end-toplevel-options ตัวเลือกนั้นถือได้ว่าเป็นตัวเลือกระดับบนสุด เช่น ผู้ใช้งาน
แกนหลักอาจไม่รองรับ
ในลำดับการเริ่มต้น SBCL มาตรฐาน (เช่น โดยไม่มีแกนผู้ใช้ที่เกี่ยวข้อง) ตัวเลือกระดับบนสุด
และตัวเลือก --end-toplevel-options ใด ๆ จะถูกดึงออกจากรายการอาร์กิวเมนต์บรรทัดคำสั่ง
ก่อนที่รหัสผู้ใช้จะมีโอกาสได้เห็น
ภาพรวม
SBCL มาจาก CMU CL (ชื่อมีวัตถุประสงค์เพื่อรับทราบการเชื่อมต่อ:
เหล็กและการธนาคารเป็นอุตสาหกรรมที่ Carnegie และ Mellon ทำเงินได้มาก)
SBCL คอมไพล์ตามค่าเริ่มต้น: แม้แต่ฟังก์ชันที่ป้อนในลูป read-eval-print ก็ยังถูกคอมไพล์
กับโค้ดเนทีฟ เว้นแต่ว่าผู้ประเมินได้เปิดไว้อย่างชัดแจ้ง (แม้วันนี้ 30 . บางส่วน
หลายปีหลังจากคอมไพเลอร์ MacLisp ผู้คนจะบอกคุณว่า Lisp นั้นถูกตีความ
ภาษา. ละเลยพวกเขา.)
SBCL ตั้งเป้าไว้แต่ยังไม่บรรลุผลตามมาตรฐาน ANSI สำหรับ Common . อย่างสมบูรณ์
เสียงกระเพื่อม ข้อมูลเพิ่มเติมเกี่ยวกับสิ่งนี้มีอยู่ในส่วน BUGS ด้านล่าง
SBCL ยังรวมส่วนขยายที่ไม่ใช่ ANSI ต่างๆ ไว้ด้วย ซึ่งมีคำอธิบายโดยละเอียดในคู่มือผู้ใช้
บางส่วนอยู่ในระบบฐานและส่วนอื่นๆ เป็นโมดูล "ส่วนร่วม" ที่โหลดตามคำขอ
ใช้ REQUIRE ตัวอย่างเช่น ในการโหลดโมดูล SB-BSD-SOCKETS ที่มี TCP/IP
การเชื่อมต่อ
* (ต้องการ 'asdf)
* (ต้องใช้ 'sb-bsd-sockets)
สำหรับข้อมูลเพิ่มเติม โปรดดูคู่มือการใช้งาน
DIE คอมไพเลอร์
SBCL สืบทอดจาก CMU CL คอมไพเลอร์โค้ดเนทีฟ "Python" (ทั้งที่เรามักจะหลีกเลี่ยงสิ่งนั้น
เพื่อหลีกเลี่ยงความสับสนกับภาษาสคริปต์ที่เรียกว่า Python) สิ่งนี้
คอมไพเลอร์ฉลาดมากในการทำความเข้าใจระบบประเภทของ Common Lisp และใช้งานเพื่อ
ปรับโค้ดให้เหมาะสม และเกี่ยวกับการสร้างบันทึกเพื่อแจ้งให้ผู้ใช้ทราบเมื่อคอมไพเลอร์ไม่ทำ
มีข้อมูลประเภทเพียงพอที่จะสร้างรหัสที่มีประสิทธิภาพ มันยังพยายาม (เกือบตลอดเวลา
สำเร็จ) ให้เป็นไปตามหลักการที่ไม่ธรรมดาแต่มีประโยชน์มากว่า “คำประกาศคือ
คำยืนยัน", เช่น ควรตรวจสอบการประกาศประเภทที่รันไทม์เว้นแต่ผู้ใช้
บอกระบบอย่างชัดเจนว่าความเร็วสำคัญกว่าความปลอดภัย
รหัสที่คอมไพล์ใช้การรวบรวมขยะเพื่อจัดการหน่วยความจำโดยอัตโนมัติ ขยะ
การใช้งานตัวรวบรวมแตกต่างกันไปมากจาก CPU ถึง CPU โดยเฉพาะในซีพียูบางตัว
GC นั้นเกือบจะเที่ยงตรง ในขณะที่บางตัวนั้นค่อนข้างอนุรักษ์นิยมมากกว่า และสำหรับ CPU บางตัว GC นั้น
รุ่นในขณะที่ใช้กลยุทธ์การหยุดและคัดลอกอื่น ๆ ที่ง่ายกว่า
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับคอมไพเลอร์ โปรดดูคู่มือผู้ใช้
ระบบ สิ่งที่ต้องมี
ปัจจุบัน SBCL ทำงานบน X86 (Linux, FreeBSD, OpenBSD และ NetBSD), X86-64 (Linux), Alpha
(Linux, Tru64), PPC (Linux, Darwin/MacOS X), SPARC (Linux และ Solaris 2.x) และ MIPS
(ลินุกซ์). สำหรับข้อมูลเกี่ยวกับพอร์ตอื่นๆ ที่กำลังดำเนินอยู่และที่เป็นไปได้ โปรดดูที่ sbcl-devel mailing
รายการ และ/หรือเว็บไซต์
SBCL ต้องการ RAM ขนาด 16Mb เพื่อทำงานบนระบบ X86 แม้ว่าจะเล็กที่สุดก็ตาม
โปรแกรมจะมีความสุขมากขึ้นด้วย 32Mb หรือมากกว่า
ที่รู้จักกัน ข้อบกพร่อง
ส่วนนี้พยายามแสดงรายการจุดบกพร่องที่ร้ายแรงและยาวนานที่สุด สำหรับรายละเอียดเพิ่มเติม
และข้อมูลปัจจุบันเกี่ยวกับจุดบกพร่อง ดูไฟล์ BUGS ในการแจกจ่าย
เป็นไปได้ที่จะประสบปัญหาลึก ๆ โดยทำให้หน่วยความจำฮีปหมด ระบบ SBCL
overcommits หน่วยความจำเมื่อเริ่มต้น ดังนั้นบน Unix-alikes ทั่วไปเช่น Linux และ FreeBSD สิ่งนี้
หมายความว่าหากระบบ SBCL ปรากฎว่าใช้หน่วยความจำเสมือนมากกว่าที่ระบบมี
สำหรับมัน กระบวนการอื่นมักจะถูกฆ่าแบบสุ่ม (!)
การจัดการฟังก์ชันของคอมไพเลอร์ส่งคืนค่าโดยไม่จำเป็น ละเมิด "การประกาศ
เป็นการยืนยัน” หลักการที่ตนยึดถือเป็นอย่างอื่น โดยใช้ PROCLAIM หรือ DECLAIM เพื่อ
ระบุประเภทการส่งคืนของฟังก์ชันทำให้คอมไพเลอร์เชื่อคุณโดยไม่ตรวจสอบ
จึงรวบรวมไฟล์ที่มี
(ปฏิเสธ (FTYPE (FUNCTION (T) NULL) บางครั้ง))
(ป้องกันบางครั้ง (X) (ODDP X))
(DEFUN FOO (X) (ถ้า (บางครั้ง X) 'ครั้งนี้' ไม่ใช่ครั้งนี้))
จากนั้นการรัน (FOO 1) จะไม่ให้เวลานี้เพราะคอมไพเลอร์อาศัยความจริงของ
ปฏิเสธโดยไม่ตรวจสอบ
บางสิ่งถูกนำไปใช้อย่างไม่มีประสิทธิภาพมาก
-- อาร์เรย์หลายมิติไม่มีประสิทธิภาพ โดยเฉพาะอาร์เรย์หลายมิติของการลอยตัว
ตัวเลขจุด
-- SBCL เช่นเดียวกับการใช้งาน Common Lisp บนฮาร์ดแวร์สต็อก (อาจจะทั้งหมด) ส่วนใหญ่ (อาจจะทั้งหมด) มี
ปัญหาในการส่งเลขทศนิยมไปรอบๆ อย่างมีประสิทธิภาพ เพราะเป็นจุดลอยตัว
number บวกบิตพิเศษอีกสองสามบิตเพื่อระบุประเภท มีขนาดใหญ่กว่าคำในเครื่อง
(ดังนั้น พวกเขาจึง "ถูกบรรจุกล่อง" ในการจัดเก็บที่จัดสรรแบบฮีป ทำให้เกิดโอเวอร์เฮด GC) ภายใน a
หน่วยคอมไพล์เดี่ยวหรือเมื่อดำเนินการในตัวเช่น SQRT และ AREF หรือบางส่วน
การดำเนินการพิเศษ เช่น การเข้าถึงสล็อตโครงสร้าง เป็นสิ่งที่หลีกเลี่ยงได้: ดูคู่มือผู้ใช้
สำหรับคำแนะนำด้านประสิทธิภาพ แต่สำหรับการเรียกใช้ฟังก์ชันทั่วๆ ไป ข้ามขอบเขตของ
หน่วยคอมไพล์ผ่านผลการคำนวณจุดลอยตัวเป็นฟังก์ชัน
อาร์กิวเมนต์ (หรือส่งคืนผลลัพธ์ทศนิยมเป็นค่าฟังก์ชัน) เป็นพื้นฐาน
การทำงานช้า
รายงาน ข้อบกพร่อง
หากต้องการรายงานจุดบกพร่อง โปรดส่งอีเมลไปที่รายชื่อส่งเมล sbcl-help หรือ sbcl-devel คุณสามารถ
ค้นหาที่อยู่รายชื่อผู้รับจดหมายที่สมบูรณ์บนหน้าเว็บที่
<http://sbcl.sourceforge.net/>; โปรดทราบว่าเพื่อเป็นมาตรการลดสแปม คุณต้องสมัครสมาชิก
ไปที่รายการก่อนที่คุณจะสามารถโพสต์ได้ (คุณอาจพบว่ามีการติดตามข้อบกพร่องของ SourceForge ที่แฟนซี
เครื่องจักรมี แต่อย่าหลงกล อย่างไรก็ตาม ณ วันที่ 2002-07-25 เราไม่ได้ตรวจสอบอย่างจริงจัง
เครื่องจักรนั้นและมีอยู่เพียงเพราะเราคิดไม่ออกว่าจะหมุนอย่างไร
มันปิด.)
เช่นเดียวกับรายงานข้อบกพร่องของซอฟต์แวร์ การให้ข้อมูลเพียงพอจะเป็นประโยชน์มากที่สุด
ให้ทำซ้ำอาการได้อย่างน่าเชื่อถือและหากพูดให้ชัดว่าอาการเป็นอย่างไร สำหรับ
ตัวอย่าง "ดูเหมือนว่าจะมีบางอย่างผิดปกติกับ TAN ที่มีอาร์กิวเมนต์เชิงลบเพียงเล็กน้อย
เมื่อฉันรัน (TAN LEAST-NEGATIVE-SINGLE-FLOAT) แบบโต้ตอบบน sbcl-1.2.3 บน Linux ของฉัน
กล่อง 4.5 X86 ฉันได้รับข้อผิดพลาด UNBOUND-VARIABLE"
ความแตกต่าง จาก มหาวิทยาลัยเชียงใหม่ CL
SBCL สามารถสร้างได้ตั้งแต่ต้นโดยใช้ระบบ Vanilla ANSI Common Lisp ธรรมดาและ C
คอมไพเลอร์และคุณสมบัติทั้งหมดนั้นระบุโดยเวอร์ชันของซอร์สโค้ดที่
มันถูกสร้างขึ้นจาก ความสามารถในการบู๊ตที่สะอาดได้นี้เป็นแรงจูงใจในทันทีสำหรับการฟอร์ก
ออกจากแผนผังการพัฒนา CMU CL มีแรงจูงใจในการนำไปใช้งานที่หลากหลาย
โดยเป้าหมายการออกแบบนี้
งานบำรุงรักษาใน SBCL เนื่องจากทางแยกค่อนข้างแตกต่างจากงานบำรุงรักษาใน
มช. มีการแชร์การแก้ไขข้อผิดพลาดและการปรับปรุงหลายอย่างแต่ไม่ทั้งหมดระหว่างทั้งสอง
โครงการและบางครั้งทั้งสองโครงการไม่เห็นด้วยกับสิ่งที่จะปรับปรุง
ส่วนขยายส่วนใหญ่ที่รองรับโดย CMU CL ได้รับการเลิกรวมกลุ่มจาก SBCL รวมถึง Motif
รองรับ, ตัวแก้ไข Hemlock, เส้นทางการค้นหา, โปรโตคอล WIRE, มาโครระดับผู้ใช้ต่างๆ
และหน้าที่ (เช่น LETF, ITERATE, MEMQ, REQUIRED-ARGUMENT) และอื่นๆ อีกมากมาย
(เหตุใด SBCL จึงไม่สนับสนุนส่วนขยายเพิ่มเติมโดยกำเนิด เหตุใดจึงปล่อยส่วนขยายที่ดีเหล่านั้นทั้งหมด
จาก CMU CL เมื่อรหัสมีอยู่แล้ว? นี่เป็นคำถามที่พบบ่อยใน
รายชื่อผู้รับจดหมาย. มีเหตุผลหลักสองประการ ประการแรก เป็นปัญหาปรัชญาการออกแบบ:
เป็นไปได้ว่า SBCL ทำงานโดยการจัดหา FFI ที่เสถียร และการตัดสินใจออกแบบที่ถูกต้องคือ
เพื่อย้ายฟังก์ชันที่ได้รับจากสิ่งนั้น เช่น การสนับสนุนซ็อกเก็ต ไปยังไลบรารีที่แยกจากกัน
บางส่วนเหล่านี้แจกจ่ายด้วย SBCL เป็นโมดูล "ส่วนร่วม" ส่วนอื่น ๆ ได้รับการแจกจ่ายเป็น
แยกแพ็คเกจซอฟต์แวร์โดยผู้ดูแลที่แยกจากกัน ประการที่สอง เป็นการตัดสินใจเชิงปฏิบัติ -
เราหวังว่าการมุ่งเน้นไปที่สิ่งเล็ก ๆ น้อย ๆ จะช่วยให้เราทำงานได้ดีขึ้น)
การสนับสนุน
ข้อมูลต่างๆ เกี่ยวกับ SBCL สามารถดูได้ที่http://www.sbcl.org/>. รายชื่อผู้รับจดหมาย
มีสถานที่แนะนำในการค้นหาการสนับสนุน
ผู้เขียน
ผู้คนหลายสิบคนมีส่วนสนับสนุนอย่างมากต่อ SBCL และระบบย่อย และเพื่อ
ระบบ CMU CL ที่ใช้อยู่ตลอดหลายปีที่ผ่านมา ดูไฟล์ CREDITS ใน
แจกจ่ายสำหรับข้อมูลเพิ่มเติม
และพวกเรา
SBCL_HOME ตัวแปรนี้ควบคุมตำแหน่งที่ไฟล์เช่น "sbclrc", "sbcl.core" และส่วนเสริม
ระบบ "มีส่วนร่วม" ถูกค้นหา หากไม่ได้ตั้งค่าไว้ sbcl จะตั้งค่าจาก a
ตำแหน่งเริ่มต้นของเวลาคอมไพล์ซึ่งมักจะเป็น /usr/local/lib/sbcl/ แต่อาจมี
เปลี่ยนไปแล้ว เช่น โดยผู้บรรจุหีบห่อบุคคลที่สาม
ใช้ sbcl ออนไลน์โดยใช้บริการ onworks.net