نوشته‌های ترمینالی
2.66K subscribers
425 photos
12 videos
32 files
2.25K links
Download Telegram
دستگاه Duff:
تکنیکی برای راحت تر کردن loop unroll وقتی که تعداد چرخش به تعداد unfold کردن بخش پذیر نیست.

کد اولیه:
send(to, from, count)
register short *to, *from;
register count;
{
do { /* count > 0 assumed */
*to = *from++;
} while (--count > 0);
}



کد unfold شده معمولی:

send(to, from, count)
register short *to, *from;
register count;
{
register n = count / 8;
do {
*to = *from++;
*to = *from++;
*to = *from++;
*to = *from++;
*to = *from++;
*to = *from++;
*to = *from++;
*to = *from++;
} while (--n > 0);
}


کد Duff machine (که هر تعداد n رو ساپورت می‌کنه)
send(to, from, count)
register short *to, *from;
register count;
{
register n = (count + 7) / 8;
switch (count % 8) {
case 0: do { *to = *from++;
case 7: *to = *from++;
case 6: *to = *from++;
case 5: *to = *from++;
case 4: *to = *from++;
case 3: *to = *from++;
case 2: *to = *from++;
case 1: *to = *from++;
} while (--n > 0);
}
}



https://en.wikipedia.org/wiki/Duff%27s_device
این دنیا هی عجیب تر میشه.
یه زبان بوده به اسم Go! قبل از go که مال گوگله.
طرف اسم کتاب اموزشیشم گذاشته let's go
https://www.lulu.com/content/paperback-book/lets-go/641689

حالا گوگل میاد و زبانش رو به اسم go میده (بدون !)

اینم ایشوی خالق Go! روی go که جزو غمگین‌ترین ایشوهایی بود که دیده بودم.

https://github.com/golang/go/issues/9


حالا این وسط کاربرا میگفتن به گوگل که اسم زبانش رو بذاره issue9 (سر اینکه شماره این ایشو، ۹ بوده)

آخرم گوگل کاری نکرد! بعد ۲ سال و ۱۲۰۰ تا دیالوگ توی issue، اون ایشو رو بست و تگ unfortunate زدن بهش.

به جز خود issue می‌تونید اینجا هم یه سری چیز در مورد داستان بخونید
https://news.ycombinator.com/item?id=935674
اره برای منم pretty clear بود. :))
Forwarded from memealloc
Dealing with open source issues be like...

@memealloc
ساپورت کرنل لینوکس از binaryها با فرمت غیر طبیعی با binfmt_misc

مثلا .class جاوا رو می‌تونین با
./MyClass.class
اجرا کنید!
https://www.kernel.org/doc/html/latest/admin-guide/binfmt-misc.html
کرنل لینوکس و توضیحات/راه‌حل ها برای باگ‌های سخت افزاری مثل spectre
https://www.kernel.org/doc/html/latest/admin-guide/hw-vuln/index.html
چگونه فایل را باز کنیم و بخوانیم؟ از راه سخت

تو این مطلب در مورد زبون های مختلف و سیستم کال‌های کرنل و ابزار strace و ... بیشتر یاد می‌گیریم و بسیار توصیه میشه.
https://fasterthanli.me/series/reading-files-the-hard-way/part-1

خیلی مطلب عمیقیه. البته توی درس سیستم عامل تا حدی پوشش داده میشه. باز توصیه می‌کنم بخونیدش.
3
چرا cpp بلوک فاینالی نداره و کلی سوال و جواب جالب دیگه از سازنده زبان
https://www.stroustrup.com/bs_faq2.html#finally
برای دیدن فایلهای man به صورت رنگ بندی شده میتوانید از برنامه bat استفاده کنید. برای اینکار بعد از نصب بسته bat خط زیر را به فایل تنظیمات شل پیش فرض خود (bashrc و غیره) اضافه کنید:

export MANPAGER="sh -c 'col -bx | bat -l man -p'"
چگونه سوال خوب بپرسیم

متن کامل:
https://jvns.ca/blog/good-questions/