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

欢迎!请参阅 关于 页面以获取更多关于如何使用本站的详细信息。

0 投票
data.priority-map

随着 Clojure 1.7 的发布和读取条件,是否有人对添加 ClojureScript 支持感兴趣?已经有了在 https://github.com/tailrecursion/cljs-priority-map 上的一个实现。Alan Dipert 可能会考虑将其捐赠给 Clojure 核心,否则我愿意着手进行移植。

10 个答案

0 投票

评论者:markengelberg

我同意这是一个有价值的项目,并且利用现有的移植可能有助于很大程度。你愿意牵头询问 Alan Dipert 并且探索如何有效地使用读取条件来合并两者吗?

0 投票

评论者:timvisher

我们还在考虑做这件事吗?

0 投票

评论者:markengelberg

我仍然支持这个想法,但现在没有时间自己来完成它。

0 投票

评论者:timvisher

太棒了。我现在正在深入研究这个问题。我刚刚开启了一个不同的问题来尝试将行结束符统一。http://dev.clojure.org/jira/browse/DPRIMAP-9

0 投票

评论者:timvisher

关于Clojure版本支持,我们想怎么做?如果我们能够接受放弃对1.7以下版本的兼容性,那么我可以使用cljc来针对两个平台。如果我们希望保持对旧版本的兼容性,那么我必须采取不同的方法。

意见如何?

0 投票

评论者:markengelberg

我在早些时候的评论中说过,“我认为这值得去做”,那个评论完全是由“cljc是现代Clojure库应有的做法”这个感觉驱动的。但越想越多,我意识到通过合并Clojure和Clojurescript版本,我们获得的利益并不明确,特别是因为这个代码几乎完全是关于实现完全不同的协议和接口,所以共有代码非常少。由于代码之间共性很少,也不清楚,相比两个独立的文件,将代码合并到一个文件中会更容易维护或扩展。除此之外,自创建以来,优先级映射已经基本没有发生变化,未来预计变化也很少。

因此,我开始对我们的努力和引入错误的风险是否值得怀疑。但本着探索这个问题的态度,我认为cljc是可行的。

所以在你深入研究之前,我想听听你的看法:将两个文件合并成一个cljc文件有什么好处?

0 投票

评论者:timvisher

我认为这值得关注,因为这会给ClojureScript带来‘官方’的投稿支持。我对这很感兴趣,因为我需要在项目中使用优先级队列,同时也想尝试使用cljc。所以这部分是一个学习练习,也是一项实际努力。

话虽如此,我对类型声明差异之大感到非常惊讶。我本以为可以用#?简单地交换一些类型,但实现方式差异很大。我还不能确定自己能统一多少,但希望会很多。

所以,无论你是否接受,我都想进行这个练习。

我假设你上面所说的默认接受了1.7以下作为最低支持版本?

0 投票

评论者:markengelberg

是的,我对最低支持版本为1.7没有意见。

0 投票

评论人:alexmiller

请注意,目前我们使用的 Hudson CI 系统无法构建 contrib 项目中的 cljc 项目。为了构建,需要 clojure-maven-plugin 的新版本,其中一些插件需要 Maven 3,而我们使用的旧版 Hudson 不支持 Maven 3。

这对我的优先级相当高,因为我们已经在为 test.check 打这场仗了(而且很快就会轮到其他人的项目了)。但您可能希望等到我们解决这个问题后再采取行动。

虽然没有 CI 服务器,可以手动构建和发布项目(我已经为 test.cehck 做过这件事),但这并非易事。

0 投票
参考:[DPRIMAP-8](https://clojure.atlassian.net/browse/DPRIMAP-8) (由 [email protected] 报告)
...