Opened 4 years ago

Last modified 4 years ago

#1364 new defect

backquote: incorrect behaviour of ,,@ when followed by ,@,@

Reported by: cosmos72 Owned by:
Priority: normal Milestone:
Component: ANSI CL Compliance Version: trunk
Keywords: backquote Cc:

Description

On CCL x8664, version 1.11,

(let ((args1 '(a b))
      (args2 nil))
  `(foo `(,,@args1 ,@,@args2)))

evaluates to

(FOO (LIST* A B))

which looks incorrect to me - what causes the dotted list (LIST* A B) => (A . B) ?

Removing ,@,@args2 "fixes" the expansion, which probably helps to pinpoint the cause:

(let ((args1 '(a b)))
  `(foo `(,,@args1)))

correctly evaluates to

(FOO (LIST A B))

This is different from ticket #6, as it does not depend on the expansion on ,@,@ - only on its *existence*, which modifies the expansion of whatever *precedes* it

Change History (1)

comment:1 Changed 4 years ago by cosmos72

  • Summary changed from backquote: inconsistent behaviour of ,,@ when followed by ,@,@ to backquote: incorrect behaviour of ,,@ when followed by ,@,@
Note: See TracTickets for help on using tickets.