[comp.lang.lisp.x] Unix additions to XLISP 2.1

mayer@hplabsz.HPL.HP.COM (Niels Mayer) (06/08/90)

I've got enough requests for my Unix additions to XLISP 2.1 that I'm going
to post them here. Sorry, these aren't in patch/diffc format -- you
wouldn't be able to do anything patching against my modified WINTERP
sources anyways, and I'm too busy right now to patch against the raw xlisp
2.1 sources (besides, there's enough versions floating about that it's hard
to know which 2.1 sources are really the raw sources).

Please please please don't ask me for sources to xlisp 2.1 -- they've been
posted to comp.sources.misc on 2/27/90. Look in the archives on
uunet.uu.net, or call up the bulletin board # that was posted in this group
previously.

Note that I am set up to automatically e-mail copies of my entire WINTERP
distribution... you can get xlisp out of there. If you want that, send mail
to winterp-source@hplnpm.hpl.hp.com or hplabs!hplnpm!winterp-source.

Ok, so here's the added functions POPEN, PCLOSE, SYSTEM,
    FSCANF_FIXNUM, FSCANF_STRING, FSCANF_FLONUM,
    COPY_ARRAY, ARRAY_INSERT_POS, ARRAY_DELETE_POS.

------------------------------------------------------------------------------
added to xlbfun.c
------------------------------------------------------------------------------
/******************************************************************************
 * (copy-array <src> <dest> [<pos>]) --> returns <dest>
 * This function copies from array <src> into the preallocated array <dest>
 * (allocate with 'make-array'). If the optional arg <pos> is given, then
 * elements from <src> will be written into <dest> at index <pos>, otherwise
 * <pos> defaults to 0. 
 *
 * This function was added to xlisp by Niels Mayer.
 ******************************************************************************/
LVAL Prim_COPY_ARRAY()
{
  register int size;
  register LVAL *src, *dest;
  LVAL src_array, dest_array, lval_pos;

  src_array = xlgavector();	/* get <src> */
  dest_array = xlgavector();	/* get <dest> */
  if moreargs()
    lval_pos = xlgafixnum();	/* get optional <pos> */
  else
    lval_pos = NIL;
  xllastarg();

  src = src_array->n_vdata;
  dest = dest_array->n_vdata;

  if (getsize(src_array) < getsize(dest_array))	/* which is shortest? */
    size = getsize(src_array);
  else
    size = getsize(dest_array);

  if (lval_pos) {
    int pos = getfixnum(lval_pos);
    int len = getsize(dest_array) - pos;
    if ((len <= 0) || (pos < 0))
      xlerror("Array position out of bounds.", lval_pos);    
    if (len < size)
      size = len;
    dest = dest + pos;
  }

  while (size--)
    *dest++ = *src++;

  return (dest_array);
}

/******************************************************************************
 * (array-insert-pos <array> <pos> <el their
  TV (and radio?, and some print) ads - I've always wondered if he was
  PAID for those promotional shots (above and beyond the $1.00).  In 
  any case he received many perks (car, driver, private jet ?, etc)
  in those early years - MOST of the $Ms came in the form of STOCK.

  As to the earlier point.  We do not know that the US is better off
  due to the bailout/turn around at Chrysler.  Thousands and Thousands
  of car worker ARE OUT OF JOBS today (at Chrysler, Ford, and GM), and
  the same goes for their suppliers and other secondary suppliers (check
  out the auto battery and replacement tire manufacturers).  The only 
  thing that really happened was that Chrysler was saved, the other 
  automakers (US producers and foreign) made big profits and consumers
  paid higher prices.
  
  OH, one other thing The POLITITIONS (many of them)
  got reelected based on having saved all those jobs.

  David Stevens
#! rnews 6711
Path: hplabs!sdd.hp.com!zaphod.mps.ohio-state.edu!usc!venera.isi.edu!jas
From: jas@ISI.EDU (Jeff Sullivan)
Newsgroups: alt.fan.monty-python
Subject: Re: Sssh! The copyright people are watching
Message-ID: <13804@venera.isi.edu>
Date: 7 Jun 90 18:05:31 GMT
References: <15408@s.ms.uky.edu>
Sender: news@venera.isi.edu
Organization: USC-ISI
Lines: 142
In-reply-to: miles@ms.uky.edu's message of 5 Jun 90 18:06:32 GMT

In article <15408@s.ms.uky.edu> miles@ms.uky.edu (Stephen D. Grant) writes:

      From: miles@ms.uky.edu (Stephen D. Grant)
      Newsgroups: alt.fan.monty-python
      Date: 2 Jun 90 03:42:20 GMT
      Organization: Univ. of Kentucky, USA. -5 GMT


      The Cast (in order of appearance.)
      M= Man looking for an argument (Michael Palin)		
      R= Receptionist Girl
      Q= Abuser (Graham Chapman)
      A= Arguer (John Cleese)
      C= Complainer (Eric Idle)
      H= Head Hitter (Terry Jones)

   .
   . [entire transcription of sketch omitted]
   .

   Do you understand that the reproduction of copyrighted material
   without approval of the copyright holder is a violation oum(lval_position);
  if (position >= src_size)
    xlerror("Array insertion position out of bounds.", lval_position);
  if ((src_size - 1) > 0)
    dest_array = newvector(src_size - 1);
  else
    return (NIL);

  src = src_array->n_vdata;
  dest = dest_array->n_vdata;

  if (position < 0) {		/* remove last element of array */
    i = src_size - 1;
    while (i--)
      *dest++ = *src++;
  }
  else {			/* remove <elt> at <position> */
    i = position;
    while (i--)
      *dest++ = *src++;
    src++;			/* don't copy the deleted elt */
    i = src_size - (position + 1);
    while (i--)
      *dest++ = *src++;
  }
  return (dest_array);
}
------------------------------------------------------------------------------
unixstuff.c
------------------------------------------------------------------------------
/* -*-C-*-
********************************************************************************
*
* File:         unixstuff.c
* RCS:          $Header: unixstuff.c,v 1.3 89/11/25 05:12:16 mayer Exp $
* Descriptio say it?  I dare.) adults.  That
inlcudes acting responsibly and paying attention to annoying little
things like laws.

   individual who sent me this letter also sent the letter to the
   postmaster at my site. What a guy.. all flames. Could this be
   Randall our copyrighted guru in wolfs clothing? Nah..

No, it is me.  I signed the letter quite clearly, and am not trying to
hide in the least.  Note that I did not post this to the net.  We have
had so much discussion (and by discussion, I mean people pointing out
the illegality of the act and most others blithely ignoring it) of
this on the net that I thought it pointless.  I did, however, send
both you (who obviously do not care about your actions) and your
sysadmin (who might).

   To the sender of this letter, should you read it here, this is not a way of
   getting back at your rude, blatent and quite off the cuff piece of
   mail to me.

In what way is pointing out that you are engaging in acts which are
very likely illegal rude?  Am I tramping on yourpress or implied warranty.
*
* HEWLETT-PACKARD AND DAVID BETZ DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
* SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS,
* IN NO EVENT SHALL HEWLETT-PACKARD NOR DAVID BETZ BE LIABLE FOR ANY SPECIAL,
* INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
* LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
* OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*
* See ./winterp/COPYRIGHT for information on contacting the authors.
* 
* Please send modifications, improvements and bugfixes to mayer@hplabs.hp.com
* Post XLISP-specific questions/information to the newsgroup comp.lang.lisp.x
*
********************************************************************************
*/
static char rcs_identity[] = "@(#)$Header: unixstuff.c,v 1.3 89/11/25 05:12:16 mayer Exp $";


#include "xlisp.h"

/******************************************************************************
 * Prim_POPEN - start a process and open a pipe for read/write 
 * (code stolen from xlfio.c:xopen())
 *
 * syntax: (popen <command line> :direction <direction>)
 *                <command line> is a string to be sent to the subshell (sh).
 *                <direction> is either :input (to read from the pipe) or
 *                                      :output (to write to the pipe).
 *                                      (:input is the default)
 *
 * Popen returns a stream, or NIL if files or processes couldn't be created.
 * The  success  of  the  command  execution  can be checked by examining the 
 * return value of pclose. 
 *
 * Added to XLISP by Niels Mayer
 ******************************************************************************/
LVAL Prim_POPEN()
{
  extern LVAL k_direction, k_input, k_output;
  char *name,*mode;
  FILE *fp;
  LVAL dir;

  /* get the process name and direction */
  name = (char *) getstring(xlgastring());
  if (!xlgetkeyarg(k_direction, &dir))
    dir = k_input;
  
  /* get the mode */
  if (dir == k_input)
    mode = "r";
  else if (dir == k_output)
    mode = "w";
  else
    xlerror("bad direction",dir);
  
  /* try to open the file */
  return ((fp = popen(name,mode)) ? cvfile(fp) : NIL);
}


/******************************************************************************
 * Prim_PCLOSE - close a pipe opened by Prim_POPEN().
 * (code stolen from xlfio.c:xclose())
 *
 * syntax: (pclose <stream>)
 *                  <stream> is a stream created by popen.
 * returns T if the command executed successfully, otherwise, 
 * returns the exit status of the opened command.
 *
 * Added to XLISP by Niels Mayer
 ******************************************************************************/
LVAL Prim_PCLOSE()
{
  extern LVAL true;
  LVAL fptr;
  int  result;

  /* get file pointer */
  fptr = xlgastream();
  xllastarg();

  /* make sure the file exists */
  if (getfile(fptr) == NULL)
    xlfail("file not open");

  /* close the pipe */
  result = pclose(getfile(fptr));

  if (result" - 007
   miles@s.ms.uky.edu        | "Go Ahead, It's Your Quarter.." - Me   
   (Vice President of the new chain stores "UZI's, AR-15's and HK94's R US")
   =============================================================================

--
--------------------------------------------------------------------------
Jeffrey A. Sullivan		| Senior Systems Programmer
jas@venera.isi.edu		| Information Sciences Institute
jas@isi.edu   DELPHI: JSULLIVAN	| University of Southern California
#! rnews 7704
Path: hplabs!sdd.hp.com!zaphod.mps.ohio-state.edu!uwm.edu!uwvax!sabertooth.cs.wisc.edu!tookey
From: tookey@sabertooth.cs.wisc.edu (Keith Tookey)
Newsgroups: talk.religion.misc
Subject: Re: Buddha and God (was:Bahai: All religions being one.)
Message-ID: <10562@spool.cs.wisc.edu>
Date: 7 Jun 90 19:47:33 GMT
References: <1990May25.012830.2412@math-cs.kent.edu> <743@fornax.UUCP> <204@rossignol.Princeton.EDU> <793@fornax.UUCP>
Sender: news@spool.cs.wisc.edu
Organization: University of Wisconsin, Madison -- Computer Scienced));

  if (result == -1) {		/* if a system error has occured */
    if (errno < sys_nerr)
      (void) sprintf(temptext, "Error in system(3S): %s\n", sys_errlist[errno]);
    else
      (void) strcpy(temptext, "Error in system(3S): unknown error\n");
    xlfail(temptext);
  }

  /* return T if success (exit status 0), else return exit status */
  return (result ? cvfixnum(result) : true);
}


/******************************************************************************
 * (FSCANF-FIXNUM <stream> <scanf-format>)
 * This routine calls fscanf(3s) on a <stream> that was previously openend
 * via open or popen. It will not work on an USTREAM.
 * <scanf-format> is a format string containing a single conversion
 * directive that will result in an integer valued conversion.
 * %d, %u, %o, %x, %ld, %lu, %lo and %lx style conversions 
 * are acceptable for this routine.
 * WARNING: specifying a <scanf-format> that will result in the conversion
 * of a result larger than sizeof(long) will result in corrupted memory afluence on the culture and history of Asian countries, particu-
larly Tibet.  In 1953 he was appointed adviser in Tibetan litera-
ture  at  the Yale University Library.  His Master of Arts degree
from Yale University was awarded for his studies  of  the  people
and culture of Tibet.  Mr. Needham has lectured at Yale and other
universities and colleges, and he tutors  undergraduate  students
in  Tibetan Buddhist art.  His book reviews and articles have ap-
peared in religious periodicals and other publications, and three
articles  have  been published in the Encyclopedia Americana.  He
serves as a director of the Tibetan Foundation, Inc.

Buddha and the Absolute Reality

Review of Jamshed K. Fozdar's The God of Buddha (New York:   Asia
Publishing House, Inc., 1973), xii, 184 pages

By Wesley E. Needham

The subject of Jamshed K. Fozdar's The God of Buddha is indeed  a
welcome  surprise  and  its  excellent  treatment  long  overdue.
Through careful research and perceptive analysis of many Buddhist
and  Hindu  scriptures the author has successfully refuted an er-
roneous belief concerning the Buddha, long accepted  as  factual.
The  title  is  unique---unexpected  and paradoxical because Bud-
dhists and students of Buddhist literature are aware that in  the
Buddha's discourses he did not attempt to define a supreme Being,
a divine Creator, a personal  Deity,  a  heavenly  Father  to  be
worshiped.  For that matter, he did not even mention God.  Unfor-
tunately, it is a common opinion that anyone who does not believe
in  God,  as  conceived by a believer, must be an atheist:  hence
the long-standing assumption that the Buddha  and  his  disciples
were  atheists.   It  is,  therefore,  because of his attitude of
silence about God that the Buddha is completely misrepresented.

In The God of Buddha the author offers  abundant  evidence,  ably
presented in numerous quotations from translations of Hindu texts
selected from the Bhagavad Gita and the Upanishads, which reveals
how  the  religious heritage of the Buddha Gautama, born a Hindu,
made him aware of the indefinable Eternal Reality behind phenome-
nal existence.  Although the Buddha was well versed in his ances-
tral religion, he was strongly opposed to the Hindu preoccupation
with an Indian Olympus of gods and goddesses invented for popular
acceptance and worship  as  orthodox  substitutes  for  righteous
behavior.

Throughout the book Mr. Fozdar has included with many  quotations
from  Hindu  sources  a  comparable selection from Buddhist texts
such as the Dhammapada, the Udana, the Mahavagga, and others  ar-
ranged  in  parallel  columns.   Here we can see how the Buddha's
teachings and those of the older Faith  were  analogous  in  most
essentials  and  terminology,  although the emphasis had changed.
The Absolute of the Indian Upanishads was a concept far  too  in-
comprehensible  and  remote  for the Buddha to stress as a beacon
for his followers.  He taught reliance on the Dharma, the law  of
infallible  righteousness, as the path to perfection.  His teach-
ings concerning righteous behavior were summarized  in  the  Four
Noble Truths (Suffering, The cause, Its elimination, The way) and
in the Eightfold Noble Path.

As the new religion founded  by  the  Buddha  emphasized  ethical
striving  instead  of worship, it would be pointless and lead no-
where if devoid of a divine source, a  substructure  of  Reality.
The author points out that the Buddha, while never in doubt about
the existence of the Absolute Reality, the Causeless  Cause,  was
concerned about how to communicate its significance to his disci-
ples.  To teach atheism would have no appeal to anyone who  would
become a convert, nor could any form of atheism attain the preem-
inent position of a major religious tradition.

Mr. Fozdar has made the fact unquestionably clear that  the  con-
cept of God as the impersonal primordial Source was no mystery to
the Buddha, who had often implied  its  existence.   The  natural
question  then  occurs:   ``Why  did  he keep silent and leave no
clear record?''  He refrained only from any attempt to define God
with  words  that would either delimit the indefinable Supreme or
describe in finite terms a concept or image far from the truth he
knew.   But  the  Buddha said, as record in the Udana, an ancient
canonical text, ``There is O monks, an Unborn, Unoriginated,  Un-
created,  Unformed,'' leaving no doubt what the Buddha meant.  We
are constantly reminded of the importance of this  quotation,  as
it is repeated several times in The God of Buddha.

Here in less than two-hundred pages  is  an  impressive,  soundly
reasoned  thesis,  complete with a glossary of Hindu and Buddhist
terms, a selected bibliography, and an  index.   In  addition  to
these useful aids, the author devotes many pages to a chapter en-
titled ``Point and Counter-point'' in which he  clarifies  misin-
terpretations  and  misunderstandings  which developed out of the
Buddha's original teachings.  The reader will also gain  new  in-
sight  in  chapters  concerning the Buddha's teachings on Dharma,
Faith, Renunciation, Duty, Detachment, Selfless Action, and other
subjects including Nirvana.

Exceptional scholarship is in evidence throughout this  challeng-
ing  study  of  the  Enlightened One and what he know but did not
teach.  The book, therefore, can be recommended as  an  eminently
reliable reference work.  yet it is a disappointment in this pro-
found and admirable contribution  to  the  enlightenment  of  in-
terested  readers, to discover only a few brief references to the
fundamental Buddhist doctrine of Rebirth, more commonly  referred
to  as  Reincarnation.   Although the author has given quotations
from the Buddhist texts---Dhammapada, Jataka Tales,  and  Milinda
Prasnaya---he explains his unfavorable opinion of the doctrine of
Reincarnation in a footnote on page 75.


--
   _                    __     _____
   / /       _/_ /     /__)      /          /
  /\^  _. ^  /  /-.   /\        /  _   _   /_  _. .  .
 /  \_(/_/__/__/ /   /  \      /  (_)_(_)_/ <_(/___\/
                                                 _/
#! rnews 1180
Path: hplabs!sdd.hp.com!zaphod.mps.ohio-state.edu!uwm.edu!rutgers!aramis.rutgers.edu!topaz.rutgers.edu!mrichter
From: mrichter@topaz.rutgers.edu (mrichter)
Newsgroups: comp.sys.ibm.pc
Subject: GIF Paint Programs
Message-ID: <Jun.7.15.49.08.1990.12546@topaz.rutgers.edu>
Date: 7 Jun 90 19:49:10 GMT
Organization: Rutgers Univ., New Brunswick, N.J.
Lines: 19


I'm looking for a paint program (VGA) that saves and edits GIF format
files.  Does anybody know of/use any, either commercial or Public
Domain/Shareware?   

Thanks.
-- 


					Quantum Buc
 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
^ E-MAIL:    buc@world.std.com                                            v
^ UUCP:      uunet!world!buc                                              v 
^ NEWSFLASH: Due to Quantum LEAP's popularity, NBC has Fall Saturday      v
 <<<<<<<<<<  Morning spinoff planned -- "Quantum Babies": The Adventures  v
          ^  of Sam and Al when they were kids!                           v
          ^  (Guest Starring LEAPie the Quantum Duck!)                    v
          <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
Let the pigeons loose!!!
#! rnews 749
Path: hplabs!hp-pcd!hpcea!hpspdra!hpnmdla!alanb
From: alanb@hpnmdla.HP.COM (Alan Bloom)
Newsgroups: hp.forum
Subject: Re: Changes in HP
Message-ID: <100235@hpnmdla.HP.COM>
Date: 7 Jun 90 17:54:38 GMT
References: <13200005@hpldola.HP.COM>
Organization: HP Network Measurements Div, Santa Rosa, CA
Lines: 11

>I actually have $200 of signature authority for _disbursements_ (not petty
>cash).  I've had this since Day One and every 58/60 engineer has it.  It is

----------

I recently ordered a $35 book from corporate on switching power supplies.
It required a functional manager's signature.

We CAN still get pencils from office supplies with only my own signature.
Our department secretary stocks them so we don't have to go through the 
hassle.
#! rnews 2010
Path: hplabs!sdd.hp.com!zaphod.mps.ohio-state.edu!usc!venera.isi.edu!jas
From: jas@ISI.EDU (Jeff Sullivan)
Newsgroups: alt.fan.monty-python
Subject: Re: Sssh! The copyright people are watching
Message-ID: <13805@venera.isi.edu>
Date: 7 Jun 90 18:09:05 GMT
References: <15408@s.ms.uky.edu> <24764@mimsy.umd.edu>
Sender: news@venera.isi.edu
Organization: USC-ISI
Lines: 39
In-reply-to: muller@phoenix.src.umd.edu's message of 6 Jun 90 02:15:55 GMT

In article <24764@mimsy.umd.edu> muller@phoenix.src.umd.edu (Christophe Muller) writes:

   ...... :-( ......

   Some people are like that.. Next time they will mail _only_ the administrator
   of the site (You can write to mine !! He doesn't give a d.. f.. !!), and

No, I will continue to write to both the copyright infringor (sp?) and
the supposedly "in charge" person at the site.  It's a pretty damn sad
thing if your sysadmin doesn't care about illegalities on the net.  It
shows what kind of accountability we have here.

   at last they will suit the net always saying "but it is to protect you..."

I am not doing it to protect *you*, my friend, I am doing ti to
protect the *writers* and the *usenet*.  But, despite your shitty
attitude, I'd lobby to protect your rights as well, were they stomped
on like this.

   Don't misunderstand me, debates are Ok. Denonciation is disguting. In France
   during the war we called that collaboration !

What is denonciation?  Anyway, the thing I don't understand is this:
This is NOT a debate!  The copyright law is quite clear!  Why do you
think the law only applies to you if *you* think it does?

   Now, the show must go on..

   ....... :-) .....

   Cheers,
   Christophe.

    = Got thirteen channels of shit on the T.V. to choose from ...to choose from =
--
--------------------------------------------------------------------------
Jeffrey A. Sullivan		| Senior Systems Programmer
jas@venera.isi.edu		| Information Sciences Institute
jas@isi.edu   DELPHI: JSULLIVAN	| University of Southern California
#! rnews 2898
Path: hplabs!hp-pcd!hpcea!hpcc01!hpcuhb!hpindda!krause
From: krause@hpindda.HP.COM (Mike Krause)
Newsgroups: hp.field
Subject: Re: Market Driven Quality on OSI
Message-ID: <40410034@hpindda.HP.COM>
Date: 7 Jun 90 14:26:24 GMT
References: <40410029@hpindda.HP.COM>
Organization: HP Information Networks, Cupertino, CA
Lines: 41

/ hpindda:hp.field / timg@hpgnd.HP.COM (Tim GILL) /  7:36 am  Jun  6, 1990 /
>As one who will probably end up supporting said products, I'm a little 
>nervous about release of products that haven't gone through our normal 
>exhaustive testing.  From personal experience, it seems that enough
>bugs already get through the initial MR process.  
>
>Related to this is, of course, our customer image.  For years we have used
>our DATAPRO ratings as free advertising and have built up a very strong
>quality image.  Will the introduction of products with (possible) 
>significant defects have an adverse effect on these ratings? (Of course,
>we could change our advertising strategy, but heh...).
>What does marketing think about doing this? 

This is not a question of exhaustive testing but a question of compromise and
business decisions.  Quality is not sacrificed, per se.  If a product is to
get out the door and to customer's that need it as quickly as possible, the
feature set may need to be reduced and, thus the testing effort is reduced.  
The reduction in feature set does not mean a reduction in the code or the 
capabilities of the product - these are simply not supported even though they
may still exist in the code.  If they exist, the rigid quality standards 
requiring X% of the code must be tested before release is not valid.  Also, the
fact that no serious or critical bugs may exist can be waved, temporarily, if
the bug effects a feature that is not critical or needed by the early release
customer's.  I think the first response to this note string said it best.  We
are not shipping shody products but tailoring the quality needs and feature set
to the early release customer's needs.  Future releases will increase the
feature set and the quality levels since more of the code will be tested. 

For the other poster who asked about the 8.0 HP-UX train, the GOSIP products
will be released on 7.0 HP-UX with a follow on release on 8.0.  The time-tables
are not available for public consumption at this time.  This means we are an
ISU and not attached to the multi-delayed HP-UX train.  This will allow us to
be more responsive to our customer's needs and bug fixes.

Instead of concentrating on quality sacrifices, I would like to see more 
discussions about what customer's feel about getting products based on 
market driven quality and product releases as opposed to the normal long
time-to-market product release strategy.  See the first response for a better
description of market driven quality than what I gave in the base note.

Thanks...
#! rnews 4118
Path: hplabs!hp-pcd!hpcea!hpcc01!pims_gat
From: pims_gat@hpcc01.HP.COM (Paul Houtz)
Newsgroups: hp.general
Subject: Re: PRIMA-X Project Data Sheet
Message-ID: <490014@hpcc01.HP.COM>
Date: 7 Jun 90 17:27:24 GMT
References: <490011@hpcc01.HP.COM>
Organization: HP Corporate Computing & Services
Lines: 96

Jason@hpcndjdz.HP.COM (Jason Zions) writes:

> Notice a lack?
> 
> PC/Windows - Nope. Sorry, field.
> Plain terminals - Nope. Sorry, field.
> 
> You guys ever been to a field office? You know what they have there?
> Portable PCs, Vectras, terminals, and terminal emulators. The only 300/800s

Jazz, the PRIMA-X version is the preliminary version of PRIMA that is mainly
for use by divisions.   This is why it seems heavily weighted to the 
factory. 

The PRIMA system will address both the needs of the field AND the factory.

To clarify, here is the schedule:

Version:	Function:				approx. Date of Delivery
-------------------------------------------------------------------------------
PRIMA 1.0     Stars Submit Node         		Aug-Sept  1990
	 	This version is to replace RCSTARS
		as the primary source of SR submittal
		to STARS from the Response Centers and the
		field.
		* Dumb Terminal and Graphical interface
		* Gateway to RCSTARS	

PRIMA-X		Preliminary Factory Node		See Data Sheet and
		*Graphical interface only		Nader's comments
		*User Defined Interface	
		*Distributed issue submittal
		*No link to RCSTARS or DTS

PRIMA 2.0	Full Tracking Functionality		1991
		*Dumb terminal and graphical interface
		*Fully distributed database
		*Field, Response Center and Factory						 oriented
		*UDI
		*Gateway to STARS type systems
		 via the RCSTARS distribution
		 network
		
PRIMA 2.X	Future planned functionality		1992- 199X
		*PC Windows
		*DTS or STARS migration
		*non-unix servers
		* etc.

The PRIMA Development team is not built on the paradigm of the isolated
corporate think tank; we are composed engineers who formerly worked in
the response centers, factory, and outside companies.  Many of us have
used STARS, RCSTARS, and DTS extensively.

I worked for an HP customer prior to coming to HP;  I worked at the 
SEMC, and later the Technology Access Center when I came to HP.  I have
dealt extensively with HP Field SE's, third parties, and major accounts on
both the MPE XL and HP-UX systems.  I personally have submitted over 100
SR's via STARS at the Cupertino Site.   In addition, I have used ODIN
and STARS extensively in investigating defects in HP products used by my
customers.

We have tried not to fall into the trap of trying to create a grandiose 
system to meet everyone's needs in one feld swoop;  instead we are developing
technology gradually, and allowing our customer base to use each piece as
we develop it, to make certain that it meets the needs of our customers,
the Response Centers, field operations, and of course, the factory.  Since
PRIMA-X is our current development effort, this posting is our way of
announcing it to a possible user community and having them use it and 
give us feedback.

The group who has supported our efforts most during the first phase of
development was the Worldwide Response Center organization.  They perceived
a need to replace the overloaded RCSTARS data entry and SR distribution
system with new technology.  This we have done, and are r		}, /* 145 */
{	"1-",				S, xsub1		}, /* 146 */
{	"REM",				S, xrem			}, /* 147 */
{	"MIN",				S, xmin			}, /* 148 */
{	"MAX",				S, xmax			}, /* 149 */
{	"ABS",				S, xabs			}, /* 150 */
{	"SIN",				S, xsin			}, /* 151 */
{	"COS",				S, xcos			}, /* 152 */
{	"TAN",				S, xtan			}, /* 153 */
{	"EXPT",				S, xexpt		}, /* 154 */
{	"EXP",				S, xexp			}, /* 155 */
{	"SQRT",		  		S, xsqrt		}, /* 156 */
{	"RANDOM",			S, xrand		}, /* 157 */
			
	/* bitwise logical functions */
{	"LOGAND",			S, xlogand  		}, /* 158 */
{	"LOGIOR",			S, xlogior  		}, /* 159 */
{	"LOGXOR",			S, xlogxor  		}, /* 160 */
{	"LOGNOT",			S, xlognot  		}, /* 161 */

	/* numeric comparison functions */
{	"<",				S, xlss			}, /* 162 */
{	"<=",				S, xleq			}, /* 163 */
{	"=",				S, xequ			}, /* 164 */
{	"/=",				S, xneq			}, /* 165 */
{	">=",				S, xgeq			}, /* 166 */
{	">",				S, xgtr			}, /* 167 */
			
	/* string functions */
{	"STRCAT",			S, xstrcat  		}, /* 168 */
{	"SUBSEQ",			S, xsubseq  		}, /* 169 */
{	"STRING",			S, xstring  		}, /* 170 */
{	"CHAR",				S, xchar		}, /* 171 */

	/* I/O functions */
{	"READ",				S, xread		}, /* 172 */
{	"PRINT",			S, xprint		}, /* 173 */
{	"PRIN1",			S, xprin1		}, /* 174 */
{	"PRINC",			S, xprinc		}, /* 175 */
{	"TERPRI",			S, xterpri  		}, /* 176 */
{	"FLATSIZE",			S, xflatsize		}, /* 177 */
{	"FLATC",			S, xflatc		}, /* 178 */
			
	/* file I/O functions */
{	"OPEN",				S, xopen		}, /* 179 */
{	"FORMAT",			S, xformat  		}, /* 180 */
{	"CLOSE",			S, xclose		}, /* 181 */
{	"READ-CHAR",			S, xrdchar  		}, /* 182 */
{	"PEEK-CHAR",			S, xpkchar  		}, /* 183 */
{	"WRITE-CHAR",			S, xwrchar  		}, /* 184 */
{	"READ-LINE",			S, xreadline		}, /* 185 */

	/* system functions */
{	"LOAD",				S, xload		}, /* 186 */
{	"DRIBBLE",			S, xtranscript		}, /* 187 */

/* functions specific to xldmem.c */
{	"GC",				S, xgc			}, /* 188 */
{	"EXPAND",			S, xexpand  		}, /* 189 */
{	"ALLOC",			S, xalloc		}, /* 190 */
{	"ROOM",				S, xmem			}, /* 191 */
#ifdef SAVERESTORE
{	"SAVE",				S, xsave		}, /* 192 */
{	"RESTORE",			S, xrestore		}, /* 193 */
#else
{	NULL,				S, xnotimp		}, /* 192 */
{	NULL,				S, xnotimp		}, /* 193 */
#endif
/* end of functions specific to xldmem.c */

{	"TYPE-OF",			S, xtype		}, /* 194 */
{	"EXIT",				S, xexit		}, /* 195 */
{	"PEEK",				S, xpeek		}, /* 196 */
{	"POKE",				S, xpoke		}, /* 197 */
{	"ADDRESS-OF",			S, xaddrs		}, /* 198 */

	/* new functions and special forms */
{	"VECTOR",			S, xvector  		}, /* 199 */
{	"BLOCK",			F, xblock		}, /* 200 */
{	"RETURN-FROM",			F, xrtnfrom		}, /* 201 */
{	"TAGBODY",			F, xtagbody		}, /* 202 */
{	"PSETQ",			F, xpsetq		}, /* 203 */
{	"FLET",				F, xflet		}, /* 204 */
{	"LABELS",			F, xlabels  		}, /* 205 */
{	"MACROLET",			F, xmacrolet		}, /* 206 */
{	"UNWIND-PROTECT",		F, xunwindprotect	}, /* 207 */
{	"PPRINT",			S, xpp			}, /* 208 */
{	"STRING<",			S, xstrlss  		}, /* 209 */
{	"STRING<=",			S, xstrleq  		}, /* 210 */
{	"STRING=",			S, xstreql  		}, /* 211 */
{	"STRING/=",			S, xstrneq  		}, /* 212 */
{	"STRING>=",			S, xstrgeq  		}, /* 213 */
{	"STRING>",			S, xstrgtr  		}, /* 214 */
{	"STRING-LESSP",			S, xstrilss		}, /* 215 */
{	"STRING-NOT-GREATERP",		S, xstrileq		}, /* 216 */
{	"STRING-EQUAL",			S, xstrieql		}, /* 217 */
{	"STRING-NOT-EQUAL",		S, xstrineq		}, /* 218 */
{	"STRING-NOT-LESSP",		S, xstrigeq		}, /* 219 */
{	"STRING-GREATERP",		S, xstrigtr		}, /* 220 */
{	"INTEGERP",			S, xintegerp		}, /* 221 */
{	"FLOATP",			S, xfloatp  		}, /* 222 */
{	"STRINGP",			S, xstringp		}, /* 223 */
{	"ARRAYP",			S, xarrayp  		}, /* 224 */
{	"STREAMP",			S, xstreamp		}, /* 225 */
{	"OBJECTP",			S, xobjectp		}, /* 226 */
{	"STRING-UPCASE",		S, xupcase  		}, /* 227 */
{	"STRING-DOWNCASE",		S, xdowncase		}, /* 228 */
{	"NSTRING-UPCASE",		S, xnupcase		}, /* 229 */
{	"NSTRING-DOWNCASE",		S, xndowncase		}, /* 230 */
{	"STRING-TRIM",			S, xtrim		}, /* 231 */
{	"STRING-LEFT-TRIM",		S, xlefttrim		}, /* 232 */
{	"STRING-RIGHT-TRIM",		S, xrighttrim		}, /* 233 */
{	"WHEN",				F, xwhen		}, /* 234 */
{	"UNLESS",			F, xunless  		}, /* 235 */
{	"LOOP",				F, xloop		}, /* 236 */
{	"SYMBOL-FUNCTION",		S, xsymfunction		}, /* 237 */
{	"FBOUNDP",			S, xfboundp		}, /* 238 */
{	"SEND",				S, xsend		}, /* 239 */
{	"SEND-SUPER",			S, xsendsuper		}, /* 240 */
{	"PROGV",			F, xprogv		}, /* 241 */
{	"CHARACTERP",			S, xcharp		}, /* 242 */
{	"CHAR-INT",			S, xcharint		}, /* 243 */
{	"INT-CHAR",			S, xintchar		}, /* 244 */
{	"READ-BYTE",			S, xrdbyte  		}, /* 245 */
{	"WRITE-BYTE",			S, xwrbyte  		}, /* 246 */
{	"MAKE-STRING-INPUT-STREAM", 	S, xmkstrinput		}, /* 247 */
{	"MAKE-STRING-OUTPUT-STREAM",	S, xmkstroutput		}, /* 248 */
{	"GET-OUTPUT-STREAM-STRING",	S, xgetstroutput	}, /* 249 */
{	"GET-OUTPUT-STREAM-LIST",	S, xgetlstoutput	}, /* 250 */
{	"GCD",				S, xgcd			}, /* 251 */
{	"GET-LAMBDA-EXPRESSION", 	S, xgetlambda		}, /* 252 */
{	"MACROEXPAND",			S, xmacroexpand		}, /* 253 */
{	"MACROEXPAND-1",		S, x1macroexpand	}, /* 254 */
{	"CHAR<",			S, xchrlss  		}, /* 255 */
{	"CHAR<=",			S, xchrleq  		}, /* 256 */
{	"CHAR=",			S, xchreql  		}, /* 257 */
{	"CHAR/=",			S, xchrneq  		}, /* 258 */
{	"CHAR>=",			S, xchrgeq  		}, /* 259 */
{	"CHAR>",			S, xchrgtr  		}, /* 260 */
{	"CHAR-LESSP",			S, xchrilss		}, /* 261 */
{	"CHAR-NOT-GREATERP",		S, xchrileq		}, /* 262 */
{	"CHAR-EQUAL",			S, xchrieql		}, /* 263 */
{	"CHAR-NOT-EQUAL",		S, xchrineq		}, /* 264 */
{	"CHAR-NOT-LESSP",		S, xchrigeq		}, /* 265 */
{	"CHAR-GREATERP",		S, xchrigtr		}, /* 266 */
{	"UPPER-CASE-P",			S, xuppercasep		}, /* 267 */
{	"LOWER-CASE-P",			S, xlowercasep		}, /* 268 */
{	"BOTH-CASE-P",			S, xbothcasep		}, /* 269 */
{	"DIGIT-CHAR-P",			S, xdigitp		}, /* 270 */
{	"ALPHANUMERICP",		S, xalphanumericp	}, /* 271 */
{	"CHAR-UPCASE",			S, xchupcase		}, /* 272 */
{	"CHAR-DOWNCASE",		S, xchdowncase		}, /* 273 */
{	"DIGIT-CHAR",			S, xdigitchar		}, /* 274 */
{	"CHAR-CODE",			S, xcharcode		}, /* 275 */
{	"CODE-CHAR",			S, xcodechar		}, /* 276 */
{	"ENDP",				S, xendp		}, /* 277 */
{	"REMOVE-IF",			S, xremif		}, /* 278 */
{	"REMOVE-IF-NOT",		S, xremifnot		}, /* 279 */
{	"DELETE-IF",			S, xdelif		}, /* 280 */
{	"DELETE-IF-NOT",		S, xdelifnot		}, /* 281 */
{	"TRACE",	nd expediting a turn to get back there is the
	surest way out of the sink.

	Remember that microburst-like sink I got into -- ~3600 fpm
	sink starting at 1500 ft agl?  The subsequent computer analysis
	showed 2 courses of action to save the situation.  One depended
	on the location of the runway, and involved a likely forced landing
	while still in sink.  The other, the one I used, offered a better
	chance to get out of the sink.

	BOTH alternatives required PROMPTLY getting into a 60 degree bank;
	according to the computer analysis, the alternative that I took
	successfully would have been dicey at a 50-degree bank and would
	have failed much below that.  In fact, it suggested that 65 or 70
	degrees would have been safer, although 70 would have been pushing
	the airspeed margin over stall more than I'd prefer.

	Given that a turn out of the sink worked for me in a sailplane,
	it ought to work for those who have the luxuries of power and
	faster roll rate.


----------------
Paul Raveling
Raveling@isi.edu
#!  system dependant function pointers */
#include "osptrs.h"

{0,0,0} /* end of table marker */

};			

/* xnotimp - function table entries that are currently not implemented */
LOCAL LVAL xnotimp()
{
    xlfail("function not implemented");
}
------------------------------------------------------------------------------
add to xlisp.doc, p. 22
------------------------------------------------------------------------------
	(copy-array <src> <dest> [<dest-pos>])  COPY INTO A PREALLOC'd ARRAY
	     <src>	the array to copy from
	     <dest>	the array to copy to, preallocated by MAKE-ARRAY
	     <dest-pos>	the integer offset in <dest> for beginning the copy
			If <dest-pos> is omitted, this defaults to 0.
	     returns	<dest>.

	(array-insert-pos <array> <pos> <elt>)	INSERT A NEW ELEMENT IN ARRAY
	    <array>	an array into which we want to insert a new element
	    <pos>	the integer index in <array> for inserted element;
			<pos> < 0 will cause the new element to be appended.
	    <elt>	any lisp value
	    returns	a	4.  Defect instances on assemblies in production lines
	5.  Points of information from documents regarding specifications
	6.  Me-too reports (instances of product defects from customers)
	7.  Usage tips
	8.  Defect/enhancement/comment reports on modules within products
	9.  ad infinitum.

    We have attempted to design PRIMA as a policy free system, so that
    the user is not constrained into tracking and managing ONLY defects,
    enhancements and comments.  This will allow the user to evolve the
    way they use PRIMA, and will allow us to evolve the PRIMA software
    to fit future business needs, in a way that the current systems
    cannot do.

2.  Is PRIMA a distributed system?

    Yes.   The data for a product will be located at the responsible
    division's PRIMA server or servers.  All inquiries and submittals
    via PRIMA will go to those servers.  The product uses berkely sockets
    and internet as the ipc substrata, and the performance is excellent.
    We have done many demos of queries from such places as Boeblingen,
    Barcelona, etc, to Palo Alto, and the response is much the same as
    if the query were being done against the local server. 

    The best thing about the distributed data base is that each local
    server will have it's own updated version of the master product 
    file, so that information about ANY product will be available on
    the local server.  If you need to look up a product number or name,
    you can do it immediately without a network connection, and you will
    be able to submit issues against any issue regardless of the current
    state of that product's server, and do so with the click of a mouse.

3.  Will DTS files be migrated to PRIMA-X?

    We do not currently have this in our product, however, it is definitely
    in the works and will be available when we distribute PRIMA as the 
    replacement for all division issue tracking.

4.  Will the STARS database be migrated?
	
    The PRIMA system is configurable by the user.  The issue data base is
    located on a server at the responsible divisions site, and it will be
    up to the responsible division to determine whether they want to 
    migrate all the SR's they have in STARS to the PRIMA database.   It
    would not be difficult to create a program to download the SR data 
    from STARS and place it in the PRIMA files.  The more important
    question which has to be answered by each division is whether to
    download ALL the data, or only recent data, and how the data items
    contained in the old STARS database are relevant to the PRIMA system
    and current business needs.

    PRIMA will be able to handle any STARS data items vi the UDI, but 
    a lot of those items are only necessary for the mechanics of STARS,
    or are obsolete, and this should be addressed by each division.

5.  Will it link to existing STARS systems?

    The PRIMA 1.0 system includes a Gateway to RCSTARS, which allows all
    submittals of SR's to be routed to the STARS machine at the responsible
    division.  The Gateway reformats the data so that it is compatible
    with  STARS, and a special STARS screen has been designed to capture
    data in a format compatible with the current RCSTARS data entry screens.

    When a division that is running on STARS decides to move to PRIMA, 
    they will need to decide whether to scrap STARS and move entirely to
    PRIMA, or whether they want to keep the STARS system and have Gateway
    from PRIMA to STARS.  We do not have enough information to address this
    issue as yet, but we are leaving both possibilities open.

6.  Will it handle 10x metrics?  

    PRIMA X currently has no specialized reporting facilities, however,
    the PRIMA files are available for users to design their own reports.
    The UDI will allow users to configure their PRIMA-X system to collect
    any data they wish, including 10x data.

    It would be nice if users designed UDI screens that collect 10x data
    and 10x reports.   We could then look at the "best practise" from this
    user area and make it available for everyone.  However, we are not 
    counting on that, and we will develop such necessary reports ourselves
    and make them available at a later date anyway.   

    It just seems like it makes more sense to develop these in conjunction
    with the factory teams rather than developing them in isolation and
    then dumping them on our customers.

7.  Will users have access to the PRIMA files?

    Yes.  At this moment they are standard unix files.   We are 
    investigating various data base platforms, but it is not clear
    yet that there is any benefit to be derived for PRIMA from such
    platforms.

8.  Can PRIMA connect to d