emacs-devel
[Top][All Lists]
Advanced

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

Re: Why do we spend time on Emacs on Guile?


From: Thien-Thi Nguyen
Subject: Re: Why do we spend time on Emacs on Guile?
Date: Sat, 17 Aug 2002 19:28:49 -0400

   From: Werner LEMBERG <address@hidden>
   Date: Sat, 17 Aug 2002 00:46:00 +0200 (CEST)

   LilyPond, a music typesetting program (www.lilypond.org), uses Guile.
   While following the development of LilyPond I see that Guile itself
   isn't a stable target yet: It simply happens too often that the
   authors of LilyPond have to add some glue code to make it work with
   different versions of Guile.

i've spewed greatly on the guile lists wrt compatibility in general (not
just for lilypond) w/o much success in curtailing that recklessness, so
i won't say much more than, yeah, that's a problem.

but it's not my problem (anymore) since i've grabbed the good stuff from
the guile HEAD and have incorporated it into a 1.4.x maintenance effort
w/ the goals specifically being compatibility and stability for client
apps.  my daily inspiration is aisleriot (the "spider" variant) which is
a lot of fun to play on a graphical display, and which links against
libguile.  i feel that breaking that game would be a poor way to show my
appreciation.

in any case, guile symbols already have extra slots for function and
plists -- actually that would be "msymbols" (from libguile/symbols.h):

/* SCM_LENGTH(SYM) is the length of SYM's name in characters, and
   SCM_CHARS(SYM) is the address of the first character of SYM's name.

   Beyond that, there are two kinds of symbols: ssymbols and msymbols,
   distinguished by the 'S' bit in the type.

   Ssymbols are just uniquified strings.  They have a length, chars,
   and that's it.  They use the scm_tc7_ssymbol tag (S bit clear).

   Msymbols are symbols with extra slots.  These slots hold a property
   list and a function value (for Emacs Lisp compatibility), and a hash
   code.  They use the scm_tc7_msymbol tag.

   [...] */

the module system uses the aforementioned "variable" construct for
bindings but there's no reason it couldn't be made to also recognize and
use msymbols.  perhaps someone can explain why this existing support
should be ignored.

thi




reply via email to

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