ANN: ABLE 0.19 + screencast

Discussion of Common Lisp
Post Reply
phil
Posts: 27
Joined: Wed Aug 13, 2008 1:23 pm
Contact:

ANN: ABLE 0.19 + screencast

Post by phil » Sat Apr 04, 2009 3:34 pm

ABLE is a Common Lisp editor bundled with a compiler and a selection of open source libraries. It can be downloaded from http://phil.nullable.eu/ for Mac, Linux and Windows.

Version 0.19 fixes a number of bugs and adds a few new libraries. I've also made a short screencast of ABLE in use.

Jasper
Posts: 209
Joined: Fri Oct 10, 2008 8:22 am
Location: Eindhoven, The Netherlands
Contact:

Re: ANN: ABLE 0.19 + screencast

Post by Jasper » Sun Apr 05, 2009 6:09 am

Cool, looks exactly like something lisp can use. I will try it later. People don't want to chase libraries, they just want to program with them. Same with tools. And giving things like screencast can also help a lot for making things easier to learn.

Adding a lot of libraries/tools might be seen as pedantic and stiffling competition. However even if it was that, i think it is better to have more lisp users, even if they don't use the competition. Besides, you can still add libraries that are not in there.

Maybe you should add autodocumentation, like tinaa i couldn't get tinaa to work though :/. Ended up using DOCUMENTATION-TEMPLATE, which basically does the job, but is not flexible enough, if you ask me.

I was also thinking of making a graph visualization of how functions depend on eachother. (preferably with indication of packages) I haven't gotten graphviz downloaded yet, which might well be a useful library for the purpose. On other hand haven't really looked, might be that it doesn't have what it takes for the purpose. (It might be that it is usefull to manually make the graph prettier)

I have read this reddit submission earlier, and (some of)that sort of syntax highlighting would seem superior to what is used currently. I tried michelws highlighting but you can't edit while you are using it. I might try making this, using the reddit submissions link as a hint, but it seems like something that isn't very easy.

I am kind of used to emacs with slime though, so i will likely try to do it with elisp. I usually split the screen vertically in two for two files(and the length of a line is smaller equal then the width at that point), and use C-M-x to execute lines. (if i'd start a project like yours i'd probably try build on emacs, but do as you seem fit. :) )

Why not add (portion of) the documentation string with the hints? Hmm, i really have to look up if i can configure emacs to do that.

Jasper
Posts: 209
Joined: Fri Oct 10, 2008 8:22 am
Location: Eindhoven, The Netherlands
Contact:

Re: ANN: ABLE 0.19 + screencast

Post by Jasper » Tue Jun 02, 2009 3:24 pm

Am on another computer, but forgot to put Able on my memstick, weird that your download seems to have disappeared. Also the direct link, (which i got here. Is it an accident?

phil
Posts: 27
Joined: Wed Aug 13, 2008 1:23 pm
Contact:

Re: ANN: ABLE 0.19 + screencast

Post by phil » Tue Jun 02, 2009 10:43 pm

Jasper wrote:Am on another computer, but forgot to put Able on my memstick, weird that your download seems to have disappeared.
The site is still up and the download is working although it's rolled to 0.20 now.
Jasper wrote:Also the direct link, (which i got here. Is it an accident?
I didn't know about the link from cl-user as it wasn't created by me but I can see it's more than 2 years (and 18 versions) out of date! I'll have to see if it can be updated by someone.

Unfortunately I've dropped the binary versions with the libraries now as while it did increase interest, it also vastly increased the number of complaints I received. People were angry that I didn't supply their preferred compiler or that the version I supplied wasn't the one that has just been released. Some people were upset because the supplied compiler wasn't compatible with some system library or other on their Linux box. Others complained about the supplied libraries themselves. I can do without all the stress so I just went back to supplying the code!

Jasper
Posts: 209
Joined: Fri Oct 10, 2008 8:22 am
Location: Eindhoven, The Netherlands
Contact:

Re: ANN: ABLE 0.19 + screencast

Post by Jasper » Wed Jun 03, 2009 12:17 pm

Are they really that whiny? They were really angry/upset?(Not just notifying you?) I guess, having it not work out of the box can be a bit of a pain, but they should just take it as it comes..

Btw, I have looked at how to make a debugger(in sbcl docs), but no cigar so far. Closest idea doesn't sound good; 'gray streams' while overriding these, might work, but it doesn't seem to override, though;

Code: Select all

(with-open-file (*error-output* "stdout" :direction :output :if-exists :append)
  (error "Should end up in file"))
Anyway streams doesn't seem like a good idea to me anyway, getting functions to inspect the data one looks at after an error would be handier, maybe i should look at how swank does it.. (Or maybe even use swank, maybe i should facepalm..) Edit: looks like swank overrides a bunch of those variables like *error-output*)

phil
Posts: 27
Joined: Wed Aug 13, 2008 1:23 pm
Contact:

Re: ANN: ABLE 0.19 + screencast

Post by phil » Wed Jun 03, 2009 2:43 pm

Jasper wrote:I have looked at how to make a debugger(in sbcl docs), but no cigar so far. Closest idea doesn't sound good; 'gray streams' while overriding these, might work, but it doesn't seem to override, though;

Code: Select all

(with-open-file (*error-output* "stdout" :direction :output :if-exists :append)
  (error "Should end up in file"))
Anyway streams doesn't seem like a good idea to me anyway, getting functions to inspect the data one looks at after an error would be handier, maybe i should look at how swank does it.. (Or maybe even use swank, maybe i should facepalm..) Edit: looks like swank overrides a bunch of those variables like *error-output*)
A while back I did try wrapping the evaluator and respondinging to conditions but there were a couple of problems at the time:
  • Some restarts are there to terminate the Lisp process which is bad when you're running the editor in that same process. But maybe that's the right thing to do if someone really selects it. It just may be a bit surprising!
  • The other was that many restarts require further input, such as unbound symbols raising "Input a new value for X". At the time I had no way of accessing these values as they flew by on another stream which wasn't bound to anything useful. With the latest version, there's more control over the stream bindings so it may be possible to trigger a call to READ on the Gray stream bound to the listener.

Unne
Posts: 32
Joined: Sat Jun 28, 2008 6:10 pm
Location: Oregon
Contact:

Re: ANN: ABLE 0.19 + screencast

Post by Unne » Wed Jun 03, 2009 3:25 pm

Very nice screencast. I think this project is a great idea. Some suggestions...

1. The download link on your site is hard to find, the anchor being only a couple of numbers. First I looked at the top for a download link and didn't see one; then I searched the page for "Download" and found nothing; then I was reduced to reading the page top-to-bottom to find it. A rule of thumb I like to keep in mind is that any time a human being is reduced to doing a linear search through a bunch of text, there's something wrong with your interface.

2. Is your target audience people who aren't already familiar with Common Lisp? If not, that's fine. If so, I think your install procedure needs to be much easier. Before someone can start using ABLE they have to

* Figure out which CL implementation to download
* Figure out what ASDF is and how it works (non-trivial!)
* Figure out where to put ABLE so ASDF can find it
* Install LTK, CL-FAD and the other deps (via ASDF or otherwise)
* Manually install Tcl/Tk, if in Windows

By this time, I could almost have SLIME running. Especially on Windows where you don't have a package manager to install your Lisp and Tcl/Tk and everything for you, this is a prohibitive amount of effort just to try an editor. Compare this to how easy it is to install DrScheme for example: you download an installer, run it, and then everything works. I think binaries are definitely the way to go if possible. Whiny people should be ignored.

If you don't want to release binaries, could you bundle the Lisp dependencies with ABLE so I don't have to go around fetching them myself and so I know I have versions that work? Or could you pick either CLISP or SBCL as "recommended" and give a very detailed written explanation of how to install and run ABLE using them, from scratch, start to finish, for the sake of the clueless Lisp-curious public?

A way to brainlessly download something and click an icon and start immediately typing Common Lisp code into a nice GUI would be a huge benefit to the community.

phil
Posts: 27
Joined: Wed Aug 13, 2008 1:23 pm
Contact:

Re: ANN: ABLE 0.19 + screencast

Post by phil » Thu Jun 04, 2009 4:42 am

Unne wrote:Very nice screencast. I think this project is a great idea. Some suggestions...
Thanks for the suggestions, I appreciate you taking the time. I've taken your advice and reinstated the Mac, Linux and Windows downloads. There are now big obvious download buttons too!

Unne
Posts: 32
Joined: Sat Jun 28, 2008 6:10 pm
Location: Oregon
Contact:

Re: ANN: ABLE 0.19 + screencast

Post by Unne » Thu Jun 04, 2009 10:44 am

phil wrote:
Unne wrote:Very nice screencast. I think this project is a great idea. Some suggestions...
Thanks for the suggestions, I appreciate you taking the time. I've taken your advice and reinstated the Mac, Linux and Windows downloads. There are now big obvious download buttons too!
Awesome! The download worked great. Thanks for your work on this. I'll spread the word about ABLE.

Jasper
Posts: 209
Joined: Fri Oct 10, 2008 8:22 am
Location: Eindhoven, The Netherlands
Contact:

Re: ANN: ABLE 0.19 + screencast

Post by Jasper » Thu Jun 04, 2009 5:47 pm

Tbh, i haven't really looked deeply into restarts/threads. Should be possible to get the editor in its own thread, at least if it itself is not the thing being debugged, right?

Have you looked at slimes swank.lisp? Since it does what we -basically- want to do. It uses a lot that i don't know so i haven't gotten too far in understanding it yet. A lot of macros i haven't used yet. I guess one could use SEND-TO-EMACS and READ-FROM-EMACS, but that might also be a little too hackish, and the input/output of those is basically the text you see in emacs, but 'listified'. (apply #'funcall (funcall (connection.read ...))) is weird btw..

I got my 'code-walker'(doesn't do that much, not sure correct name.) working without identifying variables as functions, and can draw graphs of connections between basic functions.. It doesn't work on code in the large though, it has to be coded around a lot of macros. I suspect it has to do all the ones which isn't a regular macro. (macro-function macro-symbol) is nil for those and that is probably implementation-dependent, too.. Should be putting my code out there somewhere, but not sure where, though.. Think i should have my own little website, i guess.

PS nice to see the handy downloads back.

Post Reply