home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 3: Developer Tools / Linux Cubed Series 3 - Developer Tools.iso / devel / lang / lisp / stk-3.002 / stk-3 / STk-3.1 / Doc / FAQ / FAQ.txt < prev   
Encoding:
Text File  |  1996-07-24  |  15.7 KB  |  463 lines

  1.   Answers to the Frequently Asked Questions about STk
  2.   Erick Gallesio
  3.   July 1996
  4.  
  5.   11..  IInnttrroodduuccttiioonn
  6.  
  7.  
  8.   The aim of this document is to answer to the frequently asked
  9.   questions about STk. First versions of this document were written by
  10.   Marc Furrer (furrer@di.epfl.ch)with the support of Erick Gallesio
  11.   (eg@unice.fr) Marc has not enough time to continue to maintain the FAQ
  12.   up to date and he asked me to continue. Since I too have not a lot of
  13.   time for keeping the FAQ alive, any help would be greatly apreciated.
  14.  
  15.   The latest version of the FAQ is available at
  16.   http://kaolin.unice.fr/FAQ/FAQ.html Text and Postscript versions of
  17.   this document are also available at ftp://kaolin.unice.fr/pub/FAQ The
  18.   HTML version is the recommended version of this document since all the
  19.   links to other documents or softwares can be followed just by clicking
  20.   on them.
  21.  
  22.   This version of the document is very incomplete and if you think of
  23.   questions that are appropriate for this FAQ, or would like to improve
  24.   an answer, please send me e-mail.
  25.  
  26.   11..11..  SSuubbjjeecctt:: WWhhaatt iiss SSTTkk
  27.  
  28.  
  29.   STk is a R4RS Scheme interpreter which can access to the Tk graphical
  30.   package. It can be seen as the John Ousterhout's Tk package where the
  31.   Tcl language has been replaced by Scheme (for more information on
  32.   Scheme, Tcl and Tk, see the references below).
  33.  
  34.   STk also provides an efficient object oriented system called STklos.
  35.   STklos is an OO system with multi-inheritance, generic functions,
  36.   multi-methods. It's implementation relies on a Meta Object Protocol
  37.   (MOP) inspired from the Tiny -CLOS model.
  38.  
  39.   Other features of STk are:
  40.  
  41.   +o  Interpreter can be easily extended by adding new C modules.
  42.  
  43.   +o  All the commands defined by the Tk toolkit are available to the STk
  44.      interpreter (Tk commands are seen as a special type of objects by
  45.      the interpreter).
  46.  
  47.   +o  Widgets callbacks are Scheme closures
  48.  
  49.   +o  Based on Tk4.1 (the last stable release of Tk)
  50.  
  51.   +o  STk does not use the Tcl interpreter for Tk programming
  52.  
  53.   +o  Tk variables (such are -textvariable) are reflected back into
  54.      Scheme as Scheme variables.
  55.  
  56.   +o  A set of STklos classes have been defined to manipulate Tk commands
  57.      (menu, buttons, scales, canvas, canvas items) as STklos objects.
  58.  
  59.   +o  New widgets can easily be built in STklos by composition of
  60.      existing widgets.
  61.  
  62.   11..22..  SSuubbjjeecctt:: WWhheerree ddoo II ggeett SSTTkk ffrroomm
  63.  
  64.  
  65.   STk distribution is available on various sites. The official
  66.   distribution site is http://kaolin.unice.fr/or
  67.   ftp://kaolin.unice.fr/pub Distribution file names have the form STk-
  68.   x.y.tar.gz, where x and y represent the version and the release of the
  69.   package. You can also find here interim releases of STk. Intermediate
  70.   releases are stored in file whose name have the form STk-x.y.z.tar.gz
  71.   where z is the intermediate release number. Last stable release can be
  72.   taken from http://kaolin.unice.fr/STk.tar.gzor
  73.   ftp://kaolin.unice.fr/pub/STk.tar.gz
  74.  
  75.   11..33..  SSuubbjjeecctt:: AArree tthheerree ddiissttrriibbuuttiioonn mmiirrrroorr ssiitteess
  76.  
  77.  
  78.   Stable releases of STk are also placed in
  79.   ftp://sunsite.unc.edu/pub/Linux/devel/lang/lisp Since this site is
  80.   eavily mirrored around the planet, you should easily find a stable
  81.   release near you.
  82.  
  83.   David Fox also maintain a mirror site of kaolin (daily updated) in the
  84.   USA at the following URL ftp://cs.nyu.edu/pub/local/fox/stk
  85.  
  86.   11..44..  SSuubbjjeecctt:: WWhhiicchh aarree tthhee ssyysstteemmss SSTTkk ssuuppppoorrtt
  87.  
  88.  
  89.   STk runs on a large variety of Unixes. It is known to run on:
  90.  
  91.   +o  Sparc (SunOs 4.1.x & Solaris 2.{34})
  92.  
  93.   +o  Dec 5xxx (Ultrix 4.2)
  94.  
  95.   +o  SGI (IRIX 4.05, 5.1.1, 5.2)
  96.  
  97.   +o  DEC Alpha 3000/400 (OSF-1 V1.3)
  98.  
  99.   +o  RS6000 AIX 3.2.5
  100.  
  101.   +o  HP 9000/735 (HP-UX 9.01)
  102.  
  103.   +o  PC (Linux 1.0 -> 2.0)
  104.  
  105.   +o  PC (FreeBSD 1.1)
  106.  
  107.   +o  PC (SCO) Thanks to markd@grizzly.com
  108.  
  109.   +o  PC (NetBSD-1.0)
  110.  
  111.   +o  Sony WS (Sony NEWS, NEWSOS 4.2R)
  112.  
  113.   +o
  114.  
  115.   11..55..  SSuubbjjeecctt:: SSTTkk aanndd WWiinnddoowwss
  116.  
  117.  
  118.   Starting with release 3.1, STk runs on 32 bits Microsoft Windows (only
  119.   tested on Windows 95, but it should run on Windows NT). This version
  120.   is based on the Tk 4.1 final release.
  121.  
  122.   STk Win32 version is distributed in source and binary forms, since
  123.   binary release seems more convenient on Windows.
  124.  
  125.   Development of STk on this platform is not easy for me since it is not
  126.   the system I use dayly. In particular, a lot of work need to be done
  127.   (loading of packages compiled in DLL, sockets, ...). Help of a Win32
  128.   hacker would be greatly appreciated to achieve those tasks.
  129.  
  130.  
  131.  
  132.  
  133.   11..66..  SSuubbjjeecctt:: SSTTkk aanndd MMaaccOOSS
  134.  
  135.  
  136.   It is not intended to port STk on MAcOS, by lack of resource (and
  137.   interest of myself :). However, port should be simple for a Mac
  138.   hacker. I can provide help if necessary for this job.
  139.  
  140.   Another way to run STk on a Mac consists to run STk under Mach Ten. If
  141.   I have well understood, Mach Ten is a Unix (Mach-) like system running
  142.   on top of MacOS. STk compiles fine on this system.
  143.  
  144.   11..77..  SSuubbjjeecctt:: GGeettttiinngg mmoorree iinnffoorrmmaattiioonn aabboouutt SScchheemmee
  145.  
  146.  
  147.   TThhee RR44RRSS ddooccuummeenntt
  148.  
  149.   +o  R4RS is the document which fully describes the Scheme Programming
  150.      Language, it can be found in the Scheme repository at the following
  151.      URL ftp://ftp.cs.indiana.edu/pub/scheme-repository/doc
  152.  
  153.   +o  Aubrey Jaffer has also translated this document in HTML. A version
  154.      of this document can be browsed at http://www-
  155.      swiss.ai.mit.edu/~jaffer/r4rs_toc.html
  156.  
  157.   TThhee SScchheemmee RReeppoossiittoorryy
  158.  
  159.   The main site where you can find (many) informations about Scheme is
  160.   located in the University of Indiana. The Scheme repository is
  161.   maintained by David Eby. The repository currently consists of the
  162.   following areas:
  163.  
  164.   +o  Lots of scheme code meant for benchmarking, library/support,
  165.      research, education, and fun.
  166.  
  167.   +o  On-line documents: Machine readable standards documents, standards
  168.      proposals, various Scheme-related tech reports, conference papers,
  169.      mail archives, etc.
  170.  
  171.   +o  Most of the publicly available Scheme Implementations.
  172.  
  173.   +o  Material designed primarily for instruction.
  174.  
  175.   +o  Freely-distributable promotional or demonstration material for
  176.      Scheme-related products.
  177.  
  178.   +o  Utilities (e.g., Schemeweb, SLaTeX).
  179.  
  180.   +o  Extraneous stuff, extensions, etc.
  181.  
  182.   You can access the Scheme repository at:
  183.  
  184.   +o  ftp://ftp.cs.indiana.edu/pub/scheme-repository
  185.  
  186.   +o  http://www.cs.indiana.edu/scheme-repository/SRhome.html
  187.  
  188.   The Scheme Repository is mirrored in Europe at:
  189.  
  190.   +o  ftp://ftp.inria.fr/lang/Scheme
  191.  
  192.   +o  ftp://faui80.informatik.uni-erlangen.de/pub/scheme/yorku
  193.  
  194.   +o  ftp://ftp.informatik.uni-muenchen.de/pub/comp/programming/
  195.      languages/scheme/scheme-repository
  196.  
  197.   UUsseenneett nneewwssggrroouupp aanndd ootthheerr aaddddrreesssseess
  198.  
  199.   There is a usenet newsgroup about the Scheme Programming language:
  200.   comp.lang.scheme
  201.  
  202.   MMiisscceelllleeaannoouuss
  203.  
  204.   Following addresses contains also interesting material about the
  205.   Scheme language
  206.  
  207.   +o  The Scheme FAQ
  208.      http://www.cs.cmu.edu:8001/Web/Groups/AI/html/faqs/lang/scheme/top.htmlheme/scheme-
  209.      repository
  210.  
  211.   +o  The Scheme Home Page at MIT http://www-swiss.ai.mit.edu/scheme-
  212.      home.html
  213.  
  214.   +o  The Scheme Underground web page:
  215.      http://www.ai.mit.edu/projects/su/su.html
  216.  
  217.   11..88..  SSuubbjjeecctt:: DDiiffffeerreenncceess wwiitthh RR44RRSS
  218.  
  219.  
  220.   SSyymmbboollss
  221.  
  222.   STk symbol syntax has been augmented to allow case significant
  223.   symbols. Many global symbols have been added to the global
  224.   environment, see Appendix B of the SSTTkk Reference Manual.
  225.  
  226.   TTyyppeess
  227.  
  228.   STk implements all the types defined as mandatory in R4RS. However,
  229.   complex numbers and rational numbers (which are defined but not
  230.   required in R4RS) are not implemented. The lack of these types implies
  231.   that some functions of R4RS are not defined.
  232.  
  233.   Some types which are not defined in R4RS are implemented in STk. Those
  234.   types are listed below:
  235.  
  236.   +o  input string port type
  237.  
  238.   +o  output string port type
  239.  
  240.   +o  keyword type
  241.  
  242.   +o  Tk command type (to use the Tk widgets)
  243.  
  244.   +o  environment type (environments are first class in STk)
  245.  
  246.   +o  macro type
  247.  
  248.   +o  address type (obsolete now)
  249.  
  250.   +o  hash table type
  251.  
  252.   +o  process type (launch and communication with subprocess)
  253.  
  254.   +o  socket type (TCP/UDP sockets)
  255.  
  256.   +o  regexp type (access to tcl regexp)
  257.  
  258.   PPrroocceedduurreess
  259.  
  260.   The following procedures are required by R4RS and are not implemented
  261.   in the STk interpreter:
  262.  
  263.   +o  transcript-off
  264.  
  265.   +o  transcript-on
  266.  
  267.   These procedure can be easily simulated with various Unix tools such
  268.   as _s_c_r_i_p_t or _f_e_p.
  269.  
  270.   The following procedures are not implemented in the STk interpreter
  271.   whereas they are defined in R4RS (but not required). They are all
  272.   related to complex or rational numbers:
  273.  
  274.   +o  numerator
  275.  
  276.   +o  denominator
  277.  
  278.   +o  rationalize
  279.  
  280.   +o  make-rectangular
  281.  
  282.   +o  make-polar
  283.  
  284.   +o  real-part
  285.  
  286.   +o  imag-part
  287.  
  288.   +o  magnitude
  289.  
  290.   +o  angle
  291.  
  292.   This is more detailed in the Appendix B of the STk Reference Manual.
  293.  
  294.   11..99..  SSuubbjjeecctt:: CCoommppaattiibbiilliittyy wwiitthh SSLLIIBB
  295.  
  296.  
  297.   Aubrey Jaffer maintains a package called SSLLIIBB which is a portable
  298.   Scheme library which provides compatibility and utility functions for
  299.   all standard Scheme implementations. To use this package, you have
  300.   just to type
  301.  
  302.   (require "slib")
  303.  
  304.   and follow the instructions given in the library to use a particular
  305.   package.
  306.  
  307.   22..  CCoonnttrriibbuutteedd PPaacckkaaggeess
  308.  
  309.  
  310.   Small (in size) contributions are included in the release. Among them
  311.   we can cite:
  312.  
  313.   +o  _S_T_k_-_w_t_o_u_r: A didactic demo to learn SSTTkk written by Suresh Srinivas
  314.      (ssriniva@cs.indiana.edu)
  315.  
  316.   +o  _S_t_e_t_r_i_s _: A tetris game written by Harvey J. Stein
  317.      (hjstein@math.huji.ac.il)
  318.  
  319.   +o  _Q_u_e_e_n_s: The famous 8 queens problem by Grant Edwards
  320.      (grante@winternet.com)
  321.  
  322.   +o  _T_t_t: A 3-D Tic-Tac-Toe by Edin "Dino" Hodzic ehodzic@scu.edu
  323.  
  324.   Complex contributions are kept in the
  325.   ftp://kaolin.unice.fr/pub/Contribdirectory. This directory contains
  326.   also old code which should probably be updated to work with current
  327.   STk release. Among the packages which can be found in this directory
  328.   are:
  329.  
  330.  
  331.   +o  _E_n_v_D_r_a_w: is a environment diagramming package which draws
  332.      environment diagrams as taught in Abelson and Sussman's _S_t_r_u_c_t_u_r_e
  333.      _a_n_d _I_n_t_e_r_p_r_e_t_a_t_i_o_n _o_f _C_o_m_p_u_t_e_r _L_a_n_g_u_a_g_e_s. It was written as an
  334.      instructional tool for the CS61A course at the University of
  335.      California at Berkeley. The environment diagrammer is a
  336.      metacircular evaluator which draws procedures, environments, and
  337.      box and pointer diagrams along with all the accompanying symbols
  338.      and mutation. It includes a box and pointer diagrammer which
  339.      handles circular list structures, cons cell mutation, and also will
  340.      watch for modification of any symbols known to be pointing to drawn
  341.      cells. The author of this very neat package is Josh MacDonald
  342.      jmacd@po.EECS.Berkeley.EDU
  343.  
  344.   +o  _W_W_W is a HTML browser which greatly enhances the hbrowse demo which
  345.      is part of STk distribution. You should look at this package.
  346.      Author: Harvey J. Stein hjstein@math.huji.ac.il
  347.  
  348.   +o  _N_a_n_o_c_a_d is chemistery CAD program which allows you to create small
  349.      molecules and to rotate them. The author of this package is Will
  350.      Ware wware@world.std.com
  351.  
  352.   +o
  353.  
  354.   Some packages are not in the kaolin Contrib directory:
  355.  
  356.   +o  A preemptive thread package can be found at
  357.      ftp://ftp.cs.uoregon.edu/pub/lth/tasking-alpha2.tar.gz The uthor of
  358.      this package is Lars Thomas Hansen lth@cs.uoregon.edu
  359.  
  360.   +o  A low level interface to the Postgres 95 Database can be found at
  361.      http://www.webbuild.com/~rtoy/pgstk/http://www.webbuild.com/~rtoy/pgstk/
  362.      .
  363.  
  364.   +o  _T_a_b_u_l_a _r_a_s_a is a system written by David Fox which use the STk
  365.      interpreter (but not Tk).This package can be found at ?????. (TO BE
  366.      COMPLETED)
  367.  
  368.   +o  spice package from Fritz.Heinrichmeyer@fernuni-hagen.de (I cannot
  369.      find the reference)
  370.  
  371.   +o
  372.  
  373.   33..  SSTTkk ttiippss
  374.  
  375.  
  376.   TO BE COMPLETED
  377.  
  378.   44..  SSTTkkllooss ttiippss
  379.  
  380.  
  381.   TO BE COMPLETED
  382.  
  383.   55..  GGeettttiinngg mmoorree iinnffoorrmmaattiioonn aabboouutt TTkk
  384.  
  385.  
  386.   There are two reference book about Tk (of course, you better not read
  387.   the chapters about Tcl ;-):
  388.  
  389.   +o  "Tcl and the Tk Toolkit" by John Ousterhout (the author of the
  390.      Tcl/Tk package), ISBN  0-201-63337-X, Addison-Wesley, April 1994.
  391.  
  392.   +o  "Practical Programming in Tcl and Tk" by Brent Welch, ISBN
  393.      0-13-182007-9, Prentice Hall, 1995.
  394.  
  395.   There is also a Usenet newsgroup for Tcl/Tk: comp.lang.tcl A FAQ, for
  396.   Tcl/Tk is regulary posted in comp.lang.tcl.annonce
  397.   66..  MMiisscceelllleeaannoouuss
  398.  
  399.  
  400.   66..11..  SSuubbjjeecctt:: TThhee SSTTkk MMaaiilliinngg LLiisstt
  401.  
  402.  
  403.   There is a mailing list for STk located on kaolin.unice.fr. The intent
  404.   of this mailing list is to permit to STk users to share experiences,
  405.   expose problems, submit ideas and everything which you find
  406.   interesting (and which is related to STk).
  407.  
  408.   To _s_u_b_s_c_r_i_b_e to the mailing list, simply send a message with the word
  409.   "subscribe" in the Subject: field of you mail. Mail must be sent to
  410.   the following address: stk-request@kaolin.unice.fr.
  411.  
  412.   To _u_n_s_u_b_s_c_r_i_b_e from the mailing list, send a mail at previous e-mail
  413.   address with the word "unsubscribe" in the Subject: field.
  414.  
  415.   For more information on the mailing list management, send a message
  416.   with the word "help" in the Subject: field of your mail. In
  417.   particular, it is possible to find all the messages which have already
  418.   been sent on the STk mailing list.
  419.  
  420.   Subscription/un-subscription/information requests are processed
  421.   automatically without human intervention. If something goes wrong,
  422.   send a mail to eg@unice.fr
  423.  
  424.   Once you have properly subscribe to the mailing list,
  425.  
  426.   +o  you can send your messages about STk to stk@kaolin.unice.fr
  427.  
  428.   +o  you will receive all the messages of the mailing list to the e-mail
  429.      address you used when you subscribed to the list.
  430.  
  431.   The mailing list is archived at:
  432.  
  433.   +o  http://kaolin.unice.fr/mlist/Hypermail/index.htmlin hypertext
  434.      format, or
  435.  
  436.   +o  ftp://kaolin.unice.fr/pub/MailingList/index.htmlas raw text.
  437.  
  438.   66..22..  SSuubbjjeecctt:: RReeppoorrttiinngg aa BBuugg
  439.  
  440.  
  441.   When you find a bug in STk, please send its description to the
  442.   following address stk-bugs@kaolin.unice.fr. Don't forget to indicate
  443.   the STk version you use, the architecture and the system release on
  444.   which you run the interpreter. STk version and architecture can be
  445.   found by using the version and machine-type Scheme primitives. If
  446.   possible, try to find a small program which exhibit the bug. Even
  447.   better, if you have a patch, plese send it at the previous address.
  448.  
  449.   66..33..  SSuubbjjeecctt:: UUssiinngg SSTTkk ffrroomm EEmmaaccss
  450.  
  451.  
  452.   There are several ways to call STk from emacs. One simple way consists
  453.   to add the following lines in your file $HOME/.emacs:
  454.  
  455.   TO BE COMPLETED (with ILISP)
  456.  
  457.  
  458.  
  459.  
  460.  
  461.  
  462.  
  463.