欢迎!有关本网站的更多信息,请参阅关于页面。
你好:
我准备了一个补丁来修复IFn无法使用超过20个参数调用的bug。在apply_test.cljs中对应的一些测试用例几年前提。
这很可能是修复了元函数、多方法、spec函数以及所有的IFn实现。
这些是我找到的相关问题报告
"多方法apply使用>20个参数失败" https://clojure.atlassian.net/browse/CLJS-3024
"with-meta对于可变参数函数不起作用" https://clojure.atlassian.net/browse/CLJS-2446
"高阶arity .apply在spec-instrumented函数上抛出"Invalid arity"错误" https://clojure.atlassian.net/browse/CLJS-2710
也许这也 fixes/完成了这个自2012年起的问题
"编译器需要将调用后的所有参数20个之后放入array-seq中" https://clojure.atlassian.net/browse/CLJS-364
这里是这个补丁;一个单独的小提交
https://github.com/active-group/clojurescript/commit/122e1ab4be7230841e15b392223d4b33560cfa5b
它还删除了一个多余的'ac clone'调用(concat已经有了浅层拷贝的作用)。
我用Nashorn运行了测试,之前被注释掉的测试现在都成功了。
我于2016年签署了贡献者协议,但现在加入JIRA后,它说我不具有"clojure.atlassian.net上访问Jira的权限",这就是为什么我开始在这里提问。
希望这个问题能够得到解决,因为我一直等着这个问题得到修复已经好几年了。
大卫。
基于您之前的CA,我为您发送了Jira的邀请。如果您没看到这条信息或者您的邮箱已更改,请通过[email protected]联系我。
你好,感谢您查看这个问题。建议的补丁仅解决了顶级函数的问题 - 正确的修复还需要修改编译器的函数代码生成以覆盖匿名函数的情况。