Macro Lisp phổ biến là các thay thế mã, chúng xảy ra ở "thời gian mở rộng macro". Đối với mã được giải thích, số này có thể là "thời gian chạy". Đối với mã được biên dịch, nó hầu như luôn luôn trong "thời gian biên dịch".
Khi mã đã được thay thế, không có tham chiếu đến macro trong mã được biên dịch kết quả (nguồn gốc trên đĩa vẫn có điều này, nếu sử dụng macro đã được lưu vào tệp).
Mặc dù sẽ có một số tiện ích trong hệ thống lisp đã lưu tất cả các phần tử "mở rộng trước macro" và theo dõi những macro nào đã được sử dụng và tự động biên dịch lại bất kỳ thứ gì sử dụng macro cụ thể (có thể đệ quy) , đã bị loại khỏi tiêu chuẩn.
Thông thường, tôi viết các macro tiện ích của mình khá sớm để phát triển, vì vậy, tôi không cần nhiều chức năng này và tôi hạnh phúc hơn nếu không có nó. chạy kích thước hình ảnh khá một chút, không cần phải theo dõi tất cả điều đó).