gnutls-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [gnutls-dev] Starting Guile integration


From: Ludovic Courtès
Subject: Re: [gnutls-dev] Starting Guile integration
Date: Fri, 01 Jun 2007 14:29:59 +0200
User-agent: Gnus/5.110006 (No Gnus v0.6) Emacs/21.4 (gnu/linux)

Hi,

Just a quick reply before I actually look into the details (either later
today or next week).

Simon Josefsson <address@hidden> writes:

> In the future, do you want to develop things in your git repository, and
> ask me to pull things in when ready?  I think that would work well, if I
> can figure out which command I should be using for reviewing the changes
> before committing them.

Yes, that's how we could do.  Alternatively, I could use
`git-format-patch' and send the resulting messages to the list but as I
said, that may introduce some undesirable overhead.

My understanding is that `git-fetch' allows remote changes to be fetched
locally without being actually integrated (and committed) locally.
Then, it should be possible to find the latest remote commit ID in
`.git/refs/remotes' and use that with `git-diff'.  And finally, one
should be able to `git-merge' to actually merge the changes locally.

This is a bit vague, and that's because I haven't actually tried it.  ;-)
I'll report back when I have better experience.

>>   * Code in `guile/src' doesn't want to be compiled with
>>     `-Wstrict-prototypes'.  Since adding `-Wno-strict-prototypes'
>>     doesn't annul the effect of `-Wstrict-prototypes', I'm afraid we'll
>>     have to remove `-Wstrict-prototypes' at the project level (i.e, in
>>     `configure.in'), and add it to `CFLAGS' in sub-directories where it
>>     makes sense.
>
> Ouch.  What is the reason the code needs this?  Maybe we can fix that
> problem instead.  It seems to build for me now, though, with warnings,
> but I'd rather have warning messages than potentially hiding other
> problems.

That's because Guile contains this declaration:

  SCM scm_c_define_subr (const char *name, long type, SCM (*fcn)());

This function allows C code to bind C function FCN to the Scheme level
under NAME.  It makes perfect sense to have FCN declared this way,
because FCN can have any number of arguments (its number of required,
optional and "rest" arguments are specified as part of TYPE).

I can't think of a better way to declare FCN.  Requiring users to cast
their functions to, e.g., `SCM (* fcn) (void)', is not an option.  At
any rate, should a fix be found for Guile, it won't be available until
the next Guile release.

I'll take care of the other issues you mentioned later on.

Thanks!

Ludovic.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]