2024年Clojure现状调查中分享您的看法!

欢迎!有关如何操作的更多信息,请参阅关于页面。

0
core.logic

Clojure 1.7更改了创建符号时的字符串相交,如这里所述
https://github.com/clojure/clojure/blob/master/changes.md#23-keyword-and-symbol-construction

因此,具有相同名称的两个非独特lvars不再必须使用当前
Lvar等价方法(检查(identical? name (:name o)))相等。

这导致依赖于非独特lvars的规则引擎的expresso在Clojure 1.7下失败

将identical?改为=修复了问题。

4 答案

0

评论由:dnolen

当我应用这个补丁时,有两个测试失败。我们可以修复这些测试吗?谢谢!

0

评论由:mschuene

抱歉没有更快地回复。
哪两个测试失败了?它们似乎并不总是失败。我用mvn test得到零失败。
另外,当我检出core.logic master的全新副本,应用补丁并运行测试时,所有测试都成功。

~/programming $ git clone https://github.com/clojure/core.logic
将.into 'core.logic'...
remote: Counting objects: 14868, done.
remote: Total 14868 (delta 0), reused 0 (delta 0), pack-reused 14868
Receiving objects: 100% (14868/14868), 3.02 MiB | 1.86 MiB/s, done.
Resolving deltas: 100% (3955/3955), done.
Checking connectivity... done.
~/programming $ cd core.logic/
~/programming/core.logic $ git apply 0001-alter-equality-of-non-unique-lvars-for-clojure-1.7.patch
~/programming/core.logic $ mvn test
(链接: INFO) 正在扫描项目...
(链接: WARNING)
(链接: WARNING) 在构建 org.clojure:core.logic:jar:0.8.11-SNAPSHOT 的有效模型时遇到了一些问题
(链接: WARNING) 表达式 ${artifactId} 已过时。请使用 ${project.artifactId} 代替。
(链接: WARNING)
(链接: WARNING) 强烈建议修复这些问题,因为它们可能威胁到您的构建稳定性。
(链接: WARNING)
(链接: WARNING) 因此,未来的 Maven 版本可能不再支持构建此类有缺陷的项目。
(链接: WARNING)
(链接: INFO)
(链接: INFO) ------------------------------------------------------------------------
(链接: INFO) 正在构建 core.logic 0.8.11-SNAPSHOT
(链接: INFO) ------------------------------------------------------------------------
(链接: INFO)
(链接: INFO) --- maven-enforcer-plugin:1.0:enforce (enforce-maven) @ core.logic ---
(链接: INFO)
(链接: INFO) --- build-helper-maven-plugin:1.5:add-source (add-clojure-source-dirs) @ core.logic ---
(链接: INFO) 已添加源目录: /home/kima/programming/core.logic/src/main/clojure
(链接: INFO)
(链接: INFO) --- build-helper-maven-plugin:1.5:add-resource (add-clojure-source-dirs) @ core.logic ---
(链接: INFO)
(链接: INFO) --- build-helper-maven-plugin:1.5:add-test-source (add-clojure-test-source-dirs) @ core.logic ---
(链接: INFO) 已添加测试源目录: /home/kima/programming/core.logic/src/test/clojure
(链接: INFO)
(链接: INFO) --- build-helper-maven-plugin:1.5:add-test-resource (add-clojure-test-source-dirs) @ core.logic ---
(链接: INFO)
(链接: INFO) --- maven-resources-plugin:2.3:resources (default-resources) @ core.logic ---
(链接: INFO) 使用 'UTF-8' 编码复制经过筛选的资源。
(链接: INFO) 跳过不存在的资源目录 /home/kima/programming/core.logic/src/main/resources
(链接: INFO) 复制 14 个资源
(链接: INFO)
(链接: INFO) --- maven-compiler-plugin:3.1:compile (default-compile) @ core.logic ---
(链接: INFO) 没有编译内容 - 所有类都已是最新的
(链接: INFO)
(链接: INFO) --- clojure-maven-plugin:1.3.13:compile (clojure-compile) @ core.logic ---
编译 clojure.core.logic.unifier 到 /tmp/classes7718945366616667003.dir
编译 clojure.core.logic 到 /tmp/classes7718945366616667003.dir
编译 clojure.core.logic.nominal 到 /tmp/classes7718945366616667003.dir
编译 clojure.core.logic.datomic 到 /tmp/classes7718945366616667003.dir
编译 clojure.core.logic.dcg 到 /tmp/classes7718945366616667003.dir
编译 clojure.core.logic.fd 到 /tmp/classes7718945366616667003.dir
编译 clojure.core.logic.pldb 到 /tmp/classes7718945366616667003.dir
编译 cljs.core.logic 到 /tmp/classes7718945366616667003.dir
编译 clojure.core.logic.arithmetic 到 /tmp/classes7718945366616667003.dir
编译 clojure.core.logic.protocols 到 /tmp/classes7718945366616667003.dir
编译 cljs.core.logic.pldb 到 /tmp/classes7718945366616667003.dir
编译 clojure.core.logic.bench 到 /tmp/classes7718945366616667003.dir
(链接: INFO)
(链接: INFO) --- maven-resources-plugin:2.3:testResources (default-testResources) @ core.logic ---
(链接: INFO) 使用 'UTF-8' 编码复制经过筛选的资源。
(链接: INFO) 跳过不存在的资源目录 /home/kima/programming/core.logic/src/test/resources
(链接: INFO) 复制 3 个资源
(链接: INFO)
(链接: INFO) --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ core.logic ---
(链接: INFO) 没有编译内容 - 所有类都已是最新的
(链接: INFO)
(链接: INFO) --- maven-surefire-plugin:2.10:test (default-test) @ core.logic ---
(链接: INFO) Surefire 报告目录: /home/kima/programming/core.logic/target/surefire-reports


测试

结果

已运行测试: 0, 失败: 0, 错误: 0, 跳过: 0

(链接: INFO)
(链接: INFO) --- clojure-maven-plugin:1.3.13:test (clojure-test) @ core.logic ---

测试 clojure.core.logic.pldb.tests

测试 clojure.core.logic.nominal.tests

测试 clojure.core.logic.tests

运行了 425 个测试,包含 661 个断言。
0 个失败,0 个错误。
(链接: INFO) ------------------------------------------------------------------------
(链接: INFO) 构建成功
(链接: INFO) ------------------------------------------------------------------------
(链接: INFO) 总耗时: 33.466s
(链接: INFO) 结束于: Sun Jul 26 14:03:54 CEST 2015
(链接: INFO) 最终内存: 12M/300M
(链接: INFO) ------------------------------------------------------------------------

~/programming/core.logic $ git status
在分支 master
您的分支与 'origin/master' 保持同步。
有一些更改尚未提交
(使用 "git add ..." 来更新要提交的内容)
(使用 "git checkout -- ..." 来丢弃工作目录中的更改)

modified:   src/main/clojure/clojure/core/logic.clj
modified:   src/test/clojure/clojure/core/logic/tests.clj

未添加任何更改到提交中(使用 "git add" 和/或 "git commit -a")

0

评论者:ticking

我也在应用这个补丁后没有看到失败的测试。

0
参考:[https://clojure.atlassian.net/browse/LOGIC-169](https://clojure.atlassian.net/browse/LOGIC-169)(由 alex+import 报告)
...