https://discuss.tvm.apache.org/t/possible-to-convert-a-llvm-ir-back-to-c-code/6625
پروژه موفقی با این تایتل موجود نیست.
ولی اینکه واقعا میشه یه همچین چیزی ساخت واقعا جای بحث دارد
پروژه موفقی با این تایتل موجود نیست.
ولی اینکه واقعا میشه یه همچین چیزی ساخت واقعا جای بحث دارد
Apache TVM Discuss
Possible to convert a LLVM IR back to C code?
Hi All, Is there any way we get readable c/cpp code from the LLVM IR generated in TVM? @jinchenglee -Albin
👍5
یک ابزار language agnostic که میاد تودو هایی که با Comment Anchors نوشته شدن رو جمع آوری میکنه و بعد تبدیل شون میکنه به ایشیو توی گیت هاب. بنظرم برای پروژه های بزرگ خیلی چیز مفیدیه. درکل ایده جالبی بود :)
https://github.com/tsoding/snitch
https://github.com/tsoding/snitch
GitHub
GitHub - tsoding/snitch: Language agnostic tool that collects TODOs in the source code and reports them as Issues
Language agnostic tool that collects TODOs in the source code and reports them as Issues - tsoding/snitch
👍4
اگر خواستید رزومه بسازید این هم رایگانه هم امکانات خیلی خوبی ارائه میده.
بشدت پیشنهادی:
resumementor.com
بشدت پیشنهادی:
resumementor.com
👍6❤1
دیسکاشن آنکل باب با جان آسترهوت که درباره عقیده شون راجب معماری نرم افزار حرف میزنن.
https://youtu.be/3Vlk6hCWBw0?si=uUMqwoCqvnXRgGfn
پ.ن: قبلا کتاب جان رو معرفی کرده بودم همینجا
https://youtu.be/3Vlk6hCWBw0?si=uUMqwoCqvnXRgGfn
پ.ن: قبلا کتاب جان رو معرفی کرده بودم همینجا
YouTube
John Ousterhout and Robert "Uncle Bob" Martin Discuss Their Software Philosophies
Following up on their recent discussion on software design (inspired by Book Overflow!), John Ousterhout and Robert "Uncle Bob" Martin join Carter and Nathan for their first ever joint interview! Join them as they discuss what it was like working together…
👍6👾1
راجب زبان برنامه نویسی C3 که من هم ازش طراحی کامپایلر یاد گرفتم، هم نقدش میکنم، و هم اشتباهات ش رو میبینم.
پ.ن: این یه competitor برای Zig هست منتها فعلا نتونسته توی فیچر ها به پای زیگ برسه =)
https://www.youtube.com/watch?v=UC8VDRJqXfc
پ.ن: این یه competitor برای Zig هست منتها فعلا نتونسته توی فیچر ها به پای زیگ برسه =)
https://www.youtube.com/watch?v=UC8VDRJqXfc
YouTube
Cleaned up C? Interview with C3 language author Christoffer Lernö!
Thanks much to Christoffer for the interview!
https://c3-lang.org/
0:00 Video intro
0:28 Self intro
0:36 C3 history
1:32 C alternatives landscape
3:27 Cleaning up C
5:01 Familiarity vs change
5:35 New features
9:01 Language design lessons
11:17 Removing…
https://c3-lang.org/
0:00 Video intro
0:28 Self intro
0:36 C3 history
1:32 C alternatives landscape
3:27 Cleaning up C
5:01 Familiarity vs change
5:35 New features
9:01 Language design lessons
11:17 Removing…
👾4👍3🗿2
Forwarded from Linux memes
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤1
ایا همه زبان های dynamically typed از نوع interpreter based هستند؟
جوابش اینه که نه. ربطی نداره. مثلا LISP داینامیک تایپد هست ولی معمولا کامپایل میشه. یا حتی ممکنه که زبان های statically typed شامل یک اینترپرتر باشن و بازم مشکلی نداره. درکل این دوتا کانسپت موازی از هم هستند.
جزییات بیشتر تو لینک زیر:
https://softwareengineering.stackexchange.com/questions/88645/are-dynamic-languages-always-interpreted
جوابش اینه که نه. ربطی نداره. مثلا LISP داینامیک تایپد هست ولی معمولا کامپایل میشه. یا حتی ممکنه که زبان های statically typed شامل یک اینترپرتر باشن و بازم مشکلی نداره. درکل این دوتا کانسپت موازی از هم هستند.
جزییات بیشتر تو لینک زیر:
https://softwareengineering.stackexchange.com/questions/88645/are-dynamic-languages-always-interpreted
Software Engineering Stack Exchange
Are dynamic languages always interpreted?
Looking at most (if not all) dynamic languages (e.g. Python, PHP, Perl and Ruby), they are all interpreted. Correct me if I'm wrong. Is there any example of dynamic language that goes through compi...
👍4👎3
یه guidance خیلی خوب از طرف تیم اندروید گوگل برای یادگیری Rust :
https://google.github.io/comprehensive-rust/index.html
https://google.github.io/comprehensive-rust/index.html
🔥4❤1👎1
چرا باید نیکس یاد بگیریم؟ و چطور بدرد جماعت دولوپر میخوره؟
https://www.youtube.com/watch?v=6WLaNIlDW0M
https://www.youtube.com/watch?v=6WLaNIlDW0M
YouTube
Why You Should Use NixOS
Join as a Channel Member:
https://www.youtube.com/channel/UCeZyoDTk0J-UPhd7MUktexw/join
Join Liberapay: https://liberapay.com/LibrePhoenix/donate
Join Patreon: https://www.patreon.com/LibrePhoenix
This video is a discussion of my current operating system…
https://www.youtube.com/channel/UCeZyoDTk0J-UPhd7MUktexw/join
Join Liberapay: https://liberapay.com/LibrePhoenix/donate
Join Patreon: https://www.patreon.com/LibrePhoenix
This video is a discussion of my current operating system…
🔥6👎2🆒1
Packt.Clang.Compiler.Frontend.pdf
10.2 MB
Clang Compiler Frontend: Get to grips with the internals of a C/C++ compiler frontend and create your own tools (2024) by Ivan Murashko
خوندمش تموم شد. ولی ۵ درصد هم به دانشم اضافه نکرد.
انگار کمپلت هیچ مطلبی توش نبود🤕
خوندمش تموم شد. ولی ۵ درصد هم به دانشم اضافه نکرد.
انگار کمپلت هیچ مطلبی توش نبود🤕
👍1
Writing_a_C_Compiler_Build_a_Real_Programming_Language_from_Scratch.pdf
26 MB
Writing a C Compiler: Build a Real Programming Language from Scratch (2023)
پ.ن: این محتوای مفیدی داره. داره یه کامپایلر C رو با کامپایل کردنش بطور مستقیم به اسمبلی میسازه. برای کسب دانش اسمبلی و compiler design خیلی خوبه. ولی بازم بدرد من نمیخوره /: اینکه یه همچین پروژه ای استیبل بشه ادم نابود میشه. کامپایل کردن به اسمبلی برای studying purposes بهتره.
پ.ن: این محتوای مفیدی داره. داره یه کامپایلر C رو با کامپایل کردنش بطور مستقیم به اسمبلی میسازه. برای کسب دانش اسمبلی و compiler design خیلی خوبه. ولی بازم بدرد من نمیخوره /: اینکه یه همچین پروژه ای استیبل بشه ادم نابود میشه. کامپایل کردن به اسمبلی برای studying purposes بهتره.
👾3🔥1
زبان موجو (Modular) اخیرا دستاورد های بی نظیری داشته که خالی از لطف نیست کمی راجبش حرف بزنیم :) منم هرچقدر که راجبش میفهمم همینجا میگم.
درواقع موجو یک زبان برنامه نویسی جدید هست که شباهت زیادی به پایتون داره. ولی هدفش اینه که پرفرمنس C/C++ و کنترل روی سخت افزار ارائه بده. برای Machine Learning و high-performance computing (HPC) و در زمینه محاسبات علمی کاربرد داره. پرفرمنس قابل مقایسه ای با Rust و ++C داره. لازم به ذکره که دیتا تایپ های قدرتمند و ownership model ای که از راست الهام گرفته شده رو ارائه میده.
از همون ابتدا ساپورت parallelism هم داره! از فیچر هایی مثل autotuning و multithreading و SIMD support به خوبی پشتیبانی میکنه.
یه نقطه جالبی هم که فهمیدم اینه که گویا بر پایه MLIR ساخته شده کامپایلرش :) اگه براتون جالبه... سازنده ش Chris Lattner معروف هست! همان سازنده کامپایلر LLVM و همچنین زبان Swift. و MLIR هم یک Intermediate Represntation ای هست شبیه به LLVM-IR ولی با این تفاوت که ساپورت بیشتری از انتزاعات و فیچر های high level داره. البته لازم به ذکره که ما هنوز به خوبی تسلط روی LLVM-IR نداریم :) و MLIR هم تازگی داره... و کمبود داکیومنت و این ها به خوبی احساس میشود.
جمع بندی کاربرد های Mojo :
- Writing ML models and kernels (alternative to CUDA or C++)
- Optimizing data pipelines and numeric computations
- Systems-level programming where Python is too slow
- High-performance scientific computing
یوتیوب شون:
https://www.youtube.com/watch?v=FSBnDzMwOKs
پ.ن: رقیب سر سخت پایتون از راه رسیده :)
درواقع موجو یک زبان برنامه نویسی جدید هست که شباهت زیادی به پایتون داره. ولی هدفش اینه که پرفرمنس C/C++ و کنترل روی سخت افزار ارائه بده. برای Machine Learning و high-performance computing (HPC) و در زمینه محاسبات علمی کاربرد داره. پرفرمنس قابل مقایسه ای با Rust و ++C داره. لازم به ذکره که دیتا تایپ های قدرتمند و ownership model ای که از راست الهام گرفته شده رو ارائه میده.
از همون ابتدا ساپورت parallelism هم داره! از فیچر هایی مثل autotuning و multithreading و SIMD support به خوبی پشتیبانی میکنه.
یه نقطه جالبی هم که فهمیدم اینه که گویا بر پایه MLIR ساخته شده کامپایلرش :) اگه براتون جالبه... سازنده ش Chris Lattner معروف هست! همان سازنده کامپایلر LLVM و همچنین زبان Swift. و MLIR هم یک Intermediate Represntation ای هست شبیه به LLVM-IR ولی با این تفاوت که ساپورت بیشتری از انتزاعات و فیچر های high level داره. البته لازم به ذکره که ما هنوز به خوبی تسلط روی LLVM-IR نداریم :) و MLIR هم تازگی داره... و کمبود داکیومنت و این ها به خوبی احساس میشود.
جمع بندی کاربرد های Mojo :
- Writing ML models and kernels (alternative to CUDA or C++)
- Optimizing data pipelines and numeric computations
- Systems-level programming where Python is too slow
- High-performance scientific computing
یوتیوب شون:
https://www.youtube.com/watch?v=FSBnDzMwOKs
پ.ن: رقیب سر سخت پایتون از راه رسیده :)
YouTube
Mojo meets AMD MI300X: Modular GPU Kernel Hackathon Highlights 🔥
Highlights from the Modular GPU Kernel Hackathon! 💥
Developers gathered at AGI House to build cutting-edge Mojo kernels on AMD Instinct™ MI300X, from LLM training loops to blazing-fast prefix scans and a Mojo-powered Gaussian splat renderer.
Huge thanks…
Developers gathered at AGI House to build cutting-edge Mojo kernels on AMD Instinct™ MI300X, from LLM training loops to blazing-fast prefix scans and a Mojo-powered Gaussian splat renderer.
Huge thanks…
👾6🔥4❤1
توی V کیوورد nil رو unsafe در نظر گرفتن چون مستعد پنیک و UB هستش. در عوض معادلش که یه صفر (zero) هست رو safe تلقی میکنه و کاملا اوکیه😂🤦
یه آرتیکل برای نقد زبان برنامه نویسی V
https://justinas.org/the-bizarre-world-of-v
همچنین اینم هست که بیشتر تکنیکال بررسیش کرده (اپدیت ۲۰۲۳) :
https://n-skvortsov-1997.github.io/reviews
و اینکه تا دلتون بخواد داره برای ایده های V ایراد میگیره. همین emit C و در کنارش کامپایل کردن به machine code روی معماری x64 کافی نبود؟ رفتن emit Go و emit JS هم نوشتن😂 توی آرتیکل به وضوح نشون میده چطوری مدل کانکارنسی ش تبدیل به Promise توی جاوا اسکریپت میشه و این totally does not make sense😂🤦.
از مموری منیجمنت ش هم که نگم. دیدگاه م کلا به V تغییر کرد بعد از خوندن این مقاله ها! توی وی اومدن یه فلگ گذاشتن به اسم autofree. در واقع نه GC هست و نه RC. و حتی شبیه Rust هم نیست. در واقع میگه ما میتونیم مموری روی توی compilation time بیایم مدیریت بکنیم. ینی میاد خودش free() اضافه می کنه.
ایا لازمه بگم که این نمیشه و چقد UB میخوره؟😂
اخه جدا ازین... اومدن با GC شون هم ترکیب کردن! یعنی اگر خودش فری نمیشه... GC مسعولیت شو به عهده میگیره😂🤦
اینم بگم که از BoehmGC بعنوان مموری منیجمنت دیفالت استفاده میکنن.
دیگه بقیش تو دوتا آرتیکل هست میتونید چکش کنید :)
Strangely, nil requires unsafe, but the equivalent 0 literal in a pointer context does not. This suggests very primitive reasoning by the compiler: an "evil" keyword is forbidden, but completely equivalent code without the keyword is allowed.
یه آرتیکل برای نقد زبان برنامه نویسی V
https://justinas.org/the-bizarre-world-of-v
همچنین اینم هست که بیشتر تکنیکال بررسیش کرده (اپدیت ۲۰۲۳) :
https://n-skvortsov-1997.github.io/reviews
و اینکه تا دلتون بخواد داره برای ایده های V ایراد میگیره. همین emit C و در کنارش کامپایل کردن به machine code روی معماری x64 کافی نبود؟ رفتن emit Go و emit JS هم نوشتن😂 توی آرتیکل به وضوح نشون میده چطوری مدل کانکارنسی ش تبدیل به Promise توی جاوا اسکریپت میشه و این totally does not make sense😂🤦.
از مموری منیجمنت ش هم که نگم. دیدگاه م کلا به V تغییر کرد بعد از خوندن این مقاله ها! توی وی اومدن یه فلگ گذاشتن به اسم autofree. در واقع نه GC هست و نه RC. و حتی شبیه Rust هم نیست. در واقع میگه ما میتونیم مموری روی توی compilation time بیایم مدیریت بکنیم. ینی میاد خودش free() اضافه می کنه.
ایا لازمه بگم که این نمیشه و چقد UB میخوره؟😂
اخه جدا ازین... اومدن با GC شون هم ترکیب کردن! یعنی اگر خودش فری نمیشه... GC مسعولیت شو به عهده میگیره😂🤦
اینم بگم که از BoehmGC بعنوان مموری منیجمنت دیفالت استفاده میکنن.
دیگه بقیش تو دوتا آرتیکل هست میتونید چکش کنید :)
We can conclude that autofree is a very crude technology.
skvortsov
V Language Review (2023)
Review about V programming language in 2023
👍8
Why not rewrite LLVM in Rust?😐😂
https://www.reddit.com/r/rust/comments/5z2yvw/why_not_rewrite_llvm_in_rust
پ.ن: عجب!
https://www.reddit.com/r/rust/comments/5z2yvw/why_not_rewrite_llvm_in_rust
پ.ن: عجب!
Reddit
From the rust community on Reddit
Explore this post and more from the rust community
👍3🤣2❤1💊1
Forwarded from DevTwitter | توییت برنامه نویسی
اگه از hyprland استفاده میکنید، حتما این کانفیگ رو ببینید که میتونه زیباترین و پرکاربرد ترین دسکتاپ عمرتون رو بسازه!
من هرچی خودم کانفیگ کرده بودم ریختم دور...
https://github.com/end-4/dots-hyprland
@DevTwitter | <Mohsen Khodabakhshi/>
من هرچی خودم کانفیگ کرده بودم ریختم دور...
https://github.com/end-4/dots-hyprland
@DevTwitter | <Mohsen Khodabakhshi/>
❤6👎2🗿1
رفرنس کانتینگ یا به اصطلاح RC چیه؟
یک روش مدیریت مموری هست که توی بک گراند شامل یک counter میشه. کامپایلر بطور هوشمندانه میاد پوینتر ها و رفرنس هایی که به آبجکت مورد نظر هست رو شناسایی میکنه (در پروسه کامپایل)، و بعد به ازای هر رفرنس میاد counter رو یک واحد increment میکنه. و زمانی که از اسکوپ مورد نظر خارج میشه، counter رو یک واحد decrement میکنه.
و اگر counter به صفر برسه ینی هیچ رفرنسی به این آبجکت وجود نداره و بی استفاده ست. پس بلافاصله free میشه allocation ش. همونطور که توی این سورس کد میبینید پیاده سازی ش راحته. یه Mutex Lock هم بهش اضافه میشه که توی محیط مولتی ترد هم مشکلی پیش نیاد.
مزایای RC اینه که وقفه یا به اصطلاح Stop the world ای که توی GC هست، توی RC بوجود نمیاد و ازاد سازی حافظه قابل پیشبینی تر هست.
معایبش :) در واقع اگر دوتا آبجکت به همدیگه رفرنس بدن که به اصطلاح Reference Cycling گفته میشه، درین صورت هیچ یک ازین دو آبجکت free نخواهند شد. معایب دیگه ش اینه که مخصوصا در محیط های مولتی ترد overhead خیلی زیادی داره. البته اگر سینگل ترد باشه هم درکل خیلی مکانیزم بهینه ای نیست.
در نتیجه نسبت به GC مکانیزم سنتی تر و پرفرمنس کمتری داره.
زبان هایی که از Reference Counting استفاده میکنند:
- Swift (Automatic RC)
- ObjectiveC
- Python (
Combination of GC and RC.
)
- C++ (Smart Pointers)
یک روش مدیریت مموری هست که توی بک گراند شامل یک counter میشه. کامپایلر بطور هوشمندانه میاد پوینتر ها و رفرنس هایی که به آبجکت مورد نظر هست رو شناسایی میکنه (در پروسه کامپایل)، و بعد به ازای هر رفرنس میاد counter رو یک واحد increment میکنه. و زمانی که از اسکوپ مورد نظر خارج میشه، counter رو یک واحد decrement میکنه.
و اگر counter به صفر برسه ینی هیچ رفرنسی به این آبجکت وجود نداره و بی استفاده ست. پس بلافاصله free میشه allocation ش. همونطور که توی این سورس کد میبینید پیاده سازی ش راحته. یه Mutex Lock هم بهش اضافه میشه که توی محیط مولتی ترد هم مشکلی پیش نیاد.
مزایای RC اینه که وقفه یا به اصطلاح Stop the world ای که توی GC هست، توی RC بوجود نمیاد و ازاد سازی حافظه قابل پیشبینی تر هست.
معایبش :) در واقع اگر دوتا آبجکت به همدیگه رفرنس بدن که به اصطلاح Reference Cycling گفته میشه، درین صورت هیچ یک ازین دو آبجکت free نخواهند شد. معایب دیگه ش اینه که مخصوصا در محیط های مولتی ترد overhead خیلی زیادی داره. البته اگر سینگل ترد باشه هم درکل خیلی مکانیزم بهینه ای نیست.
در نتیجه نسبت به GC مکانیزم سنتی تر و پرفرمنس کمتری داره.
زبان هایی که از Reference Counting استفاده میکنند:
- Swift (Automatic RC)
- ObjectiveC
- Python (
Combination of GC and RC.
)
- C++ (Smart Pointers)
Telegram
👾 Geek Engineers
با C یه Reference Counting بسازیم
https://github.com/jeraymond/refcount
https://github.com/jeraymond/refcount
👾8👍2
اخرین تلاش های من برای فهمیدن دات نت🥲🤞🏿
https://www.youtube.com/watch?v=TH5118PhzYs
https://www.youtube.com/watch?v=BeuNvhd1L_g
https://www.youtube.com/watch?v=TH5118PhzYs
https://www.youtube.com/watch?v=BeuNvhd1L_g
YouTube
I tried .NET on Linux and Died Inside
Streamed Live on Twitch: https://twitch.tv/tsoding
Enable Subtitles for Twitch Chat
Chapters:
- 00:00:00 - Installing .NET on Linux
- 00:08:32 - C# Hello World
- 00:18:19 - C# Standard Library Reference
- 00:21:46 - C# Loops
- 00:34:19 - C# Console.WriteLine…
Enable Subtitles for Twitch Chat
Chapters:
- 00:00:00 - Installing .NET on Linux
- 00:08:32 - C# Hello World
- 00:18:19 - C# Standard Library Reference
- 00:21:46 - C# Loops
- 00:34:19 - C# Console.WriteLine…
👍6🤡2
درسته از دات نت بدمون میاد... ولی به احتمال زیاد از coreclr/gc برای سایروس استفاده کنم. فعلا گزینه بهتر ازین پیدا نکردم (از BoehmGC خیلی بهتره)
https://github.com/dotnet/runtime/tree/main/src/coreclr/gc
https://github.com/dotnet/runtime/tree/main/src/coreclr/gc
GitHub
runtime/src/coreclr/gc at main · dotnet/runtime
.NET is a cross-platform runtime for cloud, mobile, desktop, and IoT apps. - dotnet/runtime
👍6👎1🔥1🤡1
تو این ویدیو یه درایور ساده برای کرنل ویندوز مینویسه با زبان C
(صرف نشون دادن kernel debugger).
باید بگم باحال بود :) تا حالا یه درایور ننوشتم...
https://www.youtube.com/watch?v=GTrekHE8A00
(صرف نشون دادن kernel debugger).
باید بگم باحال بود :) تا حالا یه درایور ننوشتم...
https://www.youtube.com/watch?v=GTrekHE8A00
YouTube
Making Simple Windows Driver in C
In this video I will demonstrate how you can write a simple "Hello, World" driver for Microsoft Windows 10 using the C Programming Language.
The code is just for fun and not suitable for production.
For the installation of the dependencies check out the…
The code is just for fun and not suitable for production.
For the installation of the dependencies check out the…
🫡5👍1