ونمرود هو مفتوح المصدر، حرر، كتبته بشكل ثابت، حتمية لغة برمجة مصممة لدعم إجرائي، وجوه المنحى، وأساليب البرمجة العامة والوظيفية، في حين تبقى فعالة وبسيطة.
نمرود قادر على شجرة مجردة جملة (AST) كجزء من مواصفات، مما يسمح للنظام الكلي القوية التي يمكن أن تستخدم لخلق لغات معينة المجال. ورثت ملامح من اللثغة.
البرنامج يتميز الجيل الأصلي رمز، جمع القمامة، iterators صفر العلوية ومشغلي المستخدم defineable، أنواع البيانات على مستوى عال، تجميع تقييم الوقت، compability إلى الأمام، GTK2، API ويندوز، وارتباطات API POSIX، نظام محلل plugable، مولد الوثائق، و لباسكال لنمرود أداة تحويل.
نمرود هو محمول، مما يعني أنه يمكن تشغيلها على لينكس، BSD و Mac OS & نبسب؛ X & nbsp؛ و أنظمة تشغيل Windows
ما هو الجديد في هذا الإصدار:.
إصلاح الأخطاء:
وGC العجوز قط جمع الدورات بشكل صحيح. ثابت ولكنه يمكن أن يسبب انحدارات الأداء. ولكن يمكنك تعطيل جامع دورة مع GC_disableMarkAndSweep وتشغيله بشكل واضح في الوقت المناسب أو لا على الاطلاق. وهناك أيضا GC جديد يمكنك تفعيل مع --gc: markAndSweep التي ليس لديها هذه المشكلة ولكن أبطأ بشكل عام وليس لديها ضمانات الوقت الحقيقي.
يلقي لتطفو أنواع نقطة الآن يفعل bitcast كما هو محدد في دليل. هذا يكسر التعليمات البرمجية التي تستخدم بشكل خاطئ يلقي لتحويل مختلف القيم النقطة العائمة.
وقد تم تحسين أداء وحدة SCGI وإلى حد كبير، وسوف لم يعد منع على العديد من الطلبات المتزامنة.
في المجموع الثابتة أكثر من 70 قضايا جيثب واندمجت أكثر من 60 طلبات سحب.
إضافات المكتبة:
هناك التجريبية علامة والاجتياح GC الجديد الذي يمكن أن تكون أسرع (أو كثيرا أبطأ) من GC الافتراضية. تمكين مع --gc: markAndSweep.
وأضاف system.onRaise لدعم نظام الشرط.
وأضاف system.locals الذي يوفر الوصول إلى السكان المحليين وبروك ل.
macros.quote واضاف لAST شبه نقلا عن.
وأضاف system.unsafeNew لدعم hacky الأجسام طول متغير.
system.fields وsystem.fieldPairs دعم الكائن جدا؛ أنها تستخدم لدعم الصفوف فقط.
واضاف system.CurrentSourcePath إعادة مسار نظام ملف كامل ملف مصدر في الوقت الراهن.
يحتوي على وحدة وحدات الماكرو الآن الكثير من المساعدين مفيد لبناء أشجار جملة مجردة.
التغيرات التي تؤثر التوافق:
المشتركة هو الكلمة الآن.
إهمال sockets.recvLine وasyncio.recvLine وأضاف ريدلاين بدلا من ذلك.
يتم التعامل مع المسافة البادئة الطريقة محلل تغيرت بشكل كبير. ومع ذلك، وهذا يؤثر على القليل جدا (إن وجدت) رمز العالم الحقيقي.
وقد تم تنفيذ توحيد التعبير / بيان. مرة أخرى هذا يؤثر فقط على الحالات حافة وأي رمز العالم الحقيقي المعروف.
غيرت واجهة المتزامن من وحدة SCGI.
WideStrings الآن القمامة التي تم جمعها مثل أنواع سلسلة أخرى.
مترجم إضافات:
الأمر doc2 لا يولد الناتج عن المشروع بأكمله بعد الآن. استخدام رمز التبديل --project جديد لتمكين هذا السلوك.
المترجم يمكن أن يحذر الآن حول المتغيرات المحلية مظلل. ومع ذلك، وهذا يحتاج إلى أن تحول صراحة عبر --warning [ShadowIdent]: على.
المترجم يدعم الآن كل PRAGMA تقريبا في PRAGMA دفع.
وقد تم تنفيذ المحولات عامة.
أضاف PRAGMA noforward التجريبي للغاية تمكن من وضع تجميع خاص من شأنها أن تزيل إلى حد كبير الحاجة إلى الإعلانات إلى الأمام.
إضافات اللغة:
يتم دعم تعبيرات الحال الآن.
الصانعين الجدول تحاكي الآن أكثر ارتباطا وثيقا بناء الجملة البيان القضية.
يمكن نمرود الآن استنتاج نوع بعودة بروك من جسمها.
وأضاف إعلانا mixin أن تؤثر قواعد رمز ملزمة في الوراثة.
تمت إضافة تتبع استثناء، والأمر doc2 بشرح الاستثناءات الممكنة بالنسبة لك.
يحددها المستخدم الآثار (ومثل، وعلامات مثل؛) تمت إضافة تتبع والأمر doc2 بشرح علامات محتملة بالنسبة لك.
يمكن المشروح أنواع مع بناء الجملة الجديد لن معدومة لتنص صراحة على أن لا شيء غير مسموح به. لكن في الوقت الراهن مترجم ينفذ لم ثابت المتقدم التحقق من ذلك؛ الآن انها مجرد لأغراض التوثيق.
تمت إضافة بيان التصدير إلى اللغة: ويمكن استخدامه لشحن رمزا لذلك وحدات العميل لا يجب أن استيراد تبعيات وحدة نمطية صراحة.
الحمولة الزائدة على أساس ASTS تم تنفيذه.
يتم دعم الأدوية الآن لأساليب متعددة.
يمكن تهيئة الأجسام عن طريق التعبير منشئ الكائن.
هناك بناء النحوي الجديد (؛) توحيد التعبيرات والتصريحات.
يمكنك الآن استخدام من وحدة لا شيء الاستيراد إذا كنت ترغب في استيراد وحدة لكنهم يريدون فرض الوصول مؤهل بشكل كامل إلى كل رمز في الوحدة النمطية.
ما هو الجديد في الإصدار 0.8.14:
إصلاح تلف الذاكرة خطير بشأن رسالة عابرة.
إصلاح الخلل الخطير المتعلقة التجسيدات المختلفة لبروك عام.
إصلاح الخلل التي أدخلت حديثا حيث تم رفع استثناء EIO الخطأ لنهاية الملف للملفات النصية التي لا تنتهي مع سطر جديد.
c2nim خلل، c2pas: الخيار --out عملت بشكل صحيح أبدا.
تصحيح خطأ: إحالة procs العامة لم تنجح.
بعض مزيد من بوجفيكسيس لوحدات الماكرو وتجميع لمرة والتقييم.
وGC الآن يأخذ في الاعتبار المؤشرات الداخلية في بنية تخزين العناصر التي قد تكون أدخلت من قبل أبتيميزر العدوانية C.
مخصص نمرود الأصلي / GC يعمل الآن على باور.
الكثير من بوجفيكسيس أخرى: كثيرة جدا لذكرها جميعا.
ما هو الجديد في الإصدار 0.8.6:
إصلاح الأخطاء:
وpragmas يلمح [X]: إيقاف والتحذير [X]: إيقاف العمل الآن.
طريقة تركيب الدعوة لiterators يعمل مرة أخرى (ل x في lines.split ()).
إصلاح الخطأ المطبعي في removeDir لPOSIX التي تؤدي إلى العودية لانهائية.
المترجم يتحقق الآن أن أسماء الوحدة هي معرفات صالحة.
أنماط فارغة لPRAGMA dynlib ممكنة الآن.
عاد os.parseCmdLine نتائج خاطئة للزائدة بيضاء.
استخدام الصفوف (tuple) غير منطقي (باستخدام نفس الصفوف (tuple) مع وبدون حقول اسمه) لا تعطل مولد رمز بعد الآن.
ويرد رسالة الخطأ أفضل عندما فشل التحميل من بروك ضمن ليب الديناميكي.
الإضافات:
system.contains واضاف لالمصفوفات المفتوحة.
وحدة PEG الآن يدعم حلقة بحث المشغل @.
قواعد اللغة / محلل: SAD | يسمح IND قبل أي نوع من قوس الإغلاق. وهذا يسمح لأكثر مرونة شفرة المصدر في صيغة.
يستخدم مترجم الآن جدولا ربط لرمز بحث في سياق مأزق. (انظر manual.html # القوالب للحصول على التفاصيل).
تجاهل ومثل؛ & مثل؛ & مثل؛ تعليقي طويل ومثل؛ & مثل؛ & مثل. هو الأمثل الآن بعيدا.
--floatChecks الجديد: على | إيقاف مفاتيح وpragmas لتصحيح الأخطاء بشكل أفضل عمليات الفاصلة العائمة. (انظر manual.html # الفاصلة العائمة-أنواع محددة مسبقا للحصول على التفاصيل).
تم تحسين الدليل. (شكرا جزيلا لفيليب Lhoste!)
التغيرات التي تؤثر التوافق:
المترجم لا تخطي الخطوة ربط بعد الآن حتى إذا تم تغيير أي ملف.
os.splitFile (ومثل، .xyz ومثل؛) يعود الآن (ومثل؛ & مثل ؛، ومثل، .xyz ومثل ؛، & مثل؛ & مثل؛) بدلا من (ومثل؛ & مثل ؛، & مثل؛ & مثل ؛، ومثل، .xyz ومثل؛). يتم التعامل مع أسماء الملفات بدءا من نقطة مختلفة.
strutils.split (ق: سلسلة، SEPS: ضبط [شار]) لم ينتج سلسلة فارغة بعد الآن. هذا السلوك هو على الارجح أكثر ملاءمة لتقسيم مسافات بيضاء.
يتوقف مترجم الآن بعد تبديل سطر --version الأوامر.
دعم إزالتها لالميراث التعداد في محلل. لم يتم توثيق الإرث التعداد على أي حال.
مجال جي اس من system.E_base لديها الآن سلسلة نوع، بدلا من cstring. هذا يحسن السلامة الذاكرة.
ما هو الجديد في الإصدار 0.8.2:
إصلاح الأخطاء:
يمر --hint [X]: إيقاف أو --warning [X]: إيقاف كوسائط سطر الأوامر إلى مترجم يعمل الآن.
المعلمات الافتراضية لقوالب تعمل الآن.
قضية أمنية ثابتة في system.copy.
حالة سلسلة دون جزء آخر لدت رمز الخطأ.
الحلول لمختلف لوحدة osproc. أنه يعمل الآن على ويندوز.
الإضافات:
تنفيذ طرق متعددة.
المترجم بالكشف الآن عدد المعالجات المتاحة وينفذ المترجم C في نفس الوقت. هذا يمكن تعديلها من قبل --parallel_build: number_of_processors قيادة تبديل سطر.
نمط مطابقة عن طريق وحدة أوتاد تستند PEG.
واضاف system.definedInScope.
واضاف system.accumulateResult.
واضاف os.walkDirRec.
osproc.countProcessors المضافة.
osproc.execProcesses المضافة.
نظام التكوين الآن يدعم $ cc.options.linker.
اندمجت EXPR وtypeDesc في قواعد اللغة / محلل: هذا سوف يسمح لprocs مجهولة دون امدا.
العديد من الكتابات ليست بحاجة لGC: إن --gc الجديد: لا شيء تبديل سطر الأوامر يمكن أن تستخدم لاستبعاد GC من تنفيذ.
التغيرات التي تؤثر الوراء compability:
أخذ عنوان من التمايز الكائن هو الآن غير صالح.
تمرير بروك إلى فار بروك يسمح فقط لprocs ملحوظ مع procvar أو اصطلاح استدعاء! = nimcall. في الوقت الراهن هذا يسبب فقط تحذيرا، ولكن هذا سوف يتحول إلى خطأ في وقت قريب.
النظام. وsystem.add والآن يتلقى openArray بدلا من المعلمات يليها.
إزالة strutils.findSubStr وstrutils.findChars. تم إهمال انهم لمدة 3 الإصدارات.
تستخدم وحدة يونيكود نوع مميز للTRune.
strutils.toString مستنكر: استخدام $ بدلا من ذلك.
إهمال os.splitPath: استخدام os.splitPath التي تقوم بإرجاع الصفوف (tuple) بدلا من ذلك.
إهمال os.extractDir: استخدام splitFile (مسار) .dir بدلا من ذلك.
os.splitFilename مستنكر: استخدام splitFile بدلا من ذلك.
إهمال os.extractFileExt: استخدام splitFile بدلا من ذلك.
إهمال os.extractFileTrunk: استخدام splitFile بدلا من ذلك.
إهمال os.appendFileExt: استخدام os.addFileExt بدلا من ذلك.
إهمال os.executeShellCommand: استخدام os.execShellCmd بدلا من ذلك.
إهمال os.iterOverEnvironment: os.envPairs استخدام بدلا من ذلك.
parseopt.init مستنكر: استخدام parseopt.initOptParser بدلا من ذلك.
parseopt.getRestOfCommandLine مستنكر: استخدام parseopt.cmdLineRest بدلا من ذلك.
os.pcDirectory مستنكر: استخدام os.pcDir بدلا من ذلك.
os.pcLinkToDirectory مستنكر: استخدام os.pcLinkToDir بدلا من ذلك.
إهمال osproc.executeProcess: استخدام osproc.execProcess بدلا من ذلك.
إهمال osproc.executeCommand: استخدام osproc.execCmd بدلا من ذلك.
ما هو الجديد في الإصدار 0.8.0:
إصلاح الأخطاء:
إصلاح الخلل الصغيرة التي تسببت في مترجم لعدم الإبلاغ عن حرف زائد غير المستخدمة
إصلاح الخلل صغيرة تتعلق رمز الحمولة الزائدة
إصلاح الخطأ المطبعي: انها ومثل، غامض ومثل ؛، ليس ومثل، ambigious ومثل. ؛-)
المترجم بالكشف الآن العودية تشمل ملفات
system.card يجب أن تعمل مرة أخرى
وحدات لمجموعة [شار] ومجموعة [شار، T] يجب أن تعمل الآن
الإضافات:
نفذت الأنواع العامة واثنين من مرحلة البحث الرمز في روتين عامة
يمكن المعلمات قالب يكون الآن أنواع الحقيقية
نفذت المعمم سلسلة حرفية الخام: IDENT ومثل، اي بي سي ومثل. هو اختصار لIDENT (R & مثل، اي بي سي ومثل؛)
في إثقال يتم فصل من procs iterators قرار. iterators الآن يمكن أن يكون لها نفس الاسم + توقيع كما procs
بحث رمز في قوالب يمكن أن تتأثر الكلمة ربط جديدة
المترجم يقبل الآن تبديل --no_main لتحسين قابلية التشغيل البيني صلة مع لغات أخرى جمعتها
نفذت الصفوف (tuple) التفريغ في أقسام فار
ومولد رمز تنبعث الافتراضي: __assume (0)؛ ل Visual C ++ (لتحسين)
المترجم يتحقق الآن إذا كان بروك لديها آثار جانبية. يتم رفض procs التي تم تعريفها لديك أي آثار جانبية إذا كان المترجم لا يمكن التحقق من هذا
وstrutils مشغل الشكل.٪ الآن يدعم # $ لالتلقائي حجة العد
strutils.join تنفيذها
التغيرات التي تؤثر الوراء compability:
يتم تنفيذ المرحلة الثانية رمز البحث في الروتين العامة
مأزق الآن كلمة محجوزة. الاستثناء هو أي كلمة محجوزة بعد الآن
تم إعادة تسمية أنواع مجردة إلى أنواع متميزة. وبالتالي متميزة هو الآن كلمة محجوزة. مجردة ليس كلمة محجوزة بعد الآن
system.openFile مستنكر: استخدام system.open بدلا
system.closeFile مستنكر: استخدام system.close بدلا
strutils.replaceStr مستنكر: استخدام strutils.replace بدلا
strutils.deleteStr مستنكر: استخدام strutils.delete بدلا
strutils.splitSeq مستنكر: استخدام strutils.split بدلا
strutils.splitLinesSeq مستنكر: strutils.splitLines استخدام بدلا من ذلك
strutils.parseFloat لا تقبل معلمة بداية إضافية بعد الآن
وثائق:
وقد تحسنت دليل
ما هو الجديد في الإصدار 0.7.6:
إصلاح الأخطاء:
قد تعمل التثبيت على ويندوز فيستا الآن من خارج منطقة الجزاء. حاول من فضلك!
إصلاح الخلل التي أبقت ومثل، وحدات متكررة ومثل. مثال من العمل
خلط المعلمات المسماة ولم تسمها في استدعاء إجراء يعمل الآن
والآن يدعم الأرقام الثماني مع 0C البادئة بشكل صحيح
التعدادات الآن قد تبدأ مع القيم السلبية
parseInt، ParseBiggestInt الآن بطرح استثناء إذا كانت السلسلة لا تنتهي بعد عدد تحليل
المترجم الآن يعالج البيانات على مستوى عال بشكل صحيح
دليل nimcache ولدت الذي لا ينتهي في مائل
createDir يعمل الآن لالدلائل العالمية تحت UNIX (ومثل؛ / somepath / هنا ومثل؛)
المترجم ينفذ الآن للتنفيذ مع الرائدة ومثل، مثل ./&. تحت UNIX
المترجم الآن يدعم صفائف ثابتة من المؤشرات الإجراء
أليف في تصريحات حالة يعمل الآن
iterators باستخدام المعلمة مصفوفة مفتوحة تعمل الآن
إصلاح الخلل حيث في بعض السياقات لم $ myEnum لا تعمل
ما هو الجديد في الإصدار 0.7.4:
التثبيت على ويندوز يجب أن تعمل الآن إذا كان الدليل يحتوي على مسافات
مولد الوثائق الآن فقط يجعل تعليقات وثائق
`` `` يسمح لمشغلي مثل دليل يقول
في حالات نادرة، وقد تم تحسين شيك مؤشر بعيدا، على الرغم من أنه كان من الضروري
عدة إصلاحات الشوائب لأنواع الصفوف (tuple)
وأضاف ل`` وحدة unicode`` لUTF-8 مناولة
وأضاف hostOS وhostCPU magics إلى `` وحدة system``
system.echo يقبل الآن حجج متعددة
الأمثل وأضاف: في بعض الحالات رمز مصدر من iterators تنتج الآن متاحة أفضل بكثير
البرنامج كله وأضاف القضاء كود ميتا
سحر `` `المشغل يعمل الآن لالتعدادات
في `` أقسام const`` تقدمت تجميع تقييم الوقت يتم
إعادة تسمية `` `` in_Operator`` إلى contains``: `` in`` هو الآن القالب الذي يترجم إلى `` contains``
غيرت `` `` strutils.quoteIfSpaceExists`` إلى strutils.quoteIfContainsWhite``
محلل هو الآن أكثر من الصعب إرضاءه الكثير عن المفقودين الفواصل، وما إذا كان هذا يؤثر على التعليمات البرمجية الخاصة بك كثيرا، ومحاولة تشغيل التعليمات البرمجية من خلال الطابعة جميلة.
و`` API macros`` لم يعد جزءا من `` وحدة system``، لاستخدام هذا API لديك الآن لاستيراد `` macros`` وحدة
وأضاف تعليمي
ما هو الجديد في الإصدار 0.7.2:
هذا هو الافراج عن بوغفيكس. هذا الإصلاح الأكثر أهمية هو أن نمرود يعمل الآن مرة أخرى على AMD64 (x86_64) المعالجات.
وقد تم تنفيذ أي ميزات جديدة.
ما هو الجديد في الإصدار 0.7.0:
مختلف إصلاحات الشوائب، وكثير جدا لإدراجه هنا
لا تعتمد على التركيب لأنظمة المستندة إلى UNIX على بيثون أي لفترة أطول
و`` النصي koch.py`` يعمل الآن مع الإصدارات القديمة بيثون (بما في ذلك 1.5.2)
عمليات صحيح المتغيرة وقواعد التحويلات
وأضاف `` `` GC_ref`` وprocs GC_unref``
تحتاج متواليات الآن سيتم تشييدها مع `@` `` المشغل. وهذا يؤدي إلى أقل الغموض.
يستخدم مترجم الآن ذاكرة أقل وأسرع بكثير
وGC هو الآن أسرع بكثير
الارتباطات الجديدة: زليب، SDL، Xlib، برنامج OpenGL، ODBC، لوا
رمز C ولدت هو أسرع بكثير لتحسين مع دول مجلس التعاون الخليجي
مكتبات جديدة: تيارات، zipfiles
وقد استدار المترجم نمرود لفري: يجب أن تعمل على الآخر في BSD جدا
المتطلبات:
بيثون
لم يتم العثور على التعليقات