axiom-developer
[Top][All Lists]

## Re: [Axiom-developer] gclweb.lisp

 From: C Y Subject: Re: [Axiom-developer] gclweb.lisp Date: Wed, 2 May 2007 08:34:58 -0700 (PDT)

--- Ralf Hemmecke <address@hidden> wrote:

> I know that you want to do everything in LISP, but there are
>
> http://www.cse.ohio-state.edu/~gurari/tpf/html/LitProg.html

I'm sure there are a variety of solutions available, and in theory any
system capable of supporting the syntax we use can be applied.  Doing
it in lisp will (hopefully) allow deep integration of pamphlet handling
into Axiom.

> I haven't evaluated how good that is and whether is as powerful as
> noweb. I also don't like the syntax and output, but it would be a way
> to avoid LISP. ;-)

You are suggesting having both the latex processing and the tangle
operation performed by TeX code?  Eeek.

> Note that TeX is a programming language and can write
> files. (I have no idea how fast that would be, though.)
> LaTeX is a prerequisite anyway. (Or are there ideas to remove
> dependency on LaTeX?)

Actually removing the dependency on LaTeX is not theoretically
impossible and is a direction I find interesting.  (I think I got a lot
of rolled eyeballs last time I mentioned that...)  cl-typesetting has
taken a few steps towards native lisp typesetting, although it's
license is a bit of a problem for what we need and it seems to be
almost completely undocumented :-(.  Deep integration of a typesetting
engine with Axiom may have some interesting consequences.

> The part that I don't like with the
>
> \begin{chunk}{chunkname}
> ...
> \end{chunk}
>
> syntax is that there would then be no support for highlighting the
> code part (emacs font-lock) according to the type of code that is
> inside the chunk. mmm-mode does that already and it works fine for
> me.

Is mmm-mode not configurable where delimiters are concerned?

> If then some of the LISP programmers on this list convince mmm-mode
> to treat
>
> \begin{chunk}{chunkname} ... \end{chunk}
>
> like
>
> <<chunkname>>= ... @
>
> then I would have nothing against such a LaTeX-like syntax (except
> that using \chunk{chunkname} seems a bit longish to me and one
> should allow a (configurable) shortcut

We'll have to look at editor support - it's a good point.  I'm
commencing to think Emacs may not be the best long term approach, but
it's probably too early to say yet.

> (see section 2.1 of
>
>
> ).
>
> And another "except" would be that a non-noweb solution should be as
> powerful as noweb.
> In particular, your solution should allow that
> identifiers inside code chunks are automatically tagged with

In general, we currently don't need the full power of the noweb system
to build Axiom.  I think the automatic tagging with hyperlinks takes
place at the LaTeX level and is probably most of the work Tim is
dealing with in creating a style file for this particular LaTeX syntax.
We can teach Lisp to output noweb-style LaTeX files but the final
hyperlinking work is actually done by LaTeX, if I understand the system
correctly.  We still need the noweb LaTeX style file, and will  need
something of the sort regardless - it is basic to that style of
typesetting.

>   Anyway extensive use of hyperlinks is a *must*. Nobody is going to
> print a 1000+ pages document. One finds information quicker if the
> document is online and properly hyperlinked.

Agreed, except I might be dumb enough to print it - sort of like having
a mathematical Oxford Unabridged Dictionary on the shelves ;-).  I am
certainly not proposing degrading the LaTeX options for the purpose of
simplifying things, and I don't think that's Tim's goal either.  The
hard work of making pretty noweb-type documents is done in LaTeX style
files, unless I'm mistaken.  Any noweb experts around who know for
sure?

> Look for example at ALLPROSE generated output (ALLPROSE builds on
> noweb features):
>
>
http://www.risc.uni-linz.ac.at/people/hemmecke/AldorCombinat/combinatsu29.html#noweb.NW4LNGwX-49LjXS-1

Ah.  OK, support for everything ALLPROSE needs is a different ballgame
- I don't know how close we are to that yet.  I would like to see how
much of the ALLPROSE system I can implement in Lisp, for similar close
integration with Axiom - I know it has a number of requirements and
it's main implementation language and license are different.  The last
time I took a run at ALLPROSE I never got it fully working, but I think
that might have been due to some problems getting Aldor working (it's
been a while.)  I'll take another stab at it.

I just now got the basic tangle working again, so there is a ways to go
to get full functionality.  Tangle was the first target because it is
the basic requirement to extract the machine code for building.  With
any luck, the working scan function will also mean that most other
problems are simple to solve.  I suppose we should go ahead and handle
the noweb syntax -> LaTeX conversion, and then look at the features
ALLPROSE needs.

Cheers,
CY

__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around
http://mail.yahoo.com