Age | Commit message (Collapse) | Author | Files | Lines |
|
On platforms where using vfork emits a warning, use fork instead
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
Based on http://msteveb.github.io/autosetup/articles/handling-cflags/
using autosetup 0.7.1
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
Very similar to Tcl except that read/write can't be done until
writable indicates the socket is connected.
Signed-off-by: Steve Bennett <steveb@workware.net.au>
Documentation fixes -
Co-authored-by: Adrian Ho <the.gromgit@gmail.com>
|
|
Now a default constructor is created, as an alias for defaultconstrutor.
The constructor is passed the arguments to new and by default
this accepts a dictionary that is checked for valid instance variables and sets them.
However the constructor can be replaced by one that takes arbitrary arguments.
Thus we can how have:
a new -optiona -optionb
And the constructor is invoked with arguments '-optiona -optionab'.
This makes object initialisation more flexible.
** Note: This is an incompatible change if you have classes with a constructor
and you create object instances with new <dict>.
Signed-off-by: Steve Bennett <steveb@workware.net.au>
Documentation fixes -
Co-authored-by: Adrian Ho <the.gromgit@gmail.com>
|
|
When checking for "weak" references where the only reference is in the
command hash table, need to check the reference count of the key in the hash
table (this is the command name), not the reference count of the object
we are using to look up the command. Without this it is possible that a reference
(typically a lambda) will be collected even though there is still a reference to it.
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
These tests were only working accidentally (typo >$@w).
In fact since open |... already provides a pipe on output
there is no need to create one manually, so the first test
can run under Tcl too.
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
When the build directory and the source directory do not match
some files are looked in the build directory. Fixed it.
Signed-off-by: Asier Llano <allano@hubbell.com>
|
|
unset -nocomplain abc(missing)
was still returning an error message, but as
a normal return. It should return an empty result.
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>
|
|
More gracefully handle errors, e.g. the redis server going
away in line with how a real client would do this.
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
|
|
- Fixed some awkward phrasing
- Reduced some verbose sentences for clarity
- Added missing words in sentences
|
|
Also regenerated `Tcl_shipped.html` to capture doc changes since it was last generated.
|
|
For retrieving type information of return values.
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
Only on unix systems. Does waitpid(-1, ...) to wait for any child
process to exit.
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
Only on unix systems, wait for any child process
This was broken with a recent commit, so add an explicit test
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
Fixes #221
Reported-by: Antonio Borneo <borneo.antonio@gmail.com>
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
Mostly we need to specifically target WinXP.
Also silence deprecation warnings.
And fix the confusion about _stat64 vs __stat64
Fixes #219
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
Although the interface is different ('$handle stat' vs 'chan configure -stat')
the behaviour is the same.
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
On win32, a process is identified by a HANDLE, but for identifying
a running process we should use GetProcessId() to return a meaningful integer.
This means we need to be able to back and forth between a pid and a process handle
(phandle). We also need to be careful to get the pid before the process handle closes
since it isn't available afterwards.
Also call the handle to intptr_t for open_osfhandle() to avoid a compiler warning.
Fixes #217
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
In addition to "on codes ..."
it is now possible to trap on errorcode with
"trap sublist ..."
e.g.
try {
...
} trap CHILDSTATUS {msg opts} {
...
}
Fixes #204
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
Fixes #215
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
This is the default already for newer versions of redis.
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
There is no reason to allow a reference to contain leading and/or
trailing white space, so remove this check and simply treat
it as an invalid reference.
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
oo.tcl returns globally qualified names like
::<reference.<tree___>.00000000000000000000>
So allow getref and setref to handle these qualified references
Fixes #218
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
It isn't used (always zero) and isn't needed.
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
Makes it easier to override
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
Once we determine the number of pending bytes to read,
there is no need to read one at a time.
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
Detection of eof takes precedence over detection of error.
Fixes #207
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
Previously calling gets on a non-blocking stream could easily
result in a partial line. Now if a partial line is read, return zero/empty
to indicate that nothing is available while storing the partial line.
The next call to gets (typically within a readable script) will continue
appending to the previous partial line until a complete line can be returned.
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
So don't build it unless --shared is specified
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
In order for build-jim-ext to work against an uninstalled, shared libjim
we also need to create the unversioned symlink.
But not on Windows where we don't currently version the shared lib.
Fixes: #216
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
Needs include, lib paths when jim is not installed
Fixes: #216
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
The command line processing was wrong such that 'file delete -force abc'
would also try to delete files named 'delete' and '-force' in the current directory.
If the current directory was writable, this would succeed, but it not writable
this would fail and so the desired target was not deleted.
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
Fixes #214
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
This issue was caused by the fix in 24b234543c7322d2dd20339b45367fa3f4c53495
Because we used closed hashing for the dict hash table, it is important
that the table doesn't get too full, as it gets very inefficient due to
hash collisions. When allowing for space, also consider dummy entries that
consume slots. If there are too many dummy slots, the hash table is expanded,
clearing out the dummy slots.
Without this fix it is possible to get unlucky when filling a dictionary
and emptying it again (twice) will result all slots become dummy slots
and thus no more entries can be added.
See REGTEST 54
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
The original jim_hello was a bad example that directly used
interpreter data members, so it was removed and jim_inline
became jim_hello.
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
Due to the way hash collisions are managed it is possible
to have a sequence where an entry is removed and then another
entry is replaced, however the replacement adds an additional
entry instead of updating the existing entry.
Can be reproduced like this as there is a hash collision between
these two keys:
dict set d 0,13 X
dict set d 8,4 Y
dict unset d 0,13
dict set d 8,4 Z
Should result in one entry in the dictionary, but instead ends with two.
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
|
|
E.g., see the hourglass character U+231B closing the range at line 1111
of the bundled EastAsianWidth.txt:
https://github.com/msteveb/jimtcl/blob/3bf391ebe1a87c1fd0fc064254ef40976dff06f9/EastAsianWidth.txt#L1111
|
|
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>
|
|
Fixes: #210
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
Fix the following build failure raised with openocd and autoconf >= 2.70
due to
http://git.savannah.gnu.org/gitweb/?p=autoconf.git;a=commit;h=aba75f6d4a9c875a9d5d90a07c6b3678db66a4bf:
>>> openocd 0.11.0 Autoreconfiguring
autoreconf: error: configure.ac: AC_INIT not found; not an autoconf script?
Fixes:
- http://autobuild.buildroot.org/results/5fb7aa28703aff61ba850eac11bd35c8804528ae
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
|
|
When extracting the results of a query, an integer result
should be retrieved with sqlite3_column_int64(), not sqlite3_column_int()
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|