Reimplementation of quasiquote #1473

Merged
fare merged 6 commits from quasiquote into v0.19-staging 2026-07-17 10:01:49 +00:00
Owner
  • Fixes bugs
  • Adds tests (imported from my CL fare-quasiquote, where applicable)
  • Works with match in cases where ,@ is always in tail position
- Fixes bugs - Adds tests (imported from my CL fare-quasiquote, where applicable) - Works with match in cases where ,@ is always in tail position
fare changed title from Reimplementation of quasiquote to [WIP] Reimplementation of quasiquote 2026-07-16 20:42:27 +00:00
Author
Owner

The code is from January. I don't remember why it wasn't merged then.
It should work, but I first gotta rebootstrap.

The code is from January. I don't remember why it wasn't merged then. It should work, but I first gotta rebootstrap.
fare changed title from [WIP] Reimplementation of quasiquote to Reimplementation of quasiquote 2026-07-16 21:32:58 +00:00
vyzo left a comment

couple of very minor comments

couple of very minor comments
@ -65,8 +67,38 @@ package: gerbil/core
(if (stx-null? #'rest)
[cons: (parse1 #'hd) (parse1 #'tl)]
[cons: (parse1 #'hd) (parse1 #'(cons* tl . rest))]))
((qq-list* x y . r)
Owner

can you move this after the @list handler?

can you move this after the @list handler?
@ -1137,0 +1114,4 @@
;; 1- a top token identifying the context
;; 2- a syntax object
;; When combining quasiquoted expressions, tokens are used for simplifications.
(define (quasiquote-expand-0 e)
Owner

def is here already no?

def is here already no?
fare force-pushed quasiquote from cc023cf8e5 to f672c5744c 2026-07-17 09:07:17 +00:00 Compare
vyzo approved these changes 2026-07-17 09:17:44 +00:00
fare merged commit 0c276b3b12 into v0.19-staging 2026-07-17 10:01:49 +00:00
fare deleted branch quasiquote 2026-07-17 10:01:49 +00:00
fare referenced this pull request from a commit 2026-07-17 10:01:49 +00:00
Sign in to join this conversation.
No description provided.