[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Axiom-developer] Re: new problem compiling wh-sandbox
From: |
Martin Rubey |
Subject: |
[Axiom-developer] Re: new problem compiling wh-sandbox |
Date: |
29 Mar 2007 10:11:00 +0200 |
User-agent: |
Gnus/5.09 (Gnus v5.9.0) Emacs/21.4 |
address@hidden writes:
> Martin,
>
> In fact you've encountered the same problem I have been having trying to
> merge gold, build-improvements, and wh-sandbox. Along the way the algebra
> build stops working. I have yet to find the exact source of the problem.
OK. In fact, this demonstrates that it is *very* good to have a few (but not
too many) different versions of Axiom. Otherwise, we wouldn't even have noticed
that there might be a problem somewhere.
> In particular I now have machinery that does automatic regression testing of
> the algebra input files.
Very good! I hope that you had a look at Christian Aistleitner's package
AldorUnit. In case you had not, I copy a piece of test code from the species
project below, that might give you an idea of its power.
> The next release of the gold version is going to come out in smaller, more
> thoroughly tested pieces than I anticipated and will initially contain fewer
> parts from build-improvements and wh-sandbox than I wanted. I'm hoping to
> have gold-51 up this weekend, including the new regression testing machinery.
I'm glad that you are doing this!
> The breakage is subtle. I'm trying to form small changesets, apply each one,
> and then fully check the system. It is a slow, tedious process and,
> unfortunately, won't have results in time for your needs.
Don't worry, I found a well-working workaround: ssh -X aquin, where I have a
working system.
All the best,
Martin
Below part of the "gseries.as.nw" test file. Note that the machinery of
AldorUnit automatically creates a file "gseries.signatures.as", which contains
the signatures necessary to compile "gseries.as".
%------------------------------------------------------------------
%---
%--- Combinat
%--- Copyright (C) Ralf Hemmecke <address@hidden>
%--- svn co svn://svn.risc.uni-linz.ac.at/hemmecke/combinat/
%---
%------------------------------------------------------------------
This file test generating series.
Since our implementations of \useterm[ordinary]{ordinary generating series} and
\useterm{exponential generating series} rely on the implementation of
\useterm{formal power series} as given in \srcfile{src/gseries.as} we
only test \adname[ExponentialGeneratingSeries]{factorialStream} and
some \useterm{cycle index series}.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Test Generating Series}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\addescribetype{TestGeneratingSeries}
%CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
<<*>>=
-------------------------------------------------------------------
----
---- Combinat
---- Copyright (C) Ralf Hemmecke <address@hidden>
---- svn co svn://svn.risc.uni-linz.ac.at/hemmecke/combinat/
----
-------------------------------------------------------------------
#assert DontNeedLibraryTestCases
#include "testcases"
TestGeneratingSeries: TestCaseType with {
#include "gseries.signatures.as"
} == add {
import from TestCaseTools;
import from Integer, DataStream Integer, I;
<<test series>>
}
@ %def TestGeneratingSeries
%TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsubsection{Test FactorialStream}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
The \useterm[Bell numbers]{Bell number} are given by the
\useterm{exponential generating series} $e^{(e^x-1)}$.
\addefinename{testComposeBell:()->()}%
%CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
<<test series>>=
testComposeBell(): () == {
macro S == ExponentialGeneratingSeries;
import from S, Q, DataStream Q;
expx: S := stream(inv(fn) for fn in factorialStream) :: S;
e: S := term(-1, 0);
t: S := e + expx; -- (-1+exp(x))
assertEquals(Integer, 0, count(t, 0));
u := compose(expx, t);
l1: List Integer := [1,1,2,5,15,52,203,877,4140,21147,115975];
l2: List Integer := [count(u, i) for i in 0..prev #l1];
assertEquals(List Integer, l1, l2);
}
@
%TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT