This is the mail archive of the kawa@sourceware.org mailing list for the Kawa project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Missing feature or just differences with Guile for define-public


On 01/28/2017 10:07 PM, scprotz wrote:
So my guess is, from a functional point of view, 'define-public' is
essentially like 'extern' in C (exposing the function to the C/Gnome)
calls?

I have already reviewed the C/C++ code in Aisleriot and converting it
from C to Java has been very easy so far (since GTK/Glib have very
similar counterparts in Java).  I'm just trying to figure out how I'd
make the functional equivalent of a 'define-public' in a Kawa program
so that my Java app can call it, or is everything automatically
exposed as part of the compiled class once compiled by Kawa  (i.e.
there would be a class called "api.class" and it would have a function
called "setFeatures"?  Again, my exposure to Kawa specifically is
limited at this time, so just looking for pointers.

If all defines are exposed as class objects (methods), then just
changing define-public to define might be good enough

Guile's define-public is like a combination of Kawa's define and export.
But in Kawa export is the default - assuming there is no explicit export (or equivalently
module-export).

You can generally remove 'define-module', optionally replace it with 'module-name'.
If you see a use-module, you can replace it with an 'import' or a 'require'.
(This are basically the same - import is more flexible, and is R7RS-compatible,
so is usually preferred.)

Lots of information in https://www.gnu.org/software/kawa/Module-classes.html
and https://www.gnu.org/software/kawa/Importing.html .

(since define-public seems to be a guile-specific thing to expose functions
to C).

I don't believe that is current.  My understanding it's more like 'public'
in Java.  It not only exposes functions to C, but more importantly it
exposes them to other modules.
--
	--Per Bothner
per@bothner.com   http://per.bothner.com/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]