rubinius/rubinius-melbourne — pull request #5 by jemc (2013-12-12 06:18:01+00:00)
Title: Keyword Arguments

Working toward solving: https://github.com/rubinius/rubinius/issues/2669

I'm pretty sure I've wrapped up the changes to melbourne needed for keyword arguments in rubinius.

Note that, because this pull request changes the number of arguments it passes to Melbourne#process_args, it is not compatible with the current rubinius-processor gem, and thus cannot be dropped into rubinius without propagating the changes through to the other toolset gems.

However, this interface change was put off until the final commit (https://github.com/jemc/rubinius-melbourne/commit/e3e40b9ecf5016eb73180ea14ced969d5dc00f5b), and at the commit immediately preceding it (https://github.com/jemc/rubinius-melbourne/commit/f75ea79e0bad6bf5f0fef9207272b03358887cb7), the gem was integrated with unaltered versions of rubinius and the other toolset gems to form an integrated rubinius that successfully built and passed the mspec on my machine. At this commit, the underlying grammatical constructs that support keyword arguments are in place while the keyword arguments themselves are essentially ignored. In the final commit, the keyword argument data is passed on to #process_args as additional arguments.

I have done my best to ensure that these changes are complete and sufficient, but please let me know if I have overlooked something (or just fix it if you wish, and let me know you did so).

I hope this work has helped bring keyword arguments to rubinius, and I am working on propagating the necessary changes to other tools in the rubinius-toolset to make this happen, but I will not be offended if someone else wants to swoop in and finish the work from here. I hope to increase the likelihood of that happening by doing this work, not decrease it.