aboutsummaryrefslogtreecommitdiff
path: root/jim.h
AgeCommit message (Collapse)AuthorFilesLines
2013-07-22Update documentation and version to 0.74Steve Bennett1-1/+1
Signed-off-by: Steve Bennett <steveb@workware.net.au>
2013-07-22Ensure that signals can break vwaitSteve Bennett1-0/+1
The following should break when a handled signal is caught. catch -signal { vwait forever } Signed-off-by: Steve Bennett <steveb@workware.net.au>
2013-06-12Remove nonexistent function declarationEzequiel Garcia1-2/+0
The API function definition for Jim_InitStringRep() has been removed by the commit: commit 2e8b9ddb92ed1cea3054ed8180d363c9dcc72dd9 Author: Steve Bennett <steveb@workware.net.au> Date: Sat Feb 18 14:47:11 2012 +1000 Small cleanup/optimisation in object create/dup Remove the declaration from the headers as well. Signed-off-by: Ezequiel Garcia <elezegarcia@gmail.com>
2013-03-12Shuffle Jim_Obj to shrink it on 64bit (72 -> 64), removing holesLauri Kasanen1-2/+2
No perf difference measured using bench.tcl. Signed-off-by: Lauri Kasanen <cand@gmx.com>
2012-03-13Fix a reference counting bugSteve Bennett1-0/+1
Ensure that the internal rep of interp->emptyObj is never changed to a script, since scripts use emptyObj as the source filename when no source info is available. Instead use a special nullScriptObj for this purpose. Signed-off-by: Steve Bennett <steveb@workware.net.au>
2011-12-12Add support for lightweight namespacesSteve Bennett1-0/+11
See README.namespaces Signed-off-by: Steve Bennett <steveb@workware.net.au>
2011-12-12Remove error message rewriting for aliasesSteve Bennett1-2/+0
It does not extend well enough to the general case, so remove it for simplicity Signed-off-by: Steve Bennett <steveb@workware.net.au>
2011-12-09Make interactive getline/history API publicSteve Bennett1-0/+5
Signed-off-by: Steve Bennett <steveb@workware.net.au>
2011-12-08Add support for tcl::prefix as an optional extensionSteve Bennett1-0/+3
Also adds Jim_ListGetIndex(), like Jim_ListIndex() but with a more convenient interface
2011-12-08Make Jim_EvalObjList() publicSteve Bennett1-0/+1
Signed-off-by: Steve Bennett <steveb@workware.net.au>
2011-12-08Reduce # of different types in the Jim_Obj unionSteve Bennett1-15/+6
Signed-off-by: Steve Bennett <steveb@workware.net.au>
2011-12-02Prevent infinite recursion for eval, aliasSteve Bennett1-2/+5
Signed-off-by: Steve Bennett <steveb@workware.net.au>
2011-11-28Make Jim_ListJoin() publicSteve Bennett1-0/+2
The core of [join] Signed-off-by: Steve Bennett <steveb@workware.net.au>
2011-11-28Commands, not just procs can be localSteve Bennett1-4/+6
Signed-off-by: Steve Bennett <steveb@workware.net.au>
2011-11-28Shorten ref id, proc epoch to 32 bitsSteve Bennett1-8/+9
Faster on 32 bit systems, and 64 bits is overkill here. Signed-off-by: Steve Bennett <steveb@workware.net.au>
2011-11-18Create optimised Jim_String(), Jim_Length()Steve Bennett1-1/+1
These are very common operations. Creating versions separate from Jim_GetString() saves size and speed. Signed-off-by: Steve Bennett <steveb@workware.net.au>
2011-11-18Add a general purpose hashtable pattern matcherSteve Bennett1-0/+1
Invokes a callback to add elements with keys matching a pattern to a list Use for info subcommands: commands, procs, channels, globals, locals, vars Also: dict keys, array get Also avoid some dict/list conversions And simplify the implementation of array set
2011-11-18Cleanup hash table interfacesSteve Bennett1-4/+4
Remove const-ness of hash table keys Also consolidate string hashtable ops Signed-off-by: Steve Bennett <steveb@workware.net.au>
2011-11-18Improvements to hash table usage for dictsSteve Bennett1-2/+2
Mainly avoid double hash calculation and lookup in the case where an entry is to be replaced. Signed-off-by: Steve Bennett <steveb@workware.net.au>
2011-11-01Bump version to 0.73Steve Bennett1-1/+1
Signed-off-by: Steve Bennett <steveb@workware.net.au>
2011-09-12Remove all trailing whitespace in sourceSteve Bennett1-12/+12
Signed-off-by: Steve Bennett <steveb@workware.net.au>
2011-09-12Bump version to 0.72Steve Bennett1-1/+1
Signed-off-by: Steve Bennett <steveb@workware.net.au>
2011-08-30Change Jim_EvalObjPrefix to accept arbitrary objectsAlexander Shpilkin1-1/+2
Jim_EvalObjPrefix now accepts an arbitrary Jim_Obj as a prefix, with Jim_EvalPrefix being equivalent to the older version.
2011-08-03Fix commit cbeb3ea: unset missing array elementSteve Bennett1-1/+1
Although [dict unset] should not complain about being unable to unset a missing element, unset via array syntax (dict sugar) should - to be compatible with Tcl. Signed-off-by: Steve Bennett <steveb@workware.net.au>
2011-07-29Add Jim_EvalSource() to replace Jim_Eval_Named()Steve Bennett1-2/+5
Since the line number should correspond to the first line of the script, it is easier to use with __LINE__ if the filename and line number are before the script. Signed-off-by: Steve Bennett <steveb@workware.net.au>
2011-07-29Switch to using Jim_Obj for filename trackingSteve Bennett1-4/+3
Remove the old shared-string implementation. The new approach reuses the Jim_Obj reference counting so it is smaller and a little more straight forward. Signed-off-by: Steve Bennett <steveb@workware.net.au>
2011-07-08Better proc optional arg handlingSteve Bennett1-7/+13
Allows args and optional parameters in any location, in addition to being smaller and faster. Signed-off-by: Steve Bennett <steveb@workware.net.au>
2011-06-28Don't try to store an int into a (void *)Steve Bennett1-4/+7
Instead do it properly with a union Signed-off-by: Steve Bennett <steveb@workware.net.au>
2011-06-10Add --maintainer optionSteve Bennett1-1/+0
Enables [debug] and JimPanic() JimPanic() is an assertion feature which is generally only of interest to developers, so disable it by default to save space and time.
2011-06-10Unload dlopen() handles on freeing interpreterSteve Bennett1-0/+3
Signed-off-by: Steve Bennett <steveb@workware.net.au>
2011-06-10Always define strtoull as strtoul if no 64 bit intsSteve Bennett1-1/+1
Signed-off-by: Steve Bennett <steveb@workware.net.au>
2011-06-10Add TclX-compatible loop commandSteve Bennett1-2/+0
Signed-off-by: Steve Bennett <steveb@workware.net.au>
2011-06-09Better handling of environ on Mac OS XSteve Bennett1-0/+4
Shared libraries can't access environ directly, so use _NSGetEnviron() on Mac OS X Also, load modules with (RTLD_NOW | RTLD_LOCAL) instead of RTLD_LAZY Signed-off-by: Steve Bennett <steveb@workware.net.au>
2011-06-09Use autosetup instead of autoconfSteve Bennett1-8/+0
Faster, simpler auto-configuration Signed-off-by: Steve Bennett <steveb@workware.net.au>
2011-06-01Add [upcall] commandSteve Bennett1-0/+1
Allows previous command definitions to be invoked when otherwise hidden via [local] Signed-off-by: Steve Bennett <steveb@workware.net.au>
2011-06-01Use a union for Jim_Cmd fieldsSteve Bennett1-12/+21
There is no overlap between proc command fields and native command fields, so overlap them with a union. Signed-off-by: Steve Bennett <steveb@workware.net.au>
2011-06-01local procs now keep and restore previous defnSteve Bennett1-0/+2
Signed-off-by: Steve Bennett <steveb@workware.net.au>
2011-06-01Add Jim_String() macroSteve Bennett1-0/+1
It is very common to get the string value without the length. Jim_String() is a macro which does that. Signed-off-by: Steve Bennett <steveb@workware.net.au>
2011-05-23Remove some unused codeSteve Bennett1-1/+0
Signed-off-by: Steve Bennett <steveb@workware.net.au>
2011-05-18Rename more internal functionsSteve Bennett1-2/+3
In general, use Jim_ only for public APIs. Signed-off-by: Steve Bennett <steveb@workware.net.au>
2011-04-22[package require] should load at the global levelSteve Bennett1-0/+1
Signed-off-by: Steve Bennett <steveb@workware.net.au>
2011-04-22Simplify the accounting of call frame levelsSteve Bennett1-4/+3
Store the level directly in the call frame rather than counting it separately. Signed-off-by: Steve Bennett <steveb@workware.net.au>
2011-04-05Bump version to 0.71Steve Bennett1-1/+1
Signed-off-by: Steve Bennett <steveb@workware.net.au>
2010-12-21Bump version to 0.70Steve Bennett1-1/+1
In preparation for the next release Signed-off-by: Steve Bennett <steveb@workware.net.au>
2010-12-15Fix an object sharing bug for arraysSteve Bennett1-0/+2
Commands which modify variables in place such as append, lappend, incr and lset did not correctly account for modifying a shared array through an array element (dict sugar). Signed-off-by: Steve Bennett <steveb@workware.net.au>
2010-11-24Add support for [dict] size, merge, withSteve Bennett1-0/+3
Implement 'dict with' and 'dict merge' as scripts since this is simpler. Use 'dict size' to implement 'array size' Signed-off-by: Steve Bennett <steveb@workware.net.au>
2010-11-17For ctype macros, cast to unsigned charSteve Bennett1-0/+2
Instead of unsigned. Add UCHAR() macro for this. Signed-off-by: Steve Bennett <steveb@workware.net.au>
2010-11-17Add UTF-8 support to JimSteve Bennett1-8/+8
Signed-off-by: Steve Bennett <steveb@workware.net.au>
2010-11-09Allow jim to be used as an autoconf subdirSteve Bennett1-1/+1
Ensure that no public headers include the autoconf header, jimautoconf.h, as it leads to problems with redefined symbols. Signed-off-by: Steve Bennett <steveb@workware.net.au>
2010-11-08Don't hardcode /lib/jimSteve Bennett1-5/+0
Instead, set TCL_LIBRARY based on where jim is installed. This defaults to /usr/local (thus /usr/local/lib/jim), or can be modified with either configure or make. e.g. ./configure --prefix=/usr or make prefix=/usr install Now auto_path is initialised only to TCL_LIBRARY, and doesn't include "." which could be undesirable. At the same time, simplify jimsh initialisation using a script instead of C code. Add the path to the executable to auto_path. Also, no longer use JIM_TCL_COMPAT. Always use the tcl-compatible names, $auto_path and $tcl_interactive. Signed-off-by: Steve Bennett <steveb@workware.net.au>