From: ···············@gmail.com
Subject: ANN: ABLE 0.1, A Basic Lisp Editor
Date: 
Message-ID: <1171820589.839509.128780@p10g2000cwp.googlegroups.com>
ABLE is A Basic Lisp Editor released as Free software and built on the
excellent LTk library.

You can download a very early 0.1 release from:

http://phil.nullable.eu/

...where you can also read the documentation and look at some
screenshots. While it won't convert anyone away from Slime, it does
have the following features:

- Multi-file editing (tabbed interface)
- REPL like interface with command history
- Highlight any code and run it (F4 for current form, shift select or
mouse select)
- Parenthesis matching
- Automatic indenting
- Some documentation (!)

I only made the switch to Lisp about 4 months ago so if you feel the
urge to flame me, at least be thankful I did something constructive
with my Sunday afternoons rather than moaning about parenthesis or the
lack of decent libraries! Having said that, I would appreciate
feedback.

Phil

From: Ken Tilton
Subject: Re: ANN: ABLE 0.1, A Basic Lisp Editor
Date: 
Message-ID: <5J0Ch.615$YI.459@newsfe12.lga>
···············@gmail.com wrote:
> ABLE is A Basic Lisp Editor released as Free software and built on the
> excellent LTk library.
> 
> You can download a very early 0.1 release from:
> 
> http://phil.nullable.eu/
> 
> ...where you can also read the documentation and look at some
> screenshots. While it won't convert anyone away from Slime, it does
> have the following features:
> 
> - Multi-file editing (tabbed interface)
> - REPL like interface with command history
> - Highlight any code and run it (F4 for current form, shift select or
> mouse select)
> - Parenthesis matching
> - Automatic indenting
> - Some documentation (!)
> 
> I only made the switch to Lisp about 4 months ago so if you feel the
> urge to flame me, at least be thankful I did something constructive
> with my Sunday afternoons rather than moaning about parenthesis or the
> lack of decent libraries! Having said that, I would appreciate
> feedback.

1. Cool.
2. Menus are pretty easy in Tk (or did I miss those?)
3. Keep going: Lisp has a lot of meta-info you can use to put up fun 
things like an Apropos dialog similar to the one that comes with ACL on 
win32 and I believe Linux. Or do a nice multi-file "find/replace" 
dialog. A GUI interface to ASDF might be fun. Mind you, only as /you/ 
encounter the need.
4. For the editing commands shared with Emacs, use the same keychords. 
Or at least have an option to use win32 keychords or emacs keychords.

hth,kt

-- 
Well, I've wrestled with reality for 35 years, Doctor, and
I'm happy to state I finally won out over it.
                                   -- Elwood P. Dowd

In this world, you must be oh so smart or oh so pleasant.
                                   -- Elwood's Mom
From: ···············@gmail.com
Subject: Re: ANN: ABLE 0.1, A Basic Lisp Editor
Date: 
Message-ID: <1171824638.377776.325530@v45g2000cwv.googlegroups.com>
On Feb 18, 6:15 pm, Ken Tilton <·········@gmail.com> wrote:
> ···············@gmail.com wrote:
> > ABLE is A Basic Lisp Editor released as Free software and built on the

> 2. Menus are pretty easy in Tk (or did I miss those?)

I couldn't decide whether to add a menu or not as I try to use the
keyboard but I can certainly add one as it's so easy.

> 3. Keep going: Lisp has a lot of meta-info you can use to put up fun
> things like an Apropos dialog similar to the one that comes with ACL on
> win32 and I believe Linux. Or do a nice multi-file "find/replace"
> dialog. A GUI interface to ASDF might be fun. Mind you, only as /you/
> encounter the need.

Nice ideas. My to-do list's getting quite long but I might add some of
these on there too.

> 4. For the editing commands shared with Emacs, use the same keychords.
> Or at least have an option to use win32 keychords or emacs keychords.

I've struggled a little with this one, specifically unbinding the
default Tk bindings. I can disable them all for a class of widget but
not replace them for an individual instance. I'll post a question on
the LTk list at some point as it's more appropriate on there.

> hth,kt

Very much so, thanks.

Phil
From: Ken Tilton
Subject: Re: ANN: ABLE 0.1, A Basic Lisp Editor
Date: 
Message-ID: <pv2Ch.239$Ms3.8@newsfe10.lga>
···············@gmail.com wrote:
> On Feb 18, 6:15 pm, Ken Tilton <·········@gmail.com> wrote:
> 
>>···············@gmail.com wrote:
>>
>>>ABLE is A Basic Lisp Editor released as Free software and built on the
> 
> 
>>2. Menus are pretty easy in Tk (or did I miss those?)
> 
> 
> I couldn't decide whether to add a menu or not as I try to use the
> keyboard but I can certainly add one as it's so easy.

To me menus are documentation, as to what is possible and even the 
keychord to use. (And that is why I suggested them, not for actual 
regular use.)

> 
> 
>>3. Keep going: Lisp has a lot of meta-info you can use to put up fun
>>things like an Apropos dialog similar to the one that comes with ACL on
>>win32 and I believe Linux. Or do a nice multi-file "find/replace"
>>dialog. A GUI interface to ASDF might be fun. Mind you, only as /you/
>>encounter the need.
> 
> 
> Nice ideas. My to-do list's getting quite long but I might add some of
> these on there too.
> 
> 
>>4. For the editing commands shared with Emacs, use the same keychords.
>>Or at least have an option to use win32 keychords or emacs keychords.
> 
> 
> I've struggled a little with this one, specifically unbinding the
> default Tk bindings. I can disable them all for a class of widget but
> not replace them for an individual instance. I'll post a question on
> the LTk list at some point as it's more appropriate on there.

Or even c.l.tcl. My recall is fuzzy, but I thought the class-wise spec 
of bindings was /in addition to/ the widget-wise. But it sounds like you 
looked at that more recently than I. :)

btw, I meant to say good call on the tabbed windows, that is so huge 
(ACL does it).

Also, as for the apology for running in the same Lisp, I am accustomed 
to that from MCL and ACL IDEs. I know the latter does fancy things I do 
not know much about like run in different threads or subprocesses or 
something -- when I cannot interrupt my app I can often change to the 
(usually hidden) ACL console and get a break acknowledged -- and 
meanwhile /because/ you are in the same Lisp you have a leg up on Slime 
in that your IDE can simply ask the runtime what is what in various 
ways. And if (I do not know) you are limiting yourself to CLisp, it has 
a killer MOP (I hear (from the author <g>)) so you could do /a lot/.

kzo

-- 
Well, I've wrestled with reality for 35 years, Doctor, and
I'm happy to state I finally won out over it.
                                   -- Elwood P. Dowd

In this world, you must be oh so smart or oh so pleasant.
                                   -- Elwood's Mom
From: Timofei Shatrov
Subject: Re: ANN: ABLE 0.1, A Basic Lisp Editor
Date: 
Message-ID: <45d89db5.34244741@news.readfreenews.net>
On 18 Feb 2007 09:43:09 -0800, ···············@gmail.com tried to confuse
everyone with this message:

>ABLE is A Basic Lisp Editor released as Free software and built on the
>excellent LTk library.
>
>You can download a very early 0.1 release from:
>
>http://phil.nullable.eu/
>

Does it even work? I see some strange code such as...

(defun add-tag ((txt text) name start end)
  (format-wish "~a tag add ~a ~a ~a" (widget-path txt) name start end))

I don't think any CL implementation can consume it :)

-- 
|Don't believe this - you're not worthless              ,gr---------.ru
|It's us against millions and we can't take them all... |  ue     il   |
|But we can take them on!                               |     @ma      |
|                       (A Wilhelm Scream - The Rip)    |______________|
From: ···············@gmail.com
Subject: Re: ANN: ABLE 0.1, A Basic Lisp Editor
Date: 
Message-ID: <1171825120.587774.128370@h3g2000cwc.googlegroups.com>
On Feb 18, 6:43 pm, ····@mail.ru (Timofei Shatrov) wrote:

> Does it even work? I see some strange code such as...
>
> (defun add-tag ((txt text) name start end)
>   (format-wish "~a tag add ~a ~a ~a" (widget-path txt) name start end))
>
> I don't think any CL implementation can consume it :)

I'm not sure if you're joking or not but in case not, that's the
instructions being sent to Tk via wish. It's all explained in the
docs.

Thanks for checking it out anyway. I can assure you it works: the
screenshots are genuine and I've been dogfooding for months now!

Phil
From: Ari Johnson
Subject: Re: ANN: ABLE 0.1, A Basic Lisp Editor
Date: 
Message-ID: <m2r6snfe72.fsf@hermes.theari.com>
···············@gmail.com writes:

> On Feb 18, 6:43 pm, ····@mail.ru (Timofei Shatrov) wrote:
>
>> Does it even work? I see some strange code such as...
>>
>> (defun add-tag ((txt text) name start end)
>>   (format-wish "~a tag add ~a ~a ~a" (widget-path txt) name start end))
>>
>> I don't think any CL implementation can consume it :)
>
> I'm not sure if you're joking or not but in case not, that's the
> instructions being sent to Tk via wish. It's all explained in the
> docs.
>
> Thanks for checking it out anyway. I can assure you it works: the
> screenshots are genuine and I've been dogfooding for months now!

I think he was referring to the (txt text) parameter to DEFUN.  At
least SBCL and OpenMCL barf on this not being a symbol, at least in
the absence of a shadowing or redefinition of DEFUN (having not read
your code or Ltk's, I don't know why this does work for you; I also
don't have a Tk-capable machine to test it on).

That said, nice work! :)
From: Timofei Shatrov
Subject: Re: ANN: ABLE 0.1, A Basic Lisp Editor
Date: 
Message-ID: <45d8aa94.37539739@news.readfreenews.net>
On 18 Feb 2007 10:58:40 -0800, ···············@gmail.com tried to confuse
everyone with this message:

>On Feb 18, 6:43 pm, ····@mail.ru (Timofei Shatrov) wrote:
>
>> Does it even work? I see some strange code such as...
>>
>> (defun add-tag ((txt text) name start end)
>>   (format-wish "~a tag add ~a ~a ~a" (widget-path txt) name start end))
>>
>> I don't think any CL implementation can consume it :)
>
>I'm not sure if you're joking or not but in case not, that's the
>instructions being sent to Tk via wish. It's all explained in the
>docs.
>
>Thanks for checking it out anyway. I can assure you it works: the
>screenshots are genuine and I've been dogfooding for months now!
>

I mean (txt text) in the function's parameter list. There are lot of them
throughout your code. This is not valid CL, but maybe your implementation
ignores it... After I fixed all of these it ran okay: pretty cool editor, I
think, though it desperately needs syntax highlighting.

-- 
|Don't believe this - you're not worthless              ,gr---------.ru
|It's us against millions and we can't take them all... |  ue     il   |
|But we can take them on!                               |     @ma      |
|                       (A Wilhelm Scream - The Rip)    |______________|
From: ···············@gmail.com
Subject: Re: ANN: ABLE 0.1, A Basic Lisp Editor
Date: 
Message-ID: <1171828606.241369.107340@p10g2000cwp.googlegroups.com>
On Feb 18, 7:41 pm, ····@mail.ru (Timofei Shatrov) wrote:

> I mean (txt text) in the function's parameter list. There are lot of them
> throughout your code. This is not valid CL, but maybe your implementation
> ignores it... After I fixed all of these it ran okay: pretty cool

Ahhh, OK. I think I swapped back and forth between methods and
functions so that's probably what happened here. CLisp seems to ignore
them (?) but I'll change them in a future point release.

Many thanks for your comments!

Phil
From: Pascal Bourguignon
Subject: Re: ANN: ABLE 0.1, A Basic Lisp Editor
Date: 
Message-ID: <873b539q9u.fsf@thalassa.informatimago.com>
···············@gmail.com writes:

> On Feb 18, 7:41 pm, ····@mail.ru (Timofei Shatrov) wrote:
>
>> I mean (txt text) in the function's parameter list. There are lot of them
>> throughout your code. This is not valid CL, but maybe your implementation
>> ignores it... After I fixed all of these it ran okay: pretty cool
>
> Ahhh, OK. I think I swapped back and forth between methods and
> functions so that's probably what happened here. CLisp seems to ignore
> them (?) but I'll change them in a future point release.

clisp 2.41 barfs as it should:

C/USER[131]> (defun f ((x y) z) (list x y z))

*** - FUNCTION: (X Y) is not a symbol
The following restarts are available:
USE-VALUE      :R1      You may input a value to be used instead.
ABORT          :R2      ABORT
C/Break 1 USER[132]> :q
C/USER[133]> 


What version do you use?



-- 
__Pascal Bourguignon__                     http://www.informatimago.com/
Small brave carnivores
Kill pine cones and mosquitoes
Fear vacuum cleaner
From: ···············@gmail.com
Subject: Re: ANN: ABLE 0.1, A Basic Lisp Editor
Date: 
Message-ID: <1171831671.744256.300550@s48g2000cws.googlegroups.com>
On Feb 18, 8:14 pm, Pascal Bourguignon <····@informatimago.com> wrote:

> clisp 2.41 barfs as it should:
>
> C/USER[131]> (defun f ((x y) z) (list x y z))
>
> *** - FUNCTION: (X Y) is not a symbol
> The following restarts are available:
> USE-VALUE      :R1      You may input a value to be used instead.
> ABORT          :R2      ABORT
> C/Break 1 USER[132]> :q
> C/USER[133]>
>
> What version do you use?

2.39
From: Sam Steingold
Subject: Re: ANN: ABLE 0.1, A Basic Lisp Editor
Date: 
Message-ID: <m3irdzdpqh.fsf@loiso.podval.org>
> * Timofei Shatrov <····@znvy.eh> [2007-02-18 18:43:45 +0000]:
>
> On 18 Feb 2007 09:43:09 -0800, ···············@gmail.com tried to confuse
> everyone with this message:
>
>>ABLE is A Basic Lisp Editor released as Free software and built on the
>>excellent LTk library.
>>
>>You can download a very early 0.1 release from:
>>
>>http://phil.nullable.eu/
>>
>
> Does it even work? I see some strange code such as...
>
> (defun add-tag ((txt text) name start end)
>   (format-wish "~a tag add ~a ~a ~a" (widget-path txt) name start end))
>
> I don't think any CL implementation can consume it :)

CLISP will, if CUSTOM:*DEFUN-ACCEPT-SPECIALIZED-LAMBDA-LIST* is non-NIL
http://clisp.cons.org/impnotes/flow-dict.html#defun-accept-spelalist

Variable CUSTOM:*DEFUN-ACCEPT-SPECIALIZED-LAMBDA-LIST*. When
CUSTOM:*DEFUN-ACCEPT-SPECIALIZED-LAMBDA-LIST* is non-NIL, DEFUN accepts
specialized lambda lists, converting type-parameter associations to type
declarations:

(defun f ((x list) (y integer)) ...)

is equivalent to

(defun f (x y) (declare (type list x) (type integer y)) ...)

This extension is disabled by -ansi and by setting CUSTOM:*ANSI* to T,
but can be re-enabled by setting
CUSTOM:*DEFUN-ACCEPT-SPECIALIZED-LAMBDA-LIST* explicitly.

-- 
Sam Steingold (http://sds.podval.org/) on Fedora Core release 6 (Zod)
http://israelunderattack.slide.com http://mideasttruth.com http://dhimmi.com
http://ffii.org http://thereligionofpeace.com http://truepeace.org
(let((a'(list'let(list(list'a(list'quote a)))a)))`(let((a(quote ,a))),a))
From: ···············@gmail.com
Subject: Re: ANN: ABLE 0.1, A Basic Lisp Editor
Date: 
Message-ID: <1171841517.628676.161520@q2g2000cwa.googlegroups.com>
On Feb 18, 11:12 pm, Sam Steingold <····@gnu.org> wrote:
> > * Timofei Shatrov <····@znvy.eh> [2007-02-18 18:43:45 +0000]:

> > I don't think any CL implementation can consume it :)

> CLISP will, if CUSTOM:*DEFUN-ACCEPT-SPECIALIZED-LAMBDA-LIST* is non-NILhttp://clisp.cons.org/impnotes/flow-dict.html#defun-accept-spelalist

Thanks. I've uploaded ABLE 0.1.1 to fix this problem (I think I caught
them all) and compiled a shiny new clisp 2.41 on my machine to work
with from now on.

Phil
From: ···············@gmail.com
Subject: Re: ANN: ABLE 0.1, A Basic Lisp Editor
Date: 
Message-ID: <1171907728.196003.315330@v33g2000cwv.googlegroups.com>
On 18 Feb, 17:43, ···············@gmail.com wrote:
> ABLE is A Basic Lisp Editor released as Free software and built on the
> excellent LTk library.

Someone asked me if ABLE could be used on a Windows PC. I'd never
tried but I thought I'd give it a go on a PC in the office:

- download Tcl/Tk from ActiveState
- write a 2 line batch file (cd "C:\path\to\able" \n "C:\path\to
\clisp.exe" -i "start.lisp")
- double click the batch file...works first time

Back in my C++ days I'd be trying to work out which combination of
compiler switches generated the least errors - hurrah for Lisp (and
CLisp, Tcl/Tk and LTk).

Phil