Hello,

Edouard Klein <[email protected]> writes:

> Now run  guix time-machine --channels=/tmp/first-bad.scm --  system image -t
> qcow2 -e '(use-modules (beaver system)) (minimal-ovh)'
>
> and you'll get "In procedure struct-vtable: Wrong type argument in
> position 1 (expecting struct): #<syntax-transformer
> dhcp-client-service-type>"

The ‘define-deprecated’ macro turns the given symbol into a macro; that
macro raises a warning a compile time (in a way, this is similar to the
‘deprecated’ attribute in GCC).

Since this is a macro, it must be in scope for any user that references
it.  Likewise, any file built against the previous definition (where
‘dhcp-client-service-type’ was *not* a macro) must be rebuilt against
the new one; otherwise, you get the error above where the user expected
‘dhcp-client-service-type’ to resolve to a struct and now it resolves to
a macro (aka. “syntax transformer”).

HTH!

Ludo’.

Reply via email to