两个分支合成项目
Stefan Behnel的2008年讲稿把2007年7月28日记为Cython正式启动日。此前,lxml的Pyrex分支和数学软件Sage的SageX分支各自发展;合并后,由Robert Bradshaw与Behnel主导开发。
Python软件包索引另将Cython 0.9.6条目的发布日期标为2007年7月29日。
数学软件提出的需求
Bradshaw的2007年报告说明,计算机代数系统需要编译语言;Pyrex让原有Python程序逐步迁移,同时利用Python与C代码。
Pyrex的补丁难以合入原项目。参与者中,Thomas Hunger参与扩展类定义里的可执行语句,Ulisses Furquim处理回调和全局解释器锁。
参考:[3]
从源文件到扩展模块
2007年8月31日上传的0.9.6.5包保留了早期构建过程:先把.pyx源文件译成.c文件,再用平台上的C编译器编译、链接,扩展随后可由Python导入调用。
求素数程序中的两类数据
包内primes.pyx示例把候选数和循环变量声明为C整数,用C数组存放已找到的素数,返回结果则是Python列表。程序从2开始试除。加入列表时,C整数自动转换为Python对象。
试除循环因而直接译为C代码。
参考:[4]
放进实际软件的检验
首次Sage Bug Day在2007年8月举行,参与者分处圣迭戈、波士顿和多特蒙德附近,通过网络聊天共同排查错误。活动要求每项工作先有问题编号;修补后还要共享测试结果,让别人验证。
开发者检查第226号问题时,起初打算调整旧补丁来适配Cython;随后用未应用该补丁的Cython处理regression.pyx,确认不加补丁也能通过,便关闭了原来针对Pyrex的报告。紧接着,他们又发现查看Cython版本的选项表现异常,把它另登记为第438号问题。
参考:[5]