کامپایلر رایگان پاسکال (به معنی FPK Pascal) یک کامپایلر منبع باز پاسکال است که از سیستم عامل های زیر پشتیبانی می کند: لینوکس، FreeBSD، NetBSD، MacOSX / Darwin، MacOS کلاسیک، DOS، Win32، OS / 2، BeOS، SunOS (Solaris )، QNX و کلاسیک آمیگا.
کامپایلر رایگان پاسکال برای پردازنده های مختلف Intel x86، Amd64 / x86 64، PowerPC، PowerPC64، Sparc و ARM در دسترس است.
کامپایلر رایگان پاسکال دارای یک زبان بسیار تمیز است، بدون استفاده از Makefiles بر خلاف بسیاری از زبان های برنامه نویسی، سریع با F بزرگ است، هر واحد دارای شناسه های خود و شامل IDE (محیط توسعه مجتمع) است.
علاوه بر این، نرم افزار ویژگی یکپارچه سازی با اسمبلرها، برنامه نویسی شی گرا، smartlinking، استقلال توزیع است و سازگار با کد موجود است.
چه جدید در این نسخه است:
این نسخه به روز رسانی نقطه به 3.0 است و حاوی رفع اشکالات و به روز رسانی بسته ها، برخی از آنها دارای اولویت بالا هستند.
چه جدید در این نسخه است:
تغییر زبان:
تماسهای ارثی ناشناس:
رفتار قدیمی: یک فراخوانی ارثی ناشناس می تواند به هر شیوه ای در یک کلاس پدربزرگ که با پارامترهای متد فعلی سازگار است، تماس بگیرد.
رفتار جدید: یک تماس ارثی ناشناس، تضمین شده است که همیشه از طریق یک کلاس والدین به روش متصل می شود که توسط یکی از آنها جریمه شده است.
مثال: http://svn.freepascal.org/svn/fpc/trunk/tests/tbs/tb0577.pp را ببینید در نسخه های قبلی FPC، فراخوانی وارده از tc3.test از طریق tc2.test (b: byte؛ l: longint = 1234)؛ اکنون از طریق tc.test به آن تماس میگیرد.
دلیل: مطابق با اسناد FPC، سازگاری با دلفی.
راه حل: اگر کامپایلر بخواهید تصمیم بگیرد که کدام روش بر اساس پارامترهای مشخص شده تماس بگیرد، از یک فراخوانی تماس فراخواننده ارثی مانند آزمون ارثی (ب) استفاده کنید.
اصلاح کننده Overload باید در رابط کاربری باشد:
رفتار قدیمی: ممکن بود یک تابع / روش / روش را به عنوان تنها بارگذاری در پیاده سازی اعلام کنیم.
رفتار جدید: اگر یک دستورالعمل بارگیری استفاده شود، باید در رابط نیز ظاهر شود.
درمان: اطمینان حاصل کنید که اصلاح کننده Overload در هر دو رابط و در اجرای اگر شما از آن استفاده کنید.
تغییرات واحد:
چندین روش از TDataset تغییر امضا (TRecordBuffer):
رفتار قدیمی: چندین (مجازی) روش TDataset دارای پارامترهایی از نوع & quot؛ pchar & quot؛ هستند که اغلب به عنوان «بافر» نامیده می شوند.
رفتار جدید: نوع pchar به TRecordBuffer تغییر کرده است. در حال حاضر این نوع هنوز نام مستعار برای p (ansi) char است، اما در زمانیکه برای شاخه 2.7.1 / 2.8.0، که D2009 + سازگار است، به pbyte تغییر خواهد کرد.
دلیل: آمادگی برای دلفی 2009 + سازگاری و بهبود تایپ عمومی. در دلفی 2009+ (و حالت های FPC کاملا سازگار در آینده) pchar دیگر اشاره به بایت نیست. این تغییر دوباره به 2.6 (.2) ادغام میشود، اما با TRecordBuffer = pchar.راه حل: تغییر روش های مجازی مربوط به استفاده از TRecordBuffer برای پارامترهای بافر. تعریف TRecordBuffer = pansichar برای نگه داشتن دلفی و FPC های قدیمی تر کار کنید. در مکان هایی که یک bufer تعریف شده است، از pchar استفاده نکنید اما نماد TRecordbuffer است.
DLLParam از Longint به PtrInt تغییر کرد:
رفتار قدیمی: DLLParam از نوع Longint حتی در Win64 بود.
رفتار جدید: DLLParam در حال حاضر از نوع PtrInt و همچنین در سیستم های 64 بیتی است.
دلیل: جلوگیری از از دست دادن داده ها، مطابقت اعلام در هدر های ویندوز.
درمان: اعلان روش هایی که به عنوان DLL قلاب استفاده می شود، برای تغییر پارامتر PtrInt به جای Longint تغییر دهید.
برخی از نمادها در یونیکس و Unixutils واحد شده اند:
رفتار قدیمی: هشدار غیرقانونی برای unixutils.getfs (چندین نوع)، unix.fpsystem (فقط نسخه کوتاه)، Unix.MS_constants و unix.tpipe. unix.statfs
رفتار جدید: کامپایلر هشدار منسوخ برای این نمادها را منتشر می کند. در نسخه های آینده این ممکن است حذف شود.دلیل: getfs با استفاده از تابع sysutils.getfilehandle کاملا متقابل پلتفرم جایگزین شده است. fpsystem (shortstring) یک مابقی از مهاجرت 1.0.x- & gt؛ 2.0.x بود (نسخه سازنده باقی می ماند پشتیبانی می شود)، ثابت MS_ برای یک تماس msync است که توسط FPC پشتیبانی نمی شود، بنابراین برای استفاده نشده و بدون کنترل بیش از یک دهه و ممکن است به کرنل 1.x بار، tpipe نام مستعار 1.0.x baseunix.TFildes، واحد که در آن (FP) لوله در طول 2.0 سری منتقل شد. Unix.statfs یک نسخه بیش از حد است که به طور پیش فرض به fp * prefix تغییر نام داده بود زمانی که دیگران در 2.4.0 تغییر نام یافتند
روش: از انواع جدید استفاده کنید (sysutils.getfilehandle، fpsystem (ansistring)، baseunix.tfildes). در مورد ثابت های MS_، مقادیر فعلی برای ثابت ها را از همان جایی که کد شما از آن استفاده می کنید، بدست آورید.
رفتار TStrings.DelimitedText تغییر (کلاس واحد):رفتار قدیمی: اگر StrictDelim درست باشد، TStrings.DelimitedText به طور کامل از مشخصات SDF فرمت (که در Delphi help تعریف شده است) حداقل در مورد فضاهای (و احتمالا سایر کاراکترهای ASCII پایین) در جلوی و در انتهای فیلدها به صورت کامل دنبال نمی شود به خوبی به عنوان نقل قول و پایان خط. بدتر اینکه، اگر StrictDelimiter درست باشد و در مورد موارد فوق ذکر شده است، صرفه جویی در TString. DelimitedText و بارگذاری آن متن در دیگر TString منجر به تفاوت بین دو. توجه: StrictDelimiter به طور پیش فرض غلط است.
رفتار جدید: FPC به دنبال رفتار دلفی است.
دلیل: یکپارچگی (نوشتن و خواندن در DelimitedText باید در همان رشته ها باشد)، سازگاری با Delphi (به دنبال مشخصات SDF).
راه حل: کد فعلی خود را که خوانده یا نوشته DelimitedText را مرور میکنید بررسی کنید؛ در صورت لزوم داده ها را تغییر داده یا کد مبدل را بنویسید. برای تست دقیق به تست webtbs tw19610.pp مراجعه کنید.
fcl-image TTiffIDF به TTiffIFD تغییر نام داده است:
رفتار قدیمی: کلاس helper tiff برای & quot؛ دایرکتوری فایل تصویری & quot؛ با TiffIDF اشتباه گرفته شد (واحد tiffcmn)
رفتار جدید: اکنون به TTiffIFD تغییر نام داد
دلیل: ثبات، مصرف کم
درمان: تغییر نام شناسه به عنوان مناسب.
واحد libc هشدار منسوخ را مسدود می کند:
رفتار قدیمی: در حالی که سالیان متداول، واحد libc اخطار اخطاری را صادر نکرد
رفتار جدید: هنگام استفاده از libc واحد نمایش هشدار منسوخ نمایش داده می شود و از شما برای به روز رسانی درخواست می کند.
دلیل: unit libc یک واحد میراث Kylix با قابلیت حمل و نقل محدود است
درمان: از واحدهای FPC مناسب استفاده کنید همانطور که در واحد libc شرح داده شده است
دیگر:
پشتیبانی UPX حذف شده است:
رفتار قدیمی: برخی از UPX (یک بسته بندی اجرایی) در FPC Makefiles پشتیبانی می شد، و نسخه های DOS و ویندوز FPC شامل یک باینری UPX بود.
رفتار جدید: همه حذف شده است.
دلیل: باینری های آزاد شده برای مدت زمان UPX نداشته اند. اندازه فایلهای اجرا شده FPC به طور کلی در مقایسه با حجم نصب به طور کلی ناچیز است و استفاده از UPX گاهی اوقات موجب ناراحتی های جزئی می شود (مثبت کاذب از اسکنرهای ویروس، رفتار بدبختانه با سیستم عامل، عدم سازگاری با بخش های خاص اجرایی، ...)
راه حل: خود UPX خود را از صفحه اصلی خود دانلود و نصب کنید و به طور کلی نیاز به آن را ارزیابی کنید.
چه جدید در نسخه 2.4.4 است:
این نسخه حاوی رفع بیشتر کتابخانه ها از اوایل ژوئن 2010 تا مارچ 2011 است.
همچنین برخی از اصلاحات کامپایلر وجود دارد، بیشتر مربوط به 64 بیتی.
چه جدید در نسخه 2.4.0 است:
منابع دلفی برای همه سیستم عامل ها مانند
بهبود اشکال زدایی کوتوله
چند هدف جدید
64 بیتی Mac OS X (x86_64 / ppc64)
آیفون (مک OS X / آرم)
Haiku (از خانواده BeOS)
بهبود ARM EABI پشتیبانی
بهینه سازی برنامه کامل
بسیاری از رفع اشکالات کامپایلر و نیمی از سال به روز رسانی کتابخانه (از 2.2.4)
چه جدید در نسخه 2.2.4 است:
همه:
بسته آزمایشی نصب ابزار
بسته ها:
اضافه شدن پشتیبانی از خواندن / نوشتن TIFF در fcl-image
بهبود و اصلاح در پشتیبانی از CHM
پیوند gtk2-package با نسخه های gtk بیش از 2.13.4 است
IDE:
اضافه شدن پشتیبانی از فایل های کمک CHM
نظر یافت نشد