Live data from Hacker News

Making Macros in CoffeeScript

blog.lab49.com

1–8 of 8 posts

Re: Making Macros in CoffeeScript

#3
I saw parsec-coffee-script a while back and really wanted to help, but I was quite busy. I'd love to see hygenic macros in coffee-script... Unfortunately, it looks like parsec hasn't been committed to since February. Anyone know what the status of that project is?

Re: Making Macros in CoffeeScript

#4
Pretty cool. We've been using macros in the Cappuccino source code for years, but we were too lazy to write our own macro processor so we just use the GCC preprocessor. Relying on GCC being available turns out to work pretty well.

Re: Making Macros in CoffeeScript

#5
post #4

Pretty cool. We've been using macros in the Cappuccino source code for years, but we were too lazy to write our own macro processor so we just use the GCC preprocessor. Relying on GCC being available turns out to work pretty well.

Didn't know the GCC preprocessor was language agnostic. Never thought about it really.

Re: Making Macros in CoffeeScript

#6
Isn't this just lexical macros?

I expected a HN headline to refer at least to a novel Lisp style AST macro implementation; there's m4 and cpp for basic textual macro expansion and those are very old news.

Re: Making Macros in CoffeeScript

#7
post #6

Isn't this just lexical macros? I expected a HN headline to refer at least to a novel Lisp style AST macro implementation; there's m4 and cpp for basic textual macro expansion and those are very old news.

It's actually working on the CoffeeScript AST. Admittedly the example I used doesn't demonstrate this particularly well.

Re: Making Macros in CoffeeScript

#8
post #4

Pretty cool. We've been using macros in the Cappuccino source code for years, but we were too lazy to write our own macro processor so we just use the GCC preprocessor. Relying on GCC being available turns out to work pretty well.

Didn't know the GCC preprocessor was language agnostic. Never thought about it really.

You actually can/will run into problems if the language you are pre-processing with CPP tokenizes differently than C.