KSeExpr 程序库 4.0.0 版已经推出

本文发表时间:   2020 年 11 月 17 日

Pattern generated by KSeExpr

今天,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()函数已被加入。

下载

源代码: kseexpr-4.0.1.0.tar.gz

哈希值:

  • 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)

订阅 Krita 新版软件通知

填写电邮地址,在 Krita 推出新版时收到邮件通知,不会发送其他信息: