[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Axiom-developer] Re: Aldor and Axiom (was Re: What is SubDomain)
From: |
Ralf Hemmecke |
Subject: |
[Axiom-developer] Re: Aldor and Axiom (was Re: What is SubDomain) |
Date: |
Tue, 14 Feb 2006 13:35:20 +0100 |
User-agent: |
Thunderbird 1.5 (X11/20051201) |
If I'm understanding correctly, most of what we would like to
use from Aldor actually is available in source code form, with
the BSD+extra rights for Aldor.org license?
I am not so sure about, the libalgebra sources. Though I have access to
them, I have never seen them distributed from aldor.org. Does anyone
have differen experience here?
The sources of libaldor are open. They are distributed in source in the
1.0.2 release.
And the most critical, libaldor and libalgebra, are Manual
Bronstein's work and might be releasable under plain Modified BSD
without having to unravel the Aldor.org knot?
I guess, that is mostly true for libaldor, but I also added/corrected
some tiny pieces of code.
A bit of history here... (please correct if you find errors here)
Aldor started with just the library libaxllib (when Aldor was still
called AxiomXL). Then in the EU-project FRISCO a library basicmath has
been developed (mostly by NAG, I guess).
Manuel Bronstein was not happy with axllib and started his own library
salli (Standard Aldor Library).
At some point everything was put together. Salli basically became
libaldor and many things from basicmath have been rewritten to work with
libaldor.
Axllib is still in the CVS tree of Aldor, but I wonder who is still
using it. Maybe Marc Moreno Maza, because I heard rumours that basicmath
is still in existence an builds on axllib. (I have never really seen
basicmath, though.)
So libalgebra is probabley mostly the work of Marc Moreno Maza and others.
Anyway, libaldor and libalgebra fall under the APL and there is no other
license around.
Axiom vs. Aldor libraries is only half the problem and the Aldor
libraries are currently maybe only about 10% of the solution.
But that 10% would be a good and quick start in my opinion.
The other half of the problem is the Axiom interpreter which
encodes a great deal of knowledge about the Axiom library itself.
Right now they are tightly couple and one could not throw away
the Axiom library without also throwing away the interpreter.
Right. I would really like to see the interpreter decoupled from the
library code. The interpreter should just interpret the code, i.e.
manage information and not add information. Every little detail must be
deducible from the library code (even by a humam (with some spare
time)). Structuring things into digestible pieces is always a good idea.
It would be much better to design a clear interface between the library
and the interpreter. That would probably mean add a "reflection"
interface similar to reflections in JAVA. That interface would live very
low in the domain hierarchy and might not even be of any use to the
ordinary Aldor programmer, but it would be vital for an Aldor interpreter.
What I really don't like is that in Axiom sometimes information
is added by the compiler/interpreter which does not exist in the
.spad file itself.
The Axiom interpret does this by design.
Well, of course, there is a little guess work done with the interpreter.
But perhaps it would be cleaner to really work out how to implement
BNatural.
Type information that is guessed by the compiler is just an
example.
Could you give an example where type information is "guessed" by
the SPAD compiler?
OK, I have to try a bit... But in the meantime you can look at this bug.
--- file mytype.spad
)abb domain MT MyType
MyType: Cat == Impl where
Cat ==> with
coerce: PositiveInteger -> %
coerce: % -> Integer
Impl ==> add
Rep:=PositiveInteger
coerce(n) == n
--- end file mytype.spad
(1) -> )co mytype.spad
(1) -> m:MT := 1
Loading /home/hemmecke/scratch/FRAC/MT.NRLIB/code for domain MyType
Loading /home/hemmecke/software/Axiom/mnt/linux/algebra/PI.o for
domain PositiveInteger
LISP output:
1
Type:
MyType
(2) -> i:INT := m
Internal Error
The function coerce with signature hashcode is missing from domain
MyType
How can this be missing? ;-) That is what I meant by the line after the
Rep. I actually meant both things by that line
coerce(n) == n
and obviously the compiler understood what I had in mind otherwise it
would have complained. But unfortunately, the resulting code is not
correct in the sense I wanted it.
So, whether you see this as a bug of the spad compiler (which it clearly
is, because it should have told me that my implementation does not
satisfy the category) or whether this is an instance of the spad
compiler adding type information does not matter. SPAD allows to write
ambiguous code and that should clearly be forbidden.
If Axiom wants to be a system that is strongly typed, then there is no
way out: eventually SPAD has to be left behind.
My suggestion would be even to switch off the SPAD compiler after the
Axiom library has been built. An ordinary Axiom user should never be
given the chance to compile SPAD code. He/she should immediately learn
and use Aldor exclusively. With such a decision the Axiom Team clearly
says where its future lies.
(I hope I don't get beaten by that suggestion.)
Ralf
- Re: [Axiom-developer] Re: Aldor and Axiom, (continued)
- Re: [Axiom-developer] Re: Aldor and Axiom, Ralf Hemmecke, 2006/02/15
- Re: [Axiom-developer] Re: Aldor and Axiom, Martin Rubey, 2006/02/15
- Re: [Axiom-developer] Re: Aldor and Axiom, root, 2006/02/15
- Re: [Axiom-developer] Re: Aldor and Axiom, root, 2006/02/15
- Re: [Axiom-developer] Re: Aldor and Axiom, root, 2006/02/15
- Re: [Axiom-developer] RE: Aldor and Axiom, Jay Belanger, 2006/02/15
- Re: [Axiom-developer] RE: Aldor and Axiom, Martin Rubey, 2006/02/14
- [Axiom-developer] The symbol 4 (was Re: Aldor and Axiom), Ralf Hemmecke, 2006/02/14
- Re: [Axiom-developer] The symbol 4 (was Re: Aldor and Axiom), Martin Rubey, 2006/02/15
- Re: [Axiom-developer] The symbol 4 (was Re: Aldor and Axiom), Ralf Hemmecke, 2006/02/15
- [Axiom-developer] Re: Aldor and Axiom (was Re: What is SubDomain),
Ralf Hemmecke <=
- [Axiom-developer] Re: Aldor and Axiom (was Re: What is SubDomain), Ralf Hemmecke, 2006/02/14
- [Axiom-developer] RE: What is SubDomain, Bill Page, 2006/02/13
- Re: [Axiom-developer] What is SubDomain (was: non extending category), Scott Morrison, 2006/02/14
- [Axiom-developer] Re: non extending category, root, 2006/02/10
- [Axiom-developer] RE: non extending category, Bill Page, 2006/02/10
Re: [Axiom-developer] Help with JET, Vanuxem Grégory, 2006/02/10