分享您的想法,参加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)))中不再必须相等。

这导致expresso规则引擎依赖于非唯一lvars,在Clojure 1.7下失败

将identical?更改为=可以修复问题。

4 答案

0

评论:由:dnolen

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

0

评论:由:mschuene

对不起没有及时回答。
哪些两个测试失败?它们似乎并不总是失败。我使用mvn test得到的零失败。
此外,当检查核心逻辑master的新副本,应用此补丁并运行测试,所有测试都通过。

~/programming $ git clone https://github.com/clojure/core.logic
正在将'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
(链接:信息) 正在扫描项目...
(链接:警告)
(链接:警告) 在构建 org.clojure:core.logic:jar:0.8.11-SNAPSHOT 的有效模型时遇到一些问题。
(链接:警告) 表达式 ${artifactId} 已过时。请使用 ${project.artifactId} 代替。
(链接:警告)
(链接:警告) 极力推荐修复这些问题,因为它们威胁到构建的稳定性。
(链接:警告)
(链接:警告) 因此,未来的 Maven 版本可能不再支持构建这类不规范的项目。
(链接:警告)
(链接:信息)
(链接:信息) ------------------------------------------------------------------------
(链接:信息) 正在构建 core.logic 0.8.11-SNAPSHOT
(链接:信息) ------------------------------------------------------------------------
(链接:信息)
(链接:信息) --- maven-enforcer-plugin:1.0:enforce (enforce-maven) @ core.logic ---
(链接:信息)
(链接:信息) --- build-helper-maven-plugin:1.5:add-source (add-clojure-source-dirs) @ core.logic ---
(链接:信息) 源目录:/home/kima/programming/core.logic/src/main/clojure 已添加。
(链接:信息)
(链接:信息) --- build-helper-maven-plugin:1.5:add-resource (add-clojure-source-dirs) @ core.logic ---
(链接:信息)
(链接:信息) --- build-helper-maven-plugin:1.5:add-test-source (add-clojure-test-source-dirs) @ core.logic ---
(链接:信息) 测试源目录:/home/kima/programming/core.logic/src/test/clojure 已添加。
(链接:信息)
(链接:信息) --- build-helper-maven-plugin:1.5:add-test-resource (add-clojure-test-source-dirs) @ core.logic ---
(链接:信息)
(链接:信息) --- maven-resources-plugin:2.3:resources (default-resources) @ core.logic ---
(链接:信息) 使用 'UTF-8' 编码复制过滤过的资源。
(链接:信息) 跳过不存在的资源目录 /home/kima/programming/core.logic/src/main/resources
(链接:信息) 复制 14 个资源
(链接:信息)
(链接:信息) --- maven-compiler-plugin:3.1:compile (default-compile) @ core.logic ---
(链接:信息) 无需编译 - 所有类都是最新的
(链接:信息)
(链接:信息) --- 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
(链接:信息)
(链接:信息) --- maven-resources-plugin:2.3:testResources (default-testResources) @ core.logic ---
(链接:信息) 使用 'UTF-8' 编码复制过滤过的资源。
(链接:信息) 跳过不存在的资源目录 /home/kima/programming/core.logic/src/test/resources
(链接:信息) 复制 3 个资源
(链接:信息)
(链接:信息) --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ core.logic ---
(链接:信息) 无需编译 - 所有类都是最新的
(链接:信息)
(链接:信息) --- maven-surefire-plugin:2.10:test (default-test) @ core.logic ---
(链接:信息) Surefire 报告目录:/home/kima/programming/core.logic/target/surefire-reports


T E S T S

结果

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

(链接:信息)
(链接:信息) --- 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 个错误。
(链接:信息) ------------------------------------------------------------------------
(链接:信息) 构建成功
(链接:信息) ------------------------------------------------------------------------
(链接:信息) 总时间:33.466秒
(链接:信息) 完成时间:2015年7月26日日 14:03:54 CEST
(链接:信息) 最终内存:12M/300M
(链接:信息) ------------------------------------------------------------------------

~/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(由alex+import报告)
...