>>>>> Thomas Lin Pedersen <thomas...@gmail.com> >>>>> on Mon, 22 Jan 2018 14:32:27 +0100 writes:
> Hi I’ve just spend a bit of time debugging an error > arising in `loadNamespace`. The bottom line is that the > `vI` object is assigned within an `if` block but expected > to exist for all of the remaining code. In some cases > where the package library has been corrupted or when it > resides on a network drive with bad connection this can > lead to error messages complaining about `vI` object not > existing. Debugging through the error is difficult, both > because `loadNamespace` is called recursively through the > dependency graph and the error can arise at any depth. And > because the recursive calls are wrapped in `try` so the > code breaks some distance from the point where the error > occurred. > I will suggest mitigating this by adding an `else` clause > to the `if` block where `vI` gets assigned that warns > about potential corruption of the library and names the > package that caused the error. Not sure this is desirable... in general even though it may well be desirable in your use case... You will be aware that this an important function that maybe called many times, e.g., notably even at R startup time and so must be very robust [hence the many try* settings] and must use messages/warnings that are suppressable etc etc. On reading the source, I tend to agree with you that it looks odd there is no else clause to that if(), but then there may be subtle good reasons for that we don't see now. > I can open a bug report if you wish, but I would require a > bugzilla account for that. Otherwise you’re also welcome > to take it from here. I'll do that for you in any case. Martin Maechler ETH Zurich > With best wishes Thomas Lin Pedersen ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel