Hacker News new | ask | show | jobs
by almostgotcaught 358 days ago
> Functions taking more than 3 arguments. Currently PyTypeBuilder.add_function() and related function bindings only support Mojo functions that take up to 3 PythonObject arguments: fn(PythonObject, PythonObject, PythonObject).

Lol wut. For the life of me I cannot fathom what design decision in their cconv/ABI leads to this.

1 comments

I was wondering if it is function overloads of the same name, defining it non-variadically:

add_function(PythonObject)

add_function(PythonObject, PythonObject)

add_function(PythonObject, PythonObject, PythonObject)

There was a similar pattern in the Guava library years ago, where ImmutableList.of(…) would only support up to 20 arguments because there were 20 different instances of the method for each possible argument count.

Probably not, since they would surely up it at least 15 arguments, instead of 3. But what else, then?