协程框架(libcopp) 小幅优化
最近抽空继续对 libcopp 进行了更新和小幅优化。 首先的Merge了 boost.context 1.70.0 。这次boost.context的更新似乎和它写进 CHANGELOG 里的并不完全一致,匹配的只看到 macho 架构的脏数据操作。 不过另外它增加了新的平台支持 mips64,我目前还是简单导入了,但是平台检测工具还没有写,如果要使用是可以通过编译参数切过去的,不过我感觉没人会这么用吧?我自己用都得看一下之前怎么写的。
最近抽空继续对 libcopp 进行了更新和小幅优化。 首先的Merge了 boost.context 1.70.0 。这次boost.context的更新似乎和它写进 CHANGELOG 里的并不完全一致,匹配的只看到 macho 架构的脏数据操作。 不过另外它增加了新的平台支持 mips64,我目前还是简单导入了,但是平台检测工具还没有写,如果要使用是可以通过编译参数切过去的,不过我感觉没人会这么用吧?我自己用都得看一下之前怎么写的。
过年啦,最近在看一些非技术性的东西,Anna 的Paper也还没看完。随手优化了下Blog的主题,修复和优化了一些小问题。然后来Merge了一下 boost.context 最新 1.69.0 版本的asm部分到 libcopp。
其实我有一直跟进 boost.context 的版本发布,但是现在的版本已经少有BUG了,最近的几次 boost 的 release对于 boost.context 的变化很少,而且我集成的部分也基本上没涉及到,所以最近的两个版本都没有急着Merge。 1.68.0 版本的变化是修复使用 context-impl=ucontext 时,链接报重定义的问题。但是我在 libcopp 里仅使用了它上下文切换的部分和栈与上下文结构,没有使用它的协程对象的部分(主要是觉得它的实现不好用,而且有一些历史遗留包袱)。所以这个对 libcopp 来说相当于没有变化。而在 1.69.0 里主要也是一些环境的编译问题和 boost 构建工具和Jamfile.v2方面的优化。不过有一项是和 libcopp 有一些关系的,那就是为ELF的ABI添加了 .file 段。按照PR提交者的说法是如果不添加这个, 链接器会自动添加一个编译时的绝对地址(详情见: https://github.com/boostorg/context/issues/91 )。这个也是辅助性质的,不属于实际功能的改动。