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: Initial projects list


forcer writes:

[About guile-curses stubs]
 > What are your plans with it? Still supporting it?

I'd like to have J.Blandy's expert opinion before giving it a release and
version number. It's hard to maintain it in this form, so there should
be some facilization. I wondered if SWIG or gwrap were the right tool, but 
how should an automated tool automatically 'translate' buffers into return
values or error return codes (many functions that return ints return OK
on success, ERR on error. Functions returning a window pointer return NULL
on failure) into throwing exceptions, which seems to be most appropriate
for a very high level language?

If it proves useful, I'll continue to support it. If some different standard 
on character terminal screen programming for scheme arises from somewhere, 
it might rather be better to join in, for the sake of portability, though. 
 
 > It would be nice as a guile module (screen ncurses) or so
 > (and maybe add (screen slang) (screen termcap) and (screen curses) or
 > so lateron).

Curses in the sense of the very old curses or the X/OPG standard by the
former x-consortium (from which ncurses is derived)?
I already tried termcap, but have several problems with it:
When basing a termcap module directly on the /etc/termcap ascii file, as
the perl termcap module does (i.e. no interference of C wrapper code),
the buffering of the i/o functions of guile doesn't work well. I'd need
something that behaves about exactly like write() from unistd.h. String
munching isn't yet a major strength of guile, but that is improving
(any projects out there with that purpose? A comprehensive string library
for guile would be cool.)
When , however, providing a termcap module based on libtermcap, one
problem is to do the garbage collection of the allocated buffers 
correctly, especially the one done by tgetstr(). Also I'd like to unite 
tgetstr, tgetnum and tgetflag into a single function, to provide a more
scheme-ish look-and-feel.
Another thing is to get a termcap module work with terminfo. I haven't
understood yet how those programs that can be linked with either termcap-
or terminfo support do that.
Slang is another interesting topic. Of course Slang's screen management can
be used independently from the scripting language it was intented for (mc
and lynx do not use SLang as extension language, I guess), but as many are 
already talking about readers for non-scheme-ish idioms in guile , which 
offers a large range of future projects, the SLang language could be one of 
them. Thus jed could become guilified in a similar way as emacs. 
--
Klaus Schilling