Gauche คือการดำเนินการโครงการ R5RS การพัฒนาให้มีล่ามสคริปต์ที่มีประโยชน์ซึ่งจะช่วยให้โปรแกรมเมอร์และผู้ดูแลระบบที่จะเขียนขนาดเล็กไปจนถึงขนาดใหญ่สำหรับสคริปต์กิจวัตรประจำวันของพวกเขา เริ่มต้นอย่างรวดเร็วอินเตอร์เฟซระบบในตัว, การสนับสนุนหลายภาษาพื้นเมืองคือบางส่วนของเป้าหมายของฉัน
แอปพลิเค Gauche ทำงานบนหลายแพลตฟอร์ม Unix เหมือน
instalation
% gzcat Gauche-0.8.3.tgz | tar XF -
% cd-Gauche 0.8.3
% ./configure
% ทำให้
ให้ติดตั้ง%
คุณสมบัติ .
- R5RS ครอบคลุมเกือบ
- R5RS แมโครได้รับการสนับสนุนเป็นทั้งหมดของกำหนด-ไวยากรณ์ให้-ไวยากรณ์รูปแบบ letrec-ไวยากรณ์ ผมคิดว่าความเร็วของการขยายตัวแมโครที่มีความสำคัญเป็นล่ามสคริปต์และเขียน R5RS แผ่แมโครใน C แบบบูรณาการในเครื่องมือคอมไพเลอร์ภายใน.
- การดำเนินงานที่เป็นตัวเลขได้รับการสนับสนุนใน Fixnum, bignum, flonum และซับซ้อน.
- รองรับ SRFIs ดังต่อไปนี้.
- ระบบโมดูล: ระบบโมดูลง่าย API เข้ากันได้กับ STklos
- ระบบวัตถุ: ระบบวัตถุ CLOS เช่นเดียวกับโพรโทคอ metaobject เกือบ API เข้ากันได้กับ STklos นอกจากนี้ยังเป็นระบบที่คล้ายกับวัตถุ Guile ของ.
- การสนับสนุนสตริงหลายไบต์: สายจะถูกแทนด้วยสตริง multibyte ภายใน คุณสามารถใช้ UTF-8 EUC-JP, Shift-JIS หรือไม่มีการเข้ารหัส multibyte โดยเลือกการกำหนดค่าเวลา การแปลงระหว่างระบบการเข้ารหัสพื้นเมืองและระบบการเข้ารหัสภายนอกได้รับการสนับสนุนจากวัตถุพอร์ต.
- หลายไบต์ regexp: จับคู่แสดงออกปกติตระหนักถึงสตริง multibyte; คุณสามารถใช้อักขระทั้งในรูปแบบการจับคู่และสตริง.
- ขยายผู้อ่าน: regexp อักษรและถ่านที่ตั้งไว้, การแก้ไขสตริง: อ่านขยายตระหนัก # / ... / เป็นนิพจน์ปกติและ # [... ] เป็นชุดตัวอักษร มีประโยชน์ในการเขียน one-liners (เช่น (rxmatch-ย่อย (rxmatch # / (D +) / & quot; abc123def & quot;)) == & gt; & quot; 123 & quot;)
- นอกจากนี้ & quot; แก้ไขสตริง & quot; ได้รับการสนับสนุน (เช่น (จอแสดงผล # `& quot; 1 + 2 = (1 + 2) n & quot;)).
- อินเตอร์เฟซระบบ: ครอบคลุมมากที่สุดของ POSIX.1 และมีคุณสมบัติอื่น ๆ ที่พบบ่อยใน Unices ดูในส่วน 6.19 ของคู่มืออ้างอิงสำหรับรายละเอียด.
- เครือข่ายอินเตอร์เฟซ:. มี API สำหรับการเชื่อมต่อเครือข่ายที่ใช้ซ็อกเก็ตรวมทั้ง IPv6 ว่าระบบปฏิบัติการ suppots มัน
- Multithreading: บนแพลตฟอร์มบาง multithreading ได้รับการสนับสนุนด้านบนของ pthreads โครงการระดับ API สอดคล้อง SRFI-18.
- อินเตอร์เฟซ DBM. การเชื่อมต่อไปยังห้องสมุด DBM เหมือน (dBm, ndbm และ / หรือ GDBM) หากระบบให้พวกเขา
- XML แยก:. โอเล็กเครื่องมือ Kiselyov ของ SXML จะรวม
- OpenGL ผูกพัน. OpenGL ผูกพันที่มีให้ในแพคเกจที่แยกต่างหาก
- GTK ปก: GTK2 ผูกพันที่มีให้ในแพคเกจที่แยกต่างหาก
มีอะไรใหม่ ในข่าวประชาสัมพันธ์ฉบับนี้.
- รุ่นนี้แก้ปัญหาไม่กี่สร้าง
มีอะไรใหม่ ในรุ่น 0.9.3:
- รุ่นนี้เพิ่มการสนับสนุนสำหรับลำดับขี้เกียจอย่างราบรื่น บูรณาการของการประเมินผลขี้เกียจกับการจัดการรายชื่อ.
- กระทู้ได้รับการสนับสนุนบน Windows พื้นเมืองสร้าง.
- มี bugfixes ต่าง ๆ และการปรับปรุงประสิทธิภาพการทำงาน.
มีอะไรใหม่ ในรุ่น 0.9.2:
- การปรับปรุงคุณลักษณะเล็กน้อยต่างๆและสิ่งที่ต้องถูกสร้างขึ้นมาในครั้งนี้ ปล่อย.
- คุณลักษณะใหม่รวมถึงการสนับสนุนกรณีการทำแผนที่ Unicode, ยูทิลิตี้สำหรับการดำเนินอะตอม, ยูทิลิตี้การเปรียบเทียบสะดวกและประชาชน API สำหรับขั้นตอนการสร้างรหัส C.
- ติดตั้งไบนารีของ Windows ตอนนี้มาเป็นไฟล์ติดตั้ง MS สร้างโดย WiX.
มีอะไรใหม่ ในรุ่น 0.9.1:
- รุ่นนี้จะเพิ่มคุณสมบัติใหม่ ๆ รวมไปถึง: ที่มีประสิทธิภาพ บันทึกกลไกโมดูลเพิ่มขึ้นด้วยการเปลี่ยนชื่อและ Prefixing, formals ขยายสำหรับอาร์กิวเมนต์ตัวเลือกและคำ, ตบางส่วน, สระว่ายน้ำด้ายที่ดีกว่าการสนับสนุนของ Windows, แยก JSON, hashing รหัสผ่านปักเป้าและอื่น ๆ .
มีอะไรใหม่ ในรุ่น 0.9:
- C เปลี่ยนแปลง API เข้ากันไม่ได้: การเปลี่ยนแปลงเข้ากันไม่ได้หลาย C API จะนำ ซึ่งอาจทำให้เกิดการขยายบางตัวไม่สามารถรวบรวม ดู API การเปลี่ยนแปลงใน 0.9 สำหรับรายละเอียด.
- คุณสมบัติใหม่:
- โมดูลใหม่: rfc.zlib. ที่ zlib การบีบอัด / decompression
- โมดูลใหม่: rfc.sha: สนับสนุน SHA2 rfc.sha1 ถูกแทนที่โดยโมดูลนี้.
- โมดูลใหม่: util.sparse: เวกเตอร์เบาบางรับการสนับสนุนจาก Trie พื้นที่ที่มีประสิทธิภาพและกัญชาตาราง-ดำเนินการด้านบนของเวกเตอร์เบาบาง พวกเขาเป็นหน่วยความจำที่มีประสิทธิภาพกว่าตารางแฮช builtin เมื่อคุณต้องการที่จะให้หลายสิบล้านของรายการ.
- Autoprovide: คุณไม่จำเป็นต้อง 'ให้' รูปแบบสำหรับส่วนมากของเวลา ถ้า (ต้องใช้ & quot; X & quot;) โหลด X.scm ประสบความสำเร็จและไม่ได้มีรูปแบบที่ให้คุณลักษณะ & quot; X & quot; มีให้โดยอัตโนมัติ ดู & quot; ต้องใช้และให้ & quot; ส่วนของการอ้างอิงสำหรับรายละเอียดเพิ่มเติม.
- โมดูล gauche.test: การทดสอบที่ดีขึ้นสำหรับข้อยกเว้น ขณะนี้คุณสามารถทดสอบว่าประเภทเฉพาะของสภาพถูกโยนโดยให้ (ทดสอบข้อผิดพลาดสภาพ-type) เป็นผลที่คาดหวัง ดูรายการคู่มือสำหรับรายละเอียดเพิ่มเติม.
- โมดูล rfc.http: ตอนนี้จัดการกับพร็อกซี่โดย: โต้แย้งคำพร็อกซี่ คุณยังสามารถเขียนแอพลิเคชัน / x-www ฟอร์ม urlencoded และ multipart / ข้อความรูปแบบข้อมูลที่จะส่งพารามิเตอร์รูปแบบ ขั้นตอนใหม่:. http ใส่และ http ลบ
- โมดูล rfc.mime. เพิ่มการสนับสนุนการเขียนข้อความไมม์
- gauche.threads โมดูล: ขั้นตอนใหม่:. ด้ายหยุด !, ด้ายต่อ !, ด้ายรัฐ
- gauche.termios โมดูล: ในการสนับสนุนพื้นเมืองของ Windows โมดูลนี้ให้ API ของ Windows คอนโซลแทน POSIX termios API ตั้งแต่ emulationg termios POSIX บน Windows มากเกินไป ชุดของ API ระดับสูงทั่วไปที่สามารถใช้ทั้ง POSIX และ Windows ยังมีการเพิ่ม.
- gauche.dictionary โมดูลมีแผนที่แบบสองทิศทาง,.
- เรียกใช้กระบวนการใน gauche.process ของโมดูลและ builtin SYS-exec และ SYS ส้อมและ exec สนับสนุน. โต้แย้งคำไดเรกทอรีเพื่อระบุไดเรกทอรีการทำงานของกระบวนการดำเนินการ
- file.util โมดูลให้สร้างไดเรกทอรีต้นไม้และตรวจสอบไดเรกทอรีต้นไม้.
- gauche.net โมดูลให้ซ็อกเก็ตในระดับต่ำการดำเนินงาน: ซ็อกเก็ต sendmsg, ซ็อกเก็ต buildmsg และซ็อกเก็ต IOCTL โทรกับลูกค้าซ็อกเก็ตใช้เวลา args คำหลักใหม่เพื่อระบุโหมดบัฟเฟอร์สำหรับซ็อกเก็ต.
- โมดูล www.cgi. cgi-หลักสลับโหมดบัฟเฟอร์ของ stderr กับสายเพื่อให้เข้าสู่ระบบ httpd สามารถบันทึกข้อความผิดพลาดบรรทัดโดยบรรทัด (ความยุ่งเหยิงมากน้อยกว่าก่อน)
- การแก้ไขที่สำคัญและการปรับปรุง:
- สร้างปัญหาถาวรใน OSX 10.6 (Snow Leopard).
- ผลการดำเนินงานดีขึ้นอย่างมากในจำนวนจุดลอยเลขคณิต, การจัดการอาร์กิวเมนต์ตัวเลือกของวิธีการ builtin และกรณีแลมบ์ดา.
- ตอนนี้สิ่งที่ตัวละครช่องว่างที่กำหนดไว้ใน R6RS ทำงานพื้นที่ intertoken เป็นในรหัสที่มา.
- ข้อความเตือนเมื่อมีการพิมพ์ออกจากหัวข้อที่มีข้อผิดพลาดและไม่มีหัวข้ออื่น ๆ เรียกสถานะโดยด้ายเข้าร่วม! ก่อนที่จะด้ายเป็น GC-ED ซึ่งจะช่วยให้การแก้ไขปัญหา ตั้งแต่ด้ายเข้าร่วม! เป็นวิธีเดียวที่จะรู้ว่าถ้าด้าย exitted จากข้อผิดพลาดที่คุณมีอย่างใดอย่างหนึ่งที่จะเรียกด้ายเข้าร่วม! เพื่อให้แน่ใจว่าการตรวจสอบสถานะหรือจะเขียน thunk ด้ายที่จะจับข้อผิดพลาดทั้งหมดและจัดการกับพวกเขาอย่างถูกต้อง.
- ชื่อโมดูลไม่ประสงค์ออกนาม # F ตอนนี้แทนที่จะ (ค่อนข้างเลือกโดยพล) | # |.
- การปรับปรุงบางอย่างเกี่ยวกับสัญลักษณ์: 'uninterned' symbos ได้รับการสนับสนุนอย่างเป็นทางการ (สัญลักษณ์ที่สร้างขึ้นโดยได้รับการ gensym uninterned แต่ไม่เคยรับการรับรองอย่างเป็นทางการ.) สัญลักษณ์ Uninterned จะเขียนเป็น #: สัญลักษณ์ลา CommonLisp สัญลักษณ์ Uninterned ไม่ได้ลงทะเบียนไปยังตารางสัญลักษณ์ภายในจึงมีความกังวลเกี่ยวกับความผิดพลาดที่ไม่มีชื่อ วิธีเดียวที่จะอ้างถึงสัญลักษณ์ uninterned เดียวกันจากมากกว่าหนึ่งในรหัสที่มาคือการใช้ SRFI-38 สัญกรณ์ (# n = n และ # #) คุณสามารถสร้างสัญลักษณ์ uninterned โดยสตริง & gt; uninterned สัญลักษณ์และตรวจสอบว่าเป็นสัญลักษณ์ฝึกงานหรือไม่โดยสัญลักษณ์ intened ?. นอกจากนี้ยังมีขั้นตอนใหม่, สัญลักษณ์ซองคำนำหน้า.
มีอะไรใหม่ ในรุ่น 0.8.14:
- นี้เป็นรุ่นการบำรุงรักษารวมทั้งสิ่งที่ต้องสะสม การปรับปรุงขนาดเล็กจำนวนมาก.
- ส่วนหนึ่งของ VM ได้รับการเขียนใหม่เพื่อให้ได้ประสิทธิภาพที่ดีขึ้นและการบำรุงรักษา.
ความคิดเห็นที่ไม่พบ