Opened 5 days ago

Last modified 5 days ago

#1623 new enhancement

Avoid consing for optional procedure arguments

Reported by: sjamaan Owned by: sjamaan
Priority: minor Milestone: someday
Component: compiler Version: 5.0.0rc1
Keywords: Cc:
Estimated difficulty: medium


Currently, anything that accepts optional, rest or keyword arguments has to build a list and then pick that list apart. This is wasteful because it should not be necessary at all.

We could start with the low-hanging fruit like case-lambda and #!optional, where the binding of arguments and argument count checking is relatively simple. Handling #!key and #!rest or dotted tail rest argument notation is something that seems to me either too difficult and possibly not even worth it: you usually want to treat those as a list (but patterns like optional could still be handled specially, if nothing else refers to the identifier).

Change History (1)

comment:1 Changed 5 days ago by sjamaan

  • Summary changed from Implement faster vararg procedures to Avoid consing for optional procedure arguments
Note: See TracTickets for help on using tickets.