Timeline

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

50 most recent check-ins

2017-06-05
04:48
[78aa441553] Leaf: Do not force-quote the first argument to picolQuoteForShell() on Windows. This reverses the change in v0.2.2. Bump the version to 0.3.2. (user: dbohdan, tags: trunk, version-0.3.2)
04:24
[159a159ac9] Add the command [rawexec], a version of [exec] that doesn't quote the arguments. (user: dbohdan, tags: trunk, version-0.3.1)
04:21
[e7edf1389f] Implement "elseif" clauses in [if]. (user: dbohdan, tags: trunk)
2017-06-04
13:07
[7f9ef02637] Fix a regression that caused the env array/variables to be impossible to access at the top level without the "::" global qualifier. Bump the version to 0.3.1. (user: dbohdan, tags: trunk)
2017-05-14
05:01
[ef31bc9409] examples/regexp-ext.c: Update the example's title. (user: dbohdan, tags: trunk)
04:44
[a8352d1f9a] ABOUT.txt: Fit the text in 80 columns. (user: dbohdan, tags: trunk)
2017-05-13
19:41
[30bd622097] Restore the accidentally deleted line that defines PICOL_FEATURE_GLOB as 0 for MSVC and MinGW-w64. (user: dbohdan, tags: trunk, version-0.3.0)
19:36
[1c7a486be4] Do not try to include <glob.h> when compiled with MinGW-w64. Reduce the non-MSVC default value of PICOL_MAX_LEVEL to 30. Small style changes. (user: dbohdan, tags: trunk)
18:41
[e3fd8f13aa] Replace the [trace] command with [debug] with the same functionality to avoid confusion over the name. Rename the field "trace" of the struct picolInterp to "debug" (keeping it in the same position). Print debug data to stderr instead of stdout and only do so if Picol was compiled with PICOL_FEATURE_PUTS. Add tests for $::errorInfo. Prevent stack overflow through self-invocation in picolErr() when the error message is too long. Check if [puts] is available in [unknown] in init.pcl. Misc. stylistic changes to the comments. (user: dbohdan, tags: trunk)
2017-05-12
05:05
[11c11e3092] Add a short README.md for GitHub. (user: dbohdan, tags: trunk)
05:04
[72fd4fc585] Split Richard Suchenwirth's README.txt into ABOUT.txt and CHANGELOG-2007.txt. (user: dbohdan, tags: trunk)
05:03
[4fc780fd06] Merge the implementation for [string index] and [string range]. Make [lindex] and [string index] understand the index "end". Fix [string index {}] returning garbage. Fix [string range] omitting the final character. (user: dbohdan, tags: trunk)
05:02
[9eb26f5eb2] Re-add a clock() fallback in the [time] command. You can force Picol to use either clock_gettime() or clock() on a non-Windows platform by defining PICOL_CAN_USE_CLOCK_GETTIME as 1 or 0 respectively before you include picol.h. Add a platform detection workaround for DJGPP (MS-DOS) to prevent it from being detected as *nix. Declare variables at the top of a scope block for GCC 2 compatibility (for Haiku). (user: dbohdan, tags: trunk)
2017-05-11
17:28
[1c542e0bf1] test.pcl: Do not run incompatible array tests in Tcl 8.5. (user: dbohdan, tags: trunk)
13:22
[a5ea697f82] Implement support for [continue] and [break] in picolLmap() (i.e., [foreach] and [lmap]). Make the error message for [file size] more descriptive. (user: dbohdan, tags: trunk)
2017-05-10
17:40
[d61c05d632] Rewrite picolMatch(). Handle '?' wild cards in "*<string>*" patterns. Return -1 when an unsupported pattern is given. Allow escaping '?' and '*' with a backslash to match the literal character '?' or '*'. Fix two memory leaks. (user: dbohdan, tags: trunk)
15:09
[d35ba49095] Factor out the [regexp] command into a separate extension file extensions/regexp-wrapper.h. Include the regexp extension in the interpreter. Rename examples/regexp-lib.c examples/regexp-ext.c. (user: dbohdan, tags: trunk)
06:10
[d1eeb2475a] [user C code breakage] Prevent segfaults when using pointer-based features by keeping track of valid pointers. Extend the array API to allow unsetting elements and destroying arrays. Fix picolArrSet() not adding elements to an array correctly after the first 2*PICOL_ARR_BUCKETS elements. Align with Tcl 8.6 how the commands [array get|names|set|size|statistics] and [time] work. Check for a buffer overflow in picolEval2(). Add the field validptrs of the new type picolPtr* to the struct picolInterp. Rename things: DEFAULT_ARRSIZE to PICOL_ARR_BUCKETS, PT_* to PICOL_PT_*, TCL_PLATFORM to PICOL_TCL_PLATFORM_*, picolIsPtr() to picolScanPtr() and qsort_cmp*() to picolQsortComp*(). Increase the value of PICOL_ARR_BUCKETS from 16 to 32 for better performance. Add byteOrder, pointerSize and wordSize to ::tcl_platform. Avoid undefined behavior in [<<]. Style: check if a pointer is NULL with (p == NULL), not (!p). The effect of the valid pointer tracking on performance isn't noticeable, even for loops that manipulate arrays. (user: dbohdan, tags: trunk)
2017-05-08
20:31
[a67917d1b1] Use a different default value for PICOL_MAX_LEVEL if the compiler is MSVC. Reduce the default value for MSVC for compatibility with Visual Studio 12.0. (user: dbohdan, tags: trunk)
20:21
[643ef2cd5a] appveyor.yml: Bump the version. (user: dbohdan, tags: trunk)
20:14
[a2bf94211d] Add test-all.cmd (user: dbohdan, tags: trunk)
20:13
[59f255bf1b] Add an example that exposes a small C regexp library to Picol. (user: dbohdan, tags: trunk)
19:39
[1df906db51] [user C code breakage] Rename MAXSTR "PICOL_MAX_STR". Rename MAXRECURSION "PICOL_MAX_LEVEL". Add the field maxlevel to the struct picolInterp. Make it possible to [catch] a maximum level error (the current behavior probably wasn't intended). Do not override a manually set PICOL_FEATURE_GLOB when compiled with MSVC. Parse binary (0b1010...), hexadecimal (0x1234...) and octal (0o1234..., but *not* 01234...) integers wherever integers are accepted. Set a new default value for PICOL_MAX_LEVEL. It was determined experimentally as the highest that does not cause a stack overflow in the test fac.3 in 32-bit MinGW and MSVC Windows builds of the interpreter when PICOL_MAX_STR is set to 4096. Bump the version to 0.3.0. (user: dbohdan, tags: trunk)
11:25
[f5973273d4] Implement the operators &, |, ^, << and >> and the commands [!], [~], [min] and [max]. Allow to shorten [glob -directory] to [glob -dir]. Bump the version to 0.2.4. (user: dbohdan, tags: trunk, version-0.2.4)
2017-05-07
20:52
[d48396271d] clean.cmd: Fix the file paths with slashes. (user: dbohdan, tags: trunk, version-0.2.3)
20:39
[a50459a50c] test.pcl: Fix [eval-in-tclsh]. Show a warning and skip unsupported tests in Tcl 8.5. Introduce the variable ::tcl for configuring which Tcl 8.x interpreter binary to use. (user: dbohdan, tags: trunk)
19:46
[a700462902] test.pcl: Show the result of running the tests in Tcl 8.6. Change the workaround for the file deletion heisenbug on Windows. Do not use wc(1). (user: dbohdan, tags: trunk)
13:19
[89bc9af005] appveyor.yml: Update the Tclkit to Tcl version 8.6.6. It fixes a regression in [lreplace]. (user: dbohdan, tags: trunk)
13:16
[fd7fe6b675] Add clean.cmd. (user: dbohdan, tags: trunk)
12:21
[1c1d19176b] Fix [lreverse {}] crashing MSVC builds. Make the test suite pass on Windows in Picol (MinGW and MSVC builds) and Tcl 8.6. Introduce [file isdir] as a shortcut for [file isdirectory]. (user: dbohdan, tags: trunk)
04:59
[090c347a75] Only use the Sleep() version of [after ms] if _MSC_VER is defined. MinGW defines nanosleep(). (user: dbohdan, tags: trunk)
04:50
[849c239ecb] Fix differences from Tcl 8.6 in how [file isdirectory|isfile] and [lreplace] work. Make the test suite pass in Tcl 8.6. (user: dbohdan, tags: trunk)
04:33
[00e78570d8] Update information about my contributions. (user: dbohdan, tags: trunk)
04:21
[0350ffd6c4] Implement the commands [lassign], [lmap], [lrepeat], [lreverse] and [try]. The last one makes error handling substantially more pleasant. Bump the version to 0.2.3. (user: dbohdan, tags: trunk)
2017-05-06
20:39
[28537831c5] appveyor.yml: Bump the version. (user: dbohdan, tags: trunk, version-0.2.2)
20:32
[cb6c75f8eb] Add build-msvc-2017.cmd. Add a note about compatibility in build-msvc.cmd. (user: dbohdan, tags: trunk)
19:39
[735d300bc1] Fix the MSVC build. Make the preprocessor definition TCL_PLATFORM_PLATFORM work for conditional compilation. Remove TCL_PLATFORM_ENGINE as useless. (This does not affect the value of ::tcl_platform(engine), which is defined in TCL_PLATFORM_ENGINE_STRING.) (user: dbohdan, tags: trunk)
10:58
[7e35bc123b] Implement command [after ms]. (user: dbohdan, tags: trunk)
10:13
[74e250b8f4] Consistently quote the offending argument in error messages with double quotes. (user: dbohdan, tags: trunk)
10:10
[15b2e8e606] Always fully quote the first argument (the path to the executable) in picolQuoteForShell() on Windows. Bump the version to 0.2.2. (user: dbohdan, tags: trunk)
09:10
[8baea5a893] Merge the branch list-parser-compat. (user: dbohdan, tags: trunk, version-0.2.1)
09:08
[7637e69fcc] Closed-Leaf: Fix how Picol treats double quotes in the middle of a list element. Bump the version to 0.2.1. (user: dbohdan, tags: list-parser-compat)
06:49
[615e13ad4b] test.pcl: Add parser tests that Tcl 8.x passes but Picol currently fails. (user: dbohdan, tags: list-parser-compat)
06:46
[f5defcdac4] Create new branch named "list-parser-compat" (user: dbohdan, tags: list-parser-compat)
06:44
[3cbc98db4c] appveyor.yml: Bump version (user: dbohdan, tags: trunk, version-0.2.0)
06:41
[edf08fe878] Fix interp.c. (user: dbohdan, tags: trunk)
06:38
[c2a9e83ee3] Fix the examples. (user: dbohdan, tags: trunk)
06:37
[9378795aa9] Use the variable "interp" instead of "i" for the interpreter in the macros. "i" is far too commonly used to hoard it like that. This is a breaking change. Bump version to 0.2.0. (user: dbohdan, tags: trunk)
05:12
[3dfff18a14] Define macro S_ISDIR(m) for MSVC. (user: dbohdan, tags: trunk, version-0.1.35)
05:03
[d4c238e94a] Implement commands [file delete], [file isdirectory], [file isfile]. Fix randomization in picolCreateInterp2(). Check if it is possible to execute tclsh in test.pcl. (user: dbohdan, tags: trunk)