Age | Commit message (Collapse) | Author | Files | Lines |
|
Don't look up every object in the command table, since it can be slow
to do that. Only lookup if the object looks like a reference.
Also, script and expression objects can't contain references that
aren't already contained in sub-objects, so there is no need to
scan them for references.
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
In this case, show the result as a decimal value
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
Under some circumstances, such as lrepeat and lreverse we know
the length of the final list, so allocate the final size immediately
rather than growing the table in multiple steps.
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
Pass JIM_NONE to prevent an error message being generated
which is subsequently thrown away.
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
The changes in cdfa4637afe broke TEST 35 because the cmd
pointer is dereferenced before checking the procEpoch instead
of afterwards.
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
Now argument is Jim_Obj *, not const char *
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
If running in a VM with very variable time
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
namespace, ssl
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
Instead of incrementing the proc epoch on every command removal
and some command creation, cache previous deleted commands
(empty structure only). Periodically increment the proc epoch
and invalide all cached commands.
This is especially a win when creating short lived commands.
e.g.
proc a {} {
local proc b {} {
# do something
}
# now b is removed
}
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
The hash table used to store commands now uses Jim_Obj keys rather
than allocated char *, so embedded nulls are supported.
This means that some API function such as Jim_RenameCommand()
now take Jim_Obj * rather than const char *, however Jim_CreateCommand()
is retained with const char * for convenience and the new Jim_CreateCommandObj()
is added.
This is generally a performance win as the existing Jim_Obj can be used
as the key.
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
string match, switch -glob, info commands, etc. all now support
patterns and strings with embedded nulls.
Fixes #143
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
Hash tables used to store variables are now use Jim_Obj keys rather
than allocated char *, so embedded nulls are supported.
This is generally a performance win as the existing Jim_Obj can be used
as the key.
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
The fix for tailcall in 0d5a208e92 meant that a JIM_RETURN return
code from apply was no longer being converted to the appropriate
return code.o
Fixes: #157
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
|
|
Fixes #155
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
An implicit concat was being done on the arguments to 'super', so
arguments containing spaces were mangled.
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
Using a custom "expect-like" module to allow testing Jim in interactive
mode. This also exercises the 'socket pty' support.
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
If the pattern begins with -, the internal invocation of regexp
will treat the pattern as an option. Fix this by adding -- to the
internal invocation of regexp.
Fixes #154
Reported-by: Barry Arthur <barry.arthur@gmail.com>
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
Skip ipv6 tests if not supported
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
Allows a psuedo-tty pair to be created.
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
For some SSL connections it is necessary to set the Server Name
Indication in the connection in order to receive the correct
certificate. Allow this as part of the client ssl call with:
$sock ssl -sni $servername
Also for -server mode, allow the certificate and private key to be
stored in a single file and only be specified once.
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
We can't use feof() and 'buffering none' on ssl connections.
Instead we have to get eof from the ssl layer, and provide
special handling for buffering in the eventloop.
For eof, add ssl_eof() and detect SSL_read() results that indicate
eof to set AIO_EOF in flags.
For buffering, add 'read -pending' that will read, and then immediately
read any buffered data so that the 'readable' event will trigger next
time.
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
Note that there is currently a problem with ssl and readable events
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
Basic testing of each of the socket types
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
Because we use catch -exit { ... }, if a test uses os.fork
we will return in both the parent in the child. To fix this,
require the child to use exit 99, and detect this case and exit
from the child in this case.
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
If exit is caught with catch -exit, it is currently not possible
to retrieve the exit value. If an exit code is provided, set it
as the interp result.
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
While -D__MINGW_USE_VC2005_COMPAT enables a 64-bit time_t,
it is necessary to explicitly use _stat64 to access the stat
structure containing 64 bit times.
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
Mostly just avoiding running certain tests, but also:
- rename() won't overwrite an existing file on Windows
- ensure that eof returns 0 or 1
- in aio.test, create and read the file in binary mode
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
In case the index is invalid, the string should contain -MAX_INT
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
numPids is always zero here so the code does nothing
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
To show both the host and port
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
The string length was being checked in chars instead of bytes
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
regsub -all matches \A against the start of each match, but
correctly handle a pattern like ^ which does not advance the
match
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
Detect and produce an error for missing closing bracket ]
Consider a trailing backslash as an invalid escape
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
If the signal is invalid, indicate that
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
between pack and unpack
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
readdir, tty, utf8, signal, alarm, kill, file, jimsh, posix, aio,
history, interp, pack, unpack, eventloop, exec, load, package,
regexp, regsub
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
Disable optimisation during coverage.
Set CCACHE_DISABLE=1 in the environment, just to be sure to disable ccache
Also cleanup coverage files in subdirs too
Add support for both lcov and gcovr
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
More namespace tests from Evan Hunter
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
Also requires fixing 'debug' command so that the interpreter &
tcltest.tcl can tell it is not supported.
And the result of 'debug show' is now returned as the interpreter result
rather than being printed.
|
|
The expression tree nodes are freed with Jim_Free and should
be allocated with Jim_Alloc
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
As Windows doesn't respect the path/template
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
- clock
- array
- file tempfile
- lreverse
- string byterange
- aio tty
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|