home *** CD-ROM | disk | FTP | other *** search
/ The CDPD Public Domain Collection for CDTV 3 / CDPDIII.bin / pd / programming / gnusmalltalk / readme-1.2 < prev    next >
Text File  |  1992-02-17  |  4KB  |  131 lines

  1. Brief overview of new features with version 1.2:
  2.  
  3. Emacs editing
  4.   * bugs fixed
  5.   * many Smalltalk mode commands are now available in the Smalltalk "shell"
  6.     mode 
  7.   * new browser mode
  8.     once Smalltalk is built, you can invoke the browser from a Smalltalk mode
  9.     buffer by doing C-C C-B C-H (Browse Hierarchy).  Commands in first window
  10.     are:
  11.         space (browse all instance methods)
  12.         d     (browse direct methods),
  13.     i     (browse indirect only methods),
  14.     c     (browse class methods (all)).
  15.     From the generated method browser window, use space to select the
  16.     definition of the particular method, move to a different line, hit space
  17.     again to see that method's definition, etc.
  18.     The key bindings are likely to change to get more regular with time, and
  19.     there may be a way to see the class definition.
  20.   * C-c C-s shows all classes where the selector that's under the cursor is
  21.     defined, type a space to jump to the definition in the chosen class.
  22.   * Do c-c c-b c-o to load class names, then
  23.        c-c c-b c-d browses direct methods of a class (reads class name with
  24.            completion)
  25.        c-c c-b c-i browses indirect methods
  26.        c-c c-b c-c browses class methods
  27.   * C-c c-t defines a map which toggles various tracing facilities in the
  28.         running Smalltalk:
  29.           c-d    for declaration tracing
  30.           c-e    for execution tracing
  31.           c-v    for verbose executation tracing
  32.  
  33.   * there are probably other undiscovered treasures waiting to be found in the
  34.     emacs editing mode.  c-c d is your friend!!!
  35.  
  36. Initialization files
  37.   * $HOME/.stpre is loaded before building the basic mst.im image
  38.   * $HOME/.stinit is loaded each time smalltalk starts up, whether or not
  39.     it build the saved mst.im image during the run, and is loaded after the
  40.     binary image has been saved.
  41.   
  42.  
  43. Sun examples
  44.  
  45. C Pointer hacking
  46.   * provides direct access to C data structures including
  47.     o  long (unsigned too)
  48.     o  short (unsigned too)
  49.     o  char (unsigned too) & byte type 
  50.     o  float (and double)
  51.     o  string (NUL terminated sequence of char * )
  52.     o  arrays of any type
  53.     o  pointers to any type (I'm not happy with the  semantics of this; it's
  54.        likely to change)
  55.     o  structs containing any fixed size types
  56.        
  57.     Example struct decl in C:  (see sun/Sound.st for example usage)
  58.  
  59.     struct audio_prinfo {
  60.         unsigned    channels;
  61.         unsigned    precision;
  62.         unsigned    encoding;
  63.  
  64.         unsigned    gain;
  65.         unsigned    port;
  66.         unsigned    _xxx[4];
  67.  
  68.         unsigned    samples;
  69.         unsigned    eof;
  70.         unsigned char    pause;
  71.         unsigned char    error;
  72.         unsigned char    waiting;
  73.         unsigned char    _ccc[3];
  74.  
  75.         unsigned char    open;
  76.         unsigned char    active;
  77.     };
  78.  
  79.     struct audio_info {
  80.         audio_prinfo_t    play;
  81.         audio_prinfo_t    record;
  82.         unsigned    monitor_gain;
  83.         unsigned    _yyy[4];
  84.     };
  85.  
  86.     Equivalent in Smalltalk:
  87.     CStruct newStruct: #AudioPrinfo
  88.         declaration: #((sampleRate uLong)
  89.                    (channels uLong)
  90.                    (precision uLong)
  91.                    (encoding uLong)
  92.                    (gain uLong)
  93.                    (port uLong)
  94.                    (xxx (array uLong 4))
  95.                    (samples uLong)
  96.                    (eof uLong)
  97.                    (pause uChar)
  98.                    (error uChar)
  99.                    (waiting uChar)
  100.                    (ccc (array uChar 3))
  101.                    (open uChar)
  102.                    (active uChar))
  103.     !
  104.  
  105.     CStruct newStruct: #AudioInfo
  106.         declaration: #((play AudioPrinfo)
  107.                    (record AudioPrinfo)
  108.                    (monitorGain uLong)
  109.                    (yyy (array uLong 4))
  110.                    )
  111.     !
  112.                
  113.  
  114.  
  115. C Callin
  116.   * needs no explicit initialization 
  117.   * can initialize with command line arguments if desired (so as to control
  118.     when the smalltalk initialization occurs)
  119.   * smalltalk need not be main 
  120.  
  121. Stix
  122.   * Provides full access to X protocol
  123.   * doesn't currently have support for resources
  124.   * ICCCM support not working yet
  125.   * See stix/README
  126.  
  127. Dynamic Linking
  128.   * based on the GNU DLD library
  129.   * allows Smalltalk to dynamically load and reference C code
  130.   * Has an example of use at the bottom
  131.