This is the mail archive of the guile-emacs@sourceware.cygnus.com mailing list for the Guile project.


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

Re: Emacs Scheme interface


Keisuke Nishida <kxn30@po.cwru.edu> writes:

> > (lisp-eval '(current-global-map)).
> 
> I don't think it is a good interface.  It is harder to understand and
> may not work in the future.

But at least it is easy to grep for "lisp-eval" when there is a
better interface.  It is more difficult to convert from the
current ((point)) syntax.

> I think a better way to get around this is to define a GOOPS class
> for keymaps and define suitable procedures which call Lisp functions
> appropriately as you may think in your mind.

I wasn't actually thinking of GOOPS, just some unspecified
structure (a bare #<lisp-reference> could do) and procedures to
access it.

I don't have anything against GOOPS though :-)

> If (current-global-map) always returns a list, we can't do that.

Right, it should return some object through which the real keymap
can be modified.  This object can be a Lisp reference like now or
something specific to keymaps.

When importing a procedure, we should think of the value it
returns.  Numbers and strings should be copied.  Lists perhaps
too, if they are short and don't have to be modified in place.
Keymaps and strange objects like buffers can be Lisp references
for now; new Scheme types should be defined later.

I suppose things would be easier with Ken Raeburn's patches.  :-)

> Is that a convention among Guile applications?

Module naming has been discussed on the Guile list (I have
archives beginning from Feb 1999), but I don't think there was a
conclusion.

> omitting `app' will not hurt anyone.

True, nobody else is going to have a top-level `emacs' package.

> Have you tried Guile's multithread supoprt with Guile Emacs?

I haven't.

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