请在 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得到零个失败。
而且,当我检查core.logic master的最新副本,应用补丁并运行测试时,所有测试都通过。

~/programming $ git clone https://github.com/clojure/core.logic
正在克隆到 'core.logic'...
远程:计算对象:14868,已完成。
远程:总数 14868(delta 0),重用 0(delta 0),未使用包装 14868
接收对象:100%(14868/14868),3.02 MiB | 1.86 MiB/s,已完成。
解决delta:100%(3955/3955),已完成。
检查连通性... 完成。
~/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
(link: INFO) 扫描项目...
(link: WARNING)
(link: WARNING) 当构建org.clojure:core.logic:jar:0.8.11-SNAPSHOT的有效模型时遇到了一些问题
(link: WARNING) 表达式${artifactId}已弃用。请使用${project.artifactId}代替。
(link: WARNING)
(链接:警告) 非常推荐修复这些问题,因为它们威胁到构建的稳定性。
(link: WARNING)
(链接:警告) 因此,未来的 Maven 版本可能不再支持构建这种不规范的项目。
(link: WARNING)
(链接:信息)
(链接:信息) ------------------------------------------------------------------------
(链接:信息) 正在构建 core.logic 0.8.11-SNAPSHOT
(链接:信息) ------------------------------------------------------------------------
(链接:信息)
(链接:信息) --- maven-enforcer-plugin:1.0:enforce (enforce-maven) @ core.logic ---
(链接:信息)
(链接:信息) 源目录:/home/kima/programming/core.logic/src/main/clojure 添加。
(链接:信息) --- build-helper-maven-plugin:1.5:add-source (add-clojure-source-dirs) @ core.logic ---
(链接:信息)
(链接:信息) --- 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


测试

结果

已运行测试: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 个错误。
(链接:信息) ------------------------------------------------------------------------
(链接:信息) build 成功
(链接:信息) ------------------------------------------------------------------------
(链接:信息) 总时间: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
by

评论者:ticking

同样,我应用了这个补丁后也没有看到失败的测试。

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