From:     Digestifier <Linux-Misc-Request@senator-bedfellow.mit.edu>
To:       Linux-Misc@senator-bedfellow.mit.edu
Reply-To: Linux-Misc@senator-bedfellow.mit.edu
Date:     Thu, 25 Nov 93 08:13:08 EST
Subject:  Linux-Misc Digest #340

Linux-Misc Digest #340, Volume #1                Thu, 25 Nov 93 08:13:08 EST

Contents:
  Re: TeX, SGML, and graphics? (Basile STARYNKEVITCH)
  Re: SPeed test for Linux/X (Kai Petzke)
  *** PLEASE READ THIS BEFORE POSTING *** (misc-2.07) (Ian Jackson)
  my pl13q died ): (Rafal Maszkowski)
  Icmake 6.10 (Karel Kubat)

----------------------------------------------------------------------------

From: basile@soleil.serma.cea.fr (Basile STARYNKEVITCH)
Subject: Re: TeX, SGML, and graphics?
Date: Thu, 25 Nov 1993 09:50:30 GMT
Reply-To: basile@soleil.serma.cea.fr

In article lil@universe.digex.net,  philp@universe.digex.net (Phil Perucci) writes:
>#I currently use LaTeX, but would like to be able to generate 
>#circles, boxes, lines, etc. for flow-charts.  Is there
>#anything available (language) that can do "graphics".  I have
>#used idraw, but am looking for a language - not interactive.
>#
>#Does SGML do simple "graphics"?  If so, is it in the public
>#domain and running on Linux?

SGML is only a markup language (ie a formal description of document
structure, not of document appereance).

But I suggest to look into Lout. Lout 2.05 is a publicly available
package written by Jeff Kingston at Basser University, Sydney,
Australia.

Lout is a document processor (like TeX is) which generates PostScript.
It does contain a graphic package (and also an equation one).

For instance a square 0.5 cm above a circle is written as
   @Fig {
           @Sqaure
           //0.5c
           @Circle
   }

I'm using Lout and i am satisfied with it. I find it easier than LaTeX,
and faster (it generates directly PostScript without an intermediate
dvi file).


You can get lout at several places. The author put the latest distribution
at ftp.cs.su.oz.au:/pub/jeff/lout-2.05.tar.Z. I think some sites mirrors it.

---

Basile STARYNKEVITCH   ----  Commissariat a l Energie Atomique
DRN/DMT/SERMA * C.E. Saclay bat.470 * 91191 GIF/YVETTE CEDEX * France
fax: (33) 1- 69.08.23.81;    phone: (33) 1- 69.08.40.66
email: basile@soleil.serma.cea.fr;  homephone: (33) 1- 46.65.45.53


N.B. Any opinions expressed here are solely mine, and not of my organization.
N.B. Les opinions exprimees ici me sont personnelles et n engagent pas le CEA.



------------------------------

From: wpp@marie.physik.tu-berlin.de (Kai Petzke)
Subject: Re: SPeed test for Linux/X
Date: 25 Nov 1993 10:16:47 GMT

In <2d0l4l$blj@darkstar.UCSC.EDU> philb@cats.ucsc.edu (Philip Brown) writes:



>I have now gotten solaris 2.3, along with sun's nifty new "direct X".
>This means a whole new set of x11perf data.

>I would like to know how it compares with the various linux machines out
>there.
>So, please use x11perfcomp, and lemme know.

>Or alternatively, if you can't get x11perfcomp to run, just send me your
>x11perf -all data, and I'll do the compare.


How many X servers are there for Linux?         (I know of 5)
How many graphic cards are there for Linux?     (I know of 10)
How many processors are there for Linux?        (I know of 6)
How many busses are there for Linux?            (I know of 3)

And, the same for the sparc:

(I hope, there is just one X server for the SPARC)
How many graphics cards/accelerators are there?
How many Sparc chips are there?
(I hope, all SPARCS use the same bus)

In other words:

How do you want to compare?  Do you want to compare top model vs.
top model, or do you want to compare machines, which cost the same?
Or do you want to find out, which Linux machine is comparable to
your Sparc?

Please specify, what you want, before you haul Megabytes over the net.

Just a few figures for Linux on ET4000 and 386DX40 (not a very
speedy setup):

>200000 reps @  0.0302 msec (33100.0/sec): 100-pixel line segment
>200000 reps @  0.0305 msec (32800.0/sec): 100-pixel line segment
>200000 reps @  0.0300 msec (33400.0/sec): 100-pixel line segment
>200000 reps @  0.0300 msec (33300.0/sec): 100-pixel line segment
>200000 reps @  0.0301 msec (33300.0/sec): 100-pixel line segment
>1000000 trep @  0.0302 msec (33200.0/sec): 100-pixel line segment

I got about 8000 100-pixel line segments per second.

>   500 reps @ 11.0409 msec (  90.6/sec): Scroll 500x500 pixels
>   500 reps @ 10.8888 msec (  91.8/sec): Scroll 500x500 pixels
>   500 reps @ 10.8791 msec (  91.9/sec): Scroll 500x500 pixels
>   500 reps @ 10.8925 msec (  91.8/sec): Scroll 500x500 pixels
>   500 reps @ 10.9504 msec (  91.3/sec): Scroll 500x500 pixels
>  2500 trep @ 10.9303 msec (  91.5/sec): Scroll 500x500 pixels

I believe, I got about 30 reps/second for this scroll.

Accelerated video hardware may give you several times these numbers.


Kai
--
Kai
wpp@marie.physik.tu-berlin.de
Advertisement by Microsoft in a well-known German magazine:
        If you don't like our programmes, than make your own ones.
However, they expect you to use Microsoft products for this -:)

------------------------------

From: ijackson@nyx.cs.du.edu (Ian Jackson)
Subject: *** PLEASE READ THIS BEFORE POSTING *** (misc-2.07)
Date: Thu, 25 Nov 1993 11:03:03 GMT

Please do not post questions to comp.os.linux.misc - read on for details of
which groups you should read and post to.

Please do not crosspost anything between different groups of the comp.os.linux
hierarchy.  See Matt Welsh's introduction to the hierarchy, posted weekly.

If you have a question about Linux you should get and read the Linux Frequently
Asked Questions with Answers list from sunsite.unc.edu, in /pub/Linux/docs, or
from another Linux FTP site.  It is also posted periodically to c.o.l.announce.

In particular, read the question `You still haven't answered my question!'
The FAQ will refer you to the Linux HOWTOs (more detailed descriptions of
particular topics) found in the HOWTO directory in the same place.

Then you should consider posting to comp.os.linux.help - not
comp.os.linux.misc.

Note that X Windows related questions should go to comp.windows.x.i386unix, and
that non-Linux-specific Unix questions should go to comp.unix.questions.
Please read the FAQs for these groups before posting - look on rtfm.mit.edu in
/pub/usenet/news.answers/Intel-Unix-X-faq and .../unix-faq.

Only if you have a posting that is not more appropriate for one of the other
Linux groups - ie it is not a question, not about the future development of
Linux, not an announcement or bug report and not about system administration -
should you post to comp.os.linux.misc.


Comments on this posting are welcomed - please email me !
--
Ian Jackson  <ijackson@nyx.cs.du.edu>  (urgent email: iwj10@phx.cam.ac.uk)
2 Lexington Close, Cambridge, CB4 3LS, England;  phone: +44 223 64238

------------------------------

From: rzm@oso.chalmers.se (Rafal Maszkowski)
Subject: my pl13q died ):
Date: Tue, 23 Nov 1993 14:25:39 GMT

I posted an entusiastic report about my new Linux pl13q. Today,
after 12 days and 20 minutes of hard life my Linux died. I got
some messages about cleaing rbuf and rcv queue (no idea what's
this) two days ago and possible network kavle problem today but
the death was completely silent - it just hanged without a word.

R.
--
Rafal Maszkowski rzm@oso.chalmers.se rzm@mat.torun.edu.pl <-finger for public
snail: Omgangen 464-82, 412-80 Goteborg, Sweden; tel: +46-31-7780831      key
   Opinia publiczna powinna byc zaalarmowana swoim nieistnieniem - S.J.Lec

------------------------------

From: karel@icce.rug.nl (Karel Kubat)
Subject: Icmake 6.10
Date: Thu, 25 Nov 1993 12:46:17 GMT

Hi Linuxers:

A new version of Icmake is out; the distribution number being 6.10. It can 
be ftp'd in a few days from tsx-11.mit.edu, directory 
pub/linux/sources/usr.bin. The files are: icmake-6.10.tar.gz (sources and 
full docs) and icmake.doc (installation guide). I uploaded the files only 
today (thursday 25th) so it may be a few days before the files are moved. 

If you don't want to wait that long: try getting the files from 
beatrix.icce.rug.nl, anonymous ftp, directory pub/unix.

For more information about Icmake, see the file icmake.doc. It also follows 
below.

Cheers,
Karel.

=============================================================================
                                ICMAKE
                  the Intelligent C-like MAKEr, or
                        the ICce MAKE utility

            Copyright (c) Frank B. Brokken and Karel Kubat

           ICCE, State University of Groningen, Netherlands
=============================================================================


Introduction
============

        Icmake is a hybrid between a 'make' utility and a 'shell script'
language.  Originally, it was concocted to provide a useful tool for
automatic program maintenance and system administrative tasks on MS-DOS
platforms.  As we learned to appreciate its flexibility, Icmake was
eventually ported to Unix platforms (SCO and Linux). By now Icmake also runs
on a HP-Unix platform.

        To give an impression of "what Icmake does", take a look at the
following makefile. It is used for automatic program maintenance, where it
is assumed that in some directory all files with the extension ".c" (C
source files) constitute a program "myprog". The automatic maintenance makes
sure that, once Icmake is invoked, C source files which are more recent
(newer) than a library file "libmyprog.a" are recompiled and placed in the
library. A new program is then made and installed in a directory
"/home/user/bin".

void main ()
{
    list
        cfiles;                                 // list of .c files
    int
        i;                                      // counter variable
    string
        sourcefile;                             // string with name of
                                                // 1 source file

    cfiles = makelist ("*.c", younger,          // cfiles is now a list of
        "libmyprog.a");                         // all files to recompile

    if (cfiles)                                 // if there are any files..
        for (i = 0; i < sizeof (cfiles),        // recompile them
             i++)
        {
            sourcefile = element (i, cfiles);   // get the name from the list
            exec ("gcc", "-c -Wall", sourcefile); // recompile
        }

    if (makelist ("*.o"))                       // any "*.o" files here?
    {
        exec ("ar", "rvs", "libmyprog.a", "*.o");  // add to library
        exec ("rm", "*.o");                        // remove them
        exec ("gcc", "-o myprog", "libmyprog.a");  // re-link program
        exec ("mv", "myprog", "/home/user/bin");   // and install in bin dir
    }
}

        The source files for Icmake look remarkably like C sourcefiles. The
resemblance is so close that this cannot be pure chance!  Yes, we have
implemented Icmake to be a language with a syntax which largely overlaps C.
Since we know how to program in C, we decided that we didn't want to learn
some new macro language.  The Icmake language is a "subset" of C in the
sence that not all operators or functions of C are implemented (but a good
deal are, e.g., gets(), getch(), printf(), etc.).  The Icmake language has
its own extensions to make it a handy language for the purpose of
maintenance: e.g., the operator "younger" compares two files in respect to
their date of last modification, a type "list" is defined to hold several
strings.

        The usage of Icmake is not restricted to program maintenance. The
setup, which allows for functions, arguments, local or global variables, the
calling of external programs, etc.  makes Icmake also extremely suitable as
a shell script language.  E.g., it is easy to accomplish to let Icmake
figure out which files need to be backupped since the last backup date and
to start a process to do so, to send mail about it etc.

        This guide provides a short description how Icmake can be ported to
new platforms.  The documentation for the usage of Icmake, including a
description of the grammar and of all built-in functions, comes with the
distribution files.


Installing Icmake
=================

        The installation files for Icmake come as an archive, e.g.,
"icmake.zip" or "icmake-6.00.tar.gz". These archives unpack to several
directories and files. Please note that the archives unpack to the *current*
directory.

        To unpack the archives, create an appropriate directory (e.g.,
"/usr/local/src/icmake" for Unix platforms, or "c:\c\icmake" for DOS) and
change-dir to that directory. Use an appropriate archiver to unpack. Some
possibilities are described below:

(a) The archive in the form ".tar.Z" can be unpacked using
"cat icmake-5.00.tar.Z | uncompress | tar xvf -"

(b) Archives in the form ".tar.gz", ".tar.z" or ".tgz" can be unpacked using
"gzip -c -d icmake-5.00.tar.gz | tar xvf -"

(c) The archives with the extension ".zip" can be unpacked using
"unzip icmake.zip" or "pkunzip -d icmake.zip".

        The extraction of files from the archive should yield a lot of C
source files in a number of directories. The default distribution of Icmake
may or may not contain makefiles for the Unix-utility "make"; but the
programs can always be created by compiling all files "by hand".
Furthermore, the directory "dosbin" contains compiled versions of the Icmake
programs for DOS platforms.

        To compile all files "by hand" in order to make the programs, please
follow these steps:

(a) Change-dir to the directory "rss". This directory contains sourcefiles
for the Runtime Support System. These functions are used in all the programs
of the Icmake family.

Compile all files, using the appropriate compiler flags which cause your
compiler to compile-only and which cause it to treat "char"s as "unsigned
char"s.  If your compiler supports memory models, choose the "small" model.
E.g., these compiler flags are:

        for GNU's gcc:                  gcc -c -funsigned-char
        for Microsoft C 7.00:           cl -c -J -AS

While compiling, you may need special definition flags to produce workable
code for 'exotic' (well.. exotic to me) systems. Please check the section
below to see if you need any special flags.

Next, place the produced object files into one library. A suggested name is
"libicrss.a" for Unix systems, or "icrss.lib" for DOS systems.  See the
documentation of your library manager ("ar" or "lib") for the required
command line.  E.g., for Unix systems try "ar rsv libicrss.a *.o" in the
directory "rss".

(b) The following five directories must also be created from the archive:
"make", "pp", "comp", "exec", "un". The directories hold respectively the
files needed for the top-level program "icmake", for the preprocessor
"icm-pp", for the compiler "icm-comp", for the executor "icm-exec" and for
the unassembler "icmun". These program names are on Unix-based systems
without extension; supply ".exe" for DOS.

Change-dir to each of these directories, and compile and link all .c files
into the appropriate program. E.g., for a Unix system you might type:
        cd make
        gcc -funsigned-char -o icmake *.c ../rss/libicrss.a
        cd ../pp
        gcc -funsigned-char -o icm-pp *.c ../rss/libicrss.a
        cd ../comp
        gcc -funsigned-char -o icm-comp *.c ../rss/libicrss.a
        cd ../exec
        gcc -funsigned-char -o icm-exec *.c ../rss/libicrss.a
        cd ../un
        gcc -funsigned-char -o icmun *.c ../rss/libicrss.a
        cd ..
For a DOS platform with the Microsoft compiler, you might type:
        cd make
        cl -AS -J -Feicmake.exe *.c ..\rss\icrss.lib
        cd ..\pp
        cl -AS -J -Feicm-pp.exe *.c ..\rss\icrss.lib
        cd ..\comp
        cl -AS -J -Feicm-comp.exe *.c ..\rss\icrss.lib
        cd ..\exec
        cl -AS -J -Feicm-exec.exe *.c ..\rss\icrss.lib
        cd ..\un
        cl -AS -J -Feicmun.exe *.c ..\rss\icrss.lib
        cd ..

Whichever platform you use, please make sure to include the "unsigned chars"
flag when compiling, and name the resulting program by the appropriate name
(one of "icmake", "icm-pp", "icm-comp", "icm-exec", "icmun", optionally
followed by an extension ".exe" for DOS systems). The reason for this is the
fact that the top-level program "icmake" must be able to call all subsequent
programs, of which the names therefore must be known. Furthermore, you may
need special compilation flags for rare systems (see the section below).

During the compilation your compiler may report some warnings. You can
ignore these.

(c) If all goes well, you've now created all necessary programs. Move the
executable files to a system directory; e.g., "/usr/local/bin" for Unix
systems, "c:\sys\bin" for DOS systems, etc.

(d) For all subsequent releases of Icmake which you may wish to install, you
can use your old programs of the Icmake family and the included icmake-files.
E.g., the installation includes a file "unix.im" to create Icmake for Unix
platforms. Prior to using the makefiles, you may wish to edit this file, to
define your favorite compiler, your system directory, etc. Even when you
successfully create Icmake by hand, it may be a good idea to re-make it with
the makefile to check its workings. Just type "icmake unix", or "icmake
dos-msc" or whatever is appropriate; then follow the instructions which are
printed by the makefile.


Special flags while compiling
=============================

        A large part of the source code of Icmake should compile on any
platform. The exceptions we have encountered so far are the following:

(a) On MSDOS platforms, the constant MSDOS must be defined. This symbol is
by default defined by the Microsoft compiler. For other compilers on DOS
systems, a flag "-DMSDOS" may be necessary when invoking the compilations.
Non-DOS systems should, obviously, *not* have a defined symbol MSDOS.

(b) Sparc stations which require double-word alignment, require that the
constant SPARC be defined. Parts of the code, especially the file
"comp/patchup.c", handle assignments differently when SPARC is defined. On
such systems, "-DSPARC" should be added to the compiler flags. (Many thanks
to Wilco Oelen (W.Oelen@el.utwente.nl)).


The Documentation
=================

        Icmake is documented in a Postscript file, "icmake.ps", located in 
the directory "doc".  This file is generated from a .dvi file using dvips, 
and can be processed with GhostScript.  Note that the file is generated for 
a printer resolution of 300 dpi, which suits a LaserJet family printer.  If 
your site lacks the means to print this file, you can mail us at the address 
below to obtain a printed copy of the documentation.  (However, we will 
charge you a small amount to cover our costs).  

        The directory "doc" furthermore contains the file "icmake.1". This 
is a crude "man" page for Unix systems.  You can install it by copying it to 
a directory which contains formatted manual pages.  To use this feature, 
your "man" command must be able to show an already-formatted manual entry.  
E.g., on Linux systems you can copy this file to "/usr/man/cat1".  Typing 
"man icmake" will then show the information.  Some man systems also support 
compressed manual pages.  On these systems you may achieve a lower disk 
usage by compressing the file "icmake.1" to "icmake.1.Z", using the Unix 
program "compress".  

        A few makefiles are provided as examples in the directory
"examples". You may wish to look at these to see how makefiles can be
organized.


Some Legal Stuff
================

        Icmake is shareware. This means that no fee is charged for it. As
with everything that's free, there's no pay but also *absolutely no
warranty*.  Furthermore, you are allowed (and encouraged) to distribute
Icmake, provided that you include this information with each distribution
and provided that you do *not* charge any amount for it.  Not even the $5
for shipping.

        The source files and the documentation for Icmake are copyrighted by
us.  The reason for this is (a) that we'd like to have always the last
version of Icmake, and (b) that we'd like to have the last word in all
modifications.  If you have requests (or even better, "working code" to
include in Icmake) please mail us and we'll gladly oblige when we find the
time.


Requests, Bug Reports, etc.
===========================

        It is possible, even highly likely, that the version of Icmake which
you received contains bugs. We are continuously fighting a battle against
the insects which pop up from time to time to tease us.

        Therefore, we'd very much appreciate it if you'd let us know if you
encounter any bugs. Also, if you have requests or comments about the
programs or the documentation, mail us. We can be reached at:

                Frank Brokken                   Karel Kubat
e-mail:         F.B.Brokken@icce.rug.nl         K.Kubat@icce.rug.nl
phone:          (+31) 50 63 36 88               (+31) 50 63 36 47
address:        Westerhaven 16                  Westerhaven 16
                Groningen                       Groningen
                Netherlands                     Netherlands

-- 
email: K.Kubat@icce.rug.nl             "Premature optimzation is the root
phone: (+31) 50 63 36 47                of all evil.." (Knuth)
mail : ICCE, Univ. of Groningen,
  P.O. box 335, 9700 AH Groningen, Netherlands

------------------------------


** FOR YOUR REFERENCE **

The service address, to which questions about the list itself and requests
to be added to or deleted from it should be directed, is:

    Internet: Linux-Misc-Request@NEWS-DIGESTS.MIT.EDU

You can send mail to the entire list (and comp.os.linux.misc) via:

    Internet: Linux-Misc@NEWS-DIGESTS.MIT.EDU

Linux may be obtained via one of these FTP sites:
    nic.funet.fi				pub/OS/Linux
    tsx-11.mit.edu				pub/linux
    sunsite.unc.edu				pub/Linux

End of Linux-Misc Digest
******************************
