Hi all:
A note first: in the last few months my Claude account (a Pro
subscription, not the free tier) has gained the ability to build and run code in its own Linux sandbox. Before that, Claude could only hand me
code and I had to do all the testing on my own machine. I don't know
whether this is just my account or a general rollout.
This experiment started as a side effect of a tool Claude and I wrote to scan every proc in every package of a Magicsplat install, looking for bytecode problems. I extended it to count which commands are called
through the command table (invokeStk) instead of being compiled inline.
Most of what came up does real work per call (format, regsub,
lsort, ...), so call overhead is a small part of the cost. The one cheap command that stood out was [lrange] with a non-literal index: [lrange $l
1 3] already compiles to listRangeImm, but [lrange $l $i $j] and [lrange
$l 1 end-$n] fall back to a full command call.
I asked Claude (Anthropic's AI assistant), working in its sandbox with access to the GitHub mirror of the Tcl source, to add a new listRange instruction that always takes exactly three values from the stack: the
list and both indices. It took about 20 minutes to get a complete patch
with tests, after many build and test runs in the sandbox, including AddressSanitizer, Tcl's memory-debug build and the TCL_COMPILE_DEBUG
build. I copied the changed files into my own tree, built, and ran the
tests and a benchmark on two of my machines. Claude ran the same
benchmark in its sandbox, which is the third column below.
Base: Tcl main, commit 78dedf7 (2026-10-05, GitHub mirror).
What changed (66 lines of C added, 16 removed; 161 lines of tests added):
generic/tclCompile.h +1 new opcode INST_LIST_RANGE
generic/tclCompile.c +7 instruction table entry
generic/tclExecute.c +34 the instruction
generic/tclCompCmdsGR.c +23 -16 compile non-literal indices to it
generic/tclAssembly.c +1 tcl::unsupported::assemble can
use it
tests/lrange.test +85 lrange-6.1 .. 6.14
tests/compile.test +38 compile-22.1 .. 22.5
tests/assemble.test +38 assemble-7.47 .. 7.50
The instruction does what Tcl_LrangeObjCmd does, in the same order, so
error messages and error precedence are the same as for the command. A
test compares the compiled form against the command for 6 lists and 20
index forms each way, with no differences.
Tests: the full suite gives 509,285 tests (23 more than before), the
same 8 failures before and after (httpProxy.test, which needs network access). disassemble and getbytecode show the new instruction.
Timing (ns per call, 10-element list, best of 7, before -> after):
machine 1 machine 2 Claude's sandbox
lrange $l $i $j 193 -> 126 117 -> 72 152 -> 98
lrange $l $i end 232 -> 165 130 -> 93 172 -> 123
lrange $l 1 end-$n 368 -> 291 200 -> 161 270 -> 212
lrange $l 1 3 (literal) 38 -> 39 24 -> 23 32 -> 34
The sandbox is a small shared VM, so its numbers are noisier than mine.
The literal case compiles to identical bytecode in both builds, and its difference changes direction between machines, so I take it to be build- layout noise. The end-$n gain is smaller because the string "end-N" is
still built and parsed on every call.
Limits: Linux only. I have not built it on Windows or macOS, so MSVC has
not seen it. I have not tried an integer fast path for end-$n.
I am posting this as a data point more than as a proposal. If anyone on
the core team thinks it is worth a ticket, I will file one with the
patch. The patch, the test results and the benchmark script are here: https://github.com/rocketship88/lrange-inline .
On a side note, I have also found the same assistant good at drafting documentation for my own projects, especially when using the AI to build
the projects. It needs a human to check the facts, but it makes a decent first draft. The Readme at github was also written by Claude.
Eric
Certainly worth pursuing I think. My knowledge of the Tcl byte code is mostly based on cargo culting (blush) so creating a branch in the Tcl repository so more knowledgeable folks can take a look is worthwhile. I'm not sure everyone reads c.l.t.
As an aside, I'm a bit surprised that this was not already compiled. The string range command is very similar to lrange and afaict that compiles in much the same fashion as your patch for lrange with support for non-literal arguments (which leads me to wonder if Claude might have used it as the basis for what it produced). Not sure why lrange was not implemented the same way.
On a different topic, I wonder if you could ask Claude to optimize invokeStk* bytecode implementation. I wonder if it is something that needs to be inherently slower because the additional work involved or if there is scope there for improvement.
/Ashok
On 10/7/2026 6:49 AM, et99 wrote:
Hi all:
A note first: in the last few months my Claude account (a Pro subscription, not the free tier) has gained the ability to build and run code in its own Linux sandbox. Before that, Claude could only hand me code and I had to do all the testing on my own machine. I don't know whether this is just my account or a general rollout.
This experiment started as a side effect of a tool Claude and I wrote to scan every proc in every package of a Magicsplat install, looking for bytecode problems. I extended it to count which commands are called through the command table (invokeStk) instead of being compiled inline. Most of what came up does real work per call (format, regsub, lsort, ...), so call overhead is a small part of the cost. The one cheap command that stood out was [lrange] with a non-literal index: [lrange $l 1 3] already compiles to listRangeImm, but [lrange $l $i $j] and [lrange $l 1 end-$n] fall back to a full command call.
I asked Claude (Anthropic's AI assistant), working in its sandbox with access to the GitHub mirror of the Tcl source, to add a new listRange instruction that always takes exactly three values from the stack: the list and both indices. It took about 20 minutes to get a complete patch with tests, after many build and test runs in the sandbox, including AddressSanitizer, Tcl's memory-debug build and the TCL_COMPILE_DEBUG build. I copied the changed files into my own tree, built, and ran the tests and a benchmark on two of my machines. Claude ran the same benchmark in its sandbox, which is the third column below.
Base: Tcl main, commit 78dedf7 (2026-10-05, GitHub mirror).
What changed (66 lines of C added, 16 removed; 161 lines of tests added):
generic/tclCompile.h +1 new opcode INST_LIST_RANGE
generic/tclCompile.c +7 instruction table entry
generic/tclExecute.c +34 the instruction
generic/tclCompCmdsGR.c +23 -16 compile non-literal indices to it
generic/tclAssembly.c +1 tcl::unsupported::assemble can use it
tests/lrange.test +85 lrange-6.1 .. 6.14
tests/compile.test +38 compile-22.1 .. 22.5
tests/assemble.test +38 assemble-7.47 .. 7.50
The instruction does what Tcl_LrangeObjCmd does, in the same order, so error messages and error precedence are the same as for the command. A test compares the compiled form against the command for 6 lists and 20 index forms each way, with no differences.
Tests: the full suite gives 509,285 tests (23 more than before), the same 8 failures before and after (httpProxy.test, which needs network access). disassemble and getbytecode show the new instruction.
Timing (ns per call, 10-element list, best of 7, before -> after):
machine 1 machine 2 Claude's sandbox
lrange $l $i $j 193 -> 126 117 -> 72 152 -> 98 >> lrange $l $i end 232 -> 165 130 -> 93 172 -> 123 >> lrange $l 1 end-$n 368 -> 291 200 -> 161 270 -> 212
lrange $l 1 3 (literal) 38 -> 39 24 -> 23 32 -> 34
The sandbox is a small shared VM, so its numbers are noisier than mine. The literal case compiles to identical bytecode in both builds, and its difference changes direction between machines, so I take it to be build- layout noise. The end-$n gain is smaller because the string "end-N" is still built and parsed on every call.
Limits: Linux only. I have not built it on Windows or macOS, so MSVC has not seen it. I have not tried an integer fast path for end-$n.
I am posting this as a data point more than as a proposal. If anyone on the core team thinks it is worth a ticket, I will file one with the patch. The patch, the test results and the benchmark script are here: https://github.com/rocketship88/lrange-inline .
On a side note, I have also found the same assistant good at drafting documentation for my own projects, especially when using the AI to build the projects. It needs a human to check the facts, but it makes a decent first draft. The Readme at github was also written by Claude.
Eric
Ashok,
Thanks for the encouragement. I've created an account on
core.tcl-lang.org (username: rocketship88) and have the change
committed locally on a Fossil branch called lrange-inline, based on
trunk check-in a675fa55 (2026-10-05). I can't push it yet because I
don't have write permission.
Could someone grant me rights to push it, or tell me who to ask? Or, if
you'd rather not, a diff made by Fossil (trunk vs. the branch) is here:
https://github.com/rocketship88/lrange-inline/blob/main/lrange.diff
It touches 8 files under generic/ and tests/. The rest of the experiment (README, benchmark script, the base files and the changed ones as side-by-side commits) is at:
https://github.com/rocketship88/lrange-inline
As in my first post, the code and tests were written by Claude and I reviewed, built and tested them locally. The tests pass on my builds.
Claude writes:
Ashok asked whether I looked at [string range]. I did, but only after he asked, so it had no part in how I wrote the code. Having read it now,
the two
are very similar: both have an immediate form for literal indices and a three-value form for the rest.
As for why [lrange] was never done that way, a comment above TclCompileLrangeCmd says "We only bother because we needed the opcode
anyway
for lassign." So listRangeImm was added for lassign, and compiling [lrange] with literal indices came along as a side benefit. The non-literal case doesn't seem to have been considered.
As for optimizing invokeStk, I haven't tried. It is a much bigger and riskier
change than this one, because that path leaves the bytecode loop through TclNREvalObjv. We measured about 44 ns of call overhead on the faster of
our
machines. If the core team is interested, I'd start by profiling that path with callgrind, with no code change, and see where the time goes.
-Eric
On 10/6/2026 8:23 PM, Ashok wrote:
Certainly worth pursuing I think. My knowledge of the Tcl byte code is
mostly based on cargo culting (blush) so creating a branch in the Tcl
repository so more knowledgeable folks can take a look is worthwhile.
I'm not sure everyone reads c.l.t.
As an aside, I'm a bit surprised that this was not already compiled.
The string range command is very similar to lrange and afaict that
compiles in much the same fashion as your patch for lrange with
support for non-literal arguments (which leads me to wonder if Claude
might have used it as the basis for what it produced). Not sure why
lrange was not implemented the same way.
On a different topic, I wonder if you could ask Claude to optimize
invokeStk* bytecode implementation. I wonder if it is something that
needs to be inherently slower because the additional work involved or
if there is scope there for improvement.
/Ashok
On 10/7/2026 6:49 AM, et99 wrote:
Hi all:
A note first: in the last few months my Claude account (a Pro
subscription, not the free tier) has gained the ability to build and
run code in its own Linux sandbox. Before that, Claude could only
hand me code and I had to do all the testing on my own machine. I
don't know whether this is just my account or a general rollout.
This experiment started as a side effect of a tool Claude and I wrote
to scan every proc in every package of a Magicsplat install, looking
for bytecode problems. I extended it to count which commands are
called through the command table (invokeStk) instead of being
compiled inline. Most of what came up does real work per call
(format, regsub, lsort, ...), so call overhead is a small part of the
cost. The one cheap command that stood out was [lrange] with a non-
literal index: [lrange $l 1 3] already compiles to listRangeImm, but
[lrange $l $i $j] and [lrange $l 1 end-$n] fall back to a full
command call.
I asked Claude (Anthropic's AI assistant), working in its sandbox
with access to the GitHub mirror of the Tcl source, to add a new
listRange instruction that always takes exactly three values from the
stack: the list and both indices. It took about 20 minutes to get a
complete patch with tests, after many build and test runs in the
sandbox, including AddressSanitizer, Tcl's memory-debug build and the
TCL_COMPILE_DEBUG build. I copied the changed files into my own tree,
built, and ran the tests and a benchmark on two of my machines.
Claude ran the same benchmark in its sandbox, which is the third
column below.
Base: Tcl main, commit 78dedf7 (2026-10-05, GitHub mirror).
What changed (66 lines of C added, 16 removed; 161 lines of tests
added):
generic/tclCompile.h +1 new opcode INST_LIST_RANGE
generic/tclCompile.c +7 instruction table entry
generic/tclExecute.c +34 the instruction
generic/tclCompCmdsGR.c +23 -16 compile non-literal indices >>> to it
generic/tclAssembly.c +1 tcl::unsupported::assemble
can use it
tests/lrange.test +85 lrange-6.1 .. 6.14
tests/compile.test +38 compile-22.1 .. 22.5
tests/assemble.test +38 assemble-7.47 .. 7.50
The instruction does what Tcl_LrangeObjCmd does, in the same order,
so error messages and error precedence are the same as for the
command. A test compares the compiled form against the command for 6
lists and 20 index forms each way, with no differences.
Tests: the full suite gives 509,285 tests (23 more than before), the
same 8 failures before and after (httpProxy.test, which needs network
access). disassemble and getbytecode show the new instruction.
Timing (ns per call, 10-element list, best of 7, before -> after):
machine 1 machine 2 Claude's sandbox
lrange $l $i $j 193 -> 126 117 -> 72 152 -> 98 >>> lrange $l $i end 232 -> 165 130 -> 93 172 -> 123 >>> lrange $l 1 end-$n 368 -> 291 200 -> 161 270 -> 212 >>> lrange $l 1 3 (literal) 38 -> 39 24 -> 23 32 -> 34
The sandbox is a small shared VM, so its numbers are noisier than
mine. The literal case compiles to identical bytecode in both builds,
and its difference changes direction between machines, so I take it
to be build- layout noise. The end-$n gain is smaller because the
string "end-N" is still built and parsed on every call.
Limits: Linux only. I have not built it on Windows or macOS, so MSVC
has not seen it. I have not tried an integer fast path for end-$n.
I am posting this as a data point more than as a proposal. If anyone
on the core team thinks it is worth a ticket, I will file one with
the patch. The patch, the test results and the benchmark script are
here: https://github.com/rocketship88/lrange-inline .
On a side note, I have also found the same assistant good at drafting
documentation for my own projects, especially when using the AI to
build the projects. It needs a human to check the facts, but it makes
a decent first draft. The Readme at github was also written by Claude.
Eric
You should have access now. Please retry.
On 10/7/2026 12:37 PM, et99 wrote:
Ashok,
Thanks for the encouragement. I've created an account on
core.tcl-lang.org (username: rocketship88) and have the change
committed locally on a Fossil branch called lrange-inline, based on
trunk check-in a675fa55 (2026-10-05). I can't push it yet because I
don't have write permission.
Could someone grant me rights to push it, or tell me who to ask? Or, if
you'd rather not, a diff made by Fossil (trunk vs. the branch) is here:
https://github.com/rocketship88/lrange-inline/blob/main/lrange.diff >>
It touches 8 files under generic/ and tests/. The rest of the experiment
(README, benchmark script, the base files and the changed ones as
side-by-side commits) is at:
https://github.com/rocketship88/lrange-inline
As in my first post, the code and tests were written by Claude and I
reviewed, built and tested them locally. The tests pass on my builds.
Claude writes:
Ashok asked whether I looked at [string range]. I did, but only after he
asked, so it had no part in how I wrote the code. Having read it now, the two
are very similar: both have an immediate form for literal indices and a
three-value form for the rest.
As for why [lrange] was never done that way, a comment above
TclCompileLrangeCmd says "We only bother because we needed the opcode anyway >> for lassign." So listRangeImm was added for lassign, and compiling [lrange] >> with literal indices came along as a side benefit. The non-literal case
doesn't seem to have been considered.
As for optimizing invokeStk, I haven't tried. It is a much bigger and riskier
change than this one, because that path leaves the bytecode loop through
TclNREvalObjv. We measured about 44 ns of call overhead on the faster of our >> machines. If the core team is interested, I'd start by profiling that path >> with callgrind, with no code change, and see where the time goes.
-Eric
On 10/6/2026 8:23 PM, Ashok wrote:
Certainly worth pursuing I think. My knowledge of the Tcl byte code is mostly based on cargo culting (blush) so creating a branch in the Tcl repository so more knowledgeable folks can take a look is worthwhile. I'm not sure everyone reads c.l.t.
As an aside, I'm a bit surprised that this was not already compiled. The string range command is very similar to lrange and afaict that compiles in much the same fashion as your patch for lrange with support for non-literal arguments (which leads me to wonder if Claude might have used it as the basis for what it produced). Not sure why lrange was not implemented the same way.
On a different topic, I wonder if you could ask Claude to optimize invokeStk* bytecode implementation. I wonder if it is something that needs to be inherently slower because the additional work involved or if there is scope there for improvement.
/Ashok
On 10/7/2026 6:49 AM, et99 wrote:
Hi all:
A note first: in the last few months my Claude account (a Pro subscription, not the free tier) has gained the ability to build and run code in its own Linux sandbox. Before that, Claude could only hand me code and I had to do all the testing on my own machine. I don't know whether this is just my account or a general rollout.
This experiment started as a side effect of a tool Claude and I wrote to scan every proc in every package of a Magicsplat install, looking for bytecode problems. I extended it to count which commands are called through the command table (invokeStk) instead of being compiled inline. Most of what came up does real work per call (format, regsub, lsort, ...), so call overhead is a small part of the cost. The one cheap command that stood out was [lrange] with a non- literal index: [lrange $l 1 3] already compiles to listRangeImm, but [lrange $l $i $j] and [lrange $l 1 end-$n] fall back to a full command call.
I asked Claude (Anthropic's AI assistant), working in its sandbox with access to the GitHub mirror of the Tcl source, to add a new listRange instruction that always takes exactly three values from the stack: the list and both indices. It took about 20 minutes to get a complete patch with tests, after many build and test runs in the sandbox, including AddressSanitizer, Tcl's memory-debug build and the TCL_COMPILE_DEBUG build. I copied the changed files into my own tree, built, and ran the tests and a benchmark on two of my machines. Claude ran the same benchmark in its sandbox, which is the third column below.
Base: Tcl main, commit 78dedf7 (2026-10-05, GitHub mirror).
What changed (66 lines of C added, 16 removed; 161 lines of tests added): >>>>
generic/tclCompile.h +1 new opcode INST_LIST_RANGE
generic/tclCompile.c +7 instruction table entry
generic/tclExecute.c +34 the instruction >>>> generic/tclCompCmdsGR.c +23 -16 compile non-literal indices to it
generic/tclAssembly.c +1 tcl::unsupported::assemble can use it
tests/lrange.test +85 lrange-6.1 .. 6.14
tests/compile.test +38 compile-22.1 .. 22.5
tests/assemble.test +38 assemble-7.47 .. 7.50
The instruction does what Tcl_LrangeObjCmd does, in the same order, so error messages and error precedence are the same as for the command. A test compares the compiled form against the command for 6 lists and 20 index forms each way, with no differences.
Tests: the full suite gives 509,285 tests (23 more than before), the same 8 failures before and after (httpProxy.test, which needs network access). disassemble and getbytecode show the new instruction.
Timing (ns per call, 10-element list, best of 7, before -> after):
machine 1 machine 2 Claude's sandbox
lrange $l $i $j 193 -> 126 117 -> 72 152 -> 98
lrange $l $i end 232 -> 165 130 -> 93 172 -> 123
lrange $l 1 end-$n 368 -> 291 200 -> 161 270 -> 212 >>>> lrange $l 1 3 (literal) 38 -> 39 24 -> 23 32 -> 34 >>>>
The sandbox is a small shared VM, so its numbers are noisier than mine. The literal case compiles to identical bytecode in both builds, and its difference changes direction between machines, so I take it to be build- layout noise. The end-$n gain is smaller because the string "end-N" is still built and parsed on every call.
Limits: Linux only. I have not built it on Windows or macOS, so MSVC has not seen it. I have not tried an integer fast path for end-$n.
I am posting this as a data point more than as a proposal. If anyone on the core team thinks it is worth a ticket, I will file one with the patch. The patch, the test results and the benchmark script are here: https://github.com/rocketship88/lrange-inline .
On a side note, I have also found the same assistant good at drafting documentation for my own projects, especially when using the AI to build the projects. It needs a human to check the facts, but it makes a decent first draft. The Readme at github was also written by Claude.
Eric
Hi all:
This experiment started as a side effect of a tool Claude and
I wrote to scan every proc in every package of a Magicsplat install,
looking for bytecode problems.
Eric
et99 <[email protected]> posted:
Hi all:
This experiment started as a side effect of a tool Claude and
I wrote to scan every proc in every package of a Magicsplat install,
looking for bytecode problems.
Eric
Is your work something similar to Donal Fellows ("Optimizing Tcl Bytecode") ? I mean by supplying Donal Fellow's recommendations to Claude, it could improve something in Tcl speed, at least in the range of functionalities you have explored ?
In fact I don't know if his work has been applied or not.
Olivier.
On 10/7/2026 12:25 PM, Olivier wrote:
et99 <[email protected]> posted:
Hi all:
This experiment started as a side effect of a tool Claude and
I wrote to scan every proc in every package of a Magicsplat install,
looking for bytecode problems.
Eric
Is your work something similar to Donal Fellows ("Optimizing Tcl Bytecode") ?
I mean by supplying Donal Fellow's recommendations to Claude, it could improve something in Tcl speed, at least in the range of functionalities you have explored ?
In fact I don't know if his work has been applied or not.
Olivier.
Hi Olivier:
Short answer: kinda, I'm aware of Donal's peephole work in the core, and the assemble documentation has a section on it. But I imagine he's also working on other optimizations. My own scanning is a different thing, though. It's read-only analysis of compiled bytecode, not an optimizer.
Next I looked for commands that were heavily used but not inlined, and found lrange. Since Claude can now build Tcl in his sandbox and test his own code, I asked him to inline it. He did, and he used validation tools I'd never heard of.
I'm having tons of fun with this. It may be my $20 a month level that makes it work so well, but it beats a cable subscription. :)
-eric
One interesting find along the way: when a command's compile routine
hits an error (for example [format %d notanumber] or [string is bogus
x]), the compiler doesn't raise a script-level error. It bakes a
"syntax" bytecode into the code, which I found in about 8 places in
the source. The error only appears at run time, and only if that
code is reached, so a mistake can sit dormant in production code for
years.
I asked Claude (Anthropic's AI assistant), working in its sandbox with access to the GitHub mirror of the Tcl source, to add a new listRange instruction that always takes exactly three values from the stack: the
list and both indices. It took about 20 minutes to get a complete patch
with tests, after many build and test runs in the sandbox, including AddressSanitizer, Tcl's memory-debug build and the TCL_COMPILE_DEBUG
build. I copied the changed files into my own tree, built, and ran the
tests and a benchmark on two of my machines. Claude ran the same
benchmark in its sandbox, which is the third column below.
et99 <[email protected]> wrote:
One interesting find along the way: when a command's compile routine
hits an error (for example [format %d notanumber] or [string is bogus
x]), the compiler doesn't raise a script-level error. It bakes a
"syntax" bytecode into the code, which I found in about 8 places in
the source. The error only appears at run time, and only if that
code is reached, so a mistake can sit dormant in production code for
years.
That is likely to match Tcl interpreted script behavior. An 'if'
clause (say for checking for an incorrect data in a var) that is not exercised by an explicit test can also hold a syntax error (the
interpreter will only care that the 'if' body has matching curly braces
at parse time) that can lay dormant until one day, years in the future,
the incorrect data being tested for finally makes the 'if' test true,
then the body is executed, and the syntax error can manifest itself.
<snip>
This is the question I had in mind but dare not to ask. 20 $ to analyze
20 000 procedures, it is not expensive but there is probably some dumping
at the moment. Improving code with AI under the look of experimented programmers
can be a good thing once we really know the actual cost for it.
Thanks for having report your work, it is very interesting.
Olivier.
On 10/6/2026 9:19 PM, et99 wrote:
I asked Claude (Anthropic's AI assistant), working in its sandbox with access to the GitHub mirror of the Tcl source, to add a new listRange instruction that always takes exactly three values from the stack: the list and both indices. It took about 20 minutes to get a complete patch with tests, after many build and test runs in the sandbox, including AddressSanitizer, Tcl's memory-debug build and the TCL_COMPILE_DEBUG build. I copied the changed files into my own tree, built, and ran the tests and a benchmark on two of my machines. Claude ran the same benchmark in its sandbox, which is the third column below.
An AI assistant already knows about bytecodes to the degree that it can optimize it? Truly impressive.
Question/Suggestion: Expect on Windows is basically abandoned software at this point, and other platforms may follow suit soon. It is a nice piece of software and it seems to be popular enough to receive attention in articles and blogs here and there.
I wonder with your experience in directing Claude if it can offer a solution.
On 10/8/2026 11:34 AM, saito wrote:
On 10/6/2026 9:19 PM, et99 wrote:
I'm afraid with Expect on windows, you'd have to be his tester.
On 10/8/2026 12:24 PM, et99 wrote:
On 10/8/2026 11:34 AM, saito wrote:
On 10/6/2026 9:19 PM, et99 wrote:
I'm afraid with Expect on windows, you'd have to be his tester.
I stand corrected on this, if you look at today's core email by Serhiy Storchaka on the bug fixes he's been working on lately, and quite
rapidly, he says he uses claude code and it does have a vm sandbox for windows 11.
Claude code is a different product/tier than the claude pro I use.
On 10/8/2026 6:41 PM, et99 wrote:
On 10/8/2026 12:24 PM, et99 wrote:Thanks for the info. I can test it if there is a package ready for package req command. Otherwise, I am not able to spend any time on this unfortunately at the moment. Indeed it would be interesting to spend sometime with these agents to build and fix things.
On 10/8/2026 11:34 AM, saito wrote:
On 10/6/2026 9:19 PM, et99 wrote:
I'm afraid with Expect on windows, you'd have to be his tester.
I stand corrected on this, if you look at today's core email by Serhiy Storchaka on the bug fixes he's been working on lately, and quite rapidly, he says he uses claude code and it does have a vm sandbox for windows 11.
Claude code is a different product/tier than the claude pro I use.
| Sysop: | DaiTengu |
|---|---|
| Location: | Appleton, WI |
| Users: | 1,142 |
| Nodes: | 10 (0 / 10) |
| Uptime: | 93:08:21 |
| Calls: | 14,704 |
| Calls today: | 2 |
| Files: | 186,497 |
| D/L today: |
2,352 files (779M bytes) |
| Messages: | 2,551,657 |