axiom-developer
[Top][All Lists]
Advanced

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

RE: [Axiom-developer] ht.awk


From: Bill Page
Subject: RE: [Axiom-developer] ht.awk
Date: Thu, 16 Nov 2006 23:36:11 -0500

On November 16, 2006 9:31 PM Waldek Hebisch wrote:
>
> Ralf asked:
> 
> > Does somebody know where the file ht.awk is?
> > 
> > All the .ht files say...
> > 
> > % !! DO NOT MODIFY THIS FILE BY HAND !! Created by ht.awk.
> > 
> > So if there is/were a script that generates the .ht files, 
> why keep them 
> > under source code control?
> 

You can find the ht.awk script in the src/htex directory in this
tarball

http://wiki.axiom-developer.org/public/htex.tgz

See also the src/doc/htex files.

> I think we can forget about 'ht.awk': the whole process could not
> be very complicated, so it should be easy to create a new script.
> But the bigger problem is which workflow _we_ want to have?  IMO
> we should stick to a small controlled subset of latex as a main
> format and generate rest from it (the point is that once we allow
> more Latex features we will spent more time developing tools then
> writing documentation).
>

It looks to me like the original Axiom developers had already
given this some thought. Perhaps the src/doc/htex files represent
this sort of process?
 
> There is a second problem: .ht files in general contain more
> precise markup then 'book.pamphlet', but some differences may be
> due to editing done by Tim.

Yes, I think so. Tim has been editing the .tex files, not the
original .htex files.

> ATM the main difference I see is that book contains Tex formulas,
> but hypertex pages use textual output from Axiom.

I think that reflects the limitations of hyperdoc that cannot
display actual Tex formulas. On the other hand NAG did have a
commerical version of Axiom that used the Texplorer browser to
display these formula, hyperdoc documentation, and even live
graphics.

> 
> > 
> > And, Waldek, didn't you say that also the .pht files are
> > generated?
> > 
> 
> I put the following in 'src/hyper/Makefile.pamphlet':
> 
> In the long term, the [[.pht]] and viewports should be 
> generated at either
> build time or installation time using commands like:
> \begin{verbatim}
>              rm -f ht.db
>              ${HTADD} *.ht
>              for A in `ls *.ht`; do ${SMAN} -paste $$a ; done
>              rm -f ht.db
>              ${HTADD} *.ht *.pht
> \end{verbatim}
> 

Ah, so it is 'htadd' that is supposed to create .pht files from the
.ht files. I see. Is there any documentation of this process?

> Hypertex has special code to extract parts of .ht file and prepare
> .input file for Axiom.  Once .input is ready Hypertex tells
> AXIOMsys to execute it, writing output to a file.  Then Hypertex
> should collect the output into .pht page.
> 
> This 'almost' works: some pages are nicely generated, but on other
> it stops and one has manually quit Axiom.  It seems that Hypertex
> has problem detecting that AXIOMsys finished writing output file.  
> 

Wow! How did you learn/know that this functionality even existed?
:-) By reading the code? I am very pleased and amazed.

I tried the following:

address@hidden pages]$ pwd
/home/page/axiom.build-improvements/src/hyper/pages

address@hidden pages]$ sman -paste CYCLES.ht
GCL (GNU Common Lisp)  2.6.8 CLtL1    Nov 15 2006 13:37:33
Source License: LGPL(gcl,gmp), GPL(unexec,bfd,xgcl)
Binary License:  GPL due to GPL'ed components: (READLINE BFD UNEXEC)
Modifications of this banner must retain notice of a compatible license
Dedicated to the memory of W. Schelter

Use (help) to get some basic information on how to use GCL.
Temporary directory for compiler files set to /tmp/
                        AXIOM Computer Algebra System
             Version: Axiom build-improvements branch 2006-11-09
             Timestamp: Wednesday November 15, 2006 at 19:04:51
----------------------------------------------------------------------------
-
   Issue )copyright to view copyright notices.
   Issue )summary for a summary of useful system commands.
   Issue )quit to leave AXIOM and return to shell.
----------------------------------------------------------------------------
-

(1) ->
(1) -> making CYCLES.input
parsing: CycleIndicatorsXmpPage
writing:        )expose EVALCYC
   Loading /home/page/axiom.test/target/i686-pc-linux/autoload/bc-matrix.
   Loading /home/page/axiom.test/target/i686-pc-linux/autoload/bc-misc.
   Loading /home/page/axiom.test/target/i686-pc-linux/autoload/bc-solve.
   Loading /home/page/axiom.test/target/i686-pc-linux/autoload/bc-util.
   Loading /home/page/axiom.test/target/i686-pc-linux/autoload/ht-util.
   Loading /home/page/axiom.test/target/i686-pc-linux/autoload/htsetvar.
   Loading /home/page/axiom.test/target/i686-pc-linux/autoload/ht-root.
   Loading /home/page/axiom.test/target/i686-pc-linux/autoload/br-con.
   Loading /home/page/axiom.test/target/i686-pc-linux/autoload/br-data.
   Loading /home/page/axiom.test/target/i686-pc-linux/autoload/showimp.
   Loading /home/page/axiom.test/target/i686-pc-linux/autoload/br-op1.
   Loading /home/page/axiom.test/target/i686-pc-linux/autoload/br-op2.
   Loading /home/page/axiom.test/target/i686-pc-linux/autoload/br-search.
   Loading /home/page/axiom.test/target/i686-pc-linux/autoload/br-util.
   Loading /home/page/axiom.test/target/i686-pc-linux/autoload/topics.
   Loading /home/page/axiom.test/target/i686-pc-linux/autoload/br-prof.
   Loading /home/page/axiom.test/target/i686-pc-linux/autoload/br-saturn.
   All user variables and function definitions have been cleared.
   EvaluateCycleIndicators is now explicitly
writing:        complete 1
      exposed in frame frame0
writing:        complete 2
writing:        complete 3
writing:        complete 7
writing:        elementary 7
writing:        alternating 7
writing:        cyclic 7
writing:        dihedral 7
writing:        graphs 5
writing:        cap(complete 2**2, complete 2*complete 1**2)
writing:        cap(elementary 2**2, complete 2*complete 1**2)
writing:        cap(complete 3*complete 2*complete 1,complete 2**2*complete
1**2)
writing:        cap(elementary 3*elementary 2*elementary 1,complete
2**2*complete 1**2)
writing:        cap(complete 3*complete 2*complete 1,elementary
2**2*elementary 1**2)
writing:        eval(cup(complete 3*complete 2*complete 1, cup(complete
2**2*complete 1**2,complete 2**3)))
writing:        square:=dihedral 4
writing:        cap(complete 2**2,square)
writing:        cap(complete 3*complete 2**2,dihedral 7)
writing:        cap(graphs 5,complete 7*complete 3)
writing:        s(x) == powerSum(x)
writing:        cube:=(1/24)*(s 1**8+9*s 2**4 + 8*s 3**2*s 1**2+6*s 4**2)
                   Compiling function s with type PositiveInteger
       -> SymmetricPolynomial Fraction Integer
writing:        cap(complete 4**2,cube)
writing:        cap(complete 2**3*complete 1**2,wreath(elementary
4,elementary 2))
writing:        cap(complete 2**3*complete 1**2,wreath(elementary 4,complete
2))
writing:        cap(complete 2**3*complete 1**2,wreath(complete 4,elementary
2))
writing:        cap(complete 2**3*complete 1**2,wreath(complete 4,complete
2))
writing:        x: ULS(FRAC INT,'x,0) := 'x
writing:        ZeroOrOne: INT -> ULS(FRAC INT, 'x, 0)
writing:        Integers: INT -> ULS(FRAC INT, 'x, 0)
writing:        ZeroOrOne n == 1+x**n
writing:        ZeroOrOne 5
   Compiling function ZeroOrOne with type Integer
       -> UnivariateLaurentSeries(Fraction
      Integer,x,0)
writing:        Integers n == 1/(1-x**n)
writing:        Integers 5
   Compiling function Integers with type Integer
       -> UnivariateLaurentSeries(Fraction
      Integer,x,0)
writing:        eval(ZeroOrOne, graphs 5)
writing:        eval(ZeroOrOne,dihedral 8)
writing:        eval(Integers,complete 4)
writing:        eval(Integers,elementary 4)
writing:        eval(ZeroOrOne,cube)
writing:        eval(Integers,cube)
writing:        eval(Integers,graphs 5)
writing:        eval(ZeroOrOne ,graphs 15)
writing:        cap(dihedral 30,complete 7*complete 8*complete 5*complete
10)
writing:        sf3221:= SFunction [3,2,2,1]
writing:        cap(sf3221,complete 2**4)
writing:        cap(sf3221, powerSum 1**8)
writing:        eval(Integers, sf3221)

At this point Axiom appeared to hang, but I hit Enter and got a
promt.

(47) -> )quit
   Please enter y or yes if you really want to
      leave the interactive environment and
      return to the operating system:
yes

----------

The following .input file was generated.

address@hidden pages]$ cat CYCLES.input

-- Input for page CycleIndicatorsXmpPage
)clear all

)expose EVALCYC
complete 1
complete 2
complete 3
complete 7
elementary 7
alternating 7
cyclic 7
dihedral 7
graphs 5
cap(complete 2**2, complete 2*complete 1**2)
cap(elementary 2**2, complete 2*complete 1**2)
cap(complete 3*complete 2*complete 1,complete 2**2*complete 1**2)
cap(elementary 3*elementary 2*elementary 1,complete 2**2*complete 1**2)
cap(complete 3*complete 2*complete 1,elementary 2**2*elementary 1**2)
eval(cup(complete 3*complete 2*complete 1, cup(complete 2**2*complete
1**2,complete 2**3)))
square:=dihedral 4
cap(complete 2**2,square)
cap(complete 3*complete 2**2,dihedral 7)
cap(graphs 5,complete 7*complete 3)
s(x) == powerSum(x)
cube:=(1/24)*(s 1**8+9*s 2**4 + 8*s 3**2*s 1**2+6*s 4**2)
cap(complete 4**2,cube)
cap(complete 2**3*complete 1**2,wreath(elementary 4,elementary 2))
cap(complete 2**3*complete 1**2,wreath(elementary 4,complete 2))
cap(complete 2**3*complete 1**2,wreath(complete 4,elementary 2))
cap(complete 2**3*complete 1**2,wreath(complete 4,complete 2))
x: ULS(FRAC INT,'x,0) := 'x
ZeroOrOne: INT -> ULS(FRAC INT, 'x, 0)
Integers: INT -> ULS(FRAC INT, 'x, 0)
ZeroOrOne n == 1+x**n
ZeroOrOne 5
Integers n == 1/(1-x**n)
Integers 5
eval(ZeroOrOne, graphs 5)
eval(ZeroOrOne,dihedral 8)
eval(Integers,complete 4)
eval(Integers,elementary 4)
eval(ZeroOrOne,cube)
eval(Integers,cube)
eval(Integers,graphs 5)
eval(ZeroOrOne ,graphs 15)
cap(dihedral 30,complete 7*complete 8*complete 5*complete 10)
sf3221:= SFunction [3,2,2,1]
cap(sf3221,complete 2**4)
cap(sf3221, powerSum 1**8)
eval(Integers, sf3221)

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

And a new CYCLES.pht file seems to have been generated.

address@hidden pages]$ ls -l CYCLES.*
-rw-rw-r--    1 page     page        11323 Nov  3 21:47 CYCLES.ht
-rw-rw-r--    1 page     page         1587 Nov 16 22:28 CYCLES.input
-rw-rw-r--    1 page     page        68987 Nov 16 22:28 CYCLES.pht

address@hidden pages]$

Regards,
Bill Page.






reply via email to

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