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]

A port of STklos to Guile



Hello!

This is the announcement of a port of STklos for Guile, available at
ftp.red-bean.com in pub/guile/contrib

Copy from the README file:

This is a hack to port STklos to Guile. 
All widgets and methods have not been ported, but it is sufficient to
obtain something usable. 

It is build entirely on Scheme, contrary to what seems planned by Erick
Gallesio (low support from Guile for objects).

So performance is poor, but this is largely compensated for 
by the use of Hobbit. 

Included is also an autoloader, 
and a port of tiny-clos-1.7 to guile.

What you need:
=============
 1) A recent snapshot of Guile. Tests were made with snapshot from
    10 October 1997, but even guile-1.2 should work.
 2) Tcl7.5 and Tk4.1 installed. Other versions may work, but I have only
    experience with these.
 3) A recent snapshot of guile-tcltk installed. 
    Tests were made with snapshot from 10 October 1997.
 4) guile-hobbit-1.1 (from the contrib directory in ftp.red-bean.com)
    installed with the following patch applied to guilehob.h:
*** /usr/local/include/guile/guilehob.h	Wed Jan 14 22:13:33 1998
--- /usr/local/include/guile/guilehob.hERROR	Mon Nov 10 22:12:11 1997
***************
*** 128,132 ****
  #define CHAR_UPCASE(chr) SCM_MAKICHR(scm_upcase(SCM_ICHR(chr)))
  #define CHAR_DOWNCASE(chr) SCM_MAKICHR(scm_downcase(SCM_ICHR(chr)))
! #define procedurep scm_procedure_p
  #define VECTOR_P(x) (!(SCM_IMP(x)) && SCM_VECTORP(x))
  #define reverse scm_reverse
--- 128,132 ----
  #define CHAR_UPCASE(chr) SCM_MAKICHR(scm_upcase(SCM_ICHR(chr)))
  #define CHAR_DOWNCASE(chr) SCM_MAKICHR(scm_downcase(SCM_ICHR(chr)))
! #define procedurep(x) (scm_procedure_p(x) == SCM_BOOL_T)
  #define VECTOR_P(x) (!(SCM_IMP(x)) && SCM_VECTORP(x))
  #define reverse scm_reverse

Steps to install and run:
========================
 1) Go to $(pkgdatadir) (the parent of 1.2/ice-9 or 1.3a/ice-9) 
    and unpack the file guile-stklos.tgz
 2) cd site; make all
    This will compile a couple of Scheme files to *.so shared objects. 
    If you do not have dynamic loading capabilities, *.o
    files can always be generated, but you must rebuild a guile-tcltk
    interpreter with linking in these *.o files. See the guile-hobbit
    README for details.
 3) Now, from any directory, run guile-tcltk and then eval:
    (load-from-path "stklos-3.0b2/test")
    A lot of debugging output is now generated, it is normal.
    The test will exercise the following widgets:
    Frame, Scroll-listbox, Button, Menu-button, Text and dialog.

Comments to Bernard.Urban@meteo.fr

B. Urban