2024 Clojure 状态调查! 中分享您的想法。

欢迎!请参阅 关于页面 了解更多关于如何使用本站的信息。

+2 投票
Clojure
重新标记

Q1: 由于 Clojure 和 ClojureScript 在 java.net.URIgoog.Uri 上实现了 clojure.core/uri?,为什么没有直接在 Clojure 中提供 #uri edn 扩展?

以下是一个记录如何操作和测试的方法:如何在 Clojure/Script 中安装 #uri 读取扩展

尽管有说明“没有命名空间限定符的读取标签保留给 Clojure”,我认为这是安全的,因为如果 Clojure 最终提供它,那么:(1) 这个实现就会过时并应该被移除;(2) 这个实现意图是核心提供的确切实现。

然而,Borkdude 指出了

  • borkdude 问题是,如果你在类路径上有关闭 数据_readers.cljc 的东西,覆盖内置标签是不容易撤销的
  • Dustin Getz 哦,所以如果这个扩展最终被作为一个传递依赖项绑定在一些库中
  • borkdude是的。所以即使你想移除它,你知道,软件并不是那么容易消亡的

Q2: 因此,我要求有一天在核心提供这个

Q3: 这个实现正确吗?(我的意图是一劳永逸地记录这一点,所以我很感激反馈/评论。)

Q4: transit-clj & transit-cljs 不会读取 java.net.URI 和 goog.Uri(与 clojure.core/uri?谓词不一致),而是读取为 cct.Uri。为什么是这样?

1 答案

+2 投票

精选
 
最佳答案

Q1 - 请勿自行使用未经验证的读者。创建那样广泛的功能将使我们在核心中添加该功能或导致许多问题变得困难。这正是目的所在。

Q2 - 已添加jira https://clojure.atlassian.net/browse/CLJ-2731

Q3 - 未知,很高兴审查Clojure特定的补丁

Q4 - 这里有一些历史,我不知情或已忘记所有内容,某些决策可能不再相关。我知道transit仓库中关于此有一些问题

...