id,summary,reporter,owner,description,type,status,priority,milestone,component,version,resolution,keywords,cc,difficulty 379,Complete SRFI-46 support,sjamaan,felix winkelmann,"I got bored so I decided to finish srfi-46 support. Right now we have support for custom ellipsis identifiers, which is half of SRFI-46. It's much simpler to explain that Chicken supports SRFI-46 than just the ellipsis stuff, and tail patterns provide for slightly more powerful macros. During my work on it I also found a bug in the way vectors are matched: {{{ (define-syntax foo (syntax-rules () ((_ #((a) ...)) (list a ...)))) (foo #((1))) => error. It should return (1) }}} I just dropped the specialized vector matching and converted vectors to list, on match too (it was already done this way for the patterns). This solves any vector-specific bugs and also helps keep the code compact. If speed is an issue, I also have a version that adds SRFI-46 to the vector-specific code. If there's a better way to do the take-right and drop-right, I'd be happy to hear it.",defect,closed,minor,4.9.0,core libraries,4.6.x,fixed,"syntax-rules, srfi-46",,