unofficial mirror of guile-devel@gnu.org 
 help / color / mirror / Atom feed
From: Andy Wingo <wingo@pobox.com>
To: Doug Evans <xdje42@gmail.com>
Cc: guile-devel <guile-devel@gnu.org>
Subject: Re: guile struct members are not a good 1-1 match for c structs
Date: Wed, 30 Apr 2014 09:24:11 +0200	[thread overview]
Message-ID: <87eh0fth44.fsf@pobox.com> (raw)
In-Reply-To: <CAP9bCMQs3SfaNBHyP1aeV7cE-CJjoa4PPK5KPfHw=vYJYT1izA@mail.gmail.com> (Doug Evans's message of "Tue, 29 Apr 2014 18:51:46 -0700")

On Wed 30 Apr 2014 03:51, Doug Evans <xdje42@gmail.com> writes:

> While reading guile sources I happened across the implementation
> of struct scm_print_state.  ref: libguile/print.h
>
> It (tries to) map a C struct to a set of Guile struct fields:
> ref: SCM_PRINT_STATE_LAYOUT.

You know, I don't think I ever noticed that before.  Gross!  Structs
were originally (i.e., in 1995) designed to be able to do that but it
never really caught on, probably because people want structs with
members that have types and might not all be the same size.  BDW-GC is
much better at being able to just scm_gc_malloc a memory block and then
you treat it as whatever C struct type you like....

> I *could* be missing something, but I think my angst can be represented
> with the following question:
>
> Has anyone tried to use scm_print_state from Scheme as a Guile struct
> on a host with 64 bit words and 32 bit ints and 32 bit longs?

I don't think anyone ever uses scm_print_state from Scheme -- from a
practical matter.  It's not documented anywhere.  I didn't even know it
was a struct.  But it sure looks like it won't work at all!

Andy
-- 
http://wingolog.org/



      reply	other threads:[~2014-04-30  7:24 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-04-30  1:51 guile struct members are not a good 1-1 match for c structs Doug Evans
2014-04-30  7:24 ` Andy Wingo [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/guile/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87eh0fth44.fsf@pobox.com \
    --to=wingo@pobox.com \
    --cc=guile-devel@gnu.org \
    --cc=xdje42@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).