> For the complete documentation index, see [llms.txt](https://sakurs2.gitbook.io/tinycorolab-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://sakurs2.gitbook.io/tinycorolab-docs/updatelog.md).

# 📌更新日志

记录 tinyCoroLab 课程全部资源的版本更新日志

> **⚠️tinyCoro、tinyCoroLab 和 tinyCoroLabDoc 的版本号命名一致，实验者在做某版本的 tinyCoroLab 时请切换至对应版本的 tinyCoroLabDoc**

## [tinyCoro](https://github.com/sakurs2/tinyCoro)

#### \[v1.2] - 2025-06-06

**新增功能**

* 为文档新增tinyCoro Bonus Lab，用户可以根据该实验进一步拓展优化自己的tinyCoro
* 为文档新增tinyCoro 悬赏令，用户可根据自身兴趣向作者的tinyCoro贡献代码
* lab5a由选做实验升级为正式实验，实验解析制作中
* 添加并行计算模块，用户可利用tinyCoroLab提供的API进行并行计算，具体代码可见[include/coro/parallel/parallel.hpp](https://github.com/sakurs2/tinyCoroLab/blob/master/include/coro/parallel/parallel.hpp)，使用样例可见[examples/parallel\_calc.cpp](https://github.com/sakurs2/tinyCoroLab/blob/master/examples/parallel_calc.cpp)
* 添加基于ubuntu系统的CI流水线，用户可在tinyCoroLab的README中查看关于CI流水线的使用
* 重构IO模块的代码组织结构，便于后续拓展更多IO支持

#### \[io\_uring update] - 2025-05-03

**新增功能**

* io\_uring现已支持`IOSQE_FIXED_FILE`优化，通过配置文件内配置项开启

#### 变更详情

对于针对某个IO需要频繁读写的场景，对其相应的sqe开启`IOSQE_FIXED_FILE`选项可以使得io\_uring不需要对文件描述符做额外的检查工作，从而提升性能，经测试benchmark性能可以提升10%\~20%。

关于`IOSQE_FIXED_FILE`优化的具体实现采用了动态分配`FIXED_FILE`并更新的策略，这部分实现读者可以从`uring_proxy.hpp`文件获取，建议读者先了解`io_uring_register_files()`的用法。

#### \[v1.1] - 2025-04-09

**主要变更**

1.0 版本 scheduler 的设计存在诸多缺陷，在短期运行工作模式下 context 完成所有任务后会立刻停止（因为 scheduler 会在 context 启动后立刻调用`notify_stop`通知其停止，context 收到该信号在处理完所有任务后立刻停止），这导致 context 运行中无法安全的将任务派发给 scheduler，因为 scheduler 可能会把任务派发给已经停止的 context，总之，这种设计很怪异且不合理。

1.1 版本移除了工作模式这一概念，重新设计了 scheduler 对 context 的交互逻辑，现在用户使用 tinyCoro 更简单了：

```cpp
schduler::init();
submit_to_scheduler(func());
// repeat submit...
// scheduler::start(); don;t need this
scheduler::loop();
```

在提交完所有任务后只需要调用`scheduler::loop`，**scheduler 便会启动所有 context 然后等待 context 全部完成任务后再统一下发送停止信号，这样哪怕某个 context 先运行完毕也会处于阻塞态而不是停止，因为未来 scheduler 很可能向其派发新的任务**，基于此，用户可以放心的在协程任务中调用`submit_to_scheduler`。

除此外，所有测试以及样例代码中 scheduler 的运行全部采用上述代码逻辑。

#### \[v1.0] - 2025-04-01

**主要变更**

* 1.0 版本正式发布

## [tinyCoroLab](https://github.com/sakurs2/tinyCoroLab)

#### \[v1.2] - 2025-06-06

#### 变更详情

参照tinyCoro的变更详情。

#### \[io\_uring update] - 2025-05-03

#### 变更详情

参照tinyCoro的变更详情。

#### \[v1.1] - 2025-04-09

**主要变更**

* 为 lab2b 新增了一个子任务用来实现 tinyCoro1.1 版本新增的功能，并为 lab2b 新增测试样例
* 主页移除了关于运行模式的介绍，取而代之的是新的 scheduler 的设计思路

#### \[v1.0] - 2025-04-01

**主要变更**

* 1.0 版本正式发布

## [tinyCoroLabDoc](https://github.com/sakurs2/tinyCoroLabDoc)

#### \[v1.2] - 2025-06-06

#### 变更详情

参照tinyCoro的变更详情。

#### \[v1.1] - 2025-04-09

**主要变更**

为 lab2b 新增的子任务添加任务书。

#### \[v1.0] - 2025-04-01

**主要变更**

* 1.0 版本正式发布
