سه پروژه موفق Swift در GSoC 2026؛ از DocC تا ردیابی Task‌ها

چرا مهم است

اگر با Swift کار می‌کنی، این پروژه‌ها به نوشتن مستندات، بررسی وضعیت Task‌ها و ساخت ابزار تحلیل کد مربوط‌اند. بسته به کارت، پشتیبانی DocC در editor یا registry قابل‌خواندن برای debugger می‌تواند برایت مهم باشد.

قبل از خواندن، این‌ها را بدان۴ مفهوم
runtime

بخشی از زیرساخت زبان که هنگام اجرای برنامه، کارهایی مانند مدیریت Task‌ها و دیگر سازوکارهای اجرایی را انجام می‌دهد.

بیشتر درباره این مفهوم

concurrency

شیوه‌ای برای پیش‌برد چند کار با بازه‌های اجرای هم‌پوشان؛ این کارها لزوماً در یک لحظه روی چند هسته اجرا نمی‌شوند.

بیشتر درباره این مفهوم

Language Server Protocol

یک protocol برای ارتباط editor با language server که قابلیت‌هایی مانند رفتن به محل تعریف و اطلاعات مربوط به کد را در اختیار editor می‌گذارد.

بیشتر درباره این مفهوم

qualified name lookup

پیداکردن معنای یک نام با توجه به محدوده یا type مشخص؛ مثلاً یافتن عضو یک type با درنظرگرفتن extension و typealias مرتبط با آن.

بیشتر درباره این مفهوم

پروژه Swift در Google Summer of Code سال ۲۰۲۶، تازه‌واردان به open source را با راهنماها همراه کرد تا روی سه پروژه برای Swift و ابزارهای پیرامون آن کار کنند. هر سه پروژه با موفقیت تکمیل شدند و حوزه‌های مستندسازی، concurrency و جست‌وجوی نام در ساختار کد را پوشش دادند.

پروژه نخست، کار Padmashree S S،؜ پشتیبانی DocC را به SourceKit-LSP اضافه کرد. DocC یک compiler مستندات است که comment‌های مستندسازی، مقاله‌های Markdown و آموزش‌ها را به مستندات قابل مرور تبدیل می‌کند. پیش از این، editor‌ها لینک به symbol‌ها را در این محتوا نمی‌شناختند و فایل‌های DocC Markdown نیز syntax highlighting نداشتند.

اکنون Go to definition برای لینک‌های symbol در comment‌ها، فایل‌های Markdown و فایل‌های آموزشی فراهم شده است. لینک‌های داخل preview مستندات DocC هم می‌توانند تعریف مربوط را در editor باز کنند. syntax highlighting برای فایل‌های Markdown و آموزشی DocC نیز اضافه شده است. چون این قابلیت‌ها در SourceKit-LSP پیاده‌سازی شده‌اند، به یک editor محدود نیستند و در editor‌های پشتیبان Language Server Protocol،؜ مانند VS Code و Vim،؜ کار می‌کنند.

پروژه دوم را Ege Kaya برای ردیابی Task و TaskGroup انجام داد. پیش‌تر runtime در Swift فهرستی از Task‌های فعال نداشت که ابزارها بتوانند آن را از یک process بخوانند؛ موضوعی که تشخیص Task‌های گیرکرده را دشوار می‌کرد. این پروژه یک registry همیشه‌فعال ایجاد کرده که debugger‌هایی مانند lldb و ابزار swift-inspect می‌توانند آن را بخوانند.

از آنجا که ایجاد و پایان هر Task به این registry دست می‌زند، طراحی بر کم‌کردن اثر آن بر زمان اجرا متمرکز بود. registry برای جلوگیری از false sharing به ۶۴ فهرست مستقل تقسیم شده است. در آزمایشی با ایجاد بیش از ۶۰۰ هزار Task در یک بازه کوتاه، ردیابی حدود ۰٫۰۱۵ ثانیه به اجرای ۰٫۳۷ ثانیه‌ای اضافه کرد.

پروژه سوم، کار Filip Sakel،؜ قابلیت qualified name lookup را به SwiftLexicalLookup در swift-syntax افزود. ابزارهای مبتنی بر swift-syntax پیش‌تر برای جست‌وجوی نام با توجه به context،؜ به ابزارهای بیرونی یا پیاده‌سازی دستی نیاز داشتند. قابلیت تازه می‌تواند در چنین جست‌وجویی extension و typealias را هم در نظر بگیرد؛ مثلاً تشخیص دهد نام یک type درون ساختار، از طریق typealias تعریف‌شده در extension به کدام class اشاره دارد.

نکته کلیدی

این سه تغییر را جدا از هم به خاطر بسپار: پشتیبانی DocC در SourceKit-LSP،؜ ردیابی Task‌ها در runtime و جست‌وجوی نام در swift-syntax. برای مستندسازی، یادت باشد قابلیت‌های تازه به editor خاصی محدود نیستند و بر Language Server Protocol تکیه دارند.

خواندن مقاله اصلی (در زبانه‌ی جدید باز می‌شود)
برچسب‌ها (۴)