هذا هو الأمر makepp_release_notes الذي يمكن تشغيله في موفر الاستضافة المجاني OnWorks باستخدام إحدى محطات العمل المجانية المتعددة عبر الإنترنت مثل Ubuntu Online أو Fedora Online أو محاكي Windows عبر الإنترنت أو محاكي MAC OS عبر الإنترنت
برنامج:
اسم
makepp_release_notes - تغييرات كبيرة في كل إصدار من makepp
الوصف
التجريبية 2.1 (في إطار تطوير)
· إعادة كتابة الوثائق المضمنة والقالب المصغر للغة. لديها الآن
"@يشمل(اسم الملف)@" دقيق.
· C الماسح الضوئي الآن يأخذ في الاعتبار متغيرات المسار المحددة للمترجم مثل
"C_INCLUDE_PATH" أو "LIB".
· يتداخل الأبوان الآن كما في GNU make أو Shell: "$(name ...()...)"
· متغير البيئة الجديد "MAKEPP_DEBUG".
· لقد تغيرت إعدادات التثبيت الافتراضية لـ html-doc وman قليلاً.
· الخيار الجديد "--loop" هو خليفة "--stop-after-loading"، والذي يعززه
للحصول على السبق لكل دورة ترجمة تحريرية في حلقة لا نهاية لها.
· عبارات "التضمين" والوظائف "find-first-upwards" و"find-upwards"
لن يعد البحث أعلى من أ ملف RootMakepp، إذا كان واحدا حاضرا.
· أسلوب gmake في وضع القاعدة لعمل ملف التضمين بعد التضمين
البيان غير مستحسن، ولكنه مدعوم الآن. وبالتالي فإن الخيار "--تأجيل-تضمين"
تم إزالته.
· يتم حذف جميع ميزات الإصدار ما قبل 2.0 التي أصدرت تحذيرات مهملة، كما هي الحال الآن
$Mpp::Makefile::legacy_functions و$MAKEPP_INSTALL_OLD_MODULES.
· يمكنك استخدام خيار makeppinfo، mppi الجديد "--غير متذكر" لاكتشاف ما لم تعد هناك حاجة إليه
الملفات.
· يمكنك استخدام خيار makeppreplay الجديد، mppr "--sed" لإعادة تشغيل الأمر بشكل مختلف،
على سبيل المثال، للتوقف بعد المعالجة المسبقة أو لإضافة خيارات تصحيح الأخطاء إلى الرابط.
· كان هناك ميزة غير موثقة (وعربات التي تجرها الدواب قليلاً) حيث يتم صنع .makepp / السجل
غير قابل للكتابة من شأنه أن يمنع التسجيل. الآن بدلاً من ذلك يعود إلى "-verbose"، لذا أنت
يجب أن تمر "--no-log" إذا كنت تريد ذلك. هذا الخيار وعدد قليل من الخيارات الأخرى كانت موجودة أيضًا بالفعل
متاح لmakeppreplay، mppr، ولكن غير موثقة.
· مطلوب بيرل 5.8 على الأقل.
التجريبية 2.0 (يمشي 2012)
يتم ترتيب العناصر تقريبًا حسب العمر، لذلك تحتاج إلى قراءة الأجزاء الأولى فقط
إذا كنت تستخدم لقطات أحدث من 1.40.
· لم تعد عبارة التوقيع تتجاوز الطريقة التي وجدها موزعو الأوامر - الآن
يجب عليك توفير الكلمة الأساسية "تجاوز" إذا كنت تريد ذلك. هناك التوقيع الجديد
طرق "xml" و"xml-space". يمكن الآن أيضًا أن يكون التوقيع "c_compilation_md5".
تم استدعاؤه كـ "C" (لأن التوقيعات تتعلق بالملفات، وليس الإجراءات). هو (و
يمكن الآن توسيع نطاق الفئات الفرعية) بسهولة إلى لاحقات أخرى كما في معنى "C.ipp,tpp".
إلى جانب اللواحق المضمنة، سيتم تطبيقه أيضًا على الملفات التي تنتهي بـ .ipp or .tpp.
بفضل هذا makeppreplay وSQL/C المضمن، يعمل الآن بشكل أكثر موثوقية. حذار:
is ليست فهم by أقدم إصدارات. So لا دعوة an أقدم MPP on الأشياء بنيت مع
الإصدار، التي يشمل تبدأ من a مستودع لصحتك! بنيت في.
· يمكن أن تسبق الكلمة الأساسية "global" الكلمات الرئيسية "build_cache" و"build_check" و"signature".
البيانات وبيان "التعريف" الذي يسمح الآن أيضًا بـ "التصدير". لذلك ق _
يحصل المشتركون الآن على المعلمة الرابعة، وهي مرجع تجزئة مع الكلمات الرئيسية التي تمت مواجهتها كمفاتيح.
· يتم الآن تحليل ملفات Makefiles بنفس الأولوية كما في gmake. ومن ثم "تشمل :" أو
"include =" أصبحت الآن عبارات (بدون مسافة: لا تزال قاعدة أو مهمة.) وهذا يعني ذلك
"Perl {مؤهل :: اسم }" لم يعد يختفي بشكل غامض (كان من المعتاد أن يكون عديم الفائدة
القاعدة.) الآن قد تحتوي أسماء المتغيرات على مسافة بيضاء. وهذا يعني أن "&المعالجة المسبقة
"--المهمة" ستتعامل مع أي علامة تساوي تقريبًا كمهمة (استبدلها بـ
$E من المهمة المضحكة "E==".)
· إذا كان لديك ذاكرة تخزين مؤقت موحدة على عدة أقراص، وبعضها كذلك
المفضل، يجب عليك تحرير build_cache_options.pl وتغيير PREFERRED إلى
مفضل. (يعكس هذا تغييرًا عامًا في الأسماء حيث نبدأ الآن بـ "x" الكل
xATTRIBUTES والتي تكون صحيحة إذا كانت موجودة).
· تمت الآن محاكاة المتغير "VPATH" وعبارة "vpath".
· وظائف Makefile ("sub f_...") قد تحصل الآن على المعلمة الأولى الخاصة بها كسلسلة
مرجع. في هذه الحالة أنت مسؤول عن توسيع حججك. استخدم ال
وظائف الملحق &arg أو "args" الموضحة في ملحقات makepp. حتى تحصل على الجولة
لتحديث وظائفك، يمكنك إيقاف هذا عن طريق الإعداد
"$Mpp::Makefile::legacy_functions = 1" إما في ملف التعريف الخاص بك (واحد لكل نظام إنشاء
يكفي، لأنه متغير Perl) أو قم بتصحيحه في تثبيت makepp الجديد. لو
تريد أن تعمل وظائفك المحدثة مع كل من أداة makepp القديمة والجديدة، استخدمها
"ref $_[0] ? &arg : $_[0]" أو "ref $_[0] ? args(...) : $_[0]" في مرحلة الانتقال.
ضمن "$(call)"، يتم الآن توسيع المتغيرات الخاصة "$0، $1، ...، $(11)، ..."
مثل أي متغير آخر. وهذا يسبب اختلافات طفيفة عن العمل السابق
حول. تكون النتيجة أقرب إلى gmake، على الأقل إذا كانت "makepp_simple_concatenation=1" كذلك
تعيين.
· CMake makefiles ولدت لم تعد تؤدي إلى العودية العميقة.
· ماسح ضوئي جديد "esql_compilation" لـ SQL C المضمن، يغطي الآن كافة قواعد البيانات. يجب عليك أن
توفير القواعد، ولكن.
· خيار جديد - صنع هجين عودي (اتبع رابط كل خيار، لرؤية النماذج الأقصر) كما
بديل أكثر ذكاءً لـ --traditional-recursive-make.
خيار جديد --stop-after-loading يمنح makepp بداية قوية بينما لا تزال تقوم بالتحرير.
خيارات جديدة --rm-stale، --sandbox و--dont-read، للتحكم في وضع الحماية عند التشغيل
عدة أوامر makepp متزامنة (ربما موزعة).
سيبحث Makepp الآن أيضًا عن الخيارات في الملفات التي تسمى .makepprc. الخيار
--args-file متاح الآن بشكل ثابت لجميع الأوامر.
متغير البيئة MAKEPP_CASE_SENSITIVE_FILENAMES يحل محل الخيارات
--أسماء ملفات حساسة لحالة الأحرف و-أسماء ملفات حساسة لحالة الأحرف.
تمت إزالة خيار "--keep-repository-links"، الذي أصبح سلوكه الآن هو السلوك الافتراضي.
تقوم جميع الأدوات المساعدة الآن أيضًا بالاستعلام عن متغير بيئة لخيارات الإعداد المسبق. كل واحد
يتم استدعاؤه مثل الأداة المساعدة بأحرف كبيرة، مع إضافة FLAGS، على سبيل المثال $MAKEPPCLEANFLAGS أو
$MAKEPPLOGFLAGS.
يمكن الآن تجميع خيارات سطر الأوامر القصيرة بطريقة يونكس، لذلك قد يتم تجميع "-k -j 4".
يُعطى كـ "-kj4". في جميع الخيارات الطويلة، قد تكون المسافة بين الكلمات ثابتة الآن
تم حذفها أو استبدالها بشرطة سفلية، بحيث يمكن أن تكون "--no-log" "--nolog" أو
"--no_log". تؤدي الخيارات غير المعروفة الآن إلى حدوث خطأ.
· في الأصل كان "makeppclean" "-l" يعني "--leave-src-info"، ولكن الآن تم تحديد الخيارات
ممتد وتغير هذا إلى "-k|--keep-src-info".
· تم تنظيف مصطلحات المسح الضوئي (وإعادة كتابة الصفحة) لتتوافق أخيرًا مع أ
إعادة التصميم التي حدثت قبل بضع سنوات. يوجد الآن 3 مصطلحات منفصلة، المعجم
(والتي لا يحتاج المستخدمون إلى القلق بشأنها)، وموزعي (الأمر) و(الملف)
الماسحات الضوئية.
للمستخدمين المتقدمين: تتكون الواجهة الجديدة من "register_parser" أو
عبارات "register_command_parser" وخيار القاعدة ":parser" والمحلل اللغوي "p_*"
وظائف المصنع التي تصبح مستعارة لفئة المحلل اللغوي الخاصة بها باسم "المصنع". المسمى خطأ
عبارة "register_scanner" وخيار القاعدة ":scanner" و":scanner_*" أو ":parser_*"
وظائف مهملة.
· متغير جديد MAKEPP_VERSION.
· تم نقل جميع الفئات الداخلية إلى الحزمة الجديدة "Mpp::" وذلك للالتزام بـ CPAN
القواعد، ولتجنب الاصطدام المحتمل مع أي وحدة قد تقوم بتحميلها في جهازك
com.makefiles. هذا أمر واضح للمستخدمين العاديين لـmakepp.
في حالة قيامك ببرمجة لغة Perl لملفات Makefiles الخاصة بك، واستفدت من بعضها
الداخلية وهذا من شأنه أن يكسر البناء الخاص بك. ولذلك هناك تراجع مؤقت
ميزة التوافق، التي سيتم إزالتها مستقبلاً، والتي يمكنك تفعيلها أثناء ذلك
تثبيت. تم التحقق من متغير البيئة الجديد $MAKEPP_INSTALL_OLD_MODULES
قائمة بالوحدات القديمة التي تريد إنشاؤها كمغلفات حول الوحدات الجديدة. بالإضافة إلى ذلك
إذا كان لديك ملفات makefiles، فلن تتمكن من تغييرها بسرعة، والتي تعتمد على وجود هذه الأشياء
متاحة بدون عبارة "استخدام"، يجب عليك بادئة هذه الوحدات بعلامة "+"، للحصول عليها
لهم محملة مسبقا:
MAKEPP_INSTALL_OLD_MODULES='+قاعدة الكرة الأرضية +MakeEvent'
· أداة makeppreplay الجديدة، mppr لتكرار بعض إجراءات makepp بسرعة كبيرة. جديد
makepplog، أداة mppl لرؤية بيانات السجل بشكل قابل للقراءة، وهي ضرورية بسبب تغيير الملف
شكل. يتضمن البرنامج الجديد makeppgraph، وهو أداة mppg لتحليل التبعيات بيانيًا
وجزئيا أسباب إعادة البناء. جديد makeppinfo، فائدة mppi لنرى إلى حد ما
بشكل خفي ما يعرفه makepp عن بعض الملفات.
· تم النقل إلى خدمات نظام IBM z/OS Unix. فقط التصميم العودي الذكي لا يعمل.
· أصبح Makepp أسرع بشكل ملحوظ.
· إلغاء إعادة التسمية غير الموثقة لـ "." فقط إلى "_dot_" في المتغير و
أسماء الوظائف.
المتغير الجديد $/ لفاصل الدليل المحمول. الكثير من إصلاحات نظام التشغيل Windows، بما في ذلك
"-j" (إصدارات متوازية) لـ Cygwin وMinGW والبنيات العودية الذكية على Cygwin.
· قم أيضًا بتثبيت الاختصارات التي تتكون من 'mpp' بالإضافة إلى الحرف الأول من كل منها
الكلمة التالية، على سبيل المثال "mppc" لـ makeppclean.
· جديد:build_check Only_action للأوامر التي لا تعتمد على محتوياتها
التبعيات، مثل إنشاء الارتباط الرمزي، حيث يتم استخدامه تلقائيًا.
· إزالة "--norc-substitution" و"--percent-subdirs" و"$(rc_substitution)" و
"percent_subdirs". يجب الآن منحهم في أي مكان من مهمة محددة للهدف
إلى سطر الأوامر أو متغيرات البيئة "makepp_simple_concatenation" و
"makepp_percent_subdirs".
· بناء جملة الإجراء الجديد "&perl_function 'arg 1' arg2..." و"&external-perl-script 'arg 1'
arg2 ..." وظيفة بيرل الجديدة "تشغيل".
هناك الأوامر المضمنة التالية: &chmod، &cp، &cut، &echo، &expr، &grep،
&تثبيت، &ln، &mkdir، &mv، &Perl، &preprocess، &printf، &rm، &sed، &sort، &template،
&touch، و&uninstall، و&uniq و&yes، والتي يمكن أن تحل محل أوامر Unix التي تحمل الاسم نفسه،
وبشكل أو بآخر أيضًا ما يلي: "awk"، "chgrp"، "chown"، "head"، "m4"، "rmdir"،
"الذيل" و "آر". وهي متوفرة أيضًا بشكل مستقل من Shell. هم ايضا يستطيعون
يمكن استخدامها كوظائف، على سبيل المثال "$(&cat file)"، أو كبيانات، أو قائمة بذاتها.
لاحظ أنه، على عكس إصدارات CVS السابقة، أصبحت "&cut -f" و"&grep -v" و"&sort -r" الآن
تتصرف كما هو الحال في يونكس. لاحظ أنه في إصدارات CVS السابقة من &القالب "@@" تمت معالجته
قبل "@"، ولكن الآن يتم التعامل مع الخطوط باستمرار من الأمام إلى الخلف.
· تمت إضافة عبارة "عالمية" لمشاركة المتغيرات عبر ملفات التعريف. المهمة
يعمل متغير "التصدير" الآن كمهمة عادية، لذا قد تضطر إلى التغيير إلى
":=". تمت إضافة معدّل "التجاوز" إلى المهام. عبارة "تعريف var :="
يسمح الآن اختياريًا بتحديد نوع المهمة. والنماذج مع فوري
يحتفظ التقييم بالأسطر الجديدة في "$(shell ...)" أو "$(&command)". هناك جديد
عوامل الإسناد "&=" للتعليق المسبق، و";=" وهي "=" عند التعيين، ولكن
يتحول تلقائيًا إلى ":=" عند استخدامه لأول مرة.
· تم الآن العثور على ملف makefile أيضًا إذا كان يسمى "Makeppfile.mk".
· هناك اسمان جديدان محتملان لملفات makefiles: "RootMakeppfile" أو ما يعادله
"RootMakeppfile.mk". إن وجود أي منهما يمنح شجرة البناء الخاصة بك طابعًا رسميًا
الجذر، ويمكن الوصول إليه من خلال المتغير الجديد "$(ROOT)". الميزة هي أن هذا الملف
يتم دائمًا تحميله أولاً، إذا كان موجودًا، مما يسمح لك بإنشاء نظام بناء بسهولة أكبر
حيث يمكن استدعاء makepp من أي مكان، دون إخباره بالملف الذي سيبدأ تشغيله
في.
يتم بعد ذلك تحديد جذر نظام الملفات تلقائيًا بـ "--dont-build"، لذلك
لا يعبث makepp بالأدلة الأخرى التي تقوم بتضمينها أو استخدام libs منها، فقط
لأنه يحدث لديهم ملف Makefile أو مصادر.
عادةً ما يعني هذا أنه تم وضع علامة على جذر نظام البناء الخاص بك بـ "--do-build".
ومع ذلك، إذا قلت "--do-build" لشيء ما ضمن جذر نظام البناء الخاص بك، والذي
لا يرث "--dont-build"، فبدلاً من ذلك يتم وضع علامة على جذر نظام البناء الخاص بك
"- لا تبني".
· تمت إزالة الأمر "makeppclient" لأننا لم نتمكن مطلقًا من السماح للبنيات بالبدء
أسرع بكثير. يعد الخيار "--stop-after-loading" أكثر فائدة.
· يتم الآن فحص ملفات تعريف الواجهة لـ SWIG (ملفات .i) بحثًا عن تضميناتها. ماكيب
يفهم الآن دعوات swig. (يشير SWIG إلى الغلاف والواجهة المبسطة
مولد كهرباء. يقوم تلقائيًا بإنشاء كافة وظائف المجمع لربط C أو C++ الخاص بك
كود لمجموعة متنوعة من اللغات الأخرى مثل Perl وPython وTcl وRuby وOCaml وC# وما إلى ذلك.
يرى http://www.swig.org/.)
· يحتوي GNU Emacs 22 الآن على وضع makefile-makepp القياسي، وهو الوضع الافتراضي عندما
زيارة ملف Makepp.
· يتم تقييم $[VARIABLE] أو $[function...] عند قراءة سطر ملف تعريفي، وبالتالي فإن
قد يحتوي المتغير على بناء جملة makepp.
· $( ...) هي الآن دائمًا قائمة في استبدال نمط rc، لذا فإن "-I$( $(DIRLIST))" سوف تظهر
لا تترك خيارًا وحيدًا عندما يكون DIRLIST فارغًا.
· يمكنك الآن استخدام الدالات المزدوجة والقوائم متعددة الأسطر، مما يسمح بأشياء مثل
"$((بيرل إذا( $a < 5 ) { ... }))".
· توقيع "c_compilation_md5" الجديد، والذي يسمح أيضاً بإضافة مسافة بيضاء حيثما وجدت
لا شيء وعكسيا. كما أنه يتجاهل المسافات البيضاء والتعليقات بعد الرمز المميز الأخير.
يعد هذا مفيدًا لمنع إعادة البناء غير المفيدة إذا أضاف VC الخاص بك خطوطًا في "$""Log$"
علامة عند تسجيل الوصول.
· تنفيذ $؟ تمامًا كما يفعل GNU. الاسم الطويل الجديد "$(changed_inputs)" له.
· تنفيذ "$(خطأ...)" و"$(تحذير...)" كما في نظام GNU.
· طريقة جديدة ": build_checkignign_action" لتجاهل التغييرات في سلسلة الإجراء.
· البيانات الجديدة "ifperl"، "ifmakeperl"، "iftrue"، "ifntrue"، "ifsys" و "ifnsys".
· يمكن الآن تجميع الشروط الشرطية "ifxxx" مع "و" و"أو". عندما كتب على نفسه
سطرًا بعد "آخر"، يقومون بإنشاء فرع لنفس العبارة، بدلاً من المطالبة
التعشيش.
· تمت إضافة دعم للتبعيات على متغيرات البيئة، وذلك باستخدام خيار القاعدة ":env".
· إصلاحات مختلفة للتعامل مع الإشارات.
· الأمر الجديد "makeppclean" الذي يزيل الملفات التي تم إنشاؤها بكفاءة دون تحميل
com.makefiles.
· استدار إلى MinGW.
· إنشاء مخابئ جديدة لتخزين الملفات المتطابقة. هذا يعني أنه إذا قمت بتغيير أ
الملف والعودة، ثم يمكنك جعل makepp يتراجع إلى .o السابق مباشرة
الملف دون إعادة البناء. أو يمكنك مشاركة إصدارات الملفات المتطابقة بين ملفات منفصلة
أشجار المصدر. مجموعة مضافة حديثًا من ذاكرات التخزين المؤقت للإنشاءات للإعدادات الكبيرة، وربما تمتد
عدة آلات.
· مطلوب بيرل 5.6 على الأقل.
التجريبية 1.40 (ديسمبر 2004)
شكرًا لأندرس جونسون ودانييل فايفر على المساهمات الكبيرة في التعليمات البرمجية في هذا الشأن
الافراج.
· عدد كبير جدًا من إصلاحات الأخطاء التي يجب إدراجها بشكل فردي. ربما تكون أهم الإصلاحات هي التي يجب إجراؤها
إنه يعمل بشكل أكثر موثوقية على Cygwin، ولكن كانت هناك أيضًا إصلاحات للمتغير
التوسع والمسح والمستودعات وما إلى ذلك.
· إعادة كتابة محلل الأوامر وبنية الماسح الضوئي للملفات بحيث تكون أكثر سهولة
توسع. يدعم Makepp الآن Verilog (وهي لغة تستخدم لتصميم الرقائق) بالإضافة إلى ذلك
إلى C++ وفورتران. ينبغي أن يكون من السهل نسبيًا دعم المزيد
كلغات متعددة. (أندرس جونسون)
· الأمر الجديد "makeppclient" الذي يسمح للبنيات بالبدء بشكل أسرع. (دانيال فايفر)
· إذا كان لديك Perl 5.6.0 أو أعلى، فإن وثائق HTML تأتي الآن مع العمل الجديد
شعار الجمل وتسليط الضوء على بناء الجملة في الأمثلة. (دانيال فايفر)
· العديد من التصحيحات والتحسينات على الوثائق. (خاصة وإلا جونسون)
· تقديم الدعم لبيان "تعريف" GNU لتحديد قيم متغيرة متعددة الأسطر.
· يعمل $(PWD) و$(CURDIR) الآن كما هو الحال في GNU make.
· خيار "--keep-repository-links" الجديد لمنع makepp من حذف كافة البرامج
الروابط التي ينشئها عند إنشاء المستودعات.
· خيارات جديدة "--افترض-قديم"، و"--افترض-جديد"، و"--لا تقم بالبناء"، ودعم
خيار "-ن".
· لقد تحسن دعم قواعد النقطتين المزدوجتين قليلاً، حتى نتمكن من التعامل مع ملفات makefiles
من إنتاج MakeMaker دون الكثير من المتاعب.
· تمت إضافة بناء جملة لتنفيذ كود Perl كعبارة وفي القواعد "Perl {... }" أو
"ماكيرل {... }". تمت إضافة وظائف لتقييم عبارات Perl "$(Perl ... )" أو
"$(ماكبيرل ... )". تمت إضافة عبارة "makesub { ... }". (دانيال فايفر)
· يمكن الآن أن يتبع الخيارات القصيرة وسيطة مباشرة كما في -j4. الخيارات الموثقة
--jobs، --keep-going، --makefile، --what-if، --assume-new، --new-file، --assume-old &
--old-file مقبول الآن حقًا. (دانيال فايفر)
التجريبية 1.19 (يوليو 2003)
شكر خاص لماثيو لوفيل وكريس فان إنجلين على الكثير من الاقتراحات والنصائح
تعقب المشاكل في التعليمات البرمجية.
· تمت إعادة تنظيم التوثيق بحيث يمكن إنتاج صفحات الدليل وصفحات HTML،
وتمت إضافة كتاب الطبخ/الأسئلة الشائعة (انظر makepp_cookbook).
· تمت إضافة برنامج نصي "للتكوين" بحيث يكون التثبيت أشبه بمنتجات البرامج الأخرى
من وجهة نظر المستخدم.
· وظيفة "$(Origin )" من GNU make مدعومة الآن.
· المتغيرات الخاصة بالهدف مدعومة الآن كما هو الحال في GNU، إلا أنها لا تفعل ذلك
نشر قيمهم إلى التبعيات.
· وظائف جديدة "$(find_upwards )" و"$(relative_filename )" (بمساهمة من ماثيو
لوفيل) و"$(relative_to )".
· في أوامر الترجمة، أصبح "-I dir" و"-L dir" مدعومين الآن ويعملان تمامًا مثل
"-إدير" و"-لدير".
· سيتم الآن إعادة تجميع ملفات C إذا تم إدراج تعليق متعدد الأسطر، أو إذا تم ذلك
تم تغيير ترقيم الخط بأي شكل من الأشكال. في السابق، تجاهلت الخطوط الجديدة في الحوسبة
المجموع الاختباري، مما يعني أن التغيير الذي أثر على معلومات مصحح الأخطاء قد لا يفرض إجراء
إعادة تجميع.
· خطأ في "$(shell )" أدى إلى إرجاع سلسلة فارغة في بعض الأحيان (خصوصًا
عندما كان النظام محملاً بشكل كبير) تم إصلاحه.
· الملفات أو الدلائل غير القابلة للقراءة تمنع الاستيراد من المستودعات ولكنها ليست كذلك
مطابقة بواسطة أحرف البدل.
· تم إصلاح بعض الأخطاء الطفيفة الأخرى.
التجريبية 1.18 (يناير 2002)
كان التغيير الأكثر أهمية هو دعم بيئة بناء Cygwin. يمكنك الآن الركض
makepp مع إصدار Cygwin من Perl؛ لا أعتقد أنه سيعمل بشكل صحيح مع
إصدار Windows الأصلي من بيرل حتى الآن.
تم إجراء بعض إصلاحات الأخطاء الأخرى في هذا الإصدار.
التجريبية 1.10 (شهر فبراير 2001)
التغيير الأكثر أهمية في هذا الإصدار هو أن makepp يمكنه قبول عدد أكبر بكثير
makefiles دون أي خيارات لسطر الأوامر بسبب بعض التغييرات في ملف
تنفيذ جعل العودية. هناك بعض التحسينات الطفيفة في إصدار GNU
التوافق، وتحسين طفيف في استخدام الذاكرة.
هناك العديد من التغييرات المرئية للمستخدم:
· "c_compilation_md5" هو الآن أسلوب التوقيع الافتراضي. وهذا يعني أنه بشكل افتراضي،
لن يقوم makepp بإعادة ترجمة وحدات C/C++ إذا تغيرت المسافات البيضاء أو التعليقات فقط.
· تمت إضافة طريقة توقيع جديدة "md5"، والتي تقوم بتشغيل المجموع الاختباري MD5 على الملف
محتويات. لم يتم تمكين هذا بشكل افتراضي؛ لا يزال makepp يستخدم طريقته الأصلية
("exact_match") لأية ملفات بخلاف ملفات مصدر C/C++.
وبسبب هذه التغييرات، سيقوم makepp بإعادة ترجمة كل شيء في المرة الأولى التي تقوم فيها بتشغيله.
التجريبية 1.05
بالإضافة إلى إصلاحات الأخطاء، يحتوي هذا الإصدار على تغيير واحد مرئي للمستخدم. ال
تم تقديم خيار سطر الأوامر "-norc-substitution" للسماح بالمعالجة المتوافقة لـ
مسافة بيضاء في ملفات makefiles.
التجريبية 0.99 (يناير 2001)
بالإضافة إلى العديد من إصلاحات الأخطاء، يحتوي هذا الإصدار على العديد من التغييرات المرئية للمستخدم:
· يتم الآن التعامل مع الأهداف المتعددة للقاعدة بطريقة أكثر توافقاً مع القاعدة القديمة
com.makefiles. لدى Makepp خوارزمية إرشادية لتخمين ما إذا كانت القاعدة مفترضة أم لا
لبناء كافة الأهداف مرة واحدة أو ما إذا كانت القاعدة تحتاج إلى استدعاء عدة مرات.
لا أعتقد أن هذا سيؤدي إلى كسر أي ملفات إنشاء موجودة، ولكن يجب أن يسمح لـ makepp بذلك
العمل مع العديد من ملفات makefiles المصممة لنظام Unix.
· يمكن استخدام خيار "--traditional-recursive-make" لملفات الصنع القديمة التي تستخدم
الدعوات العودية لـ make بطريقة لا تعمل مع makepp الافتراضي
التنفيذ.
· المستودعات تعمل الآن مع libtool.
· يُسمح الآن بالإعدادات المتغيرة باستخدام عبارة "load_makefile" ومعها
جعل العودية.
التجريبية 0.95
يحتوي هذا الإصدار على العديد من التغييرات المرئية للمستخدم:
· تمت إضافة برنامج تعليمي حول كتابة ملفات Makepp.
· أصبح أسلوب GNU make الشرطي (ifeq/ifneq/ifdef/ifndef) مدعومًا الآن، كما هو الحال مع
الدالة "$(إذا )".
· بشكل افتراضي، يتطابق حرف البدل "%" الآن مع الملفات الموجودة داخل الدليل فقط؛ "%.c" الآن
يعادل "*.c"، وليس "**/*.c". وكان سبب هذا التغيير هو أن القواعد تقريبًا
لا تحتاج أبدًا إلى استخدام أحرف البدل الأكثر تعقيدًا، وغالبًا ما تتسبب في عدم ضرورة ذلك
الدلائل المراد البحث فيها. يمكنك الحصول على السلوك القديم عن طريق التحديد
"--percent-subdirs" في سطر الأوامر. (أنا فضولي حول شعور الناس حيال هذا
يتغير. واسمحوا لي أن أعرف إذا كان لديك أسباب وجيهة لكونها طريقة واحدة أو
آخر.)
· بشكل افتراضي، makefiles من أي دليل يحتوي على تبعية، أو ذلك
يتم البحث عنها بواسطة حرف البدل، ويتم تحميلها تلقائيًا. عادة هذا يعني أنك لا تحتاج
أي عبارات "load_makefile" على الإطلاق. إذا كان هذا يسبب لك مشاكل، يمكنك إيقاف تشغيله
التحميل الضمني للملفات الصنعية عن طريق إضافة "--no-implicit-load" إلى سطر الأوامر.
(أشعر بالفضول لمعرفة ما إذا كان الأشخاص يحبون أو لا يحبون التحميل الضمني لملفات التعريف.)
· يمكن الآن إعلان الهدف مزيفًا على نفس السطر الذي يحدد الهدف باستخدام
وظيفة "$(phony )" الجديدة، مثل هذا:
$(زائف الكل):program_1program_2
تقوم الدالة "$(phony )" ببساطة بإرجاع الوسائط الخاصة بها، ولكنها تضع علامة عليها على أنها زائفة
الأهداف. لا يزال بإمكانك استخدام بناء الجملة الأقدم الذي يبدو كما يلي:
الكل: Program_1 Program_2
.PHONY: الكل
تعتبر وظيفة "$(phony )" محاولة لتحسين إمكانية قراءة الملفات المؤقتة. بطاقة تعريف
أرحب بالاقتراحات الأخرى، لأنني ما زلت غير راضٍ تمامًا عن بناء الجملة.
التجريبية 0.90
من أجل دعم ميزات مثل التصنيع المتوازي، يجب أن تكون معظم الأجزاء الداخلية كذلك
إعادة تنظيمها أو إعادة كتابتها. والنتيجة هي أكثر نظافة ونأمل أن تكون أكثر موثوقية.
لقد تم إصلاح الأخطاء الكثيرة التي لا يمكن ذكرها. من أجل المساعدة في ضمان الموثوقية، اختبار
تم تطوير الجناح. إنها لا تختبر كل شيء على الإطلاق حتى الآن، ولكنها تختبر
معظم الأشياء، وآمل أن أجعلها أكثر شمولاً في المستقبل. يمكنك تشغيله عن طريق الكتابة
"اختبار makepp" في دليل توزيع makepp. إذا فشل makepp غير المعدل في
مجموعة الاختبار، واسمحوا لي أن أعرف حتى أتمكن من إصلاحه.
هناك العديد من الميزات الجديدة:
· المستودعات مدعومة الآن.
· أصبح من الممكن الآن تحديد طرق مختلفة لحساب ومقارنة الملف
التوقيعات. على سبيل المثال، يمكنك استخدام المجموع الاختباري MD5 لتجاهل التعليقات و
مسافة بيضاء، أو يمكنك أن تطلب فقط أن يكون الهدف أحدث من التبعيات
(الطريقة التي يستخدمها التقليديون).
· يتم إعادة بناء ملفات Makefiles فقط إذا كانت أقدم من تبعياتها؛ مختلف
يتم استخدام طريقة التوقيع في هذه الحالة الخاصة.
· يتم الآن دعم الإصدارات المتوازية، على الرغم من أن هذه لا تزال ميزة تجريبية. يرى
الخيار "-j".
· أصبح من الممكن الآن كتابة الوظائف الخاصة بك. انظر البيان "الفرعي" و
makepp_extending للحصول على التفاصيل.
· أسماء الملفات التي تحتوي على أحرف مثل النقطتين أو المسافة مدعومة الآن بعلامة اقتباس جديدة
بناء الجملة.
· تم تقديم أسماء مترادفة وأقل غموضًا للمتغيرات التلقائية
تشجيع المزيد من ملفات makefiles القابلة للقراءة.
· يتذكر Makepp الآن بنية الجهاز الذي بنيت عليه، ويعيد بناءه إذا كان
الهندسة المعمارية مختلفة.
· يمكن الآن أن تكون الدلائل أهدافًا أو تبعيات. تقييد السابقة أن جميع
يجب أن تكون الدلائل موجودة قبل رفع بدء الإنشاء.
· يقوم Makepp الآن بكتابة ملف سجل يسمى ".makepp_log" يشرح فيه سبب إعادة بنائه
كل شئ. وهذا مفيد للغاية لتصحيح الأخطاء.
· الخيار المعتاد "-k" لمواصلة البناء حتى عند حدوث خطأ هو الآن
أيد.
· تم إعادة تنظيم الوثائق وتوسيع نطاقها.
هناك أيضًا (للأسف) بعض حالات عدم التوافق مع الإصدارات السابقة:
· تم تغيير تنسيق الملف الخاص بتخزين المعلومات حول الإصدار الأخير. هكذا يصنع
سوف تصر على إعادة بناء كل شيء في المرة الأولى التي تقوم فيها بتشغيل الإصدار الجديد.
· لم يعد Load_makefile يدعم الأهداف أو الإعدادات المتغيرة. وهو يدعم الآن
تحميل قائمة ملفات makefiles بدلاً من ملف واحد فقط، لذلك أصبح المفتاح "-F" الآن
غير ضرورية (ولم تعد موثقة).
· جعل العودية الآن يتجاهل الإعدادات المتغيرة في سطر الأوامر. هذا مهم
لتحميل ملفات makefiles بطريقة متسقة.
· لم يعد "$(INFERRED_OBJS)" مدعومًا (لأنه لم يكن واجهة مصممة جيدًا
على أي حال). استخدم الوظيفة الأحدث "$(infer_objects)" بدلاً من ذلك.
· $_ لم يعد مدعوما. استخدم "$(foreach)" بدلاً من ذلك.
· عدد قليل من خيارات GNU التي نادرًا ما تستخدم مثل "-s" و"-n" و"-q" لم تعد موجودة.
مدعوم بسبب تغييرات البنية الداخلية. من المحتمل أن يتم دعم "-n" مرة أخرى
في الإصدارات المستقبلية.
· لم يعد يتم توفير صفحة الدليل نظرًا لأن الوثائق لم تعد مكتوبة في ملف
تنسيق جراب بيرل. استخدم وثائق HTML بدلاً من ذلك.
· لم يعد الهدف النظيف التلقائي مدعومًا. أفضل طريقة للقيام بذلك هي مع
"$(only_targets)".
استخدم makepp_release_notes عبر الإنترنت باستخدام خدمات onworks.net