When we load our top bundle using atomic loadin VisualWorks 7.7, a
virtual machine dialog is raised with “Fatal error: No method found for doesNotUnderstand:”. The image then quits. If we load with atomic loading turned off, everything works fine. We have found the method causing the error. It is an extension method to Point: projectPragmas <addAttribute: #x type: #Float <addAttribute: #y type: #Float> If we remove this method, load works with atomic loading. (We also have a Point class method which defines the pragma.) If we try loading only the package containing the extension, or the package’s immediate sub-bundle, everything works OK. We only run into the problem when loading our entire code base. Does anyone know how our extension method defining a pragma could cause these problems? If not, where in the Store code could I look for clues on this? Kind regards Runar _______________________________________________ vwnc mailing list [hidden email] http://lists.cs.uiuc.edu/mailman/listinfo/vwnc |
This is a complete guess. But you've got a method here which
looks like it's adding pragmas and that those aren't in the base system,
so you've probably got multiple levels of pragmas defined. When methods
containing pragmas are added to a class, you get an
instanceMethodsChanged/classMethodsChanged broadcast. The atomic loader
attempts to defer all of that while installing code, but it's possible
that something goes wrong with that, and the message is broadcast at a
point where it causes the error you're seeing. In fact, now that I think
about it, it might even happen during compilation, where I don't know
that those messages are suppressed. So you might be getting the
instanceMethodsChanged broadcast in shadow, which might be less equipped
to deal with it. That might explain why you'd get the error you're
seeing. If it attempts to send an unknown message to an extension class
in shadow, that class is probably not complete, and it might end up not
finding a doesNotUnderstand: method.
I'm waving my hands a bit, but that's the sort of area I'd look at first. At 06:00 AM 2010-03-16, Runar Jordahl wrote: When we load our top bundle using atomic loadin VisualWorks 7.7, a --
Alan Knight [|], Engineering Manager, Cincom Smalltalk
_______________________________________________ vwnc mailing list [hidden email] http://lists.cs.uiuc.edu/mailman/listinfo/vwnc |
In reply to this post by Runar Jordahl
On Mar 16, 2010, at 5:00 AM, Runar Jordahl wrote: > We have found the method causing the error. It is an extension method to Point: > projectPragmas > <addAttribute: #x type: #Float > <addAttribute: #y type: #Float> > > If we remove this method, load works with atomic loading. First off, I hope you mean: <addAttribute: #x type: #Float> <addAttribute: #y type: #Float> (Note missing ">" at the end of the first line) Following on what Alan said, please try this and let us know if it solves the problem... Add a property to the "problem" package named #installBeforeContinuing, the value associated with it does not matter. This forces the package (and any pending packages) to go into install mode immediately. And So It Goes Sames ______________________________________________________________________ Samuel S. Shuster [|] VisualWorks Engineering, Store Project Smalltalk Enables Success -- What Are YOU Using? _______________________________________________ vwnc mailing list [hidden email] http://lists.cs.uiuc.edu/mailman/listinfo/vwnc |
My method does include “>” to end the pragma, sorry about the confusion.
I tried adding property installBeforeContinuing and then load our code again, but I get the same error as before. Kind regards Runar Jordahl _______________________________________________ vwnc mailing list [hidden email] http://lists.cs.uiuc.edu/mailman/listinfo/vwnc |
Runar:
> My method does include “>” to end the pragma, sorry about the confusion. > > I tried adding property installBeforeContinuing and then load our code > again, but I get the same error as before. Nutz! I was hoping it would work because... Well, we have pragmas in our system and they don't show this kind of problem, so we would need a case we can reproduce here. We/I can't come up with one, so that leaves this somewhat in an awkward position. Is it possible for you to contact support and possibly provide them with some way of reproducing this problem? I know that puts a burden on you, but without a reproducible case, we're at a loss to move forward.... And we really do want to, since in 7.8 we intend to remove the atomic loader on/off setting, and have it only be "on" (although the old loader code will still be there). And So It Goes Sames ______________________________________________________________________ Samuel S. Shuster [|] VisualWorks Engineering, Store Project Smalltalk Enables Success -- What Are YOU Using? _______________________________________________ vwnc mailing list [hidden email] http://lists.cs.uiuc.edu/mailman/listinfo/vwnc |
Thank you for your quick response.
We might need to take this to Cincom support, but right now reproducing it means loading all our source code. We really want to make the bug reproducable outside our code, but failed. I will try to do some debugging of Store code myself, and see what turns up. Kind regards Runar Jordahl _______________________________________________ vwnc mailing list [hidden email] http://lists.cs.uiuc.edu/mailman/listinfo/vwnc |
Free forum by Nabble | Edit this page |