[comp.sys.sgi] spellin, one more time

zsd@PIG.DREA.DND.CA (Jim Diamond) (08/07/90)

I sent this question out a few weeks ago, and as is usual for
3130-type questions, the silence was overwhelming.

I realize that, officially speaking, SGI employees are not allowed to
acknowledge the existence of pre-4D series machines (this is one of
the reasons that we cancelled our 3130's Hotline support), much less
publically answer questions about them, but I assume that employees
with 3130 knowledge haven't all been terminated.  (Sorta reminds you
of "1984", doesn't it?)  Since none of the other 3130 users (i.e.,
orphans) out there were able or willing to answer the question, I
thought that if some kind soul at SGI knows the answer, I would be
happy to promise to never divulge who helped me out on this one.

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

I would like to create my own hashed word list (analogous to hlista
and hlistb) for use with the spell(1) program on a 3130.  While the
man page for spell (and hashcheck and spellin and hashmake) does not
explicitly mention how to do this, it would seem that part of this
task involves something like
	cat <file> | hashmake | spellin <n>
where <n> should be the number of words in <file>.
But even attempting
	echo dog | hashmake | spellin 1
seems beyond spellin's capabilities: after sitting and thinking for
about 20 CPU seconds, it crashes with a segmentation violation.

Is there anyone out there who would admit to knowledge about how this
version of spellin should really work?

Thanks.

			Jim Diamond
			zsd@pig.drea.dnd.ca

donl@glass.esd.sgi.com (donl mathis) (08/08/90)

In article <9008071620.AA01274@pig.drea.dnd.ca>, zsd@PIG.DREA.DND.CA (Jim Diamond) writes:

> I realize that, officially speaking, SGI employees are not allowed to
> acknowledge the existence of pre-4D series machines (this is one of
> the reasons that we cancelled our 3130's Hotline support), much less
> publically answer questions about them, but I assume that employees
> with 3130 knowledge haven't all been terminated.  (Sorta reminds you
> of "1984", doesn't it?)  Since none of the other 3130 users (i.e.,
> orphans) out there were able or willing to answer the question, I
> thought that if some kind soul at SGI knows the answer, I would be
> happy to promise to never divulge who helped me out on this one.

Hm.  You sound a little frustrated.

I can't and won't try to justify SGI's behavior along these lines, but
speaking purely for myself, as best i recollect...

The staff that produced all of the early machines, up to and including
the 3000 series, was rather small when compared to the current
engineering staff.  The effort to get the 4D series off the ground was
rather massive, and involved not only moving many of the existing folk
over, but hiring in a lot of new people who had no reason to learn
about the earlier machines.  The changes that occured in engineering
were staggering, and resulted in an overall mix where only a fraction
of the staff had anything to do with 3000's.  By that time, the older
series was becoming pretty stable, and because of the newer technology,
it just didn't make a lot of sense to put much more effort into it.
That seems pretty normal to me, somehow.

The official policy, i believe, has been stated here before once or
twice, and says that we still support the machines.  I wouldn't be
surprised if you found it a bit difficult to find people who were
ready, willing, and able to help with support for the older machines,
but there are probably still a few here and there.  The company has
apparently not done as well as it could have in making that support
accessable.  Some of the employees who put in more than a few 12-hour,
7-day work weeks to get the 3000's built, in the "old days", are
probably a bit disappointed in that, but aren't necessarily in
positions to do much about it.

I'm sorry you didn't get any action on your first posting, too.  The
fact is that all of the engineers who worked on the 3000's are now
busy working on "the new stuff", and probably have those nasty deadlines
to meet and all that sort of thing.  They were probably all hoping that
someone else would help you, because they didn't have time!

> ----------------------------------------------------------------------
> 
> I would like to create my own hashed word list (analogous to hlista
> and hlistb) for use with the spell(1) program on a 3130.  While the
> man page for spell (and hashcheck and spellin and hashmake) does not
> explicitly mention how to do this, it would seem that part of this
> task involves something like
> 	cat <file> | hashmake | spellin <n>
> where <n> should be the number of words in <file>.
> But even attempting
> 	echo dog | hashmake | spellin 1
> seems beyond spellin's capabilities: after sitting and thinking for
> about 20 CPU seconds, it crashes with a segmentation violation.
> 
> Is there anyone out there who would admit to knowledge about how this
> version of spellin should really work?

There are some floating point algorithms in spellin that don't seem to
work well with small values of <n>.  I haven't dug too deeply, but my
first guess is that if t=(2^27/n), then t/(t+1) represented as a
(single precision) floating point number has to be something other than
1.  (I'm not quite certain that's the truth, but it's probably
something like that!)  In any case, the problem is an infinite
recursion trying to bring some numbers in range, and values of 1000 or
more seem to allow that to happen.  I fed a single word to it, as in
your example, but with a spellin argument of 1000, and it worked fine.
The output file in that case was only 2k, so i don't think there's much
a significant space penalty, even if your list is short.

It looks like the expected use is to combine your "hashmake" output
with the output of "hashcheck < hlista" (for example), and then feed it
back into spellin with a big table size (based on a count of entries, i
suppose).

By the way, the man page implies that hashcheck will take a filename as
an argument; this appears not to be the case.  Feed it on stdin.

---

Sorry for all the discomfort.
--

- donl mathis at Silicon Graphics Computer Systems, Mountain View, CA

donl@sgi.com

"I want my Ektar 25 sheets!"