"Just run the goddamn code" - P.3
——————————————————
1. Weaver
با زبان Scala نوشته شده و برای برنامههای همروند Scala ساخته شده. فقط رندوم تستینگ داره و مدل چکینگ نمیکنه. distributed سیستم رو هم ساپورت نمیکنه. روی مموری مدلهای مختلف هم ناتوانه
2. Loom
با rust نوشته شده و طبیعتا برای برنامههای rust هم کار میکنه. اینم تستینگداره ولی یکمی بهنیهتره الگوریتمش ولی بازم مدل چکر نیست ( اگر چه که یک اثبات نصفه و نیمهی completeness داره). distributed سیستم رو ساپورت نمیکنه. مموری مدلی که ساپورت میکنه C11 هستش و باقی رو ساپورت نمیکنه
3. Shuttle
اینم عین قبلیه فقط استراتژی تستش بیخیال اون completeness نصفه و نیمه شده و تمرکز بیشترش روی تسته. راجع به مموری مدلهایی هم که ساپورت میکنه اطلاعی ندارم :)
4. Jepsen
این با زبان Closure نوشته شده و برای برنامههای Distributed ای هست که با این زبان نوشته میشن. طبیعتا برنامههای concurrent رو ساپورت نمیکنه. اینم فقط رندوم تستینگ داره. اینم بگم که نمیدونم چه communication model ها رو ساپورت میکنه :) ولی کلا عشق منه و چیزی رو در من مدتهاست که روشن کرده!
5. Nidhugg
این با زبان C و برای برنامههای concurrent ای که با Pthread نوشته میشن ساخته شده. برخلاف قبلیا این مدل چکره و مموری مدلهای مختلفی رو ساپورت میکنه مثل SC, TSO, PSO, POWER and ARM. سیستمهای توزیعی رو ساپورت نمیکنه و رندوم تستینگ هم نداره.
6. Concuerror
این با زبان Erlang نوشته شده و برای همون برنامهها هم کار میکنه. اینم مدل چکره مثل قبلی ولی مموری مدلهای مختلف رو ساپورت نمیکنه. distributed systems رو هم همینطور. اینم خیلی عشقه و خیلی دوستش دارم.
7. TraceForge
اینو استاد راهنمای من ساخته و همکاراش توی aws. با rust نوشتن و برای برنامههای distributed ای که با این زبان نوشته میشن توسعه یافته. برنامههای concurrent رو ساپورت نمیکنه. مدل چکره و تستینگ نداره. communication model های مختلفی رو ساپورت میکنه. احتمالا به زودی روی این کار کنم و ساپورت concurrent programs و مدل چکینگ و تستینگ رو هم بهش اضافه کنم
8. GenMC
این یه مدل چکره معروفه که با C و Cpp نوشته شده و هدفش وریفای کردن برنامههای مالتیترد زبان C هستنش. رندوم تستینگ نداره و distributed سیستمها رو هم ساپورت نمیکنه. ولی تمام مموری مدلها رو تفریبا ساپورت میکنه
9. Lincheck
این با Kotlin نوشته شده که برای رندوم تست برنامههای همروند کاتلین عه. میگن مدل چکر هم دارن ولی زر میزنن. مموری مدل هم ندارن کلا. distributed system هم ساپورت نمیکنن. کلا چیز چرتیه به نظرم :) ولی سر و صدا زیاد کرده
10. Coyote
این با C-sharp نوشته شده و برای تست برنامههای همروند نوشته شده با همین زبان به کار میره. مموری مدل خاصی رو ساپورت نمیکنه و مدل چکینگ هم نداره. distributed systems رو هم ساپورت نمیکنه.
11. Fray
اینم با جاوا نوشته شده و برای تست برنامههای همروند جاواست. مدل چکر نداره. distributed سیستمها رو ساپورت نمیکنه. مموری مدل خاصی رو هم دنبال نمی کنه.
12. JMC
این با Java نوشته شده و کار این حقیر و دوستان بنده هستش. این ابزار هم مدل چکینگ میکنه هم رندوم تستینگ. هم concurrent رو ساپورت میکنه هم distributed system ها رو. مموری مدل هم SC رو ساپورت میکنه و communication model هم async. توسعه دادن استراتژی براش کار بسیار راحتیه. الگوریتم مدل چکینگ این ابزار data non-determinism رو هم ساپورت میکنه که هیچکدوم از مدلچکرای بالایی ساپورت نمیکنن. نسخهی کامل این ابزار توی برنچ old-main هستش و برنچ main ورژن refactor شدهی پروژه رو داره که هنوز کامل نشده.
Post #3940
2.15K