unofficial mirror of guile-devel@gnu.org 
 help / color / mirror / Atom feed
From: Mark H Weaver <mhw@netris.org>
To: "Thompson\, David" <dthompson2@worcester.edu>
Cc: guile-devel <guile-devel@gnu.org>
Subject: Re: Attempting to unbox struct fields
Date: Mon, 29 Feb 2016 12:43:53 -0500	[thread overview]
Message-ID: <87lh6376p2.fsf@netris.org> (raw)
In-Reply-To: <CAJ=RwfbDZ72urKO1Aa+epa7Q-OctzGfpDV4AKpxYb5=gcXhEsg@mail.gmail.com> (David Thompson's message of "Mon, 29 Feb 2016 09:26:26 -0500")

"Thompson, David" <dthompson2@worcester.edu> writes:

>> The first thing I noticed is that the patch assumes that doubles are the
>> same size as pointers.  Obviously this is not the case on 32-bit
>> systems.  What's the plan for those systems?
>
> Yeah, I just hacked this together on my x86_64 system and paid no mind
> to portability.  I was hoping that you or Andy or Ludovic would have
> an idea for how to address portability issues. :)

I think the approach we need to take is that for 32-bit systems, doubles
will need to use two consecutive slots.  Furthermore, those slots will
either need to be aligned (i.e. the first slot must have an even index)
or else the code that accesses 'double' struct fields will need to
perform the access carefully, perhaps by copying each half separately
into a local 'union' and then copying the double from there.

> My current plan is to keep pressing onward and produce a
> proof-of-concept, hacky patch set that allows unboxed struct fields on
> x86_64.  Then, with some help and guidance, I can sort out the
> portability issues, code style issues, unit tests, and documentation
> after confirmation that the prototype is on the right track.

I think the issue above is fairly fundamental, and might not be easy to
address as an after-thought.  It would be good to test your preliminary
work on 32-bit systems throughout the development process.  Fortunately,
I know that you run GuixSD which makes this easy :)

What do you think?

    Thanks,
      Mark



  reply	other threads:[~2016-02-29 17:43 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-02-28 15:03 Attempting to unbox struct fields David Thompson
2016-02-28 21:30 ` Thompson, David
2016-02-29  3:56   ` Mark H Weaver
2016-02-29 14:26     ` Thompson, David
2016-02-29 17:43       ` Mark H Weaver [this message]
2016-02-29 21:09         ` Thompson, David

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=87lh6376p2.fsf@netris.org \
    --to=mhw@netris.org \
    --cc=dthompson2@worcester.edu \
    --cc=guile-devel@gnu.org \
    /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).