* Luís Oliveira <luismbo@gmail.com> <CAB-HnLS=k2wUnomOZ-U4Sov6OfTG4zJkc+mQAhnPBAqWdYXSyw@mail.gmail.com> Wrote on Thu, 20 Feb 2020 13:28:45 +0000
On Thu, 20 Feb 2020 at 09:31, Madhu <enometh@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