axiom-developer
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Axiom-developer] Windows front end


From: root
Subject: Re: [Axiom-developer] Windows front end
Date: Thu, 28 Nov 2002 10:35:20 -0500

 
> Mike Dewar wrote:
> 
> You're probably aware of this but, just in case, it may help for me to
> point out some of the differences between the Unix and Windows system.

Actually, I'm unaware of what lies ahead as I'm working on the system
layer by layer. I expect life to get much harder once I get out of
the lisp layers. The first announced version is likely to only work
as a command-line interpreter environment. The cross-platform issues
for the graphics and browser are going to be painful, I suspect.

> 1. Graphics: On Unix this is done with a combination of bespoke Axiom
> data structures and some pretty convoluted X-Windows code.  On Windows
> we added facilities to create OpenInventor data structures (OpenInventor
> is the basis for VRML - the virtual reality markup language).  The
> Inventor geometries were then exported to a little application we wrote
> based on the standard SceneViewer application you get with many
> OpenInventor toolkits.  The results were definitely superior to the Unix
> version.

Is the "little application" in the code we have? If not, would NAG
be willing to share it?

> NAG has a visualisation system based on Open Inventor called Iris
> Explorer and some of the reasons for going down this route were product
> integration and leveraging our internal expertise.  However since VRML
> is a well-defined standard it also made Axiom more open.  The
> longer-term plan was to do the same on Unix and drop the old Axiom
> rendering stuff completely but sadly we never got to do this.

I'm happy to hear that work was done to make the graphics more open.
One of the stated goals on the homepage is to "give away" the graphics.
I was planning to enhance the abilities of some other open source
product (like GNUPlot) with the facilities available in Axiom. That
way they gain with new function and we gain because we don't have to
support the graphics any more.

The graphics facility is useful and necessary but the expertise needed
to do it right is a whole other field of research. Scott Morrison did
the graphics and he's no longer following computer algebra.

If you happen to have some useful web and/or book references I'd
appreciate it if you mention them to the group.

I hope to define the input and output formats of the interpreter so
that others can use it. Ideally there would be 3 "pairs" of connections:

Stdin, Stdout for the interpreter/console
Stdin, Stdout for ethernet ports so you can reach the interpreter
  from network based code (and even the browser/graphics applications)
Stdin, Stdout "covers" for linked programs on the same system

If we do that cleanly then all of the other things will just be
stand-alone applications that can communicate with the Axiom interpreter.
That way we can also leverage them for Aldor.
 
> I wouldn't try porting the X-based graphics to Windows but would either
> use the OpenInventor stuff and one of the free VRML viewers or use the
> same approach with a different standard format.  For 3D graphics the OI
> stuff worked pretty-much out-of-the-box, we just added menus for axes,
> scales etc.  For 2D plots we had to add some extra code but that wasn't
> too hard.

I'll take that advice. Do you happen to know of compatible VRML viewers
that work on both Windows and Unix?
 
> 2. The Browser: This is the part of HyperTex which allows you to look up
> domains, categories, operations etc. as opposed to the whole HyperTex
> environment.  For the Windows version we pushed a lot of the code which
> was in the HyperTex application or used Unix scripts into either the
> interpreter (via boot code) or in some cases into the underlying Lisp (I
> added a grep function based on some existing NAG code for example).
> Incidentally this kind of thing will probably give you problems when you
> try using different lisps ...

The browser was a piece of the system that was leading edge
for its time (the web and browsers didn't exist yet). The stated
plan is to "give away" the browser. In this case what that implies
is rewriting the system so it uses a real browser instead of our
home-grown one.

Surely you didn't write lisp that runs on only one platform?! Sigh.
Ah, well, porting is my life :-) I'm gonna be a sherpa when I grow up.
NAG shoulda hired me when they had the chance. I AM glad that you
pushed the scripts and other cruft into lisp.
 
> The upshot of this is that all you require from the front end is a
> simple forms interface and everything else can be done by the
> interpreter, all the old stuff using scripts and C code is obsolete.

This is good news.
 
> 3. The Documentation: The documentation for the Windows system was
> translated from the Unix version so that it would work inside
> TechExplorer (and in some cases we also added code to TechExplorer to
> support particular features).  In most cases this was done by a first
> pass using sed and then some tidying up via emacs macros, hand edits
> etc.  during the proof-reading stage.  

In this world the docs are supposed to be in noweb pamphlets from
which we can generate LaTeX. Hopefully the front-end will handle the
cross-platform issues so we don't have to.

> Again there was a long-term plan which was to migrate the HyperTex docs
> to SGML which was then our standard documentation format (now it would
> be XML) and then generate HyperTex, TechExplorer TeX, vanilla LaTeX as
> needed.

For the browser stuff there is a noweb to html conversion function.
How well that will handle all of our nonsense remains to be seen.
The fact that noweb pamphlets are "pre-final-format" allows us to 
be flexible of our target choices and is one of the reasons I chose it.
Sometimes we want TeX, sometimes HTML and sometimes MathML or XML.
Noweb is designed to allow that. 
 
> So to summarise, its really not necessary to have an X environment under
> Windows and, while I don't know anything about TeXmacs, it ought to be
> sufficient for your needs if it supports forms.  You will need a
> different graphics environment but we found that relatively
> straightforward, largely because the object-oriented nature of Inventor
> made it easy to model the data structures in Axiom.

OpenInventor, eh? Sigh, yet another thing to learn. TeXmacs has
potential but does not currently run on Windows. If it did it would
solve a fair number of issues.

As I said earlier, Axiom is likely to make its first appearance as
a command-line interpreter (no doubt causing us to take some flak).
Rebuilding the rest of the tools is going to be an exercise in
creativity. It will have the unfortunate side-effect that I'll
have to learn Windows :-)

I do appreciate the advice and guidance. It's been years since I've
seen this code.

Tim




reply via email to

[Prev in Thread] Current Thread [Next in Thread]