|
|
fa5611dabd
|
fix(log): 修复默认日志实例命名冲突并优化宏定义
将 `logger_root` 重命名为 `__default_logger_root` 以避免潜在的符号冲突,
同时简化日志宏定义逻辑,提升代码可读性与维护性。此外,为防止 clang-format
格式化影响日志宏的排版,添加了 clang-format 开关注释。
refactor(memory): 优化 memcmp 函数中的 switch-case 结构
在 `smcc_memcmp` 函数中为每个 case 添加 `/* fall through */` 注释,
明确表示故意穿透到下一个 case,提高代码意图的清晰度,并增强静态分析工具的兼容性。
|
2025-11-22 16:59:28 +08:00 |
|
|
|
63f6f13883
|
feat(cbuild): 重构构建系统并迁移至 tools/cbuild
将 `cbuild.py` 迁移至 `tools/cbuild/` 并进行大量功能增强。引入依赖解析器、支持颜色日志输出、
改进包配置默认值处理、完善构建目标识别与拓扑排序依赖管理。同时添加 `.gitignore` 和
`pyproject.toml` 以支持标准 Python 包结构,并更新 README 文档。
新增命令支持:tree(显示依赖树)、clean(带文件统计)、test(运行测试)等,
优化了 Windows 平台下的可执行文件扩展名处理逻辑。
移除了旧的 `wc.py` 行数统计脚本。
|
2025-11-22 15:08:49 +08:00 |
|
|
|
d6941e1d2f
|
feat(cbuild): 添加构建路径去重与相对化处理
新增 `_path_collection` 方法用于统一处理路径的解析、去重及相对化,
优化对象文件路径生成逻辑,支持更安全的路径映射机制,防止文件冲突。
同时添加对构建目录的清理功能(clean 命令),完善构建生命周期管理。
主要变更包括:
- 引入 `hashlib` 模块以支持路径哈希命名
- 重构 `get_build_components` 和 `get_object_path` 方法
- 新增 `clean` 命令及相关实现
- 改进命令行参数支持,增加 "clean" 选项
|
2025-11-21 18:03:10 +08:00 |
|
|
|
a3322f0d4c
|
feat(runtime): 添加字符串和内存操作工具函数
- 在 `core_mem.h` 中新增 `smcc_strhash32`、`smcc_strlen` 和 `smcc_strcmp` 函数,
提供 C 字符串的哈希、长度获取和比较功能
- 完善 `core_str.h` 中 `cstring_t` 结构体及相关操作函数的注释说明
- 更新 `core_str.h` 头文件保护宏命名,增强模块标识一致性
- 修改 `core_vec.h` 文件头部保护宏名称以匹配实际文件名
另外,在 lexer 测试运行代码中引入日志相关头文件并调整日志级别设置逻辑。
|
2025-11-21 17:52:42 +08:00 |
|
|
|
164bab0f13
|
fix(lexer): 修复词法分析器中的关键字比较与字符串处理逻辑
修正了关键字表的注释,明确要求其必须按字典序排列以确保二分查找正确性。
在词法分析过程中,修复标识符解析时对 `cstring` 的使用问题,并调整 token 类型赋值顺序,
避免潜在的未定义行为。同时新增测试文件用于验证操作符、关键字及各类字面量的识别准确性,
并更新测试运行器的日志级别控制参数。
|
2025-11-20 22:49:22 +08:00 |
|
|
|
f29fd92fdf
|
feat(core): 添加字符串长度计算函数并优化数据结构定义
- 在 `core_mem.h` 中新增 `smcc_strlen` 函数,用于计算字符串长度
- 调整 `VEC` 宏定义参数,移除冗余的 name 参数,增强结构体声明一致性
- 修改 `cstring_from_cstr` 返回值字段顺序,保持代码风格统一
- 在 `libcore.h` 中增加日志相关宏定义的保护判断,防止重复定义冲突
|
2025-11-20 22:26:49 +08:00 |
|
|
|
d1fafa830d
|
format using clang-format to formate code
|
2025-11-20 17:55:08 +08:00 |
|
|
|
9762cf8a2b
|
feat(log): 支持设置多个日志级别的组合
将 `log_set_level` 函数的参数类型从 `log_level_t` 改为 `int`,
以支持传入多个日志级别的按位或组合。
同时调整测试代码中的日志级别设置方式,并修复部分逻辑引用问题,以及#未知宏跳过更多的行的bug。
|
2025-11-20 14:30:14 +08:00 |
|
|
|
47b56d52f6
|
feat(core): 重构词法分析器流接口并迁移至 core 库
将 lexer_stream 抽象为 core_stream,统一运行时核心组件的输入流模型。
移除了旧的 `lexer_stream.h` 定义,并将其功能完整迁移至 `core_stream.h` 中。
更新了内存流实现以适配新的 core_stream 接口,并修复部分资源释放问题。
同时调整日志模块包含方式,增强模块间解耦能力。
此变更影响词法分析器对输入流的操作方式,所有涉及 stream 的类型与函数均已替换为 core 前缀版本。
测试用例同步更新并验证通过。
|
2025-11-20 14:17:03 +08:00 |
|
|
|
5c24f35c87
|
feat 新的运行时环境
|
2025-11-20 11:22:37 +08:00 |
|
|
|
e22811f2f5
|
feat(build): 引入新的 Python 构建系统并移除旧 Makefile
新增基于 Python 的构建脚本 `cbuild.py`,支持包管理、依赖解析和模块化编译。
同时添加 `.gitignore` 忽略 `build` 目录,并在 `justfile` 中更新构建命令。
移除了原有的 `lib/Makefile` 和主目录下的相关 make 规则,统一使用新构建系统。
|
2025-11-20 10:44:59 +08:00 |
|
|
|
8d97fe896c
|
chore: 更新 .gitignore 文件
- 添加 docs 文件夹到忽略列表,以忽略 Doxygen 生成的文件
- 保持原有的忽略规则不变
|
2025-04-05 23:11:39 +08:00 |
|
|
|
c800b48ca2
|
refactor(riscv32): 重构 RISC-V 指令定义
- 在 riscv32_def.h 中添加 RV_INSTRUCTIONS 宏,列出所有指令
- 在 riscv32_mcode.c 中使用宏定义指令数组,减少代码重复
- 此重构简化了指令添加和修改的过程,提高了代码可维护性
|
2025-04-02 15:56:51 +08:00 |
|
|
|
1cf26c43f3
|
bugfix 添加lib的修改
|
2025-04-01 23:28:15 +08:00 |
|
|
|
b57f21556a
|
stable 重构文件结构
抽象出Machine Code
|
2025-04-01 23:27:25 +08:00 |
|
|
|
74f43a1ab7
|
stable
|
2025-04-01 00:13:21 +08:00 |
|
|
|
2b4857001c
|
feat(frontend): 重构词法分析器
- 添加 .gitignore 文件,忽略编译器生成的二进制文件
- 重构 lexer.c 文件,改进了关键字处理和字符串处理
- 更新前端的前端、解析器和 AST 相关文件,以适应新的词法分析器
- 优化了 token 相关的定义和函数,引入了新的 token 类型
|
2025-03-23 12:13:16 +08:00 |
|
|
|
05c637e594
|
refactor: 重构前端代码并添加日志功能
- 重命名和重构了多个文件,包括 lexer、parser 和 AST 相关代码
- 添加了日志功能,使用 LOG_* 宏替代原有的 error 和 warn 函数
- 优化了错误处理和内存分配方式
- 调整了代码结构,提高了模块化和可读性
|
2025-03-19 12:22:55 +08:00 |
|
|
|
172d72b0a0
|
feat(backend/riscv32): 实现基础的编译器功能
- 完成 RV32IMA 指令集的代码生成
- 添加整数运算、分支、调用等基本指令支持
- 实现从 IR 到机器码的转换
- 添加简单的测试用例和测试框架
|
2025-03-08 16:50:21 +08:00 |
|
|
|
95bf44eb3f
|
feat add func call and rewrite codes
|
2025-03-07 12:29:53 +08:00 |
|
|
|
09299e339c
|
init basic
|
2025-03-05 15:45:19 +08:00 |
|