From: Alexander P. <po...@gm...> - 2014-03-14 23:45:06
|
Hello everyone, I'm very new to maxima, but have some experience with common lisp. So, I wonder, is it possible (and how hard it would be, approximately) to make maxima loadable directly via quicklisp, rather than downloading and compiling standalone executable? Also, once made loadable via quicklisp, how hard is it to make it useable through SLIME? (with maxima syntax available, perhaps, via some read macro?) Yours sincerely, Alexandr Popolitov |
From: Raymond T. <toy...@gm...> - 2014-03-15 17:53:06
|
>>>>> "Alexander" == Alexander Popolitov <po...@gm...> writes: Alexander> Hello everyone, Alexander> I'm very new to maxima, but have some experience with common lisp. Alexander> So, I wonder, is it possible (and how hard it would be, approximately) Alexander> to make maxima Alexander> loadable directly via quicklisp, rather than downloading and compiling Alexander> standalone executable? I believe there are several things preventing maxima from being in quicklisp: 1. Maxima uses autoconf/automake to set up everything and uses make to build everything.. This might be solvable. 2. Maxima uses mk-defsys to compile and load lisp files. There is an asdf file, but that's not currently used, but I believe it works. 3. Documentation (online help) requires makeinfo and perl. For 2, the main issue is that gcl doesn't quite work with asdf and gcl still needs to be suppported for windows. For 3, if you don't need the docs, then it's not a problem. There is some work to build the documentation using lisp. This mostly works, but has probably bit-rotted some. Alexander> Also, once made loadable via quicklisp, how hard is it to make it Alexander> useable through SLIME? Alexander> (with maxima syntax available, perhaps, via some read macro?) This already works. Rupert gave the following. Place the following in ~/.maxima/startswank.lisp: (require :swank) (swank:create-server :port 56789 :dont-close t) Then start Maxima and run load("startswank"). To connect, do M-x slime-connect using the port specified above. You can continue to enter maxima commands in the terminal, but you can also use slime and a lisp repl to interact with the running maxima. Ray |
From: Richard F. <fa...@be...> - 2014-03-15 18:29:11
|
On 3/15/2014 10:52 AM, Raymond Toy wrote: >>>>>> "Alexander" == Alexander Popolitov <po...@gm...> writes: > Alexander> Hello everyone, > Alexander> I'm very new to maxima, but have some experience with common lisp. > Alexander> So, I wonder, is it possible (and how hard it would be, approximately) > Alexander> to make maxima > Alexander> loadable directly via quicklisp, rather than downloading and compiling > Alexander> standalone executable? For a start, I have found it trivial to download an executable which includes maxima and wxmaxima with one or two clicks. It seems to me that many people think they have to compile something, but they don't. Maybe if you have a reason to try a different lisp system, or you have an operating system that no one else has? So a good way to start out may be to execute an appropriate Maxima version and then quicklisp load whatever else you had in mind. On my computer it takes less than 2 seconds to start up maxima and wxmaxima front end. Traditionally Maxima has been so much larger than anything you might run along with it, that this made good sense. Now I don't know what else people have built that might be bigger. I have, for many years, advocated generating Maxima using only Lisp tools, and have done so repeatedly when I wanted to run in Allegro Common Lisp. I do not, in that case, use either wxmaxima front end or gnuplot. I believe the technique I use could be used for quicklisp, but I am not really familiar with the things that can go wrong. Basically it loads files in a particular order, compiling them if not already compiled, in an appropriate environment. So I agree with Ray, I think. Someone can run autoconf once somewhere. It doesn't need to be done every time. Or at all, if defaults are available. Once I have the compiled "fasl" lisp files in the expected place, it takes less than a minute to load up the core Maxima system. I don't use slime for Maxima. > > I believe there are several things preventing maxima from being in > quicklisp: > > 1. Maxima uses autoconf/automake to set up everything and uses make to > build everything.. This might be solvable. > 2. Maxima uses mk-defsys to compile and load lisp files. There is an > asdf file, but that's not currently used, but I believe it works. > 3. Documentation (online help) requires makeinfo and perl. > > For 2, the main issue is that gcl doesn't quite work with asdf and gcl > still needs to be suppported for windows. > > For 3, if you don't need the docs, then it's not a problem. There is > some work to build the documentation using lisp. This mostly works, > but has probably bit-rotted some. > > Alexander> Also, once made loadable via quicklisp, how hard is it to make it > Alexander> useable through SLIME? > Alexander> (with maxima syntax available, perhaps, via some read macro?) > > This already works. Rupert gave the following. Place the following in > ~/.maxima/startswank.lisp: > > (require :swank) > (swank:create-server :port 56789 :dont-close t) > > Then start Maxima and run load("startswank"). To connect, do M-x > slime-connect using the port specified above. > > You can continue to enter maxima commands in the terminal, but you can > also use slime and a lisp repl to interact with the running maxima. > > Ray > > > > > ------------------------------------------------------------------------------ > Learn Graph Databases - Download FREE O'Reilly Book > "Graph Databases" is the definitive new guide to graph databases and their > applications. Written by three acclaimed leaders in the field, > this first edition is now available. Download your free book today! > http://p.sf.net/sfu/13534_NeoTech > _______________________________________________ > Maxima-discuss mailing list > Max...@li... > https://lists.sourceforge.net/lists/listinfo/maxima-discuss |
From: Alexander P. <po...@gm...> - 2014-03-16 12:21:40
|
Ok, I tried starting SWANK, that's the output I got: (%i8) load("startswank"); To load "swank": Load 1 ASDF system: swank ; Loading "swank" .;; ;; Error while compiling /home/popolit/quicklisp/dists/quicklisp/software/slime-20131211-cvs/swank-sbcl.lisp: ;; Don't know how to REQUIRE SB-INTROSPECT. ;; See also: ;; The SBCL Manual, Variable SB-EXT:*MODULE-PROVIDER-FUNCTIONS* ;; The SBCL Manual, Function REQUIRE ;; Aborting. ;; ; ; compilation unit aborted ; caught 4 fatal ERROR conditions loadfile: failed to load /home/popolit/.maxima/startswank.lisp -- an error. Entering the Maxima debugger. Enter ':h' for help. ~/.maxima/startswank.lisp contains: (ql:quickload '#:swank) (swank:create-server :port 56789) It ERRORed immediately, when there was REQUIRE instead of QL:QUICKLOAD, and then I decided to substitute and see, what happens. However, it seems, that REQUIRE is just somehow disabled in Maxima... On 03/15/2014 05:52 PM, Raymond Toy wrote: >>>>>> "Alexander" == Alexander Popolitov <po...@gm...> writes: > Alexander> Hello everyone, > Alexander> I'm very new to maxima, but have some experience with common lisp. > Alexander> So, I wonder, is it possible (and how hard it would be, approximately) > Alexander> to make maxima > Alexander> loadable directly via quicklisp, rather than downloading and compiling > Alexander> standalone executable? > > I believe there are several things preventing maxima from being in > quicklisp: > > 1. Maxima uses autoconf/automake to set up everything and uses make to > build everything.. This might be solvable. > 2. Maxima uses mk-defsys to compile and load lisp files. There is an > asdf file, but that's not currently used, but I believe it works. > 3. Documentation (online help) requires makeinfo and perl. > > For 2, the main issue is that gcl doesn't quite work with asdf and gcl > still needs to be suppported for windows. > > For 3, if you don't need the docs, then it's not a problem. There is > some work to build the documentation using lisp. This mostly works, > but has probably bit-rotted some. > > Alexander> Also, once made loadable via quicklisp, how hard is it to make it > Alexander> useable through SLIME? > Alexander> (with maxima syntax available, perhaps, via some read macro?) > > This already works. Rupert gave the following. Place the following in > ~/.maxima/startswank.lisp: > > (require :swank) > (swank:create-server :port 56789 :dont-close t) > > Then start Maxima and run load("startswank"). To connect, do M-x > slime-connect using the port specified above. > > You can continue to enter maxima commands in the terminal, but you can > also use slime and a lisp repl to interact with the running maxima. > > Ray > > > > > ------------------------------------------------------------------------------ > Learn Graph Databases - Download FREE O'Reilly Book > "Graph Databases" is the definitive new guide to graph databases and their > applications. Written by three acclaimed leaders in the field, > this first edition is now available. Download your free book today! > http://p.sf.net/sfu/13534_NeoTech > _______________________________________________ > Maxima-discuss mailing list > Max...@li... > https://lists.sourceforge.net/lists/listinfo/maxima-discuss |
From: Alexander P. <po...@gm...> - 2014-03-17 15:51:54
|
Ok, KLUDGED via specifying (ql:quickload 'swank) in ~/.sbclrc, and then recompiling Maxima with these new settings. Now (swank:create-server :port xxx) works like charm. -------- Original Message -------- Subject: Re: [Maxima-discuss] maxima via quicklisp Date: Sun, 16 Mar 2014 13:21:22 +0000 From: Alexander Popolitov <po...@gm...> To: max...@li... Ok, I tried starting SWANK, that's the output I got: (%i8) load("startswank"); To load "swank": Load 1 ASDF system: swank ; Loading "swank" .;; ;; Error while compiling /home/popolit/quicklisp/dists/quicklisp/software/slime-20131211-cvs/swank-sbcl.lisp: ;; Don't know how to REQUIRE SB-INTROSPECT. ;; See also: ;; The SBCL Manual, Variable SB-EXT:*MODULE-PROVIDER-FUNCTIONS* ;; The SBCL Manual, Function REQUIRE ;; Aborting. ;; ; ; compilation unit aborted ; caught 4 fatal ERROR conditions loadfile: failed to load /home/popolit/.maxima/startswank.lisp -- an error. Entering the Maxima debugger. Enter ':h' for help. ~/.maxima/startswank.lisp contains: (ql:quickload '#:swank) (swank:create-server :port 56789) It ERRORed immediately, when there was REQUIRE instead of QL:QUICKLOAD, and then I decided to substitute and see, what happens. However, it seems, that REQUIRE is just somehow disabled in Maxima... On 03/15/2014 05:52 PM, Raymond Toy wrote: >>>>>> "Alexander" == Alexander Popolitov <po...@gm...> writes: > Alexander> Hello everyone, > Alexander> I'm very new to maxima, but have some experience with common lisp. > Alexander> So, I wonder, is it possible (and how hard it would be, approximately) > Alexander> to make maxima > Alexander> loadable directly via quicklisp, rather than downloading and compiling > Alexander> standalone executable? > > I believe there are several things preventing maxima from being in > quicklisp: > > 1. Maxima uses autoconf/automake to set up everything and uses make to > build everything.. This might be solvable. > 2. Maxima uses mk-defsys to compile and load lisp files. There is an > asdf file, but that's not currently used, but I believe it works. > 3. Documentation (online help) requires makeinfo and perl. > > For 2, the main issue is that gcl doesn't quite work with asdf and gcl > still needs to be suppported for windows. > > For 3, if you don't need the docs, then it's not a problem. There is > some work to build the documentation using lisp. This mostly works, > but has probably bit-rotted some. > > Alexander> Also, once made loadable via quicklisp, how hard is it to make it > Alexander> useable through SLIME? > Alexander> (with maxima syntax available, perhaps, via some read macro?) > > This already works. Rupert gave the following. Place the following in > ~/.maxima/startswank.lisp: > > (require :swank) > (swank:create-server :port 56789 :dont-close t) > > Then start Maxima and run load("startswank"). To connect, do M-x > slime-connect using the port specified above. > > You can continue to enter maxima commands in the terminal, but you can > also use slime and a lisp repl to interact with the running maxima. > > Ray > > > > > ------------------------------------------------------------------------------ > Learn Graph Databases - Download FREE O'Reilly Book > "Graph Databases" is the definitive new guide to graph databases and their > applications. Written by three acclaimed leaders in the field, > this first edition is now available. Download your free book today! > http://p.sf.net/sfu/13534_NeoTech > _______________________________________________ > Maxima-discuss mailing list > Max...@li... > https://lists.sourceforge.net/lists/listinfo/maxima-discuss |
From: Rupert S. <rsw...@gm...> - 2014-03-16 17:15:25
Attachments:
signature.asc
|
> Alexander> Also, once made loadable via quicklisp, how hard is it > Alexander> to make it useable through SLIME? (with maxima syntax > Alexander> available, perhaps, via some read macro?) > > This already works. Rupert gave the following. Place the following in > ~/.maxima/startswank.lisp: > > (require :swank) > (swank:create-server :port 56789 :dont-close t) > > Then start Maxima and run load("startswank"). To connect, do M-x > slime-connect using the port specified above. Incidentally, another way to do it is to get slime to load up the compiled Maxima core file. If you hunt through the mailing list archives, you'll find a message from me with the incantations to do so[*]. After a while, I decided this was less useful than running swank and slime-connect, because you don't get the comint-mode copy of Maxima running as well. Basically I'm posting this so you don't waste a couple of hours figuring that out for yourself :-) Rupert [*] Sorry not to be more helpful, but it looks like GMane's search is down at the moment, so I can't find it! |