[comp.sys.atari.st] CRAFT program development environment description

gert@nikhefh.hep.nl (Gert Poletiek) (07/22/88)

My mailbox is overflowing with requests for more information on the CRAFT
program development environment. At first I tried to answer these letters
via mail, but more and more are 'returned to sender' with host unknown
errors. Therefore I'm posting the description here.




	The CRAFT environment is a UNIX like development environment 
for the ST. It consists of a Shell and an Editor plus a number of utility
programs. The Shell is almost completely compatible with the BSD Unix
C-shell. The Editor is not compatible with any existing editor on Unix, but
ideas for its design were taken from a number of others editors (among these
unix' vi, Apollo domain editor, Norsk Data Sintran Screen editor and many
others). The Editor is, as recent benchmarks in Dutch ST magazines
demonstrate, the fastest available for the ST. It easily beats the
(claimed fastest) editor Tempus. In most operations the speed difference
is more than an order of magnitude, sometimes even more.

The Shell has most of its commands built-in for speed (especially for floppy
based systems). The following list of built-ins is taken from the first level
online help of the Shell:


              CRAFT/GPshell for Atari ST Series - Version 2.0.4
              (c) 1987, 1988  Gert Poletiek, ComMedia Amsterdam
                      70 built-in commands, 19 keywords

     @              df             history        pathname       setres        
     alias          echo           keyclick       palette        shift         
     alloc          errorfile      keydelay       popd           sleep         
     basename       exit           keyrepeat      printenv       source        
     bell           extension      logout         pushd          tee           
     cache          filename       lpr            pwd            time          
     cat            find           lprm           ramdisk        touch         
     cd             font           lpq            read           umount        
     chmod          free           ls             rehash         unalias       
     clear          funcs          man            rm             unset         
     cp             getres         mkdir          rmdir          unsetenv      
     cursor         hashstat       moreheap       rmfunc         verify        
     date           hashtable      mount          set            which         
     dirs           help           mv             setenv         who           

     break          default        endif          if             time          
     breaksw        do             endsw          repeat         until         
     case           else           foreach        switch         while         
     continue       end            function       then                         


The Shell is *NOT* a multitasking environment as this causes too many
problems for existing software.  The following are the most important Shell
features:

	- history list			- shell scripts
	- command line editing		- I/O redirection
	- user programmable 		- pipes
	  function keys 		- built-in ramdisk,
	- filename completion		  printer spooler
	- wildcarding using 		  and disk cache
	  regular expressions		- command substitution
	- fontloader with		- 89 built-in
	  7 alternate fonts 		  functions and keywords
	- Gemdos and UNIX		- aliasing
	  style pathnames		- control flow
	- search paths for		  (such as: if-then-else)
	  executable programs		- user definable
	- full color control		  shell functions
	- system() call interface	- can run on serial port for debugging
					  puposes

The cache and ramdisk can be enabled and disabled at any time freeing the
memory they occupy making it available for other puposes.


The Editor is fully screen oriented. Most people like the fact that the text
being entered can be started anywhere on the screen, i.e. the cursor may be
positioned anywhere not just inside existing text boundaries but anywhere on
the screen (which for the editor is considered 256 columns by 25-32-48 rows
large). The actual number of text rows depend on the screen font selected.
The editor is not a GEM application although the mouse may be used to select
most operations. Below you'll find a list of the most important Editor
features:

    . cut copy and past operations on line selections as well as on
      rectangular blocks of text (column copy mode).
    . automatic line indent (user [de]activated)
    . automatic wrap around, supporting fortran continuation card standard
      (if enabled)
    . extrememly fast search and replace functions
    . folds: programming language comment lines that allow you to hide
      parts of the program text behind a single screen line
      while editing.  Folds may be nested to 32000 levels which is far 
      beyond the useful amount.
    . editing binary files            . fast search and replace
    . full control over tabs          . cut, copy, paste and delete
    . word jumps and deletes            (also in column mode)
    . word wrapping and auto indent   . automatic backup file generation
    . 8 edit buffers                  . 10 learn buffers
    . online help facility            . redefinable keyboard
    . undo on delete operations       . keyboard macros
    . available as desk accessory     . shell escape
      and application.                . folds
    . find current word               . insert and overstrike mode
    . stream editing commands for automatic text manipulation
    . files size limited to 100000 lines on per edit buffer base 
      (or available memory, which is likely to occur before the line limit is 
      reached).
  
	
There are several mechanisms to create your own composite commands: there are
10 learn buffers that can remember up to 100 keystrokes each. Stream editing
can be done by preparing a file with edit commands. Keyboard redefinitions can
put sequences of up to 510 key strokes behind a single key (or a sequence of
keys). All redefinitions will be remembered across edit sessions.


The external utilties supplied with CRAFT are:

	backup   envtest   getpr  mvt       setpr     
	cmp      expand    head   normdisk  setser    
	desk     fastdisk  make   od        size      
	du       fgrep     more   perror    tail      
	dump     format    mve    pr        wc        

of which the backup utility is an example shell script demonstrating the
programming features of the shell as well as being a useful (but not too fast)
hard disk backup utility.


The CRAFT environment is extensively documented in a 640 page manual which
includes tutorials as well as reference parts.

CRAFT has been tested with: Mark Williams C, Megamax C, Laser C, Aztec C,
Lattice C, Alcyon C, OSS/CCD Pascal, Hisoft Modula-2, TDI Modula-2, Absoft
Fortran, Prospero Fortran.


CRAFT 2.0 is just released and may be obtained from

	Creative Computing Media (ComMedia)
	98  Leidsekade 
	1017 PP  Amsterdam
	Telephone: (+ 31 20)   23 17 40
	Fax:       (+ 31 20)   38 00 65


The price is 395 Dutch Guilders (roughly 200 US $, 115 British Pounds).


regards,


Gert Poletiek

NIKHEF-H, Dutch National Institute for Nuclear and High Energy Physics
          Kruislaan 409, P.O.Box 41882, 1009 DB Amsterdam, The Netherlands
UUCP:     {decvax,cernvax,unido,seismo}!mcvax!nikhefh!gert
bitnet:   nikhefh!gert@mcvax.bitnet, U00025@hasara5.bitnet