unofficial mirror of guile-devel@gnu.org 
 help / color / mirror / Atom feed
From: Bruce Korb <bkorb@veritas.com>
Cc: guile-devel@gnu.org
Subject: Re: PLEASE: debugging embedded guile code
Date: Sun, 27 Apr 2003 14:57:58 -0700	[thread overview]
Message-ID: <3EAC5266.23DEEB7F@veritas.com> (raw)
In-Reply-To: m3bryrhdhq.fsf@laruns.ossau.uklinux.net

Neil Jerram wrote:

> So, given this description, can you be more precise about which (if
> any) parts of it are causing you trouble?

I guess I'm really lazy.  I'm interested in playing with my project
and I'm completely _un_interested in figuring out the inner workings
of Guile error handling.  But I have a problem.  Sometimes my clients
provide my project with a scheme script that is many lines long.
I merrily hand the whole string off to gh_eval_str() to deal with.
Somewhere in that string, Guile becomes confused and says, "this is
confusing" and calls exit(3C).  My client emails me and says, "Your
program said it was confused but won't tell me where or why."  Well,
I do print out where the Scheme script starts, but not where in the
script the confusion was.  It's adequate for me because I generally
keep my Scheme scripts to under a half dozen lines.  It's a problem.

So, what I would really like:

Explicit, unambiguous directions on exactly how to get the Guile library
to print out the same error messages it does when running as part
of the "guile" independent program.  That message has sufficient
contextual information to help the user debug the problem.  e.g.:

> guile> (define foo bar)
> standard input:1:1: In expression (define foo bar):
> standard input:1:1: Unbound variable: bar
> ABORT: (unbound-variable)

as opposed to:

> $ autogen --no-def -Txx.tpl --base=x
> ERROR: Unbound variable: bar
> AutoGen ABENDED in template xx.tpl line 2

the library message here consists of ``ERROR: Unbound variable: bar''
and leaves out ``In expression (define foo bar):'' and also the line
and column numbers.  (This is a trivial case and obviously easy to
diagnose.)

Example solutions:

*  gh_eval_file_line_str( pz_text, state->file_name, state->line_no )

*  a detailed example of gh_eval_str_with_catch that shows how to print the
   broken expression and how to describe where in the input string that
   expression was encountered.  Perhaps this can be accomplished by
   adding a file name and incrementing the line number passed along in
   the error description list, then forwarding to the normal handler?

Frankly, I'd prefer the first, but I'd need to understand the latter
anyway just to be compatible with Guile libraries without this new gh_*
function.  :-)  Heck, with a proper implementation of gh_eval_file_line_str
I could just tack it into my program and configure it if not present.  :)


_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://mail.gnu.org/mailman/listinfo/guile-devel


  reply	other threads:[~2003-04-27 21:57 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <Pine.GSO.3.96.1030209200016.26546A-100000@anh>
2003-02-25 14:19 ` PLEASE: debugging embedded guile code Joris van der Hoeven
2003-02-25 14:36   ` Dale P. Smith
2003-04-26 14:51     ` Neil Jerram
2003-04-26 16:40       ` Bruce Korb
2003-04-26 19:12         ` Neil Jerram
2003-04-26 20:13           ` Bruce Korb
2003-04-27 20:49             ` Neil Jerram
2003-04-27 21:57               ` Bruce Korb [this message]
2003-04-28 15:54                 ` Paul Jarc
2003-04-28 16:07                   ` Bruce Korb
2003-04-28 19:21                 ` Neil Jerram
2003-04-28 20:06                   ` Bruce Korb
2003-04-28 20:58                     ` Neil Jerram
2003-05-16 17:19                       ` Bruce Korb
2003-05-16 19:23                         ` Neil Jerram
2003-05-16 20:27                           ` Bruce Korb
2003-05-16 21:21                             ` Rob Browning
2003-05-16 21:56                               ` Bruce Korb
2003-05-17  0:31                                 ` Bruce Korb
2003-05-17  2:33                                   ` Bruce Korb
2003-05-19 15:00                                     ` Paul Jarc
2003-04-28 13:52       ` Mikael Djurfeldt
2003-04-28 19:26         ` Neil Jerram
2003-04-30  0:13           ` SRFI 34 Neil Jerram
2003-05-17  0:45             ` Marius Vollmer
2003-05-17  9:39               ` Neil Jerram
2003-05-17 20:36                 ` Marius Vollmer
2004-03-07 18:34                   ` Neil Jerram
2003-04-26 14:45   ` PLEASE: debugging embedded guile code Neil Jerram
     [not found] <Pine.GSO.4.33.0304261706460.1619-100000@sunanh>
2003-04-26 15:34 ` Neil Jerram
2003-04-26 15:40   ` Joris van der Hoeven
2003-04-26 19:30     ` Neil Jerram
2003-04-27  8:40       ` Joris van der Hoeven

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/guile/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=3EAC5266.23DEEB7F@veritas.com \
    --to=bkorb@veritas.com \
    --cc=guile-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).