* Luís Oliveira <luis...@gmail.com> <CAB-HnLS=k2wunomoz-u4sov6oftg4zjkc+mqahnpbaqwdyx...@mail.gmail.com> Wrote on Thu, 20 Feb 2020 13:28:45 +0000
> On Thu, 20 Feb 2020 at 09:31, Madhu <enom...@meer.net> wrote: >> struct s_s_ch the_s_s_ch = { 2, { 1 } }; >> (defcvar "the_s_s_ch" s-s-ch) -> *s-s-ch* gets translated to a list. > And perhaps it should, why not? Because unlike aggregate struct values which are passed on the stack, such a variable generally represents a mutable memory location. defcvar would no longer define a variable that reflects access to the object on the C side. so instead of (setf (foreign-slot-value *s-s-ch* 's-s-ch 'another-char) #\a) one would have to do (setf (foreign-slot-value (foreign-symbol-pointer "the_s_s_ch") 's-s-ch 'another-char) #\a) This pretty painful when the nesting gets deep. I started trying to convert the tests and I stopped around struct.alignment.4