Jim Tcl
Timeline
Not logged in

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

50 most recent check-ins

2023-02-25
02:09
jim: fix crash on infinite eval recursion

When this condition was caught, eval frame was incorrectly popped even though it was never pushed.

Signed-off-by: Steve Bennett <steveb@workware.net.au> Leaf check-in: d3c475e671 user: steveb@workware.net.au tags: trunk,

00:55
Discussions replaces mailing list Leaf check-in: ac70257269 user: steveb tags: www
00:48
Announce jimtcl 0.82 check-in: f57434a1ec user: steveb tags: www
00:00
build: appveyor: support different libssl version

Use wildcards when packaging libssl in case the version changes.

Signed-off-by: Steve Bennett <steveb@workware.net.au> Leaf check-in: 5257f2d41e user: steveb@workware.net.au tags: trunk

2023-02-24
23:25
docs: update shipped documentation for 0.82

Signed-off-by: Steve Bennett <steveb@workware.net.au> Leaf check-in: 2086bbe693 user: steveb@workware.net.au tags: trunk,

03:02
dict with: return script result

Previously dict with returned the new dict value. Also fix an issue in the case where a dict element mirrors the name of the dictionary.

Fixes: #241

Signed-off-by: Steve Bennett <steveb@workware.net.au> check-in: 7ace58bcdc user: steveb@workware.net.au tags: trunk,

2023-02-13
00:55
docs: document ensemble and namespace ensemble create

Signed-off-by: Steve Bennett <steveb@workware.net.au> check-in: 17b6451085 user: steveb@workware.net.au tags: trunk,

00:52
ensemble: Add a simple ensemble command

Uses a prefix to automatically map from subcommand to implementation.

Includes support for namespace ensemble

Signed-off-by: Steve Bennett <steveb@workware.net.au> check-in: 5a037b62db user: steveb@workware.net.au tags: trunk,

00:44
docs: Add documentation for timerate command

Signed-off-by: Steve Bennett <steveb@workware.net.au> check-in: f07080a703 user: steveb@workware.net.au tags: trunk,

00:44
configure: Default to --full

Now use --minimal and/or --without-ext to disable things.

Signed-off-by: Steve Bennett <steveb@workware.net.au> check-in: 540623a11d user: steveb@workware.net.au tags: trunk,

00:44
redis: Add -async support

Supports communication with redis as part of an event loop

Signed-off-by: Steve Bennett <steveb@workware.net.au> check-in: 93c0eab09d user: steveb@workware.net.au tags: trunk,

00:44
clock millis, time: now use monotonic raw time if possible

Instead of using all time, these commands now use a monotonically increasing system timer so that they are not affected by time (e.g. ntp) adjustments. (But not on Windows since it doesn't work reliably)

Fixes #240

Signed-off-by: Steve Bennett <steveb@workware.net.au> check-in: 1c2d3242db user: steveb@workware.net.au tags: trunk,

00:44
build: fix warning on Windows

Signed-off-by: Steve Bennett <steveb@workware.net.au> check-in: ba6bb7fddd user: steveb@workware.net.au tags: trunk,

00:44
windows: compatibility changes

_fullpath isn't necessarily available, so check for it

symlink() isn't useful enough on Windows to use

Signed-off-by: Steve Bennett <steveb@workware.net.au> check-in: f1b2459ff9 user: steveb@workware.net.au tags: trunk,

00:44
update ABI version to 101

Version 0.82 modifies some public structs and functions, so bump the ABI so that binary extensions built against a previous version won't load.

Signed-off-by: Steve Bennett <steveb@workware.net.au> check-in: 64f781027d user: steveb@workware.net.au tags: trunk,

00:44
vwait -signal docs and test script

Signed-off-by: Steve Bennett <steveb@workware.net.au> check-in: c283d26146 user: steveb@workware.net.au tags: trunk,

00:44
vwait: add support for vwait -signal

To break vwait if a handled signal is received. In this case, the handled signal(s) can be returned by signal check ?-clear?

Signed-off-by: Steve Bennett <steveb@workware.net.au> check-in: 3d0ae7ddcd user: steveb@workware.net.au tags: trunk,

00:44
improvements to tools/benchtable.tcl

Handles decimal times Better formatting.

Still need to avoid duplication with bench.tcl

Signed-off-by: Steve Bennett <steveb@workware.net.au> check-in: 9d887fd429 user: steveb@workware.net.au tags: trunk,

00:44
bench.tcl: Use the new timerate command if available

And make each test shorter but run for more iterations Better output for short durations

Signed-off-by: Steve Bennett <steveb@workware.net.au> check-in: 28db3cdc24 user: steveb@workware.net.au tags: trunk,

00:43
core: New timerate command

Based on TIP 527, but not 100% compatible

Needs documentation

Signed-off-by: Steve Bennett <steveb@workware.net.au> check-in: 79f6c9459c user: steveb@workware.net.au tags: trunk,

00:42
docs: update for new Tcl-compatible [info frame]

Signed-off-by: Steve Bennett <steveb@workware.net.au> check-in: a53f6ba1d7 user: steveb@workware.net.au tags: trunk,

00:42
Tcl-compatible 'info frame'

Returns a dictionary with file, line, cmd, (possibly) proc and level. And support 'info frame 0' for the current command.

Note that now all evaluation frames are captured, not just call frames.

Signed-off-by: Steve Bennett <steveb@workware.net.au> check-in: 056f7c6929 user: steveb@workware.net.au tags: trunk,

00:42
jim: make the Jim memory allocator replaceable

Allows for a specialised allocator or debugging allocator.

Signed-off-by: Steve Bennett <steveb@workware.net.au> check-in: 60fd8d5029 user: steveb@workware.net.au tags: trunk,

00:42
Jim_StrDupLen: minor optimisation

No need to copy a char that will be overwritten in the next line.

Signed-off-by: Steve Bennett <steveb@workware.net.au> check-in: 0a9be7e32f user: steveb@workware.net.au tags: trunk,

2023-02-10
04:01
bench.tcl: remove expr with multiple arguments

For compatibility when Jim is build without --compat

Signed-off-by: Steve Bennett <steveb@workware.net.au> check-in: 6e7b0509c0 user: steveb@workware.net.au tags: trunk,

04:00
Optimisation for Jim_GetWideExpr()

If the expression is a simple integer, use it as-is rather than converting to an expression and evaluating.

Signed-off-by: Steve Bennett <steveb@workware.net.au> check-in: f776c089b0 user: steveb@workware.net.au tags: trunk,

2023-02-09
03:22
build: fix check for isinf/isnan

Needs to be #if not #ifdef for 'decl' checks. Otherwise build fails on systems without these.

Signed-off-by: Steve Bennett <steveb@workware.net.au> check-in: db0fca63e3 user: steveb@workware.net.au tags: trunk,

03:22
build: handle old compilers without restrict keyword

Signed-off-by: Steve Bennett <steveb@workware.net.au> check-in: ad0a6b942b user: steveb@workware.net.au tags: trunk,

2023-02-06
00:59
tests: exec2: may need to set default SIGPIPE disposition

Signed-off-by: Steve Bennett <steveb@workware.net.au> check-in: 23c260ed7b user: steveb@workware.net.au tags: trunk,

00:59
tests: Don't run exec2 in a child interpreter

Since signals aren't supported there and we need signals for some of these tests.

Signed-off-by: Steve Bennett <steveb@workware.net.au> check-in: 3efcafb4ae user: steveb@workware.net.au tags: trunk,

00:59
build: add github actions for CI on Linux

Signed-off-by: Steve Bennett <steveb@workware.net.au> check-in: e1a3151672 user: steveb@workware.net.au tags: trunk,

2023-02-02
22:51
Convert some errant malloc/free to Jim_Alloc()/Jim_Free()

Go through the Jim versions where it makes sense so we can add debugging or other features as required.

Signed-off-by: Steve Bennett <steveb@workware.net.au> check-in: 3b0a4a875d user: steveb@workware.net.au tags: trunk,

2023-02-01
06:01
build: fix a minor warning on macosx

Signed-off-by: Steve Bennett <steveb@workware.net.au> check-in: c9ba1381fd user: steveb@workware.net.au tags: trunk,

2023-01-31
23:36
Silence compiler warning

The Appveyor build generates this otherwise:

In function 'Jim_WhileCoreCommand', inlined from 'Jim_WhileCoreCommand' at jim.c:12096:12: jim.c:12109:12: warning: 'boolean' may be used uninitialized [-Wmaybe-uninitialized] 12109 | if (!boolean) | ^ jim.c: In function 'Jim_WhileCoreCommand': jim.c:12105:13: note: 'boolean' was declared here 12105 | int boolean, retval; | ^~~~~~~ check-in: 0fe734e28e user: steveb@workware.net.au tags: trunk,

06:53
aio copyto: improve performance for large copies

Rather than continuing to use a small buffer for large copies, if the size exceeds a certain threshold (currently 16kB) switch to a larger, allocated buffer (currently 64kB).

This should speed up large copies without penalising small copies. Note that these are simply heuristics and may not be appropriate on all systems.

Signed-off-by: Steve Bennett <steveb@workware.net.au> check-in: ee28f6cba9 user: steveb@workware.net.au tags: trunk,

2023-01-30
23:08
file normalize: on Windows use _fullpath()

Fixes #91 check-in: f45b8b4c33 user: steveb@workware.net.au tags: trunk,

2023-01-15
23:17
Drop the dummy file configure.ac

Jimtcl dropped the file configure.ac with commit 2ffa2eee88f3 ("Remove obsolete configure.ac") in 2011, but this caused a build failure when jimtcl is used as submodule by OpenOCD. Instead of fixing the obsoleted path in OpenOCD's configure.ac, a patch to add a dummy configure.ac was merged in jimtcl with commit 142edb4e35a90 ("Re-add a dummy configure.ac for automake").

The resulting setup still has issues, as running 'autoremake -f' in OpenOCD folder causes autoconf to replace jimtcl configure file with an incorrect file generated from the dummy configure.ac .

OpenOCD release v0.12.0 includes a fix that makes useless the dummy configure.ac in jimtcl: https://review.openocd.org/7437/ ("configure.ac: fix check for jimtcl submodule").

Drop the dummy configure.ac .

Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com> check-in: 9b0bf88efe user: steveb@workware.net.au tags: trunk,

2023-01-05
23:14
oo.tcl: fix error in defaultconstructor

$classname is not accessible, so use [info level 0]

Fixes #248

Signed-off-by: Steve Bennett <steveb@workware.net.au> check-in: 64d53415c0 user: steveb@workware.net.au tags: trunk,

2022-12-25
23:23
jim: garbage collection fix

Improve the check for an object that exists only in the command table with reference count of one. The object being checked needs to be the same object as the one in the command table. And also objects of type reference can be in the command table so check those too.

Fixes #245

Signed-off-by: Steve Bennett <steveb@workware.net.au> check-in: cdbc46705c user: steveb@workware.net.au tags: trunk,

23:23
tests: add garbage collection tests

These tests provoke the issues raised in #245 plus some additional issues.

Signed-off-by: Steve Bennett <steveb@workware.net.au> check-in: bc577f7c7a user: steveb@workware.net.au tags: trunk,

23:19
file normalise: ensure realpath() buffer is long enough

On some systems, 1024 isn't enough so use PATH_MAX if available.

Fixes: #247 Signed-off-by: Steve Bennett <steveb@workware.net.au> check-in: 9b1a4bcd41 user: steveb@workware.net.au tags: trunk,

2022-12-03
01:18
regexp: fix end of word check

The end of word check was wrong and return true when it should not.

Fixes #246

Signed-off-by: Steve Bennett <steveb@workware.net.au> check-in: 6d2b3e5332 user: steveb@workware.net.au tags: trunk,

2022-11-17
22:54
Add documentation for 'file size' command check-in: 24f73b9c06 user: steveb@workware.net.au tags: trunk,
2022-09-18
00:52
build: isinf and isnan are macros in C

So don't try to find them as functions

Signed-off-by: Steve Bennett <steveb@workware.net.au> check-in: d9527a8810 user: steveb@workware.net.au tags: trunk,

2022-09-13
10:01
Update autosetup-find-tclsh

Fixes an apparent typo in d6edb1347713f002a8f1e61c585583b3b1c37394 check-in: 4ddf15c4af user: steveb@workware.net.au tags: trunk,

2022-08-29
00:44
tests: lock.test: child lock test should be more reliable

Some systems need a little extra time for the child process to start and acquire the lock.

Signed-off-by: Steve Bennett <steveb@workware.net.au> check-in: e4e9275d86 user: steveb@workware.net.au tags: trunk,

2022-08-21
07:17
tree: node ids are now simple integers

Dictionary lookups with simple integers are more efficient than with "node<integer>"

Signed-off-by: Steve Bennett <steveb@workware.net.au> check-in: d281670753 user: steveb@workware.net.au tags: trunk,

07:15
utf8: Update to Unicode 14.0.0

http://unicode.org/Public/UNIDATA/UnicodeData.txt http://unicode.org/Public/UNIDATA/EastAsianWidth.txt

Signed-off-by: Steve Bennett <steveb@workware.net.au> check-in: c3cf554e59 user: steveb@workware.net.au tags: trunk,

04:42
build: minor windows build fixes

ifdef out some unix-only code so that we don't get compiler complaints on Windows.

Signed-off-by: Steve Bennett <steveb@workware.net.au> check-in: d9da4f5b3a user: steveb@workware.net.au tags: trunk,

04:14
tests: Fix file.test on Windows

file executable doesn't do anything useful on Windows

Signed-off-by: Steve Bennett <steveb@workware.net.au> check-in: 2bc96398b8 user: steveb@workware.net.au tags: trunk,