guile-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: unknown location: definition in expression context in subform optnam


From: Bruce Korb
Subject: Re: unknown location: definition in expression context in subform optname-from of "_^"
Date: Thu, 26 Jan 2012 19:36:51 -0800
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:9.0) Gecko/20111220 Thunderbird/9.0

On 01/26/12 18:59, Noah Lavine wrote:
Hello,

        /* Read expressions from that port; ignore the values.  */
        for (;;) {
            SCM form = scm_read(port);
            if (SCM_EOF_OBJECT_P(form))
                break;
            ans = scm_primitive_eval_x(form);
        }

        return ans;
    }
}

Every evaluation comes from here and in this instance, "pzFile"
pointed to "/path/to/aginfo.tpl" and "line" was set to 163.
Therefore, the location should *NOT* have been unknown and
in fact, the displayed line number ought to have been 171.

Why that failed I would very much want to know so that I can
fix this ag_scm_c_eval_string_from_file_line() thingy.

I am not an expert, but this is my guess about what's happening: you
get the form from the file with scm_read. scm_read returns a regular
s-expression, not a syntax object. Then you pass this form to
scm_primitive_eval_x. scm_primitive_eval_x has a plain syntax-object
with no way to know where it came from, so it prints "unknown
location".

Nope.  My code is parsing a text file, keeping track of file and line.
The "pzExpr" argument is, indeed, an array of UTF-8/ASCII text
from a file and line number known and also passed in.

So, I am getting the "form" from that read on the string port
and my expectation is that Guile advances the line/column numbers
set in the calls above.  If this is not true, then I need explicit
instructions on *exactly* what I need to do in order for the
"unknown location" to be a known location.

But note that I didn't say that you could do this. I don't know of an
interface to this functionality (although I believe this example shows
that we need one).

It has been an issue I've been arguing for years and years and years,
ever since the trivial 1.6(4?) methodology (fiddling with obviously correct,
but very wrong to do, Guile internal data structures) became disabled.
Look in the email archives for ag_scm_c_eval_string_from_file_line.
http://lists.gnu.org/archive/html/guile-devel/2005-11/msg00052.html
I made the name very long so it would be easy to Google for.  :)

So I will repeat my request (and, please forgive the irritation,
because I have, after all, been asking for a really long time):

I need to be able to locate a guile scheme expression in my ASCII
text input and hand it off to Guile, telling it the file name and
line number and column number of where I found the string.  In this way,
when there is an evaluation error, something more sensible than
"unknown location" is displayed for the location information.

Thank you for reconsidering.

Regards, Bruce



reply via email to

[Prev in Thread] Current Thread [Next in Thread]