> It looks like the license terms would indeed allow us to do that. I'm > not sure whether there's a precedent including non-LGPL SRFI code as is, > though.
Well, it wouldn't have to be 100% as-is -- aside from adding the module declaration, there are some things I wouldn't mind tweaking a bit, such as where the argument-parsing helper functions get declared / exported. > Besides, we'd have to check whether the reference implementation, which > targets Gambit's compiler, is suitable for Guile. Having done a very quick and dirty integration, I can say that it passes the rudimentary test suite I pulled from the SRFI document. In terms of whether it's suitable... well, Marc claims his implementation isn't even suitable for Gambit, which apparently has a native implementation: "To give a rough idea of the speed improvement, a trivial procedure with 10 optional named parameters and called with 5 named parameters runs 14 times faster and generates no garbage when the Gambit compiler's builtin optional parameter passing mechanism is used." I haven't benchmarked it against `(ice-9 optargs)', but it seems like our options are: Use the reference implementation, optimizing it as best we can for the peculiarities of Guile; write our own implementation in Scheme or C that would exist in parallel with `(ice-9 optargs)'; or enhance `(ice-9 optargs)' to allow a dependent implementation such as the one I submitted to work correctly. What do you think? Regards, Julian