KSeExpr 程序库 4.0.0 版已经推出
今天,KSeExpr 程序库 4.0.0 版正式发布了。
KSeExpr 程序库是迪士尼动画工作室开发的 SeExpr 表达式语言程序库的分支,Krita 通过此程序库实现 SeExpr 可编程填充图层。KSeExpr 是 Amyspark 在 2020 年谷歌编程之夏活动中负责的项目。
主要变更项目
4.0.0 版是 KSeExpr 程序库的一次重大更新,其中最重要的变动如下:
- **项目更名为 KSeExpr。**这避免了与上游的 SeExpr 项目发生命名冲突,方便各发行版和 Krita 对本程序库进行打包作业。
- 程序库整体的
namespace(命名空间) 改为KSeExpr(在 CMake 和 C++ 中同样) 。 - 基本程序库名称改为
KSeExpr,UI 程序库名称改为KSeExprUI。include 目录也据此进行了扁平化处理,如<KSeExpr/Expression.h>和<KSeExprUI/ExprControlCollection.h>。
- 程序库整体的
- **项目许可证改为 GPL v3。**SeExpr 的原始项目代码使用的自由软件许可证是 Apache 2.0 许可证的变种,它的条款对于我们的工作带来了不少问题。我们参考 LibreOffice 的先例,将类 APL 许可证改为 GPLv3 许可证。
- 全部代码已经按照 C++14 规范 进行了更新。
- **弃用 Python 绑定和 pthread。**如果你只需要使用本程序库 (如同 Krita 那样),你只需要 Qt 和一种 C++14 编译器。
- LLVM 编译器构建的版本已经与解析器下的工作状态功能均等。我们修复了一些之前通过 LLVM 构建时会缺失的功能,例如 1D 到 3D 的自动投射和字符串运算符等。
- KSeExpr 完全支持静态 LLVM 和安卓,不再存在链接和 API 级别的问题。
- 之前只存在于文档中的 Arc trigonometric functions (弧三角函数) 和
rand()函数已被加入。
下载
哈希值:
- md5sum:
f3242a4969cda9833c2f685786310b76 kseexpr-4.0.1.0.tar.gz - sha256:
13b8455883001668f5d79c5734821c1ad2a0fbc91d019af085bb7e31cf6ce926 kseexpr-4.0.1.0.tar.gz
GPG 签名: kseexpr-4.0.1.0.tar.gz.asc.
该源代码的 tarball 文件现在通过 Amyspark 的 Github GPG 密钥 (FC00108CFD9DBF1E) 进行签名。你可以从 Amy 的 Github 档案页面下载该密钥。
4.0.0 版完整更新列表 (2020-11-12)
由于 KSeExpr 程序库项目与编程密切相关,下列更新内容不作翻译。
新增项目
- Add implementation of rand() function (
a84fe56) - Enable ECM's automatic ASAN support (
16f58e9) - Enable and fix skipped imaging and string tests (
e8b8072) - Standardize all comment parsing (
c12bdb4) - Add README for the fork (
abc4f35) - Rebrand our fork into KSeExpr (
97694c4) - Automagically deploy pregenerated parser files (
0ae6a43) - Use SPDX license statements (
83614e6) - Enable version detection (
e79c35b) - Use STL-provided mutex and drop pthread dependency (
1782a65) - Reimplement Timer (
20a25bd) - Complete the relicensing process (
b19fd13) - Enable arc functions (
08af2ef) - Add abandoned test for nested expressions (
2af1db3) - Add abandoned type check tests (
65064ad) - Implement equality between ColorSwatchEditables (
8d864ce) - Add the abandoned typePrinter executable (
2171588) - Add BSD-3 release scripts (
fe11265) - Automatically deploy version changes (
1ebb54b)
修复项目
- Fix printf format validation (
a77cbfd) - Fix LLVM's support for string variables (
13c1dcd) - Detect and link against shared libLLVM (
b57c323) - Fix compilation on Android (
3969081) - Only build KSeExprUI if Qt5 is enabled (
63a0e3f) - Sort out pregenerated parser files (
ee47a75) - Fix translation lookup (
e37d5f0) - Fix path substitution with pregenerated files (
46acc2e) - Restore compatibility with MSVC on Windows (
9a8fa7c) - Properly trim range comments (
6320439) - Fix Vec1d promotion with LLVM evaluator (
cd9651d) - Fix interpreter state dump in MinGW (
ee2ca3e) - Fix pointless negative check on demos (
7328466) - Fix SpecExaminer and add abandoned pattern matcher tool (
366e733)
移除项目
- Clean up various strings (
8218ab3) - Remove Disney internal widgets (part 1) (
a30cfe5) - Remove Disney internal widgets (part 2) (
14b2610) - Remove Disney internal widgets (part 3) (
d3b9d34) - Remove Disney internal widgets (part 4) (
bc65b77) - Remove Disney-internal libraries (
da04f96) - Remove Qt 4 compatibility (
bdef3e2) - Drop unused demos (
884a977) - Assorted cleanup (
6c5134f) - Assorted linkage cleanup (
18af7e6) - Clean up KSeExpr header install logic (
98b4c50) - Assorted cleanup in KSeExpr (
735958f) - Remove more unused documentation (
8a2ac53) - Remove KSeExprUIPy (
68baed1) - Remove Platform header (
6d6db30) - Cleanup and remove the plugin system (
b3c4d48) - Remove unused files in KSeExprUI (
6229b88) - Remove last remnants of sscanf/old number parse logic (
5717cd6) - Remove leftovers of Disney's Python tests (
df24cc4) - General cleanup of the package lookup system (
d332d35) - Clean up last remaining warnings (
36ea2d5) - Remove unused variable in the parser (
813d1a0) - Remove redundant inclusion (
fb55833)
更改项目
- Set Krita build (library and UI only) as default (
2deb17a) - Update pregenerated files (
2c8481c) - Update and clean Doxygen docs (
7df9011) - Make performance monitoring an option (
6253bcd) - clang-tidy: Curve (
5584b30) - clang-tidy: Vec (
b02a8b0) - clang-tidy: Utils (
f9b89ae) - Update README (
05212cb) - clang-tidy: ExprType (
e07d9d1) - clang-tidy: ExprPatterns (
03010ff) - clang-tidy: ExprEnv (
a22d3a3) - Modernize imageSynth demo to C++14 (
474e268) - Modernize imageEditor demo to C++14 (
a9c7538) - Modernize asciiGraph demo to C++14 (
ec103be) - Modernize asciiCalculator demo to C++14 (
8939da6) - Modernize imageSynthForPaint3d demo to C++14 (
7658d75) - clang-tidy in KSeExprUI (
85860c0) - clang-tidy: Context (
574b711) - clang-tidy: ErrorCode (
74860fb) - constexpr-ize noise tables (
7335fc7) - clang-tidy: VarBlock (
935da03) - clang-tidy: Interpreter (
83ed077) - Split tests by category and use GTest main() (
933f0cc) - clang-tidy: ExprColorCurve (
675f160) - clang-tidy: ExprBrowser (
84e2782) - clang-tidy: ExprWalker (
5d24b2b) - clang-tidy: ExprColorSwatch (
c667d97) - clang-tidy: ExprControl (
9313acf) - clang-tidy: ExprControlCollection (
fd0693d) - clang-tidy: ExprCurve (
efeff98) - clang-tidy: ExprEditor (
338dc3c) - clang-tidy: Evaluator (LLVM disabled) (
3927858) - clang-tidy: ExprBuiltins (part 1) (
8e8fe4f) - clang-tidy: ExprBuiltins (part 2) (
05c7e70) - clang-tidy unused variables (
58aef1d) - Make Examiner::post pure virtual at last (
e5cc038) - clang-tidy: ExprNode (
7da56ba) - clang-tidy: ExprLLVM (LLVM disabled) (
aa34f51) - clang-tidy: ExprFuncX (
6715180) - Modernize tests to C++14 (
455c3b6) - clang-tidy Utils (
ec8c1f0) - clang-tidy: Evaluator (LLVM enabled) (
9e82340) - clang-tidy: ExprLLVMCodeGeneration (
f23aca9) - :gem: v4.0.0.0 (
5f02791)
