[sage-devel] Re: [fricas-devel] Re: [sage-devel] Re: [fricas-devel] Re: Project
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
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
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
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