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
)