[sage-devel] Re: [fricas-devel] Re: [sage-devel] Re: [fricas-devel] Re: Project

2008-04-21 Thread Martin Rubey

Just a quick note now, maybe more later:

William Stein [EMAIL PROTECTED] writes:

 I don't understand the Axiom distribution enough to understand
 how big it is, but my impression is that it is *also* huge.  Looking
 in the src/src/algebra directory there are many hundreds of
 thousands of lines of code (over 300,000 distinct lines just of
 dot-lsp files).  

These files are *not* the source code, they are the code produced by the SPAD
compiler.  The compilation process goes SPAD - Lisp - whatever the lisp
produces.

What you want to read are the xxx.spad.pamphlets.  They should be very clear to
read.  In fact, that was one of the more important reasons why I switched from
Maxima to Axiom.

 This is from INTALG.lsp.  Surely this is some machine-generated code that
 isn't meant to be human readable, so I'm measuring the wrong thing!

Oh, sorry.  You realized it already.  Well, it won't hurt.

 Some of the code is funny (from zmod.lsp):
 
 (DEFUN |ZMOD;coerce;I$;24| (|n| $) (|ZMOD;bloodyCompiler| |n| $))

If you want to, I could even explain that line :-)

 Ahh, maybe the pamphlet files are what generate the lsp files.
 
 It looks like the pamphlet files that come with fricas are between 100,000
 and 200,000 lines long.
 
 How does the fricas/axiom source code layout work?  Is it all written in
 pamphlets that lisp is generated from?

The current strategy (at least from my point of view) is to have the maths
(i.e., everything in the algebra directory) in noweb (AKA pamphlet) form.  The
compiler and the interpreter itself use traditional documentation.  In my
opinion, this makes sense, since I want to use LaTeX to explain certain maths
(LaTeX was made for that), but the compiler and the interpreter do not contain
math on that level.

 I know of three open source implementations of lisp that do not need to
 bootstrap themselves

What's wrong with bootstrapping, and in particular with sbcl?
http://www.sbcl.org/platform-table.html

Do you insist on building the lisp from scratch?  If so, why?

In any case, I think that clisp is not a very good choice for FriCAS except
that it is available almost everwhere.  SBCL based FriCAS is *a lot* faster.  I
do not have a clisp version handy, but SBCL vs. GCL makes a *factor* of 2 for,
eg., guessing.  CLISP is still slower.

 Yes, indeed redo the guessing package in Sage/Python.  It will only help
 improve the code in both systems.  If you have the time I would strongly
 encourage you to do that.

No, I'm currently struggling to get a job, and it's not unlikely that I'll have
to quit in January anyway.  Furthermore, I doubt that it's interesting to
improve the code.  It would be interesting to improve the algorithm, though.

Martin


--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: [fricas-devel] Re: [sage-devel] Re: [fricas-devel] Re: Project

2008-04-20 Thread Alfredo Portes

Hi William,

Given that I started this thread, I will try to share some of my ideas
regarding your questions.

I am not an Axiom developer, probably Bill Page can answer
these questions better than anybody.

On Sun, Apr 20, 2008 at 10:29 AM, William Stein [EMAIL PROTECTED] wrote:

  Sage is not going away (It should not go away!) and I think the Axiom
  community needs to deal with how it should interact with Sage in the

  I hope Sage doesn't go away :-), since I really like open source
  math software.   Certainly improving Sage/Axiom community
  interaction would be good.

One thing it will be good to start differentiating the projects. Like currently
the interface to Sage uses Fricas but it says Axiom...I know this is annoying
but I think it is something it should be done. This also applies to OpenAxiom.

  The part of Sage that deals with the web interface is written
  in pure Python and depends only on Python, Twisted, and
  Pexpect.   At present it is somewhat tightly integrated into
  the Sage distribution.  But this is only *temporary*, which
  we intend to change in the future, most likely this summer.
  Thus if you just want to have an Axiom GUI and or web notebook
  interface, you could just ship or depend on

  Python+Twisted+Pexpect+a small part of Sage.

  There is also Knoboo by some other Sage developers,
  which isn't as stable and full featured (yet!), but looks
  very nice: http://knoboo.com/

An this is very good news. In my opinion the Sage Notebook can become
the default interface to all of these systems ... and by promoting it
in this way you can find many more developers from other projects, so
having the Sage Notebook as a separate but related project like you did
with Cython will be good. Of course you would need somebody to take
the lead (Alex maybe? :-).

  I don't understand the Axiom distribution enough to understand
  how big it is, but my impression is that it is *also* huge.  Looking
  in the src/src/algebra directory there are many hundreds of
  thousands of lines of code (over 300,000 distinct lines just of
  How does the fricas/axiom source code layout work?
  Is it all written in pamphlets that lisp is generated from?
  Anyway, I would love if somebody who knows what they
  are talking about regarding axiom (not me!) would
  explain what the human-written/readable code
  parts of the axiom distro are and roughly how big each is,
  in some sense.  Or just point me to an article or wiki page
  about this.  And who are some of the Axiom original
  authors?  Some files have headers like:

  ++ Author: Grabmeier, Gschnitzer, Williamson
  ++ Date Created: 1987
  ++ Date Last Updated: July 1990

  I wonder who those guys were...?

The issue of the size came about because of if we want to use
the Sage notebook. The other thing was for Axiom or Fricas or
OpenAxiom to replace Maxima in Sage, but I know there is not
enough lobbying power :-) for this to happen.

  This is an area where I think the Sage project could really use help
  from some of the Fricas people; namely it would be great if we could
  get Maxima to build on ECLS, since then we could get rid of clisp
  completely.   Since Axiom has been ported to ECLS, maybe
  Waldek or whoever could help a little with getting Maxima to
  run on ECLS.

I would think that Waldek will help to get Fricas running in Sage as
a standard component. That will be a good way of keeping a system
like Axiom alive.

  You are not mistaken that Axiom does have interesting and huge
  packages.

  You guys could certainly make a version of Sage that includes Axiom along
  with anything extra and built however you want, with maybe some
  Axiom-specific enhancements.Just install Sage, install axiom into
  it, and type
sage -bdist sage-axiom-3.0
  and look in your
dist/
  subdirectory for the resulting binary.

You mean Fricas or OpenAxiom right :-)

  I can't explain to you why Axiom definitely hasn't been made a
  part of Sage, and that it is unlikely to happen as far as I can tell.
  Probably one of the most honest reasons is that I guess few
  of the active Sage developers are also Axiom users/developers,
  so maybe we're ignorant.  I don't know.  Nowadays, nothing ever gets into
  Sage by just hoping a lot. Usually somebody has to really really
  want it, make many many compelling arguments, demonstrate
  use cases, offer to work hard to solve problems that come up
  with integration of the component into Sage, etc.  Also, we have
  pretty strict rules about platforms that have to be fully supported.

But isn't Axiom like the mac daddy off all CAS or is this all vapor ware???
Isn't Axiom better than Maxima? or this is not the case anymore? I say
this because maybe many people out there can show why Axiom would
be useful. Didn't Bill convince you at Sage Days :-)

b) merge our community into the Sage community

  Yes, that would be great too.  I think there should just be one big
  community of open source 

[sage-devel] Re: [fricas-devel] Re: [sage-devel] Re: [fricas-devel] Re: Project

2008-04-20 Thread William Stein

On Sun, Apr 20, 2008 at 10:17 AM, Alfredo Portes [EMAIL PROTECTED] wrote:

  Hi William,

  Given that I started this thread, I will try to share some of my ideas
  regarding your questions.

  I am not an Axiom developer, probably Bill Page can answer
  these questions better than anybody.


  On Sun, Apr 20, 2008 at 10:29 AM, William Stein [EMAIL PROTECTED] wrote:

Sage is not going away (It should not go away!) and I think the 
 Axiom
community needs to deal with how it should interact with Sage in the


   I hope Sage doesn't go away :-), since I really like open source
math software.   Certainly improving Sage/Axiom community
interaction would be good.

  One thing it will be good to start differentiating the projects. Like 
 currently
  the interface to Sage uses Fricas but it says Axiom...I know this is annoying
  but I think it is something it should be done. This also applies to 
 OpenAxiom.


I hope you fix this and submit a patch :-)


The part of Sage that deals with the web interface is written
in pure Python and depends only on Python, Twisted, and
Pexpect.   At present it is somewhat tightly integrated into
the Sage distribution.  But this is only *temporary*, which
we intend to change in the future, most likely this summer.
Thus if you just want to have an Axiom GUI and or web notebook
interface, you could just ship or depend on
  
Python+Twisted+Pexpect+a small part of Sage.
  
There is also Knoboo by some other Sage developers,
which isn't as stable and full featured (yet!), but looks
very nice: http://knoboo.com/

  An this is very good news. In my opinion the Sage Notebook can become
  the default interface to all of these systems ... and by promoting it
  in this way you can find many more developers from other projects, so
  having the Sage Notebook as a separate but related project like you did
  with Cython will be good. Of course you would need somebody to take
  the lead (Alex maybe? :-).

A good unifying graphical interface is extremely important to creating
something that is a viable alternative to
Maple/Mathematica/Magma/Matlab.  In some sense it is perhaps it
is *the* most important thing.



I don't understand the Axiom distribution enough to understand
how big it is, but my impression is that it is *also* huge.  Looking
in the src/src/algebra directory there are many hundreds of
thousands of lines of code (over 300,000 distinct lines just of

   How does the fricas/axiom source code layout work?
Is it all written in pamphlets that lisp is generated from?
Anyway, I would love if somebody who knows what they
are talking about regarding axiom (not me!) would
explain what the human-written/readable code
parts of the axiom distro are and roughly how big each is,
in some sense.  Or just point me to an article or wiki page
about this.  And who are some of the Axiom original
authors?  Some files have headers like:
  
++ Author: Grabmeier, Gschnitzer, Williamson
++ Date Created: 1987
++ Date Last Updated: July 1990
  
I wonder who those guys were...?

  The issue of the size came about because of if we want to use
  the Sage notebook.

As mentioned above this is no problem.  But I am just plain curious
about the size of Axiom.

 The other thing was for Axiom or Fricas or
  OpenAxiom to replace Maxima in Sage, but I know there is not
  enough lobbying power :-) for this to happen.


This is an area where I think the Sage project could really use help
from some of the Fricas people; namely it would be great if we could
get Maxima to build on ECLS, since then we could get rid of clisp
completely.   Since Axiom has been ported to ECLS, maybe
Waldek or whoever could help a little with getting Maxima to
run on ECLS.

  I would think that Waldek will help to get Fricas running in Sage as
  a standard component. That will be a good way of keeping a system
  like Axiom alive.

Waldek has been very helpful getting Axiom to stay an optional
Sage package, by making it easy to build with clisp.



You are not mistaken that Axiom does have interesting and huge
packages.
  
You guys could certainly make a version of Sage that includes Axiom along
with anything extra and built however you want, with maybe some
Axiom-specific enhancements.Just install Sage, install axiom into
it, and type
  sage -bdist sage-axiom-3.0
and look in your
  dist/
subdirectory for the resulting binary.

  You mean Fricas or OpenAxiom right :-)


Yep.

I can't explain to you why Axiom definitely hasn't been made a
part of Sage, and that it is unlikely to happen as far as I can tell.
Probably one of the most honest reasons is that I guess few
of the active Sage developers are also Axiom users/developers,
so maybe we're ignorant.  I don't know.  Nowadays, nothing ever gets into
Sage by just hoping a 

[sage-devel] Re: [fricas-devel] Re: [sage-devel] Re: [fricas-devel] Re: Project

2008-04-20 Thread Ralf Hemmecke

Hi William,

On 04/20/2008 05:29 PM, William Stein wrote:
On Sun, Apr 20, 2008 at 3:10 AM, Martin Rubey [EMAIL PROTECTED] wrote:
 I don't have the guts to send this to a public mailing list.  I 
 probably
  should.  If you want to, you have my permission.


  Alfredo Portes [EMAIL PROTECTED] writes:

 Axiom is so huge, so if Sage would be a part of Axiom that just 
 handles
the web interface, why not?
 
 The part of Sage that deals with the web interface is written
 in pure Python and depends only on Python, Twisted, and
 Pexpect.   At present it is somewhat tightly integrated into
 the Sage distribution.  But this is only *temporary*, which
 we intend to change in the future, most likely this summer.
 Thus if you just want to have an Axiom GUI and or web notebook
 interface, you could just ship or depend on
 
  Python+Twisted+Pexpect+a small part of Sage.

Oh, that looks interesting. The question is, who is going to implement 
that? Are there any volunteers around?

 I don't understand the Axiom distribution enough to understand
 how big it is, but my impression is that it is *also* huge.

Well, one cannot cover a big part of mathematics ant not being huge.

 Looking
 in the src/src/algebra directory there are many hundreds of
 thousands of lines of code (over 300,000 distinct lines just of
 dot-lsp files).  By the way, how do you guys read
 some of this stuff?

Nobody should have need to read LISP. Mathematicians are used to higher 
level. I would prefer if under src/algebra there would be only spad 
files with nothing but SPAD (or Aldor) and documentation in them.
One can write relatively compact code in SPAD/Aldor and nothing like 
LISP should distract from that.

  I looked in INTALG.lsp and it is
 pages of code that look like this:
  (PROGN
(LETT #0# NIL
 |INTALG;palglogint|)
(SEQ
 (LETT |q| NIL
  |INTALG;palglogint|)
 (LETT #1#
  (SPADCALL (QCDR |fc|)
   |lf| (QREFELT $ 79))
  |INTALG;palglogint|)
 G190
 (COND
   ((OR (ATOM #1#)
 (PROGN
   (LETT |q|
(CAR #1#)
|INTALG;palglogint|)
   NIL))
(GO G191)))
 (SEQ
  (EXIT
   (LETT #0#
(CONS
 (SPADCALL
  (SPADCALL
   (QCAR |q|) 0
   (QREFELT $ 82))
  (QREFELT $ 83))
 #0#)
|INTALG;palglogint|)))
 
 This is from INTALG.lsp.  Surely this is some machine-generated
 code that isn't meant to be human readable, so I'm
 measuring the wrong thing!

Of course. And of course, nobody reads that. Or is there someone?

 How does the fricas/axiom source code layout work?
 Is it all written in pamphlets that lisp is generated from?
 Anyway, I would love if somebody who knows what they
 are talking about regarding axiom (not me!) would
 explain what the human-written/readable code
 parts of the axiom distro are and roughly how big each is,
 in some sense.

William, since you are an invited speaker at ISSAC, why not staying a 
little longer and attending the Aldor  Axiom Workshop right after 
ISSAC? There might be some people around that could explain.

 And who are some of the Axiom original
 authors?  Some files have headers like:

 ++ Author: Grabmeier, Gschnitzer, Williamson
 ++ Date Created: 1987
 ++ Date Last Updated: July 1990
 
 I wonder who those guys were...?

I agree, nothing is perfect. But as for this particular case, I know Dr. 
Johannes Grabmeier personally, and since he is working near Linz, he 
might be around at the Aldor  Axiom Workshop.

Ralf

--~--~-~--~~~---~--~~
To post to this group, send email to