This is the mail archive of the guile@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: About the guile module system


I don't know why symbols.c looks as it does, but there are two
requirements which may have something to do with it:

Guile is supposed to support other languages, primarily elisp.

1. In Lisp, a symbol can have three values bound to it: a value, a
   function and a property list.

   It should be possible to support this implementation efficiently:

   A symbol is normally "light".  It is just a name, and possibly a
   hash value in order to optimize hash lookup.

   If someone requests the function or plist binding, the symbol is
   converted into its "heavy" form.

   It would be both wasteful and inefficient to let all symbols be
   "heavy".

2. Elisp has the concept of "obarrays".  I guess it's hard to
   translate Elisp into Guile scheme without some supoort for it...

/mdj