win32lib 0.70+ and Euphoria 3.0-
- Posted by CChris <christian.cuvier at agricul?ure.gou?.fr> Jan 15, 2008
- 567 views
win32lib v0.60.x has been compatible with Euphoria 2.3 and later. win32lib v0.70.1 and more have departed from this in a minor way. Commenting out the two calls to task_yield() in win32lib.ew restores the correct working of the library. However, there is a question to ask. Since Euphoria has changed since v2.4, and hopefully will keep adding new features (though I have my doubts), it might be high time win32lib benefits from the changes. Currently, to my knowledge, there are two options: 1a/ Declare that, from v0.70.1 on, win32lib is not compatible with versions of Euphoria earlier than 3.0. This will allow $ and task_yield() in, but not find_from(), match_from() or anything that might come in the future. This one would have my vote. 1b/ Declare that, from v0.70.1 on, win32lib is compatible with the version of Euphoria that is officially available at release time. This will allow $, task_yield(), find_from(), match_from() in, as well as anything that might come in the future. This one would have my vote. 2/ Allow only task_yield() in, and restore compatibility for v2.3 and 2.4. Users of 2.5 alpha and official will still have to comment out the two statements, unless someone knows how to parse code conditionally to interpreter version in Eu 2.5 and later. The late (r3 I think) 2.5 version supports task_yield() and thus has no problems. Very unfortunately, RDS had made no provision to test whether a given keyword was supported otherwise than by crashing at compile time: whatever test is used, the interpreter will barf at the unknown identifier. A version() function that would work like platform() does would be useful in the future, but won't solve issues from the past. (Under v2.4 and less, it can be implemented using the dynamical include file contents trick). This definitely hampers efforts by programmers to ensure some degree of backward compatibility. 3/ Of course, not allowing task_yield() in is ruled out. What to do? CChris By the way, a 70.4 version might be ready somewhere in february. Some bug fixes and a slew of small additions/enhancements left out from the to-do list for 70.3. Field testing might start as soon as next weekend.