Agena هي لغة برمجة مفتوحة المصدر ومتعددة المنصات وسهلة التعلم ومصممة للاستخدام اليومي. ويمكن استخدامه في البيئات الرسومية والعلمية واللغوية والتعليمية ، وكذلك في تطبيقات البرمجة النصية ، ودعم جميع أنظمة التشغيل السائدة.
يقدم العديد من مرافق التحكم في التدفق
يوفر التطبيق العديد من مرافق التحكم في التدفق ، مثل إذا ، إذاً. أليف ، وإلا الشروط ، حالة وأخرى الشروط ، هو المشغل ، العددية ل ، من ، إلى ، وعن طريق الحلقات ، العددية المجمعة لفي حين ، والحلقات في الحلقات ، في حين وقيام / كحلقات ، وبيان تخطي ، وكسر البيان ، وكذلك التحقق من نوع البيانات.
يوفر التعيينات التعداد
من بين الميزات الأخرى ، يمكن أن نذكر مكتبة رياضية دقيقة تعسفية ، وتكوين سهل لبيئتك الشخصية ، ونظام حزم سهل الاستخدام ، ومهام العد ، والتحكم في النطاق عبر الكلمات الرئيسية للمجلدات / النطاق ، والعديد من الميزات الجذابة الأخرى.
تحت غطاء المحرك والتوافر
ستظهر لنا نظرة سريعة تحت غطاء المحرك أن المشروع مكتوب بلغات البرمجة C و BASIC و Lua و ALGOL 68 ، مما يعني أن تركيبته تشبه تركيب هذه المشاريع. يتم تشغيله بالكامل في بيئة وحدة تحكم / طرفية ، مما يعني أنه لا يحتوي على واجهة مستخدم رسومية (GUI).
يشحن مع محرر بسيط
على الرغم من حقيقة أن برنامج Agena هو تطبيق سطر أوامر ، إلا أنه يأتي مع برنامج رسوميات محرر بسيط ، يسمى AgenaEdit ، والذي يتميز ببيئة Agena المدمجة وإمكانيات تأليف التركيب. مستوحاة بشكل كبير من محرر مماثل تم تطويره من قبل بيل سبيتزاك من أجل مجموعة أدوات FLTK عبر منصة C ++ GUI.
يعمل على Raspberry Pi
يتم دعم قدرات Agena الرسومية على أنظمة التشغيل GNU / Linux و Solaris و Mac OS X و Microsoft Windows و eComStation - OS / 2 و DOS. يمكن نشره بسهولة على كلا النظامين الأساسيين للأجهزة 64 بت و 32 بت ، وقد تم اختباره بنجاح على لوحة أجهزة الكمبيوتر Raspberry Pi القائمة على ARM.
ما هو الجديد في هذا الإصدار:
وظيفة حساب التفاضل والتكامل والإحصاء الجديدة
ما هو الجديد في الإصدار:
وظيفة حساب التفاضل والتكامل والإحصاء الجديدة
ما هو الجديد في الإصدار 2.9.4:
وظيفة حساب التفاضل والتكامل والإحصاء الجديدة
ما هو الجديد في الإصدار 2.8.5:
وظيفة حساب التفاضل والتكامل والإحصاء الجديدة
ما هو الجديد في الإصدار 2.8.2:
وظيفة حساب التفاضل والتكامل والإحصاء الجديدة
ما هو الجديد في الإصدار 2.6.1:
`stats.chauvenet` يمكنه الآن التحقق بالتحديد من القيم الخارجية السفلية أو العلوية بتمرير الخيار` outlier = 'lower'` أو ` outlier = 'upper'` ، على التوالي.
`bags.remove` تسببت في أخطاء تجزئة. وقد تم إصلاح هذا. علاوة على ذلك ، تم تغيير جميع وظائف "الأكياس" المنفذة في C داخليًا.
لم يعمل metamethods (غير موثقة) لـ `+` و `-` و` * `إذا لم يتم استدعاء حزمة` bags` مع الدالة `with` أو عبارة` import / alias`. وقد تم إصلاح هذا.
ما هو الجديد في الإصدار 2.5.4:
يمكن الآن لـ stats.chauvenet` التحقق بالتحديد من القيم الخارجية السفلية أو العلوية عبر تمرير الخيار `outlier = 'lower'` أو` outlier =' upper'` ، على التوالي.
`bags.remove` تسببت في أخطاء تجزئة. وقد تم إصلاح هذا. علاوة على ذلك ، تم تغيير جميع وظائف "الأكياس" المنفذة في C داخليًا.
لم يعمل metamethods (غير موثقة) لـ `+` و `-` و` * `إذا لم يتم استدعاء حزمة` bags` مع الدالة `with` أو عبارة` import / alias`. وقد تم إصلاح هذا.
ما هو الجديد في الإصدار 2.5.3:
`stats.chauvenet` يمكنه الآن التحقق بالتحديد من القيم الخارجية السفلية أو العلوية بتمرير الخيار` outlier = 'lower'` أو ` outlier = 'upper'` ، على التوالي.
`bags.remove` تسببت في أخطاء تجزئة. وقد تم إصلاح هذا. علاوة على ذلك ، تم تغيير جميع وظائف "الأكياس" المنفذة في C داخليًا.
لم يعمل metamethods (غير موثقة) لـ `+` و `-` و` * `إذا لم يتم استدعاء حزمة` bags` مع الدالة `with` أو عبارة` import / alias`. وقد تم إصلاح هذا.
ما هو الجديد في الإصدار 2.4.2:
يمكن الآن لـ "stats.chauvenet" التحقق بالتحديد من القيم الخارجية السفلية أو العلوية عبر تمرير الخيار `outlier = 'lower'` أو` outlier =' upper'` ، على التوالي.
`bags.remove` تسببت في أخطاء تجزئة. وقد تم إصلاح هذا. علاوة على ذلك ، تم تغيير جميع وظائف "الأكياس" المنفذة في C داخليًا.
لم يعمل metamethods (غير موثقة) لـ `+` و `-` و` * `إذا لم يتم استدعاء حزمة` bags` مع الدالة `with` أو عبارة` import / alias`. وقد تم إصلاح هذا.
ما هو الجديد في الإصدار 2.3.0 RC1:
الآن تدعم الحلقات `for` الرقمية الكلمة الأساسية 'downto' حتى يمكنك العد دون استخدام حجم خطوة إلزامي` by` سلبي. في سياق "downto" ، يجب أن يكون حجم الخطوة "by" إيجابيًا دائمًا. `من" البداية "و" لإيقاف "القيم إلزامية عند استخدام الكلمة الأساسية" downto ".لم يعد يتم دعم metamethods '__finite' و '__entier' و '__sqrt'. بدلاً من ذلك ، تمت إضافة ثلاثة نماذج جديدة للعمليات على الهياكل: "__union" لعمليات النقابة ، "__intintect" لتحديد التقاطعات ، و "__minus" للاختلافات. وبالتالي ، فإن حزمة "الحقائب" تدعم الآن هذه العمليات الثلاث.
لم يكن مشغل القسمة الصحيحة يدعم خاصية metamethod واستخدمها من أجل عوامة الطفو (`` `` المشغل) بدلاً من ذلك. وقد تم إصلاح هذا.
تحدد الوظيفة الجديدة "stats.gini" معامل جيني ، وهو مقياس للمساواة (in-).
الدالة الجديدة `stats.zscore` تقوم بإرجاع دالة حوسبة z (درجة قياسية) لعينة - عدد الانحرافات المعيارية للعينة فوق أو تحت متوسط التوزيع.
`stats.sorted` الآن بشكل افتراضي يستخدم خوارزمية Introsort بدلاً من Quicksort. هذا يمكن أن يسرع وقت الحساب ثلاث مرات في حالات سيئة (حيث يحتاج Quicksort عمليات O (n ^ 2) ، بينما لا يضحي بالأداء في المواقف العادية. في الواقع ، يستخدم Introsort Quicksort بشكل افتراضي ومن ثم التبديل تلقائيًا إلى Heapsort إذا وصل عمق العودية إلى 2 * log (n، 2) ، حيث n هو عدد العناصر في البنية.
يمكنك تجاوز هذا المنطق من خلال تمرير الخيار "quicksort" الجديد الذي يستخدم طريقة Quicksort العودية التقليدية لفرز الأرقام. أيضا ، يمكن أيضا أن تستخدم أيضا 'stats.sorted` خوارزمية Heapsort حصرا إذا تم تمرير الخيار الجديد' heapsort '، وخوارزمية Quicksort غير متكررة ابتكرها Niklaus Wirth مع الخيار الجديد' nrquicksort '.
ترجع الدالة الجديدة "stats.meanmed" كل من المتوسط الحسابي ومتوسط التوزيع ، أو بدلاً من حاصل الوسط والوسيط ، مما يسرع زمن الحساب عند الحاجة إلى هذه القيم بحوالي 20 بالمائة.
تحسين رسالة الخطأ الخاصة بمشغل `size`.
ما هو الجديد في الإصدار 2.1.1:
وظائف وبقع جديدة:`try / catch`: مواصفات صريحة لمتغير الخطأ مباشرةً بعد الرمز المميز 'catch' أصبح الآن اختياريًا. إذا لم يتم تحديد متغير خطأ ، فسيتم تخزين رسالة الخطأ تلقائيًا إلى المتغير `lasterror` المحلي ، ويجب ترك الكلمة الرئيسية` then`:
وGT. محاولة
وGT. خطأ ("عفوًا!")
وGT. قبض على
وGT. طباعة (lasterror)
وGT. YRT.
وجه الفتاة !
في بعض الأحيان لم يعمل بيان `try / catch` في الإجراءات (متغير خطأ غير معين). وقد تم إصلاح هذا.
تقوم الدالة `net.wget` الجديدة بتنزيل صفحات HTML من الويب.
ضبطها `skycrane.counter` بنسبة 10 ٪. تقوم الدالة الآن بشكل اختياري بتطبيق Kahan-Ozawa بدلاً من خوارزمية تجميع Kahan الأصلية إذا كانت الوسيطة الثالثة الجديدة هي سلسلة "ozawa". تم تعديل مصادر C المقابلة لمنع تحسين برنامج التحويل البرمجي ، والذي يمكن أن يلغي التحسينات أيضًا.
يطبع الآن "argerror" اسم النوع المعرفة من قبل المستخدم للقيمة المستلمة في رسالة الخطأ الخاصة به. إذا لم تتضمن القيمة نوعًا معرفًا من قبل المستخدم ، فسيتم إصدار نوعه الأساسي.
يقوم الخيار "أ" الجديد بـ "debug.getinfo" بإرجاع عدد الوسيطات المتوقع بواسطة أحد الإجراءات ، وذلك بفضل Rob Hoelz 'LuaPowerPatch.
رسالة خطأ محسنة `فهرس خارج النطاق` للسلاسل.
عدلت ملفات "stats.agn" و linalg.agn` و `library.agn` و` ansi.agn` فيما يتعلق بالتعامل مع الأخطاء.
ما هو الجديد في الإصدار 2.1.0:
بالنسبة لنوع جديد من معالجة الأخطاء ، تم تقديم عبارة `try / catch` الجديدة. تم اختراعه و كتابته بواسطة Hu Qiwei for Lua 5.1 back in 2008.بشكل عام ، يمكن وضع أي عبارات حيث يمكن توقع استثناء في جملة `try`. إذا تم إصدار خطأ أو تم إنشاؤه بواسطة استدعاء صريح إلى الدالة `error` أو إلى أي تعبير أو وظيفة أو بيان آخر ، فإن عنصر التحكم على الفور ينتقل إلى عبارة` catch` المقابلة إذا كان موجودًا أو إلى نهاية `try / yrt `statement إذا لم يتم إعطاء شرط` catch` ، مع تجاهل أي عبارات لاحقة أخرى في جملة `try`.
ما زال يتم التعامل مع تسهيلات التعامل مع الخطأ 'protect / lasterror' وسيتم دعمها دائمًا. يعمل بيان التحكم الجديد أيضًا مع عبارات `break` و` skip` و 'redo` و `return` بشكل لا تشوبه شائبة.
يقوم بيان `redo` الجديد بإعادة تشغيل التكرار الحالي لورقة` for / to` و `for / in` من البداية.
عامل التشغيل الجديد `recip` يقوم بارجاع معكوس الرقم x. وهو ما يعادل التعبير 1 / س ، ولكن بشكل أسرع.
تقوم الدالة `stats.ema` الجديدة بحساب المتوسط المتحرك الأسي للتوزيع. الدالة الجديدة `stats.gema` تقوم بإرجاع دالة مكرر بإرجاع المتوسط المتحرك الأسي ذي الصلة للتوزيع.
``٪ `و` +٪ `و` -٪ `تم إرجاع` undefined` بدلاً من نتيجة صحيحة إذا كان معاملهم الصحيح صفراً. وقد تم إصلاح هذا.
تم إصلاح رسالة خطأ في `net.survey`.
رسائل خطأ محسنة لفهرسة خارج النطاق من أزواج وسلاسل.
في إصدارات ANSI و Solaris و DOS ، تم ضبط مشغل `int`.
تحول الدالة C الجديدة لـ API `agn_arraytoseq` صفيفًا رقميًا إلى تسلسل وتدفع هذا التسلسل الجديد فوق المكدس.
تحديث الدليل.
ما هو الجديد في الإصدار 2.1.0 RC:
يقوم بيان `redo` الجديد بإعادة تشغيل التكرار الحالي لورقة` for / to` و `for / in` من البداية. مثال:وGT. علم: = صحيح ؛ وGT. لـ j in [10، 11، 12] do & gt؛ print ('before'، j، flag)؛ وGT. if flag and j = 11 then & gt؛ علم واضح وGT. print ('- & gt؛'، j، flag، 'jump back') & gt؛ إعادة & gt؛ فاي. وGT. print ('after'، j، flag) & gt؛ حتى j & gt؛ 12؛ قبل 10 صحيح بعد 10 صحيح قبل 11 صحيح - & GT. 11 قفزة خاطئة مرة أخرى قبل 11 خطأ بعد 11 خطأ قبل 12 كاذبة بعد 12 كاذبة
عامل التشغيل الجديد `recip` يقوم بارجاع معكوس الرقم x. وهو ما يعادل التعبير 1 / س ، ولكن بشكل أسرع.
تحسب الدالة `stats.ema` الجديدة المتوسط المتحرك الأسي للتوزيع. الدالة الجديدة `stats.gema` تقوم بإرجاع دالة مكرر بإرجاع المتوسط المتحرك الأسي ذي الصلة للتوزيع. لاستخدامها ، يرجى إلقاء نظرة على ملف مصدر src / stats.c ، وظائف C * ema.
``٪ `و` +٪ `و` -٪ `تم إرجاع` undefined` بدلاً من نتيجة صحيحة إذا كان معاملهم الصحيح صفراً. وقد تم إصلاح هذا.
تم إصلاح رسالة خطأ في `net.survey`.
تقوم دالة C API الجديدة `agn_arraytoseq` بتحويل مصفوفة رقمية إلى تسلسل وتدفع هذا التسلسل الجديد فوق الرصة.
الجديد في الإصدار 2.0.0:
البيانات والوظائف الجديدة:إن Agena 2.0 متوافق إلى الأسفل مع Agena 1.12 ، باستثناء أن الرموز `import` و` alias` و` until` و `onsuccess` هي كلمات رئيسية الآن ولا يمكن استخدامها كمتغيرات. حاليًا ، تتوفر أجهزة تثبيت Solaris و Debian (x86 و PowerPC و Raspberry Pi) و Windows و Mac و DOS لـ 2.0 ، بما في ذلك الإصدار التمهيدي والمرجع المحدث الذي يشرح جميع الميزات الجديدة بالتفصيل.
يتغير المتغير الجديد للعلامة `for / as` و` for / until` في نهاية التكرار الحالي ويبدأ التكرار التالي أو يترك الحلقة. يعمل هذا مع كل من "for / to" ، بالإضافة إلى حلقات "for / in". في الواقع ، كلا المتغيرات تنفيذ حلقة مرة واحدة على الأقل حتى يتم التحقق من الشرط المحدد.
أمثلة:
وGT. لأني إلى 5 القيام به
وGT. طباعة (ط)
وGT. كما أنا & lt؛ 3
وGT. لأني في [1 ، 2 ، 3 ، 4 ، 5]
وGT. طباعة (ط)
وGT. حتى i & gt؛ = 3
تتكرر حلقة `do / until` الجديدة حتى يتم استيفاء شرط معين:
وGT. c: = 0؛
وGT. فعل
وGT. inc c؛
وGT. طباعة (ج)
وGT. حتى c & gt؛ = 3في الحلقات `for` الرقمية ، قد لا يتم منح عبارة` to` بعد الآن. بدلاً من ذلك ، عند ترك عبارة `إلى` ، تتكرر الحلقة حتى يتم الوصول إلى أكبر عدد يمكن تمثيله على النظام الأساسي الخاص بك ، في C HUGE_VAL:
وGT. لأفعل
وGT. طباعة (ط)
وGT. التطوير التنظيمي
تقوم جملة `onsuccess` الجديدة في عبارات" if "و" case "بتنفيذ جزء إذا كان أحد الشروط على الأقل صحيحًا. أمثلة:
وGT. العلامة: = false ؛
وGT. إذا 1 = 0 ثم
وGT. الطباعة (0)
وGT. أليف 1 = 1 ثم
وGT. الطباعة (1)
وGT. onsuccess
وGT. علم: = صحيح
وGT. آخر
وGT. طباعة (-1)
وGT. فاي.
وGT. طباعة (العلم)؛
صحيح
وGT. العلامة: = false ؛
وGT. إذا 1 = 0 ثم
وGT. الطباعة (0)
وGT. elif 1 = 0 then
وGT. الطباعة (1)
وGT. onsuccess
وGT. علم: = صحيح
وGT. آخر
وGT. طباعة (-1)
وGT. فاي.
وGT. طباعة (العلم)؛
خاطئة
وGT. العلامة: = false ؛
وGT. أ: = 2 ؛
وGT. حالة
وGT. من 1 ثم
وGT. الطباعة (1)
وGT. من 2 ثم
وGT. الطباعة (2)
وGT. onsuccess
وGT. علم: = صحيح
وGT. آخروGT. طباعة (-1)
وGT. ESAC.
وGT. طباعة (العلم)؛
صحيح
تسمح العبارة "استيراد" الجديدة باستيراد مكتبة واحدة أو أكثر دون وضع أسمائها في علامات اقتباس ، على سبيل المثال ، "import calc، stats" يعادل "readlib ('calc'، 'stats')".
يؤدي الخيار `alias` إلى عبارة` import` إلى تعيين اسم قصير واحد أو أكثر إلى وظائف المكتبة التي تم إنشاؤها ، على سبيل المثال ، "import calc alias xpdiff" يساوي "مع ('calc'، 'xpdiff')" ، و "import calc alias" يعادل "with ('calc')".
يسمح عامل التشغيل الجديد `..` بفهرسة الجداول حتى إذا كان معامل الجانب الأيسر يقيّم إلى` null`. في هذه الحالة ، يتم ارجاع `null` ولا يتم تكوين` `محاولة فهرسة الحقل ... (قيمة فارغة)` `. وهو مشابه لوظيفة `getentry` ولكنه أسرع بثلاث مرات. أمثلة:
وGT. إنشاء الجدول أ ؛
وGT. a.b:
لا شيء
وGT. A.B.C:
خطأ في stdin ، في السطر 1:
محاولة فهرسة حقل `b` (قيمة فارغة)
وGT. a..b..c:
لا شيء
وGT. إنشاء الجدول أ ؛
وGT. و[1]:
لا شيء
وGT. و[1] [2]:
خطأ في stdin ، في السطر 1:
محاولة فهرسة الحقل `؟` (قيمة فارغة)
وGT. و.. [1] .. [2]:
لا شيء
تقوم الدالة الجديدة 'drem` بتقييم باقي قسمة عدد صحيح x / y ، ولكن على عكس `irem` ، تقريب الحاصل الداخلي x / y إلى أقرب عدد صحيح بدلاً من الصفر.
تُرجع الدالة الجديدة `skycrane.todate` التاريخ والوقت الحاليين كسلسلة منسقة.
تقوم الوظيفة الجديدة `io.truncate` باقتطاع ملف في موضع الملف الحالي.
تقوم الوظيفة الجديدة `io.move` بتغيير موضع الملف لعدد محدد من الأحرف إلى اليمين أو اليسار.
الدالة الجديدة `io.filesize` تقوم بإرجاع حجم الملف.
`readlib` يقبل الآن السلاسل كوسيلتها ، فقط. الأرقام غير مسموح بها بعد الآن.
إذا كانت الوسيطة الأخيرة إلى `with` هي Boolean` false` ، فإن الدالة لا تقوم بكتابة أسماء قصيرة معينة إلى وحدة التحكم (stdout).
يقبل "strings.fields" الآن أيضًا تسلسل أرقام الفهرس. ومع ذلك ، فإنه لا يقبل الفهرس `0` بعد الآن.
يشتمل مُثبت Raspberry Pi Wheezy Debian الآن على حزمة الرسومات `gdi`.
يتم الآن عرض الملف `change.log` بشكل صحيح في Windows.
ما هو الجديد في الإصدار 2.0.0 RC3:
يتغير المتغير الجديد للعلامة `for / as` و` for / until` في نهاية التكرار الحالي ويبدأ التكرار التالي أو يترك الحلقة. هذا يعمل مع كل من / إلى ، وكذلك ل / في الحلقات.
ما هو الجديد في الإصدار 2.0.0 RC2:
يتغير المتغير الجديد للعلامة `for / as` و` for / until` شرطًا في نهاية التكرار الحالي ويبدأ إما التكرار التالي أو يترك حلقة. هذا يعمل مع كل من / إلى ، وكذلك ل / في الحلقات.
ما هو الجديد في الإصدار 2.0.0 RC1:
تسمح العبارة "استيراد" الجديدة باستيراد مكتبة واحدة أو أكثر دون وضع أسمائها في علامات اقتباس ، على سبيل المثال ، "import calc، stats" يعادل "readlib ('calc'، 'stats')".
يؤدي الخيار `alias` إلى عبارة` import` إلى تعيين اسم قصير واحد أو أكثر إلى وظائف المكتبة التي تم إنشاؤها ، على سبيل المثال ، "import calc alias xpdiff" يساوي "مع ('calc'، 'xpdiff')" ، و "import calc alias" يعادل "with ('calc')".
يسمح عامل التشغيل الجديد `..` بفهرسة الجداول حتى إذا كان معامل الجانب الأيسر يقيّم إلى` null`. في هذه الحالة ، يتم ارجاع `null` ولا يتم تكوين` `محاولة فهرسة الحقل ... (قيمة فارغة)` `. وهو مشابه لوظيفة `getentry` ولكنه أسرع بثلاث مرات.
الجديد في الإصدار 1.12.9:
وظائف جديدة `io.getclip` و` io.putclip` تبادل النصوص بين Agena وحافظة (ويندوز فقط).تمت إعادة كتابة "stats.prange" في C وأصبح أسرع بنسبة 60٪.
`os.cpuinfo` الآن بإرجاع الصحيح والمزيد من المعلومات على الأنظمة المستندة إلى ARM.
في أنظمة DOS و UNIX بما في ذلك نظام التشغيل Mac OS X وفقط في المجال المعقد ، فإن exponentiation من الأساس 0 إلى الأس 0 + r * I ، مع r أي عوامة غير صفرية ، يتم إرجاع `undefined` بدلاً من 0. لقد كان هذا ثابت.
في أنظمة DOS و UNIX بما في ذلك نظام التشغيل Mac OS X وفقط في المجال المعقد ، فإن exponentiation من الأساس 0 إلى الأس * r + 0 * I ، مع r أي تعويم إيجابي ، يتم إرجاع `undefined` بدلاً من 0. لقد تم إصلاح هذا.
`stats.obcount` و` stats.obpart` لا يمكن أن تتضمن قيمًا في الحد الأدنى في أقصى اليمين. وقد تم إصلاح هذا.
`calc.nakspline` و` calc.naksplinecoeffs` و `calc_clampedspline` و` calc_clampedsplinecoeff` أخطاء القطع المستفزه إذا تمت دعوتها بهيكل يحتوي على عدد قليل جدًا من النقاط ، أي أزواج. تم إصلاح ذلك عن طريق إرجاع `fail` في هذه الحالات.
تمت إزالة أخطاء إلغاء توزيع الذاكرة المحتملة من `calc.neville` و` calc.interp` و `calc.newtoncoeffs` و` calc.naksplinecoeffs` و `calc.clampedsplinecoeffs` و` calc.nakspline` و `calc .clampedspline`.
تقوم الدالة C API الجديدة بـ "agn_checkinteger" بالتحقق مما إذا كانت الوسيطة عبارة عن رقم وعدد صحيح - وعلى عكس `luaL_checkinteger` - تصدر خطأ خلاف ذلك.
الجديد في الإصدار 1.9.0:
ترجع الدالة `alternate` الجديدة أول وسيطة لها إذا كانت الوسيطة الثانية` خالية`. وبخلاف ذلك ، تقوم بإرجاع الوسيطة الثانية.
تمت إزالة -b التبديل إلى Agena القابل للتنفيذ منذ كان الإخراج الخاص به هو نفس الخيار -v.
تحتوي إصدارات Windows و UNIX / Mac من `strings.utf8size` على تسرب للذاكرة المحتملة ؛ هذا قد تغير.
لم تعد جميع ملفات DLL / SOs الثنائية لمكتبات plus تحتوي على تعليمات برمجية غير مستخدمة ، حيث تقوم بتخفيض أحجامها بنسبة تصل إلى 10 بالمائة ، وفقًا لنظام التشغيل. تم تغيير makefile والمصادر التي تم استيرادها مسبقًا ملفات رأس غير المستخدمة. على سبيل المثال ، يؤدي ذلك على الإطلاق إلى تقليل حجم ثنائيات Windows بمقدار 55 kBytes.
مدد جناح الاختبار.
تحديث ملفات المخطط.
الجديد في الإصدار 1.6.0:
وظائف وميزات جديدة:تحدد الدالة الجديدة `checktype` ما إذا كانت جميع القيم في البنية من نوع معين.
تقوم الدالة الجديدة (isint) بالتحقق مما إذا كانت جميع الوسيطات الخاصة بها عبارة عن أعداد صحيحة.
ترجع الدالة الجديدة "strings.dleven" المسافة Damerau-Levenshtein من سلسلتين.
تحدد الدالة الجديدة `stats.ad` الانحراف المطلق لجميع القيم في البنية.
تحسب الدالة الجديدة "stats.countentries" عدد مرات حدوث جميع العناصر في البنية.
ترجع الدالة الجديدة "stats.deltalist" بنية دلتا العناصر المجاورة.
ترجع الدالة الجديدة "stats.gmean" المتوسط الهندسي للهيكل.
ترجع الدالة الجديدة "stats.hmean" المتوسط التوافقي للهيكل.
الدالة الجديدة `stats.ios` تُرجع مؤشرًا مثبتًا على الاستقرار في التوزيع.
الدالة الجديدة `stats.iqr` تقوم بإرجاع النطاق interquartile.
الدالة الجديدة `stats.issorted` تتحقق مما إذا كانت جميع الأرقام في هيكل يتم فرزها بترتيب تصاعدي.
يحسب الدالة الجديدة "stats.moment" لحظة البيانات المعطاة عن أصل ما.الدالة الجديدة `stats.numbperm` تُرجع عدد التباديل.
تحدد الوظيفة الجديدة "stats.percentile" النسب المئوية.
الدالة الجديدة `stats.skewness` ترجع الانحراف ، وهو مؤشر على تناسق توزيع الاحتمالات.
تلخص الدالة الجديدة "stats.sumdata" جميع صلاحيات بنية حول أصل.
"stats.tovals" هي الآن وظيفة مكتبة C ، وبالتالي فهي أسرع بنسبة 40٪.
مع جدول أو تسلسل فارغ ، `stats.qmean` ،` stats.mean` ، `stats.gmean` ،` stats.sd` ، `stats.median` ،
`stats.var` تعود الآن بالفشل.
تم تغيير الحد الأقصى لطول سطر الإدخال في مترجم مستقل من 512 إلى 2048 حرفًا.
يخزن متغير البيئة الجديد `environ.maxpathlength` الحد الأقصى لعدد الأحرف لمسار الملف (باستثناء حرف C).
متغيرات البيئة الجديدة `environ.minnumber` و` environ.maxnumber` تحتوي على الحد الأدنى والحد الأقصى من القيمة التي يمكن تخزينها على رقم Agena (حاليًا ANSI-C مزدوج).
يتضمن متغير البيئة الجديد `environ.umaxlong` أقصى قيمة تكاملية لنوع C غير الموقعة طويلة على أنظمة 32 بت ، والآلات الطويلة غير الموقعة على 16bit.
واجهة برمجة التطبيقات C:تمت إعادة إنشاء توافق 100٪ من واجهة Agena C API إلى واجهة برمجة التطبيقات Lua's C من خلال تقديم وظائف تفريغ Lua's *. وبالتالي يمكنك الآن تخزين الوظائف في تمثيل ثنائي ، على سبيل المثال ، باستخدام `strings.dump` أو lua_dump على المستوى C.
قدم الدالة `agnL_optboolean` الجديدة للتحقق من الوسيطات المنطقية الاختيارية وإرجاعها في حالة النجاح.
اصلاحات الشوائب:
دائمًا ما يتم إنهاء الخطأ "environ.globals" مع وجود خطأ ، فقد تم إصلاح ذلك.
"افتراض" عاد كاذبا مع كل من حججه أو يجري تقييمه إلى "غير محدد". يعود الآن صحيح في هذه الحالة.
تحطمت Agena عندما اجتازت جدولًا فارغًا ومحددًا لـ "الانضمام" - تم إصلاح هذا.
لم يعد يتم تجاهل الخيار `colour` بواسطة` gdi.plot`.
باستخدام الجداول ، ترجع `stats.minmax` قيمة غير صحيحة للحد الأدنى. وهو يعمل الآن بشكل صحيح.
باستخدام جدول فارغ ، تم عرض القيمة "stats.median" 0 ، وهي الآن تعيد الفشل.
على عكس الوثائق ، ترجع `strings.isending`" true "مع تساوي كلتا السلاسل. وقد تم إصلاح هذا.
`run` return` could not open file` إذا تضمن نص Agena موجود خطأ في بناء الجملة. تم إصلاح ذلك عن طريق إعادة كتابة الوظيفة بالكامل.تمت إضافة Lua 5.1.4 patch 9: "إنشاء تعليمة برمجية خاطئة لبعض تعبيرات boolean معينة [على سبيل المثال معقدة]."
تمت إضافة Lua 5.1.4 patch 11: "قد يجمع Parser نموذجًا أوليًا أثناء بنائه."
* معلومات: إضافة لوا 5.1.4 التصحيح 10 ، "قد لا يعمل metamethod [__write / __ new] metamethod إذا كان metatable هو metatable الخاصة به" ، إلى Agena ليست ضرورية ، لأن Agena يعمل بالفعل بشكل صحيح في هذه الحالة.
تمت إزالة الكلمة الرئيسية غير المستخدمة `الافتراضية`.
بعض تصلب من الوظائف والميزات.
التعزيزات:
تمت إضافة إصدار _experimental_ من `io.anykey` إلى إصدار Mac. ومع ذلك ، على الأقل على الأسد ، يتم الضغط على مفتاح الضغط في بعض الأحيان على القوقعة.
`utils.readcsv` الآن يمكن بشكل اختياري إرجاع كافة القيم في ملف CSV في تسلسل مسطح.
تدعم حزمة `clock` الآن مشغّل القسمة` `` بإضافته إلى عامل التشغيل الخاص به `tm`.تم تغيير سلوك `مع` لأنه لم يتمكن من تعيين أسماء قصيرة للعديد من وظائف المكتبة: إذا تم وضع الوظائف في جدول .aux ، فلا تقم بتعيين أسماء قصيرة لأسماء الدوال هذه ؛ بخلاف ذلك ، قم بتعيين أسماء قصيرة لـ _all_ وظائف الحزمة الأخرى. وهكذا: لم تعد هناك حاجة إلى `package.register` لتسجيل جميع وظائف المكتبة لـ` with` لتعيين أسماء قصيرة. سيتم إيقافه في أحد الإصدارات التالية.
تحسين جناح الاختبار.
كتيب:
تحسين الدليل والفهرس.
التناسق:
لجميع عمليات إعادة التقييم التالية ، لا تزال أسماء المتغيرات القديمة التالية مدعومة.
`environ.MinLong` تمت إعادة تسميته إلى` environ.minlong`.
`environ.MaxLong` تمت إعادة تسميته إلى` environ.maxlong`.
تمت إعادة تسمية `environ.BufferSize` إلى` environ.buffersize`.
تمت إعادة تسمية `environ.PathSep` إلى` environ.pathsep`.
تمت إعادة تسمية "environ.More" إلى `environ.more`.
تمت إعادة تسمية `environ.WithProtected` إلى` environ.withprotected`.
تمت إعادة تسمية `environ.Os` إلى` environ.os`.
تمت إعادة تسمية `environ.Cpu` إلى` environ.cpu`.
تمت إعادة تسمية "environ.Release" إلى `environ.release`.
`environ.GdiDefaultOptions` تمت إعادة تسميتها إلى` environ.gdidefaultoptions`.
في Windows ، يقوم `os.login` و` os.computername` الآن بإرجاع 'فشل' مثلما تفعل إصدارات UNIX أو OS / 2.
لقد تمت إزالة المحول `DCOMPAT13` أخيرًا لتجميع إصدار متوافق مع Agena 1.3.x.
آخر:
تم حذف كلمة `calc.fseq` التي تم إيقافها. يرجى استخدام `nseq` بدلاً من ذلك.
ما هو الجديد في الإصدار 1.5.1:
المرقعة `strings.fields` التي لم تنجح على الإطلاق. أيضا ، تم تحويله إلى وظيفة مكتبة C ، وبالتالي أسرع 2.6 مرات.يقبل الآن "strings.words" وسيطة ثالثة ، إذا تم تعيينه على `true` ، فسيتم تجاهل المحددات اللاحقة.
إزالة تسرب أمان محتمل من `io.write` و` io.writeline` وتحسين رسائل الخطأ الخاصة به.
مصححة `binio.readchar` لتجنب المتاعب مع الملفات ذات حجم أكبر ثم 2 GBytes.
رسائل الخطأ المصححة للوظائف `xbase.purge` ،` xbase.readvalue` ، `xbase.purge` ،` ads.getvalues` ، `binio.readshortstring` ،` os.computername` ، `os.login` ،` os. fattrib` ، `environ.kernel` ،` package.register`.
يمكن الآن إدخال تيرابايت مع الترميز T ، حيث يوجد عدد صحيح ، و T هي الحرف `T`. وبالمثل ، يشير g إلى المليارات ، والتريليونات. انظر الصفحة 48 من الدليل لمزيد من المعلومات.
تحديث الدليل.
في الغالب تمت إزالة كافة مفاتيح التوافق المتخلفة في التعليمات البرمجية المصدر لـ C لأسباب تنظيف التعليمات البرمجية. هذا يؤثر فقط على أولئك الذين يحاولون إعادة تجميع Agena 1.5 أو أعلى مع التوافق الكامل مع الإصدارات السابقة إلى Agena 1.3 و 1.4 ، ومع معظم التوافق العكسي مع Lua 5.0 (باستثناء التعامل مع مكتبة Lua 5.0 القديمة).
ما هو الجديد في الإصدار 1.5.0:
يمكن لـ "map` الآن أيضًا معالجة السلاسل المعطاة كوسيطة ثانية لها. يتم تطبيق الدالة المعنية والوسائط الخاصة بها على التوالي لكل حرف من اليسار إلى اليمين ، ويتم إرجاع النتيجة في تسلسل.`run`: إذا كنت تريد تحميل وتعليمة برمجية من ملفات ذات لاحقة" agn "، لن تحتاج إلى تحديد اللاحقة في الوسيطة بعد الآن. لذا ، فإن "run" test'` و "run" test.agn`` هما الآن متشابهان.
أصبحت الكلمة الرئيسية "is" إلزامية لتحديد الإجراءات. (باستخدام GCC ، استخدم رمز التبديل -DCOMPAT14 لتجميع إصدار من Agena حيث الكلمة الأساسية `is` لا تزال اختيارية.)
تم إيقاف بيان `try` ولم يعد مدعومًا. (باستخدام GCC ، استخدم رمز التبديل -DCOMPAT14 لتجميع إصدار من Agena والذي لا يزال يحتوي على هذا البيان.)
تمت إزالة وظائف `utils` التالية:` arraysize` ، `getarray` ،` getwholearray` ، `newarray` ،` searcharray` ، `setarray`. للتوافق مع الإصدارات السابقة ، تمت إضافتها إلى ملف lib / compat.agn. (باستخدام GCC ، استخدم رمز التبديل -DCOMPAT14 لتجميع إصدار من Agena لا يزال يقوم بتزويد وظائف utils الأصلية.)`utils.singlesubs` تمت إعادة كتابتها بالكامل. وهي تتوقع الآن تسلسل الأرقام كوسيطة ثانية بدلاً من هيكل userrata userrata السابق. كان 35 ٪ أبطأ من الإصدار السابق ، ولكن إزالة هيكل stringarray كان أكثر أهمية.
تعطل "strings.include`" "إذا تمت استدعاؤه بـ 0 كوسيطة ثانية. وقد تم إصلاح هذا.
تطبيق Michael G. Schwern's 10 مايو 2011 التصحيح إلى وظيفته المساعدة التاريخية 32-bit-2038-Fix` المستخدمة من قبل الحزم `os` و` xbase` (`جعل mktime64 () تصحيح بنية tm واردة مثل ISO C requires.`)
تحسين أمثلية داخلية: تستخدم بعض الدوال الخاصة بالمكتبة وتحميل الملف C كدسة لإنشاء أسطر المسار واسم الملف. يتم الآن استخدام الدالة c aux الجديدة `concat` التي كتبها Solar Designer بدلاً عنها في العديد من الحالات.
تتوافق واجهة Agena C API الآن بنسبة 100٪ مع واجهة برمجة التطبيقات Lua C لتسهيل نقل حزم C Lua إلى Agena.
وبالتالي ، تمت إعادة تسمية الوظائف التالية: lua_isnumber - & gt؛ agn_isnumber، lua_isstring - & gt؛ agn_isstring، luaL_optnumber - & gt؛ agnL_optnumber، luaL_checknumber - & gt؛ agnL_checknumber، luaL_optnumber - & gt؛ agnL_optnumber، luaL_checkinteger - & gt؛ agnL_checkinteger، luaL_optinteger - & gt؛ agnL_optinteger.
تمت إعادة تسمية وحدات الماكرو التالية: luaL_checkint - & gt؛ agnL_checkint ، luaL_optint - & gt؛ agnL_optint.
على عكس تنفيذ Agena السابق ، تعيد lua_tonumber الآن 0 كما هو الحال في Lua في حالة تمرير رقم غير العدد ، بدلاً من إرجاع HUGE_VAL.
تمت إزالة lua_setglobal2. استخدم lua_pushvalue و lua_setglobal بدلاً من ذلك.
الجديد في الإصدار 1.4.2:
إذا تم تحديد قائمة المعلمات من الإجراء ، حددت أنواع المعرفة من قبل المستخدم ، في
الإجراء لم يتم إصدار أي أخطاء وتم تنفيذ الإجراء بدلاً من ذلك ، في الحالات التالية:
أ) جدول أو مجموعة أو تسلسل أو زوج أو إجراء - دون أن يكون محددًا من قبل المستخدم
نوع - تم تمريرها ،
ب) لم يتم تمرير أي قيمة للمعلمة المعنية.
ما هو الجديد في الإصدار 1.4.1:
الأسماء المختصرة لـ `stats.quartiles` و` stats.mode` لا يمكن تعيينها بواسطة الدالة `with`. وقد تم إصلاح هذا.
من الخطأ ، لا يمكن لـ "مع" تخصيص اسم قصير لـ "gdi.settriangle". لقد تغير هذا.
تم تحسين معالجة الأخطاء في `calc.polygen`.
رسالة خطأ محسنة من `fractals.draw` لفقد ملفات خريطة FRACTINT.
إزالة وظيفة `strings.rseek` موقوفة. للتوافق مع الإصدارات السابقة ، تمت إضافة "strings.seek" إلى ملف lib / compat.agn.
تمت إضافة رمز التبديل -d لطباعة معلومات التصحيح أثناء بدء تشغيل المترجم.
تم الآن تجميع نسخة Windows من Agena مع GCC 4.5.2.
تحديث ملفات نظام اللغة.
تم تحديث الدليل.
الجديد في الإصدار 1.4.0:
التغييرات الدلالية:أصبحت متغيرات التحكم في الحلقة من الحلقات 'for / to` الرقمية الآن محلية تلقائيًا إلى الكتل المحيطة بها بدلاً من أجسامها (الداخلية). إذا تم الإعلان عن متغير محلي بنفس الاسم مثل متغير تحكم الحلقة وتعيينه من قبل
تنفيذ حلقة رقمية ، يتم الكتابة فوقه من خلال قيمة التكرار الأخيرة للحلقة. على هذا النحو ، لم يعد يتم قبول التبديل `الخارجية` في حلقات` for` الرقمية. (باستخدام GCC ، استخدم رمز التبديل -DCOMPAT13 لتجميع إصدار من Agena لا يزال يتعرف ولكن يتجاهل الكلمة الأساسية `الخارجية`.)
باستخدام `fail` المستمر ، لم يتم إرجاع` true` ، ولكن مع `fail` المعينة لمتغير ،` not` عاد كاذب. تم تغيير هذا ، أي: a: = fail؛ لا (أ) "الآن يعود" صحيح ".
`stats.median` الآن بإرجاع` فشل` بدلاً من 0 إذا كان الهيكل المعطى فارغاً.
`utils.readcsv`: إذا تم تمرير فراغ أبيض واحد مع خيار` delim` وإذا لم يتم إعطاء خيار `ignorespaces` ، فلن تتم إزالة المسافات البيضاء تلقائيًا بعد الآن قبل تقسيم كل سطر من الملف إلى كلماته.تشتمل الدالة أيضًا على خيارين جديدين: "header" الذي يميز السطر الأول في الملف ، و "الإخراج" الذي يسمح بتخزين محتويات الملف في قاموس مع أسماء الحقول المحددة بواسطة رأس الملف.
لم يعد الترقيم الفرعي `$` معتمدًا. (باستخدام GCC ، استخدم رمز التبديل DCOMPAT13 لتجميع إصدار من Agena لا يزال يقوم بتزويد عامل التشغيل `$`.)
الامتدادات:
تمت إضافة حلقات do / od لانهائية. هذا النوع من الحلقات يتكرر بشكل لا نهائي ويمكن أن يتم مقاطعته فقط مع عبارات `break` أو` return`. هم السكر النحوي ل` بينما تفعل الحلقات الحقيقية ... od`.
باستخدام الجداول ، كانت `stats.minmax` تعمل فقط مع المصفوفات. لقد تم تغيير هذا ، أي القيم ذات المفاتيح غير الإيجابية المقابلة (مثل السلاسل ، الأعداد الصحيحة غير الإيجابية ، العوامات السلبية والإيجابية ، إلخ) أصبحت الآن معترف بها بشكل صحيح في التقييم.
`stats.mean` ،` stats.qmean` ، `stats.sd` ، و` stats.var` الآن أيضا معالجة تسلسلات.
ترجع الدالة `stats.mode` الجديدة جميع القيم في تسلسل أو جدول يحتوي على أكبر عدد من التكرارات ، أي أعلى تردد.
ترجع الدالة `stats.quartiles` الجديدة الربع الأول والثاني والثالث من جدول أو تسلسل _sorted_.تمت إضافة ميزات غير موثقة من قبل 'linalg.matrix` إلى الدليل وتم تحسين معالجة الأخطاء الخاصة به.
تحسين معالجة الأخطاء من 'linalg.hilbert`.
`gdi.setinfo` تقبل الآن خيار` المربع`. إذا كانت `square = false` ، فإن المحاور x و y لن يكون لها نفس المقياس على المؤامرات التي تم إنشاؤها باستخدام` gdi.plot`.
لم يتم توثيق وظيفة `gdi.plot` لرسم الرسومات للأسف. لقد تغير هذا.
`gdi.plot` يقبل خيارين جديدين: يحدد الخيار 'x' النطاق الأفقي الذي يتم عرض قطعة فيه ، ويحدد خيار 'y' النطاق العمودي.
إذا تم تمرير بنية PLOT إلى `gdi.plot` التي تحتوي فقط على POINT و LINESs و RECTANGLES و TRIANGLEs و CIRCLEs و ELLIPSE (بما في ذلك * FILLED variants) ، فحينئذٍ يحدد` gdi.plot` المقاييس تلقائيًا (`gdi.setinfo "لا يحتاج بالضرورة إلى أن يسمى).
يتم الآن توثيق ميزات OOP الموروثة من Lua في الملحق A9. لا يوصي المؤلف البرمجة الشيئية.
ضبط:
مشغل `مملوءة` تضبط بنسبة 3٪ تقريبًا.
انطباع `in` ،` join` ، `sadd` ،` qsadd` ، `replace` ،` copy` ، `unique` ، و Cantor يضع المشغلين على الطاولات ويضع بعض الشيء.مع الجداول ، فإن مشغلي `top` و` bottom` أسرع بنحو 5٪ الآن.
يكون عامل `الحجم` أسرع بنسبة 8٪ على الأقل إذا كان الجدول لا يشمل القيم الخالية.
تم ضبط 'linalg.mzip` و `linalg.mmul` و` linalg.transpose` بنسبة 3٪ تقريبًا لكل منهما.
تم تحسين عدد / عدد الحلقات مع أحجام خطوة كسرية عن طريق تقليل عدد متغيرات التحكم الخاصة بهم بمقدار النصف. هذا ، ومع ذلك ، لم يحقق أي زيادة في السرعة.
بقع:
مصححة `linalg.ludecomp` للكشف عن المصفوفات المفرد. أيضا ، يمكن للوظيفة الآن تحديد ترتيب المصفوفة.
على عكس الدليل ، لم يحدد `gdi.plot` تلقائيًا النطاقات الأفقية والرأسية. وقد تم إصلاح هذا.
لم يعد "gdi.plot" يتجاهل الخيار `square` الذي حددته` gdi.setinfo`.
`gdi.setinfo` إضافة إعدادات إلى هياكل INFO حتى لو كانت موجودة بالفعل. لقد تغير هذا.
لم يتم رسم الدوائر بشكل صحيح بواسطة `gdi.plot`. لقد تغير هذا.
تجاهل الدالة `gdi.plot` في معظم الظروف التلوين الفردي للكائنات الهندسية. لقد تغير هذا.
لم تحدد حزمة gdi أسماء قصيرة لـ `gdi.settriangle` و` gdi.settrianglefilled` و `gdi.setrectangle` و` gdi.setrectanglefilled`. لقد تغير هذا.
لم تقم مجموعة صور النمطي هندسي متكرر بتعيين أسماء قصيرة لوظائف نوع المستخدم المعرّف 'esctime'. لقد تغير هذا. رسالة خطأ تم تصحيحها من `fractals.draw` إذا لم تكن الوسيطات الموضعية أرقامًا.
متنوع:
تم دمج وظيفة `calc.fseq` في` nseq`. للتوافق مع الإصدارات السابقة ، ما زال `calc.fseq` جزءًا من حزمة الحساب ، ولكن الدالة تشير بالفعل إلى تنفيذ` nseq`.
تمت إضافة متغير `environ.FractScreenUpdates` إلى` حزمة صور النمطيج النمطيوية` للإشارة إلى عدد الخطوط الرأسية (عدد صحيح غير سالب) والذي سيتم بعده تحديث الفركتل في نافذة. تم إيقاف المتغير `environ.FractOptimised`.
تم إعادة تجميع وظائف gdi المساعدة.
الجديد في الإصدار 1.3.3:
بقع على `instr`:
عندما تكون في وضع regex ، يقوم المشغل بإرجاع نتيجة غير صحيحة إذا تم إعطاء موضع البدء.
عندما يكون في وضع البحث العادي ، يقوم المشغل بإرجاع خطأ خارج النطاق إذا لم يتم إعطاء أي موضع بداية.
باستثناء وضع البحث العكسي ، إذا لم يتم العثور على أي تطابق ، فقد تم إرجاع الوسيطة الأولى بدلاً من `null`.
رسالة خطأ مصححة لبيان `create` فيما يتعلق بالتسلسلات.
في AgenaEdit ، عند إخراج أكثر من هيكل واحد مع استدعاء واحد فقط للطباعة ، لم تتم طباعة البنى في شكل كامل إذا كانت البنية الأولى تحتوي على metamethod __tostring. لقد تغير هذا.
الجديد في الإصدار 1.3.2:
يتضمن هذا الإصدار إصلاحات الأخطاء والإضافات ودليل محسّن:"البعد" خلق نتائج مثيرة للاهتمام إذا تم تمرير الهيكل على النحو
initialiser. تم تغيير هذا: `البعد` الآن يخلق نسخ مستقلة من
هيكل عند تهيئة الجدول.
تمت إضافة وظيفة `strings.rseek` إلى عامل التشغيل` instr`.
وبالتالي ، تم إهمال `strings.rseek`. للتوافق مع الإصدارات السابقة ،
تمت إضافة "strings.rseek" إلى ملف lib / compat.agn.
الآن يدعم "strings.hits" التعابير والتقاطات العادية. هذا السلوك
يمكن إيقاف تشغيله بتمرير منطقي كوسيطة ثالثة.
الآن يستخدم "strings.isabbrev` و" strings.isending "تلقائيًا بحثًا عاديًا
إذا لم يتم تمرير تعبيرات عادية أو التقاطات كجزء من الثانية
جدال.
tweaked `strings.ismagic` و` strings.isfloat`.
وظيفة `log` الآن أسرع بنسبة 13٪.
عند إخراج أكثر من بنية واحدة فقط مع "طباعة" ،
لم تتم طباعة البنى في شكل كامل إذا كانت البنية الأولى تتضمن __tostring
metamethod. لقد تغير هذا.
إضافة تصنيفات الوظائف للفصل السابع لتسهيل بدء التشغيل الجديد
المستخدمين.
الجديد في الإصدار 1.3.1:
حدثت مشكلات في المكالمات المتداخلة مع المشغلين الثنائيين التاليين: `xor` و` atendof` و` & amp؛ & amp؛ و` || `و` ^^ `و` `` و`: -` و وبالتالي أيضًا مع الطابعة الجميلة التي توقفت مع وجود خطأ عند طباعة الهياكل المتداخلة. وقد تم إصلاح هذا.
أربعة إصلاحات إلى `os.list`: إذا تم تمرير الخيار 'r' ، فقد تم تغيير دليل العمل الحالي بشكل خاطئ بعد الانتهاء من المكالمة.
إذا لم يتم تمرير "r" كوسيطة أخيرة ، فقد أصدرت الدالة خطأً.
`null` لم يتم قبوله كوسيطة أولى للدلالة على دليل العمل الحالي.
في Windows 7 ، لم تنجح طباعة محتويات الدليل الجذر ، أي أن os.list ('c:') أعاد محتويات دليل العمل الحالي.
عندما تمت فهرسة سلسلة مع رقم غير ، على سبيل المثال ، "str [null]" ، أرجأت Agena `null`. الآن يتم رفع خطأ.
إذا لم يتم العثور على library.agn ، فقد تم إخراج المسار الخطأ مرتين في التحذير. لقد تغير هذا.
ما هو الجديد في الإصدار 1.2:
تمت إعادة تصميم المشغل الفرعي ، لكن الإصدار القديم سيظل متاحًا حتى Agena 2.0: الإصدار الجديد هو: `str [من اليسار إلى اليمين]` ، الإصدار القديم: `str $ (يسار ، يمين)`. مثال: قبل: `str: = 'string'؛ print (str $ (2، 3)) `- & gt؛ 'tr' الآن: `str: = 'string'؛ print (str [2 to 3]) `- & gt؛ "آر"أنت الآن قادر على تحديد قوائم فرعية لصفائف الجدول وتسلسله مع الصيغة الجديدة المذكورة أعلاه: `s [اليسار إلى اليمين]`. مثال: الآن: `أ: = [10 ، 20 ، 30 ، 40] ؛ print (a [2 to 3]) `- & gt؛ [20 ، 30] الآن: `a: = seq (10 ، 20 ، 30 ، 40) ؛ print (a [2 to 3]) `- & gt؛ seq (20 ، 30)
تسمح وظيفة "ops" الآن بتحديد القيم المراد إرجاعها بتمرير تسلسل أوضاع فهرسها كوسيطة أولى لها ، على سبيل المثال ، ops (seq (1، -1)، 10، 20،
30).
إدراج الدالة الجديدة "strings.include" في تسلسل أحرف في سلسلة
في مكان معين.
تصدر الدالات التالية الآن خطأ بدلاً من مجرد إرجاع `fail` في
حالة الفشل: `os.remove`،` os.move`، `os.mkdir`،` os.rmdir`، `os.chdir`.
تحسينات على عوامل التشغيل التالية التي تعمل على مجموعات وتسلسلات تتعلق بجمع البيانات المهملة: عبارة `insert` ،` union` ، `intersection` ،` minus` ، `unique` ،` copy` ، `pop / top` و` pop / bottom` statement ، وتعيين التعيينات.
رسالة خطأ محسنة من `fractals.draw` إذا لم يكن ملف خريطة ألوان FRACTINT
لم يتم العثور عليها.
ما هو الجديد في الإصدار 1.1.0:
هذا الإصدار ميزات وظائف جديدة ومساحة تطهيرها.التوافق مع Agena 1.0:
تمت إزالة بعض الوظائف من Agena وتم تحويل بعضها إلى وظائف الحزمة (انظر أدناه). إذا كنت لا تزال ترغب في استخدامها ، فقم بإصدار "توافق" readlib في سطر الأوامر أو ضع العبارة أعلاه في ملف التهيئة إذا كنت تفضل التوافق مع الإصدارات السابقة إلى Agena 1.0.
وظيفة موسعة:
يمكن الآن تطبيق عوامل "pop / top` و` pop / bottom` و `bottom` و` top` على صفائف الجدول.
عند الاتصال بـ `null` أو بدون وسائط ، فإن` os.chdir` لم يعد يصدر خطأ ولكنه يقوم بإرجاع دليل العمل الحالي. وهكذا ، تم استبدال وظيفة `os.curdir` C السابقة بواحدة مكتوبة بلغة Agena.
`os.list` يقوم بشكل متكرر بعبور المجلدات الفرعية إذا تم إعطاء الخيار 'r' الجديد.
يقبل عامل التشغيل "join" الآن أيضًا محددًا اختياريًا ويدعم خيار تحديد العنصر الأول والعنصر الأخير للهيكل المتسلسل.
يمكن لـ "instr" الآن البحث من الطرف الأيمن لسلسلة عبر تمرير موضع سلبي.إذا كان الجدول يتضمن جداول أو مجموعات أو تسلسلات أو أزواج أخرى ، فإن `copy` يعرف الآن كيفية التعامل مع هذه المراجع بشكل صحيح في حالة حدوثها عدة مرات: إذا تم تضمين بنية مضمنة n مرة ، فيتم عمل نسخة واحدة حقيقية ون n-1 يتم إدراج إشارات إلى هذا الهيكل المنشأ حديثا. قبل ، تم إجراء نسخ مستقلة.
تقوم وظيفة `isnonposint` الجديدة بالتحقق مما إذا كانت الأرقام المعطاة كلها صحيحة وغير إيجابية.
يمكن الآن "io.close" إغلاق ملفات متعددة بمكالمة واحدة فقط.
لم تقم الدالة `with` بتعيين أسماء قصيرة للإجراءات التالية لحزمة` math`: `convertbase` ،` craction` ، `zeroin` ،` todecimal` ، `lcm` ،` gcd` ، و `ndigits`. لقد تم تصحيح هذا.
لا توجد وظيفة `rwritemode` المذكورة في الدليل. وهي متاحة الآن لكن تسمى `rmode`.
تم تحسين رسائل الخطأ الخاصة بالوظائف المختلفة.
تنظيف مساحة الاسم: إعادة تسمية أو نقل وظائف:
تم نقل وظائف المكتبة الأساسية `register` و` loadclib` إلى مكتبة `package`.
تم نقل وظائف مكتبة rdelete` و rget` و rinit` و roinit` و rmode` و rset` و remember تذكر و `defaults` إلى الحزمة` rtable` الجديدة.إعادة تسمية الجدول _Env العالمي إلى `environ` والذي يحتوي الآن أيضًا على إجراءات للوصول إلى البيئة.
تمت إعادة تسمية المتغيرات العالمية السابقة لـ homedir و `infolevel` إلى` environ.homedir` و` environ.infolevel` على التوالي.
تم نقل وظائف المكتبة الأساسية السابقة إلى حزمة `environ`:` anames` ، `attrib` ،` gc` ، `getfenv` ،` globals` ، `isselfref` ،` pointer` ، `setfenv` ،` used `،` userinfo` ، `__RESTART` ،` __DOTTYPRINT`.
تمت إعادة تسمية "mapm.xtoNumber` إلى` mapm.xtonumber` ، تمت إعادة تسمية mapm.xtoString` إلى `mapm.xtostring`. للتوافق مع الإصدارات السابقة ، لا يزال من الممكن استخدام أسماء الدوال القديمة عن طريق تنفيذ ملف lib / compat.agn (أولاً readlib حزمة `mapm` ثم تحميل ملف compat.agn).
الدوال والمتغيرات الموقوفة:
تم إيقاف "strings.seek". تم إضافة وظائفه إلى مشغل `instr`. لإيقاف وضع مطابقة نمط `instr` ، قم بتمرير بداية البحث باعتباره الثالث و` true` كالوسيطة الرابعة. `instr` هو حوالي 40 ٪ أسرع في وضع مطابقة غير نمط من" strings.seek ". للتوافق مع الإصدارات السابقة ، تمت إضافة "strings.seek" إلى ملف lib / compat.agn.تمت إزالة وظيفة المكتبة الأساسية `concat`. استخدم `join` بدلاً من ذلك. للتوافق مع الإصدارات السابقة ، تمت إضافة الوظيفة السابقة إلى ملف lib / compat.agn.
لقد تمت إزالة الدالات `hasrtable` و` hasrotable`. للتوافق مع الإصدارات السابقة ، تمت إضافتها إلى ملف lib / compat.agn.
لقد تم إيقاف وظيفة `pcall`. استخدم `protect` بدلاً من ذلك. للتوافق مع الإصدارات السابقة ، تمت إضافة الوظيفة إلى ملف lib / compat.agn.
تم إيقاف وظيفة `maptoset`. للتوافق مع الإصدارات السابقة ، تمت إضافة الوظيفة إلى ملف lib / compat.agn.
تم إيقاف وظيفة `os.alldirs`. استخدم الخيارين "dirs" و "r" في استدعاء `os.list` بدلاً من ذلك. للتوافق مع الإصدارات السابقة ، تمت إضافة الوظيفة إلى ملف lib / compat.agn.
`os.isMac`،` os.isSolaris`، `os.isLinux`،` os.isWin`، `os.isOS2`،` os.isDOS`، `os.isHaiku` تم إهمالها. الرجاء استخدام متغيرات البيئة الجديدة environ.Os و environ.Cpu بدلاً من ذلك ، مما يؤدي أيضًا إلى زيادة سرعة الرمز. للتوافق مع الإصدارات السابقة ، تمت إضافة الوظائف إلى ملف lib / compat.agn.
تمت إزالة متغير _VERSION غير الموثق. للتوافق مع الإصدارات السابقة ، تمت إضافة تعيينه إلى ملف lib / compat.agn.
تغييرات أخرى:
الدالة C API lua_rawsetstringnumber المذكورة في الدليل غير موجودة. لقد تغير هذا.
تحسينات الشفرة إلى المحلل اللغوي.
في بعض الحزم ، تم الإعلان عن بعض المتغيرات بشكل ضمني عالميًا. وقد تم إصلاح هذا.
ملفات العينة الأولية التي تم تصحيحها وتحديثها.
تم تحديث AgenaEdit.
تم تحديث ملفات نظام اللغة.
تتضمن برامج تثبيت Linux الآن حزمة xBase.
الجديد في الإصدار 1.0.6:
رسائل خطأ محسنة من عوامل `join` و` copy` و `filled` و` toset` و `toseq` و` totable` و `insert` و` delete` و `pop` و` ` للحلقات.
مع تسلسلات ، تحطمت Agena في التسلسل التالي من الأحداث: 1) تم تنفيذ عبارة "حذف" ، 2) كان المتتالي therafter فارغًا ، و 3) تم إدراج عنصر جديد مرة أخرى. وقد تم إصلاح هذا. (داخليًا ، لم تعد عبارة "حذف" تقلل من حجم التسلسلات الداخلية بعد الآن).
مع سلاسل كبيرة ، تحطمت `concat`. وقد تم إصلاح هذا.
مع وجود سلاسل من 512 بايت وأكثر ، يمكن أن ينهار `join` و` replace`. وقد تم إصلاح هذا. المشغلين الآن أيضا أسرع بكثير من أي وقت مضى.
عاد `math.isprime` نتائج خاطئة مع الحجج و GT. 2 ^ 31 (المذكورة بشكل غامض في الدليل). تم إصلاح هذا من خلال توسيع نطاق المناقشة إلى أعداد صحيحة تصل إلى +/- 2 ^ 63.
"math.nextprime" و "math.prevprime" كان لهما نفس المشكلة مع حجج أكبر مثل "math.isprime". هذا وقد تغير أيضا. مع الوسيطة 2 ، عاد `io.nextprime` بشكل غير صحيح 5 بدلا من 3. وقد تم إصلاح هذا ، كذلك.
الجديد في الإصدار 1.0.5:
`join` قد يتلف Agena ويتصرف بطريقة غير متوقعة إذا كانت السلسلة الناتجة
تجاوز 512 بايت. لقد تغير هذا.
إذا تم استدعاء `restart` بعد إصدار خطأ في السابق
، تحطمت Agena في مناسبات نادرة بسبب الفساد مكدس. هذا كان
ثابت.
مع الجداول التي تم إنشاؤها حديثا تحتوي على عنصر واحد بالضبط في جزء التجزئة ، `attrib`
الآن إرجاع النتائج الصحيحة لعدد فتحات التجزئة المخصصة (1 بدلاً من 0).
رسائل خطأ تم تصحيحها من `qsadd` و` sadd`.
رسائل خطأ محسنة لمشغلات `join` و` copy` و `filled` و` insert`
وعبارات "حذف".
تم تحسين معالجة الأخطاء في `read` و` save` و` fractals.draw`.
تحسينات على makefiles.
لقد تم الآن توحيد حجم المخزن المؤقت في المصادر.
الجديد في الإصدار 1.0.4:
نظرًا لأنه تم الإبلاغ عن حدوث أعطال نادرة أثناء التهيئة (في نظامي التشغيل Windows XP SP 3 و OpenSolaris 134 ، في بعض الحالات) ، يتم الآن إيقاف تجميع البيانات المهملة في مرحلة التهيئة. وقعت هذه الأخطاء تجزئة نادرة في OpenSolaris عند تشغيل ثنائي Agena في دليل إيواءها كجذر ، وفي XP عند النقر على رمز سطح Agena مع حقوق المسؤول المحلية.
عرض رمز التبديل -d إلى خيارات سطر الأوامر من أجل طباعة المعلومات أثناء تهيئة Agena.
قدم معالجة صحيحة للخطأ إذا تعذر تخصيص الذاكرة داخليًا لما يلي: `trim` ،` upper` ، `lower` ،` os.curdir` ، و `strings.rseek`.
إزالة الثقوب المحتملة للذاكرة في وظائف التهيئة C agenaL_initialise و agenaL_setLibname ، وفي `io.write *` و `print`.
الجديد في الإصدار 1.0.3:
الدالة الجديدة `حماية` تستدعي إجراءً في الوضع المحمي وتلتقط أي خطأ محتمل بحيث لا يتم مقاطعة الحساب. في حالة حدوث خطأ ، يقوم بتعيين سلسلة الخطأ إلى المتغير الشامل `lasterror`. وهي متعلقة بـ `pcall` ، ولكنها لا تُرجع رمز الحالة كالنتيجة الأولى.`attrib` يعرض الآن النتائج الصحيحة مع الهياكل الفارغة. باستخدام الهياكل الفارغة ، تقوم الدالة بحساب عنصر تجزئة معين من قبل بشكل خاطئ.
`attrib` يعرض الآن عدد وحدات البايت التي تحتلها الجداول والمجموعات والتسلسلات إلى جانب مفتاح" وحدات البايت "الجديد. يستند عدد البايتات المرتجعة على معلومات متناقضة أحيانًا متوفرة على الشبكة.
`استبدال` تحطمت Agena إذا تجاوزت السلسلة الناتجة 512 بايت. لقد تغير هذا.
"pres` now returns" Assumption failed. " بدلا من "فشل الافتراض".
تعيّن دالة واجهة برمجة التطبيقات الجديدة لـ c lua_setglobal2 القيمة في الجزء العلوي من المكدس إلى اسم عام. على عكس lua_setglobal ، لا يتم بروز القيمة.
تنظيف التعليمات البرمجية لـ lobject.h (بنية الجدول) ، و lapi.c (يقوم بتوزيع الماكرو). Bugfix إلى C API وظيفة agn_deletertable في حالة تجميع Agena مع lua_assert غير باطل. التغيير إلى قيمة الإرجاع للدالة savestate المستخدمة أثناء تهيئة لمنع احتمال (طفيف) من تلف المكدس.
الجديد في الإصدار 1.0.2:
يحدد الإجراء `os.setenv` الجديد متغيرات البيئة على مستوى نظام التشغيل. تمت كتابة هذه الوظيفة في الأصل بواسطة مارك إدغار.في Windows ، تقوم `os.getenv` الآن باستدعاء وظيفة Windows API الأصلية للحصول على قيم متغيرات البيئة. تمت كتابة التعليمات البرمجية لـ Windows بواسطة Mark Edgar.
ترجع الدالة `os.environ` الجديدة جميع متغيرات البيئة المعينة في جدول. تمت كتابة هذه الوظيفة في الأصل بواسطة مارك إدغار.
يضيف `io.open` الآن مؤشر FILE ، والاسم ، ووضع الملف المفتوح بنجاح في الجدول الجديد` io.openfiles`. يحذف "io.close" الإدخال من `io.openfiles` إذا كان من الممكن إغلاق الملف بنجاح.
عندما يتم استدعاؤها بدون أي وسيطات ، فإن `io.read` تقوم الآن بإرجاع خطأ إذا تمت دعوتها بدون وسائط في AgenaEdit (في محاولة لقراءة لوحة المفاتيح).
إذا تم استدعاء `io.anykey` و` io.getkey` في AgenaEdit ، فسيتم عرض رسالة خطأ صحيحة.
تم تغيير أحد subprocedures "التهيئة" لتجنب تلف مكدس المحتملة (على الرغم من المشاكل لم تحدث أبداً).
os.isMac ('ppc') يعمل الآن على أجهزة PowerPC.
تمت مراجعة فصول 4 و 6 من الدليل التمهيدي والمراجع وتمديدها. تمت إضافة فهرس وتم إجراء الكثير من مستحضرات التجميل أيضًا.
معلومات الإصدار الصحيح المخزنة إلى Windows القابل للتنفيذ.
الجديد في الإصدار 1.0:
السيدات والسادة الأعزاء،
بعد ما يقرب من أربع سنوات من التطوير ، قمت بنشر Agena 1.0 ، وهي لغة برمجة إجرائية ، مشتقة من مصادر Lua C.
مجتمعي صغير جدًا جدًا ، لكن بعض المستخدمين قالوا لي إنه جيد ومفيد ومستقر.
سأكون في غاية السعادة إذا قمت بمراجعة Agena وأخبرتني عن نتائجك. إذا لم تجده مفيدًا ، فالرجاء إخباري شخصيًا ، وإعطائي فرصة لإصلاح المشكلات.
الجديد في الإصدار 0.34.1d:
يتضمن هذا الإصدار إصدار GUI محدث من AgenaEdit (انظر الملف القابل للتنفيذ agenaedit).
الجديد في الإصدار 0.34.1:
تم إصدار AgenaEdit باستخدام محرك تحديد وقت التشغيل والإضاءة المدمج مع Agena 0.34.1.
الجديد في الإصدار 0.34.0:
تم إصدار AgenaEdit باستخدام محرك تحديد وقت التشغيل والمدمج المضمّن مع Agena 0.34.0.
الجديد في الإصدار 0.33.2:
تم إصدار Agena 0.33.2 مع دعم ملف xBase.
الجديد في الإصدار 0.33.1:
تم إصدار Agena 0.33.1 مع دعم ملف xBase.
الجديد في الإصدار 0.33.0:
يمكن لحزمة `xbase` الجديدة قراءة وكتابة ملفات xBase المتوافقة مع معيار dBASE III.
يمكن الآن لحزم `binio` و` ads` معالجة ملفات تصل إلى 2 ^ 63 بايت. قبل أن يتمكنوا من التعامل مع الملفات ذات أحجام تصل إلى 2 ^ 31 بايت.
تقوم وظائف "io.lock" و "io.unlock" و binio.lock "و" binio.unlock "و" ads.lock "و" ads.unlock "بقفل ملف من الوصول للقراءة والكتابة بواسطة Agena أخرى
وظائف أو حتى التطبيقات الأخرى بشرط أن يستخدم الأخير بروتوكول تأمين.
لم يعد بالإمكان الكتابة فوق الدالة baselib `read` بواسطة` with`.
يتحقق `package.checkClib` الجديد مما إذا كان قد تم تهيئة الحزمة المخزنة في مكتبة C ديناميكية. إذا لم يكن الأمر كذلك ، فإنه يقوم بإرجاع تحذير مطبوع على الشاشة ويقوم بإنشاء جدول حزمة فارغ. وإلا فإنه لا يفعل شيئا.
يدعم منفذ Haiku الآن مكتبات الارتباط الديناميكي.
الجديد في الإصدار 0.32.3:
تم إصدار Agena 0.32.3 مع وظائف حساب التفاضل والتكامل الجديدة والموضوعة.
لا يحتاج مستخدمو Mac إلى تثبيت مكتبات تبعية إضافية بعد الآن.
ميناء Haiku متاح الآن.
الجديد في الإصدار 0.31.5:
يحتوي هذا الإصدار على رسومات مدمجة ورياضيات دقيقة عشوائية وميزات محسّنة.
الجديد في الإصدار 0.31.3:
تمت إضافة حزمة صور النمطي هندسيًا لسحب فراكتلات بسهولة في Solaris و Mac و Linux و Windows.على Solaris و Linux ، تقوم `gdi.mouse` الآن بإرجاع القيم القياسية لأزرار الماوس المضغوط (نفس ما تفعله إصدارات Mac و Windows).
عند إعطاء الخيار -v ، لا تقوم Agena الآن بتنفيذ ملفات التهيئة بعد الآن.
في UNIX أو Mac ، يجب أن تكون أسماء ملفات ملفات التهيئة دائمًا `.agenainit` ، سواء كانت موجودة في / usr / agena / lib أو المجلد الشخصي.
يعمل توزيع Mac الثنائي لوحدات المعالجة المركزية Intel بسرعة أكبر بنسبة 30٪ عن الإصدارات السابقة.
وظيفة `io.getkey` متاحة الآن في إصدار Mac OS X.
في نظام التشغيل Mac ، يعرض `os.system` الآن معلومات كاملة عن نظام التشغيل ونوع وحدة المعالجة المركزية. لاحظ أنه يقوم بإرجاع معلومات على داروين kernel ، وأن الإدخال الأول في الجدول الناتج الآن هو `داروين` بدلاً من` MacOSX`.
`os.memstate` و` os.freemem` و `os.beep` يدعمان الآن Mac OS X.
يتوفر `io.anykey` على كافة الأنظمة الأساسية ، ولكنه يقوم بإرجاع` fail` على DOS و Mac. وبالتالي ، فإن 'gdi.draw` لن يرمي الأخطاء بعد الآن على Mac عند استخدام خيار `mouse`.'os.listcore' تم تمديده لإرجاع الملف أو الدليل أو أسماء الارتباطات فقط. '.' و ".." الآن لا يتم إرجاعهم أبداً.
`os.list` لم يتعرف على أي خيارات وأعاد قائمة فارغة بدلاً من ذلك. وقد تم إصلاح هذا. أيضا ، يمكن الآن دمج الخيارات. '.' و ".." كما يتم التعرف على الوسيطة الأولى الآن بشكل صحيح.
`os.curdir` يحل الآن محل الخطوط المائلة العكسية تلقائيًا في المسار المحدد بشُرط مائلة.
تحطمت `os.fstat` و` ads.attrib` Agena إذا تجاوز تاريخ الملف الثلاثاء ، 19 يناير 2038. تم إصلاح هذا إما عن طريق إرجاع جدول فارغ لمفتاح التاريخ (os.fstat) ، أو 0 / 0/01 00:00:00 ، (ads.attrib).
تحطمت `utils.calendar` Agena إذا كانت حجتها خالية أو سلبية أو كبيرة جدًا. لقد تغير هذا. بالإضافة إلى ذلك ، إذا كان تاريخ ما بعد الثلاثاء ، 19 يناير 2038 ، يتم إرجاع التاريخ الصحيح.
ترجع الدالات الجديدة `os.screensize` و` os.mousebuttons` دقة الشاشة الحالية وعدد أزرار الفأرة المتصلة ، على التوالي (Windows فقط).
تمت إعادة تسمية ملف agena.ini.sample إلى .agenainit.sample في توزيعات UNIX / Mac.
يتم الآن شحن ملف makefile جديد لـ Solaris مع ارتباط Agm Mapm لتجميع المصادر الأصلية MAPM التي كتبها Michael C. Ring بالكامل.
الجديد في الإصدار 0.31.2:
تتوفر حزمة mapm لدقة الرياضيات التحكيمية الآن في إصدار DOS من Agena.يتم إدخال عدد الأرقام المستخدمة في حزمة mapm إلى 17 رقم عند بدء تشغيل Agena لـ DOS أو OS / 2 Warp. قبل ، كان الافتراضي 1 الرقم.
تم توحيد رمز C لربط MAPM. قبل ذلك ، تختلف الملفات المصدر DOS و OS / 2 من واحد لـ UNIX و Windows.
تحسينات صغيرة على مثبتات Windows و Mac OS X.
في نظام التشغيل Mac ، تتوفر الوثائق الآن في المكتبة / التوثيق / Agena بدلاً من / Users / Share / Agena.
تم إرجاع الدالات sin و cos و arcsin و arccos و arctan -0 بدلاً من 0 كوحدة وهمية ، مما أدى إلى نتائج خاطئة في حالة تطبيق هذه الوظائف على وظائف أخرى مثل ln (أي علامة التخيُّل كانت وحدة نتيجة هذه الوظائف الأخرى غير صحيحة). تم إصلاح هذا عن طريق ضبط الوحدة التخيلية -0 إلى 0 في عودة الخطيئة ، كوس ، أركسين ، أركوس ، والأركان.
أرجأت الدالتين arcsin و arccos نتائج خاطئة للحجج z ، إذا كان abs (حقيقي ((z))) & lt؛ 1. وقد تم إصلاح هذا.
في OS / 2 ، عاد معظم العمليات الحسابية المعقدة غير محددة. وقد تم إصلاح هذا.
لاحظ أنه في نظام التشغيل OS / 2 و DOS ، في المجال المعقد ، لا تزال هناك مشكلات مع مشغلي arccos و arcsin والتي تعيدها غير محددة في حالات معينة.
تم الآن تجميع إصدارات Windows و i386 Solaris 10 و Linux مع GCC 4.4.x (وبدون xmath86.h) التي قللت عدد الأخطاء في الحساب المعقد بشكل كبير. في الواقع ، حالات اختبار الرياضيات المعقدة المعينة تعيد أخطاء صفر. وقد تم تجميع النسخة Sparc مع دول مجلس التعاون الخليجي 4.3.3 لسون سبارك ولها أقل الأخطاء في الحساب عدد المعقدة من الإصدار 0.31.1 كان.
إعادة تسمية ما يلي تشمل الملفات: config.h - & GT. agncfg.h، chelpers.h - & gt؛ agnhlps.h ، agnxlib.h - & gt؛ agnxlib.h.
على Mac ، تقوم gdi.mouse الآن بإرجاع القيم القياسية لأزرار الماوس المضغوط.
الجديد في الإصدار 0.31.1:
يشمل Agena 0.31 جميع الأدوات الأساسية لرسم النقاط والخطوط والدوائر والأشكال المستطيلة والمستطيلات والأقواس. إلخ ، للتحكم في حجم الصورة والألوان.
الجديد في الإصدار 0.31.0:
تم إصدار إصدار تناسق اللغة مع إصلاح الأخطاء. راجع سجل التغيير لمعرفة ما تم تغييره.
الجديد في الإصدار 0.30.4:
تتميز Agena الآن برسوم مدمجة. سيسمح لك هذا بتخطيط الرسومات البيانية والصور وما إلى ذلك في X11 أو Windows Win32 أو ملفات GIF أو PNG أو JPEG أو FIG أو PostScript ، في كل من Solaris و Linux و Windows. ترتبط Agena بالمكتبة الرسومية g2 التي كتبها Ljubomir Milanovic و Horst Wagner ، لتوفير هذه القدرات الجديدة.يشمل Agena 0.30 جميع الأدوات الأساسية لرسم النقاط والخطوط والدوائر والأشكال المستطيلة والمستطيلات والأقواس. إلخ ، للتحكم في حجم الصورة والألوان.
وGT. مع "gdi" ؛
gdi package v0.1.4 اعتبارا من 20 ديسمبر 2009
قوس، arcfilled، الخلفية، circle، circlefilled، clearpalette، إغلاق، اندفاعة، القطع الناقص، ellipsefilled، flush، fontsize، initpalette، ink، lastaccessed، line، newline، newpoint، open، plotfn، point، rectangle، rectanglefilled، reset، resetpalette ، setinfo ، setoptions ، هيكل ، نص ، سمك ، مثلث ، trianglefilled ، useink
تقوم دالة plotfn برسم رسم بياني واحد أو أكثر للوظائف في واحد حقيقي ، بشكل اختياري مع المحاور المرسومة بلون المستخدم. يمكن أيضًا تحديد نطاق المحور y ، وإلا تحدد Agena أفضل إعداد. هناك العديد من الخيارات الأخرى التي يمكن تعيينها مع وظيفة setoptions والتي سيتم تطبيقها على جميع الرسوم البيانية المنتجة في الجلسة: دقة النافذة والخريطة الملونة وسمك الخط ولون الخلفية. بالطبع ، يمكن للمستخدم تجاوز بعض أو كل الخيارات لمؤامرة محددة. يتم التعامل مع الفردية بشكل صحيح.
الجديد في الإصدار 0.30.3:
تم إصدار Agena 0.30.3 مع الرسومات المضمنة ، والرياضيات الدقيقة التعسفية ، والميزات المحسنة.
الجديد في الإصدار 0.30.2:
تتميز Agena الآن برسوم مدمجة. سيسمح لك هذا بتخطيط الرسومات البيانية والصور وما إلى ذلك في X11 أو Windows Win32 أو ملفات GIF أو PNG أو JPEG أو FIG أو PostScript ، في كل من Solaris و Linux و Windows. ترتبط Agena بالمكتبة الرسومية g2 التي كتبها Ljubomir Milanovic و Horst Wagner ، لتوفير هذه القدرات الجديدة.يشمل Agena 0.30 جميع الأدوات الأساسية لرسم النقاط والخطوط والدوائر والأشكال المستطيلة والمستطيلات والأقواس. إلخ ، للتحكم في حجم الصورة والألوان.
وGT. مع "gdi" ؛
gdi package v0.1.4 اعتبارا من 20 ديسمبر 2009
قوس، arcfilled، الخلفية، circle، circlefilled، clearpalette، إغلاق، اندفاعة، القطع الناقص، ellipsefilled، flush، fontsize، initpalette، ink، lastaccessed، line، newline، newpoint، open، plotfn، point، rectangle، rectanglefilled، reset، resetpalette ، setinfo ، setoptions ، هيكل ، نص ، سمك ، مثلث ، trianglefilled ، useink
تقوم دالة plotfn برسم رسم بياني واحد أو أكثر للوظائف في واحد حقيقي ، بشكل اختياري مع المحاور المرسومة بلون المستخدم. يمكن أيضًا تحديد نطاق المحور y ، وإلا تحدد Agena أفضل إعداد. هناك العديد من الخيارات الأخرى التي يمكن تعيينها مع وظيفة setoptions والتي سيتم تطبيقها على جميع الرسوم البيانية المنتجة في الجلسة: دقة النافذة والخريطة الملونة وسمك الخط ولون الخلفية. بالطبع ، يمكن للمستخدم تجاوز بعض أو كل الخيارات لمؤامرة محددة. يتم التعامل مع الفردية بشكل صحيح.
الجديد في الإصدار 0.29.0:
تتميز Agena الآن برسوم مدمجة. سيسمح لك هذا بتخطيط الرسومات البيانية والصور وما إلى ذلك في نافذة أو ملف GIF أو PNG أو JPEG أو FIG أو PostScript في Solaris و Linux و Windows ، وذلك من خلال تضمين ارتباط لمكتبة الرسوم البيانية g2 التي كتبها Ljubomir Milanovic وهورست فاجنر.تتميز Agena 0.29.0 بجميع الأدوات الأساسية لرسم النقاط والخطوط والدوائر والأشكال المستطيلة والمستطيلات والأقواس. إلخ ، لإدارة اللون وإنشاء ملفات صور أو فتح نوافذ X11 أو Win32.
في أحد التحديثات القادمة ، تسمح لك واجهة المستخدم عالية المستوى التي تتميز بوظائف gdi.plotfn و gdi.plot برسم وظائف univariate ومجموعات النقاط أثناء التنقل. أدرجت بالفعل وظيفتين في Agena 0.29.0 ، ولكن لا تزال تجريبية. هنا معاينة:
وGT. مع "gdi" ؛
gdi package v0.1.0 اعتبارًا من 24 نوفمبر 2009
قوس ، الخلفية ، دائرة ، clearpalette ، إغلاق ، اندفاعة ، القطع الناقص ، fillArc ، fillCircle ، معبأةEllipse ، معبأة مستطيل ،
fillTriangle، flush، fontsize، initpalette، ink، lastaccessed، line، open، plot، plotfn، point، rectangle، reset،
resetpalette ، setinfo ، setoptions ، هيكل ، النص ، سمك ، مثلث ، useink
تقوم دالة plotfn برسم الرسم البياني للوظيفة في واحد حقيقي ، بشكل اختياري مع المحاور المرسومة بلون المستخدم. يمكن أيضًا تحديد نطاق المحور y ، وإلا تحاول Agena تحديد الإعداد الأفضل. هناك العديد من الخيارات الأخرى التي يمكن تعيينها مع وظيفة setoptions والتي سيتم تطبيقها على جميع الرسوم البيانية المنتجة في الجلسة: دقة النافذة والخريطة الملونة وسمك الخط ولون الخلفية. بالطبع ، يمكن للمستخدم تجاوز بعض أو كل الخيارات لمؤامرة محددة. يتم التعامل مع الفردية بشكل صحيح.
plotfn (sin (x) * x & gt؛ & gt ؛، -5، 5، color ~ 'blue'، axiscolour ~ 'gray'، res ~ 640: 480)؛
الجديد في الإصدار 0.27.2:
تقوم دالة baselib toSet الجديدة بتحويل سلسلة إلى مجموعة من أحرفها ، وجدول أو تسلسل إلى مجموعة.لقد تم تصحيح io.readlines لمعالجة السطور بأكثر من 2048 حرفًا. تصدر الدالة الآن أيضًا خطأ إذا فشل تخصيص الذاكرة الداخلية. تم تقليل حجم المخزن المؤقت الداخلي من 2048 بايت إلى 512 بايت. يمكنك تغيير هذا عن طريق تعيين قيمة أخرى إلى AGN_IOREADLINES_MAXLINESIZE في ملف agnconf.h.
io.readlines الآن تقبل أيضًا مقابض الملفات. عند استخدام مقابض الملفات ، بدلاً من أسماء الملفات ، يرجى ملاحظة أنه يجب إغلاق الملف يدويًا بعد استخدام io.readlines.
لم تعد io.readlines تقوم بإرجاع جدول فارغ في حالة عدم وجود الملف. بدلا من ذلك ، يصدر خطأ.
يقوم ToSeq الآن بإرجاع خطأ بدلاً من الفشل إذا لم يتلقى سلسلة أو مجموعة أو جدول.
تم تمديد وظيفة baselib المستخدمة ويمكن أن تعيد استخدام الذاكرة بالبايت و kbytes و gbytes. إنها وظيفة C الآن.
تم حذف وظيفة gcinfo غير الموثقة. وقد اتخذت وظيفتها من قبل المستخدمة.
ترجع الدالة c الجديدة agn_usedbytes عدد وحدات البايت المستخدمة من قبل النظام.
تصحيح خطأ خطأ رسالة toTable.
تمت إعادة تسمية الدالة C AOI `agn_isioforcerror` إلى` agn_isioforceerror`.
الجديد في الإصدار 0.27.0:
وأضاف وظيفة الخطأ math.erf ، ووظيفة الخطأ التكميلية math.erfc.تمت إضافة وظيفة Bessel من النوع الأول math.besselj ، ووظيفة Bessel للرياضيات الطيبة الثانية. يتم إعطاء الترتيب بواسطة الوسيطة الأولى ، وسيطة باعتبارها الوسيطة الثانية.
إذا تم تعيين متغير البيئة الجديد _EnvIoForceError إلى قيمة غير فارغة (الافتراضي) ، فإن io.open و io.readlines ووظائف binio المتنوعة تغادر مع وجود خطأ بدلاً من مجرد العودة بشكل طبيعي.
أعاد binio.readbytes و binio.readchar تسلسلًا فارغًا بدلاً من الفشل في حالة عدم وجود الملف المراد قراءته. تم تغيير هذا: فشل أو يتم الآن إرجاع خطأ.
arcsin و arccos الآن المشغلين ، وبالتالي حوالي 40 ٪ أسرع.
تمت إضافة عامل التشغيل xor الذي يقوم بإجراء منطقي OR-OR على القيم التي يتم تقييمها أو أنها صحيحة أو خاطئة أو فاشلة أو خالية.
إضافة عامل التشغيل atendof الذي يقوم بالتحقق مما إذا كانت كلمة تنتهي في جملة معينة وإرجاع موضعها كرقم. عامل التشغيل بإرجاع فارغة إذا كانت السلاسل لها نفس الطول ، واحد منها على الأقل هو سلسلة فارغة ، أو الكلمة لا تنتهي في نمط معين.hasrtable الآن فقط بإرجاع true ، إذا كان يحتوي على جدول تذكر للقراءة والكتابة (تحديث بواسطة العبارة الإرجاع).
الدالة الجديدة hasrotable يحدد ما إذا كان لدى دالة جدول تذكر للقراءة فقط (التي لا يمكن تحديثها بواسطة عبارة الإرجاع) وإرجاع true أو false.
يسترد المشغلين الجدد gethigh و getlow البايتات الأعلى والسفلى من رقم (أي C مزدوج).
تعيين sethigh الجديدة و setlow الأعلى و البايتات أقل إلى رقم (على سبيل المثال C مزدوج).
يقوم كل من نطاق المشغلين الجديد ، و bor ، و bxor ، و bnot بإجراء عمليات البت و / أو العمليات الحصرية أو التكميلية على الأرقام.
تقوم وظيفة `kernel` الجديدة بتكوين إعدادات نواة Agena. في الوقت الحالي ، يمكن تغيير الطريقة التي تعمل بها أجهزة البت في العمل داخليًا (استخدام الأعداد الصحيحة الموقعة أو غير الموقعة) ، وطريقة طباعة الأرقام.
باستخدام الأعداد الحقيقية x ، ترجع math.argument الآن إلى Pi بدلاً من 0 إذا كان x & lt؛ 0.
بسبب وجود خلل في وظائف مكتبة ANSI C الأساسية ، أنتجت arcsin و arccos نتائج خاطئة بأرقام معقدة إذا كان الجزء التخيلي صفر في أنظمة UNIX. وقد تم إصلاح هذا.
ذكرت math.isPrime كاذبة بالرقم 2. وقد تم تصحيح هذا.بدلا من دليل ، عاد ABS 2 مع الفشل. الآن يعود -1 كما هو موثق.
تمت إزالة حزمة البتات.
تمت إضافة وظيفة واجهة برمجة التطبيقات الجديدة agn_isioforcerror والتي تتحقق مما إذا كان _EnvIoForceError قد تم تعيينه على قيمة غير فارغة.
تحدد الدالة C الجديدة API agn_setbitwise ما إذا كان نطاق المشغلين ، bor ، bnot ، bxor ، و shift داخليًا مع الأعداد الصحيحة الموقعة أو غير الموقعة.
ترجع الدالة C الجديدة API agn_getbitwise الوضع الذي تم تعيينه بواسطة agn_setbitwise.
تحدد الدالة الجديدة C API agn_setdigits عدد الأرقام المستخدمة لأرقام الطباعة.
تحدد الدالة c الجديدة الدالة agn_getdigits عدد الأرقام المستخدمة لأرقام الطباعة.
داخلي: تمت الإزالة من الإدخال "REPL" من luaP_opnames.
لقد تم تحسين مثبت Windows بالتحقق الآن من وجود إصدار مثبت مسبقًا من Agena ، وذلك من خلال منع بدء تشغيل المثبت في حالة تشغيل مثيل آخر منه بالفعل ، ومن خلال بعض التحسينات الأخرى الصغيرة.
والمتطلبات:
سأركع
غنو Readline
لم يتم العثور على التعليقات