On Tue, 13 Aug 2024 at 17:11, Luther Johnson <luther.johnson(a)makerlisp.com>
wrote:
... of course it is serialized, there has to be some
convention on
writing a tree out in some order to a file ... well anyway I'm sure they
can tell you what that product is and does.
Just wanted to follow up to provide what I've learned, in case it will be
helpful for someone else at some point. I contacted EDG and the impression
I got is that they don't have readily available documentation for products
so old. They were able to provide me with the manual for the current C++
front end as a starting point for my investigation. Most of what I've
learned has come from a combination of intuition and knowledge from other
utilities, combined with a healthy dose of brute force. EDG were not able
to provide any insight on their relationship with SGI specifically, which I
suppose is not unexpected given the amount of time that has passed and the
vagaries of corporate agreements, though they did indicate that in some
areas EDG and SGI were competitors in that time frame (early '90s). That's
why I found SGI's inclusion of the tool so fascinating. It's just an odd
historical artifact, especially as it is not useful for reasonably complex
code.
Here's the boring part, what I've been able to gather of the command
options to /usr/lib/ecfe. Any single character not listed is not a valid
option:
-d[1-5] : debug, level, this can be extremely verbose even at low levels
-i(file): not sure, wants a file as input but isn't a single-file include
-n: don't actually do anything? Doesn't produce an output file that I can
see, no output to stdout/stderr
-r: "remarks?" does create output file but is no different than without
for hello.c
-s: forces signed chars
-u: forces unsigned chars
-v does what you would think, prints version info
-w does what you would think, suppresses warnings
-A: ANSI C extensions of some nature
-C: not sure, possibly C dialect related
-D(name): does what you would expect from a preprocessor, define
-E: output to stdout, like a preprocessor, doesn't actually apply any
transformations?
-H: outputs what headers are being included
-I(path): does what you would expect from a preprocessor
-K: K&R, does not define __STDC__ which it looks like we are defining
normally
-L(file): "raw output listing", interesting output format with first column
meaning something
-M: makefile dependencies like you would expect, to stdout
-P: "preprocessing only", not sure how this is different from -E
-S(file): no idea, produces a blank file
-U: does what you would expect from a preprocessor, undef
-X: ???
-Henry