ฟรี Pascal Compiler (aka FPK Pascal) เป็นคอมไพเลอร์ Pascal ที่สนับสนุนระบบปฏิบัติการต่อไปนี้: Linux, FreeBSD, NetBSD, MacOSX / Darwin, MacOS classic, DOS, Win32, OS / 2, BeOS, SunOS (Solaris), QNX และ Classic Amiga
ฟรี Pascal Compiler มีให้สำหรับโปรเซสเซอร์ต่างๆเช่น Intel x86, AMD64 / x86 64, PowerPC, PowerPC64, Sparc และ ARM
ฟรี Pascal Compiler มีภาษาที่สะอาดมากใช้ Makefiles ไม่เหมือนภาษาเขียนโปรแกรมมากที่สุดก็คือ Fast กับ F ใหญ่แต่ละหน่วยมีตัวระบุของตัวเองและรวม IDE (Integrated Development Environment)
นอกจากนี้ซอฟต์แวร์ยังมีการผสานรวมที่ดีกับผู้ประกอบการโปรแกรมเชิงวัตถุ smartlinking ความเป็นอิสระในการกระจายและสามารถใช้งานร่วมกับรหัสที่มีอยู่
มีอะไรใหม่ ในนี้
มีอะไรใหม่ ในเวอร์ชัน:
- การเปลี่ยนแปลงภาษา:
- สายที่สืบทอดชื่อ:
- พฤติกรรมเก่า: สายที่สืบทอดแบบไม่ระบุตัวตนสามารถเรียกผ่านทางเมธอดใดก็ได้ในคลาสแม่ที่ยอมรับอาร์กิวเมนต์ที่เข้ากันได้กับพารามิเตอร์ของวิธีการปัจจุบัน
- พฤติกรรมใหม่: มีการโทรติดต่อที่ได้รับการแจ้งเตือนแบบไม่ระบุตัวตนเพื่อเรียกใช้วิธีการในคลาสแม่ซึ่งถูกแทนที่โดยระบบปัจจุบัน
- ตัวอย่าง: ดูที่ http://svn.freepascal.org/svn/fpc/trunk/tests/tbs/tb0577.pp ในรุ่นก่อนหน้าของ FPC สายที่สืบทอดใน tc3.test จะเรียกผ่านทาง tc2.test (b: byte; l: longint = 1234); ตอนนี้เรียกผ่าน tc.test
- เหตุผล: สอดคล้องกับเอกสารของ FPC, ความเข้ากันได้ของ Delphi
- วิธีแก้ไข: ถ้าคุณต้องการให้คอมไพเลอร์ตัดสินใจว่าจะใช้วิธีใดในการกำหนดพารามิเตอร์ให้ใช้นิพจน์การรับสายที่สืบทอดมาอย่างครบถ้วนเช่นการทดสอบที่สืบทอด (b)
- ตัวปรับค่าเกินพิกเซลต้องอยู่ในอินเทอร์เฟซ:
- พฤติกรรมเก่า: สามารถประกาศฟังก์ชัน / ขั้นตอน / เมธอดเป็นเกินพิกัดในการใช้งานได้
- พฤติกรรมใหม่: หากมีการใช้คำสั่ง overload ก็จะต้องปรากฏในอินเทอร์เฟซ
- สาเหตุ: กลไกเก่าอาจทำให้ยากที่จะค้นหาปัญหา (ขึ้นอยู่กับว่าการใช้งานได้ถูกแยกวิเคราะห์แล้วหรือไม่คอมไพเลอร์จะปฏิบัติตามขั้นตอนเหมือนกับถูกประกาศโดย / ไม่เกิน) อาจทำให้เกิดการคอมไพล์ใหม่ที่ไม่พึงประสงค์เนื่องจาก เพื่อประสานการเปลี่ยนแปลง crc และความเข้ากันได้ของ Delphi
- วิธีแก้ไข: ตรวจสอบให้แน่ใจว่ามีการใช้ตัวปรับค่าเกินพิกัดทั้งในอินเทอร์เฟซและในการติดตั้งหากคุณใช้
- การเปลี่ยนแปลงหน่วย:
- มีหลายวิธีในการเปลี่ยนลายเซ็น TDataset (TRecordBuffer):
- พฤติกรรมเก่า: หลายวิธี (เสมือน) ของ TDataset มีพารามิเตอร์ประเภท & quot; pchar & quot; ซึ่งมักเรียกว่า & quot; buffer & quot;
- ลักษณะการทำงานใหม่: ชนิดของพาร์ติชันถูกเปลี่ยนเป็น TRecordBuffer ขณะนี้ประเภทนี้ยังคงเป็นนามแฝงสำหรับ p (ansi) char แต่ในเวลาจะเปลี่ยนเป็น pbyte สำหรับสาขา 2.7.1 / 2.8.0 ซึ่งเทียบเท่ากับ D2009 +
- เหตุผล: การเตรียมความพร้อมสำหรับ Delphi 2009 + ความเข้ากันได้และการปรับปรุงการพิมพ์โดยทั่วไป ใน Delphi 2009 + (และโหมด FPC ที่เข้ากันได้อย่างสมบูรณ์ในอนาคต) pchar ไม่ใช่ตัวชี้ไปยังไบต์อีกต่อไป การเปลี่ยนแปลงนี้จะผสานกลับไปเป็น 2.6 (.2) แต่มี TRecordBuffer = pchar
- วิธีแก้ไข: เปลี่ยนวิธีเสมือนที่เกี่ยวข้องเพื่อใช้ TRecordBuffer สำหรับพารามิเตอร์บัฟเฟอร์ กำหนด TRecordBuffer = pansichar เพื่อให้ Delphis และ FPCs ทำงานได้ดีขึ้น ในที่ที่มีการพิมพ์บัฟเฟอร์ไม่ใช้ pchar แต่เป็น TRecordbuffer สัญลักษณ์
- DLLParam เปลี่ยนจาก Longint เป็น PtrInt:
- ลักษณะการทำงานเก่า: DLLParam เป็นประเภท Longint แม้ใน Win64
- พฤติกรรมใหม่: DLLParam เป็นประเภท PtrInt แล้วในระบบ 64 บิท
- เหตุผล: ป้องกันข้อมูลสูญหายให้ตรงกับประกาศในส่วนหัวของ Windows
- การแก้ไข: เปลี่ยนประกาศของขั้นตอนที่ใช้เป็น dll hook เพื่อใช้พารามิเตอร์ PtrInt แทน Longint
- สัญลักษณ์บางตัวใน Unix และ Unixutils เลิกใช้แล้ว:
- การทำงานเก่า: ไม่มีคำเตือนที่เลิกใช้สำหรับ unixutils.getfs (หลายตัวแปร), unix.fpsystem (shortstring version only), Unix.MS_ ค่าคงที่และ unix.tpipe unix.statfs
- ลักษณะการทำงานใหม่: คอมไพเลอร์จะเปล่งคำเตือนที่ไม่สนับสนุนสำหรับสัญลักษณ์เหล่านี้ ในรุ่นอนาคตเหล่านี้อาจถูกลบออก
- เหตุผล: getfs ถูกแทนที่ด้วยฟังก์ชัน cross-platform แบบ sysutils.getfilehandle นานมาแล้ว fpsystem (shortstring) เป็นส่วนที่เหลือของการโยกย้าย 1.0.x- & gt; 2.0.x (เวอร์ชัน ansistring ยังคงสนับสนุนอยู่) ค่าคงที่ของ MS_ มีสำหรับการโทร msync ที่ไม่ได้รับการสนับสนุนโดย FPC จึงไม่ได้ใช้และไม่ได้เลือกไว้ กว่าทศวรรษและอาจถึงวันที่ kernel 1.x ครั้ง tpipe เป็นนามแฝง 1.0.x ของ baseunix.TFildes หน่วยที่มีการย้ายท่อ (fp) ไปในระหว่างชุด 2.0 Unix.statfs เป็นเวอร์ชันที่โหลดไม่ได้ถูกเปลี่ยนชื่อเป็นคำนำหน้า fp * เมื่อมีการเปลี่ยนชื่อเป็น 2.4.0
- การแก้ไข: ใช้ตัวแปรใหม่ (sysutils.getfilehandle, fpsystem (ansistring), baseunix.tfildes) ในกรณีของค่าคงที่ของ MS_ ให้หาค่าปัจจุบันสำหรับค่าคงที่จากตำแหน่งเดียวกันกับที่คุณได้รับรหัสที่ใช้
- เปลี่ยนพฤติกรรม TStrings.DelimitedText (หน่วยระดับชั้น):
- พฤติกรรมเดิม: หาก StrictDelim เป็นจริง TStrings.DelimitedText ไม่ปฏิบัติตามข้อกำหนด SDF format format (ซึ่งกำหนดไว้ในความช่วยเหลือของ Delphi) อย่างน้อยที่สุดในกรณีของช่องว่าง (และอาจเป็นอักขระ ASCII ต่ำอื่น ๆ ) ที่อยู่ด้านหน้าและด้านท้าย ของฟิลด์เช่นเดียวกับคำพูดและตอนท้ายบรรทัด แย่ลงถ้า StrictDelimiter เป็นจริงและในกรณีที่กล่าวถึงข้างต้นการบันทึก TString .DimimitText และการโหลดข้อความใน TString อื่นนำไปสู่ความแตกต่างระหว่างทั้งสอง หมายเหตุ: StrictDelimiter เป็นค่าดีฟอลต์โดยค่าเริ่มต้น
- พฤติกรรมใหม่: FPC ดำเนินการตามพฤติกรรม Delphi
- เหตุผล: ความสม่ำเสมอ (การเขียนและการอ่าน DelimitedText จะทำให้สตริงเดียวกัน) ความเข้ากันได้ของ Delphi (ตามข้อกำหนด SDF)
- วิธีแก้ไข: ตรวจสอบรหัสที่มีอยู่ซึ่งอ่านหรือเขียน DelimitedText; ถ้าจำเป็นแปลงข้อมูลหรือเขียนรหัสแปลงสัญญาณ ดูการทดสอบ webtbs tw19610.pp สำหรับการทดสอบอย่างละเอียด
- fcl-image TTiffIDF เปลี่ยนชื่อเป็น TTiffIFD:
- พฤติกรรมเก่า: คลาสผู้ช่วยเหลือ tiff สำหรับ & quot; ไดเรกทอรีไฟล์รูปภาพ & quot; ถูกสะกดผิด TiffIDF (หน่วย tiffcmn)
- การทำงานใหม่: ตอนนี้เปลี่ยนชื่อเป็น TTiffIFD
- เหตุผล: ความสม่ำเสมอการใช้งานต่ำ
- วิธีแก้ไข: เปลี่ยนชื่อตัวระบุตามความเหมาะสม
- หน่วย libc ออกคำเตือนที่คัดค้าน:
- พฤติกรรมเก่า: ในขณะที่เลิกใช้งานเป็นเวลาหลายปีหน่วย libc ไม่ได้ออกคำเตือนที่คัดค้าน
- การทำงานใหม่: คำเตือนที่เลิกใช้จะปรากฏขึ้นเมื่อใช้หน่วย libc เพื่อกระตุ้นให้คุณอัปเดต
- เหตุผล: หน่วย libc เป็นหน่วยมรดก Kylix ที่มีการพกพาที่ จำกัด
- การแก้ไข: ใช้หน่วย FPC ที่เหมาะสมตามที่อธิบายไว้ในหน่วย libc
- อื่น ๆ :
- การสนับสนุน UPX ถูกนำออก:
- การทำงานเก่า: มีการสนับสนุน UPX (ตัวประมวลผลปฏิบัติการ) ใน FPC Makefiles และ DOS และ Windows FPC ได้รวมเอาไบนารี UPX ไว้ด้วย
- การทำงานใหม่: นำออกทั้งหมด
- เหตุผล: ปล่อยไบนารีไม่ได้รับการอัปเดตเป็นเวลานาน ขนาดของไฟล์ปฏิบัติการของ FPC โดยทั่วไปไม่มีนัยสำคัญในวันนี้เมื่อเทียบกับขนาดการติดตั้งทั้งหมดและการใช้ UPX เป็นครั้งคราวทำให้เกิดความรำคาญเล็กน้อย (บวกผิดจากเครื่องสแกนไวรัสพฤติกรรมของเพจที่เลวร้ายยิ่งกว่าระบบปฏิบัติการไม่สามารถใช้ได้กับบางส่วนที่ปฏิบัติการได้ ... )
- วิธีแก้ไข: ดาวน์โหลดและติดตั้ง UPX จากหน้าแรกโดยทั่วไปแล้วประเมินความจำเป็นในการใช้งาน
- รุ่นนี้มีการแก้ไขไลบรารีมากที่สุดตั้งแต่ต้นเดือนมิถุนายน 2010 จนถึงเดือนมีนาคม 2011
- นอกจากนี้ยังมีการแก้ไขคอมไพเลอร์บางส่วนที่เกี่ยวข้องกับ 64 บิต
- Delphi เช่นรีซอร์สสำหรับทุกแพลตฟอร์ม >
- ปรับปรุงข้อมูลการแก้ปัญหาแคระ
- เป้าหมายใหม่หลายเป้าหมาย
- ระบบปฏิบัติการ Mac OS X 64 บิต (x86_64 / ppc64)
- iPhone (Mac OS X / Arm)
- Haiku (จากครอบครัว BeOS)
- การสนับสนุน ARM EABI ที่ดีขึ้น
- การเพิ่มประสิทธิภาพของโปรแกรมทั้งหมด
- bugfixes ของคอมไพเลอร์และการอัปเดตห้องสมุดครึ่งปี (ตั้งแต่ 2.2.4)
- ทั้งหมด:
- ชุดทดลอง - เครื่องมือติดตั้ง
- แพคเกจ:
- เพิ่มการสนับสนุนการอ่าน / เขียน TIFF ในรูปแบบ Fcl
- การปรับปรุงและแก้ไขในการสนับสนุน CHM
- แก้ไขการเชื่อมโยงแพ็คเกจ gtk2 กับเวอร์ชัน gtk เหนือ 2.13.4
- IDE:
- เพิ่มการสนับสนุนไฟล์ช่วยเหลือ CHM
มีอะไรใหม่ ในเวอร์ชัน 2.4.4:
ความคิดเห็นที่ไม่พบ