[Ecls-list] “Cannot find the external symbol...” convenience restart
Juan Jose Garcia-Ripoll
juanjose.garciaripoll at googlemail.com
Sat Sep 13 19:59:08 UTC 2008
On Sat, Sep 13, 2008 at 9:27 PM, Leslie P. Polzer
<sky at viridian-project.de>wrote:
> How about providing a restart for accessing the symbol
> nevertheless, if it's an internal symbol?
There is a problem with this which is not related to the internal / external
problem and which is that if the debugger jumps in when the reader is
working, then all the input is trashed. Suppose we add the code below in
ecl_read_object_with_delimiter() Now you type
> (list 'c:inexistent-symbol 2)
When the reader gets to the token c:var the debugger jumps in an it has to
first clear the input buffer, thus eliminating the remaining objects 2 and
#\). What do we do then? I understand this is an even more inconvenient way
to handle the external symbol problem.
Juanjo
--- potential fix ----
if (external_symbol) {
x = ecl_find_symbol(token, p, &intern_flag);
if (intern_flag == EXTERNAL)
goto OUTPUT;
CEerror(@'intern',
"Cannot find the external symbol ~A in ~S.",
2, si_copy_to_simple_base_string(token), p);
}
if (p == Cnil) {
p = ecl_current_package();
}
/* INV: cl_make_symbol() copies the string */
x = ecl_intern(token, p, &intern_flag);
OUTPUT:
si_put_buffer_string(token);
return x;
--
Instituto de Física Fundamental
CSIC, Serrano, 113, Madrid 28040 (Spain)
http://juanjose.garciaripoll.googlepages.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/ecl-devel/attachments/20080913/ae7eed51/attachment.html>
More information about the ecl-devel
mailing list