<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Karesis的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Karesis</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Karesis]]></copyright><item><title><![CDATA[C 语言“炼狱级”宏调试：从“幽灵逗号”到预处理器展开顺序的终极陷阱]]></title><link>https://blog.youkuaiyun.com/Karesis/article/details/154490845</link><guid>https://blog.youkuaiyun.com/Karesis/article/details/154490845</guid><author>Karesis</author><pubDate>Thu, 06 Nov 2025 15:58:16 +0800</pubDate><description><![CDATA[摘要 在实现C语言的Result&lt;T,E&gt;宏时，一个奇怪的Bug出现了：and_then宏在Clang中神秘失败，而相似逻辑的map宏却工作正常。通过clang -E发现预处理后出现了&quot;幽灵逗号&quot;，导致语法错误。深入分析发现，问题根源在于预处理器的参数展开顺序与GNU C扩展（语句表达式）的双重陷阱。当types参数被展开为(int, CString)时，__VA_ARGS__意外为空，导致语句表达式语法错误。这揭示了C预处理器与GNU扩展交互时的微妙边界情况。]]></description><category></category></item><item><title><![CDATA[用C从零手搓一个LLVM-like的IR框架 (Calico-IR) —— 兼论一个“老Rustacean”的C语言回归之路]]></title><link>https://blog.youkuaiyun.com/Karesis/article/details/154292049</link><guid>https://blog.youkuaiyun.com/Karesis/article/details/154292049</guid><author>Karesis</author><pubDate>Sun, 02 Nov 2025 16:45:19 +0800</pubDate><description><![CDATA[半年前，我曾雄心勃勃地开始了一个个人项目：自创一门编程语言nyanlang。和许多初学者一样，我很快就撞上了一堵高墙——编译器后端。在 LLVM 庞大而复杂的 C++ API 面前，我感到了深深的无力。nyanlang计划因此搁置。一年后的今天，作为国科大（UCAS）“编译原理”课程的一部分，我决定直面这个“心魔”。我启动了从零开始，用纯 C 语言，亲手实现一个 LLVM-inspired 的 IR 框架。calir不仅仅是我的课程作业。它是对我过去一年技术积累的检验，更是我重启nyanlang。]]></description><category></category></item><item><title><![CDATA[Rust 与 LLVM 的 Windows 填坑指南：为 Inkwell 打造精确的 LLVM 18 环境]]></title><link>https://blog.youkuaiyun.com/Karesis/article/details/151654057</link><guid>https://blog.youkuaiyun.com/Karesis/article/details/151654057</guid><author>Karesis</author><pubDate>Sat, 13 Sep 2025 16:41:29 +0800</pubDate><description><![CDATA[在 Windows 上为特定的 Rust FFI 库配置一个版本精确的 C++ 依赖，确实是一件充满挑战但非常有价值的事情。放弃不包含完整工具链的官方安装包。拥抱功能完备的 MSYS2/MinGW 环境。利用包管理器的历史归档，来绕开“滚动更新”的限制。锁定包版本，确保开发环境的长期稳定。希望这篇详尽的“填坑”指南能为你扫清障碍，让你能更专注于编译器本身的逻辑实现。]]></description><category></category></item><item><title><![CDATA[从一次开源 Bug 修复，我学会了 Git `cherry-pick` 的正确用法]]></title><link>https://blog.youkuaiyun.com/Karesis/article/details/150488387</link><guid>https://blog.youkuaiyun.com/Karesis/article/details/150488387</guid><author>Karesis</author><pubDate>Mon, 18 Aug 2025 12:04:24 +0800</pubDate><description><![CDATA[《Git cherry-pick：精准移植提交的实用技巧》文章摘要： 本文通过作者修复Zed编辑器Bug的真实案例，介绍了Git中强大的cherry-pick命令。与合并整个分支不同，cherry-pick允许精准选择特定提交应用到当前分支，就像摘取熟透的樱桃。文章详解了三大核心应用场景：紧急线上Bug修复、选择性合并功能以及整理错误提交的分支。通过维护者解决SHA-256校验问题的实例，展示了如何用cherry-pick移植3个关键提交到修复分支。最后提供了基本用法、区间提交和冲突处理的具体操作指南。这个]]></description><category></category></item><item><title><![CDATA[Windows 用户请进！手把手教你搭建媲美原生 Linux 的 Rust/LLVM 开发环境]]></title><link>https://blog.youkuaiyun.com/Karesis/article/details/149134784</link><guid>https://blog.youkuaiyun.com/Karesis/article/details/149134784</guid><author>Karesis</author><pubDate>Sat, 05 Jul 2025 12:09:40 +0800</pubDate><description><![CDATA[本文详细介绍了如何在Windows系统上通过WSL2搭建高效的Linux开发环境，特别针对Rust和LLVM等工具链的安装配置。主要内容包括：1) 安装纯净的WSL2 Ubuntu系统；2) 配置Rust工具链和LLVM 18开发库；3) 解决编译过程中常见的&quot;cc linker&quot;和&quot;Polly&quot;等错误；4) 与VS Code集成实现无缝开发体验。该方案既保留了Windows系统的便利性，又提供了原生Linux的开发环境，特别适合系统编程、编译器开发等场景。文章提供了]]></description><category></category></item><item><title><![CDATA[大二学生打造自己的编程语言 NyanLang：从冲动、挣扎到重生的全纪录]]></title><link>https://blog.youkuaiyun.com/Karesis/article/details/149042979</link><guid>https://blog.youkuaiyun.com/Karesis/article/details/149042979</guid><author>Karesis</author><pubDate>Tue, 01 Jul 2025 11:42:16 +0800</pubDate><description><![CDATA[《NyanLang：一个开发者的编程语言创造之旅》介绍了作者Karesis开发的静态类型极简语言项目。文章回顾了从最初基于llvmlite的原型到推翻重来的转型过程，强调质量优先、测试驱动的新开发理念。目前v0.0.3版本已完成100%测试覆盖率的词法分析器，采用表达式驱动、流程控制等特色语法设计。项目制定了清晰的开发路线图，并号召开发者参与贡献。该文不仅展示了一个编程语言的技术细节，更传递了作者对开源创造的坚持与热情。]]></description><category></category></item><item><title><![CDATA[Python项目依赖安装最佳实践(Windows)]]></title><link>https://blog.youkuaiyun.com/Karesis/article/details/146552912</link><guid>https://blog.youkuaiyun.com/Karesis/article/details/146552912</guid><author>Karesis</author><pubDate>Thu, 27 Mar 2025 11:41:20 +0800</pubDate><description><![CDATA[在Python项目开发中，正确配置依赖是关键一步。本文将介绍从虚拟环境创建到依赖安装的完整流程。]]></description><category></category></item><item><title><![CDATA[FiberTree：轻量级决策路径管理库实战指南]]></title><link>https://blog.youkuaiyun.com/Karesis/article/details/146348376</link><guid>https://blog.youkuaiyun.com/Karesis/article/details/146348376</guid><author>Karesis</author><pubDate>Tue, 18 Mar 2025 18:33:09 +0800</pubDate><description><![CDATA[配置SQLite持久化# 手动触发存储# 从存储加载。]]></description><category></category></item><item><title><![CDATA[Ubuntu 24.04.2 LTS 无法下载Docker解决]]></title><link>https://blog.youkuaiyun.com/Karesis/article/details/146290133</link><guid>https://blog.youkuaiyun.com/Karesis/article/details/146290133</guid><author>Karesis</author><pubDate>Sun, 16 Mar 2025 08:13:02 +0800</pubDate><description><![CDATA[关键是使用了Ubuntu 22.04的仓库，这是一个聪明的变通方法（或许，因为Docker官方可能还没有为Ubuntu 24.04（Noble）创建正式支持。我已经成功安装了Docker，但尝试运行hello-world时遇到了网络超时（官方给的验证教程）。]]></description><category></category></item><item><title><![CDATA[一分钟解决AppImage无法运行]]></title><link>https://blog.youkuaiyun.com/Karesis/article/details/146289322</link><guid>https://blog.youkuaiyun.com/Karesis/article/details/146289322</guid><author>Karesis</author><pubDate>Sun, 16 Mar 2025 02:29:34 +0800</pubDate><description><![CDATA[双击程序，终端./程序，运行失败。]]></description><category></category></item><item><title><![CDATA[VS Code + Git + GitHub 完全傻瓜式教程]]></title><link>https://blog.youkuaiyun.com/Karesis/article/details/146198545</link><guid>https://blog.youkuaiyun.com/Karesis/article/details/146198545</guid><author>Karesis</author><pubDate>Wed, 12 Mar 2025 10:50:57 +0800</pubDate><description><![CDATA[你是否曾被版本控制的复杂概念困扰？本教程如同一位耐心导师，将带你轻松掌握开发者必备的三大神器。从零基础到熟练应用，我们拆解每个步骤，用通俗易懂的语言和直观图示，让你不再惧怕"commit"、"push"等专业术语。无论你是编程新手，还是寻求提升效率的开发者，都能构建一套无缝衔接的工作流。告别混乱的文件管理、繁琐的团队协作和代码丢失，拥抱井然有序的开发环境。掌握这三大工具的协同使用，让你的项目更专业，为职业发展开启新可能。准备好改变你的编程习惯了吗？]]></description><category></category></item><item><title><![CDATA[一分钟解决特定环境挂载梯子pip失灵问题]]></title><link>https://blog.youkuaiyun.com/Karesis/article/details/145892799</link><guid>https://blog.youkuaiyun.com/Karesis/article/details/145892799</guid><author>Karesis</author><pubDate>Thu, 27 Feb 2025 03:22:27 +0800</pubDate><description><![CDATA[PIP_CONFIG_FILE=~/temp-pip.conf pip install torch transformers datasets numpy scikit-learn tqdm PyQt5（你换成你想装的）（我已经预先激活了venv环境，没有激活虚拟环境的话请参阅其他博主文章）3.（我的情况）系统深层有问题，使用临时配置文件进行安装。今天使用阿里云，准备跑ai，出现pip无法安装的问题。1.选择文件夹：（环境：vscode+ssh）重新激活虚拟环境，尝试安装（正常使用pip）]]></description><category></category></item><item><title><![CDATA[一分钟解决matplotlib中的中文显示和负号显示问题]]></title><link>https://blog.youkuaiyun.com/Karesis/article/details/145865787</link><guid>https://blog.youkuaiyun.com/Karesis/article/details/145865787</guid><author>Karesis</author><pubDate>Wed, 26 Feb 2025 00:07:21 +0800</pubDate><description><![CDATA[plt.rcParams['axes.unicode_minus']=False#接在上面那行代码后面。我电脑里支持的中文字体有AR PL UMing CN,AR PL UKai CN等。plt.rcParams['font.sans-serif']=['你的字体']一般Windows会有Microsoft YaHei。Linux会有WenQuanYi Micro Hei。使用matplotlib画图，中文字体无法显示。**从所列出字体中找寻支持中文的字体。还可以顺带把负号显示问题也解决了。]]></description><category></category></item></channel></rss>