您现在的位置:首页行业资讯

Clojure 1.10 发布,改进错误报告和Java兼容性--中享思途

昨天,Clojure团队发布了Clojure 1.10,这是一种动态的通用编程语言。 Clojure将代码视为数据并具有Lisp宏系统。

青岛Java培训机构--中享思途

Clojure 1.10有什么新功能?
Java兼容性和依赖性
Java 8是Clojure 1.10的最低要求。
Clojure 1.10附带ASM 6.2并更新了javadoc链接。
此版本中已删除条件逻辑。
添加了类型提示以解决JDK 11中的反射歧义。
spec.alpha依赖已更新为0.2.176
core.specs.alpha依赖关系已更新为0.2.44
打印错误Error Printing
在Clojure 1.10中,错误被分为不同的阶段,例如:
:read-source:读取REPL中的字符或源文件时抛出的错误。
:macro-syntax-check:在宏调用的语法中发现的语法错误,无论是来自spec还是来自抛出IllegalArgumentException,IllegalStateException或ExceptionInfo的宏。
:macroexpansion:宏评估期间抛出的所有错误都称为宏扩展错误。
:compile-syntax-check:编译时捕获的语法错误。
:compilation:这是在编译期间捕获的非语法错误。
:execution:执行时抛出的任何错误都被称为执行错误。
:read-eval-result:读取执行结果时抛出的错误被归类为read-eval-result错误。
:print-eval-result:打印执行结果时抛出的错误称为print-eval-result error.Protocol extension by metadata
此版本附带了一个新选项:extend-via-metadata。当:extends-via-metadata为true时,值可以通过添加元数据来扩展协议。首先检查协议实现的直接定义,例如defrecord,deftype,reify。此外,检查它们的元数据定义,然后检查外部扩展,例如,扩展,扩展类型,扩展协议。
Tap
Clojure 1.10附带tap,一个共享且可全局访问的系统,用于将一系列信息或诊断值分配给一组处理函数。它可以用作更好的调试程序和日志记录等工具。函数tap>向一组抽头发送一个值。点击功能可以阻止(例如对于流)并且永远不会阻止对点击的调用>。无限期阻塞可能导致分接值下降。
读取字符串捕获模式
此版本附带read + string函数,不仅可以模拟读取,还可以捕获读取的字符串。它返回读取值和空白修剪的读取字符串。此函数需要LineNumberingPushbackReader。
Prepl(alpha)
Prepl是一种新的基于流的REPL,具有适合程序化使用的结构化输出。在prepl中,从读取器读取表单并返回返回值的数据映射(如果成功),输出到* out *(可能很多),输出到* err *(可能很多),或者tap>值(可能很多) 。
Clojure 1.10中的其他功能包括,io-prepl,绑定到* in *和* out *的prepl,它与Clojure套接字服务器和remote-prepl一起使用,这是一个可以通过套接字连接到远程prepl的prepl
Datafy和nav
clojure.datafy函数具有对象的数据转换功能。 datafy和nav函数可用于转换和导航对象图。 datafy仍处于alpha阶段。
主要错误修复
ASM回归已在此版本中得到修复。
在之前的版本中,已弃用的JDK API存在问题,已修复。
静态接口方法调用的无效字节码生成已得到修复。
已从HashCollisionNode中删除冗余密钥比较。
此版本报告clojure.test中未捕获的ExceptionInfo的正确行号。
很多用户都很欣赏Clojure团队为这个项目所做的努力。根据大多数用户的说法,这个版本可能被证明是开发人员工具的更好基础。用户对更新的调试消息和错误修复感到满意。
Clojure非常注重向后兼容性。这种语言是由经验丰富且成熟的人设计的,并没有像许多其他语言那样经历“让所有东西全部重新开始”的阶段。“虽然很少有用户仍然喜欢偶尔更新,以便他们获得更好的API。
虽然REPL使用无处不在的stdio流范例并且效率很高,但它们的主要缺点是将评估输出与打印输出混合(“打印”步骤)。很少有用户将此项目与unrepl链接,如果设计适用于项目,则会感到困惑。
Clojure是稳定的,它没有静态类型系统。此外,用户对更改日志不满意。但是,此版本在开发人员社区中提出了一些问题。这里的一个重要问题是PREPL会在某一天取代远程API吗?看看下一组Clojure版本是否真的会发生这种情况会很有趣。
在Clojure上获取有关Clojure 1.10的更多信息。

【关键词:青岛Java培训机构,正规Java开发培训,Java培训费用,Java培训哪家好,中享思途】

 st_bottom
青岛Java培训,青岛HTML5培训,青岛UI培训,青岛IT培训,青岛嵌入式培训,青岛运维培训,Java就业培训,专业ui培训,前端开发培训,嵌入式培训价格,运维培训哪家好,IT培训,青岛思途,中享思途IT培训
Copyright © 青岛思途共享科技信息服务有限公司 鲁ICP备14027489号-2

鲁公网安备 37021402000988号

青岛Java培训,青岛HTML5培训,青岛UI培训,青岛IT培训,青岛嵌入式培训,青岛运维培训,Java就业培训,专业ui培训,前端开发培训,嵌入式培训价格,运维培训哪家好,IT培训,青岛思途,中享思途IT培训