Hi XOTcl Friends!
The new release of XOTclIDE 0.85 is ready on http://www.xdobry.de/xotclIDE
Changes: 1. Compatible with XOTclI 2.0 (nxf based XOTcl). Many thanks to Gustaf Neumann for patches. Indeed XOTcl 2.0 seems to be the most backward compatible version ever of XOTcl. I was quite surprised that my many thousand of XOTcl code runs without problems with XOTcl 2.0. So version difference 1.6 to 2.0 seems to be most internal nature.
But there is small change in XOTcl 2.0 that make problem with old XOTclIDE 0.84. The method names can not start with : but it was used in @ Object to store meta information for IDE.
If you have all XOTclIDE components, you will need to load and write all components with XOTclIDE 0.85 (if you use file system components) and XOTcl 1.6 and then you can use them with XOTclIDE 0.85 and XOTcl 2.0.
All just remove the colons from meta descriptions
For example @ ::IDE::Browser idemeta component IDEBaseGUI
to
@ IDE::Browser idemeta component IDEBaseGUI
2) Improvements in tcl syntax checker. Now it knows new tcl 8.5 commands (for example dict)
3) New namespace browser
4) New interpreter browser. You can create slave interperter run and inspect the state of interpreter
5) Modified wiki reaper. It can list wiki pages with tcl code, run it in slave interpreter and inspect it.
6) Code completion knowns also tcl commands options.
7) Many other improvements and bug fixes.
Artur
Artur,
The new release of XOTclIDE 0.85 is [...] Compatible with XOTcl 2.0
Many thanks for your efforts, this is much appreciated!
Indeed XOTcl 2.0 seems to be the most backward compatible version ever of XOTcl. I was quite surprised that my many thousand of XOTcl code runs without problems with XOTcl 2.0. So version difference 1.6 to 2.0 seems to be most internal nature.
This is good news for us!
The method names can not start with : but it was used in @ Object to store meta information for IDE.
All just remove the colons from meta descriptions
For example @ ::IDE::Browser idemeta component IDEBaseGUI
to
@ IDE::Browser idemeta component IDEBaseGUI
If you allow for a suggestion: You may easily offer a backward compatibility patch here, to take this tiny burden of XOTclIDE users:
Register a filter method for your @ object which takes care of mangling and redirecting ::-qualified names, for example like this:
xotcl::Object create ::@ -proc unknown {selector args} { puts stderr "TRAPPED: ::$selector" }
proc ::foo {} { puts stderr "PROC called" }
@ ::foo; # the proc ::foo is called
# # Provide for backward compatibility of meta descriptions ... # ::@ proc asMetaDescription args { set componentName [self calledproc] if {[string match {::*} $componentName]} { my [string trimleft $componentName :] {*}$args } else { next } } ::@ filter add asMetaDescription
@ ::foo; # trapped by filter + unknown
::@ filter delete asMetaDescription
@ ::foo; # the proc ::foo is called, again
Assuming that the @ processing is not a performance-critical evaluation path in XOTclIDE component scripts, this is an acceptable approach. You could optimise the code further, by inlining the component handling from unknown into asMetaDescription ... rendering unknown obsolete.
//stefan