Re: Guile and Curses

2007-10-25 Thread Neil Jerram
Mike Gran <[EMAIL PROTECTED]> writes:

> [3] http://gano.sourceforge.net/

Hi Mike,

Gano is very interesting.  I agree with you that it would make a great
"toy" program.

Are you aware of the Emacs Lisp translation code in 1.8.x, in
lang/elisp/* ?  I haven't touched it for a while, but in principle
(and when completed) it would allow an editor such as Gano to reuse
Emacs Lisp libraries - as long as the editor and Guile jointly provide
a sufficient set of Emacs-like primitives.

(This doesn't mean that Gano would have to be an exact clone of base
Emacs, just that it has to provide equivalent function.  We can write
code for any primitive mapping that is needed.)

One detail I couldn't understand: how does the use of GtkTextBuffer go
with being a console application?

Regards,
Neil



___
Guile-user mailing list
Guile-user@gnu.org
http://lists.gnu.org/mailman/listinfo/guile-user


Re: Guile and Curses

2007-10-25 Thread Mike Gran

--- Neil Jerram <[EMAIL PROTECTED]> wrote:

> Are you aware of the Emacs Lisp translation code in 1.8.x, in
> lang/elisp/* ?  I haven't touched it for a while, but in principle
> (and when completed) it would allow an editor such as Gano to reuse
> Emacs Lisp libraries - as long as the editor and Guile jointly
> provide
> a sufficient set of Emacs-like primitives.
> 

I haven't looked at it before.  I'll check it out.

> One detail I couldn't understand: how does the use of GtkTextBuffer
> go
> with being a console application?
> 

GtkTextBuffer just stores the text of a buffer (as a B-Tree) and also
holds a list of "tags", which are generic attributes assigned to
characters, lines, or paragraphs.  It is the "model" of the
model-view-controller. That's the part I'd port over.  GtkTextView is
the "view", which I'd end up replacing.

Thanks,

Mike Gran


___
Guile-user mailing list
Guile-user@gnu.org
http://lists.gnu.org/mailman/listinfo/guile-user


(system cmd) not working after slib

2007-10-25 Thread Scott Walck
Gentle guile users,

I wonder if one of you could help me.  I am thrilled to find that use
of (ice-9 slib) has been improved in guile 1.8.3.  I am confused about
its behavior, though.  The (system) command works fine before I load
slib.  After I load slib, guile no longer understands what "system"
means.

(system "ls"); works
(use-modules (ice-9 slib))   ; works
(system "ls"); no longer works

I enclose a short transcript below.  Any suggestions would be
appreciated.

Thanks,

Scott Walck



[EMAIL PROTECTED]:~/computer/notes]$ guile --version
Guile 1.8.3
Copyright (c) 1995, 1996, 1997, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
2007 Free Software Foundation
Guile may be distributed under the terms of the GNU General Public Licence;
certain other uses are permitted as well.  For details, see the file
`COPYING', which is included in the Guile distribution.
There is no warranty, to the extent permitted by law.
[EMAIL PROTECTED]:~/computer/notes]$ guile
guile> (system "ls")
DataTransfer.txt   guile.txt  networking   PrinterDrivers   success
DataTransfer.txt~  installation.txt   networking~  PrinterDrivers~
Zip250.txt
GarberPrinting installation.txt~  ppp  printing
Zip250.txt~
GarberPrinting~lvcweb.txt ppp~ printing~
0
guile> (use-modules (ice-9 slib))
WARNING: (guile-user): imported module (ice-9 slib) overrides core binding
`gentemp'
guile> *slib-version*
"3a4"
guile> (system "ls")

Backtrace:
In current input:
   4: 0* (system "ls")

:4:1: In expression (system "ls"):
:4:1: Unbound variable: system
ABORT: (unbound-variable)
guile>
___
Guile-user mailing list
Guile-user@gnu.org
http://lists.gnu.org/mailman/listinfo/guile-user


Re: Why there's no debugger?

2007-10-25 Thread Josef Wolf
On Tue, Oct 23, 2007 at 01:41:57PM +0100, Neil Jerram wrote:
> Josef Wolf <[EMAIL PROTECTED]> writes:

> > I followed the suggestion from the info pages and put following into my
> > ~/.guile file:
> 
> Which info pages were those?  The info for 1.6.7 does not mention
> (ice-9 debugger breakpoints ...), because those modules are not
> included in 1.6.7.
> 
> To do debugging with 1.6.7, you need to download and install the
> latest guile-debugging tarball/.deb from
> http://download.gna.org/guile-debugging/.  Please see the README file
> there for an explanation of how guile-debugging relates to Guile CVS,
> and for where to look for guile-debugging documentation.
> 
> (To confuse matters, the manual of recent Guile 1.8.x releases
> incorrectly documents these features, which are not actually present
> in Guile 1.8.x.  The manual should be fixed for the next 1.8.x release.)

Thanks for the answer, Neil.  You are right, I read it on a guile 1.8
installation.  At the time I wrote the mail, I had 1.6.7 and I failed
to remember that I read it on the other box.  Sorry for the confusion!

I guess the debugging will be included in some future guile release?



___
Guile-user mailing list
Guile-user@gnu.org
http://lists.gnu.org/mailman/listinfo/guile-user


Anyone relying on "break-at" breakpoints?

2007-10-25 Thread Neil Jerram
This email pertains to the debugging and breakpoint infrastructure in
Guile CVS, which has so far only been released as part of my
guile-debugging package.  If you've never looked at or used this
infrastructure, you can safely skip the rest of this message.

I've been wrestling for a while with specifying and documenting
exactly how "break-at" breakpoints should behave, and have concluded
that the problem arises from how these breakpoints are defined.
Therefore I'm looking at removing them (in their current form), and
hence this email to check if anyone would be inconvenienced by that.

A break-at breakpoint is defined by a file name, a line number and a
column number, and it means that Guile should break when executing the
code from the named file whose opening parenthesis is at the specified
line and column.  It should work both if the relevant code was loaded
before the breakpoint was defined, and if the code is loaded after the
breakpoint is defined.  In other words, it's the Guile equivalent of
GDB's "break :" for C.

The trouble is that Guile (unlike C) is an interactive environment.
Someone might write a first version of a function:

(define (my-func . args)
  (let ((a (car args))
...)
...))

then evaluate and try it, then decide that it works better with an
internal definition:

(define (my-func . args)
  (define (helper arg1)
...)
  (let ((a (car args))
...)
...))

then evaluate the new version, and so on.  Suppose that when trying
out the first version, the coder defined a break-at breakpoint at the
position of the "(let".  Then after the redefinition (and assuming the
current specification and implementation of break-at breakpoints), the
breakpoint would be in the wrong place: it would apply to the
"(define", and would not apply to the "(let" in its new position.

This is a simple example, but there are many possible variations and
complications of it (for example, lambda-constructing code, which has
the consequence that we cannot say that there is only one "correct"
version of the source code at a given time), which make finding a nice
general solution very difficult.

By way of contrast, the other kind of breakpoint ("break-in") does not
suffer from this problem, because it is defined in a way that relates
more persistently to the code (even as the code changes).  A break-in
breakpoint is defined as

  break-in  []

and means break at the start of that procedure.

It could be argued that break-at breakpoints are fine for the "static"
case - i.e. for debugging a program and not changing it at the same
time - and hence we should keep them for this.  But I'd much rather
develop a better conceptual solution that works equally well for both
the static and interactive cases.

Therefore, I'm planning to simply drop "break-at" breakpoints (and the
associated  trap), and then to reconsider the scenarios
for which I thought "break-at" was the solution, to work out better
solutions instead.

If there are scenarios that you (anyone!) are actually using and
relying on, please let me know, so that I can make sure that I have an
alternative solution ready for you.  If you have any questions,
suggestions or concerns about all this, please let me know those too.

Thanks for reading; I hope it all made some kind of sense. :-)

Regards,
Neil



___
Guile-user mailing list
Guile-user@gnu.org
http://lists.gnu.org/mailman/listinfo/guile-user


Re: Why there's no debugger?

2007-10-25 Thread Neil Jerram
Josef Wolf <[EMAIL PROTECTED]> writes:

> Thanks for the answer, Neil.  You are right, I read it on a guile 1.8
> installation.  At the time I wrote the mail, I had 1.6.7 and I failed
> to remember that I read it on the other box.  Sorry for the confusion!

No problem.  A lot of the confusion stems from my slowness working on
this, I'm afraid.

> I guess the debugging will be included in some future guile release?

Well that's more likely than being in a past release. :-)

More seriously: I strongly want to get this area (debugging and Emacs
interface) to a state where it is complete (for the immediate use
cases that occur to me), coherent and fully documented; and I hope to
achieve that in the next few months.  Then we can look at what makes
sense in terms of releases.

Regards,
Neil



___
Guile-user mailing list
Guile-user@gnu.org
http://lists.gnu.org/mailman/listinfo/guile-user