#zig #comptime
خب خب خب
من تا چند وقت پیش فک میکردم نمیشه مثلا یه چیز ArrayList طوری توی کامپتایم زیگ درست کرد
ولی امشب خیلی تصادفی به این بنده خدا برخوردم :
https://github.com/ziglibs/computils/blob/master/src/comptime_array_list.zig
که خب خیییلی کد قدیمی ایه و احتمالا هم کار نمیکنه
ولی خب ایده گرفتم ازش و کد بالارو زدم
اگه حال داشتید میتونید خودتون اجرا کنید
ولی اون بالا رسما یه پیاده سازی آرایه قابل گسترشیه که توی زمان کامپایل میتونه گسترش پیدا بکنه
و در نهایت وقتی کارمون زمان کامپایل تموم شد میتونیم آرایه رو نهایی بکنیم و از اونجا به بعد دیگه میتونه توی زمان اجرا هم استفاده بشه
const std = @import("std");
fn ComptimeArrayList(T: type) type {
return struct {
__total_mem: []T,
__size: usize,
const Arr = @This();
fn init() Arr {
var new_mem: [1]T = undefined;
return .{
.__size = 0,
.__total_mem = new_mem[0..],
};
}
fn append(comptime self: *Arr, comptime item: T) void {
if (self.__size == self.__total_mem.len) {
var new_mem: [self.__total_mem.len * 2]T = undefined;
@memcpy(new_mem[0..self.__total_mem.len], self.__total_mem);
new_mem[self.__size] = item;
self.__total_mem = new_mem[0..];
self.__size += 1;
} else {
self.__total_mem[self.__size] = item;
self.__size += 1;
}
}
fn items(self: *Arr) []T {
return self.__total_mem[0..self.__size];
}
fn finalize(comptime self: *Arr) [self.__size]T {
var result_mem: [self.__size]T = undefined;
@memcpy(result_mem[0..], self.__total_mem[0..self.__size]);
return result_mem;
}
};
}
pub fn main() !void {
comptime var arr = ComptimeArrayList(i32).init();
comptime {
arr.append(1);
arr.append(2);
arr.append(3);
arr.append(4);
arr.append(5);
}
const result = comptime arr.finalize();
for (result) |x| {
std.debug.print("{} ", .{x});
}
std.debug.print("\n", .{});
}خب خب خب
من تا چند وقت پیش فک میکردم نمیشه مثلا یه چیز ArrayList طوری توی کامپتایم زیگ درست کرد
ولی امشب خیلی تصادفی به این بنده خدا برخوردم :
https://github.com/ziglibs/computils/blob/master/src/comptime_array_list.zig
که خب خیییلی کد قدیمی ایه و احتمالا هم کار نمیکنه
ولی خب ایده گرفتم ازش و کد بالارو زدم
اگه حال داشتید میتونید خودتون اجرا کنید
ولی اون بالا رسما یه پیاده سازی آرایه قابل گسترشیه که توی زمان کامپایل میتونه گسترش پیدا بکنه
و در نهایت وقتی کارمون زمان کامپایل تموم شد میتونیم آرایه رو نهایی بکنیم و از اونجا به بعد دیگه میتونه توی زمان اجرا هم استفاده بشه
GitHub
computils/src/comptime_array_list.zig at master · ziglibs/computils
Zig utilities for all your comptime needs. Contribute to ziglibs/computils development by creating an account on GitHub.
🔥1
نمیدانم
#zig #comptime const std = @import("std"); fn ComptimeArrayList(T: type) type { return struct { __total_mem: []T, __size: usize, const Arr = @This(); fn init() Arr { var new_mem: [1]T = undefined; …
البته اینم بگم که یه proposal برای تخصیص دهنده های امن زمان کامپایل وجود داره که هنوز کارش انجام نشده ولی این حقه هه کار میکنه
نمیدانم
#zig #comptime const std = @import("std"); fn ComptimeArrayList(T: type) type { return struct { __total_mem: []T, __size: usize, const Arr = @This(); fn init() Arr { var new_mem: [1]T = undefined; …
https://www.youtube.com/watch?v=lYSJo36KYZk
واقعا فیسبوک عالیه
مقاله هه با اینجا شروع میشه که میان یه بنچمارک تخیلی درست میکنن و باهاش به این نتیجه میرسن که گیت کنده (؟)
بعدش میگردن دنبال جایگزین و mercurial رو که با پایتون نوشته شده رو انتخاب میکنن
واقعا فیسبوک عالیه
مقاله هه با اینجا شروع میشه که میان یه بنچمارک تخیلی درست میکنن و باهاش به این نتیجه میرسن که گیت کنده (؟)
بعدش میگردن دنبال جایگزین و mercurial رو که با پایتون نوشته شده رو انتخاب میکنن
YouTube
Why Facebook Doesn't Use Git
Recorded live on twitch, GET IN
### Article
https://graphite.dev/blog/why-facebook-doesnt-use-git
By: Greg Foster | https://x.com/gregmfoster
### My Stream
https://twitch.tv/ThePrimeagen
### Best Way To Support Me
Become a backend engineer. Its my favorite…
### Article
https://graphite.dev/blog/why-facebook-doesnt-use-git
By: Greg Foster | https://x.com/gregmfoster
### My Stream
https://twitch.tv/ThePrimeagen
### Best Way To Support Me
Become a backend engineer. Its my favorite…
😁2
#zig
یه کتابخونه چند بستری نیاز داشتم برای این پنجره های انتخاب فایل و پوشه توی زیگ
یکی بود ولی بر مبنی یه نسخه قدیمی یه پروژه c بود و یکی دیگم بود که برمبنی نسخه جدید همون پروژه هه بود ولی هیچی نداشت عملا
امروز نشستم و اونو کاملش کردم
https://github.com/MahdiGMK/nfde-zig
یه کتابخونه چند بستری نیاز داشتم برای این پنجره های انتخاب فایل و پوشه توی زیگ
یکی بود ولی بر مبنی یه نسخه قدیمی یه پروژه c بود و یکی دیگم بود که برمبنی نسخه جدید همون پروژه هه بود ولی هیچی نداشت عملا
امروز نشستم و اونو کاملش کردم
https://github.com/MahdiGMK/nfde-zig
GitHub
GitHub - MahdiGMK/nfde-zig: Zig bindings for nativefiledialog-extended
Zig bindings for nativefiledialog-extended. Contribute to MahdiGMK/nfde-zig development by creating an account on GitHub.
🔥5
یه چیز خنده دار دیگه بگم از ویندوز
نصاب VS (و همه جعبه ابزارای مایکروسافت) حداقل اندازه داره و باید نمایشگرت از یه اندازه ای بزرگتر باشه 😂
به جز اینم واقعا شاهکاره که یه کامپایلرو میخوای نصب کنی باید ۹۰۰ مگ دانلود کنی و ۴ گیگ حافظه بهش بدی
نصاب VS (و همه جعبه ابزارای مایکروسافت) حداقل اندازه داره و باید نمایشگرت از یه اندازه ای بزرگتر باشه 😂
به جز اینم واقعا شاهکاره که یه کامپایلرو میخوای نصب کنی باید ۹۰۰ مگ دانلود کنی و ۴ گیگ حافظه بهش بدی
واای خدای من 😂
به نظر میرسه فقط من "مشکل کمبود EQ" ندارم و کیانوش مختاریان و آدمای گوگل و ... هم دارن 😂
https://youtu.be/eIX97y3dT9c?t=4505
اگرم نمیدونید "مشکل کمبود EQ" چیه
ارجاع میکنم به اونایی که میدونن 😂😈
به نظر میرسه فقط من "مشکل کمبود EQ" ندارم و کیانوش مختاریان و آدمای گوگل و ... هم دارن 😂
https://youtu.be/eIX97y3dT9c?t=4505
اگرم نمیدونید "مشکل کمبود EQ" چیه
ارجاع میکنم به اونایی که میدونن 😂😈
YouTube
کیانوش مختاریان: مدیر و رهبر فنی سابق در گوگل
دوره طراحی مسیر شغلی (خودشناسی و یادگیری مهارتهای کلیدی مسیر شغلی)
https://B2n.ir/a75143
تلگرام پشتیبانی کارنکن
https://news.1rj.ru/str/Karnakonsupport
بات تلگرام راهنمای کارنکن
https://news.1rj.ru/str/karnakonhelp_bot
======
مهمان این قسمت کیانوش مختاریانه، مدیر سابق یکی از تیمهای…
https://B2n.ir/a75143
تلگرام پشتیبانی کارنکن
https://news.1rj.ru/str/Karnakonsupport
بات تلگرام راهنمای کارنکن
https://news.1rj.ru/str/karnakonhelp_bot
======
مهمان این قسمت کیانوش مختاریانه، مدیر سابق یکی از تیمهای…
❤4🔥1🤣1
https://news.ycombinator1.com/item?id=46064571
پیرو مهاجرت زیگ از روی گیتهاب به طرف codeberg
منم کتابخونه هامو از این به بعد میبرم اونور
پیرو مهاجرت زیگ از روی گیتهاب به طرف codeberg
منم کتابخونه هامو از این به بعد میبرم اونور
Hacker News
Migrating the main Zig repository from GitHub to Codeberg | Hacker News
725 votes - 642 comments - posted 13 hours ago
🔥5
Forwarded from Tensorflow(@CVision)
This media is not supported in your browser
VIEW IN TELEGRAM
نه بابا هوش مصنوعی قراره دنیارو بگیره.
🤣11
Tensorflow(@CVision)
نه بابا هوش مصنوعی قراره دنیارو بگیره.
از ته قلب میخوام که حباب للم ها بترکه و اینهمه آسیب که دارن به دنیا و اقتصاد میزنن متوقف بشه
https://www.youtube.com/watch?v=ERiXDhLHxmo
https://www.youtube.com/watch?v=ERiXDhLHxmo
👍7👎2💩1
نمیدانم
https://www.youtube.com/watch?v=ERiXDhLHxmo
ولی حالا مستقل از اینکه با نظر من موافقید یا نه اینو ببینید
https://youtu.be/2PgjgTT27Os?t=1061
جدیدترین پیش نمایش از سیستم Async Io زیگ
جدیدترین پیش نمایش از سیستم Async Io زیگ
YouTube
Zigtoberfest 2025
Zigtoberfest, launched in 2024, is a conference focused on sharing experience and knowledge among the Zig community. This event is a fantastic chance to connect with like-minded individuals from the Zig community and share your passion for programming.
The…
The…
TechTube 𝕏 تک توب
در خبری بزرگ و به دنبال افزایش شدید قیمت رم، شرکت امریکایی Micron، سومین تولیدکننده بزرگ رم و چهارمین تولیدکننده بزرگ SSD در جهان، رسما اعلام کرده که از بازار مصرف کنندگان عادی خارج میشه و کل ظرفیت تولیدش رو به بازار پرسود دیتاسنتر و هوش مصنوعی اختصاص خواهد داد!
بدین صورت Micron، برند Crucial که در رمها و SSDهای ساخته شده برای خریداران عادی استفاده میشد رو بعد از 30 سال کنار میزاره، تا اوایل سال اینده فقط کانالهای فروش مصرف کنندگانش رو تامین خواهد کرد و بعد از اون به طور کامل از بازار مصرف کنندگان عادی خارج میشه و از اون بعد صرفا گارانتی و پشتیبانی از محصولات فعلی رو انجام خواهد داد.
با این تصمیم عملا بازار دست سامسونگ و SK hynix میافته که اونها هم پیش از این اعلام کرده بودن که قصد افزایش تولید ندارن و با کمبود عرضه، افزایش قیمت رم ممکن هست تا سال 2028 هم ادامه پیدا کنه.
بدین صورت Micron، برند Crucial که در رمها و SSDهای ساخته شده برای خریداران عادی استفاده میشد رو بعد از 30 سال کنار میزاره، تا اوایل سال اینده فقط کانالهای فروش مصرف کنندگانش رو تامین خواهد کرد و بعد از اون به طور کامل از بازار مصرف کنندگان عادی خارج میشه و از اون بعد صرفا گارانتی و پشتیبانی از محصولات فعلی رو انجام خواهد داد.
با این تصمیم عملا بازار دست سامسونگ و SK hynix میافته که اونها هم پیش از این اعلام کرده بودن که قصد افزایش تولید ندارن و با کمبود عرضه، افزایش قیمت رم ممکن هست تا سال 2028 هم ادامه پیدا کنه.
با این خبر تیر دیگری به بازار غیر حوش زده شد
حالا ممکنه براتون سوال باشه که خب اینا چرا توی این بازار پرسود خب حجم تولیدو بیشتر کنن دیگه
۲ دلیل داره
۱. آدمای سامسونگ و هاینیکس و به طور کلی صنعت میدونن که این روند پایدار نمیمونه
۲. بازار رم یکی از ناپایدار ترین بازارا بین تمام قسمت های صنعت نیمه هادیه و بازیگراش پایداری رو ترجیح میدن و افزایش قیمت رم به اندازه کافی سودشون رو بالا میبره
این پایین سقوط های مختلف بازار DRAM رو مشاهده میکنید :
1. The First Major Crash (Mid-1980s)
Cause: In the early 1980s, many new players (especially Japanese companies) entered the market and invested heavily in fabrication plants (fabs). This led to massive overproduction.
Effect: A brutal price war ensued. Prices plummeted by up to 70%. Many U.S. manufacturers, including Intel, were driven out of the DRAM business entirely. The era of Japanese dominance began.
2. The Crisis of 1996-1998
Cause: A perfect storm of over-investment in new fabs (expecting endless Windows 95-driven PC demand) combined with the 1997 Asian Financial Crisis. Demand collapsed just as massive new supply came online.
Effect: DRAM prices fell by as much as 80%. This caused severe financial distress for almost all manufacturers. Samsung famously survived only by "counter-cyclical investment"—doubling down on production and R&D while others retrenched, a strategy that ultimately cemented its future dominance.
3. The Post-Dotcom Bust (2001-2002)
Cause: The collapse of the dot-com bubble led to a sharp reduction in IT spending. Servers and PC demand dried up, leaving DRAM makers with huge inventories.
Effect: Prices crashed again. The downturn was so severe that it led to major industry consolidation. For example, the Taiwanese DRAM industry was restructured, and the German company Infineon (later Qimonda) was severely weakened.
4. The Financial Crisis Collapse (2008-2009)
Cause: The global financial crisis caused a sudden stop in consumer and corporate electronics spending. PC shipments dropped sharply.
Effect: DRAM prices went into freefall. The DRAM spot price index dropped over 60% in a matter of months. This led to the bankruptcy of Qimonda (2009) and Elpida Memory of Japan eventually filing for bankruptcy in 2012 as a direct consequence of this period's debts and losses.
5. The 2011-2012 Downturn
Cause: Another case of overcapacity following investment in new technology (shift to 30nm processes) combined with weak PC demand and fallout from the 2011 Thailand floods, which disrupted the HDD supply chain and thus PC production.
Effect: Prices fell steadily throughout 2011, leading to significant losses for all players and the aforementioned bankruptcy of Elpida in early 2012. Elpida was later acquired by Micron.
The "New Stability" Era (Post-2013)
حالا ممکنه براتون سوال باشه که خب اینا چرا توی این بازار پرسود خب حجم تولیدو بیشتر کنن دیگه
۲ دلیل داره
۱. آدمای سامسونگ و هاینیکس و به طور کلی صنعت میدونن که این روند پایدار نمیمونه
۲. بازار رم یکی از ناپایدار ترین بازارا بین تمام قسمت های صنعت نیمه هادیه و بازیگراش پایداری رو ترجیح میدن و افزایش قیمت رم به اندازه کافی سودشون رو بالا میبره
این پایین سقوط های مختلف بازار DRAM رو مشاهده میکنید :
1. The First Major Crash (Mid-1980s)
Cause: In the early 1980s, many new players (especially Japanese companies) entered the market and invested heavily in fabrication plants (fabs). This led to massive overproduction.
Effect: A brutal price war ensued. Prices plummeted by up to 70%. Many U.S. manufacturers, including Intel, were driven out of the DRAM business entirely. The era of Japanese dominance began.
2. The Crisis of 1996-1998
Cause: A perfect storm of over-investment in new fabs (expecting endless Windows 95-driven PC demand) combined with the 1997 Asian Financial Crisis. Demand collapsed just as massive new supply came online.
Effect: DRAM prices fell by as much as 80%. This caused severe financial distress for almost all manufacturers. Samsung famously survived only by "counter-cyclical investment"—doubling down on production and R&D while others retrenched, a strategy that ultimately cemented its future dominance.
3. The Post-Dotcom Bust (2001-2002)
Cause: The collapse of the dot-com bubble led to a sharp reduction in IT spending. Servers and PC demand dried up, leaving DRAM makers with huge inventories.
Effect: Prices crashed again. The downturn was so severe that it led to major industry consolidation. For example, the Taiwanese DRAM industry was restructured, and the German company Infineon (later Qimonda) was severely weakened.
4. The Financial Crisis Collapse (2008-2009)
Cause: The global financial crisis caused a sudden stop in consumer and corporate electronics spending. PC shipments dropped sharply.
Effect: DRAM prices went into freefall. The DRAM spot price index dropped over 60% in a matter of months. This led to the bankruptcy of Qimonda (2009) and Elpida Memory of Japan eventually filing for bankruptcy in 2012 as a direct consequence of this period's debts and losses.
5. The 2011-2012 Downturn
Cause: Another case of overcapacity following investment in new technology (shift to 30nm processes) combined with weak PC demand and fallout from the 2011 Thailand floods, which disrupted the HDD supply chain and thus PC production.
Effect: Prices fell steadily throughout 2011, leading to significant losses for all players and the aforementioned bankruptcy of Elpida in early 2012. Elpida was later acquired by Micron.
The "New Stability" Era (Post-2013)
❤1🔥1
نمیدانم
Cause: In the early 1980s, many new players (especially Japanese companies) entered the market and invested heavily in fabrication plants (fabs). This led to massive overproduction.
یه چیز جالب هم در مورد این بگم
توی یه بازه ای از ۱۹۸۰ تا حدود ۲۰۰۰
ژاپنیا از امریکاییا جلو میوفتن و بعد آمریکا با تعرفه و این ها صنعت نیمه هادی ژاپن رو میزنه زمین
البته خب این تنها دلیل شکست خوردن زاپن نبود و یه چیز دیگش هم اهمیت کمتر به پردازش داده بین شرکتای ژاپنی بود و از اونطرف امریکاییا رفتن به طرف پردازش داده و intel و amd و nvidia و ibm و ... رفتن اونطرف که همونطور که بالا مشاهده میکنید خیلیی بازار پایدار تری داره نسبت به DRAM
توی یه بازه ای از ۱۹۸۰ تا حدود ۲۰۰۰
ژاپنیا از امریکاییا جلو میوفتن و بعد آمریکا با تعرفه و این ها صنعت نیمه هادی ژاپن رو میزنه زمین
البته خب این تنها دلیل شکست خوردن زاپن نبود و یه چیز دیگش هم اهمیت کمتر به پردازش داده بین شرکتای ژاپنی بود و از اونطرف امریکاییا رفتن به طرف پردازش داده و intel و amd و nvidia و ibm و ... رفتن اونطرف که همونطور که بالا مشاهده میکنید خیلیی بازار پایدار تری داره نسبت به DRAM
🔥1
نمیدانم
یه چیز جالب هم در مورد این بگم توی یه بازه ای از ۱۹۸۰ تا حدود ۲۰۰۰ ژاپنیا از امریکاییا جلو میوفتن و بعد آمریکا با تعرفه و این ها صنعت نیمه هادی ژاپن رو میزنه زمین البته خب این تنها دلیل شکست خوردن زاپن نبود و یه چیز دیگش هم اهمیت کمتر به پردازش داده بین…
واقعا داستاان جذابی داره نیمه هادی ژاپن
https://www.youtube.com/watch?v=bwhU9goCiaI&pp=ygUfYXNpYW5vbWV0cnkgamFwYW4gc2VtaWNvbmR1Y3Rvcg%3D%3D
https://www.youtube.com/watch?v=0Av6aGG2vZY&pp=ygUfYXNpYW5vbWV0cnkgamFwYW4gc2VtaWNvbmR1Y3Rvcg%3D%3D
https://www.youtube.com/watch?v=ZOKBUI3p_cs&pp=ygUfYXNpYW5vbWV0cnkgamFwYW4gc2VtaWNvbmR1Y3Rvcg%3D%3D
https://www.youtube.com/watch?v=e7sH1dGsxpo&pp=ygUfYXNpYW5vbWV0cnkgamFwYW4gc2VtaWNvbmR1Y3Rvcg%3D%3D
بعلاوه این کانال آسیانومتری واقعا حقه
https://www.youtube.com/watch?v=bwhU9goCiaI&pp=ygUfYXNpYW5vbWV0cnkgamFwYW4gc2VtaWNvbmR1Y3Rvcg%3D%3D
https://www.youtube.com/watch?v=0Av6aGG2vZY&pp=ygUfYXNpYW5vbWV0cnkgamFwYW4gc2VtaWNvbmR1Y3Rvcg%3D%3D
https://www.youtube.com/watch?v=ZOKBUI3p_cs&pp=ygUfYXNpYW5vbWV0cnkgamFwYW4gc2VtaWNvbmR1Y3Rvcg%3D%3D
https://www.youtube.com/watch?v=e7sH1dGsxpo&pp=ygUfYXNpYW5vbWV0cnkgamFwYW4gc2VtaWNvbmR1Y3Rvcg%3D%3D
بعلاوه این کانال آسیانومتری واقعا حقه
YouTube
How Japan Learned Semiconductors
Japan's semiconductor story is unique in modern technology and business.
Coming out of World War II, the country rapidly gained competence in an emerging technology and became a global leader.
In this video, we look at the 30-year rise and peak of the…
Coming out of World War II, the country rapidly gained competence in an emerging technology and became a global leader.
In this video, we look at the 30-year rise and peak of the…
💋1
این مقاله هه حق بود :
https://deplet.ing/the-copilot-delusion/
واکنش پرایماجن بهش :
https://www.youtube.com/watch?v=-Q8c5vzYjfg
https://deplet.ing/the-copilot-delusion/
واکنش پرایماجن بهش :
https://www.youtube.com/watch?v=-Q8c5vzYjfg
Blogmobly
The Copilot Delusion
Disclaimer: This post was written May 2025, and the arguments apply to AI code capabilities at this time. The arguments around lack of competence are certainly likely to become less prevalent-while the parts about the desecration of the joys of programming…
👍1
https://www.youtube.com/watch?v=mf0WzTOe-40
این داداشمون هم آدم جالبیه و پروژه جالبی داره
این داداشمون هم آدم جالبیه و پروژه جالبی داره
YouTube
Memory Safety in zig?!!
Introduction for the Zig-Clr project, Dec. 2025 edition.
I'll be working part-time in December to build out a static checker for #ziglang programming language. Here is the full preview for this project.
This project is not affiliated with the Zig Software…
I'll be working part-time in December to build out a static checker for #ziglang programming language. Here is the full preview for this project.
This project is not affiliated with the Zig Software…
https://github.com/al13n321/nnd
یه دیباگر جالب که برای لینوکس تحت tui توسعه داده شده
رابط کاربریش خیلی مشتیه خواستید امتحان کنید
خودم میخوام ازش همین هفته استفاده بکنم ببینم چطوریه
یه دیباگر جالب که برای لینوکس تحت tui توسعه داده شده
رابط کاربریش خیلی مشتیه خواستید امتحان کنید
خودم میخوام ازش همین هفته استفاده بکنم ببینم چطوریه
GitHub
GitHub - al13n321/nnd: A debugger for Linux
A debugger for Linux. Contribute to al13n321/nnd development by creating an account on GitHub.
اگه یه وقت به گذرتون خورد که میخواستید توی لیبره آفیس یه کدی رو رنگامیزی نحوی (syntax highlighting) کنید میتونید از افزونه زیر استفاده کنید :
https://extensions.libreoffice.org/en/extensions/show/code-highlighter
https://extensions.libreoffice.org/en/extensions/show/code-highlighter
👍6❤1