aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2010-10-15Fix lassign to work properly with an empty listSteve Bennett2-2/+10
Signed-off-by: Steve Bennett <steveb@workware.net.au>
2010-10-15Fix unexpected change in list orderSteve Bennett1-5/+7
Need to create string rep of list before converting in case it needs to be converted back, thus not losing order Signed-off-by: Steve Bennett <steveb@workware.net.au>
2010-10-15Fix 'format %%'Steve Bennett2-0/+11
Signed-off-by: Steve Bennett <steveb@workware.net.au>
2010-10-15Fix some build problems and add lost featuresSteve Bennett17-79/+4265
Add some missing files needed for autoconf Make jim build standalone and without host jimsh Use (FILE *) for eventloop file handle Don't expect to support dynlib if no mmu Re-add nvp and win32 support (untested) Signed-off-by: Steve Bennett <steveb@workware.net.au>
2010-10-15Fix lsort for large integersSteve Bennett1-6/+18
The compare result may be a wide integer, so ensure that the sign is retaining when narrowing to an int Signed-off-by: Steve Bennett <steveb@workware.net.au>
2010-10-15Add tests for 'file copy'Steve Bennett1-0/+62
Signed-off-by: Steve Bennett <steveb@workware.net.au>
2010-10-15Need to add include path for generated jim.hSteve Bennett1-1/+1
2010-10-15Use configure to create jim.hSteve Bennett4-14/+14
jim.h can be used externally, including HAVE_LONG_LONG
2010-10-15Enhance catch and 'info returncodes'Steve Bennett4-35/+87
*: Add optional arg to catch, opts, like Tcl 8.5 to allow access to the code given by 'return -code' *: Use -- to signify end of options to catch *: 'info returncodes' can give the name of a single code *: Fix 'case' to handle 'return -code' properly
2010-10-15Add basic Tcl implementation of 'try ... finally'Steve Bennett3-15/+122
2010-10-15Improve error message from wrong args to procSteve Bennett1-2/+25
*: Use ?argname? to show an optional arg *: Use ?argument ...? to represent 'args', just like Tcl 8.5
2010-10-15Improve stack trace handlingSteve Bennett12-89/+219
*: Get rid of JIM_ERR_ADDSTACK and use interp->addStackTrace instead *: 'return -code error' doesn't add a stack frame *: Rename _file_copy to {file copy} for better error messages *: Use 'return -code' to prevent excessive levels in the stack trace Also rename info_nameofexecutable to {info nameofexecutable}
2010-10-15Add support for 'file copy'Steve Bennett3-0/+49
2010-10-15Add exec support for 2>@1Steve Bennett3-8/+28
See TIP #202: http://www.tcl.tk/cgi-bin/tct/tip/202.html
2010-10-15Code cleanups, mostly formattingSteve Bennett2-74/+64
2010-10-15Documentation, build system updatesSteve Bennett8-42/+727
Document reference-related commands *: ref, getref, setref, finalize, lambda were missing Build system updates *: Add check for long long to configure *: Change -Dwith_jim_ext_... to -Djim_ext_... *: Fix jim-eventloop when compiling with no long long
2010-10-15Simplify Jim_GetVariable(), upvar arg parsingSteve Bennett1-40/+42
2010-10-15Add Jim_SetResultFormatted() for simplied messagesSteve Bennett16-505/+432
Makes creating error messages much simpler Also convert a couple of long if/else to switch Also some error message improvements Also fix some memory leaks
2010-10-15Simplify and improve the for command optimisationSteve Bennett1-172/+130
*: No need to optimised one-off initialisation command *: Do first test before optimisation *: Just compare "incr" rather than looking up the command. Will only fail on redefined incr command!
2010-10-15Implement TIP #288Steve Bennett6-146/+308
See http://www.tcl.tk/cgi-bin/tct/tip/288.html Args and optional args may be to the left of required args
2010-10-15Allow catch to specify what is caughtSteve Bennett8-348/+502
*: Default to the same as Tcl. Not signal, eval, exit. *: Use 'catch -exit' to also catch exit. *: Also map for standard return codes: [info returncodes] *: Also Jim_ReturnCode() *: Add Jim_FindByName() for searching in a char* array *: Fix 'info nameofexectutable' if $::jim_argv0 is not set
2010-10-15Allow incr on unset variableSteve Bennett4-9/+35
From Tcl 8.5, implicitly set variable to 0
2010-10-15Simplify and speed up exprSteve Bennett5-687/+692
*: Reuse the ParseTokenList/ScriptToken machinery for 'expr' *: This is simpler than managing separate opcode/obj arrays *: expr opcodes are now in the same namespace as token types *: expr identifies int and double during parsing *: Move the 'while' common expr optimisations into Jim_EvalExpression *: Add a special trueObj and falseObj to help with these boolean optimisations *: Add lazy versions as the byte code is created instead of at the end *: Avoid repeated conversion attempts to int *: Once an object fails conversion to int and succeeds conversion to double, invalidate the string rep so the int conversion attempt no longer happens *: Also, avoid converting non-ints to int in expression optimisation *: No need for a string token for SEP and EOL tokens *: Fix shimmering of int -> double *: When an int shimmers to a double during an expression, remember that the value was originally an int (via a new type, coerced double)
2010-10-15Fix null pointer dereferenceSteve Bennett2-1/+11
If the condition expression of a for statement is invalid
2010-10-15Bug fixes and featuresSteve Bennett6-74/+110
Support end+<n> index And generally simplify the index handling Add support for 'info nameofexecutable'
2010-10-15Rework script/subst parser for improved performanceSteve Bennett4-196/+426
*: Keep abc(def) as a single token, but split abc($def) into 4 tokens *: Then optimise when interpolating to keep a reference to the underlying objects *: This speeds up the 'set a($b)' case a lot *: Also avoid so much alloc/realloc when parsing scripts and subst objects Also simplify cmdStruct creation *: Can omit args=-1 for expand *: Makes it easy to calculate the length *: Do it all in a single loop for simplicity, size and speed
2010-10-15Many improvements, bug fixesSteve Bennett25-702/+1692
*: Allow math functions to be enabled via configure *: Allow support for references to be removed *: Documentation updates *: Jim_ListLength() now returns the result directly *: Optimise list -> dict conversion *: Consistent capitalisation of some structures, functions *: Add support for abbreviations to Jim_GetEnum() *: The commands to 'info' may be abbreviated *: Use abbreviation support in parsing options to 'subst' *: Use Jim_GetEnum() to parse return code names *: Optimise 'array get', 'array set' if no conversion needed *: Import Tcl string.test *: string compare now returns -1,0,1 like Tcl *: Fix 'string last' with index=0 *: Add support for 'string reverse' *: Add -nocase option to 'string equal' *: Fix infinite loop in 'string repeat str -1' *: Support braced patterns in glob *: glob should not return dot files unless the pattern starts with . *: Simplify glob.tcl by using some new features *: When creating C extensions from Tcl, preserve newlines and invoke with Jim_Eval_Named() to produce more meaningful error messages. *: Also remove all comments, not just those starting in the first column *: Add support for 'n+n' and 'n-n' in string/list indexes (Tcl 8.5) *: Add a level to the stack trace for 'return -code error' *: 'return -code' should also affect the return from 'source' (see Tcl docs) *: Fix lsort -command *: Some systems don't have INFINITY
2010-10-15Various general fixes and cleanupsSteve Bennett11-299/+238
Add lsearch -command, update case to use lsearch Rename tcl6.tcl to tclcompat.tcl Remove // style comments Expand some tabs to spaces Fix some compiler warnings Remove some unused functions Don't close fd=-1 in exec
2010-10-15More expr tests and fixesSteve Bennett6-46/+736
*: Add tests/expr-new.test from Tcl *: Directly convert from int to double if possible *: Always treat '-' in front of a number as unary minus so that '-0x1234' works. *: Fix expr when the variable does not exist *: Add optional support for math functions *: Also double/0 == Inf or -Inf
2010-10-15New features, docsSteve Bennett6-67/+657
Implement lsearch in C with options *: lsearch -exact, -glob, -regexp, -not, -bool, -all, -inline Add tests for lsearch and expand expr operators: in and ni (Tcl 8.6)
2010-10-15New featuresSteve Bennett3-12/+151
Add unset -nocomplain and tests Implement lrepeat
2010-10-15More expr cleanupSteve Bennett1-254/+80
Also remove all literal sharing code. It was disabled anyway.
2010-10-15Simplify expr evaluationSteve Bennett6-369/+307
2010-10-15Revert "Simplify handling of {expand}"Steve Bennett1-38/+41
This reverts commit 3201b17708d278541b66962045b68f9b0687c1dc.
2010-10-15Simplify handling of {expand}Steve Bennett1-41/+38
*: Detect it during tokenisation rather than afterwards *: Create a special token for it *: Also create most tokens as JIM_TT_STR rather than JIM_TT_ESC
2010-10-15Allow regsub to return the result as a stringSteve Bennett2-21/+26
From Tcl 8.4 (see TIP 76: http://www.tcl.tk/cgi-bin/tct/tip/76.html)
2010-10-15Fix many problem with expr evaluationSteve Bennett4-503/+1768
*: Import Tcl expr tests (expr-old.test) and fix things: *: !double should be boolean (int) *: double&&double and double||double should be boolean (int) *: 2.34e+1 and 2.0e2 are an acceptable double values *: precedence of && and || is not equal *: precedence of ? and : is not equal *: expression "2:3" is invalid *: lazy evaluation involving multiple && and || was quite wrong *: Fix unary minus wrt subexpressions. e.g. -(-1.5) *: Also add support for functions: int, double, abs, round *: Fix lazy evaluation of ternary operator *: Error on missing ?, missing : *: Fix double unary minus *: Add unary plus *: Fix parsing of double with no '.' before 'e'. Also support 'E'. *: Right-to-left associativity of ternary operator is *almost* correct *: Import div/mod of -ve integers from Tcl *: Rotate (<<< and >>>) failed because of wrong arity *: Don't use auto-converted double values *: When an expression fails, show the expression *: Bump version to 0.62
2010-10-15Bugs, features, testsSteve Bennett10-26/+613
Subst was broken for backslash escapes Add support for return, break, continue in subst commands Accept abbreviations for switches to subst Fix 'list #' More tests
2010-10-15Tests, ehancements and bug fixes for execSteve Bennett2-14/+513
Add Tcl tests for exec Fix some errors exposed by these tests Add support for >&, >>&, |&
2010-10-15Source cleanups, typos, add testSteve Bennett8-96/+562
2010-10-15Improvements to 'scan'Steve Bennett5-883/+168
Use libc strtoull() for long long conversions Also some white space cleanup Also remove some win32 vestiges Also improve error messages for array access errors
2010-10-15Implement 'socket pipe'Steve Bennett2-39/+101
------------------------------------------------------------------------
2010-10-15Implement and document lassignSteve Bennett3-16/+35
2010-10-15Implement 'file tempfile'Steve Bennett2-2/+35
From TIP #201: http://www.tcl.tk/cgi-bin/tct/tip/210.html
2010-10-15Speed up assign to static dict sugarSteve Bennett3-97/+87
2010-10-15Bug fixes, documentation updatesSteve Bennett16-4442/+191
jimsh - retry on EINTR from fgets() Fix 0 -> NULL for 64 bit systems Fix overlapping memcpy Fix jim array dereferencing bug *: Counting of parentheses was incorrect with nested array references *: The result for array dereference wasn't being used properly Add os.uptime command Documentation: autogenerated command index Fix gets when last line has no newline
2010-10-15Fix time, bump versionSteve Bennett3-13/+18
time should return wall time, not cpu time (Tcl compatible) Bump version to 0.61 ------------------------------------------------------------------------
2010-10-15Enhance env, fix error messagesSteve Bennett3-11/+15
env command allows a default to be supplied Fix wrong 'file rename' error message
2010-10-15Build improvements, bug fixes and compiler warningsSteve Bennett13-1215/+1868
Remove unimplemented 'after restart|expire' from eventloop Allow libjim to be build as a shared library On some platforms, regex.h needs stdlib.h first Use ualarm() only for times < 1 second Fix warnings found by clang static analyser *: printf/syslog %m isn't portable *: some variables set but never read *: some possible null pointer references (although mostly impossible) *: also minor fixes to jim unit tests Fix 'syslog -options <n>' Must null terminate readlink() result
2010-10-15Documentation updatesSteve Bennett4-289/+5053