欢迎!请参阅关于页面获取更多关于此工作的信息。
大家好,
我准备了一个补丁来修复不能使用超过20个参数调用IFn的问题。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
也许这也修复/完成了这个2012年的问题:
"编译器需要将调用所有的参数(超过20个)放入一个array-seq中" https://clojure.atlassian.net/browse/CLJS-364
这里是这个补丁;单一的少量提交
https://github.com/active-group/clojurescript/commit/122e1ab4be7230841e15b392223d4b33560cfa5b
它还移除了一次多余的'aclone'调用(concat已经做了浅拷贝)。
我用Nashorn运行了测试,以前被注释掉的测试用例现在都成功了。
我在2016年签署了贡献者协议,但现在我注册了JIRA,它说我没有'clojure.atlassian.net上的Jira访问权限',这就是为什么我在这里提问的原因。
希望这一切都能达成,因为我在此之前一直等着这个问题被修复。
David.
根据您旧的CA,我向您发送了一个jira邀请。如果您没有看到那个邀请或者您的邮箱已更改,请通过[email protected]联系我。
您好,感谢您查看这个问题。提出的补丁仅解决了顶级fns的问题 - 正确的修复还需要对编译器fn代码生成进行更改,以涵盖匿名fn的情况。