Pegjs: إضافة دعم للموزعين التزايدي

تم إنشاؤها على ٧ يونيو ٢٠١٧  ·  33تعليقات  ·  مصدر: pegjs/pegjs

أقوم بإنشاء محلل XML متدفق ولدي وقت عصيب في الحصول على معلومات الموقع بسبب طبيعة المحلل اللغوي.

هذا ما فعلته لإنجاحه ،

لقد أضفت القسمين التاليين إلى أداة التهيئة الخاصة بي

 peg$posDetailsCache = options.peg$posDetailsCache;
 function peg$computeLocation(startPos, endPos) {
  var startPosDetails = peg$computePosDetails(startPos),
      endPosDetails   = peg$computePosDetails(endPos);
      return {
        start: {
            offset: options.offset + startPos,
            line:   startPosDetails.line,
            column: startPosDetails.column
        },
    end: {
            offset: options.offset + endPos,
        line:   endPosDetails.line,
        column: endPosDetails.column
    }
  };
}

ثم بعد كل تحليل (الذي يستهلك عنصرًا واحدًا فقط) خارج قواعد pegjs ، أقوم بتحديث options.offset مع إزاحة النهاية و options.peg $ posDetailsCache مع كائن مثل ذلك [{line: 4، col: 5}]

سيكون من الجيد إذا كان المحلل اللغوي يدعم التمرير في إزاحة البداية ورقم سطر البداية والعمود ، لدعم التحليل المتزايد بشكل أفضل.

ذات صلة: # 281 السماح لخيار لتحديد بداية الإزاحة

feature task

ال 33 كومينتر

أفترض أنك تريد دعم التحليل من فهرس بخلاف 0 ، أليس كذلك؟

لا في الواقع ، فقط دعم لتعديل الموقع الذي تم الإبلاغ عنه في كائن location ().

المحلل اللغوي الذي أكتبه ، يوزع قطعة من البيانات في وقت واحد (أي تدفقات العقدة) ويوزع قدر الإمكان.

لذلك بالنظر إلى الوثيقة التالية

<الجذر>
<child> نص </ Child>
</root>

وافترض أنه يأتي في جزأين

1:
<الجذر>
<طفل> ر

2:
xt </child>
</root>

خلال التحليل الأول فإنه سيحلل

<الجذر>
و
<طفل>
وسوف تتخلص من "te"

لكن التحليل التالي سوف يحلل
"نص"
</ طفل>
</root>

أثناء التحليل الثاني ، أريده أن يعكس الموقع في المستند الأصلي وليس الجزء الذي تم تقديمه فيه.

آسف ، فقط أحاول فهم ما تريده هنا 😄

تريد أساسًا أن تعكس بيانات الموقع ما يتم تمريره عبر الخيارات بدلاً من مؤشر البداية الذي تستخدمه وظائف المحلل اللغوي الداخلي؟ ألا يؤدي هذا إلى إرجاع بيانات موقع غير صحيحة لما تم تحليله في التحليل الأول (أي "te" من "نص")؟

نظرًا لأن مجموعات البيانات الموزعة الخاصة بك في وقت واحد ، ألن يكون من الأفضل إرجاع النطاق فقط:

function range() {

    return [ peg$savedPos, peg$currPos ];
    /* or */
    //return { start: peg$savedPos, end: peg$currPos };

}

لا يستطيع المحلل اللغوي مطلقًا الوصول إلى المستند بأكمله مرة واحدة ، فقط جزء واحد في كل مرة ، نظرًا لأنه لا يمكنه الوصول إلى المستند بأكمله ، فإن وظيفة الموقع () كما هي لا تعطي معلومات ذات صلة.

في المثال السابق ، ستحتوي القطعة الأولى على معلومات الموقع الصحيحة ، وستكون القطعة الثانية غير صحيحة تمامًا. ستتم إضافة السلسلة "te" إلى الجزء الثاني وسيتم إعادة التعرف عليها باعتبارها السلسلة الكاملة "text". بدون تغييرات في وظيفة الموقع ، سيتم التعرف على بداية السلسلة "نص" على أنها إزاحة 0 ، السطر 1 ، العمود 1 ، بدلاً من القيم الصحيحة للإزاحة 13 ، السطر 2 العمود 8

قد يكون هذا مفيدًا أيضًا إذا قلت أنك تريد فقط تحليل جزء من المستند.

في المثال السابق ، ستحتوي القطعة الأولى على معلومات الموقع الصحيحة ، وستكون القطعة الثانية غير صحيحة تمامًا. ستتم إضافة السلسلة "te" إلى الجزء الثاني وسيتم إعادة التعرف عليها باعتبارها السلسلة الكاملة "text". بدون تغييرات في وظيفة الموقع ، سيتم التعرف على بداية السلسلة "نص" على أنها إزاحة 0 ، السطر 1 ، العمود 1 ، بدلاً من القيم الصحيحة للإزاحة 13 ، السطر 2 العمود 8

كما سألت أعلاه ، فأنت تريد أساسًا أن تعكس بيانات الموقع ما تم تمريره عبر الخيارات بدلاً من فهرس البداية المستخدم بواسطة وظائف المحلل اللغوي الداخلي ، كما هو موضح أعلاه ، يمكن تحقيقه عن طريق الكتابة فوق _peg $ posDetailsCache_ و _peg $ computeLocation_.

لا يحتفظ المحلل اللغوي الذي تم إنشاؤه بواسطة PEG.js حاليًا بحالته بين جلسات التحليل المختلفة ، لذلك لا توجد طريقة للقيام بما تريده تلقائيًا ، لذا فإن الكتابة فوق _peg $ posDetailsCache_ و _peg $ computeLocation_ هي الطريقة الوحيدة يدويًا.

قد يكون هذا مفيدًا أيضًا إذا قلت أنك تريد فقط تحليل جزء من المستند.

يمكن أن تكون هذه مشكلة مختلفة اعتمادًا على إدخال المصدر المعطى للمحلل اللغوي الذي تم إنشاؤه:

1) إذا كنت تستخدم التدفقات ، فإن الطريقة الحالية التي تستخدمها هي الأفضل
2) إذا كنت تقوم بتحليل مستند كامل ، فإن تعيين قيم _peg $ savePos_ و _peg $ cashPos_ يدويًا قد يؤدي إلى الحيلة ، ولكن لأكون صادقًا لم أجرب هذا مطلقًا ، على الرغم من أنني كنت أفكر فيما إذا كنت ستنفذ هذا كميزة أم لا .

قررت تنفيذ هذا قبل الإصدار 1 ، ولكنك ستحتاج إلى التفكير في اتجاه محدد لاتخاذه بناءً على طلب OP ومنشوري أعلاه.

هذا في الأساس غير ممكن. للأسف ، يبحث المشرف الحالي عن وعود مستحيلة بدلاً من إصلاح الأشياء السهلة التي يحتاجها المستخدمون بالفعل.

الطريقة التي يعمل بها محلل packrat هي المكافئ التحليلي لـ A * - يخزن محاولات المطابقة القديمة مؤقتًا. السبب في قدرتها على المطابقة بشكل متحرر هو أنها تحتوي على كل السيقان الأمامية ، والتي كانت تبدو قبل التخزين المؤقت غير واقعية الأداء. لهذا السبب أيضًا إنها سريعة جدًا.

تكمن المشكلة في أنه من أجل إجراء تحليل تدريجي ، فإنك تحتاج إما إلى نسخة من ذاكرة التخزين المؤقت القديمة ، والتي يبلغ حجمها عادةً آلافًا إلى مئات الآلاف من المرات حجم المستند ، أو للاحتفاظ بالجزء الأمامي من المستند القديم و فقط أعد تحليلها.

يجب إغلاق هذه القضية لأنها غير ممكنة. هذه ليست طريقة عمل Packrats. (أيضًا ، فهي سريعة بما يكفي بحيث لا يمكنني التفكير في سبب أن هذا سيكون ضروريًا أو مرغوبًا فيه. يمكنني عادةً تحليل مستندات بحجم 10 ميغا تقريبًا في إطار شاشة واحد.)

من المرجح أن إعادة التحليل من الصفر أسرع من تحميل السيقان القديمة من القرص

ما عليك سوى تتبع موقعك في التحليل الأول وإعادة البحث هناك في الثانية ، باستخدام XPath الفريد. لا يوجد حذف في XML. من المؤكد أن موقع البث الذي كنت فيه لا يزال موجودًا.

هناك شيء يسمى محلل حزم تزايدية ، وهناك تطبيقات جافا سكريبت متاحة بشكل مفتوح من قبل شعب أوم

ولكن إذا ركزت على التفاصيل الجوهرية ونظرت ، فسوف تدرك أنها مرتبطة ببعضها مثل الهاشماب والمتجه (لأن أحدهما مصفوفة متفرقة والآخر مصفوفة كثيفة ، والأشياء الوحيدة التي يشاركونها حقًا هي الكلمات في العنوان)

يجب إغلاق هذه القضية لأنها غير ممكنة.

لا أعتقد ذلك. نعم ، هناك قواعد نحوية لن يعطي التحليل التدريجي لها شيئًا ، ولكن هناك أيضًا قواعد يمكن إجراؤها من أجلها. تكمن المشكلة في تقسيم هذه الفئات والإبلاغ عنها في مرحلة الترجمة حتى لا يتم إنشاء رمز غير عامل

أنت تعرف هذا البرنامج أفضل مني ، وقد أكون مخطئًا ، وإذا كنت متأكدًا من أنني سأصمت ، لكن

هل تعتقد حقًا أن peg.js يمكن إجراؤه عمليًا للقيام بذلك دون إجراء إصلاحات جادة؟

مثل ، يتطلب نهج الأشخاص ohm نوعًا من الحفظ البطيء ليس في peg على الإطلاق بقدر ما أعرف ، ولا أرى كيفية حشوها (ربما أنا أفتقد القارب ، وهذا يحدث أحيانًا)

هل تعتقد حقًا أنه يمكن جعل peg.js عمليًا للقيام بذلك دون إجراء إصلاحات جادة؟

كانت لدي بعض الأفكار في الماضي ، لكن نظرًا لأن المشروع ميت ، لم أقم بتطبيقها مطلقًا ... إنه مجرد تحد ، لكن في هذه المرحلة ، لست بحاجة إلى هذه الوظيفة ، ولكن للقيام بشيء لا يحتاجه أحد - ممل

هذا المشروع لم يمت. لديها 200000 تنزيل في الأسبوع.

إنه يحتاج فقط إلى مشرف يهتم. أود إحياء هذا والبدء في إصلاح المشاكل. سأنتقل إلى سجل العمل الحالي ، واختيار الكرز ، وإضافة الاختبارات ، والإصدار.

أنا أصلح قواعد الوتد الخاصة بي باستخدام نصوص باش.

لا يوجد سبب يمنع هذا المشروع. إنه أفضل محلل جافا سكريبت هناك.

اني اتفهم. ربما يكون الخيار الأفضل لعمل شوكة وتطويرها حسب متطلباتك

لقد فعلت ذلك قبل ثلاث سنوات.

لا ، لن أقوم بتفكيك مكتبة لأخذها بعيدًا عن المشرفين الحاليين عليها ، وإعادتها إلى الحياة. هذا ليس ما هي الشوكات ، أو كيف تعمل.

هدفي الواضح هو إزالة الفريق الذي قضى ثلاث سنوات في صنع 0.11.0 ثم تخلص منه وقال "سنكتب مكتبة جديدة من الصفر ، ولا يمكنك المساهمة في المكتبة الجديدة أو رؤيتها ، وهذا الآن مشروع هوايتي الشخصية ".

كما أفهمها ، هذا الفريق هو ريو.

هذه مكتبة مهمة للغاية مستخدمة بكثافة من قبل العديد من الحزم على مستوى النظام. حان الوقت لشخص ما لإعادته إلى حالة صحية.

تشعبها لن يحقق هذا الهدف.

هدفي هو تفرع 0.10.0 والبدء في إعادة دمج 0.11.0 في 0.12.0 ، لكن زيادة الاختبار مع تقدمي ، وإطلاق المكتبة فعليًا

هناك ستة مشكلات مختلفة في هذا الريبو تقول "لقد تخليت عن الربط لأنه لم يتم إصداره منذ سنوات" ، أو "لأنه لم يتم إصداره منذ مغادرة ديفيد."

لا أحد يهتم بشوكة بلدي. إذا تفرع عنها ، فلن يتم حفظ أي شيء.

سأحفظ الشيء الحقيقي الآن ، إذا سمح لي ديفيد.

أنا آسف لأنك تريدني أن أترك الشيء الحقيقي يموت ، لكنني لست على استعداد للقيام بذلك. أنا أيضًا لا أعرف لماذا تريد ذلك. PRs الخاصين بك يموتون مع 0.11.0 . سأحتفظ بهم.

على أي حال ، لم أطلب النصيحة. لقد أخبرت ديفيد بالفعل بما أريده ، وما زلت أريده حتى لو كنت تريد مني سحب Ryuu ، والبدء من جديد في ريبو مختلف لا يمكن لأحد رؤيته أو سيهتم به ، واستمر في ترك المستخدمين عالقين.

هدفي ليس إنقاذ نفسي. هدفي هو حفظ المكتبة.

حان الوقت للمطورين الحاليين للسماح لشخص لديه خبرة بالمكتبة بالتدخل وإنشاء عملية تطوير وإصدار صحية وحفظ المكتبة.

لوحظ رأيك في رغبتي.

ما زلت أريد من ديفيد أن يسمح لي بإصلاح ثلاث سنوات من الضرر الذي حدث منذ مغادرته ، من قبل مجموعة قبلت مسؤولية الصيانة ، ثم لم تفعل ذلك في الواقع.

لم يحتفظ المشرف الحالي بالمكتبة أبدًا حرفيًا مرة واحدة ، وكل وعد قدمه لديفيد في عام 2017 للحصول على هذا الريبو كان مخطئًا.

لقد حان الوقت للتخلي عن ذلك في عام 2018

أريد ديفيد أن يسمح لي بإصلاح هذا. الوتد هو أفضل محلل حولها

مطوروها ( أنت ) يقولون "لقد تخلت عن هذا المشروع ، إنه ميت"

لماذا تريدني أيضًا ألا أحفظه وأعمل على مفترقتي الخاصة ، في حين أن جميع المطورين قد تخلوا عن المشروع كمشروع ميت ، فهذا أمر بعيد عني

أنا آسف لأنك تخلت عن peg.js

أما أنا فلا.

سأحتفظ بهم.

أنا فقط تركتهم في شوكة بلدي. لم يمتوا تمامًا ، لا يزال بإمكانك إحياءهم. أنا فقط لست مهتمًا بفعل ذلك.

لا أحد يهتم بشوكة بلدي. إذا تفرع عنها ، فلن يتم حفظ أي شيء.

لقد قمت بتركيب تنفيذ النطاقات لمدة 5 سنوات لجميع متطلبات التنسيق المتغيرة ، وأضفت 3 ميزات جديدة أثناء تطوير العلاقات العامة الأولية (المحددات ، والحدود المتغيرة ، وحدود الوظيفة) ، ولكن لم يراها أي شخص في المجتمع. هذا يشير إلى أنه لا يوجد مجتمع في الواقع. في الواقع ، قيل في الخارج إنني لست مجتمعًا ورأيي لا يهم ، على الرغم من عدم وجود آخرين.

لذلك أعتقد أن "المجتمع" سيكلف تمامًا دون تضحياتك :(

هدفي ليس إنقاذ نفسي. هدفي هو حفظ المكتبة.

شوكة فقط ، IMHO. محزن لكن حقيقي. ربما يعلمك مثال على io.js شيئًا ما.

العمل على مفترقتي الخاصة

لماذا الخصوصية؟ قم بعمل مفترق عام ، افعل أشياء جيدة وسيجدك المجتمع (إن وجد)

لماذا الخصوصية؟ اصنع شوكة عامة

أنا هنا لحفظ المكتبة وليس إنشاء مكتبة جديدة.

من فضلك توقف عن سؤالي عن هذا الآن. لقد كنت واضحًا أن الإجابة هي لا.

.

لقد تم تركيب تنفيذ النطاقات لمدة 5 سنوات

أنا أعرف. إذا أصبحت مشرفًا ، فستدخل النطاقات باستخدام الكود الخاص بك في عام 2020.

تأتي هذه المشاكل من عدم وجود مشرف. التفرع لن يصلحهم ؛ ستجعلهم أسوأ.

.

هذا يشير إلى أنه لا يوجد مجتمع في الواقع.

تستخدم لتكون. يمكن أن يكون هناك مرة أخرى.

لقد بدأت في تقديم التذاكر قبل أقل من 24 ساعة وقد أجريت بالفعل محادثات مع تسعة أشخاص.

توقف عن كونك جبريًا. هذا يمكن إصلاحه بسهولة. كل ما يجب أن يحدث هو أن المفاتيح يجب أن توضع في أيدي مشرف متمرس يركز على الإصدارات.

.

لذلك أعتقد أن "المجتمع" سيكلف تمامًا دون تضحياتك :(

أنا لا أقدم تضحية هنا.

.

لم يره أحد حتى من قبل أي شخص في المجتمع

رأيت ذلك لأول مرة ليلة أمس ، عندما بدأت القراءة من خلال أداة تعقب المشكلة. (سأقرأ كل شيء ، مفتوحًا ومغلقًا.)

رأيت أيضًا # 209.

أنا متعاطف مع كلا الموقفين هنا.

من ناحية أخرى ، هذه ميزة يجب حقًا الدخول إليها ، والتي يريدها الكثير من الأشخاص ، والتي تدعمها المكتبات الأخرى ، وأن الأدوات الأساسية جاهزة للدعم.

من ناحية أخرى ، لم تنته المحادثة فعليًا.

إذا سمح لي أن أكون مشرفًا ، فإليك ما سأفعله:

  1. سأقوم بعمل تذكرة جديدة وأضع علامة على كل شخص اعتقدت أنه شارك في الماضي. أود أيضًا أن أطلب منهم وضع علامة على أي شخص يعرفون أنه فاتني.
  2. أود أن أقول "مرحبًا ، هل يمكننا التحدث عن هذا واتخاذ قرار؟ أنا أحب رمز Mingun بشكل عام ، وأريد معرفة ما إذا كان بإمكاننا دمجها أو تعديلها قليلاً لجعلها قابلة للدمج."
  3. إذا لم تكن المناقشة موجزة ومختصرة ، لنقل ثلاثة أو أربعة أيام ، فسأقول "حسنًا ، هذه المكتبة تحاول التوجه نحو تقدم جديد ، لذلك أود تعيين مؤقت لمدة أسبوع واحد من اليوم ،" وأعيد- ضع علامة على الجميع
  4. سيكون لدي أيضًا معايير عالية جدًا للاختبار
  5. ثم ، في اللغة العامية ، حان وقت الدمج. هذه ميزة جيدة ، ومع المزيد من الاختبارات ، فهي أيضًا تطبيق جيد.

    1. أرغب في أن يتمكن المجتمع من مناقشة الشخصيات الأفضل بالنسبة إلى السجيل ، لكن خمس سنوات هي هراء ، وقد حان الوقت للضغط على الزناد

.

هدفي

IMHO.

مرحبًا ، لقد ضغطت على هذا الرأي أربع مرات الآن ، وقلت لا في كل مرة.

توقف عن إخباري برأيك في هدفي. هدفي لا يتغير.

.

لماذا الخصوصية؟

لأنني فعلت ذلك قبل ثلاث سنوات ، عندما كانت هذه مكتبة لا تزال صحية ، والتغييرات التي كنت أجريها كانت أشياء قال dmajda لا.

لذلك اعتقدت أنني سأصلحها محليًا ، وعندما قام المجتمع بإصلاحها بشكل صحيح ، كنت أقوم بتحويل قواعد اللغة الخاصة بي.

بعد ثلاث سنوات ، تخلى المطورون عن هذا المشروع باعتباره ميتًا ، لكنهم يحاولون أيضًا بذل قصارى جهدهم لإجباري على عدم إصلاح ذلك حتى بعد أن أخبرتهم بوضوح بالتوقف ، وهو أمر محير وغير مناسب .

إذا قدمت أي تعليقات أخرى حول حاجتي لعمل مفترق ، فسأتوقف ببساطة عن الرد. ليس لدي أي مصلحة في آملك في الحفاظ على peg.js ميتًا.

الجواب هو لا. إذا كنت تريد peg 0.10.0 ، فقم بتثبيت الحزمة الخاصة بك. يجب أن يحدث peg 0.12.0 ، وأنا لا أفهم حقًا أو أهتم لماذا تريد أن تقف في طريق ذلك.

كل شيء قمت بدمجه في 0.11.0 فقده الآن. قال Ryuu أنه يتم التخلص من كل شيء. إذا كنت تعتقد أنك تحتفظ بعملك المدمج ، افهم أن الصيانة الخاصة بي ستنجز ذلك ، وقد صرح Ryuu صراحة أنه بدأ من جديد من قاعدة بيانات مخصصة من البداية.

بدأ Ryuu أيضًا تشغيل ثلاثة برامج التحويل البرمجي لـ PEG منذ أن تولى الصيانة

ماتت هذه المكتبة فقط بسبب

  1. لن يقوم المشرف الجديد بصيانة و
  2. المطورون الجدد ليسوا غاضبين

مرحبًا ، أنا أحد المطورين القدامى ، وأنا غاضب

إذا كنت لا ترغب في المساعدة في حفظ هذه المكتبة ، على الأقل توقف عن إخباري بعدم القيام بذلك .

هذه المكتبة تحتاج إلى صيانة. إنها جزء مهم من البنية التحتية. الشوكة ليست صيانة. الشوكة لا تحل أي مشكلة.

.

ربما يعلمك مثال على io.js شيئًا ما.

فشل io.js ، على الرغم من شراء منشئ اللغة الأصلية وجميع المساهمين الخمسة الكبار فيها ، وعندما تجاهلوها ، كان السبب الوحيد الذي جعلهم يتظاهرون أنها ليست خسارة كاملة هو قدرتهم على ذلك لإعادة توظيف اثنين من هؤلاء الأشخاص الخمسة

نعم ، يعلمني io.js شيئًا ما. وهي ، "الفروع لا تعمل ، ولم يتم إصلاح مشاكل أي شخص حتى يتم تحديث العقدة لاحقًا."

أنا لا أحاول إقناعك. إذا قمت بذلك ، فسأكون سعيدًا فقط وقد أكمل بعض تجاربي وأحضرها إلى حالة الدمج. مجرد النظر في الماضي ، بطريقة ما لا أصدق.

الانتقادات مبالغ فيها بشدة. إذا كان الأمر كما قلت ، لكان شخص ما قد صنع شوكة بالفعل وطورها. أو تم تطوير هذه المكتبة بدلاً من تجميدها في التطوير لمدة 5 سنوات.

إذا قمت بذلك ، فسأكون سعيدًا فقط وقد أكمل بعض تجاربي وأحضرها إلى حالة الدمج.

سيكون ذلك رائعا. يبدو أن العديد من العلاقات العامة الخاصة بك قوية حقًا بالنسبة لي ، ومع بعض الاختبارات الإضافية ، يبدو لي أنه يجب دمجها

.

الانتقادات مبالغ فيها بشدة. إذا كان الأمر كما قلت ، لكان شخص ما قد صنع شوكة بالفعل وطورها.

Screen Shot 2020-02-03 at 10 28 38 AM

قام المشرف الحالي وحده بعمل ثلاث أو أربع شوكات مميزة (pegx ، epeg ، meg ؛ يمكن القول إن pegjs-dev ، لأنه فعل ذلك بمفرده قبل أن يكون مشرفًا) بالإضافة إلى شوكة openpeg. في هذه المرحلة ، أود أن أزعم أن 0.11.0 هو أيضًا مفترق ، لأنه أعلن أنه لم يتم دمجها أبدًا.

في آخر 48 ساعة ، تحدثت إلى حوالي عشرة أشخاص هنا. نصفهم لديهم شوك.

يحتوي polkovnikov-ph على ربط ميتا كامل يضع الأوتاد في أوتاد أخرى.

لدي شوكتان بنفسي ، أحدهما لا يظهر في قائمة التفرع - الشوكة المتناقضة التي احتفظت بها لسنوات ، والأخرى الجديدة التي صنعتها في اليوم الآخر ، قبل أن أعرف أن 0.11.0 قد مات ، في الجهد المبذول لتنفيذ إصلاحات للتكثيف # 638 ، و es6 للوحدات النمطية # 627 ، والوحدات المطبوعة # 597.

اثنان من أصدقائي الذين لم يعملوا في هذه المشكلة ، على حد علمي ، لديهم شوكات

استمر الناس في العمل على 0.11.0 لمدة ثلاث سنوات على الرغم من عدم الإفراج عن أحد يخبرني بكل ما أحتاج إلى معرفته حول مدى أهمية ذلك.

.

أو تم تطوير هذه المكتبة بدلاً من تجميدها في التطوير لمدة 5 سنوات.

تم تطوير هذه المكتبة في الواقع بشكل نشط حتى مايو 2017 ، عندما حدث تغيير المشرف.

كان ذلك اليوم هو اليوم الذي تجمدت فيه المكتبة.

لهذا السبب أعتقد أن تغيير المشرف الجديد يمكنه إلغاء تجميده.

Screen Shot 2020-02-03 at 10 28 38 AM

forks
هذه صورة أكثر صلة.

تم تطوير هذه المكتبة في الواقع بنشاط حتى مايو 2017

أود أن أقول أنه حتى ذلك الحين كان هناك خلط للكود ، لكن لم يتم تنفيذ أي ميزات جديدة. ربما تم إصلاح بعض الأخطاء ، وكان يجب محاربتها. تم تجميد التطوير الفعلي في وقت أبكر بكثير من مغادرة dmajda

أتعلم ماذا أرى هناك؟

أرى مكتبة لم تتم صيانتها لمدة ثلاث سنوات ولا يزال بها ستة مفترقات نشطة خلال الشهرين الماضيين.

على أي حال ، انظر ، ارسم الخط أينما تريد على الرمال. ربما هناك مكان أفضل لرسمها ؛ لم أذهب في التنقيب عن الآثار.

النقطة المهمة هي أنه لا يزال خطًا في الرمال. دعنا فقط نستخدم أقدامنا للتخلص من الرمال الآن.

0.12.0 ممكن تمامًا إذا تمكنا من جعل الناس يقولون "مهلاً ، دعنا ندع ذلك يحدث."

هذا هو أفضل محلل هناك بعد نصف عقد من عدم النشاط.

هل تدرك كم سيكون رائعًا إذا أصبح مشروعًا مفتوح المصدر يمكن الوصول إليه؟

لنقم بعمل 0.12.0 ثم نبدأ في اختيار قطع جديرة بالثقة 0.11.0 . بعد ذلك ، يمكننا التنظيف والبدء في إصلاح الباقي.

الكثير من هذه صعبة للغاية ، بالتأكيد

لكن الكثير منهم ليسوا كذلك. أحصل على دعم وحدة ES6 من برنامج نصي bash من سطر واحد. هذا سخيف ويمكن إصلاحه بسهولة

لا يجب أن تكون الحركة إلى الأمام مثالية ؛ يجب أن تكون غير تافهة

ساعدني في الحصول على ديفيد على متن الطائرة؟ لو سمحت

مثل بجدية.

تخيل ما سيحدث إذا ظهر 0.12.0 ، وبخلاف إصلاح README وبعض الأشياء التافهة الأخرى ، فقد كان 0.10.0 فقط.

ثم ماذا لو في الأسبوع التالي ، خرج دعم الوحدة es

وماذا لو حصلت صفحة الويب في الأسبوع التالي على تحديث رئيسي

وماذا لو أصدرنا في الأسبوع التالي دعمًا بسيطًا للنص المطبوع

هذه كل الأشياء التي قمت بها بالفعل. هذه كلها وظائف لمدة ساعتين. هذا إيقاع مريح وسهل

لكنها مختلفة تمامًا عما اعتاد المستخدمون عليه لدرجة أنه من الواضح أن شيئًا ما قد تغير

أنا واثق تمامًا من أن هذه المكتبة بها مجتمع المستخدمين وقاعدة عيوب للوصول إلى إصدارات شبه شهرية ذات مغزى ، وأنا واثق تمامًا من أنني أستطيع تحقيق ذلك

لدي شوكة خاصة بي أيضًا ، ملف واحد ، تنفيذ تبعية صفري استنادًا إلى الورقة الأكاديمية الأصلية. لقد حاولت في الأصل استخدام قاعدة بيانات 0.10.0 ، ولكن حتى ذلك كان منتفخًا جدًا بالنسبة لذوقي.

شعوري هو أن أي شخص يعتبر مهمته بالغة الأهمية قد تفرع بالفعل لأن التعامل مع الدراما "مفتوحة المصدر" أكثر استنزافًا من قضاء عطلات نهاية الأسبوع في التعلم وتنفيذ حل لاحتياجات الفرد الخاصة. على محمل الجد ، الورقة سهلة القراءة وفي أقل من 100 ساعة تمكنت من الحصول على محلل أسرع 4 مرات وأصغر 100 مرة.

هناك دائمًا المفاضلة الأساسية بين الرغبة في استخدام حل موجود والحصول على تطابق تام مع مشكلتك. تقع مجتمعات محلل في واد صعب حيث بمجرد أن يتعلم شخص ما ما يكفي لاستخدام أداة التحليل بشكل فعال ، يكون مجرد قدر صغير من العمل الإضافي لكتابة المحلل اللغوي بالكامل.

أكبر تكلفة فرصة للمصادر المفتوحة هي تكلفة روحية.

ناماستي: نصلي:

ملاحظة: لا تفهموني بشكل خاطئ ، أنا أستمتع حقًا بهذه المواضيع ، إنها وسيلة ترفيه رائعة! لا أتوقع قيمة إنتاجية كبيرة من مجتمعات GH أو JS هذه الأيام.

إنها وجهة نظر مفهومة.

بالنظر إلى الوضع الحالي للأشياء ، آمل أن أجعل الناس يقولون "حسنًا ، دع المحاولة تحدث ودعونا نرى"

StoneCypher ، أنا أحب طاقتك التي يبدو أنك تريد أن تضعها في هذا lib وأنا أتفق مع أفكارك العامة (وكنت سأفعل بالفعل بعد المرة الأولى التي كتبتها فيها - لا داعي لقول نفس الشيء خمس مرات: ابتسامة :) . أنا أيضًا لا أحب الشوكة كثيرًا ، لكن هذا يعني أننا نعتمد على شخص واحد بالضبط - فوتاجوزا. ماذا لو لم يرد؟ ثم نحن عالقون ، ولا يمكننا فعل أي شيء حيال ذلك. قال دمجدة بالفعل إنه ليس لديه حقوق بعد الآن ، لذلك لا شيء يمكنه القيام به أيضًا.

هذا هو الشيء الذي لا أتفق معه: "في مستودع مختلف لا يمكن لأحد رؤيته أو يهتم به أبدًا" لأنه يحتوي على حل بسيط: افتح عددًا جديدًا في جميع الأحرف الكبيرة مع ذكر شيء مثل "المشروع ميت - تابع هنا" ثم اكتب كل المعلومات اللازمة هناك. سأكون أول شخص يغير مشروعي ، وأنا متأكد من أن كثيرين آخرين سيفعلون ذلك. ولن يكون هذا هو المشروع الأول الذي يحدث له هذا ، فقد اتبعت بالفعل بعض المشاريع الأخرى على هذا الطريق. لا مشكلة كبيرة ، فقط قم بالتبديل. كمستخدم ، لا يهمني حقًا من أين أحصل على الكود الخاص بي طالما أنه مكان يهتم به الأشخاص.

لذلك سأمنح futagoza أسبوعين إضافيين لمعرفة ما إذا كان سيستجيب وما هو رأيه. إذا لم تكن هناك علامة على الحياة ولا استجابة ، فابدأ وأعد إنشاء هذا المشروع بشكل صحيح.

في الواقع ، لقد رأيت للتو أن @ michel-kraemer هو أيضًا عضو في pegjs ، لذلك ربما يكون هناك المزيد من الأمل: ابتسامة عريضة:

@ michael-brade - فوركس لا تعمل. سأكون مباشرًا جدًا: لا أريدك أن تخبرني أن أفعل شيئًا مختلفًا مرة أخرى

هناك بالفعل أربعة مفترقات تحاول حفظ هذا الريبو. أنت لا تعرف ما هم. أنت لا تبحث عنها عندما تقول "أصلح الأمر بهذه الطريقة".

لا يهم. الشوكة لن تصلح أي شيء. لا يتلقى مستهلكو المصب الحاليون إصلاحات الأخطاء في مفترق طرق. تضيع العلاقات العامة في مفترق طرق. فقدت القضايا في مفترق طرق.

الجواب هو لا.

يجب أن يتوقف futagoza عن حظر الوتد على الفور.

لن تموت هذه المكتبة لأن شخصًا ما وعد بأن يكون مشرفًا ، ورفض الصيانة ، وقرر الاحتفاظ بها لنفسه.

من الناحية الأخلاقية ، لا يحق لـ futagoza التعهد بأن يكون مشرفًا ، ثم يدمر المكتبة.

هناك بالفعل أربعة مفترقات تحاول حفظ هذا الريبو .

كيف تعرف أنهم؟ هل لديك اي روابط؟ النوع الوحيد من الشوكة النشطة التي أراها هو meisl / pegjs ، ولا يوجد أي من الأنواع الأخرى نشطة على الإطلاق. وحتى مايسل فورك لا يبدو أنها محاولة لحفظ هذا الريبو.

أنت لا تبحث عنها عندما تقول "أصلح الأمر بهذه الطريقة".

ربما لم تقرأ اقتراحي: إذا كانت تلك الشوكات تنوي حفظ هذا الريبو ، فقد فعلوا ذلك بشكل خاطئ لأنهم لم يخلقوا مشكلة واضحة تخبر المجتمع أين يذهبون. أنا أتفق مع كل ما تقوله حتى يتم إنشاء هذه العلامة. ثم تتغير القواعد.

يجب أن يتوقف futagoza عن حظر الوتد على الفور.

حق. وكيف تنوي فرض ذلك؟

كيف تعرف أنهم؟

لأنني ذهبت للبحث عن إصلاحات الأخطاء منذ سنوات.

.

هل لديك اي روابط؟

نعم. ومع ذلك ، إذا نجحت الشوكات ، فلن أضطر إلى إعطائها ؛ لديك منهم أيضا. هذا هو توضيحي لسبب عدم التفكير في استخدام شوكة ، أو الترفيه عن أي وقت ضائع إضافي في التلاعب بالمشرف الوهمي

.

إذا كانت تلك الفروع تنوي حفظ هذا الريبو ، فقد فعلوا ذلك بشكل خاطئ لأنهم لم يخلقوا مشكلة واضحة تخبر المجتمع أين يذهبون.

في الواقع ، لقد فعلوا. تم حذفه.

من ناحية ، أنت على حق: لقد فعلوا ذلك بشكل خاطئ ، من خلال إنشاء مفترق طرق.

يحصل معظم الأشخاص على مكتبات من npm ، حيث لا تحتوي هذه المكتبة حتى على ملف تمهيدي. لن يروا القضية أبدًا.

أكون واضحًا بشكل جذري عندما أقول "لا أريد إجراء أي مناقشات أخرى حول مفترق الطرق".

سيتم تجاهل محاولات أخرى لمناقشة هذا.

.

أنا أتفق مع كل ما تقوله حتى يتم إنشاء هذه العلامة.

لقد كان عدة مرات.

إذا كانت تلك الفروع تنوي حفظ هذا الريبو ، فقد فعلوا ذلك بشكل خاطئ لأنهم لم يخلقوا مشكلة واضحة تخبر المجتمع أين يذهبون.

في الواقع ، لقد فعلوا. تم حذفه.

حسنًا ، ليس لدي طريقة للتحقق من ذلك. لكن بافتراض أنك على حق ، يجب أن يكون واضحًا لك أن الشخص الذي حذف هذه المشكلة ليس لديه نية للتخلي عن السلطة على هذا الريبو. في ظل هذه الظروف ، كيف تعتقد أنه يمكنك تغيير أي شيء بدون شوكة؟

كل ما يمكنني قوله هو أتمنى لك التوفيق. وسوف أتابع إلى أي مكان يحدث فيه تطور نشط.

كيف تعتقد أنه يمكنك تغيير أي شيء بدون شوكة؟

لأنه في النهاية سيعود الفوتاجوزا وسيتعين عليه اتخاذ هذا القرار مرة أخرى.

كان ذلك في عام 2018. إنه عام 2020. لقد بدأ منذ ذلك الحين أربعة موزعي PEG متميزين تمامًا ، واحد بلغة أساسية مختلفة ، بالإضافة إلى لغتي برمجة.

في ذلك الوقت ، لم يتخلى عن ثلاث سنوات من العمل باعتباره غير جدير بالثقة. الآن لديه.

في ذلك الوقت ، كان قد قضى ستة أشهر فقط في ذلك. هذا لا يزال جدول زمني "حسنًا أعطني فرصة" ، بالكاد. الآن ثلاث سنوات.

في ذلك الوقت ، كان لا يزال بإمكانه القول إنه ملتزم بهذا ، وأن هذا كان محور اهتمامه.

لقد تغيرت الأمور.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات