[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Guile and GNU TeXmacs
Re: Guile and GNU TeXmacs
17 Oct 2001 22:37:07 +0100
Gnus/5.0808 (Gnus v5.8.8) Emacs/20.7
>>>>> "Joris" == Joris van der Hoeven <address@hidden> writes:
Hi! And sorry for the lateness of this reply.
Joris> I use guile as an extension language for GNU TeXmacs with
Joris> full satisfaction for about one year and a half now.
Joris> However, in order to get things more robust and standard, I
Joris> would like some help on the following questions:
Joris> 1. The module system is not very clear to me and I could
Joris> not find a short description of how it works in the
Joris> documentation, or elsewhere on the web.
Have you looked at the reference manual in Guile CVS, or in any of the
recent 1.5.x release candidates?
Joris> I am interested in two types of functionality:
Joris> a) Defining a module, and telling what are the other
Joris> modules which are required. I guess I see how to do this by
Joris> looking at the source code. However, when exactly is a
Joris> module loaded and what is the visibility/scope of functions
Joris> inside that module.
(define-module ...) begins a module definition.
The required modules can be specified either using the #:use-module
keyword inside the (define-module ...) expression, or by standalone
(use-modules ...) expressions.
If you use #:use-module or use-modules to import definitions from
another module, the visible definitions will be those that have been
marked for export in that module's source code. Export-marking is
achieved by the #:export keyword or by (export ...) or (define-public
(This is oversimplified; we also now have selective and renaming
imports - read the manual for the full picture.)
A module's source code is loaded when a (use-modules ...) expression
naming that module is evaluated.
Joris> b) I want to be able to require routines from additional
Joris> modules on demand. Typically, TeXmacs can be used as an
Joris> interface to computer algebra systems. When starting such
Joris> a system, I might want to load an additional module with
Joris> routines relevant to that system. However, this module
Joris> should not be loaded as long as the system is not needed.
There is such a thing as an autoload module, but I don't know how they
work. I think we also support programmatic module loading
(named-module-use!), which could help you here.
Joris> 2. I would like to provide documentation for the most
Joris> important scheme functions provided by TeXmacs. I guess I
Joris> should write this documentation in the texinfo format?
Joris> Would it be possible to add such documentation to the main
Joris> documentation of guile? Who would be in charge of doing
Me, if anyone. It's certainly feasible to combine this documentation
wuth the main guile reference manual, but please could you clarify
why you think this would be a useful idea? If we do combine it, then,
yes, it would have to be in texinfo format.
Joris> In fact, the html code generated by texinfo can be
Joris> rendered pretty well by TeXmacs. I would like to add a
Joris> 'scheme' entry in the Help menu of TeXmacs, which would
Joris> look at a suitable location on the web where the guile
Joris> documentation is available online. Is there such a
Joris> location (where the html docs are *exactly* those generated
Joris> by texinfo; *no* unnecessary markup and adds)?
www.glug.org carries a snapshot of the latest Guile documentation.
After 1.6.0 is released, www.gnu.org should (I hope!) do so as well.
In the current Guile distribution, html doc is built using texi2html,
not `makeinfo --html'. There was a bit of a discussion a few weeks
ago about which was better, inconclusive IIRC. I don't know whether
www.glug.org follows the Guile distribution or does its own html
Joris> 3. I would be interested in adding the Jacal system as a
Joris> computer algebra system with an interface to TeXmacs. Is
Joris> there someone who can tell me in a detailed way how to get
Joris> Jacal installed and working in combination with Guile
Joris> Scheme on a GNU/Linux (or other Unix) system?
See the reference manual, node `JACAL'. If this is wrong at all,
please let us know so that we can update it.