Aug 31
A week ago, Michael Barker wrote a use case for yielder, where he uses the yielding ability to implement “Mini-Axon”, the Kamaelia learning experience usually done in Python, where generators are a built-in feature of the language. I thought it was good to mention it here, to show how yielder can be used for more than just an easy way to implement iterators - for example, to yield results of processing requests as soon as they arrive at the processing box, in the case of Mini-Axon.
Also, if you have downloaded Yielder in the past, go and download the new version which sports two new main features, one of allowing hierarchies under the Yielder class (before, your implementation had to be a direct subclass) and the second is not using debugging information at all, making the tool work with any environment as it relies solely on the bytecode itself. (If you never downloaded yielder, what are you waiting for?)
Aug 30
The latest yielder bug has been fixed, and now compilations without debugging information won’t break.
The differences from the original implementation post relate to the local variable promotion only. The changes are as follows:
Continue reading »
Aug 28
One of the latest discovered bugs in Yielder, originally thought to be linked to Eclipse, is apparently related to the debugging information usually supplied by compilers. The lack of debugging information made promoting local variables to class members impossible with the current way the yielder works, and new approaches are much more complex.
I’ll try to explain the bug and add some detail about some of the mechanics of compiled code, and some more information about what the yielder does behind the scenes. First, let’s mention the stack frame for a minute. We all know the term from the second most famous method Java has, Throwable.printStackTrace, but what is it really, this “frame”?
Continue reading »