PyPy
پائی پائی () ازگر پروگرامنگ زبان کا نفاذ ہے۔ پائی پائی اکثر معیاری نفاذ سی پائی تھون سے زیادہ تیزی سے چلتا ہے کیونکہ پائی پائی صرف وقت پر مرتب کرنے والا استعمال کرتا ہے۔ زیادہ تر ازگر کوڈ پائی پائی پر اچھی طرح چلتا ہے سوائے اس کوڈ کے جو سی پائی تھون ایکسٹینشنز پر منحصر ہے، جو یا تو کام نہیں کرتا ہے یا جب پائی پائی میں چلتا ہے تو کچھ اوور ہیڈ ہوتا ہے۔ اندرونی طور پر، پائی پائی ایک ایسی تکنیک کا استعمال کرتا ہے جسے میٹا ٹریسنگ کہا جاتا ہے، جو ایک مترجم کو صرف وقت پر ٹریسنگ مرتب کرنے والے میں تبدیل کر دیتا ہے۔ چونکہ مترجموں کو عام طور پر مرتب کرنے والوں کے مقابلے میں لکھنا آسان ہوتا ہے، لیکن وہ آہستہ چلتے ہیں، اس لیے یہ تکنیک پروگرامنگ زبانوں کے موثر نفاذ کو آسان بنا سکتی ہے۔ پائی پائی کے میٹا ٹریسنگ ٹول چین کو آر پائیتھون کہا جاتا ہے۔ پائی پائی میں سی پائیتھون ماحولیاتی نظام کے حالیہ ورژن کے ساتھ مکمل مطابقت نہیں ہے۔ اگرچہ یہ پائیتھن 2.7، 3.7، 3.8 اور 3.9 ("سی پائیتھن کے لیے ایک ڈراپ ان متبادل") کے ساتھ مطابقت کا دعوی کرتا ہے، لیکن اس میں پائیتھن 3.10 میں کچھ نئی خصوصیات اور نحو کا فقدان ہے، جیسے کہ پیٹرن میچنگ کے لیے نحو۔ تفصیلات اور حوصلہ افزائی پائی پائی کا مقصد متحرک زبانوں کے نفاذ کے لیے ایک مشترکہ ترجمہ اور معاون فریم ورک فراہم کرنا ہے، جس میں زبان کی تفصیلات اور نفاذ کے پہلوؤں کے درمیان صاف علیحدگی پر زور دیا گیا ہے۔ اس کا مقصد نچلی سطح کی تفصیلات کو انکوڈ کیے بغیر نئی جدید خصوصیات کو فعال کرنے کے لیے مندرجہ بالا فریم ورک کا استعمال کرتے ہوئے ازگر پروگرامنگ زبان کی تعمیل، لچکدار اور تیز عمل درآمد فراہم کرنا بھی ہے۔ RPython بذات خود پائی پائی مترجم ازگر کے ایک محدود ذیلی سیٹ میں لکھا جاتا ہے جسے RPython (محدود ازگر) کہا جاتا ہے۔ RPython ازگر زبان پر کچھ رکاوٹیں ڈالتا ہے جیسے کہ مرتب کرنے کے وقت متغیر کی قسم کا اندازہ لگایا جا سکتا ہے۔ پائی پائی پروجیکٹ نے ایک ٹول چین تیار کیا ہے جو RPython کوڈ کا تجزیہ کرتا ہے اور اسے بائٹ کوڈ کی شکل میں ترجمہ کرتا ہے، جسے C میں کم کیا جا سکتا ہے۔ C کے علاوہ دیگر بیک اینڈ ہوتے تھے: جاوا، C #، اور جاوا اسکرپٹ، لیکن وہ بٹروٹ کا شکار تھے اور انہیں ہٹا دیا گیا ہے۔ اس طرح، پائی پائی کا تکراری لوگو ایک سانپ ہے جو خود کو نگل رہا ہے کیونکہ آر پائیتھون کا ترجمہ ازگر مترجم کرتا ہے۔ کوڈ کو جانچ اور تجزیہ کے لیے بغیر ترجمہ کے بھی چلایا جا سکتا ہے، جو متحرک زبانوں میں تحقیق کے لیے ایک اچھا ٹیسٹ بیڈ فراہم کرتا ہے۔ یہ پلاگ کے قابل کچرا جمع کرنے کے ساتھ ساتھ اختیاری طور پر اسٹیک لیس ازگر کی خصوصیات کو فعال کرنے کی اجازت دیتا ہے۔ آخر میں، اس میں ایک جسٹ ان ٹائم (جے آئی ٹی) جنریٹر شامل ہے جو انٹرپریٹر سورس کوڈ میں چند تشریحات کو دیکھتے ہوئے انٹرپریٹر میں جسٹ ان ٹائم کمپائلر بناتا ہے۔ تیار کردہ جے آئی ٹی مرتب ایک ٹریسنگ جے آئی ٹی ہے۔ آر پائیتھون اب غیر پائیتھون زبان کے نفاذ، جیسے پکسی لکھنے کے لیے بھی استعمال ہوتا ہے۔ پروجیکٹ کی حیثیت پائی پائی ورژن 7.3.7 کے طور پر تین سی پائیتھون ورژن کے ساتھ مطابقت رکھتا ہے: 2.7، 3.7 اور 3.3۔ CPython v3 کے ساتھ مطابقت رکھنے والا پہلا پائپی ورژن پائپی v2.3.1 (2014) ہے۔ CPython v3 کے ساتھ مطابقت رکھنے والے پائپی مترجم کو پائپی 3 کے نام سے بھی جانا جاتا ہے۔ پائی پائی میں 32 بٹ/64 بٹ x86 اور 32 بٹ/64 بٹ اے آر ایم پروسیسرز پر جے آئی ٹی تالیف سپورٹ ہے۔ ونڈوز، لینکس، اوپن بی ایس ڈی اور میک او ایس ایکس پر رات کو اس کی جانچ کی جاتی ہے۔ پائی پائی خالص ازگر سافٹ ویئر چلانے کے قابل ہے جو نفاذ کی مخصوص خصوصیات پر انحصار نہیں کرتا ہے۔ CPython C API ایکسٹینشنز کے لیے ایک مطابقت پرت ہے جسے CPyExt کہا جاتا ہے، لیکن یہ نامکمل اور تجرباتی ہے۔ سی مشترکہ کتب خانوں کے ساتھ انٹرفیس کرنے کا ترجیحی طریقہ بلٹ ان سی فارن فنکشن انٹرفیس (سی ایف ایف آئی) یا سی ٹائپ لائبریریوں کے ذریعے ہے۔ ہسٹری پائی پائی سائیکو پروجیکٹ کی پیروی ہے، جو کہ ازگر کے لیے صرف وقت پر مہارت حاصل کرنے والا مرتب ہے، جسے ارمین ریگو نے 2002 اور 2010 کے درمیان تیار کیا تھا۔ پائی پائی کا مقصد دائرہ کار کے ساتھ ایک جسٹ ان ٹائم اسپیشلائزنگ مرتب کرنا ہے، جو سائیکو کے لیے دستیاب نہیں تھا۔ ابتدائی طور پر، RPython کو جاوا بائٹ کوڈ، CIL اور جاوا اسکرپٹ میں بھی مرتب کیا جا سکتا تھا، لیکن دلچسپی کی کمی کی وجہ سے ان بیک اینڈز کو ہٹا دیا گیا۔ پائی پائی ابتدائی طور پر ایک تحقیق اور ترقی پر مبنی منصوبہ تھا۔ ترقی کی ایک پختہ حالت اور 2007 کے وسط میں ایک باضابطہ 1 ریلیز تک پہنچنے کے بعد، اس کی اگلی توجہ زیادہ CPython مطابقت کے ساتھ پروڈکشن کے لیے تیار ورژن جاری کرنے پر تھی۔ کوڈنگ سپرنٹ کے دوران پائی پائی کی بہت سی تبدیلیاں کی گئی ہیں۔ اگست 2008 میں، پائی پائی کچھ مشہور ازگر کتب خانوں جیسے پائلنز، پائیگلٹ، نیوو اور جانگو کو چلانے میں کامیاب رہا۔ 12 مارچ 2010 کو، رفتار پر توجہ مرکوز کرتے ہوئے، پائی پائی 1.2 جاری کیا گیا۔ اس میں ایک کام کرنے والا، اگرچہ ابھی تک مستحکم نہیں، صرف وقت پر مرتب کرنے والا شامل تھا۔ 30 اپریل 2011 کو، پائی پائی ورژن 1.5 جاری کیا گیا، جو سی پائی تھون 2.7 کے ساتھ مطابقت پر پہنچ گیا۔ 9 مئی 2013 کو، پائی پائی 2.0 جاری کیا گیا، جس نے اے آر ایم وی 6 اور اے آر ایم وی 7 جے آئی ٹی پر جے آئی ٹی تالیف کے لیے الفا کوالٹی سپورٹ متعارف کرایا، اور معیاری لائبریری میں سی ایف ایف آئی کو شامل کیا۔ 20 جون 2014 کو، پائی پائی 3 کو مستحکم قرار دیا گیا اور مزید جدید ازگر 3 کے ساتھ مطابقت متعارف کرائی گئی۔ اسے پائی پائی 2.3.1 کے ساتھ جاری کیا گیا تھا اور اس کا ورژن نمبر ایک ہی ہے۔ 21 مارچ 2017 کو، پائی پائی پروجیکٹ نے پائی پائی اور پائی پائی 3 دونوں کا ورژن 5.7 جاری کیا، جس میں مؤخر الذکر نے پائی تھون 3.5 کے لیے بیٹا کوالٹی سپورٹ متعارف کرایا۔ 26 اپریل 2018 کو، ورژن 6.0 جاری کیا گیا، جس میں ازگر 2.7 اور 3.5 (ونڈوز پر اب بھی بیٹا معیار) کی حمایت تھی۔ 11 فروری 2019 کو، ورژن 7.0 جاری کیا گیا، جس میں ازگر 2.7 اور 3.3 کی حمایت تھی۔ 14 اکتوبر 2019 کو، ورژن 7.2 جاری کیا گیا، جس میں ازگر 3.6.9 کی حمایت تھی۔ 24 دسمبر 2019 کو، ورژن 7.3 جاری کیا گیا، جس میں ازگر 3.6.9 کی حمایت تھی۔ 16 فروری 2020 کو، پائی پائی ٹیم نے سی ایف ایف آئی (سی فارن فنکشن انٹرفیس) پروجیکٹ کے ذخائر کے ساتھ بٹ بکٹ سے سورس کوڈ ہوسٹنگ کو heptapod.net پر منتقل کرنے کا اعلان کیا۔ ایک نیا لوگو اور ویب سائٹ ڈیزائن بھی شائع کیا گیا ہے۔ تاہم، نئے لوگو کا مصنف اور لائسنس معلوم نہیں ہے۔ فنڈنگ پائپی کو دسمبر 2004 اور مارچ 2007 کے درمیان ایک مخصوص ٹارگیٹڈ ریسرچ پروجیکٹ ہونے کے ناطے یورپی یونین نے مالی اعانت فراہم کی تھی۔ جون 2008 میں، پائی پائی نے گوگل اوپن سورس پروگراموں کا حصہ بننے کے لیے فنڈنگ کا اعلان کیا اور پائی پائی کو سی پائیتھون کے ساتھ زیادہ ہم آہنگ بنانے پر توجہ دینے پر اتفاق کیا۔ 2009 میں یوروپی یونین کی فنڈنگ ایجنسی یوروسٹارز نے خاص طور پر ایس ایم ایز پر توجہ مرکوز کرتے ہوئے پائی پائی پروجیکٹ کے ممبروں کی ایک تجویز کو قبول کیا جس کا عنوان تھا "پی وائی جے آئی ٹی-پائی پائی پر مبنی متحرک پروگرامنگ زبانوں کے لیے ایک تیز اور لچکدار ٹول کٹ"۔ یوروسٹار کی فنڈنگ اگست 2011 تک جاری رہی۔ پائیکون یو ایس 2011 میں، پائیتھن سافٹ ویئر فاؤنڈیشن نے پائی پائی کو زبان کے نئے ورژن کے ساتھ کارکردگی اور مطابقت پر کام جاری رکھنے کے لیے 10,000 ڈالر کی گرانٹ فراہم کی۔ اے آر ایم فن تعمیر کی بندرگاہ کو جزوی طور پر راسبیری پائی فاؤنڈیشن نے اسپانسر کیا تھا۔ پائی پائی پروجیکٹ اپنے اسٹیٹس بلاگ پیجز کے ذریعے بھی عطیات قبول کرتا ہے۔ 2013 تک، مختلف قسم کے ذیلی منصوبوں کے پاس فنڈنگ تھی: ازگر 3 ورژن مطابقت، عددی حسابات کے لیے بلٹ ان آپٹیمائزڈ نمپی سپورٹ اور بہتر متوازی کی اجازت دینے کے لیے سافٹ ویئر ٹرانزیکشنل میموری سپورٹ۔ بوٹ اسٹریپنگ (مرتب کرنے والے) سائتھن گراال وی ایم جزوی تشخیص سائیکو سیلف ہوسٹنگ سیلف انٹرپریٹر ان لادن نگل نوٹ حوالہ جات ڈیوڈ انکونا، ماسمو انکونا، انتونیو کونی، نکولس ڈی متساکس، 2007 بھی دیکھیں۔ RPython: متحرک اور مستحکم طور پر ٹائپ شدہ OO زبانوں کو دوبارہ مربوط کرنے کی طرف ایک قدم۔ پروک میں۔ متحرک زبان سمپوزیم (ڈی ایل ایس)، 2007۔ اے سی ایم پریس۔ کارل فریڈرک بولز، انتونیو کونی، میکیج فیجلکووسکی، 2009۔ میٹا لیول کا سراغ لگانا: پائپی کا ٹریسنگ جے آئی ٹی مرتب۔ پروک میں۔ ICOOOLPS، 2009۔ اے سی ایم پریس۔ بیرونی روابط 2007 سافٹ ویئر ایف پی 6 پروجیکٹس مفت سافٹ ویئر پروگرام شدہ ازگر ازگر (پروگرامنگ زبان) نفاذ سافٹ ویئر ایم آئی ٹی لائسنس اسٹیک پر مبنی ورچوئل مشینوں کا استعمال کرتے ہوئے