|
From: Steve L. <st...@di...> - 2025-11-08 01:40:50
|
I am very positive about Colin's approach, especially with the speedups you (Eric) have recommended. In my opinion it offers the best hope of improving the expr command without breaking code or introducing Lots of Interminably Silly Parentheses (see what I did there?). As for bytecode changes, as Phil notes they come with the risk of making the solution release-dependent but I don't think that should be seen as a show-stopper given the value of an improved expr. Just my 2c worth -- Steve On 8 Nov 2025 at 9:06 AM +0800, EricT <tw...@gm...>, wrote: > Philip: > > Well, maybe it's a good thing that I don't have any tct votes. But now I have some pure tcl, that runs very fast and finally I can put the expr dragon to rest. I have several versions of tcl, and many of Ashok's great tclkit's bundled with twapi. I hope he finds a way to create more, especially for 9.x. I have some utilities that for some forgotten reason still need an older 8.6, and so that's how they launch. > > If you want to try my latest fork of Colin's masterpiece, you can just tclsh it and then take a look at the bytecode, as it dumps the cache at the end. There are now 140 test cases you can look through as examples of usage. The last 10 also use : as the command name, which I think of as a slimmer alias of = that just seems to look right to my eyes. But = works as well. > > Here's the very latest: > > https://github.com/rocketship88/colin-parser > > Eric > > > On Fri, Nov 7, 2025 at 4:16 PM Phillip Brooks <phi...@um...> wrote: > > > > > > > On Fri, Nov 7, 2025 at 2:14 PM EricT <tw...@gm...> wrote: > > > > Hi Phillip: > > > > > > > > In going from tcl 8.6 to tcl 9.0 the only things that broke, at least where Colin's program is concerned, were land and lor, which are no longer supported. If the bytecode were to have to support those two because they had been made public, I don't see the big harm. In 8.6 they'd already gone to a jump based arrangement for short circuiting. So, in 9.x they just removed these 2 instructions. > > > > > > The harm is that the bytecode is currently allowed to change completely from release to release. This allows for reorganization and optimization that would otherwise be impossible. The way you are using it is, I think, safe since you only ever create and run it in the same session. If opened up for general use, people might try to save it to a file, and then use that on a different release. Others are more expert in this area than I am, though. > > > > > > Phil > > _______________________________________________ > > Tcl-Core mailing list > > Tcl...@li... > > https://lists.sourceforge.net/lists/listinfo/tcl-core > _______________________________________________ > Tcl-Core mailing list > Tcl...@li... > https://lists.sourceforge.net/lists/listinfo/tcl-core |