unofficial mirror of guile-devel@gnu.org 
 help / color / mirror / Atom feed
From: Marius Vollmer <mvo@zagadka.ping.de>
Cc: Rob Browning <rlb@defaultvalue.org>,
	"Dale P. Smith" <dsmith@altustech.com>,
	guile-devel@gnu.org
Subject: Re: What replaces scm_register_module_xxx (Doc update?)
Date: 08 Aug 2002 22:26:18 +0200	[thread overview]
Message-ID: <87sn1p2j2t.fsf@zagadka.ping.de> (raw)
In-Reply-To: <20020808161958.GA24162@www>

rm@fabula.de writes:

> If i want my users to be able to script some of my applications
> functionality there's no library i can load with 'load-extension'

You can call C functions by other means than by 'load-extension' ;)

If you want to make several modules available to your users with
functions in them that are implemented in C, you can write the thin
Scheme wrapper for each module, but instead of calling load-extension
you directly call a previously registered C function.  Like so

    void
    foo_init_inits ()
    {
      scm_c_define_gsubr ("foo-init-strings-bindings", ...);
      scm_c_define_gsubr ("foo-init-utils-bindings", ...);
    }

    ;; file: foo/strings
    (define-module (foo strings))
    (foo-init-strings-bindings)
    (export foo-1)
    (export foo-2)
    (export bar-1)

    ;; file: foo/utils
    (define-module (foo utils))
    (foo-init-utils-bindings)
    (export foo-4)
    (export foo-5)

There is the fine point of in what module foo-init-strings-bindings is
defined.  I'm not sure about that, right now...

_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://mail.gnu.org/mailman/listinfo/guile-devel


  parent reply	other threads:[~2002-08-08 20:26 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-08-08 13:48 What replaces scm_register_module_xxx (Doc update?) rm
2002-08-08 14:21 ` Dale P. Smith
2002-08-08 14:23   ` Dale P. Smith
2002-08-08 14:31   ` Rob Browning
2002-08-08 16:19     ` rm
2002-08-08 17:59       ` Dale P. Smith
2002-08-08 18:24         ` rm
2002-08-08 20:26       ` Marius Vollmer [this message]
2002-08-08 21:28       ` Neil Jerram
2002-08-09 15:36         ` rm
2002-08-17 11:59           ` Neil Jerram
2002-08-19 19:05             ` rm
2002-08-09  8:47       ` Matthias Koeppe
2002-08-09 10:00         ` rm
2002-08-09 11:29           ` Matthias Koeppe
2002-08-09 13:23             ` rm
2002-08-10 14:44           ` Marius Vollmer
2002-08-11 23:20             ` Marius Vollmer
2002-08-17  8:09               ` Dirk Herrmann
2002-08-17 11:05                 ` Neil Jerram
2002-08-24  8:08                   ` Dirk Herrmann
2002-08-26 21:45                     ` Neil Jerram
2002-08-26 22:04                     ` Marius Vollmer
2002-08-21 19:35                 ` Marius Vollmer
2002-08-13  0:40             ` Marius Vollmer
2002-08-17 22:37               ` Dale P. Smith

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=87sn1p2j2t.fsf@zagadka.ping.de \
    --to=mvo@zagadka.ping.de \
    --cc=dsmith@altustech.com \
    --cc=guile-devel@gnu.org \
    --cc=rlb@defaultvalue.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).